Skip to content

Player Journey

The player lifecycle from first login to end-game, expressed as playtime cohorts. Each phase has target pacing milestones (turns, credits, planets owned, rank), the dominant gameplay loop for that phase, and the retention hook that should pull the player into the next phase.

This is the target experience. Many late-game phases are 📐 Design-only — flagged inline.


1. First login (0–30 minutes)

Goals

  • Account created.
  • First-login conversation completed.
  • First ship awarded.
  • Player understands: turns, credits, sectors, the galaxy map.

Flow

Source: services/gameserver/src/services/first_login_service.py, models/first_login.py, services/player-client/src/components/first-login/.

  1. Account creation → JWT login.
  2. Player-client renders the first-login dialogue (FirstLoginContainer.tsx) — an ARIA-driven conversation that establishes character voice and decides the starter ship.
  3. ShipSelection.tsx confirms the chosen ship type. The choice is funnelled through first_login_service.py which writes Player.first_login.completed = true and creates the starter ship (typically LIGHT_FREIGHTER or SCOUT_SHIP).
  4. Player lands on the main dashboard (components/pages/GameDashboard.tsx) docked at Sol (Sector 1).

Targets

  • New player wallet: 10,000 cr (Player.credits default in models/player.py:31).
  • Starting turns: 1,000 (Player.turns default).
  • Reputation tier: Neutral (Player.reputation_tier).
  • Military rank: Recruit (Player.military_rank default; see ranking.md).

Retention hook

The first-login dialogue establishes ARIA as a recurring companion (see OPERATIONS/aria.md). The player should leave this phase wanting to talk to ARIA again.

Status: ✅ Shipped — first-login flow is complete (first_login_service.py, FirstLoginContainer.tsx).


2. Early game (0–10 hours)

Goals

  • Run a profitable trade route.
  • Visit ≥ 25 sectors.
  • Win first combat encounter.
  • Reach Spacer (50 rank points) → Corporal (150 rank points).
  • Save up for first ship upgrade.

Dominant loop

Trade → upgrade → explore further. The player buys low at a surplus station, sells high at a scarcity station (economy/trading.md), spends the margin on engine and cargo upgrades (ship-systems.md), and uses the extra speed/cargo to reach more distant arbitrage routes.

Source: services/gameserver/src/services/trading_service.py, services/gameserver/src/services/ship_upgrade_service.py, services/player-client/src/components/trading/TradingInterface.tsx.

Pacing milestones

Hour Target credits Rank Sectors visited Trades Notes
1 12,000 Recruit 5 2 First trade complete
3 25,000 Spacer 15 10 First Engine L1 (5K cr)
5 50,000 Corporal 30 25 Cargo Hold L1, Shield L1
10 150,000 Sergeant 60 50 Eligible for Light Freighter → Cargo Hauler upgrade

Source for pacing: services/gameserver/src/services/ranking_service.py:RANK_DEFINITIONS (point thresholds), RANK_REQUIREMENTS (achievement gates).

First combat

Around hour 4–6, the player encounters a hostile NPC (a pirate or rival faction patrol). Combat is turn-based (see combat.md). A win awards rank points (combat_victory reason in ranking_service.py:VALID_REASONS) plus loot. Losing puts the player in an Escape Pod, which ship_service.py:_ensure_escape_pod provides.

Retention hook

Saving up for the second ship — the moment when "I'm a trader in a tiny boat" becomes "I run a real cargo operation." This is also where ARIA begins providing market intelligence (OPERATIONS/aria.md) once aria_relationship_score crosses 30.

Status: 🚧 Partial — the trade-and-upgrade loop is shipped; ARIA market intelligence is 📐 Design-only at the consciousness-tier integration.


3. Mid-game (10–100 hours)

Goals

  • Own a fleet of ≥ 3 ships.
  • Colonize first planet.
  • Reach Lieutenant (3,500 points) → Captain (7,000 points).
  • Join a team or faction.
  • Become a Galactic Citizen (paid tier; see OPERATIONS/monetization.md) or a deeply-invested resident of one region.

Dominant loops

Three parallel loops open up:

  1. Fleet & logistics — the player buys multiple ships, assigns AI traders or routes them between regular stops, multiplying credit throughput.
  2. Colonization & production — owning a planet (models/planet.py, planets/colonization.md) turns the player into a producer rather than just a transporter. Colonist exports become a steady income stream.
  3. Faction & social — joining a team (models/team.py, factions-and-teams.md), building reputation with one or more factions, taking missions for credit + rank points + faction reputation.

Source: services/gameserver/src/services/fleet_service.py, planetary_service.py, faction_service.py, team_service.py.

Pacing milestones

Hour Target credits Rank Planets Ships Faction rep
25 500,000 Staff Sergeant 0 1 First faction Friendly
50 2,000,000 Lieutenant 1 2 Two factions Allied/Friendly
75 5,000,000 Commander 3 3 Team membership
100 10,000,000 Captain 5 4 Citizenship in one region

