Skip to content

About

A multiplayer space-themed strategy game written in Rust

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Stellarion

A multiplayer space strategy game for browser and desktop



Play

Mid-game star map with three empires, developed colonies, and fleets

Building shop on an established colony

Planning a mixed-fleet attack with battle orders and fuel costs

Deployment, espionage, attack, and colonization missions in flight

Combat replay between unequal fleets and planetary defenses

Detailed battle report with casualties and combat statistics


📜 Overview

Stellarion is a turn-based strategy game, where players build interstellar empires. Expand your colonies, manage resources, and command fleets that engage in strategic battles for dominance of the galaxy. Win by eliminating rival empires or controlling enough of the map. If you lose your home planet, you are eliminated.

Win conditions

  • Elimination: Be the last player who still owns their original home planet. Conquering or destroying an opponent's home planet eliminates that player. Mutual elimination is a draw.
  • Territorial control: Control at least 50% + 50% / n_players of all surviving planets. Destroyed planets lower the threshold.

Resources

The game presents three resource types:

  • Metal: Metal is the most basic resource, used in almost all constructions and ships.
  • Crystal: Crystal is a more advanced resource, essential for high-level buildings and ships.
  • Deuterium: Deuterium is the least frequent resource in the galaxy, primarily used for high-level ships and as fuel.
  • Energy: Energy is not a stockpiled resource, but a per-turn capacity. It powers continuously operating infrastructure and Jump Gate launches. Each jump uses 1 Energy per 5 fleet production sent, rounded up separately per mission; unused gates consume no Energy. An energy deficit reduces resource income and Planetary Shield strength.

Planets produce a varying amount of each of these resources. Be aware of your home planet's resource production! It should influence the type of strategy you might want to consider for the game. For example, a home planet with a lack of deuterium forces the player into early expansion to be able to fuel its fleet later.

Planets & Moons

A planet is owned by a player if it's the player's home planet or if it has been colonized by a Colony Ship. A planet is controlled by a player if the player has military presence on it. If a planet is owned, it is also controlled by the owner. If a player attacks and wins another planet, but doesn't colonize it, he gains controls over that planet and the previous owner loses both ownership and control.

When Independent Populations are enabled, first contact with an unclaimed planet has an 80% chance to reveal a small neutral population and its fixed garrison. The garrison's strength scales with the turn on which it's discovered and must be defeated in normal combat before the planet can be claimed.

An owned planet produces resources for its owner. Buildings can only be build and used on owned planets. For example, a player controlling (but not owning) a planet, cannot use the Phalanx to see incoming attacks nor use the Jump Gate to move its fleet. Combat on an owned planet always gives full intelligence on the attacking units to the planet's owner. Also when the fight is lost. If losing combat on a controlled planet, no intelligence is gained.

There is a limit to the amount of planets that can be owned by a player. Spots are only freed if a planet is abandoned, conquered or destroyed. A Senate on the home planet raises this limit by one planet per level.

Moons cannot be colonized (and thus not owned), but they can be controlled. Contrary to planets, players can build on a controlled moon. Moons only have a limited number of fields on which to build. Increasing the level of the Lunar Base increases the number of fields. Moons don't have defenses.

