Space Battle Arcade Dev

Profile
None
0 comments
25 entries
Advertisement
enigma_dev
May 08, 2022
DevBlog 26 - Finishing The Game!




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…

19,125 views
enigma_dev
April 24, 2022
DevBlog 24 - Level and Campaign Mod Editor




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 …

10,997 views
enigma_dev
April 18, 2022
DevBlog 23 - Light Speed VFX, Player Slow Motion, and Asteroids



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 …

8,874 views
enigma_dev
April 09, 2022
DevBlog 22 - Tighten Up The Graphics (Adding HDR, Bloom, Normal Maps, and more) [OpenGL 3.3]



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…

10,263 views
enigma_dev
April 04, 2022
DevBlog 21 - Writing a simple Audio System in OpenAL




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…

13,665 views
enigma_dev
March 27, 2022
DevBlog 20 - Stencil Highlight Targeting, Player AI, and Objective AI

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. …

7,656 views
enigma_dev
March 21, 2022
DevBlog 19 - Campaign Screen, Level Loading, and 3D UI



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…

10,919 views
enigma_dev
March 12, 2022
DevBlog 18 - Instancing vs Batching Graphics Optimization



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…

8,867 views
enigma_dev
February 27, 2022
DevBlog 17 - Adding Space Gameplay Objectives


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…

6,378 views
enigma_dev
February 13, 2022
DevBlog 16 - Objectives, Console, and Cheats



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…

6,200 views
enigma_dev
February 06, 2022
DevBlog 15 - Binary Camera Collision

How to stop a camera from clipping into models; without using raycasts (because my engine doesn't have easy an easy generic ray cast system).

My firsts idea was to just slap a collision shape around a camera, but this has some issues.

By surrounding the camera with an OBB (oriented bounding box), we …

9,661 views
enigma_dev
January 23, 2022
DevBlog 14 - AI Collision Avoidance Spheres




An algorithm created to make AI not fly into things (it's not boids).

The high level idea is to create avoidance spheres.

When an ai agent enters a sphere, it avoids the center.

The deeper the agent goes, the more avoidance it has applied to it.

The avoidance removes a portion of its desired direction …

5,276 views
enigma_dev
January 17, 2022
DevBlog 13 - Large Ship Collision Challenges


Adding hand-made collision to the large ships so that fighters cannot fly through them.

I tweaked the model editor so it can load in models to define collision shapes.

There now is an XRay mode that lets you see wireframe of the ship with colored rendering of collision shapes.

To debug collision in th…

8,082 views
enigma_dev
January 09, 2022
DevBlog 12 - Rendering Planets and Stars Without A Skybox


I've created a starfield environment to give the game some life.

no longer do you have to fly around in pitch black, getting lost in the void.

now there are stars, planets, and a local sun.  

the fighters are now lit via the local star's direction vector from the origin.

the planets are also lit f…

8,921 views
enigma_dev
January 02, 2022
DevBlog 11 - Player Camera (Quaterion Based) and Control


I created a camera system in c++ from scratch to control fighter ships.

fast fastest iteration, I created a tool to tweak parameter in real time, using ImGui.

this let me find the "feel" I was imagining for the ship, without needing to recompile code

being able to pilot the ships let me test fighting …

5,674 views
enigma_dev
December 28, 2021
DevBlog 10 - Making Dogfight AI Behavior Trees



Using the behavior tree system I created (Previous Update), I have created an AI brain that lets fighter ships dog fight one another.

I've created several sub trees.

there are subtrees to evade.

subtrees to dogfight.

I ran into some performance issues during rapid state transitions in the behavior tree…

7,126 views
enigma_dev
December 19, 2021
DevBlog 9 - Creating AI Behavior Trees in C++




I created a behavior tree system that is defined completely within c++.  

AI entities have a brain which spins up a behavior tree.

The nodes in the behavior tree are heap allocated, which I believe does have some noticeable performance cost.

The reason for this was to easily use virtual methods a…

11,545 views
enigma_dev
December 12, 2021
DevBlog 8 - Adding Instanced Particles

I created a particle system that uses instance rendering to efficiently draw thousands of particles with very little overhead.

I had a nondeterminism bug that renderdoc helped me solve.

If I recall correctly, the nondeterminism ultimately came from a delegate subscription happening in different order…

5,294 views
enigma_dev
November 26, 2021
DevBlog 7 - Stress Testing Projectile Performance In My Spatial Hash Based World Partitioning System



I've set up firing an a lot of projectiles to push performance to its limits.

To assist with this I created various debug tools, such as a projectile tweaker.

Projectiles are configured via a json file and can be serialized to the disk, and referenced by other configs (such as a fighter ship config).

9,190 views
enigma_dev
November 15, 2021
DevBlog 6 - Implementing slow motion and collision in my custom engine.


Time dilation allows me to speed up or slow down the passage of time.  The way this is implemented is rather simple.  The frame's global delta time is multiplied by a time dilation factor. As I prepared my space ship models for collision, I needed a way to test if it was working. Unfortun…

14,122 views
enigma_dev
November 07, 2021
DevBlog 5 - Mod System Load/Save and 3D Model Configuration Editor

How I made my custom engine project modifiable by the players.


So, I decided I wanted my game to be modifiable from the ground up.

To make sure the mod tools worked well and were bug free, I decided it was best to use them to build the actual game.

So, when running the game, you have tools available t…

15,487 views
enigma_dev
October 28, 2021
DevBlog 4 - Laser Frame Stretching

With editor ui and a level system integrated, I can visualize my idea for stretching projectiles.

It roughly works like this:

The projectile end points are determined based on delta time, and the distance between them.

The model is offset and scaled so that we can use one tip of the projectile as some…

8,760 views
enigma_dev
October 20, 2021
DevBlog 3 - Mod/Editor UI and Level System

Projectile editor with IMGUI!

In order to visualize the frame stretching projectiles, I needed to create a projectile editor. This required UI and Level systems to be in place. So must of the work here is just code under the hood, but not a lot of visuals.

This will be used to determine which grid no…

31,959 views
enigma_dev
October 10, 2021
DevBlog 2 - Ray Casting Through a Spatial Hash Grid


 My spatial hash grid has the ability to look up collision shapes within a given spatial hash cell.

But I did not really have the ability to easily query a line of individual cells.

If I wanted to trace a line through the spatial hash, I would need a shape encompassed the entire line.

This was ex…

20,859 views
enigma_dev
October 03, 2021
DevBlog 1 - Spatial Hashing and Separating Axis Theorem

To get better at c++, problem solving, vector math, programming, and rendering -- I embarked on a project to build a game from scratch in c++ and modern OpenGL.

The crux of this engine revolves around the collision system I wrote. Rather than use a library like bullet or PhysX I wanted to learn a bi…

10,984 views
Advertisement

Popular Blogs

shawnhar
Generalist
101 Entries
9 Followers
15 Entries
10 Followers
johnhattan
Programmer
1,277 Entries
47 Followers
ApochPiQ
Generalist
628 Entries
44 Followers
dgreen02
Generalist
338 Entries
56 Followers
Advertisement