An underwater VR experience
Fintastic is a Virtual Reality game taking place in a beautiful underwater environment at the bottom of the ocean. The player uses a net to catch different fish, to then match them to and put them into the right baskets. How many fish can you catch before the time is up?
Our main goal with this project was to create a game that anybody can enjoy. We wanted it to be simple enough for kids to play, but still fun for adults. We also wanted the environment itself to be an experience, where the user gets completely immersed in the underwater scene. It was also important to us for the game to have intuitive interaction, to make the experience feel natural.
In Fintastic we explore advanced graphics in terms of animating and rendering a realistic underwater world. To create a realistic underwater experience, one of the most important parts is simulating realistic lighting and light caustics. Another important visual aspect is the underwater movement, both movement of the fish and of the player. To create our graphics and interactions we've used Unity, SteamVR and Blender. Unity is a popular game development platform that allows us to collaborate with the help of GitHub.
Our main challenge in creating this game has been to study all the different aspects of water and to be able to simulate them in order to create a realistic underwater experience. One of our biggest technical challenges in the beginning was collaborating and working within the same project files. It happened several times that we were working on the same things at the same time, which led to, sometimes not fixable, merge conflicts when trying to push everything to GitHub. We had to learn from our mistakes quickly and have since then become much better at dividing our work.
We all have different knowledge from before, so we've been in charge of what we're good at. We've also taught each other and pushed ourselves to learn new things. Our biggest goal within learning has from the start of this course been to learn more about working in Unity and about how to create a realistic looking environment.
To learn more about underwater movement we read about the simulation of a school of fish and their interaction with the natural environment. The article “Animating Predator and Prey Fish” by Sahithi Podila and Ying Zhu defines 12 different fish school maneuvers when attacked by a predator and discusses their implementation in a three dimensional animated environment. Another article that we studied during the project was “Real-time Underwater Caustics for Mixed Reality 360° Videos” by Stephen Thompson, Andrew Chalmers and Taehyun Rhee. In this article they present their implementation of highly tweakable underwater caustic lighting for matching lighting of 3D objects with real underwater video footage.