V.3 Requirements

From FreeOrionWiki
Revision as of 20:41, 13 March 2005 by Yoghurt (Talk | contribs) (Unfortunately, the vandal's brain has been closed due to lack of activity.)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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:

  • Declarative design statements: Features will be implemented in the manner described to the exact specifications; any specifications that are unclear or require further detail will be re-submitted to the design team for consideration. These statements are evident from their use of definite punctuation, action verbs such as ‘will’ or ‘shall be’ and are otherwise identified by their unique quality of demonstrating prior thought.
  • General and/or lazy design statements: Features will be implemented in approximately the manner described as the manner described lacks the requisite amount of detail, e.g. ‘a formula shall be determined for a scale of wogs that operates somewhat like this,’ in which the programmer is left to determine the actual formula. These statements are evident from the use of a suggestive, ‘wouldn’t it be nice if’ tone or the sheer implausibility of the feature indicating that no actual developers were consulted at any point during its inception. The design team acknowledges that any future rewriting or clarification of a general or lazy design statement within the same version shall not be attempted without due bribery of the development team.
  • Forward-looking statements: These statements have no bearing on the actual requirements of the version and as such have a tenuous presence at best in a ‘requirements document,’ but are nevertheless included so as to provide some minimal insight into the steaming quagmire of the design team’s vision. These statements are arbitrarily green.
  • Completed sections: These features are already complete and work as intended. An entire section that has been completed will be marked as such. Completed subsections are red.

Section II: Version Roadmap

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

Section III: Software Architecture

This section has been completed and has not changed from v0.2.

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.

  • There will be both server and client programs.
  • The client will provide the player interface into the game.
  • The server will run the game engine.
  • The client will be able to connect to the server locally or over a TCP/IP network.
  • All decisions regarding allowable player actions and universe information the player is allowed to access will be controlled at the server level.
  • The game setup user interface and loading and saving of games will be handled in the server.
  • There will be a user interface screen in the client for setting up the connection to a server. Any locally hosted servers will be auto-detected by the client, and listed in this screen.
  • This will also obviously impact on the number of players and Multiplayer section (hotseat will probably not be supported, although running multiple clients on the same host will allow the same functionality).

Number of Players / Multiplayer

This section has been completed and has not changed from v0.2.

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

This section has been completed and has not changed from v0.2.

Options

  • Number of Stars A slider 10 – 500.
  • Shape of Galaxy Cluster, Spiral 2-arm, Spiral 4-arm, Ring, Cluster Pockets, Horseshoe, Origami Bird. The shape that the stars must conform to when being placed into the galaxy.
  • Age of Galaxy Young, Mature, Ancient. Younger universes tend to have more hot stars, fewer blackholes. Ancient universes tend to have more blackholes and cooler stars.
  • Starlanes A UI element will be provided for the following user selections: frequency of long starlanes (default few); frequency of medium starlanes (default some); frequency of short starlanes (default several); the choices will be none, few, some, average, many, and very many. The UI will not permit the user to select ‘none’ for all types of starlanes. A composite value that is an average of the aggregate values will be displayed as a summary descriptor (e.g. ‘mostly average starlanes,’ ‘all sorts of starlanes,’ ‘a mixed amount of short and long starlanes,’ ‘Nightfish starlanes’)
  • Density of Planets Low (3 planets per system), Average (5 planets per system), High (7 planets per system). The density is an average, the number of planet slots always remains 10.
  • Frequency of Specials Common, Rare, Very Rare, Nonexistent. Effects both planet and system specials.

The player may also choose to quick start a game without selecting galaxy options. A quick started galaxy will have the following parameters: user selects number of stars, either a cluster or spiral galaxy shape, mature age, average starlane length and frequency, average planet density, rare specials.

Star System Generation

Star Color

Each star has a color:

  • Blue The hottest stars.
  • White Hotter than average, a very pale green, almost white.
  • Yellow The most common star in a mature galaxy. Average.
  • Orange Cooler than average, a vibrant orange.
  • Red Large cool stars.
  • Neutron The remains of a star from a supernova explosion. Often the location of rips in time-space.
  • Blackhole The event horizon surrounding a singularity formed from the collapse of a super-massive star. Often the location of wormholes leading to other areas of the map.

A set of bonuses (based on base distribution and the Universe’s age) determine the star color. For each environment type, the applicable bonuses (base and age) are tallied and then added to a random number 1-100. The color with the largest final score is assigned to the star.

Star TypesBlueWhiteYellowOrangeRedNeutronBlackhole
Base3040504030  
Young1020     
Mature  10  1010
Ancient   10102020

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

Planet Slots

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:

  • Tiny Pluto sized. Barely a planet. Can be colonized.
  • Small Mercury sized. Can be colonized.
  • Medium Earth, Venus, Mars. Can be colonized.
  • Large Earth x 1.5. Can be colonized.
  • Huge Earth x 2. Can be colonized.
  • Asteroid Field A ring of debris around a star. An Asteroid Mining Base can be built here.
  • Gas Giant Jupiter, Saturn, Neptune being examples. A Gas Giant Tap can be built here.

A set of bonuses (the slot number, the user option “Planet Density” and the star’s color) help determine the existence/type of a planet. In each slot, for each possibility, the applicable bonuses (slot, user option, and in some cases star color) are tallied and then added to a bell-curved random number 1-100. The possibility with the largest final score is assigned to the planet slot.

  Planet Slot: No WorldPlanetoidSmallMediumLarge Massive Asteroid Field Gas Giant
User Option Low Density70       
Average Density50       
High Density30       
Star Color Blackhole30  -5-5-510-5
Neutrino 55    20 
Slot Slot 110152010   -80
Slot 251015205  -70
Slot 3 51030105 -60
Slot 4 5103010510-30
Slot 5 51020151025 
Slot 6 55520151030
Slot 7 5551510530
Slot 8 10105105530
Slot 951510555530
Slot 10102010   510

Notes: This slot system is a quick and dirty way of assigning a distance from planet to star. Planets in slot 0 are assumed to be about Mercury’s distance from the star. Planets in slot 2 are Earth’s distance from the star, Slot 4 is a bit farther out than Sol’s asteroid belt. Slot 5 would be Jupiter’s distance from the Sun. Slot 9 would be Pluto’s distance.

Distance has no gameplay effect beyond the generation of planet size/type and determining where the planet appears in the UI. Planets closer to the star are generally smaller.

Planet Environments

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

  • Terran Earth-like. Normally holds an abundance of life.
  • Ocean Covered with liquid water. Life abounds.
  • Swamp Venus seen through the eyes of pulp science fiction writers. Humans would find the atmosphere unbreathable, the flora/fauna hostile and poisonous.
  • Toxic The real life Venus. Sulfuric and harsh on humanity, paradise to certain strange breeds of life.
  • Inferno Hell in Space. Much like Toxic, except hotter with a lot more lava. Carbon based life doesn’t thrive here.
  • Radiated A barren world bombarded with Radiation from a nearby star or in some cases a planet with an independently radioactive surface. Life as we know it doesn’t exist, some wildly different species live here anyway.
  • Barren Luna. A dead world by our standards, space-borne organisms often use these rocks as breeding grounds.
  • Tundra Earth minus much of its water and heat. Staunch life can still thrive here.
  • Desert Earth minus much of its water. Pulp science fiction ideal of Mars and Arrakis (Dune) are examples. Temperatures can vary wildly with the time of day, still within the range of liquid water. Terran life is mildly comfortable here.
  • Gaian Gaia worlds are, despite the name, not exclusively paradise for Terran dwellers. They are sentient planets designed by long-forgotten ancient creators to reshape themselves to the whims of their inhabitants. Exceedingly rare, extremely valuable-- some cultures worship Gaian planets as gods.

A set of bonuses (based on the planet’s Size, Slot, Star Color) help determine the environment type. For each environment type, the applicable bonuses are tallied and then added to a bell curved random number 1-100. The environment type with the largest final score is assigned to the planet.

 EnviromentTerranOceanSwampToxicInfernoRadiatedBarrenTundraDesertGaian
Planet Size Planetoid     1020  -20
Small     1010  -10
Medium10105    55 
Large    1010    -10
Massive   1010    -20
Slot Slot 1-5-5 5203015-2015-50
Slot 210102015201010-1020-40
Slot 3302510 5   15-40
Slot 42525     510-40
Slot 5101055   5 40
Slot 6510510  510 -40
Slot 7      1010 -40
Slot 8-5-5-5 -5 1510-5-50
Slot 9-10-10-10-5-10-102010-10-60
Slot 10-20-20-20-10-20-20255-20-70
Star Color Blue   10152015 5-5
White  5510510 15 
Yellow302520    520 
Orange 555  1010  
Red   10  2010 -5
Neutron-30-30-10553020 5-10
Blackhole-30-30-10-10-101530 -30-15


Game Start Conditions

Each empire will start the game with one planet of medium size, with 15 population set to ‘balanced’ and 3 missile bases. The planet will be located in the ‘Terran’ slot on the EP wheel (relative to that races’ EP). Each empire will start the game with 2 scouts and one colony ship.

Start locations shall be reasonably far apart. For a very small galaxy, none of the systems in a list of the 5 nearest systems to an empire's starting system should be the starting system for another empire; however, the development team may determine the best manner of spacing systems in small galaxies. This should increase by one system per size larger the galaxy is (for small, no empire should start in the nearest 6 systems to any other empire).

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.


Section V: Planets, Population, and Production

The Wheel of Environmental Preference

This section has been completed and has not changed from v0.2.

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 the planet’s environment = the race’s EP then environmental conditions are Superb.
  • If the planet’s environment is one away from the race’s EP, then environmental conditions are Adequate.
  • If the planet’s environment is two or more away from the race’s EP, then environmental conditions are Terrible.
  • If the planet’s environment = Gaian then the environmental conditions are Optimal, regardless of EP.

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

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.

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

Unlike other meters, when a planet is first colonized, Current Population is set to 1. At the start of the game each Homeworld's Current Population is set to 75% of Max Population.

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

 TerribleAdequateSuperbOptimal
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:

  • If the Health Meter is above 20: Population Change = Current Population * (((Max Population+1) - Current Population) / (Max Population+1)) * (Health Meter - 20) * (0.01)
  • If the Health Meter is equal to 20: Population Change=0
  • If the Health Meter is below 20: Population Change = Current Population * (Health Meter - 20) * (0.01)

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.

Note: The Homeworld special grants +10 to Max Population.

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.

Note: The Homeworld planet special adds +20 to Max Construction.

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:

  • 1-9: Rural Colony
  • 10-29: Developing World
  • 30-59: Established World
  • 60-89: Heavily Developed World
  • 90-100: Metroplex

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. At the start of the game, all Current Resource Meters on each empire’s Homeworld are set to 75% of the associated Max Resource Meters.

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:

  • Terrible Environments reduce Max Farming by 30.
  • Adequate Environments reduce Max Farming by 10.
  • Superb Environments have no effect on the Farming meter.
  • Optimal Environments increase Max Farming by 10.

Note: the Homeworld special improves Max Farming by 10.

Mining

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

Note: the Homeworld special improves Max Mining by 10.

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:

  • Tiny worlds grant a +10 bonus to Max Industry, due to low gravity.
  • Small worlds grant a +5 bonus to Max Industry.
  • Normal sized worlds give no special modifiers to the Industry meter.
  • Large worlds reduce Max Industry by 5, due to heavy gravity.
  • Huge worlds reduce Max Industry by 10.

Note: the Homeworld special improves Max Industry by 10.

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.

Note: the Homeworld special improves Max Science by 10.

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.

Note: the Homeworld special improves Max Trade by 10.

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.

  • Terrible Environments add +25 to the Health meter.
  • Adequate Environments add +30 to the Health meter.
  • Superb Environments add +40 to the Health meter.
  • Optimal Environments add +50 to the Health meter.

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.

Note: The Homeworld special improves Health by 10.

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:

  • Primary Focus adds + 15 to the selected Max Meter
  • Primary Balanced Focus adds +3 to all Max Resource Meters.
  • Secondary Specialized Focus adds +5 to the selected Max Meter
  • Secondary Balanced Focus adds +1 to all Max Resource Meters.

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

Legacy Note: In version .2, every colony produced a little of each type of resource, thanks to bonuses to every "meter" from the Focus settings. In v.3, worlds still produce a little of everything, once the proper techs are researched and buildings constructed. Essentially, the player has to earn the old v.2 bonuses through research and build projects. The assumption is that many of these resource improvements will be low tech, esp. in the Farming, Industry, and Mineral catagories.

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:

  • If Nutrient Rating is 4 or above, the planet is "Well-fed." Health and Happiness increase by 10.
  • If Nutrient Rating is 2 or above (but less than 4), the planet is "Adequately fed". Health and Happiness are unchanged.
  • If Nutrient Rating is 1 or above (but less than 2), the planet is "Poorly fed." Health and Happiness are reduced by 10.
  • If Nutrient Rating is less than 1, then the planet is "Starving." Health and Happiness are reduced by 50. In addition, Health is capped at 19.

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:

  • Building things is only one aspect of the game; this is FreeOrion and not SimGalaxy, so the player should only step in to build something 'special.'
  • There are buildings that are not special but still affect things; these buildings are abstracted into Infrastructure (see above).
  • The building system should prioritize building these 'things that matter' (special buildings, wonders, and ships).

There are four types of buildings:

  • Common buildings: Although they are specific buildings, the player does not choose to build them; they are abstracted into infrastructure and use the Construction meter, rather than production points.
  • Special buildings: These are buildings local to a specific planet, built on it. They must be intentionally built, not automatically done like common buildings. These buildings are built with production points.
  • Wonders: Same as special buildings, except each each Empire may only have one of them.
  • Galactic Wonders: Same as wonders, except each galaxy may only have one of them.

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

The design team reserves the option to limit the number of special buildings or wonders that can be built via building slots 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:

  • Primary focus set to X;
  • Planetary environment preference > X
  • Previous building X already exists (in the Empire | on the target planet)
  • Technology X has been discovered
  • Population > X
  • Infrastructure (to be detailed when Infrastructure is finished; likely 'Y meter > X) -Aq)

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 VII: Combat

This section has been completed and has not changed from v0.2.

Starship Combat: Calculated by the AI. No Tactical combat. Algorithms to be determined by uncouth cretin programmers with the following guidelines:

  • Non-combat ships have a low base chance of retreating if they encounter combat ships and have some place to retreat to.
  • If non-combat ships engage in combat and they have an escort, the non-combat ships will be the last things destroyed; consequently, if Player A wins the battle, he may lose some war ships, but he will not lose scout ships or colony ships.
  • Combat ships cannot retreat.
  • Whenever a fleet enters a system that contains enemy planets, it enters combat with –all- planetary missile bases and enemy fleets.
  • When fleets from more than two empires meet, all combat is resolved simultaneously and each fleet will be considered to be targeting the other equally.
  • When a system is conquered, it produces nothing that turn, and any item in production is discarded.

Ground Combat: No ground combat. If an enemy fleet occupies a star system and has destroyed all of the missile bases on a planet, they control the planet.

Section VIII. Research & Technology

The following section describes the system used to manage research and technology. Specific content will follow with a later revision of this document.

  • Technology is organized horizontally into some number of categories (assume an average of 10; changing categories should be mod-able, but a fixed number will be determined for v0.31.
  • Technology is ordered vertically by theory and then application, e.g. a 'Capital Ship' category might have 'Large-scale propulsion' as a theory and 'battleship engine' as an application. More specifically, theories are required to research their related, child applications; as a general rule, theories will not do very much by themselves, but this is a breakable rule.
  • Technology has a fixed cost, both in research points and in number of turns required. If an Empire produces 100 RP a turn, it may begin ten separate 'projects' that cost 10 RP. You may not invest 12 RP or 50 RP in one project for a faster result. Each of those 10 projects may have a different number of turns associated with it. The amount of time required is fixed in the sense that more RP will not change it, but it is not fixed in the sense that some technologies may reduce the time requirement for future technologies, or there may be some event that finishes one of your projects.

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.

Specific tech tree content is forthcoming.

Appendix: Interface & Logistics

Core Engine

This section has been completed and has not changed from v0.2.

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. Combine all fleets at each system into consolidated fleets for each empire. 3. Resolve any combat. 4. Check for empire elimination and game end conditions. 5. Update research totals. 6. Update planet population production totals. 7. Place any newly built ships and missile bases.

General Interface

The following screens must exist to do the following things:

  • Main Menu Options, New Game, Load Game. Load game brings up a list of saved games, and the dates & times on which they were saved.
  • New Game Screen Select the size and shape of the galaxy. Name your Empire and select a color
  • Universe Screen Displays starmap with color-coded star systems. Provides a means to select a star system. Star system view does not require its own screen, but at least requires a sizeable window (discretion of graphics team/UI designers). Provides an interface to move fleets. Fleets have names and remain designated between turns. Enemy fleets in deep space will only be visible to the player if the player controls a planet at the destination system for that fleet.

If a fleet with a colony ship stops in a star system that has un-colonized planets, an interface must allow the player to choose whether to colonize any planet in that system. When a player selects to colonize a planet, this will be reflected immediately (in turn), and the player can access the new colony and change its build selection from that point.

The universe screen will show a visible cue as to the destination of fleets in space.

There shall be at least one screen in which the entire galaxy is visible; this can be through either a separate screen, or the ability to zoom in and out of the galaxy screen. Every effort shall be made to keep the names of discovered star systems visible and readable as the player zooms out, within the boundaries of the interface.

At the beginning of each turn, all ships in any given system will be grouped into a single fleet. 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.


Once a fleet has entered deep space its destination cannot be changed. New movement orders can only be assigned once it has arrived at its destination. The player will not know any more than the name of a system until some ship from his empire has visited that system. After that, the player will have full access to any information regarding that system – including fleets present there. Enemy fleets in deep space will only be visible to the player if the player controls a planet at the destination system for that fleet.

Planet Screen

When a planet is colonized, it begins with 1 population point. Displays current pop, max pop current production balance, current and max meters, and output of food, minerals, research, industry, and production. Shows projected population for next turn based on current growth rate (does not need to display growth rate). All of this information should be accessible without any additional clicks after getting to the planet screen.

And production item currently scheduled to be built on the selected planet should be displayed, along with the number of turns to completion.

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.

Production

A screen accessible from the universe view shall display a list of ongoing building projects, total PP and available PP, and a mechanism to begin new projects and to place them. The Graphics/UI team will determine the best means appropriate to differentiate between different types of buildings. 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.

Combat pop-up

For every combat that occurs (regardless of whether or not it involves the player), a window that explains the casualties and the outcome. The graphics team shall develop a simple, animated display for automated combat; a primarily text popup with some sound effects and a display of respective fleet/base strength which then reflects casualties as combat rounds are evaluated. Does not need to be interactive. Looking forward: This will develop along the way so that there is still something interesting to look at and listen to when combat is automatically resolved (for example, the difference between space combat and ground combat in MOO2 should be the difference between controllable space combat and automated space combat in FreeOrion).

Save/load/quit menu

A window or screen must exist that allows the player to save the game, load the game, or exit.

Victory window

The player must somehow be notified when they are the sole survivor.