Native Ruins is a 3D survival game made for a school project at the Université du Québec à Chicoutimi (UQAC). The course is the following : Design Principles and Video Games Development (8INF955). You play as Judy, a young 23 years old woman, who wake up on a desert island. Her goal is simple : escape the island. To done it, she will need wood, rope and a sail to build a raft. As she goes through her adventure, she will discover totems that will give her more abilities useful to archive her goal.
- → Apply basics principles of game development with tools used in industry
- → Earn video games development cycle and basics analystics documents
- → Apply game design practices, game balancing, etc.
- → Apply SCRUM method to provide quick and regular feedbacks
Game Design Document
For more details about the game and the core mechanics, take a look at the Game Design Document. Some details were modified due to deadlines. This document contains 8 sections which are the following :
Click here to take a look at the GDD : Game Design Document - Native Ruins.
Native Ruins is survival, open world game. The player can have fun discovering the island and also by solving puzzles. It takes around 30 minutes to finish the game if the player doesn’t get too lost in the island.
Here a list of main features we implements in this video game :
To make animals move, we decided to implements a steering behavior scripts based on vector forces. By doing that, we did not used the navigation mesh (NavMesh) already implemented in Unity. The class diagramme is available on the same section. By doing that, we let the possibility to improve animals movements way easier like squirrels going up on trees. This movement will not be simple to make only with Unity’s NavMesh.
Finite State Machine (FSM)
We also decided to implements a Finite State Machine to describe animals behaviors. This allow to make human like behaviors and make it more realistic.
The agent delegate behavior transitions to the StateMachine class that take care of calling exit(), enter() and execute() functions.
We decided to code it from scratch and did not used Animation State Machines which could be useful in our case. But we had more controls by doing it that way.
In addition, as we can see in the class diagram, additional states can be added easily to the pattern and update agent behavior.
The only requirement is the relationship with the State
Our game contains two jumping puzzles.
The first one can be accomplished at the beginning of the game when the player hasn’t got any additional abilities yet. Those will be later add, thanks to spirit totems.
Native RuinsEnigme 1 - First jumping puzzle
- Climb on the tree.
- Jump four times on the closer rock.
- Climb the second log of wood.
- Make two running jumps to continue.
- Fall on the inclined rocks and jump at the right moment to land on the rock.
- Jump on the next rock and finish by a running jump.
- Press E to obtain the bear totem.
The second puzzle requires all the spirit totems : the bear totem and the wolf totem. That’s why, it’s the last puzzle in the game.
Native RuinsEnigme 4 - Second jumping puzzle
- Jump on the tree and go at the end.
- lift the tree by using the bear transformation.
- Use the Puma transformation to run and jump on the rock.
- Press E to obtain the rope.
This puzzle is inspired from Prince Of Persia : the player has project a laser coming from a point A to another point B to lift a fence. He can move mirrors along the room to allow the laser beam in the right direction. To not frustrated user with this puzzle, we decided to restrict to the maximum mirrors movements.
We also added the following constraint : mirrors can only be moved in bear form. This helps keep the puzzles order we decided.
Native RuinsEnigme 2 - Mirror puzzle
|Moving bears initial positions|
- Transform in Bear form.
- Push the closest bear in front of the beam.
- Push the second bear to hit the further mirror on the other side of the room.
- Push the last moving bear on the right to meet the beam.
- Once the gate's open, Press E near the sail to pick it up.
Finally, we created an action puzzle where the player has to destroy rocks with his bear transformation. This puzzle is simple but it’s the player’s job to find out by himself the correct way.
Native RuinsEnigme 3 -
|imaged Breakable rocks|
- Transform in Bear form.
- Run into rocks to break them one after the other
- Once the front rocks are break, walk to the totem.
- Press E to pick up the wolf totem.
Dialogues & Cut-scenes
Finally, we decided to creates in-game cut-scenes to have a better user-experience. We made a complex first cut-scene with player animations, dialogues and the game’s credits.
To make it, we implemented managers, that contains data structures, which take care of animations transitions or dialogues order. Others animations and dialogues are available when Judy discovers new items or when hints are needed.