V.1 Requirements

From FreeOrionWiki
Jump to: navigation, search

Samuel W. Knowlton, aka Aquitaine

Preface

Many features have been discussed and approved but were purposefully left out of this document. This is a practical document that is geared toward guiding production and development in a logical and timely manner. See the threads at the Game Features Board for a list of features that have been approved, rejected, and are under consideration.


Number of Players / Multiplayer

FreeOrion v0.1 will support a total of four players, one of which may be a human player. No multiplayer support. Option to set up four AI players and watch the goings-on (game reports to you as if you were every Empire). * Hot seat play suggestion: it would allow to run the game prototype without any functional AI

Universe Generation

The player must be able to configure the following parameters when beginning a game:

Number of stars and Universe Type:

  • 50 Very small
  • 100 Small
  • 150 Medium
  • 200 Large
  • 250 Very Large
  • 300 Enormous

Galaxy Shape

  • Spiral, 2-arm (not available with Very Small galaxies)
  • Spiral, 3-arm (not available with Small or Very Small Galaxies)
  • Spiral, 4-arm (not available with Medium, Small, or Very Small Galaxies)
  • Cluster

Planning Ahead: It is likely that galactic terrain and star lanes will make it into the next revision (star lanes are still under debate). For v0.1, travel conditions are homogeneous throughout the galaxy.

Star Systems & Planets

Star System Generation: Each star system will have between zero and five planets, broken down as follows:

  • 5% will have zero planets.
  • 20% will have one planet.
  • 30% will have two planets.
  • 30% will have three planets.
  • 10% will have four planets.
  • 5% will have five planets

Star systems know how far from other star systems they are, although this number should be invisible to the player and used to calculate travel times.*Better to just let each planet have location coordinates and calculate distances..

Planet Generation and Attributes: Planets have the following static attributes: Size and Max Population. Planets have the following dynamic attributes: Growth Rate, Research Output, Industrial Output, and Defense Bases. The growth rate is calculated from the current population (algorithm and rate to be determined by uncouth cretin programmers). Distribution of planet sizes as follows (table by Extro):

Planet Size Max Population Generation Percentage
Asteroid1010%
Planetoid3025%
Medium5030%
Large7025%
Huge9010%


Planet Focus

Planets may be set to build one of the following:

  • Research: Outputs 3 research points per population point.
  • Defense Bases (see below)
  • Ship Types (see below)
  • Industry (see below)


If the build setting is changed any production spent on a partially finished item is lost. If building ships or bases any extra production left after current item is built will roll over to another item of the same type. It is possible to build more than one of a given item in a single turn if there are enough production points to complete them.

Industry

Base industrial output of a planet with no developed industry is 3 Production Points (PP) per population point. Industrial infrastructure is measured as the percentage of the planets total habitable area that contains industry (between 0 and 100%). Developing 1% of a planets industry requires 1 PP/current population point. Planets may set their focus to industrial infrastructure which contributes all of that planets PPs to this infrastructure. A planets current maximum industrial infrastructure is the ratio of its current population to its maximum population. Industrial infrastructure is displayed as a percentage of developed industry, e.g.:

A planet with a current population of 15 and a max population of 100 begins has no industrial infrastructure. If it attempts to build anything (a ship, more industry, or a defense base), its output is 45 Production Points (PP) per turn. If it spends one turn building industry, it raises its industrial infrastructure by 3%. If it spends the text turn building a ship, it receives 46.35 PP (15 Population points * 3 base PP per population * 1.03 Infrastructure bonus). Because the planets current population is 15% of its maximum, it cannot build more than 15% of its infrastructure. Consequently, a planet dedicated to building industry will always raise its infrastructure by 3% every turn, unless it is to small to realize the 3% gain (such as a new colony).

Defense Bases

Each defense base provides a static bonus of 3 defense points. Each defense base requires 200 PP to build.

Ships

