Production Time: January 2021 - December 2022
Software: Unity, Maya, Photoshop, 3DCoat
Team: Solo
Focus: System Design
​
Fight against time and the frigid cold to ensure the survival of the last humans from Earth in this 3D city survival game where you control a robot caretaker trying to feed and keep the population sane! Crashed on an alien planet, you're helping a group of humans to survive the harsh cold by managing scarce resources and balance the needs of the humans against your own.
​
This project is my thesis project where I focus on the interaction between resources systems. My key goal is to create a set of systems that are robust and easily editable, making use of key principles like decoupled components and highly flexible data types and thorough error handling.
Click here to download the project
Resources
PermaFrost uses two types of resources items and rechargeable
'Staminas'. The latter primarily functions as the player's action limiting resources, and the former works as action enablers and provide progress in the game.
​
The rechargables are Heat and Energy. Energy is the hard limit of the game. It can only be recharged at the home base, and is consistently consumed by the player. Heat on the other hand is a soft limit. It can be recharged at several points in the world, and primarily works to soft-lock parts by discouraging the player going places before they are ready.
​
Items on the other hand is used by the player to progress. The humans in the player's care requires items to survive, and items will be used to produce buildings to provide that. Similarly some of these buildings will provide new abilities. Together, items will allow players more action room, eventually allowing the player to complete their quests.
​
Camera System
A key functionality a lot of early play testers expressed a desire for was a way to control the camera, which previously had only been a static top down view. Instead of simply implementing a basic side to side movement of the top down camera (like many strategy games), I decided to take a que from games like City: Skylines and Divinity Original Sin 2 which both allow a very zoomed in perspective and a large overview style perspective.
​
I ended up implementing a system using animation curves to interpolate between the RTS-style top-down view, and an 3rd-person RPG-style view.
You can read more here. The controller code can be found here.
Camera Position Update
Event System
With three systems (Quest, Resource/Inventory, UI) that all need to be interconnected, it was obvious that hard coding all those interactions would be a lot of work, and a more decoupled approach would be preferable. Initially the hope was to use either Unity Events or C# Events. However, both those solutions did not easily provide filtering or throttling. Instead the game uses a custom event system using category lists and threading.
Design Documents
1st Map Draft | 2nd Level Draft | Initial Level |
---|---|---|
Level Rework | PermaFrost Resource Interaction | Planned GameLoop |
PermaFrost UI Screens Wireframe | PermaFrost Production Outline Asset List | PermaFrost Fall 2022 Task List |
PermaFrost Production GANTT diagram |