Home

2024

Worklog

LETSGO Game

Building A Music Engine
Building A Music Engine

Building A Music Engine

Tags
Owner
J
Justin Nearing
🎶
This is part of a ongoing series called Building A Music EngineBuilding A Music Engine

It documents the process of me smashing my head against the keyboard to build a game called LETSGOLETSGO

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 LETSGOLETSGO 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 LoopDesigning 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 NewRefactor 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 MachineBuilding 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 LLMsGenerative Music Without LLMs

Finally the fun part: Generating musical compositions with player input.

Also, this is the hard part.