June 17, 2025
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
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
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)
Fixed rendering of non-physics sprites, added a debug crate because why not
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
Updated the README 'n stuff
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)
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
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
This was widely regarded as a great move by everyone.