diff --git a/README.md b/README.md index c2bc4bc..12a270f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# dorf +# 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. @@ -11,95 +11,96 @@ This project is my way of learning Rust by recreating key aspects of Dwarf Fortr 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 +#### Procedural World Generation +- [ ] Terrain generation + - [ ] Generate heightmaps and elevation + - [ ] Add water bodies and erosion effects + - [ ] Apply biome-specific textures - - [ ] Rivers, caves, and mountain ranges - - [ ] Implement river pathfinding algorithms - - [ ] Procedurally carve cave networks - - [ ] Generate mountain chains with fractal noise +- [ ] 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 +#### 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 +- [ ] 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 +- [ ] 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 -- [ ] 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 +- [ ] 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 +#### Building and Construction +- [ ] Rooms, workshops, and fortifications + - [ ] Design grid-based construction system + - [ ] Implement structural stability checks -- [ ] 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 +- [ ] Mining and digging mechanics +#### Combat and Defense +- [ ] Squad management + - [ ] Develop squad formation and control UI + - [ ] Assign weapons and defensive equipment -- [ ] 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 +- [ ] 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 +#### Historical World-Building +- [ ] Generate civilizations, leaders, and conflicts + - [ ] Assign dynamic histories to regions and NPCs + - [ ] Model geopolitical relationships -- [ ] Events and narratives - - [ ] Random and scripted events - - [ ] Add contextual random events (e.g., resource scarcity, rival factions) +- [ ] 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