Games

One of my earliest motivations for learning to program was to create video games. In the early days, I learned C well by reading the book Game Programming All In One and then building off of it. I've always found that finding a way to gamify a concept is a useful way to learn.

Twenty years since first learning to program, I've now developed game engines in Python, Rust, and Java which I continue to iterate on in my free time. I enjoy developing engines and building demos.

My most mature game engine is Andromeda. It is written in Python and was used to implement a vertical scrolling shooter called Kill The Aliens. Since creating it, I've noticed that the "bullet hell" genre is an art form in and of itself, and have been developing it further in that direction.

While developing Andromeda, I decided to try my hand at using the Godot engine and C# to create a 3D game. The result was Panzer Deathmatch 3D. The game is a tank battle demo with networked multiplayer. I took many architectural learnings from Godot back to my custom game engines.

Around 2020, I developed a love affair with Rust while recovering from Python runtime errors. I started on an experimental game engine project called Mercury, with the goal of supporting multiple platforms from the outset. I targeted PC and WebAssembly and it proved to be a very interesting project.

Post by @tnibert@fosstodon.org
View on Mastodon

From that point, I decided to create a less experimental game engine in Rust called Neptune, as well as a comparable engine in C++ called Venus. These heavily borrowed architecture from Andromeda.

I have an embedded itch and thus ported Neptune to the Gameboy Advance in the form of Pluto Engine. The resulting game is a bare metal embedded application targeting the ARM architecture and implemented in Rust.

Post by @tnibert@fosstodon.org
View on Mastodon