A terminal-based roguelike game where you control a gang navigating a procedurally generated wasteland.
- Procedurally generated overland map with trees, roads, and settlements
- ASCII-based graphics rendered in the terminal
- Weight-based inventory system with dynamic item loading
- Gang management system (members, food, ammunition, supplies)
- Data-driven configuration via YAML files
- Python 3.8 or higher
- PyYAML library
- Unix-like terminal (Linux, macOS) for best experience
- Windows users may need Windows Terminal for proper rendering
# Install dependencies
pip install -r requirements.txt# Run the game
python3 main.py- WASD or Arrow Keys: Move your gang
- Q: Quit game
.- Grassland (walkable)T- Trees (blocks movement)#- Roads (walkable)S- Settlement (walkable)@- Your gang
The game uses YAML configuration files for easy customization:
Define item types, weights, and starting inventory:
items:
food:
name: "Food"
weight: 1.0
description: "Essential for gang survival"
inventory_settings:
capacity_per_member: 10.0
starting_inventory:
food: 10
ammunition: 20You can add new item types or modify existing ones without changing code!
.
├── main.py # Entry point
├── config/
│ └── items.yaml # Item and inventory configuration
├── game/
│ ├── __init__.py
│ ├── engine.py # Main game loop
│ ├── world.py # Map generation
│ ├── entities.py # Player gang
│ ├── inventory.py # Inventory system
│ ├── config_loader.py # Configuration loader
│ ├── renderer.py # Console rendering
│ ├── input_handler.py # Keyboard input
│ └── constants.py # Game constants
├── requirements.txt # Dependencies
└── README.md
- Each gang member provides 10 units of carrying capacity
- Items have different weights (e.g., food: 1.0, ammunition: 0.5)
- Starting gang (5 members) = 50 capacity
- Cannot add items beyond capacity
- Capacity updates when gang members join/leave
- Settlement interactions (trading, recruiting)
- Resource management (food consumption)
- Random encounters with other gangs
- Combat system
- Save/load functionality
- Fog of war
- Quest system
This is a sample project for educational purposes.