The Exigent Duality
Game Development Pipeline - 18:17 CST, 1/01/24 (Sniper)
I've almost poured a full-time job's worth of effort this past week into getting an end-to-end workflow going for modern game development. It involves:

  • Writing Haxe code against the HaxeFlixel Framework in Visual Studio Code on an M2 MacBook Air.

  • Drawing pixel art in the Mac version of the incredible "Aseprite", then using those tile sets and sprites within the Mac version of the "Ogmo Editor 3" level editor.

  • Composing and outputting music within and from GarageBand, also on the Mac, by using the "Magical 8bit Plug 2" plugin.

  • Performing native macOS, GNU/Linux, and Windows builds via a series of CI/CD shell scripts, which automate the build work and the shuffling of the files around my network.

  • Seamlessly testing the builds on the MacBook, Windows, and Steam Deck, hooked up to my CRT television.

After looking over all of the old game platforms, I've settled on the Sega Master System. I think 8-bit graphics are the most evocative, and the Master System is the best 8-bit platform of the bunch in my opinion. Once I decided on the system to imitate, I set about making a proof-of-concept game-- here it is running on my TV via the Steam Deck:



You can view all of my code and assets here. The song I composed for it is within that repo, if you want to give it a listen.

The game is a "Hi-Bit" take on the Master System: the music uses waveforms which are more similar to the NES than the PSG in Sega's system; I am using the exact tile sizes which real Master System games use, 16x16 with 16x32 "double height" sprites, with the authentic Master System palette-- but of course, I have "unlimited" memory and CPU performance, leading to a sort of "Sonic Mania" situation.

I'm absolutely thrilled to have this entire pipeline and framework in place. Now I can set about making actual games, versus this tutorial-based proof-of-concept. The parlor trick of every game I make is that each one is going to have a "CRT TV mode"-- everything will be designed to look beautiful on a 4:3 CRT with scanlines, with overscan compensated for in terms of HUD layouts and the like.

On modern 16:9 displays, I am going to have some cool border art, perhaps with optional information which is not critical to playing the game, and I will apply some kind of CRT filter to the output to give it as authentic of a look as possible.

Interestingly, the native GNU/Linux build does not run on the Steam Deck, due to that operating system having too old of a version of GLIBC. However, the Windows build works perfect with Proton! Once I finish an actual game and sell it on Steam, I will make sure it's advertised as being Steam Deck verified.