VoxaEngine - C++ 2D Game Engine

VoxaEngine - C++ 2D Game Engine

18 devlogs
71h 4m
•  Ship certified
Created by Hat Dealer

Voxel based game engine capable of sand falling style simulation, heat and pressure calculations, fire spreading, physics and much more!

Now with OpenGL rendering!!

I know this doesnt 100% follow the definition of a "voxel" but pixels would be wrong too and calling them squares would be just sad

A lot more info in github README! <3

Timeline

Made a custom cursor that can change size based on placement size, if the player has a gun equipped etc.

Also reworked shader logic to be separated into multiple files with .vert and .frag extensions

Update attachment

Long time since the last devlog lol, been busy with work and stuff. Updates should be now more frequent.

Reworked player movement to be physics based instead of just moving the player manually, this enables me to easily push and get pushed by objects and for the player to be affected by explosions and much more

Temporarily removed particles from explosions since it could sometimes cause crashes. I will probably fix this in the next update

Update attachment
Hat Dealer Hat Dealer about 8 hours ago
This will be reworked later since the game thinks that the barrels and the player weigh like 100 tonnes so the forces arent really accurate 💀
Youssef Youssef about 8 hours ago
SOnic speed lmao

Added buoyancy, voxel objects can now share heat with their enviroment, melt in hot enviroments etc. Started working on the player being a physics object for more dynamic control (probably gonna be the next update)

Update attachment
Youssef Youssef 9 days ago
nice, also should the center of the grarivty stay in the border top of the water :nerd: , lol jk its good

Ship 1

0 payouts of shell 0 shells

Hat Dealer

15 days ago

Hat Dealer Covers 15 devlogs

Fixed rendering of non-physics sprites, added a debug crate because why not

Update attachment

Voxel objects can be split up into smaller parts. Bullets should be now 100% accurate and added vcpkg support

Voxel objects are now affected by explosions. They can be partially destroyed, fully removed and thrown around with explosions. It is also now very easy for the simulation to interact with the objects. Made some effects for explosions to look better

Made the game objects consist out of actual materials. this means that for example the barrels in this video are made out of metal squares so it could be partially destroyed, melted, rusted or anything else when I decide to add those interactions.

Previously the objects were just a sprite but now its dynamically generated from those squares. the mesh is also dynamic. You could easily modify the object at runtime like cutting it and it will modify everything by itself correctly.

also added a object registry and such for easy and fast generation of objects

Added WIP physics! A lot of stuff is still missing but the basic concept is working.
Next I will have to rework how game objects work almost entirely and generate a dynamic mesh the same as I do for the ground

Had to rewrite a large chunk of the previous code but mesh triangulation now fully works and will soon be used for physics! Took a lot of debugging lol

Made a system to generate outline meshes for chunks using flood fill, marching squares, douglas peucker algorithm and much more. Also refactored some older code. The mesh will be later used for physics objects

Added a special shader to showcase heat. Really hot objects will now give away a faint glow and you can toggle a button to show heat around the cursor more clearly. Also merged the beta branch to main branch since all the features have been successfully ported to OpenGL

Added sprite rendering + updated player behaviour. Also fixed some bugs and everything should be more stable

Added text rendering using OpenGL and FreeType. Text can be aligned with the world voxels or displayed statically on screen.

It took me so long to debug the font textures not being avalible on the GPU but after several hours it finally works. My brain has turned into a mush from so much debugging

Added a shape rendering shaders to help me debug some stuff. I can now trigger a debug renderer to see extra stuff and gonna expand it soon to show text an much more which will be a bit difficult since OpenGL doesnt have just a build-in function to render text

Fixed fire rendering and made fire just a bit better

Update attachment

Updated the README 'n stuff

Hat Dealer Hat Dealer about 2 months ago
The new readme is currently only in the beta branch btw!

Added rendering for particles like the laser and the flying pieces of voxels. Optimized OpenGL rendering even more and I can now get around 6400fps on avarage (with SDL2 renderer it was more around 120fps)

Hat Dealer Hat Dealer about 2 months ago
Yess, It’s mainly thanks to the sand falling simulation running on another thread!
Oasis Oasis about 2 months ago
6400 fps is a lot :)

Started remaking the engine renderer with OpenGL vertex and fragment shaders instead of the build in SDL2 renderer.

Since there isn't any voxel based renderer I can use I have to make everything myself to get preffered performance

With the new renderer I can run the simulation with the rendering at around 1300fps on my computer instead of the previous 120fps

The next few updates will consist of optimalizing the renderer even more and adding text, object and player rendering