Source for min_planets_owned, min_combat_victories rank gates: ranking_service.py:RANK_REQUIREMENTS.

Region citizenship

Source: models/region.py:RegionalMembership, models/player.py:join_region, OPERATIONS/multi-regional.md.

A mid-game player chooses a home region and upgrades from visitorresidentcitizen membership. Citizens can vote in regional elections, receive tax breaks, and gain reputation faster. This is the moment a player commits to a community.

Retention hook

Identity. By hour 100 the player has a faction allegiance, a fleet, a planet, a team, and a region. The hooks shift from "earn more credits" to "protect what I built and project influence."

Status: 🚧 Partial — fleet system, colonization, factions, teams all have shipped backbones; full mission engine, faction stipends, and regional voting are 📐 Design-only.


4. End-game (100+ hours)

Goals

  • Reach Flag tier ranks (Commodore → Fleet Admiral).
  • Own or co-own a region (subscription tier: Region Owner $25/mo).
  • Engage in regional politics — elections, treaties, wars.
  • Climb the leaderboards.
  • Deploy genesis devices.

Dominant loops

End-game players play macro-strategy, not micro-trade.

  1. Region ownership — paid tier ($25/mo via PayPal — services/gameserver/src/services/paypal_service.py:create_regional_ownership_subscription). Owners control tax_rate, governance_type (autocracy / democracy / council), starting credits for new players, region aesthetic, and language pack.
  2. Faction wars — coordinated team campaigns to flip stations, contest sectors, raid enemy citadels.
  3. Cross-region politics — treaties (RegionalTreaty: trade, defence, non-aggression, cultural), elections, citizenship migration.
  4. Genesis & terraforming — deploying genesis devices (services/gameserver/src/services/genesis_service.py, multi-million credit cost) reshapes the universe itself.
  5. Leaderboard climbingservices/gameserver/src/services/ranking_service.py:get_leaderboard is the public scoreboard. Top players become known names in the meta.

Pacing milestones

Hour Rank Planets Net worth Region status
150 Senior Captain 8 25M cr Citizen with influence
300 Commodore 12 100M cr Co-owner / governor candidate
500 Rear Admiral 20 500M cr Region Owner subscriber
1000+ Admiral / Fleet Admiral 30+ 1B+ cr Multi-region power player

Source: ranking_service.py:RANK_DEFINITIONS (ranks 13–17 = Flag tier).

Retention hook

Legacy and rivalry. End-game retention is driven by other players, not by content — by the rivalry of competing for top ranks, the politics of region governance, and the satisfaction of having shaped the universe (genesis devices, owned regions, named warp tunnels).

Status: 📐 Design-only for most of this section. Region ownership exists at the subscription level (paypal_service.py); regional governance models exist (region.py:RegionalElection, RegionalPolicy, RegionalTreaty); execution flows (voting, treaty negotiation, war declaration) are not yet implemented.


5. Win conditions

SectorWars 2102 is a persistent universe — there is no single "win." Instead, win conditions are recognition states:

  • Top of the leaderboard in any of: rank points, credits, planets owned, combat victories, trades completed.
  • Fleet Admiral rank — top of the 18-rank progression (60,000 rank points).
  • Region Ownership with active citizens and high trade volume.
  • Genesis Architect — deployment of N genesis devices that reshape the universe.
  • Treaty Sovereign — signatory on N+ active inter-region treaties.

Status: ✅ Shipped (leaderboard, rank top), 📐 Design-only (named achievement tiers above leaderboard).


6. Retention loops summary

Phase Time-to-engagement Loop Exit hook
First login 30 min Tutorial + first-login dialogue "I want to talk to ARIA again"
Early 10 hr Trade → upgrade → explore "I want a bigger ship"
Mid 100 hr Fleet, planet, faction, team "I want to protect what I built"
End unbounded Region politics, leaderboard, genesis "I want my name remembered"

Each transition is player-driven (a goal becomes attainable, the player pursues it) rather than content-driven (a quest unlocks). This is intentional — it makes the long-tail of play self-sustaining rather than dependent on operator-shipped content drops.


7. Failure modes / churn risks

  • Hour 0–1: Confusion. First-login dialogue too long, first trade unclear. Mitigation: ARIA hints (OPERATIONS/aria.md), tutorial tooltips on TradingInterface.tsx.
  • Hour 5–10: Grind. "I'm just doing the same trade route." Mitigation: introduce missions (📐 Design-only), faction quests, first NPC pirate encounter to break monotony.
  • Hour 50–100: Plateau. Credit accumulation outpaces meaningful purchases. Mitigation: planet ownership (already a sink), citadel construction (📐 Design-only), introduce big-ticket sinks (warp tunnels, genesis devices).
  • Hour 200+: Empty universe. Player out-grew their region but cross-region politics is thin. Mitigation: 📐 Design-only — region treaties, elections, declared wars need to be live.

8. Cross-references