117 lines
3.6 KiB
Markdown
117 lines
3.6 KiB
Markdown
# Dorf
|
|
|
|
This project is my way of learning Rust by recreating key aspects of Dwarf Fortress in Bevy. The aim is to build a feature-rich, procedurally generated simulation game, combining colony management, world-building, etc.
|
|
|
|
## Project Goals
|
|
- Learn Rust by implementing complex game systems.
|
|
- Explore procedural generation techniques.
|
|
- Develop an engaging simulation game inspired by Dwarf Fortress.
|
|
|
|
## Current Status
|
|
Work in progress.
|
|
|
|
## Features
|
|
|
|
### Core Systems
|
|
|
|
#### Procedural World Generation
|
|
- [ ] Terrain generation
|
|
- [ ] Generate heightmaps and elevation
|
|
- [ ] Add water bodies and erosion effects
|
|
- [ ] Apply biome-specific textures
|
|
|
|
- [ ] Biome distribution
|
|
- [ ] Define biome attributes (temperature, rainfall, etc.)
|
|
- [ ] Map biomes to regions based on attributes
|
|
- [ ] Add transitional zones between biomes
|
|
|
|
- [ ] Rivers, caves, and mountain ranges
|
|
- [ ] Implement river pathfinding algorithms
|
|
- [ ] Procedurally carve cave networks
|
|
- [ ] Generate mountain chains with fractal noise
|
|
|
|
#### Resource Management
|
|
- [ ] Gathering raw materials
|
|
- [ ] Implement tree-cutting and stone-mining mechanics
|
|
- [ ] Add dynamic replenishment or exhaustion of resources
|
|
|
|
- [ ] Stockpile mechanics
|
|
- [ ] Create system for defining and assigning stockpiles
|
|
- [ ] Optimize pathfinding for resource transport
|
|
|
|
- [ ] Crafting items and tools
|
|
- [ ] Develop crafting recipes and progression
|
|
- [ ] Add tools with different qualities and effects
|
|
|
|
#### Colony Simulation
|
|
- [ ] Individual dwarves with unique traits
|
|
- [ ] Generate personality traits and preferences
|
|
- [ ] Assign skill proficiencies and growth over time
|
|
|
|
- [ ] Needs and mood systems
|
|
- [ ] Model basic needs (hunger, thirst, rest)
|
|
- [ ] Implement mood modifiers and stress responses
|
|
|
|
- [ ] Job assignment and task automation
|
|
- [ ] Create task queue and priority system
|
|
- [ ] Enable task reassignment dynamically
|
|
|
|
### Gameplay Mechanics
|
|
|
|
#### Building and Construction
|
|
- [ ] Rooms, workshops, and fortifications
|
|
- [ ] Design grid-based construction system
|
|
- [ ] Implement structural stability checks
|
|
|
|
- [ ] Mining and digging mechanics
|
|
|
|
#### Combat and Defense
|
|
- [ ] Squad management
|
|
- [ ] Develop squad formation and control UI
|
|
- [ ] Assign weapons and defensive equipment
|
|
|
|
- [ ] Enemy invasions
|
|
- [ ] Generate enemy waves with scaling difficulty
|
|
- [ ] Simulate AI pathfinding and strategies
|
|
|
|
- [ ] Traps and defenses
|
|
- [ ] Add trap-building interface
|
|
- [ ] Implement trigger mechanisms and consequences
|
|
|
|
#### Economy and Trade (Possible)
|
|
- [ ] Trading with caravans
|
|
- [ ] Generate trading caravans based on world events
|
|
- [ ] Add barter or currency-based exchange
|
|
|
|
- [ ] Currency and wealth system
|
|
- [ ] Track wealth and its effects on game dynamics
|
|
- [ ] Introduce theft and economic threats
|
|
|
|
### Procedural Storytelling
|
|
|
|
#### Historical World-Building
|
|
- [ ] Generate civilizations, leaders, and conflicts
|
|
- [ ] Assign dynamic histories to regions and NPCs
|
|
- [ ] Model geopolitical relationships
|
|
|
|
- [ ] Persistent world history
|
|
- [ ] Save and load historical data across game sessions
|
|
- [ ] Link events and characters to history dynamically
|
|
|
|
#### Events and Narratives
|
|
- [ ] Random and scripted events
|
|
- [ ] Add contextual random events (e.g., resource scarcity, rival factions)
|
|
|
|
### User Interface
|
|
- [ ] Visual grid-based interface
|
|
- [ ] Add visual overlays for resources, paths, and zones
|
|
|
|
- [ ] Keyboard and mouse input
|
|
|
|
## Roadmap
|
|
1. Build procedural world generation prototype.
|
|
2. Implement basic colony simulation.
|
|
3. Add crafting and resource management mechanics.
|
|
4. Introduce combat and defense systems.
|
|
5. Polish user interface.
|
|
6. Expand procedural storytelling and events. |