Hello All ^.^/
I'm a hobbyist programmer and for fun lately I've been working on making a rendering/audio/physics/game engine from scratch. For example, no asset audio files but rather generate audio buffers procedurally at runtime, etc., really making each component myself for fun. On the physics side I wanted to try mimicking marble blast physics and I am at a stage where I am happy with the results and wanted to share with a crowd of marble blast enjoyers that can appreciate how unique and responsive marble blast physics is. Getting a basic 3D physics engine working, that is both robust and performant, was a challenge.
Once I got the base physics engine working the next steps were adding marble blast features such as gravity changing or jump pads. This was fairly quick work to add on top of the already-completed physics engine.
Making my own engine also allows me to make some interesting design choices. For example, curved surfaces use implicit surface collision detection rather than the usual 'break into convex collision bounds for testing' and fully raytraced reflections are incredibly performant on even older hardware. The reflections are ray<->object intersection checks with defined volume hierarchies per level. If geometry is limited to simple convex shapes this is very fast. Of course, implicit surfaces still require raymarching which can be a drain on frame time on older machines, so there is still room for improvement.
I should wrap up before I ramble on too much, but if anyone wants to chat about marble blast, physics engines, or game development in general, let me know
I'm a hobbyist programmer and for fun lately I've been working on making a rendering/audio/physics/game engine from scratch. For example, no asset audio files but rather generate audio buffers procedurally at runtime, etc., really making each component myself for fun. On the physics side I wanted to try mimicking marble blast physics and I am at a stage where I am happy with the results and wanted to share with a crowd of marble blast enjoyers that can appreciate how unique and responsive marble blast physics is. Getting a basic 3D physics engine working, that is both robust and performant, was a challenge.
Once I got the base physics engine working the next steps were adding marble blast features such as gravity changing or jump pads. This was fairly quick work to add on top of the already-completed physics engine.
Making my own engine also allows me to make some interesting design choices. For example, curved surfaces use implicit surface collision detection rather than the usual 'break into convex collision bounds for testing' and fully raytraced reflections are incredibly performant on even older hardware. The reflections are ray<->object intersection checks with defined volume hierarchies per level. If geometry is limited to simple convex shapes this is very fast. Of course, implicit surfaces still require raymarching which can be a drain on frame time on older machines, so there is still room for improvement.
I should wrap up before I ramble on too much, but if anyone wants to chat about marble blast, physics engines, or game development in general, let me know
