Welcome to the devlog of november. This month I had a lot of time and thanks to my last black Friday's purchase, Alexa, setting up a good mood while programming has never been this easy.
This month I worked on.
- Fish mutation
- Physically-based particles
- Portal Metroidvania like behavior
- Huge performance boost
- Physic optimization
- Rendering Optimizations
- Garbage Collection optimizations
- Minor(particle generation, better in-game text visualization)
- Level Editor(layering)
I've changed the algorithm of the fish generation to make it even more random and sometimes
a fish will have inverted or missing bodyparts that will create monstrosity like this:
The player will now get affected by every particle inside
the game and this will create cool game mechanics
Huge performance boost
After several nights of profiling the game, I was surprised
that the biggest bottleneck inside the game were: physics calculations, and the frustum culling performed by unity.
To fix those problems I wrote some custom systems and did some smart optimizations:
- Enable/disable rigid bodied based on the distance from the player
- Automatically group objects inside quads and only shows the quads that are visible(using the good old bounding box) by the camera
- Located and fixed every garbage allocation(most of them were inside the AI system), inside the code to avoid the garbage collection and ugly lag spikes.
- replaced every Coutourine with tasks when I could since Coroutine allocates garbage every time they are called.
- used Sprite Atlas to batch multiple sprites inside a single draw call
- Removed every unnecessary polygon collider with basic geometry shapes
- Optimized physic layers, by removing unnecessary casts between layers.
Particle generation and better in-game texts
I improved the algorithm that generated the bubbles of a current to increase/decrease
his size and particle count based on the volume of the shape that they are spawned in
I also changed the way texts are displayed inside the game:
Stalactites are cool and will improve the overall mood of the game
The level editor got a huge boost in the user experience and also
a big feature that everyone(only me) was waiting for:
the layer system to create cool graphic effects.
I will make an article on the level editor because it's really complex and deserves his own post
to explain in detail everything that you can do with it!