top of page
  • Writer's pictureAdrian Ihle


Updated: Feb 13, 2023

PermaFrost uses two types of resources items and rechargeable 'Staminas'. Items are collectible things like Ore, Wood, or quest items, while the 'staminas' are Energy and Heat, both which can be recharged, and are consumed at predetermined rates.

Items are collected and used by the player to build certain things, like farms and factories. As a result the player (and other entities such as factories) needs an inventory. I have implemented it as a list of structs. For performance, I could have implemented this as a dictionary, but Unity integrates better with lists by default. Additionally the added performance given would be negligible as inventory lookups happens relatively rarely within the game.

Most items are acquired in the world by gathering them from sources such as trees and stones, which will add them to the player inventory as data, much like Pokèmon in PokèBalls. Unlike Pokèmon, they will never materialize again, merely being transferable from inventory to inventory, and consumable to produce other items or buildings.

Said secondary items and buildings are what is needed to progress the game and ensure the survival of the human population. As such conversion happen only through UI or interactions with buildings, the UI or building has a list of recipe structs containing producible items and required items. Defining the recipes on the item/UI in this way allows for an easier way of creating alternate recipes for special buildings, without requiring a large amount of scriptable objects (static data class) to be referenced.

Both UI and the relevant buildings are assembled as prefabs (premade, instantiable objects), allowing the prefabs you would make for any special case buildings anyways to carry that altered data instead.

Heat and energy are the two other key resources managed in PermaFrost. Their key purpose is to create tension and pressure in exploration and gathering or resources. Heat is a resource consumed by both the player and the humans. If either runs out of heat, its game over. As such the player needs to make sure that the home base has a sufficient amount of Heater buildings, and that they have fuel. At the same time, the player must ensure their robot does not run out of heat, finding natural heat sources, or creating their own.

Within the world there are 'Temperature Zones'. Some zones drain energy quicker than others, and this encourages the player to be careful with venturing too far, too quickly. By carefully placing these zone in the level, it can naturally guide the players path by discouraging some areas until they are ready, and also create a challenge grading from the starting area to the area of the final quest.

Energy is a player exclusive 'stamina'. It is only rechargeable at the home base, and acts as the hard limiter for the player's movement and action economy. Energy is primarily lost through passive loss, which remains fairly constant. Being in areas that drain more heat, also drains slightly more energy, but the biggest factor is player actions. Things like gathering resources, and placing buildings require energy. Actions demanding energy makes the player have to prioritize what they do when, further reinforcing the survival aspect through limiting action space.

19 views0 comments

Recent Posts

See All

Boss Design

Keeping my design goals in mind I read through Van Richten's Guide to Ravenloft for its strong portfolio of classic D&D style villains, as well as several classic myths from various mythologies, and r


To ensure the most decoupled system interaction possible I decided to implement an event system. The key functionalities I desired from the system was a 'Fire and Forget' modus oparandi for events (no


Innlegg: Blog2_Post
bottom of page