concept de-duplication

This commit is contained in:
2026-04-15 22:19:26 +02:00
parent fef348325d
commit 5f466fd9bd

View File

@@ -2,94 +2,67 @@
## Overview ## Overview
A single-player asymmetric game inspired by DOTA's wave/tower structure, combined with a Factorio-style factory builder. The player builds a factory on an asteroid to supply shipyards that produce autonomous combat ships. Those ships fight off endless enemy waves advancing from the right. The goal is to survive as long as possible. A single-player asymmetric game inspired by DOTA's wave/tower structure, combined with a Factorio-style factory builder. The player builds a factory on an asteroid to supply shipyards that produce autonomous combat ships. Those ships fight off endless enemy waves advancing from the right. The goal is to survive as long as possible; elapsed time is always displayed.
## Setting & Visuals ## Setting & Visuals
- Science-fiction setting on the boundary between an asteroid and space. - Science-fiction setting on the boundary between an asteroid and space.
- 2D (or 2.5D) top-down view similar to Factorio. - 2D (or 2.5D) top-down view similar to Factorio.
- The game world has a fixed height and scrolls horizontally. - The game world has a fixed height and scrolls horizontally.
- The asteroid surface occupies the left portion of the world; space extends to the right. - The asteroid occupies the left portion of the world; space extends to the right.
- The number of buildable tiles on the asteroid is configurable.
## Game World Layout (left to right) ## Game World Layout (left to right)
1. **Asteroid** — factory and shipyards are built here. 1. **Asteroid** the player's factory and shipyards are built here. The HQ sits at the asteroid's right edge.
2. **Player defence stations** a set of stations positioned in space at some distance from the asteroid edge. They automatically engage approaching enemies. They can be destroyed. 2. **Player defence stations** — automatically engage approaching enemies; can be destroyed.
3. **Enemy defence stations**a set of stations further to the right of the player's stations. The player can only scroll the view up to these stations. They are the push target. 3. **Enemy defence stations**the push target; mark the right boundary of the scrollable area.
4. **Enemy spawn area** enemy waves originate from off-screen to the right. 4. **Enemy spawn area** — waves originate from off-screen to the right.
## Factory ## Factory & Belts
- The player constructs factory buildings on the asteroid to produce materials and ship parts. - Factory buildings are placed from a queue and constructed one at a time, each taking some time to complete.
- Buildings are placed in a queue and constructed one at a time; each building takes time to complete. - Materials are transported between buildings manually using belts.
- The crafting/production tree is defined in a config file so it can be extended later without code changes. - The crafting/production tree is defined in a config file so it can be extended without code changes.
- The factory is simpler than Factorio in depth but follows the same production-chain principle.
- Materials are transported between buildings manually using **belts**.
## Resources & Building Blocks ## Resources & Building Blocks
Two sources feed the same production tree: Two sources feed the same production tree:
- **Mining** — the player's starting resource method. Ores are extracted from the asteroid and smelted into basic materials. - **Mining** — the starting resource method; ores are extracted from the asteroid and smelted into basic materials.
- **Scrap** — collected by dedicated salvage ships from destroyed enemy ships. - **Scrap** — collected by salvage ships from destroyed enemies; can be smelted into basic materials like mined ores, or processed in a **Reprocessing Plant** to extract higher-level intermediate products (fixed probabilities per product type).
- Scrap can be smelted into the same basic materials as mined ores.
- A dedicated **Reprocessing Plant** building can extract higher-level intermediate products from scrap (with fixed probabilities per product type), bypassing parts of the normal crafting chain.
**Building Blocks** are the one globally shared resource: **Building blocks** are the only globally shared resource. An assembler recipe produces them from materials; they are transported via belts into the HQ, which adds them to the global stock. Building blocks are spent to place factory buildings and to unlock additional asteroid columns.
- An assembler recipe turns input materials into building blocks.
- Building blocks are transported via belts into the HQ, where they are added to the global building blocks stock.
- The global building blocks stock is the only global inventory; all other materials exist only in buildings and on belts.
- Building blocks are spent to place new factory buildings and to unlock new asteroid columns (see Asteroid Expansion).
## Ships & Shipyards ## Ships & Shipyards
- Shipyards are built at the edge of the asteroid. - Shipyards are built at the asteroid's right edge.
- When the player clicks a shipyard, they choose a blueprint from all currently unlocked blueprints. - The player clicks a shipyard to assign a blueprint; the shipyard then automatically produces that ship type whenever the required materials are available.
- The shipyard automatically produces one ship of the selected blueprint whenever all required materials are available in the shipyard. - New blueprints are unlocked as loot from destroyed enemy defence stations.
- Ships are fully autonomous and do not require player input. Known ship roles: - Ships are fully autonomous. Known roles:
- **Combat ships** — travel right and engage enemy ships. - **Combat ships** — travel right and engage enemies.
- **Salvage ships** — fly out to the battlefield, collect scrap from destroyed enemy ships, and return to the asteroid. They are vulnerable to enemy ships while operating. - **Salvage ships** — fly out, collect scrap from destroyed enemies, and return; vulnerable while operating.
- **Repair ships** — fly out and repair damaged player defence stations and other player ships in the field. - **Repair ships** — fly out and repair damaged player defence stations and ships.
- If the player's ships are all destroyed, enemy ships advance unhindered toward the player's defence stations and then the asteroid.
## Enemy Waves & Difficulty Scaling ## Enemy Waves & Difficulty Scaling
- Waves spawn continuously over a period of several seconds, then there is a gap before the next wave begins spawning. - Waves spawn over several seconds; a gap follows before the next wave begins spawning. The previous wave may still be approaching or fighting during the gap.
- The previous wave may still be in transit or fighting during the gap — there is no hard "wave cleared" state. - Difficulty scales multiplicatively from two sources:
- Difficulty scales multiplicatively from two independent sources: - **Time scaling** — enemy strength increases gradually over elapsed time.
- **Time scaling** — enemy strength increases gradually over elapsed game time. - **Push scaling** — destroying a set of enemy defence stations multiplies enemy strength by a configurable factor. The replacement stations are scaled by the same factor.
- **Push scaling** — each time the player destroys a set of enemy defence stations, enemy strength is multiplied by a configurable factor (e.g. 1.5×). This factor also determines the strength of the replacement defence stations.
- Both scaling factors stack multiplicatively.
## Push Mechanic (Enemy Defence Stations) ## Push Mechanic
- The enemy owns a pair of defence stations positioned just beyond the scrollable area boundary. - The player is not forced to push; purely defensive play is valid.
- The player is **not** forced to push — purely defensive play is valid. - Destroying enemy defence stations applies the push scaling multiplier to all future waves, extends the scrollable area, and places a new (stronger) set of stations at the new boundary.
- If the player's fleet becomes strong enough that incoming waves are trivial, pushing to destroy enemy defence stations provides a new challenge: destroying them multiplies the enemy threat level by the configurable push scaling factor (starting with the next wave), extends the scrollable area, and places a new pair of stations (scaled by the same factor) at the new boundary. - Destroyed enemy defence stations drop ship blueprints.
- Destroyed enemy defence stations drop loot: primarily **ship blueprints** that unlock new ship types at shipyards.
## Starting Conditions ## Starting Conditions & Game Over
- The player starts with the **HQ** pre-placed and a stock of building blocks. - The player starts with the HQ pre-placed and a stock of building blocks; no other buildings are pre-placed.
- Enemy waves do not begin immediately; there is a grace period at the start to allow initial factory setup. - There is a grace period before the first wave to allow initial setup.
- If all ships and player defence stations are destroyed, enemies attack the HQ. The game is lost when the HQ is destroyed. Factory buildings are never targeted.
## Game Over Condition
- There is a **Headquarters (HQ)** building at the asteroid edge, through which building blocks enter the global stock via belts.
- If enemy ships breach the asteroid — all player ships and defence stations destroyed — they attack the HQ.
- The game is lost when the HQ is destroyed.
- Individual factory buildings are **not** targeted or destroyed by enemies.
## Progression & Goals
- The primary goal is to survive as long as possible.
- Elapsed time is always displayed.
- New ship blueprints are unlocked by destroying enemy defence stations.
## Asteroid Expansion ## Asteroid Expansion
- The asteroid has a fixed number of columns, configurable at game start. - The asteroid has a configurable number of columns at game start.
- Additional columns can be unlocked by spending building blocks from the global stock. - Additional columns are unlocked by spending building blocks (cost per column to be tuned).
- Each unlocked column costs a fixed amount of building blocks (value to be tuned).