2026-09-05 01:55:42
Suwako
gamedev
c++
vulkan
switch 2

【Volt Engine】Development Log — No. 003

Today I finished the collision detection system.
It is now extremely robust and highly accurate.
Surprisingly, it only took three days — which is pretty impressive for 3D.
In a sense, it has already reached the level of a basic physics engine.
I'll touch on that a bit later, but first the other improvements.

Toon Shadows and Lighting Accuracy

By getting the lighting right and making shadow rendering visible, the island scene became much more beautiful.
Even though it's just a test scene, I think it looks really nice now!

Graphics
Shadows
Light

This gave me more confidence for a proper game going forward.
I can say with certainty that I won't let everyone down anymore.

FBX Animation

I added support for FBX animation.
That said, Volt Engine already supports OBJ, glTF, and FBX, but going forward I'll focus on glTF (especially GLB).
So far it's the best-performing format, not overly difficult, and the most complete.

Fully Accurate Character Collider

I improved the character collider so that it is now fully accurate.
Early today I also found a bug where the player would fall through the floor.
That's not good.
I fixed it on the spot, then mashed the A button on Switch and Switch 2, and the spacebar on PC, to confirm the bug was gone.
I mashed it so much that my coworkers at my day job burst out laughing at the keyboard noise.
I'm using a blue-switch mechanical keyboard.

Dynamic Events

Yesterday I already introduced colliders and triggers.
This time I'll introduce the third collision type: "Dynamic Event".
A dynamic event is a combination of a collider and a trigger.
It pushes back like a collider, while also reacting to collisions like a trigger.
On top of that, dynamic events are not fixed to a specific position in the world — they can move.

This time I added a flying carpet I quickly made in Blender.
I barely spent any effort on the looks since it's just to demonstrate the feature, but I made sure it wasn't just a rectangle.
The event works like this: the carpet waits at a specific spot; when the player collides with it, it moves up, goes forward, descends, then warps back to its home position.
After that it checks whether the player is still on the carpet; if they are, it repeats the sequence; if not, it stops.

That's all