It's over, I've finally completed my from scratch game project!
The final stretch has been far from glorious.
Rather than making features, it has been nonstop bug fixing.
To reach feature complete, I started just writing down non critical bugs rather than fixing them.
But after feature complete, I star…
A level editor that can be used to make mods.
I've strived to make tools that can be used to add mods to the game, and build the game through those tools.
This update brings the level editor.
You edit the level with a free form WASD camera.
You can create, save, and load level JSON files …
The Space Jump effect is pretty simple when looking at its individual components.
Previously I created a 3D star field for the environmental rendering.
I use the 3D locations of these stars in the effect.
When the effect starts, I start cranking up the light emitted for each star.
This is done by just …
I've refactored the rendering system in my engine.
The old way of rendering was complete in SDR.
In this update I created a separate off screen framebuffer that everything is rendered to first.
This offscreen framebuffer is a float framebuffer, and can store values outside of the normal [0,1] r…
Adding audio to my engine.
I used OpenAL as the API is similar to OpenGL, the graphics API of this project.
I've added sounds to ship engines, lasers, explosions, UI, and more.
OpenAL makes Doppler effects easy, it just works out of the box.
I know there isn't sound in space, but I'm take…
Making the game fun with AI and a useful HUD.
The HUD now has helpful elements like health, energy, and game stats.
But I found the debug lines to the ships that were attacking me, actually made the game more enjoyable.
So I polished that up and made a real HUD system that has the debug lines. …
A from-scratch C++ dynamic 3D animating UI system using spatial hash grid!
I've defined my game's main menu using this system.
Buttons are constructed from shared "lasers".
That is, when we go a screen, the buttons request lasers to make up their shape.
These lasers are requested from a pool, an…
Using profiling to inform coding decisions; a real life example.
To start off, I added the ability for ships to respawn. Giving some forgiveness if the player dies.
That works by adding a spawn component to the entity that needs to respawn fighter ships.
When respawning, you need to know how lo…
What should satellites do gameplay wise? What about generators? Turrets are obvious
I made these models before having an idea of what they will do in regards to the player.
I set up the turret so that it follows the player and fires at them, if on an opposing team.
There were some challenges getting t…
What's a game without something to do?
My ships can dogfight one another, but there was no real match progression.
I created some objectives that must be destroyed on the large carrier ships.
After destroying all the objectives, you can destroy the carrier ship.
So, it becomes a race to see whic…