Mission types

  • Deploy: Move a fleet to another planet or moon you control.
  • Protect: A world controller can grant another player planet-specific protection access. The invitation is applied immediately and adds Protect alongside the mission choices. A protecting fleet joins that world's defense but remains separately owned. Revoking protection access applies immediately. Traveling protection fleets head home; stationed fleets remain available for their owner to move elsewhere before the next turn, when any remainder heads home. A player can select a protected world as a mission origin and send some or all of their own stationed units elsewhere, or recall the entire fleet home. They cannot use the controller's units or target a world they currently protect with hostile missions or Orbital Railguns. Launching any hostile action at a world immediately forfeits any protection access the attacker had there.
  • Colonize: Send ships including at least one Colony Ship to gain ownership of a planet. The Colony Ship is consumed, placing a level-one Metal, Crystal, and Deuterium mine on the planet. Colony Ships travelling alone or only with Probes automatically lose any space-fauna encounter.
  • Attack: Send combat ships against a hostile world. A victory leaves the fleet there and gives control, but not ownership. The previous owner loses both ownership and control. Surviving buildings remain.
  • Raid: Fight normal combat, steal resources on victory, and return without taking ownership or control. Moons cannot be raided. Resources raided are chosen randomly, limited by the colony owner's shared stockpile.
  • Spy: Gather intelligence on an enemies' strength using the Probe ships. A minimum of five probes is required for a spy mission. The more Probes that return, the more intelligence is revealed. Spy missions cannot be detected by a Sensor Phalanx and do not reveal their origin. If Probes encounter space fauna en route, survivors withdraw after one combat round and continue. Deep Cover requires a completed Command Relay at the origin and adds 10 deuterium per Probe to the launch cost, without a Reactor discount. If the origin's completed relay level is higher than the destination's on arrival, all Probes scan and return without combat, and the defender receives no report or notification. Equal or lower levels trigger normal one-round Spy combat; the extra fuel is still spent. Deep Cover missions never encounter space fauna. Both relay levels count even with deception disabled. Relay deception continues to divert small groups sent without Deep Cover.
  • Missile Strike: Launch Interplanetary Missiles against a planet. They bypass ships and the Planetary Shield to hit defenses directly. Surviving missiles are consumed. A strike always hits the destination, even if it becomes friendly. Missile strikes reveal no enemy-unit intelligence, cannot be detected by a Sensor Phalanx, and do not reveal their origin. They never encounter space fauna.
  • Destroy: Attack with combat ships including at least one War Sun. After each round with no enemy ships or Space Dock remaining, every War Sun has an initial 10% chance plus the planet's −2% to +2% Death Ray size modifier (the chance falls by 1% in later combat rounds). The fleet returns whether destruction succeeds. A destroyed planet can never be colonized again.
  • Intercept: Ambush a visible enemy fleet at a reachable point along its flight path, including its final approach outside the destination's arrival radius. Both fleets use normal accelerated movement, with fleet speed set by the slowest ship. The meeting point and time are committed at launch; recalling or delaying the target can make the ambush miss. Surviving targets complete their scheduled movement and can still arrive that turn. Interceptors return to port afterward.
  • Patrol: Patrols cover a fixed 3 AU radius and attack detected foreign fleets. Detection checks the whole route through the circle. With exposure equal to the fraction of the turn inside it and strength equal to ship count × production_level, the chance is exposure * strength / (exposure * strength + 20). Fleets assigned to the same zone combine their strength. Each observing player gets one attempt per passing fleet per turn, using their strongest intersecting zone. An intercepted fleet loses its remaining movement that turn. Each fleet participates in at most one space battle per turn. Missiles and deep cover missions cannot be intercepted. Each patrol also rolls the space-fauna chance.

Units

You can build four types of units on an owned planet:

  • Buildings: Buildings are used for varied reasons. Core buildings like the mines enhance resource production. The Shipyard and Factory allow you to build ships and defenses on a planet. Other buildings like the Colonial Administration support your empire.
  • Orbitals: Orbitals are constructions in space that provide various strategic advantages, such as extending sensor range, enabling faster travel, or supporting fleet operations. The costly, publicly visible Orbital Railgun can fire once per turn at a planet within its level-scaled range; Railguns aimed at one world combine their small, size-dependent destruction chances into a synchronized strike. Each Planetary Shield level reduces that chance, with twice the reduction while the shield is overloaded. Building a Railgun reveals its existence to everyone; learning its level requires intelligence level 5 (at least 21 returning Probes).
  • Ships: Ships are the backbone of your army. Ship often have unique characteristics that make them better or worse suited for certain strategies. Some ships are also stronger or weaker against other specific ship types, so try to build your fleet according to your enemy's composition.
  • Defenses: Defenses are stationary combat units. They have better price-to-stats ratios than ships, but are fixed to the planet. Be careful with stacking defenses! War Suns are capable of destroying a planet with any defense army. Missiles are also included with the defense units.

Fleet travel

Ships and missiles accelerate throughout each journey. For movement rating s, distance covered after t turns is s * t * (t + 2) / 3 AU. The first turn covers the same distance as before; each subsequent turn covers an additional 2s/3 AU. Fleets use their slowest unit's rating. Owned missions (except a Missile Strike) that are not already returning and not part of an allied attack can be recalled for no additional cost.

On each full turn spent between launch and arrival, fleets have a chance to encounter space fauna and be drawn into battle. Launch and arrival turns are safe. Escort vulnerable Colony Ships rather than sending them through deep space alone.

Combat

In combat, there are two sides: the attacker and the defender. There is the possibility that the attacker has launched his fleets against a planet with no defense or ships, in which case he automatically wins the combat. But otherwise, if the defender has ships or defense on his planet, each side will fire upon the enemy. Combat ends in an attacker victory, a defender victory, or a draw. If both combat armies survive the 20-round limit, the defender keeps the planet and the surviving attackers return to their origin.

