V.3 Requirements/rewrite

From FreeOrionWiki

Jump to: navigation, search

Contents

Please Note

The following is a partially complete attempt to bring a design document up to speed to the current state of development. It is also an attempt to make to document more generally useful by focusing on core game concepts and goals, and de-emphasizing preliminary content ideas which can and will change over time.

-eleazar



Section Zero: Major updates and Cliff's Notes

Version v0.2 was largely a refinement of some core ideas that were presented in v0.1. v0.3 expands upon the economy system with the 'meters' idea and defines the technology/research system. It also introduces the beginnings of our event system with the effects document.

The v0.3 DD was mostly complete in July of 2004 but received several cosmetic changes (like Section Zero) and an overhaul of the effects document in September. We've recently weathered yet another web site hiatus and are now on our third host, but the development community remains active and interest is high.

The designers for v0.30 were:


Lead Designer / El Jefe: Samuel Knowlton (aka Aquitaine)
Designer / Alien-in-residence: Drek
Designer / Verbose: Geoff the Medio

With additional kudos, as always, to the FreeOrion Creative Team in its entirety and the ravenous public. They are listed in the Game Design section.

It is my pleasure to participate in this project with such a talented, professional group of people as we are fortunate to have. I look forward to the day when I can raze your cities and conquer your peoples.

Samuel Knowlton
September 21, 2004

Section I: Format of This Document

There are three types of statements in this document:

Section II: Version Roadmap

Follow the wiki link to the Roadmap for the most up-to-date version.

Section III: Software Architecture

A client/server model will be employed, in which all calculation and resolution is handled by a trusted server, and the client is merely an interface and a conduit.

Number of Players / Multiplayer

FreeOrion v0.3 will support an arbitrary number of eight players (to be limited formally as v1.0 approaches and bandwidth requirements are known). Because of the client/server model, full multiplayer support will be written in from the beginning.

Section IV: Universe Generation & Game Start Conditions

Options

The player may set certain options to tailor the galaxy to his parameters, such as number of stars, shape, frequency of planets, and frequency of starlanes, etc.


Game Start Conditions

Each empire will start the game with one planet of medium size. For now, the planet will be ‘Terran’, the EP of every empire until species are implemented.

Start locations shall be reasonably far apart.

When a map is generated, if it is not possible to fulfill both the minimum starting distance requirement and the large size start planet requirement, then the map will be discarded and a new one generated.

Stars



Note: Star colors have no gameplay effect aside from modifying the type of planets and system specials generated in a system.

Planets

Each star system has an array of ten slots in which there might or might not be a planet. Taken together, a star system can have 0-10 planets of the following types/sizes:


Distance has no gameplay effect beyond the generation of planet size/type and determining where the planet appears in the UI.


The Wheel of Environmental Preference

How well a race thrives on a planet is based on the distance between the environmental preference (henceforth “EP”) of the race and the planet’s environment on the Wheel of EP:


     Terran ---- Ocean
        |          |
        |        Swamp
      Desert       |
        |        Toxic
        |          |
      Tundra       |
        |        Inferno
        |          |
      Barren --- Radiated
      

If a planet exists in a given slot, then a planetary environment is determined, chosen from the following list:


Habitability

Note that for now, all races have the environmental preference of “Terran”. In future versions, the wheel will also govern terraforming.


Specials

Each planet may have a number of planetary specials. These are generally permanent conditions of the planet and can add bonuses and maluses to various meters.

Some Specials:


Section V: Colonies, Population, & Production

Meters & Infrastructure

Meters are variables attached to planets, representing the production capabilities and social attributes of each colonized world. Future Note: There may eventually be “meters” associated with ships, ship parts, empires, and perhaps the galaxy itself.

Meters always range from 0-100. For greater granularity, meters can be modified in fractions of a full step. As a side note, the effects of a building or technology on a meter should almost always be expressed as integers (eg. "Superlabs gives +4 to research"), and the value of a meter should be rounded to the nearest integer on the UI.

