- Developed with Java and libGDX using a OpenGL ES 2.0 renderer.
- Water waving movement accomplished through physical simulation of an interconnected spring chain.
- Splashes are rendered using blobs. Each blob is rendered as a gradient alpha-map to an off-screen Framebuffer with additive blending. This Framebuffer is then mapped to a full-screen quad discarding low alpha fragments to create smooth blob merging and unmerging.
- The background, fishes and rocks are also rendered to an off-screen Framebuffer, which will serve as an input texture to the water shader. This shader will map it with a perturbation, simulating water refraction.