A territorial wargame with dynamic armies, inspired by Go but with unique mechanics for army management and supply lines.
Strategic Conquest is a turn-based strategy game for 2-4 players. The objective is to score the most points by eliminating enemy armies and controlling fort tiles. Each player commands one or more armies that can be split, merged, and maneuvered across the map.
Key features include:
- Dynamic army management with splitting and merging
- Supply lines and food resource management
- Combat system with generals providing bonuses
- Fog of war and visibility mechanics
- Various terrain types affecting movement and combat
- Python 3.7+
- Pygame
- Pygame_GUI
- NumPy
- NetworkX
- PyYAML
- Clone this repository:
git clone https://github.com/yourusername/strategic-conquest.git
cd strategic-conquest- Install dependencies:
pip install pygame pygame_gui numpy networkx pyyaml- Run the game:
python main.py- Left Click: Select a tile or army
- Left Click (on highlighted tile): Move selected army to that tile
- End Turn Button: End your turn
- Split Button: Split a selected army
- Merge Button: Merge multiple armies on the same tile
- Retreat Button: Retreat an army through headquarters
- Armies have two main resources: Strength (1-100) and Food
- Smaller armies move faster, while larger armies are more powerful in combat
- Armies can split and occupy neighboring tiles
- Separate armies can merge when adjacent
- Each army may have a General that provides bonuses to combat and movement
- Movement range depends on army size:
- 1-25 soldiers: 4 tiles per turn
- 26-50 soldiers: 3 tiles per turn
- 51-75 soldiers: 2 tiles per turn
- 76-100 soldiers: 1 tile per turn
- Armies with generals get +1 movement
- Food depletes each turn
- Movement and combat consume more food
- When food reaches zero, army strength begins to diminish
- Armies can be resupplied by being:
- Near headquarters
- Connected to headquarters through a chain of friendly armies
- Combat occurs automatically when armies of different players occupy the same tile
- Both sides lose strength each turn in contact
- Smaller armies lose strength faster
- Generals provide a combat bonus
- Flanking (attacking with multiple armies) increases damage
- Eliminating enemy armies: 1 point per 10 strength eliminated
- Controlling fort tiles: 5 points per fort at turn end
- Capturing an enemy headquarters: 15 points
- Headquarters: Spawn point, retreat location, supply source
- Plain: Standard terrain
- Fort: Defensive bonus, generates food, worth points when controlled
- Forest: Reduced visibility, slower movement, defensive bonus
- Valley: No special effects
- River: Slower movement
- Mountain: Slower movement, visibility bonus, defensive bonus
The game is organized into several modules:
strategic_conquest/
│
├── main.py # Entry point, game loop
├── config.yaml # Game parameters and configuration
│
├── game/ # Core game mechanics
│ ├── __init__.py
│ ├── state.py # Game state management
│ ├── board.py # Board and tile functionality
│ └── army.py # Army class and mechanics
│
├── ui/ # User interface
│ ├── __init__.py
│ ├── renderer.py # Game rendering
│ └── controls.py # UI controls
│
└── utils/ # Utilities
├── __init__.py
├── pathfinding.py # Movement calculations
└── serialization.py # Save/load functionality
You can customize the game by modifying the config.yaml file, which contains settings for:
- Board size
- Starting army size and food
- Movement tiers
- Combat parameters
- Supply mechanics
- Scoring values
- Terrain effects
- Colors for UI and players
Planned features for future updates:
- AI opponents
- Network multiplayer
- More terrain types
- Special abilities
- Campaign mode with scenarios
- Custom map editor