There are six classes of starship:

  • Scout: 0 attack points, 0 defense points. Moves around galaxy.
  • Colony Ship: 0 attack points, 0 defense points. Moves around galaxy, creates colonies.
  • Mark I: 2 attack points, 1 defense point. Costs 100 PP.
  • Mark II: 5 attack points, 2 defense points. Costs 200 PP.
  • Mark III: 10 attack points, 3 defense points. Costs 375 PP.
  • Mark IV: 15 attack points, 5 defense points: Costs 700 PP.

Should also add movement rates for the ships, which would also increase with better ship models. Need build costs for scouts and colony ships as well.

Combat

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 occurs whenever two fleets exist in the same place, -or- whenever they pass each other when ones destination is the others source.

  • Not sure that we want to allow deep space fleet interception.. not strongly against it though, would like to hear opinions..

--Combat ships will not be able to retreat.

--Non-combat shipts cannot retreat if combat occurs in deep space

--Whenever a fleet enters a system in which there are enemy planets it will enter combat with all missile bases in the system (as well as any enemy fleets).

--When fleets from more than two empires meet in the same location combat between all participants will be resolved simultaneously and each fleet will be considered to be targeting the other equally.

--When a system is conquered any production in that system is cancelled for that turn, and any progress towards items requiring a multi-turn build 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.

Research & Technology

Players begin with Scout, Colony ship, and Mark I. Planets set to research can discover the following (and in the following order):

  • Mark II: 250 RP.
  • Defense Base: 350 RP.
  • Mark III: 750 RP.
  • Mark IV: 1650 RP.

--Would increase these by a factor of 5-10. Right now Mark II tech could be gained by a single well-developed medium sized colony in 3 turns. Also would put Defense Base ahead of Mk II. Since there is no ground combat it is important that colonies be able to build defense bases relatively early in the game. Would probably also vary tech goal levels based on galaxy size.


Interface & Logistics

Interface

The following screens must exist to do the following things:

  • Splash Screen: 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 (looking ahead: flags!)
  • Universe Screen: Displays starmap with color-coded star systems. Everyone can see everyone else's stars and fleets all the time. 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.
  • Disagree with seeing everything from the beginning. Stumbling onto opponents is one of the better parts of the game. Also leaves little role for scouts.. I don't think it should be too much of a burden to program.

--If a fleet including a colony ship is in a system with any uncolonized planets the universe screen must provide some interface to allow the player to give a colonize order and to select the planet to be colonized.

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

--There shall be at least one screen in which the entire galaxy is visible. This may be either through a separate map screen or through the ability to zoom in and out with the universe screen.

--At the beginning of each turn all ships in any given system will be grouped into a single fleet. When the player click on a fleet icon a popup will display the contents of the fleet, and buttons to move the fleet or to 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 (as determined by the slowest ship in the fleet). 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.

  • Planet Screen: Displays current pop, max pop, industrial infrastructure, and output value of whatever is currently being produced (either PP or RP). If planet is building industry, shows how much infrastructure will be there next turn (or no improvement if planet is already at its max infrastructure based on current population). 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.

--Planet screen will provide an interface for the player to change the planet's build selection.

--If build is set to bases or ships, will show number of turns to completion.

  • SitRep: 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 separate screen for when technologies are discovered. v0.1 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.

Would like to see some primitive animated display for combat, which would occur between turns. Am thinking of a mainly text popup with some sound effects and a display of respective fleet/base strengths which would then reflect casualties as combat rounds are evaluated. Does not need any interactivity.

--There shall be a popup splash for each new turn with a nifty graphic of some sort and a numbered turn label.

  • 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.

Exploration/Colonization/Movement

--Once a fleet has entered deep space its destination cannot be change. 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 point 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.

--When a planet is colonized it will start with 1 population point.

--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.

--Fleets will have no range limitation.

Game Start

--Each empire will start the game with one planet of at least large size, with 20 population, 10 industry, and 3 missile bases.

--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. 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.

Core Engine

--Each empire will have its turn in sequence. The turn order will be determined at random at game start and remain constant throughout the game.

--There shall be a popup/splash for each empire when their turn comes up. It will remain up while other players/AI take their turns, and will stay up for a least a few seconds for the AI players even if it doesn't take that long for them to complete their 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 consilidated 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 and industry totals. 7. Place any newly built ships and missile bases.