Each fleet carries a battle plan: target priority, protection posture, and tactic.

  • Target priority: Doubles the target selection probability of certain enemy units.
  • Protection: Your selected units receive 25% higher relative target weight than your other units. Use this to divert fire away from your more vulnerable units.
  • Tactic: Each tactic counters two others, is countered by two, and is neutral against itself and one other. Countering an enemy grants 15% * affinity / 100 extra weapon damage. Affinity is the average unit fit weighted by unit count times production level. The starting affinity and damage bonus stay fixed throughout combat.

Every unit (ships + defenses) has four basic parameters that affect combat: hull (H), shield (S), damage (D), and rapid fire (RF). Combat consists of rounds. In the beginning of each round, every unit starts with its shield at its initial value. The hull has the value of previous round (initial value of the ship if it's the first round). In each round, ordinary ships randomly target enemy ships and the Space Dock first (with probabilities weighted by the battle plans), falling back to other defenses only when those targets are gone. Bombers reverse that priority, targeting defenses before ships. Stationary defenses choose among all enemy units. Shots are resolved per ship type in increasing production order, i.e., the lowest production units shoot first, and the highest production units shoot last (ships fire before defenses).

For each shooting unit:

  1. If it's the first round of a missile strike, the defender's Antiballistic Missiles will fire sequentially until they are depleted or no Interplanetary Missiles remain.
  2. A random enemy unit is chosen from the shooter's highest-priority target category. If the unit is a defense unit and the planet has a Planetary Shield with remaining shield, the Planetary Shield is chosen as target instead.
  3. If the damage is lower than the enemy's shield, the shield absorbs the shot, and the unit does not lose hull: S = S - W.
  4. Else, if W > S, the shield only absorbs part of the shot and the rest of the damage is dealt to the hull: H = H - (W - S) and S = 0.
  5. If the shooting unit has rapid fire against the target unit, it has a chance of RF% of choosing another target at random, and repeating the above steps for that new target.
  6. All ships with H=0 (no hull points left) are destroyed.
  7. If the objective is to destroy the planet and there are no enemy ships or Space Dock left, each attacking War Sun fires a shot with a chance of 10 + size modifier - (n_turn - 1) percent to hit. If it hits, the planet is immediately destroyed and all defenses and buildings with it.
  8. If it's the first round of combat and there are any Probes on the attacker's side, they leave combat and fly back to the origin planet (if combat probes option disabled).
  9. If every unit of a side (attacker or defender) is destroyed, the battle ends with the opposite side winning.

Things to keep in mind:

  • Buildings are build before any combat takes place.
  • Protection fleets arriving on the same turn as an attack defend first.
  • Missions are resolved in arbitrary player order each turn. This means that you cannot know if reinforcements will arrive before or after an attack when they both arrive at the destination planet the same turn. If reinforcements arrive after the planet has been conquered, the objective automatically is transformed in an attack. Protect missions are the exception: every valid same-turn Protect arrival is stationed before hostile missions at that world resolve.
  • Attacks on the same planet on the same turn are merged per player and per objective. The planet of origin becomes the planet that send the strongest army. The order of resolution becomes: Missile strikes are resolved first, followed by spying missions, raids, and then the remaining, which are grouped together following objective priority Destroy > Colonize > Attack. The resulting army uses the battle plan from the strongest contributing fleet.
  • An attacking player receives no enemy unit information if all its units are destroyed. If there are scout probes, he can only see the number of enemy units prior to combat.
  • A defender player receives no enemy unit information if all its units are destroyed and he doesn't own the planet.
  • During allied attacks, each player keeps their own battle plan.

Settings begin at their defaults whenever Stellarion starts. New games use the current session's settings. Save Game stores your audio, map display, and combat preferences with your player slot on the backend; loading that game restores them. Settings are never saved in the local computer or browser profile.

Mouse + Key bindings

  • escape: Enter/exit the in-game menu.
  • enter: Send mission (when in tab).
  • ctrl + enter: Finish turn.
  • w-a-s-d: Move the map.
  • scroll: Zoom in/out the map.
  • space: Center the map on your home planet and select it.
  • tab / mouse forward-backward: Cycle through the shop/mission menu or rounds in a combat report.
  • ctrl + tab: Cycle through your owned planets (if any selected).
  • During combat: space pauses and left/right changes speed. In the schematic view, ctrl + shift + left/right jumps rounds.
  • Q: Toggle the audio settings.
  • C: Show/hide the player's control domain.
  • I: Show/hide all planet information.
  • B: Show/hide the shop panel.
  • M: Show/hide the mission panel.

About

A multiplayer space-themed strategy game written in Rust

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages