It documents the process of me smashing my head against the keyboard to build a game called LETSGO
It’s gotten long enough to break into several sections:
Designing Sound
How do you even begin to start turning Music into a Game?
Programming Music: Constant Data
All music is math. Computers are good at math.
Unreal C++
This chapter is brought to you by PAIN
Actually Writing Some Damn Code
Now that my code editor works with Unreal, I can actually implement a thing.
Pointers Are Hard
First contact with un-trivial programming task in Unreal.
Days of pain grokking Unreal’s pointer system, mostly due to poor official documentation.
Figured it out though, which is an un-trivial milestone in Unreal development.
Building the Drum Machine
Building the actual thing ended up being really easy once I figured the hard part out.
Unreal Blueprints to C++
Coming back into LETSGO codebase after several months.
Simple refactor that made a real improvement, done quickly.
Highly gratifying after the slow, research-heavy Zig project.
Designing The Core Gameplay Loop
Use all the power of software design I can muster to turn this prototype into an actual game.
Refactor the Old Before Creating the New
Before I can build an actual game, I need to refactor an existing feature. I do it with great aplomb.
Building The Core Gameplay Loop
Started a new job, but kept building. I’d literally wake up at 5 am every day and put 30-60 minutes into LETSGO. And you know what, I finished the core gameplay loop (over the course of 4~ weeks)
Building A Better Drum Machine
With gameplay “Phases” now officially working in the game, I wanted to add some additional Phases to confirm it was acting as expected. I decided to add a “StartDrums” phase, and use the Drums as a way to build out Instruments in the game.
Generative Music Without LLMs
Finally the fun part: Generating musical compositions with player input.
Also, this is the hard part.
From Audio Chaos to Actual Music
I mean, technically musical compositions are being generated.
Generating pure audio chaos anyways. Let’s turn this into music.