Article summary
At StrangeLoop 2023 I attended Professor AnnMarie Thomas’s wonderful talk about the value of Playful Learning. Coincidentally, shortly after the conference, I stumbled across several games whose key mechanic is programming. My geeky love for sci-fi space adventures initially drew me to these games. However, I quickly found myself learning an abundance while playing. Thinking back, Professor Thomas’s talk inspired me to share a couple of my favorites of these.
Oort
The objective of Oort is to write Rust code to control a fleet of Atari-Asteroids-esque spaceships. A series of tutorials introduces you to various concepts in the game like engine control, weapons systems, and communications. After the tutorial, there are live challenges and Player vs. Player tournaments where you’ll pit your solutions against other players.
This game has a pretty steep learning curve, but the tutorials do their best to help you through that. I should warn that if you aren’t familiar with some basic kinematics and vector math, this game is going to feel impossible at the start. Once you establish a few key abstractions for things like setting an intercepting heading or aiming weapons the game starts to feel more strategic and less like a grind.
I think this game is a great way to get some real experience with Rust concepts. I had never done much more than Rust tutorials before starting Oort and I definitely learned a lot in this game. The game doesn’t make any effort to teach Rust concepts, but if you’re willing to learn as you go, it sets the stage for a fun learning environment.
Space Traders
Space Traders is a more slow-paced fleet management game controlled entirely through an HTTP API. It acts as an empty canvas for you to fill in all the blanks. You can choose your own language, tools, and even objectives. You can choose to build a beautiful dashboard UI on top of the API, create a sophisticated AI to automate the completion of navigation, mining, and trading, or anything in between.
The API for Space Traders is remarkably detailed. Early in the game, it feels like too much to keep track of, but as you build up helpers and routines the experience improves. The learning curve is manageable, especially given how well-documented the API is and the very helpful Getting Started guide.
This game requires a bit of internal motivation to keep progressing, but I like the open-ended style. Sometimes when I play I feel like exercising my frontend skills, so I spend time refining my dashboard and controls with CSS tricks. Other times I work toward improving my automated missions and overall strategy. Both are fun ways to explore new technologies and techniques.
Playful Learning and Honing Your Skills
If these games sound interesting to you I hope you’ll give them a try. You can have a lot of fun and learn a lot from these. These types of games are a great way to continue honing your skills without feeling like it is extra work outside of work.