Show HN: Squally – A Game to Teach Low Level Computer Science

123 points by zcanann 5 years ago

After many months of development, we are releasing Squally as early-access on Steam! This game teaches low-level computer science; topics such as data types, data structures, bin/dec/hex, and x86 assembly are gradually introduced through puzzles and gameplay.

https://store.steampowered.com/app/770200/Squally/

It's still very early in development, we currently have only released a card mini-game that teaches binary operations:

https://i.gyazo.com/0a33bbac5bbb5421f7eb120edd3ff6bb.gif

contingencies 5 years ago

With kids stuff, it's generally conventional marketing to put "ages x-y" or "ages x+" front and center. I think this attracts parents, who are a time-starved lot.

  • setr 5 years ago

    I feel like the attraction isn't that it saves time, so much as it saves thinking. At least for me (kid-less), it's really hard to imagine the difference between something appropriate for a 5 year old and an 8 year old; particularly things that straddle the line

    Things are a lot easier if the producer just tells me the intended audience, which I can take with a grain of salt and decide from there

    • madhadron 5 years ago

      The gap between what is appropriate for a 5 year old and what is appropriate for an 8 year old is surprisingly large if you don't have kids or otherwise deal with them day in and day out.

      • jvvw 5 years ago

        Agree - I have a 5-year-old and an 8-year-old, and yes, enormous difference even though only 2.5 years apart. Suggested age range is definitely helpful for parents even though I often take them with a pinch of salt. Also if a developer hasn't tested enough to know what is a good suggested age range, then they haven't tested enough full stop!

        I'm certainly happy with idea of a game teaching low-level cs concepts, although I don't tend to spend too much money on kids' games unless they have really good recommendations/reviews (or they have enjoyed other games from the same developer e.g. we have all the DragonBox games) as I can't guarantee what my kids will decide is interesting. I also don't think I'd get early-release stuff for kids as their tolerance for non-finished products tends to be limited.

  • setr 5 years ago

    I feel like the attraction isn't that it saves time, so much as it saves thinking. At least for me (kid-less), it's really hard to imagine the difference between something appropriate for a 5 year old and an 8 year old; particularly things that straddle the line

remlov 5 years ago

I'd love to try this out. However I see Linux isn't supported. Will there be Linux support in the future? I wonder if this game would work through Proton.

  • zcanann 5 years ago

    Yes! Linux support should come by the end of this week.

    • remlov 5 years ago

      Thank you for the update. Looking forward to it!

      • zcanann 5 years ago

        Linux support was added :^)

hsolatges 5 years ago

Hey! I love the idea but I just registered to HN to tell you that my 5yo would actually be too scared of your caracters to enjoy!

Also the universe feels strongly masculine and won't bring girls in CS.

  • zcanann 5 years ago

    I don't think we anticpated people wanting younger children to try this game, originally we were thinking 12+. Clearly we were wrong based on the posts in this thread, so we'll have to think about a path forward.

    The storymode of this game was intended to have RPG elements, which tend to be branded as masculine. I wish more girls were encouraged to play RPGs, but I get that this isn't the world we currently live in. However, the game will have good representation as far as NPC gender/race breakdown.

    • zapzupnz 5 years ago

      Consider giving it the ol' "Crash Bandicoot in Japan" treatment, with an alternative version or special mode in the game that just loads different, cutesy resources — but the game is otherwise identical.

      Western games localised for Japan is a great resource for making things kid-friendly since that's the aesthetic over there.

    • baud147258 5 years ago

      > RPG elements, which tend to be branded as masculine

      It seems weird that RPGs tend to be branded as masculine, since, if I remember right, there's more female players (in proportion) than sport and FPS games

  • rubenhak 5 years ago

    I think child would be more scared to see "AAM" instruction then any of the characters :)

Akshat412 5 years ago

Are you planning on working on the visuals at all? The graphics look nice, but the aesthetic seems off: the main character seems a little, well, out of place in some of the scenes. The concept is pretty cool though, and I can see myself picking the game up.

  • zcanann 5 years ago

    Yeah, we actually don't have a full-time artist yet, so there are quite a temporary pieces of art dropped in right now

packetpirate 5 years ago

This game should really be Linux supported so all the kids learning Comp Sci through the Raspberry Pi can try it out.

lquist 5 years ago

Honest question: why? Why is low level computing the right thing to teach kids? Most people take the exact opposite approach to the extent they create very high level languages

  • zcanann 5 years ago

    I made this game because this is how I learned. I liked tearing games apart, so my first language was x86 assembly. I got into programming through reverse-engineering.

    Maybe there are other people like me who will benefit from this. It's probably not for everyone, but the goal is to have it resonate deeply with some users.

  • snazz 5 years ago

    It’s also how lots of older people learned: assembly on a simple personal computer before advancing to higher level languages. Although the machines today might not be so simple, this order of teaching (low—>high) is a good way to demystify computers and possibly teach alongside electronics courses.

  • thedirt0115 5 years ago

    A better question might be "why not?" I don't believe that it's required or forbidden to learn Assembly before e.g. Python. It's a game that teaches you stuff too -- I want lots of these in the world! Some kids might like low-level computing more than something else. And some adults might prefer game-ified learning over textbooks.

  • userbinator 5 years ago

    In my experience, those who start teaching with HLLs are aimed more at producing developers that have some minimal level of competence to enter the industry, rather than ones who actually understand what computers are and how they work. While the former is perfectly acceptable for a lot of things, the latter are important because they tend to be the ones who can easily debug difficult problems. IMHO teaching kids HLLs does nothing to dispel (and if anything, furthers) the notion that computers are mysterious magical devices rather than machines that simply follow a list of instructions and manipulate bits. The latter is particularly important as computers become more prevalent in society, people who know nothing about how they work will be less inclined to present good arguments for the issues of privacy, encryption, etc.

  • rjplatte 5 years ago

    Both ultra-low-level and ultra-high-level languages are easy to grasp. Ultra-low-level concepts translate better into logical skills, how to think, etc.

  • pitzips 5 years ago

    For what it's worth, I struggled for so many years understanding what higher level programming actually is, while simultaneously doing it. It never felt complete.

    I went through Crash Course Computer Science (from John Green / PBS...) and it really helped me feel grounded.

    Maybe this is attempting the same, just starting at one end of the abstractions.

    • gnulinux 5 years ago

      High level, low level formally refers to the level of abstraction of the virtual machine of the programming language with respect to the "target" model of computation. We say assemblers are "low level" since it adds very little abstraction to the von neumann machine it's intended to run on, on the other hand, python programs compile to a long set of instructions. One can formalize this concept using Kolmogorov complexity. (i.e. what's the size of smallest assembler program implementing python)

    • kanyethegreat 5 years ago

      Just watched this on YouTube. So interesting! Thanks!

  • rco8786 5 years ago

    > why? Why is low level computing the right thing to teach kids?

    what not? why does it have to be the "right" thing?

  • samstave 5 years ago

    In my day we had to set IRQs and DIP switches upstream, both ways! and it was good!

    /lAWn

lostmsu 5 years ago

> card mini-game that teaches binary operations

https://esolangs.org/wiki/Lambda:_the_Gathering

  • lokopodium 5 years ago

    That had nothing to do with binary, wasn't a mini-game and was generally "out there" in terms of complexity. Definitely a good tool to scare children away from programming.

    • lostmsu 5 years ago

      I guess that depends on age.

      I just linked it, because it's also a low-level computer science in a different sense.