CEREBRO: The Virtual Lab
An engaging game to assist the learning of neuroanatomy.

WATCH THE TRAILER!
The Project​​​​​​​
​​​​​​​CEREBRO: The Virtual Lab is a mobile game is designed as an educational tool to assist in the learning of neuroanatomy.
Gamification of education can have a positive impact on engaging students. The brain is difficult to learn about and understand. In 2018, Dr. Claudia Krebs at UBC Faculty of Medicine approached the Centre for Digital Media with the idea of creating a mobile game that might help students improve their memorization of brain structures for their neuroanatomy courses. We have developed a multimedia approach to neuroanatomy education that is both interactive and engaging, based on UBC’s open education resources on neuroanatomy.ca. 
The aim of this project is to turn these resources into a game where participants can explore the brain and compete with their peers. The challenge is to take a very didactic and educational resource and turn it into a fun and engaging game without compromising the academic rigour.
CEREBRO: The Virtual Lab is now available to download on Google Play!
The Team​​​​​​​​​​​​​​
Our team consists of seven members: project manager Julia Lastovikova, UI/UX designer Sean Jeon, lead developer Kim Burke, lead artist Zoe Zhang with three new members: part-time developer Wayland Bang, lead animator Meghan Ang and myself. I worked as a full-time programmer in the team, in close collaboration with the two other developers. 
My Contributions​​​​​​​

In our first sprint, I was tasked with creating a leaderboard prototype. With the help of CDM faculty member Bill Zhao, I set up the database with three tables for user login, user progress and team leaderboard. In Unity, a UnityWebRequest was configured to send form data to the server via HTTP POST. On the PHP side, it accepted the form input and runs MySQL script to update the database. At the end of the sprint, I successfully established the communication between back-end and front-end. Using this prototype, our lead developer Kim went on implementing the database for creating accounts and updating user scores.
 I was tasked to build a prototype that uses joysticks to control the character's movement on the blood vessels. I developed player control scripts that use raycasting to align the character to the ground and rotate it accordingly. However, the extra degree of freedom gave the character opportunity to travel around the blood vessel. As the camera follows the character, it would cause a huge amount of disorientation. 
And then our client inspired us to switch to another game mechanism. She suggested the user can tap on the hotspots on the blood vessels to direct the character to go to certain places. I researched Unity’s built-in AI navigation system which contains navigation meshes that are created automatically from the scene geometry and NavMesh agent that is capable of pathfinding and spatial reasoning. After experimenting with generating navigation mesh from the blood vessels and game mechanics that control the character’s movement depending on where the player taps on the surface of the arteries, we pivoted from the joystick control to navigation mesh.
​​​​​​​Since the pivot, I have completed a wide range of tasks to implement the game experience in Unity, especially around navigation and interaction with enemies, such as collision detection with patrolling enemies and particle effects. I also implemented the User Interface that tells the player which artery the character is currently on and how many enemies remain to be found. 
I also worked with Wayland to implement a world view where players can also zoom out to see the entire cortex 3D model and labelled blood arteries.
The Challenges and Lesson Learned
When we decided to use Unity’s built-in AI navigation, I faced the challenge of dealing with disconnected navigation mesh. The navigation mesh automatically generated from the blood vessel did not cover the non-horizontal surface. For example, the Basilar Artery was a vertical section where it was too steep to generate any navigation mesh on it. I came up with the idea of adding a teleporting feature between two points. Once the character collided with the portal, it would be transported to the high point. This solution not only resolved the area unwalkable issue, but also added some fun elements into the game. 
Two days before our delivery day, we found out the blood arteries were misplaced by 90 degrees, which required loads of revising work in a very tight schedule. When I tried to think about when and where went wrong, I traced back to a client meeting when we decided not to show our client the uncompleted work. If we had presented the client at least the development mode of the game, she would have pointed out the wrong placement and we would not have worked on the wrong blood arteries for three weeks. Through this incident, I learned a valuable lesson of don’t be afraid to show your uncompleted work to clients
Want to Learn more about CEREBRO: The Virtual Lab?
Back to Top