The engine uses a component-based object representation, which is common in modern game engines, and resulted in a generic and flexible engine.
We started with a raytracer to render implicit surfaces, like in our case the wave animation and combined it afterwards with a rasterization based pipeline. Afterwards we improved the quality by using physically-based rendering and adding some special effects like particle effects. Another big feature is skeletal animation combined with blend trees.
Apart of this we implemented also a physics engine from scratch, using common functionalities like rigidbodies, colliders, particles etc., but also advanced object- fluid interactions, to simulate the effect of buoyancy and flow forces.
The game IceWave is a demo of our engine.
[Lukas Prantl and Lorenzo La Spina]