Play It Here
A 3D adventure game about travelling through a large, harsh snowy environment with your dog companion, looking for the last bastion of warmth in a world freezing over.
You avoid, or confront, wolves and bears and try and stay warm by collecting warm thermoses or finding fires by campsites.
This was a game made by myself and three others for a unit for University.
I was the programmer and lead designer for the project.
Character models, environmental object models, rock textures and some log textures were done by the others, everything else was completed by myself. This was just due to varying schedules of group members and each ones knowledge of the Unity Engine.
The games story was conceptualized and I begun working on mechanics.
- Movement controls
- Projectile system
- Stealth/Enemy detection
- Navmesh Agents
- Warmth management
- LOD system
First I created some box enemies and set up the player with simple controls and animations. The player could walk, run sneak, jump & throw objects.
Movement & Projectile
Next was getting the projectile system working. this was a simple system of Instantiating an object with a velocity based on the direction the camera was facing. Hit detection was added much later down the line.
Enemy Detection & Navmesh Agents
I made a few simple enemies and begun using Unity’s navmesh agent system to code in a patrol system with the help of some tutorials.
I got the agents to detect patrol waypoints of a given area so I could set up specific patrol locations for each enemy.
Next I worked on how the enemies would chase the player. If the player entered their search radius, they would then cast a ray towards the player, of a certain distance and move towards that point.
Players were detected by 2 means. One by an area search, when players were simply moving around, the second by a single sphere cast when the players are sneaking. This is so the players could hide behind objects and other environment pieces, but also be detected if they weren’t sneaking behind that object (demonstrated below).
There were absolutely no hurdles along the way…..
Warmth Management
This would be the incentive that drives the player forward. If they are away from a fire/warm zone, ice crystals will freeze over the screen slowing the player down and eventually kill them.
There were two ways to get warm, stand near a fire, or collect thermoses of hot soup left behind by other travellers.
The ice visuals were put together in photoshop using a stamp brush.
LOD System
Next up the Level Of Detail system. We wanted to create a larger level which wouldn’t put unnecessary strain on any machine it ran on, so I set up a simple 2 stage LOD handler.
This was a script attached to the player which detected objects nearby and swapped them for their high-poly versions.
This system was extended to all environment objects, not just for the trees as seen above. a more comprehensive look at its functionality can be found here.
Level Design
Next I made the area in which to play and begun putting all the elements together!
It was interesting trying to create zones to encourage the player to sneak or run through. I went with a linear flow to the level itself and used the landscape slopes to guide the player through.
I added things like sun flares, fog particle systems, a day-night cycle and normal maps for all textures to give better atmosphere, feel & look to the entire level
UI & Menu Design
We wanted to keep the UI simple and have minimal things on screen. We thought of always displaying health or a ‘warmth meter’ but decided that showing always showing you these things breaks the immersion a bit.
For the menus we didn’t want to change any scenes, and have the players already in the game upon starting. Where the player stands up for his journey on ‘Start Game’ press.
Rigging & Animations
I didn’t have time to do any of my own animations and the others never found time to create any, so what we have was sourced from Mixamo, the adobe animation repository.
I then tried my best at rigging the character model in blender. This was my first experience with rigging, so I think I did okay. Though I couldn’t isolate a single vertex which would stretch a portion of the characters head into a spike…. (D’oh).
Everything Else!
I put a lot of time into creating the sounds and effects for other things, adding grasses and snow covered assets. But they can only be experienced by playing the game, so here’s a little showcase of the final product:
And you can try it yourself with the link below!
***All other assets were created by myself or generated using a text to image AI
Try the game out HERE!
Github repository with all the code for you to comb through too 🙂