A collection of feature ideas for the TileMapEngine, discussed on 2026-05-04. These build on the existing engine (tile rendering, AI, crafting, networking, lighting, combat, weather VFX) and add new gameplay systems and polish layers.
🌦 Dynamic Weather System
Upgrade the existing RainManager and WindSpawner into a full weather state machine with per-tile effects.
- Weather states: Clear → Clouds → LightRain → HeavyRain → Storm → Snow → Sandstorm, with weighted transitions
- Tile-level effects: rain adds wetness (slows fire spread, creates mud), snow adds snowCover (slows movement), sandstorm buries tiles
- Wind direction & strength vary by state — feeds into WindSpawner and Fire Propagation
- Lightning during storms can strike tiles and start fires
- Integration: reuse RainManager particles, hook into CustomTile via parallel Dictionary<Vector3Int, TileWeatherState>
🔥 Fire Propagation
Fire spreads across flammable tiles, influenced by wind and wetness.
- New CustomTile property: flammability (0 = immune/stone, 1 = leaves/paper)
- FireManager tracks a HashSet<Vector3Int> burningTiles, each with a burn timer (3–15s) before becoming ash
- Spread biased by wind direction/strength, blocked by wet tiles from weather system
- Tile lifecycle: Grass → Burning (particles + glow) → Ash. Wood → Burning → Smoldering → Ash
- Interop: explosions (Explosion.cs) set adjacent tiles on fire; rain extinguishes
- Parallel to existing CustomTile.spreadToTiles system
⚡ Power & Conduit Grid
A tile-based energy grid: generators → conduits → consumers (lights, drills, turrets, teleporters).
- EnergyNode types: Generator, Conduit, Consumer — stored as metadata on tile positions