3.8 KiB
3.8 KiB
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
- Terrain generation
-
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
- Gathering raw materials
-
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
- Individual dwarves with unique traits
Gameplay Mechanics
-
Building and construction
- Rooms, workshops, and fortifications
- Design grid-based construction system
- Implement structural stability checks
- Mining and digging mechanics
- Rooms, workshops, and fortifications
-
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
- Squad management
-
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
- Trading with caravans
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
- Generate civilizations, leaders, and conflicts
- Events and narratives
- Random and scripted events
- Add contextual random events (e.g., resource scarcity, rival factions)
- Random and scripted events
User Interface
- Visual grid-based interface
- Add visual overlays for resources, paths, and zones
- Keyboard and mouse input
Roadmap
- Build procedural world generation prototype.
- Implement basic colony simulation.
- Add crafting and resource management mechanics.
- Introduce combat and defense systems.
- Polish user interface.
- Expand procedural storytelling and events.