[HN Gopher] Show HN: Sprig, open-source game console and engine,... ___________________________________________________________________ Show HN: Sprig, open-source game console and engine, by teenagers for teenagers Author : apexedison Score : 223 points Date : 2022-11-03 14:04 UTC (8 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | scandox wrote: | Slightly 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. | apexedison wrote: | This 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. | [deleted] | dopidopHN wrote: | Historically 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] | dusted wrote: | Except 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. | electroly wrote: | If 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 wrote: | Oh, I see now, yes that's definitely an improvement! Thanks | for pointing it out! | monkpit wrote: | Oh 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 wrote: | There are some backing covers which are laser cut. It's | possible to swap with a 3D printed cover and use the same | mounting holes. | apexedison wrote: | As 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. | asicsp wrote: | See also: | | "Some Assembly Required: An approachable introduction to | assembly" - https://github.com/hackclub/some-assembly-required | | https://news.ycombinator.com/item?id=31909183 _(587 points | 4 | months ago | 125 comments)_ | reesericci wrote: | I've been loving my Sprig so far - great project from Hack Club! | sdrothrock wrote: | There's a dead comment from one of the creators that needs some | vouches: https://news.ycombinator.com/item?id=33451938 | kleiba wrote: | This 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! | trashfishes wrote: | Ha! I'm also part of the Sprig team. | | This project has been created by many Hack Clubbers, and not | only in the development of the engine, editors, firmware and | hardware. Hack Club teens handled all logistics/supply. The | backings were made by a HCer that taught herself laser cutting. | PRs for games are being reviewed and commented upon by 4 | teenagers. All front end dev & copy was done by a HCer. The 3d | model on the front page was another's first time in Blender. | | Our youngest Sprig game dev right now is an 11 year old | (https://github.com/hackclub/sprig/pull/443). We have a water | sim built by a 13yr old | (https://github.com/hackclub/sprig/pull/402). A raycast | experiment by a 15yr old | (https://github.com/hackclub/sprig/pull/153). | | We have so many fun games built already: | https://sprig.hackclub.com/gallery. | | Hack Clubbers are now running Sprig workshops in their clubs | and hackathons - and publishing them for others to use. Others | are hosting 'Sprig Jams' to work on games together. Can't wait | to see what more comes of this all. | aliqot wrote: | What happends to the teenagers who turn 20? Emeritus or what? | awestroke wrote: | They are shunned, their name blacklisted, any record of | their contributions erased | trashfishes wrote: | Sort of, yes! This is great question, and ties into our | values and ethos. I'll try to keep it short (and note this | is just my perspective as one employee). | | We fully expect (and support!) our teenagers 'graduating' | from Hack Club. On one hand, this presents a challenge when | our most committed and experienced people age out every | year. But on the other hand, there's a fresh group that | arrive with new perspectives and insights, and really make | the space their own. | | Our hope is to honor our wonderful alumni too, and the | contributions they have made. Many stay on in various ways | to continue to support the community. | | The cool thing about initiatives like Sprig is that while | the current technical contributions will exist 'forever', | it too can be enjoyed and iterated on by new young people | in ways we don't know yet. | apexedison wrote: | Haha 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 wrote: | Would 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 | dopidopHN wrote: | Yeah that would solve a kinda chicken and egg issue. | rytor718 wrote: | I 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 wrote: | Yeah, being able to access even one to give hands-on | could be pretty valuable. | hathawsh wrote: | It 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_S... | cassianoleal wrote: | > preprosperous | | You mean you expect it to succeed soon? :D | kleiba wrote: | Haha, thanks! ;-) Fixed. | z3 wrote: | Great project! Well done boys, that's a true hacker spirit | threesided wrote: | Love 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 wrote: | Thank you! I found the other fantasy consoles quite inspiring, | PuzzleScript too. | ofrzeta wrote: | So teenagers don't like housings? :) | apexedison wrote: | We 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). | _lucas_honda wrote: | nice idea! :) | sampoder wrote: | Curious, what's the thinking behind making projects like this? | apexedison wrote: | The 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 wrote: | What do you make of Microsoft MakeCode? | apexedison wrote: | I 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). | linsomniac wrote: | Hack 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/ | | 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. | apexedison wrote: | Amazing! Your son has been such a valuable contributor. I also | love the games he made. | omay wrote: | Hello, yes that is me. Sprig is really cool. | pjmlp wrote: | In 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 wrote: | We 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 wrote: | hi - 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. | stefanvdw1 wrote: | Love it! Sent it to my two teenage brothers who've I been trying | to get interested in technical stuff like this | riwsky wrote: | I'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. | cedric-h wrote: | Hey 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/ [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.githubus... | [2] - github.com/hackclub/spade | gred wrote: | This 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?). | cedric-h wrote: | I started out as a member of Hack Club's online community -- | I discovered them through the GitHub Newsletter, and then | made a multiplayer game with its own economy playable through | their Slack (github.com/hackagotchi/hackagotchi) -- and then | graduated high school in the middle of Covid with no plans | and ended up working here. The purpose of the Sprig project | is to engage and energize our online community. While our | mission is to support teenage hackers, there are no hard and | fast rules about what it means to be one. While we're not | sending out devices to people over 19, we still accept games | from them and show them in our gallery. Does that answer your | question? | gred wrote: | Yep, thanks! | hyperupcall wrote: | Hey Ced!! Woahhh, I didn't know this project is sorta its own | OS - that's epic | | It's pretty cool to see projects like this, Sinerider, and the | like being developed, even if I am on the sidelines haha | cedric-h wrote: | hoppityboppity wrote: | Focus on building things with Unity, Unreal & CUDA. | | Now that you have hopefully read my one takeaway Cedric... | | This is from the perspective of someone who has been in the | games industry and entrepreneurship for a long time, long | enough to become the villain. | | You're clearly a very talented programmer. | | In 2008, when I was at elite fancy school, an opportunity that | is probably open to you, GPGPU programming had just begun. | | The last decade of software innovation - machine learning, | cryptocurrencies, immersive video games - owes its debts, | fundamentally, to people who learned and authored GPU software | all day. The ability to program GPUs, and nowadays to build | infrastructure for distributed GPU computing, is the primary | bottleneck to the greatest innovations in software. | | If you love low level stuff, this is where you should go. | | If this doesn't interest you, at least learn Unity and/or | Unreal. No more custom game engines. There is a time limit. I | know a lot of people in R&D across industry and academia, and | the #2 bottleneck for innovation (after #1, GPGPUs, i.e., | performance) is Unity and Unreal skills, i.e., presentation. | | Why write here? | | I've seen people in your situation, at 19 years too, capable of | great things, attracted to scenes of other talented people like | the Hack Club folks. | | Every 5-10 years there are certain technologies on which all | innovation is built. It isn't going to be Raspberry Pis. | Please, don't focus on that anymore. | | Like someone else I know in your situation, who was modding | video games: put a time limit to... the "kid shit." That's | going to get me downvoted, but seriously, the world flies by | you, and people like you have a lot more potential. | | It is extremely downvotey, but there are objectively more | important things for you to be doing. There are other people in | your life who know this too (like probably your parents) but | they may lack the sophistication to know, really, what you | should target your talent cannon on. | bitwize wrote: | Second this. It should be drilled into the heads of everyone | who wants to get into game development: USE A MAJOR ENGINE. | No exceptions. Time is money, and hand-rolling an engine is a | waste of yours. Unity and Unreal have many, many more man- | hours of work put into them than anything you can build, so | by choosing one of them you can avoid pitfalls you WILL run | into starting from scratch, on top of the labor you'll save | not having to build one in the first place. On top of all | this, the entire gaming workforce is oriented around these | two engines, so when it comes time to collaborate, you will | be able to bring people aboard who can contribute | immediately. | | The GPGPU stuff is critically important if you are targeting | low-level programming, to which I would add AI processors | (NPUs, TPUs, etc.) And bone up on your statistics and linear | algebra to like, the "Ph.D in math" level. The AI rocket is | about to take off, big time; you want to be on it. | jesse__ wrote: | Counter-point : the tradeoff you accept when using a | commercial engine is that they're extremely general | purpose, which can be unsuitable if you're trying to do | something weird. | | Look at Braid if you want a good example. Using Unity or UE | to build that game would almost certainly require more work | than writing a simple 2d platformer engine. Furthermore, | the story of how it came to be is, in fact, inexorably | linked with the act of writing the engine itself. | | Sometimes, writing the engine is the right choice. | bitwize wrote: | Braid was released in 2008 -- forever ago in game- | industry time. The industry has become _more_ | consolidated around Unity and Unreal since then. | | Unity has 2D platformer support built right in, and the | tricky bits -- like the time mechanic -- could be written | as an extension. Heck, there's probably a time rewind | mechanic in the Unity Asset Store as we speak. They've so | far advanced that you're just never going to keep up | writing a bespoke engine because they've benefited from | being integral to the industry as a whole. Furthermore, | the skills you develop on your own with your little | bespoke engine aren't going to translate into the | industry, where everybody uses Unity or Unreal. | | It's kind of like how you're never going to build a | graphic design business using GIMP, Krita, or Inkscape. | They're all nice tools for amateurs and dilettantes, but | entire industry standards and processes have coalesced | around Photoshop and Illustrator, so that's what you use. | The open-source alternatives are decades behind the curve | here and in some ways, will never ever catch up. Good | luck getting PANTONE support, which is critical to | graphic design for print, into GIMP or Inkscape, for | instance. | teamonkey wrote: | > If this doesn't interest you, at least learn Unity and/or | Unreal. No more custom game engines. There is a time limit. | | I work in the games industry and couldn't disagree with this | post more. The above is generic advice you give to someone | just starting out and wants to work on games but has no clue | where to begin. This person is working on a _custom games | console_ which is incredible experience, useful and | impressive on so many levels. | | You have to use new hardware all the time. You have to | relearn a new shader language all the time. You have to re- | learn Unity and Unreal all the time, because they are a | shifting target (especially Unity). I have shipped games with | 6 different games engines on 4 generations of hardware. I've | used 3 professionally in the last two years. | | The skills you will learn working on this console are the | stripped-down core of game development: relevant and | everlasting. | cedric-h wrote: | Appreciate your perspective. | | What's the point in doing anything if you don't enjoy it, or | if it doesn't culminate in something you do enjoy? | | My metric when I decide to do something isn't "how cool will | Hacker News or Hack Club think this is?" | | It's, how much will I enjoy doing this. | | You may call it kid shit, and maybe this is the hard-headed | kid in me talking, but I hope I never change. | djur wrote: | This is a great attitude that you'd think would be more | common at a place called "Hacker News". The temptation to | get "finance brained" is incredibly powerful in this | industry, especially as you get closer to Silicon Valley, | and the more young programmers resist it the better off | we're going to be. Thanks. | bitwize wrote: | It's not really about finance brain. It's about where are | you, as a smart, talented programmer, going to have an | impact? For the past ten years, ALL of the major | innovations in the software field have been based on | GPGPU. Learning how to program GPUs is thus a core, | foundational skill if you want to contribute | significantly to the biggest innovations of computing. | And of course there's so much else to learn on top of | that, particularly in terms of math and algorithmic | techniques and stuff. | | Messing around with Raspberry Pis is kid shit by | comparison. It's fun, but it's not going to advance much | of anything. The Raspberry Pi is literally a "get kids | into STEM" initiative, and yet it's used mainly by adults | who want to cosplay as "makers". And even then, | eventually they usually end up in a drawer. | | If you want to mess around, Raspberry Pi game consoles | are fine but if you want to make a significant | contribution, time's a-wastin'. If the rocket takes off | and you're not on it, there goes your chance. So yes, set | a time limit on the kid shit. Put it away by age 20 or | so, and start thinking about what really matters and | what's really gonna change things. | djur wrote: | The idea that a "smart, talented programmer" should | reshape their life and their interests around "hav[ing] | an impact" and "contributing significantly to the biggest | innovations of computing", to have "[their] chance" to | get on "the rocket" before it "takes off", this is what | I'm referring to. The idea that you're literally wasting | your time if not working in certain fields: "machine | learning, cryptocurrencies, immersive video games". Why | do you assume that "impact" and "innovation" should be | the driving interests of a young programmer's life? This | is a cultural presumption, if not an ideological | position. | apexedison wrote: | Many people who in retrospect are truly innovative almost | definitionally spend their time doing things other people | don't regard as valuable (at first at least). As an | extreme example of someone who prioritized a life of play | look at Claude Shannon. He literally had a shop for | building toys at home. I'm grateful he wasn't overly | attracted to what others regarded as impactful at the | time. That being said I still don't think it's important | whether one's play becomes valued. I suspect in the long | run we're all better off having people in the world who | are passionate about what they are doing. | criticalmass1 wrote: | All of that might be true. All generalizations are | sometimes untrue. | | > spend their time doing things other people don't regard | as valuable... | | Sprig is an educational project, shepherded by adults | affiliated with big name institutions like MIT and | Google. They are extremely conventionally successful | smart people who think "nurturing programming talent" is | valuable. What are we even talking about? These things | don't happen in a vacuum. | criticalmass1 wrote: | > The temptation to get "finance brained" | | Trust me, people don't get into programming video games | for the money. | | Anyway, this is a funny perspective. Zach Latta, the Hack | Club founder, got a Thiel Fellowship. I would not | characterize Peter Thiel's philanthropy as 100% mission | driven. I also don't think he's a supervillian. But there | is a finance angle, not a negative one, to even the most | seemingly twee retrocomputing things. | | Maybe if you saw Hack Club's deck, you would comprehend. | | Any talented non-college enrolled young person could also | consider a Thiel Fellowship. There are many opportunities | out there. | djur wrote: | Why should the goals of the project funder have any | bearing on the goals of participants in the project? | apexedison wrote: | If you want to check out some of the games people have made you | can find them here: https://sprig.hackclub.com/gallery | zach_garwood wrote: | Man, 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 wrote: | Give it a try! I'd love to see the game you make. | omay wrote: | I 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. | bdickason wrote: | This 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). | teamonkey wrote: | The hole left by Flash has still not been filled | carl_dr wrote: | This. | | 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. | apexedison wrote: | Thanks! 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. ___________________________________________________________________ (page generated 2022-11-03 23:01 UTC)