“Apocalyptic Rebirth” — An Udacity Teamworks Project
Once again, I get to participate in an awesome Team Project under Udacity’s VR Nanodegree. This is my third teamworks project and second project leading Team Aech — an awesome squad of designers and programmers from all over the world. Natalia Kaganovskaya (Ukraine), Ahmed Chehab el Dine(Lebanon) and Diana Cristina Culincu (Romania) and I have worked on a project before (Andromeda Initiative) and had a lot of success with it. It only made sense that we work together again!
The theme of this teamworks project was “Change”. We had an idea to work on a Virtual Reality butterfly effect game where users begin in an apocalyptic world and have 3 minutes to navigate the world and collect resources they want to use to build a future world. Based on resources collected, the user will be transported to a world that they can explore. The game is more of an experience and design experiment but we hope to build it even further by adding characters and more interaction. See below for the gameplay video:
This game was created for mobile VR using — Unity 2017.3.1p1 and GVR Unity SDK v1.70.0
This project was far more collaborative than our last. We worked in one scene and used Unity Teams to collaborate. Working in one scene only (by activating and deactivating objects) sometimes means that we had merge conflicts but overall meant that we had a much more streamlined game.
Our initial idea for our project was outlined in this detailed sketch:
We deviated slightly from the initial idea for because of time constraints but the concept generally remains the same as you’ll see below. The project took about one month to create. We did user tests for each other and shared our various skills/scripts to make an awesome piece of work. See some of the features we worked on:
The Audio Mixer switches music between different types of cities in the scene. Five AudioMixer groups were created for each world. For each option a snapshot was created and called by the AudioManager script using the TransitionTo() function.
The menu UI is simple, and is enabled by clicking anywhere on the horizon. When clicking on colliders or UI buttons the menu is not enabled to allow for interactions. The menu script looks at the camera and will display the menu depending on its position and orientation.
The menu also has a map that describes where objects and users are, a countdown timer of 3 minutes and a scoring system that shows how many objects have been collected.
A simple blending script that smoothly transitions the skybox from the apocalyptic scene into the skybox for the new world spawning. I’ve written a mini tutorial about how to do this here.
The SpawnGameObjects.cs script creates pickup items at a random time interval ranging between variables called “minSecondsBetweenSpawning” and “maxSecondsBetweenSpawning”. The object to spawn is a prefab game object (a resource) and is instantiated in a random position (x+-100 , y, z+-100), where x, y and z are the container’s game object position (which we initialized to (0,0,0)). In order to not overload the scene with un-picked pickup items, every pickup prefab has attached a Timed Object Destructor which removes the item from the scene after 60 seconds have passed.
Diana led the way working on an auto-walk script that allows movement of the camera in the direction that the user is looking and stops when the user looks on the ground.
The game was controlled by an awesome game manager controller script, lead by Natalia. It includes all functions for the game and an impressive script for recognizing the game state.
Breakdown of Final Piece
The Apocalyptic Rebirth is an experiential game where users get to build a future world using resources collected. In the main apocalyptic scene, the user searches for and collects resources that include vehicles, wood, gold and tanks. The user has a limited time of 3 minutes to collect resources. At the end of the time, the user will be transported to a future world based on what resource was collected the most. See below for the worlds:
Apocalyptic World (main scene):
Pollutant Military City (resource: tank) by Ahmed
Egyptian Kingdom (resource: gold bar) by Ari Michelle
Natural Wonderland (resource: wood) by Natalia
Futuristic City (resource: vehicle) by Diana
The user can play again to explore a different environment by selecting different resources to collect.
This project was more of an experiment in design and scripting than a full game. We had a lot of fun coming up with ideas to make our worlds feel realistic and exciting. We’re thinking of implementing more interactivity in the game by including enemies in the apocalyptic scene, more resources and games/missions in each of the worlds. Hope you liked our game and learned something cool about VR reading this!
Team Aech thanks you!
The project made use of the following assets from the Unity Asset Store:
- POLY STYLE — Sci-Fi City Customizable Pack
- DL Fantasy RPG Effects
- Sky City Lite
- White Smoke Particle System
- Free Desert Plants, v1.0
- Dark Future Music, v1.0
- Ruins Creation Kit, v1.2
- Altar Ruins Free, v1.0
- LineParticle 1.0, v1.1
- The Blacksmith: Environments, v1.0.3695
- Big Vegetation Pack, v1.0
- Industrial City Pack 1.2.1
- EasyRoads3D Free v3 which simplifies the process of building roads
- Storage Building 1.0
- Container 4.0
- Free Barrel Model Pack 1.1
- ProGrids 2.5.0f0
- Cartoon Temple Building Kit Lite
- 1X1 Desert Sahara Dunes 1.0
- Medieval Gold 2.0
- Treasure Set — Free Chest 1.0
- Egyptian Cartoon Pack (interior/exterior) 1.6