Diff: [root] @ 9033fd1f105 | faq | css

Basic rustorion design document

File created: 33188 code/rustorion/index [Diff]

diff --git a/code/rustorion/index b/code/rustorion/index
new file mode 100644
index 0000000..bb0071b
-- /dev/null
++ b/code/rustorion/index
@@ -0,0 +1,7 @@
h1. RUSTORION

Rustorion is a project to implement "MoO":https://en.wikipedia.org/wiki/Master_of_Orion -like galactic empire management simulator.

technical - Technical details of implementation
strategic - Strategic layers: management of planets, fleets
tactical - Tactical layer: fleet fighting

File created: 33188 code/rustorion/strategic [Diff]

diff --git a/code/rustorion/strategic b/code/rustorion/strategic
new file mode 100644
index 0000000..2db94f2
-- /dev/null
++ b/code/rustorion/strategic
@@ -0,0 +1,36 @@
h1. RUSTORION strategic layer

toc.

h2. Turn system

Gameplay is turn-based. Every turn, all players issue orders to their empires, then results are calculated.

h2. Universe

Universe consists of star systems. Star systems may contain planets of varying size. Size of planets affects possible population size (positively) and supply (negatively).

h2. Supply

Supply is a measure how easy it is to transfer supplies. Supplies are required by fleets to be active and by planets to build stuff. Supply is "emitted" by planets, covering everything in N hyperlanes from planet, where N=planetary supply. Supply is blocked by hostile ships.

h2. Planets

There are different kinds of planets. Planets can be inhabited by races. Certain races prefer to live on certain planets, and will be more efficient and numerous there.

Planets act as fortresses, efficient but immobile defense platforms can be constructed around them. To conquer a planet, one needs to:

# Have enough scanning power to see the planet
# Destroy all hostile forces in system
# Bombard the planet until defense level reaches suitable low
# Launch planet invasion using troop ships
# Maintain system presence until invasion succeeds


h2. Races

Different kinds of races inhabit the planets. Races can be good at different things, like research or manufacturing. Races have happiness stat, individual for each planet but unhappy population will affect other planets as well. Only happy races will fight for the empire, and ships piloted by unhappy race can go rogue.

h2. Fleets

Fleet is a collection of ships. Fleets move at speed of the slowest ship. More about fleet combat in [:tactical].

File created: 33188 code/rustorion/tactical [Diff]

diff --git a/code/rustorion/tactical b/code/rustorion/tactical
new file mode 100644
index 0000000..e7ae5da
-- /dev/null
++ b/code/rustorion/tactical
@@ -0,0 +1,67 @@
h1. RUSTORION tactical combat

toc.

h2. Ship parameters

Structure: structural integrity of a ship. When it reaches 0, ship is destroyed.
Speed: Speed at which ship can move in hyperlanes (out of combat).
Surface: vulnerable surface of a ship. Larger ships are generally easier to hit.
Maneuverability: ability to evade enemy fire.
Damage Treshold: amount that is substracted from enemy weapon fire.

h2. Hulls

Ships are based on hulls. Hull determines basic parameters of a ship and number of available slots.

h2. Slots

Ships have several slots, in which ship components can be inserted on design. Examples of slots:

* External - can equip weapons, armor, scanners or combat engines.
* Internal - can equip troop pods, supply pods or engine plugins.
* Shielding - can equip shields or stealth units.
* Pilot - can equip pilot pods. An AI is an option, but it's typically way less apt than sentient pilot.
* CSS (combat sensors and subroutines) - can equip combat strategies.

Components can affect ship's supply requirements. If fleet is not in friendly supply zone and it runs out of supplies stored in supply pods, it cannot fire most weapons and will start to suffer attrition.

h3. Weapons

Weapons hit enemy ships and drain their Structure. Weapons also have tracking parameter, which can offset effective surface malus.

h3. Armor

Armor increases ship's HP.

h3. Scanners

Scanners are generally not useful for combat ships, but can be used to receive information about adjacent systems.

h3. Combat engines

Combat engines decrease effective surface.

h3. Shields

Shields absorb part of incoming damage, increasing ship's DT.

h3. Engine plugins

Engine plugins increase ship's hyperlane speed and increase chance of escaping combat.

h3. Pilots

Depending on race, pilot might increase different ship parameters. Using AI for a pilot applies a malus to most of them instead, but makes ships loyal.

h3. CSS

Combat strategy affects ship's choice of targets. For example, it might prioritize easy-to-hit ships, or specialize on most dangerous ones.

h2. Effective surface

Ship's Surface and Maneuverability add to Effective Surface. When choosing a target, ships with higher ES weigh more. So, if no other ships are left, ES will not do anything.

h2. Ship combat structure

When several fleets of hostile stance meet (either arrive at same system or collide in a hyperlane), a combat starts. Combat consists of three rounds, during which every ship gets a chance to fire their weapons. Targets are picked based on chosen strategy and effective surface, randomly. When round is over, dead ships are removed or escape if they succeed in escape roll. Escaped ships eventually reappear at rally point with 1 HP.

File created: 33188 code/rustorion/technical [Diff]

diff --git a/code/rustorion/technical b/code/rustorion/technical
new file mode 100644
index 0000000..e31fd84
-- /dev/null
++ b/code/rustorion/technical
@@ -0,0 +1,5 @@
h1. Technical details of RUSTORION

Language: Rust
Framework: "ggez":https://github.com/ggez/ggez (tentative)
ECS library: "SPECS":https://github.com/slide-rs/specs

By Iaroslav Gridin on 2018-06-12 02:22:18 +0300 Powered by bitcheese wiki engine