popertots c902cff908 feat: async pathfinding with provisional paths and bit-grid snapshots
- Add StandableBitGrid: O(1) bit-packed snapshot (~6KB per 50k tiles vs HashMap overhead)
- Implement two-tier pathfinding: sync for short paths (<64 tiles), provisional+async for long paths
- calculate_provisional_path: capped A* returning path to best heuristic node
- calculate_async_path: A* using bit-grid (Send+Sync, no thread_local)
- prepare_paths system: dispatches provisional paths immediately, spawns async for full paths
- poll_async_paths + splice_completed_async_paths: seamless path transition when async completes
- Entities start walking immediately on provisional path while full path computes in background

Architecture:
  FixedUpdate: prepare_paths → update_wandering_targets → movement
  PostUpdate: poll_async_paths → splice_completed_async_paths

Priority: DF-like pathing (immediate movement) > performance > memory
2026-03-18 16:35:39 +00:00
2024-12-17 19:44:54 +00:00
2025-09-14 19:04:34 +01:00
2024-12-30 22:19:25 +00:00
2024-12-12 18:01:08 +00:00

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.
S
Description
A DF inspired civ-sim RTS sandboxy thing
Readme
1.5 MiB
Languages
Rust 100%