
Play online: https://cartesiandaemon.github.io/rusttilegame/programming_release.html
Drag instructions onto the flowchart and press space or click the map to start executing. On later levels click the map while executing to increase the speed.
Since my last post I added some more programmer-y levels up to level 15, cleaned up some of the earlier levels, and improved a bunch of UI things like saving which levels you've unlocked. Most easily played on web, on either desktop or mobile, but you can clone the source and build for windows or linux too. (https://github.com/CartesianDaemon/rusttilegame I should compile a windows binary to download too if that would be useful for anyone.)
If you do play, it would be really helpful to hear how far you got. And if you have time, which levels were easy, which were hard, what was nice or difficult about the UI, etc.
Game design in rust
Date: 2025-12-28 11:31 am (UTC)I used a minimalist game engine, macroquad. That was perfect for what I wanted as I wanted to get to drawing rectangles and .pngs on the screen as soon as possbile, and not to worry about needing to learn a game engine to handle more of the game logic for me. And that it successfully works cross-platform on linux, windows, web (and android, though I haven't tried it yet).
I can't say yet how well suited rust is for games. There's less existing frameworks than other languages, if you're making something that would benefit from them. It has modern language things like generics and range syntax, which I want for any programming, not quite as convenient as python but not too far behind. It compiles to fast code, and even simple-looking non-realtime games like Slay-the-Spire often end up performance-limited just for drawing simple animations.
The main question is, how inconvenient is the memory management when you can't pass pointers to everything everywhere without fighting the borrow-checker. It's certainly difficult to get up to speed the first time. I think it has the features to allow you to do things the same way you would in C or python and avoid the ownership-checking, either making important data static or pinned so you can have pointers to it, or using refcell etc to allow mutating whatever you want, but I haven't tried writing in that style and I don't know how quick it is to learn or how convenient it is.