A meter with a value of 20 is at the "breakeven point". A world with Farming set to 20 can feed its own population. A world with Health at 20 doesn't lose or gain population.

Planet Meters have both a Max value and a Current value. The Current Meter slowly increases until it matches the value of its associated Max Meter.

The Max Meters can be thought of as potential infrastructure; the Current Meters represent this potential realized. Bonuses and penalties from foci, technologies, buildings, planet specials, and racial picks influence the Max Meters. Certain catastrophic events (such as bombings and earthquakes) modify the Current Meter, representing damage to actual infrastructure.

After all Effects have executed, if a Meter falls outside the range of 0-100, the Meter is set to either 0 (if below 0) or 100 (if above 100).

Population

The population of a planet consists entirely of the same species— there are no mixed-species planets. This is to simplify the interface and to make it easier to understand how species-specific bonuses and maluses apply to the planet.

Unlike other meters, when a planet is first colonized, Current Population is set to 1.


The Max Population on a planet is determined by planet size and habitability, referenced on the following table:

 HostilePoorAdequateGood
Tiny24810
Small481620
Average6122025
Large8162530
Huge10203035

Max Population can be further modified via planet specials, buildings, and technologies.

Each turn, population is adjusted via the following formulas:

Population Change is added to Current Population. If Current Population is over Max Population, then Current Population is reduced to match Max Population.

If Current Population is reduced to 0, then a "Colony Destruction" event is spawned. This event eliminates the colony, and notifies the player on the siterep.

Migration

Normally, there is no explicit migration between the populations of planets.

Some mechanism will exist to move population from one planet to another under special circumstances.

Each turn, every unit of population is assigned to a suitable planet within the confines of the empire. If there are no suitable planets (Bad Environment or the pre-existing population is already filled to capacity), then there’s a 25% chance that the population point is lost. Otherwise, the population point remains in the queue to be assigned next turn.

Population in the queue continues to consume food. If there’s a shortfall, population in the migration queue is lost.

Construction Meter

The Construction Meter represents the general infrastructure of a planet. It is used to determine the growth rate of Current Meters.

New colonies begin with a Current Construction of 0. Each Homeworld begins the game with Current Construction equal to 75% of its Max Construction.

By default, Max Construction is 20--it is further modified by the effects of buildings, technologies, racial picks, events, planet specials, etc.

Each turn, Current Construction increments via the following formula:

Construction Change = (Current Construction + 1) * ((Max Construction - Current Construction) / (Max Construction+1)) * (Current Population + 10) * (0.01)

Construction Change is then added to Current Construction.

If Current Construction is greater than Max Construction, Current Construction is reduced to match Max Construction. This test should occur after all Effects have been executed.


Infrastructure Labels

Infrastructure Labels have no gameplay effect; the labels are meant to provide an easy method for players to quickly judge the progress of a colony.

A label is selected for each planet based on Current Construction:

The Resource Meters

Resource meters determine the quantity of resource production. There is one resource meter for each type of resource in the game.

On a new colony, all Current Resources Meters begin at 0.

For each planet, quantity of resource production is determined via the following formula:

Resources Produced = (Current Resource Meter/10) * Current Population

The Max Resource Meters are determined by the planet’s Focus settings. (see Focus for details) They are further modified by Effects from various Actors (including technologies, buildings, events, planet specials, and racial picks).

Each turn, all Current Resource Meters increment via the following formula:

Meter Change = Current Construction / (10 + Current Resource Meter)

Meter Change is then added to the Current Resource Meter.

If a Current Meter is greater than its associated Max Resource Meter, then the Current Meter is reduced to match the Max Meter. This test should occur after all Effects have been executed.

Farming

Farming determines the amount of Nutrients a world produces. In addition to Focus and the effects of various Actors, this meter is heavily modified by environment:

Mining

