The Start of the 20 Games Challenge
So I am a game developer now?
No, no I am not. That is why I have started the 20 Games Challenge that I will be trying to finish over the course of the year. Throughout my education and career I have dipped and dabbled in various forms of programming. From using basic VBA to make excel do functions that my calculator already could do (Looking at you Euler...), to using C to construct fluid dynamic simulations for under water robotics. Now, do I remember any of this? Hell no. I have been working as a systems engineer (you think I would be a good programmer with a title like that eh?) for the better part of 10 years. But I would always consider myself technology adjacent. Not quite in the weeds, but I get how things are supposed to work on a big picture kind of view.
So, why the switch you ask?
Again, I just want to make somehting. Something that brings joy. Now what better joy than video games. Between my prolific collection of various hobbies such as: surfing, paddling, hiking, reading, boardgames, cooking. I like to find time to sit infront of a screen and pull my hair out by dying to the same boss 1000 times. Well, really I would consider myself more a cozy gamer as I am just absolute dogshit at games. I like playing on easy difficulty, though I will bump it up if a game is too easy.
So, lets add to that hobby list and start MAKING games. This should be fun. Like I said, I do have cursoury experience programming things. I am familiar with command line (I run Arch btw cough cachyos cough), and can spool up a VBA script like the best of them. So, why not completely screw myself over and learn Rust game dev, the hype is worth it right?
How do you learn?
Very poorly. In this age of AI handholding and fever dreams I find it hard to learn. Well, really, overall I find learning hard. I am the type to learn from example, the kind of person that needs to be shown how to do something along with the why. And that make AI just an unbearable crutch that I should try and avoid. But oh god is that crutch just so tantalizingly sweet, sure I can just ask it for a quick example of a movement controller. No harm in that (besides the forest water table it just decimated), oh sure why not get it to integrate that into my current code base? Oh... Oh god no... it has now written the odyssey in my code and I can't read or understand anything. So yeah, on a moral principle alone, remember the forest it burned down, I try to avoid AI and actually read and understand the code I use. So that means that I have to blech read the docs. Remember how I said I am an example kind of learner? Yeah, reading the docs is not like reading my latest Fantasy or Sci-fi series I got on deck. It's boring as shit. Eventually, after I bumble through the docs, find a few human made examples (which might have AI influence who am I kidding). I can eventually create something.
How is it going you ask?
Well, I made pong. That's step one right? I started out using the Godot-Rust Library cause sure everyone says to use Godot, but I like being different. Now the godot rust library is quite well flushed out, I would say it is indeed production ready! But then I tried to make an itch.io web release using Godot-Rust, and that shit is experimental for sure. The RUSTFLAGS for the web release are behind the nightly toolchain for rust since the nightly incorporated one of the flags already. But then the Godot-Rust crate really needs that flag stated, or something, I am sure it is gonna be fixed at some point. But I started this challenge with the idea of making a game for GMTK next year in 2027. Now I could just submit a linux, mac, and windows release to that game, but the web deploy is oh so sweet. So, let us now try bevy, which I have been using for the past year or so off an on. Never actually got to make anything with it worth while, but then the lovely Tainted Coders Pong was screaming my name. So I went through that, and made pong again. Though I must admit, this tutorial is well put together and thuroughly explained, the game does need some expansions for funs sake. So, like it suggests at the bottom of the tutorial, I added Avian 2D physics to handle the colliders and the like. Now, as a first pass this game is pretty rough. I don't have any custom assets for it or any sort of sound design, menues, UI and the like. Though at this state, I am quite tired of pong as revolutionary as it is. So, I think I will leave it here for those interested and move on. The Rusty Pong source is here for anyone interested. You can install rustup, download the source, then cargo run it for a laugh at my first foray into actually making a game.