Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Squally – A Game to Teach Low Level Computer Science
123 points by zcanann 4 months ago | hide | past | web | favorite | 33 comments
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.


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


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.

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

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.

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.

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

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.

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

Thank you for the update. Looking forward to it!

Linux support was added :^)

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.

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.

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.

> 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

Is it really any wierder than gaming (almost) exclusively targeting men? There's some data here on what kind of numbers we are talking about. https://en.wikipedia.org/wiki/Women_and_video_games#Genre_pr...

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

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.

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

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

It is now :)

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

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.

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.

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.

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.

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.

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.

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)

Just watched this on YouTube. So interesting! Thanks!

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

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

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


> card mini-game that teaches binary operations


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.

I guess that depends on age.

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

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact