This document specifies a design for the gameplay of an open source game with the provisional title 'Terraform Uranus'. The game will be completed for the Liberated Pixel Cup using the art style and rules of that competition.
This document is intended to be read by anyone interested in helping with the programming, art or testing of the game.
The game will be produced to run in modern browser supporting Javascript Canvas. (e.g. IE9+, Firefox 10+ and Chrome).
The aim of Teraform Uranus is to produce a fun, resource management, farming simulation game with a simple 2D top down graphics style.
The game will be set in the future on the planet Uranus.
There will be a world map view where the play can see all structures on the plant. Some structures will also have map views that the play can view.
The game will be playable by a single player.
The player will control the building (and destruction) of structures using the available resources.
The objective of the game is to reach 100% oxygen level by building Bio-Domes and managing the farming crops and animals in them.
The landscape will be built from 32x32 pixel tiles in the style of the Liberate Pixel Style Guide (http://lpc.opengameart.org/static/lpc-style-guide/styleguide.html). This will include both the world map view, and the internal structure views. The landscape will not rotate. It will be possible to scroll the landscape. It may be possible to zoom in and out.
Objects (such as structures, animals, crops ect) will be made up of 32x32 pixel or 64x64 pixel tiles in the style of the Liberate Pixel Style Guide (http://lpc.opengameart.org/static/lpc-style-guide/styleguide.html).
Overlaid on top of the landscape will be a user interface. The interface will show the current level of each of the resources and a button for each of the actions currently available.
The game will consist of three different resources types that must be managed by the user throughout the game.
Oxygen is the measure of oxygen available on the planet. The goal of the game is to have this reach 100%. Building new structures will cost oxygen. Different crops and livestock will, over time, either provide or consume oxygen. The game is lost if oxygen reaches 0% and the colonists die.
Happiness measures the happiness of the colonists. If this reaches 0% the colonists will revolt/leave the planet and the game is lost. Every structure, crop and livestock item the player creates will impact on happiness.
Clone Cells are the resource used to plant new crops and clone new livestock.
The playing world will be relatively small (eg, 64x64 tiles) map made up of square tiles on which the player will build structures. Structures will be square in the sizes 1x1, 2x2 and 4x4 tiles.
Structures (with the exception of the Habitation-Dome) will the built on the world map by the player.
The world will start with exactly once Habitation Structure. This structure will not be buildable by the player.
Bio-Domes are the structures in which all farming will take place. Each Bio-Dome will provide a large area of tiles on which the player layout and manage crop and livestock farming.
Bio-Domes will be avalible in three sizes, small, medium and large. Each larger size will take up more tiles on the world map, but provide a correspondingly larger map for farming.
Other structures may be available that provide happiness effects, or make available new crops or livestock types on the farming maps.
All farming will take place the farming maps (the internal view of a Bio-Dome).
Each tile of the farm map will have certain values associated with it. These values will be viewable by the player by clicking on the tile.
Water (Dry, Moist, Wet)
Nutrients (Lacking, Adequate, Rich)
pH Level (Acidic, Neutral, Alkaline)
It is assumed all operations in this section can be done on a single farm tile, or on a rectangular region by clicking and dragging unless otherwise specified.
It shall be possible to manually irrigated farm tiles, at the cost of oxygen.
It shall be possible to manually fertilise farm tiles, at the cost of clone cells.
It shall be possible to manually adjust farm tiles pH level, at the cost of clone cells.
Along with the base tile attributes, farm tiles can also contain one (or in some cases more) objects (such as crops or livestock).
Planting crops (and other plant types) is achieved by selecting the crop from the UI and selecting the location to sew it on the farm map. The cost of the crop in clone cells will be immediate. The effects on the happiness and oxygen shall take place over time.
It shall be possible to harvest some crops. The effects on resources from harvest shall be immediate and the farm tiles shall return to empty farm tiles.
It shall be possible to place an irrigation/pump station on any free tile. The station shall provide water to tiles in a large area around the station. The station will have a cost of happiness for its initial construction and an oxygen while it is operational.
It shall be possible to clear farm tiles from crops (and other objects) and return them to empty farm tiles. This action shall have no cost. Any impact on happiness (or other effects such as water) shall be immediate.
It shall be possible to build fences on farm tiles. Dragging a straight horizontal or vertical line should build a fence along that line. Dragging a rectangle shall build the expected fences around the area. Fences shall stop livestock from passing the tile with the fence on it.
It shall be possible to place livestock on any empty farm tile. The clone cell cost of livestock shall be immediate. The effects of the livestock on oxygen and happiness shall occur over the life of the livestock.
The player can place livestock feed, at an expense of Clone Cells.
The player can place a livestock water object, that, if in range of a Irrigation/Pump Station will provide watch for the livestock.
Each plant available to the player in the game will have a set of attributes associated with it that will determine the plant's initial cost, its growing conditions, its impact on resources over time, and if the plant is harvestable, its impact on resources from harvesting. This information shall be made available to the player in the user interface.
Clone Cells: The initial, one off cost of the plant.
These are used in conjunction with the farm tile attributes to determine the health of the plants at the end of each day.
Water:
Nutrients:
pH Level:
These values are used with the plants health at the end of each day to determine the plants impact on resources. The values can be negative.
Oxygen:
Happiness:
Clone Cells:
These values are used with the plants health to determine the plants impact on resources when the player harvests the plant. The values can be negative.
Along with the fixed attributes, each plant will have a number of variables associated with each individual instance of that plant.
Age: days
Maturity: %
Health: %
Each livestock type available to the player in the game will have a set of attributes associated with it that will determine its initial cost, its lifecycle and its impact on resources over time. This information shall be made available to the player in the user interface.
Clone Cells: The initial, one off cost of the plant.
Maturity: days
Max age: days
Max time without water: days
Max time without feed: days
These values are used with the livestocks health at the end of each day to determine the impact on resources. The values can be negative.
Oxygen:
Happiness:
Clone Cells:
Along with the fixed attributes, each livestock type will have a number of variables associated with each individual instance of that animal.
Age: days
Maturity: %
Health: %
A critical aspect of the game is how resources are impacted by the users action over time. For example, the user plants some crop for an immediate cost (in clone cells), then over time, that crop will impact (either positively or negatively) on resources as it grows.
The game will be based around a ‘year’ unit of time, this is broken up into two growing seasons, each half a year. Calculations for effects over time will be done at the end of each day. The exact number of days in a growing seasons is undecided.
Crops/Plants fall into two categories that define their lifecycles, perennial and seasonal.
Both types will grow from seed to full maturity in one growing seasons time. Crops/Plants shall be dead if the calculated health value reaches 0%.
Once planted, perennial crops/plants shall never die due to age, and if suitable growing conditions are available, they can last indefinitely.
Seasonal crops will, like the name suggests, last for one growing season before beginning to die. Typically, the player will harvest the crop before it dies.
At the end of every day, each crop/plant shall have calculations performed on it to determine both the plants health, and the impact on resources.
The plants health shall be a calculation of the previous days health (starting at 100% for new plants) minus the difference of each of the plants growing conditions compared to the farm tiles actual conditions.
The plants resource attributes are then divided by the plants health to determine the impact on resources. A sick plant will impact on resource less than a healthy plant.
If a plant reaches 0 health, the plant dies.
The plants age shall be increased by one each day.
The plants maturity shall be increased by a value that will leave the plant at 100% maturity in one growing season.
If the plant is harvestable, it shall become harvestable by the player at 100% maturity.
If the plat is seasonal and has reached maturity, it shall begin to lose extra health each day until it dies.
When the player harvests a crop, the plants harvest attributes are divided by the plants health to determine the impact on resources. A sick plant will impact on resource less than a healthy plant.
Livestock shall start at 0% maturity. The rate at which the livestock matures is calculated by the maturity attribute. Livestock will live to a maximum age of the max age attribute. Livestock shall be dead if the calculated health value reaches 0%.
Livestock daily calculations
At the end of every day, each livestock instance shall have calculations performed on it to determine both the livestocks health, and the impact on resources.
The livestocks health shall be increased by 1% (of max health) if the livestock has had access to both water and feed within the time specified in ‘Max time without water’ and ‘Max time without feed’. If the livestock hasn't had access to feed or water with the specified time, the livestocks health shall be reduced by %25 (of max health).
Livestock shall move around the map in a random pattern. Fences shall block livestock movements. The exact calculations for determining if livestock has access to feed and water are unspecified at this time.