Mining determines the number of Minerals produced. There will probably be planetary specials that modify the Mineral meter, collectively known as the “Mineral Richness specials.”

Industry

Industry determines the Production Points (PP) generated by a world. Each Industry point must be matched with a Mineral point to produce PP, as described in the Production section. In addition to Focus and the effects of various Actors, this meter is modified by planet size:

Science

Science determines the Research generated by a world. In the future, government picks will probably have a significant influence on this meter. "Scientifically interesting” planet specials might modify this meter.

Trade

Trade determines the Money extracted from a world. In the future, government picks will probably have a significant influence on this meter. “Valuable commodity” planet specials might modify this meter.

The Social Meters

Unlike the Resource meters, Social meters don’t have separate Max and Current values. Effects always operate on the Current Social Meter.

Health

Health governs the growth rate of population. The Health Meter is based on the Environment of the planet, and can be modified through the usual set of Actors. The Health meter is also heavily influenced by Nutrient Rating, as described in the Nutrient Distribution section.

A higher habitability rating increases the habitability of a planet.

The Health Meter is used by the Population growth formula. As a note, if the Health Meter is below 20, population growth should be negative.


Suggested Future Social Meters

Happiness: Happiness guards against unrest events. It is not used in v.3.

Security: Security lowers the duration of unrest events, guards against piracy events, and guards against enemy espionage. It is not used in v.3

Planet Focus

The player can assign a Primary and Secondary Focus on every colonized planet, representing which resources the planet is "focused" on producing. The values of the Max Resource Meters are determined by Focus settings. Both Foci can be independently set to one of the five resource meters or the "Balanced" setting.

New colonies begin with both the Primary and Secondary Focus set to Balanced. The Homeworld begins the game with Primary set to Balanced and Secondary to Farming.

Focus Effects on Max Resource Meters

Focus settings have these effects on max meter values:

Some technologies and buildings effectively increase the bonus applied by Primary Focus. See Effects for details.


Nutrient Distribution

Note: The nutrient distribution mechanism never got a public review. It may not need one, but this section may be revisited if everyone hates it.

Each unit of population requires Nutrients in order to survive. One point of Nutrients is required for basic survival; two points allow normal health; four points grant good health.

Nutrient Distribution must occur after resource generation, but before population growth is checked.

Each planet has a Nutrient Rating similair to in function to the Enviroment Rating. The Nutrient Rating is determined by dividing Local Nutrients with Population:

During the resource generation phase of a turn, planets with more Nutrients than twice their Current Population export the excess Nutrients to the global stockpile.

During the Nutrient Distribution phase, planets that are "Starving" can import Nutrients from this stockpile to make up for shortfalls. In the first pass, planets import just enough food to reach the "Poorly fed" rating. If, after this first pass there are still Nutrients remaining in the global stockpile, then a second pass is run. During this second pass, planets import just enough food to reach the "Adequate" rating. A third pass is then run, with planets importing just enough food to reach the "Well-fed" rating.

Planets import food in order of colony age. The oldest worlds get first dibs.

Future note: Planets that are "blockcaded" cannot export or import resources.

Section VI: Empire Production

The production philosophy of FreeOrion can be summed up as follows:

There are four types of buildings:

Each special building and wonder has a maintenance cost in credits.

The number of special buildings or wonders that can be built via building slots may be limited depending on balance issues pertaining to special buildings or wonders.

Production is managed via a global queue similar to the research queue. Build queue items require a fixed number of PP and turns, although one or both of those values may be affected by racial traits or technology. The player may have multiple build projects going on at the same time. Production points are pooled from all worlds, similar to research points. Whenever a new project is initiated, a location for the item to be built is selected. Buildings may have pre-requisites, including:

Excess PP works identically to excess RP: the 'last' project in the queue to get any PP takes the excess PP until it has enough to advance one turn. Any excess PP that is not used by any project is wasted. Any minerals contributing to unspent PP are refunded back to the Empire.

