15 ms·
Show HN: Sprig, open-source game console and engine, by teenagers for teenagers
- sampoder 4y agoCurious, what's the thinking behind making projects like this?
- apexedison 4y agoThe idea is to help people learn programming by making it easier for them to think of and execute projects which they share with others. In this case those projects are the making of the console/engine itself and for a much wider group of people the contribution of games to the game library. Thanks for contributing to both! We decided to make the physical console because it was a cool thing to do and would help motivate people to follow through with projects and make games.
- cxr 4y agoWhat do you make of Microsoft MakeCode?
- apexedison 4y agoI think it's a well executed project and the UI design on the editor is nicely done. We focused a lot on the API of our game engine and honed in on having a small construction kit for Sprig which seems to help people become productive. The aim is to communicate a specific mental model for Sprig games through the engine's capabilities (tile-based focused on puzzles and level design, though people have managed to do all sorts of things).
- reesericci 4y agoI've been loving my Sprig so far - great project from Hack Club!
- kleiba 4y agoThis obvious age discrimination against non-teenagers is preposterous! Where are the lawers when you need them? Just kidding, this is an awesome project! I wish I would have been that creative and competent in my teenage years... or even now, for that matter. Respect!
- apexedison 4y agoHaha thanks. Hack Club certainly has adults involved (like myself) but we structure projects so teens can be core contributors (the rest of the core engineering staff on Sprig are all less than 20 years old and I'd say 95% of the games in the library are from teenagers). As for Sprig itself the only part that is limited to teens is that we give the console away for free to teenagers who submit games to the gallery. Otherwise anyone can make games and submit them.
- invalidusernam3 4y agoWould be nice if you sold them to us old people at a 2x cost so we can get one and pay for one for a teen
- rytor718 4y agoI second this but mostly because I'm an unrepentant nerd who REALLY wants one of these to show off at my tech workshops for kids :D
- incanus77 4y agoYeah, being able to access even one to give hands-on could be pretty valuable.
- hathawsh 4y agoIt appears the project hasn't optimized for production (yet?). For now, I can't help but think it may be possible to cobble together a Sprig using inexpensive Pi Pico HATs and 3D printing. Here's the schematic: https://github.com/hackclub/sprig/blob/main/docs/GROWING_A_SPRIG.md https://github.com/hackclub/sprig/blob/main/docs/GROWING_A_S...
- pjmlp 4y agoIn a way it is funny to see JavaScript vs Python competing for the next BASIC in this kind of platforms. Good work, it looks cool.
- apexedison 4y agoWe debated running JS (Kaluma) or micropython on the Pico. We started with Kaluma because the editor is in the browser. After we got some game submissions though we realized we'd have to do our own wrapper around Jerryscript for performance reasons which is what the console ships with.
- cedric-h 4y agohi - Sprig firmware dev. Things would go wrong on the device but I would have no idea how to diagnose it because I didn't know what all Kaluma was doing for us. EX: to write to flash, you can't have any IRQs going or code running on another core. How do we know what all Kaluma is doing while running our code? We were going to need a Kaluma-less runtime just to debug our renderer, audio and input handling anyway, haha. I didn't think you were going to let me spend time doing it instead of scrambling to fix bugs with our Kaluma-based impl, so I spent a weekend prototyping our own runtime. It worked, so I didn't have to wait for Kaluma's 2 minute build times anymore.
- dusted 4y agoExcept for the bare pcb thing, it looks cool.. I cringe thinking about long-term exposure to bare PCBs, sure RoHS is a thing, but it's R(eduction), not E(liminiation).. And those guidelines are under the assumption that the electronics are packaged and not touched to bare skin.. PCBs are still made with fibers which can penetrate the skin, and I'd be worried about exposure to soldermask, solder and what other chemicals are involved.
- monkpit 4y agoOh I thought that was just a cool picture, didn’t realize there is no housing :( Maybe someone has created a 3d print for one?
- apexedison 4y agoThere are some backing covers which are laser cut. It's possible to swap with a 3D printed cover and use the same mounting holes.
- electroly 4y agoIf you look closely at the picture of it in action, there is a clear acrylic shell covering the PCB on the back. They're actually gripping the acrylic shell. In the picture of the individual components, it appears to be the laser-cut wood pieces. That picture includes a pair of pieces that look like they go on the front (there's a cutout for the D-pad/face buttons), but I don't see them installed on the action shots. I think that the shell may be intended to cover both back and front, and they just didn't install it for the action pictures.
- dusted 4y agoOh, I see now, yes that's definitely an improvement! Thanks for pointing it out!
- apexedison 4y agoAs others pointed out when fully assembled most of the board is covered (but visible). We designed the board to function like a devkit for the pico as well so unused pins are broken out on pads.
- cedric-h 4y agoHey everyone, I'm Cedric and part of the Sprig team. I'm 19. I've been trying to make games since middle school. Right now I'm working on getting Lingdong Huang's - who has made a bunch of really cool interactive experiences[0] (like a human face eating simulator) - he made a Sprig game for us[1], I'm trying to get it working on the physical device - but there's a problem, since the device is Raspberry Pi 2040 based and only has 256kb of available RAM (yet the games are written in JavaScript - we run them using our own little JerryScript based runtime[2]). The runtime also runs on personal computers, not just arm-eabi-none, to help us test the games to get better error messages than the physical hardware can give (because no operating system). We call this our Sprig emulator, even though it's just the runtime compiled to a different architecture, hooked up to CoreAudio and a minifb window. Thanks to the emulator, we know Lingdong's game theoretically only uses 180kb of RAM, so we should be fine. And it actually works great in the emulator, but when I try to run it on the device it doesn't get past the startup screen ... which hurts because the entire reason we made the emulator was to get better error messages. All I can do now is puts("") debug everything and figure out what code is reading or writing out of bounds and making the device freeze. I probably configured the heap to be too small again. I have always loved finding excuses to figure out how things _actually work_, which is why every time I sit down to make a game, one thing leads to another and I'm making a game engine. Working on Sprig has taken this to a whole 'nother level because it's essentially our own operating system, too. Nobody tells you if you overflow the stack, the stack guard is only 32 bytes and disabled by default. It all started as a module for Kaluma, but we hit so many performance, RAM and flash constraints that we found it was better to write our own JS runtime. Apologies to Kaluma which is also trying to frontpage HN right now! We both use JerryScript heavily, but Kaluma connects you directly to the GPIOs and IRQs. We just connect you to the screen and the buttons through the same API as in the web browser, which is handy for making tile-based games. [0] - https://lingdong.works/ https://lingdong.works/ [1] - Lingdong's game. Keep in mind the controls are all WASD and IJKL because the device only has 8 buttons. https://editor.sprig.hackclub.com/?file=https://raw.githubusercontent.com/hackclub/sprig/main/games/generic_dungeon_crawler.js https://editor.sprig.hackclub.com/?file=https://raw.githubus... [2] - github.com/hackclub/spade
- gred 4y agoThis looks pretty cool, and takes me back to my early programming days. > by teenagers, for teenagers > I'm 19. Do you plan to continue contributing after you turn 20? I'm not familiar with the project, so I'm not sure what "by teenagers" means in practical terms (e.g. certain types of contributions no longer allowed?).
- asicsp 4y agoSee also: "Some Assembly Required: An approachable introduction to assembly" - https://github.com/hackclub/some-assembly-required https://github.com/hackclub/some-assembly-required https://news.ycombinator.com/item?id=31909183 https://news.ycombinator.com/item?id=31909183 (587 points | 4 months ago | 125 comments)
- sdrothrock 4y agoThere's a dead comment from one of the creators that needs some vouches: https://news.ycombinator.com/item?id=33451938 https://news.ycombinator.com/item?id=33451938
- threesided 4y agoLove to see the combo of hardware and software being offered up to aspiring young game developers! I'm a huge fan of Pico-8 and other "fantasy consoles" so always welcome to see another one. Awesome work!
- apexedison 4y agoThank you! I found the other fantasy consoles quite inspiring, PuzzleScript too.
- scandox 4y agoSlightly OT: I've been wondering recently if the word teenager and it's use has been a bad thing for people between 12 and 20. If we didn't have this word I'm guessing we wouldn't view them as such a distinct lump and be less ready to generalize about them.
- dopidopHN 4y agoHistorically it’s a new concept. At least for the west but I suspect for human as a whole. We used to jump from childhood to adulthood without lingering. I don’t cast any judgment on the concept of teenagehood. I think it’s out there now.
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- apexedison 4y agoThis is an interesting point. One of the major things we're trying to demonstrate with Hack Club is we box people in too much based on their age. Especially young people who generally have a well defined set of activities laid out for them before they can start practicing some autonomy (largely from the way schooling works). The hope is that open-source projects like this can show people that there are some accessible routes and supportive communities to help them pursue their passions. Personally I hope the work serves more than just teenagers, but working out the details of serving young people well means as an organization we have to focus on it. More directly responding to your point Ivan Illich has some interesting commentary on the modern invention of childhood in Deschooling Society.
- _lucas_honda 4y agonice idea! :)
- stefanvdw1 4y agoLove it! Sent it to my two teenage brothers who’ve I been trying to get interested in technical stuff like this
- ofrzeta 4y agoSo teenagers don't like housings? :)
- apexedison 4y agoWe chose the aesthetic of the bare PCB to help demystify the technology. The console is also designed to be repurposed as a hardware devkit (there are breakout pads and what not).
- apexedison 4y agoIf you want to check out some of the games people have made you can find them here: https://sprig.hackclub.com/gallery https://sprig.hackclub.com/gallery
- bdickason 4y agoThis is very cool. I love the focus on builders and do think there's a gap in easy to use 2d web-friendly game engines currently. Phaser still requires a ton of boilerplate code compared to the example games here. Both Godot and Unity are very similar to each other and aren't great for say.. hacking together a quick js prototype and sharing it with your friends on the web (or with a lil' device).
- apexedison 4y agoThanks! I've been really strongly influenced by great constructionists like Brian Silverman (who worked on Scratch and early Lego Mindstorms). He also helped consult on Sprig actually. We wanted to have a nice composable construct kit of ideas which would make getting started easy but which would still be fun for experts. I've been really impressed with how well people can build out really engaging games with simple graphics but interesting game mechanics. The community already has pushed it beyond what we originally expected when designing the engine.
- teamonkey 4y agoThe hole left by Flash has still not been filled
- carl_dr 4y agoThis. For all the faults with Flash (security primarily) it gave so many people an easy way into games development. We’re missing this today. Just getting the environment setup for a lot of game engines today is beyond today’s teenagers (and to be fair, me - both in terms of required knowledge and attention span), whereas 40 years ago, you just turned your computer on and boom - a flashing cursor. You had to type things to even load games.
- cowgoesmoo 4y agoRoblox is a thing. I got into programming back in 09 cause I wanted to make a Roblox game.
- linsomniac 4y agoHack Club is awesome, I highly recommend it to anyone with teenage kids. There is a playable version on the home page at: https://sprig.hackclub.com/ https://sprig.hackclub.com/ Aside: The game you play on that one was written by my 13yo son. He has become super involved in Hack Club over the last few months, since I showed him that "Sine Rider" game announced on HN (another Hack Club project), and I left it up to him to discover Hack Club from that. As someone who used to run and attend Hacking Society meetings, I was pretty happy to see him dig into Hack Club.
- omay 4y agoHello, yes that is me. Sprig is really cool.
- reesericci 4y agoomay - sokoban+ is incredible
- apexedison 4y agoAmazing! Your son has been such a valuable contributor. I also love the games he made.
- zach_garwood 4y agoMan, I wish something like this would have existed back when I was trying to make choose-your-own-adventure games in QBASIC back in my teens! This is really awesome!
- apexedison 4y agoGive it a try! I'd love to see the game you make.
- omay 4y agoI am a big fan of Sprigs. It is kind of crazy that my game is on the front page. Sprig is really easy to make games with, but it is also capable enough to make more complex things.
- riwsky 4y agoI’ve seem many a front page HN article about teenage engineering—but I’ve gotta admit, this might be the first one about teenagers engineering.
- z3 4y agoGreat project! Well done boys, that’s a true hacker spirit
- evolve2k 4y agoIs this restricted to US teens only?
- apexedison 4y agoIt's not, we'll do our best to ship everywhere we can.
- culi 4y agoWow they even got Nicky case to make a game for it. Really cool project!