Bring Back Winter! was a 2D physics puzzle game developed in collaboration with Simon Kallweit and Marcel Marti in Spring 2014. It participated in the ETH Game Programming Competition, where it won the Jury Prize for Best Game.
My main job on the team was to create a robust, real-time 2D fluid simulation, including rendering and user interaction. I evaluated different options for the fluid simulation, and ultimately chose to write a 2D Smoothed Particle Hydrodynamics (SPH) implementation featuring surface tension and robust pressure solves in order to fit within the requirements of the game.
The simulation had to run in real-time to be usable for the game, meaning that performance was a top priority throughout development. For this reason, I spent a lot of time on optimization and accelerated the simulation using SIMD and multithreading. To achieve full SIMD utilization, multiple particles have to be solved in parallel within a single SIMD register, requiring a complex sorting and alignment step each frame to group particles within close proximity into joint SIMD vectors. The simulation supports up to 70'000 particles at 60FPS on an Intel i7 860.
For the rendering, I implemented isosurfaces and anisotropic Gaussian kernels for detailed surface reconstruction, based on the paper Reconstructing Surfaces of Particle-Based Fluids Using Anisotropic Kernels by Yu and Turk. I also developed a custom aeration and diffusion model to simulate air bubbles transported within the fluid, creating detailed visualization of internal vortices and turbulence.
Finally, I also created most of the levels, implemented fluid-terrain interaction using distance fields and implemented all of the gameplay items that interact with the fluid.