An interface shall be provided to manage all construction on the Empire-level, as well as an addition to the planetary interface that displays the buildings that can be built on that planet.

Some method of limiting the amount of production points used to build ships will be applied to v0.4. Shipyards are likely to have their own set of rules determining the total number or maximum size of ships they can build. [b]Should there be something here about events or meters affecting the amount of PP pooled, e.g. a 'graft' penalty likely to appear in some version in which some percentage of your Imperial PP goes away due to piracy, racial traits, etc.? (Heavy Foot of Government, anybody?)

Building Effects

Buildings (and events) have effects on game objects as outlined in the Effects Document. Effects are a works-in-progress and the specific details and their implementation will evolve along with this document.


Section VIII. Research & Technology

The following section describes the system used to manage research and technology.

Excess (or unallocated) RP is kept in a persistent container until that container holds enough RP to advance a project by one turn. For example, if an Empire produces 105 RP per turn and has 11 projects requiring 10 RP per turn for 10 turns, the 11th project will advance 'one turn' every two turns such that it would be completed in 20 turns, given a constant input of 100 RP.

Excess RP beyond the requirements of currently active projects is wasted.

User interface requirements: A single screen to manage and prioritize projects and, at the discretion of the graphics team, anything from a line of text to a popup to an animated sequence that occurs whenever research is completed on a project. A mechanism shall be provided through which the player may prioritize projects; for example, there is nothing to prevent a player from starting 300 RP worth of projects even if there is only 100 RP available, but the projects must be ordered such that the system knows where to allocate new RP as it becomes available.

Appendix: Interface & Logistics

Core Engine

Each empire will take its turn simultaneously. All actions taken by each empire are resolved at the end of the turn.

During a turn each empire may change planet build options, set split fleets and set fleet destinations, and colonize planets.

Between turns, the game will do the following: 1. Move all fleets that have a set destination. 2. Resolve any combat. 3. Check for empire elimination and game end conditions. 4. Update research totals. 5. Update planet population production totals. 6. Place any newly built ships and buildings. 7. etc.

General Interface

When the player clicks on the fleet icon, a popup will display the contents of the fleet, and buttons to either move or split the fleet. If the move option is selected, a line will be shown from the system to any system to any system the player points the mouse at, as well as the movement time needed to arrive there. If the split button is selected, the player is presented an interface to select which ships to move into a second fleet. The fleet popup will then show both fleets, with one being highlighted as selected. The player can click on the other fleet to select it. Whichever fleet is selected, the player will still be presented with the same move and split options. In this manner the player can create an arbitrary number of fleets at a system. This interface shall reflect whether or not a fleet has a destination, and what that destination is.



Research & Technology

A screen accessible from the universe view shall display a list of technology categories (forthcoming); clicking on a category will display all theories and applications belonging to that category. Technology that has been researched will be highlighted separately from technology that has not. Clicking on a particular technology will display the RP cost per turn, all pre-requisites for that technology as well as all technology for which the currently selected item is a pre-requisite. There will also be space provided for a graphic representation of the technology and a written description (UI size and space allocation for each to be determined). The main research screen will also provide: the current RP production of the Empire and how much of it is being spent; a list of currently ongoing projects and highlight projects that are receiving fewer-than-requested RP separately from those that are fully underway; projects receiving no RP shall be highlighted separately from those. A mechanism will be provided to allow the player to prioritize and cancel projects.

SitRep

There shall be a popup splash window for each new turn with a nifty graphic of some sort and a numbered turn label. Displays all colony activity at the beginning of every turn. How many RPs were generated (total), the number of planets that worked on industrial infrastructure, an alert in case a planet was told to work on industrial infrastructure but had already maxed out, a notice if a planet finished building a ship. A seperate screen for when technologies are discovered. v0.2 simply requires a pop-up before the sit-rep, but the details of this screen are left to the discretion of the graphics team.

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox