Skip to content

RubenTipparach/fallen-tribes-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Fallen Tribes - Task Checklist

Immediate TODO (Current Drag System)

Phase 1: Core Drag System Polish ✅

  • Test current gold/blue hologram drag system thoroughly
  • Verify hologram material switching (gold → blue on release)
  • Ensure line drawing works correctly between ship and hologram
  • Test that only one hologram exists at a time
  • Verify ship stays in original position during drag
  • Remove cube from scene

Phase 2: UI Button System

  • Create "Move" button component
    • Spawn button when ship is selected
    • Position button relative to ship's world position
    • World-to-screen coordinate transformation
    • Raycasting for button clicks
  • Create "Coast" button component
    • Spawn button when hologram exists
    • Position button relative to ship
    • Clicking removes hologram
  • Button hover states
  • Button styling (matching HTML prototype) (TODO: later)

Phase 3: Outline System ✅

  • Research Bevy 0.17 outline rendering approaches
    • Option A: Post-processing outline shader
    • Option B: Duplicate mesh with inverted normals + scaled
    • Option C: Third-party Bevy outline plugin
  • Implement blue outline on hover
  • Implement darker blue outline on selection (persists)
  • Ensure outlines work with OBJ models loaded via bevy_obj

Phase 4: Multi-Ship Selection & Estimated Move System ✅

  • Add second ship to test multi-ship selection
  • Create EstimatedMove struct (position + rotation)
  • Track estimated_move per ship in ShipController
  • Click ship → select it (darker outline)
  • Click elsewhere → deselect ship (via observers)
  • Multiple ships: only one selected at a time
  • Each ship tracks own hologram/estimated move independently
  • Visual feedback for selected vs unselected state
  • BONUS: Direct click-and-drag on ships (no Move button needed!)
  • BONUS: Mesh-accurate picking and hover detection with observers

Phase 5: Refactor Drag to Use Move Button

  • Remove drag-from-ship behavior
  • Implement drag-from-Move-button behavior
  • Spawn gold hologram when dragging from Move button
  • Hologram follows cursor during drag
  • Hologram turns blue on release
  • Line still draws from ship to hologram

Future TODO (Based on HTML Prototype Features)

Turn-Based Movement System

  • Implement turn state machine
    • Planning phase (click targets, see preview)
    • Execution phase (animate movement)
    • End turn button functionality
  • Movement validation
    • Reachability calculation grid
    • Green dots for reachable positions
    • Red dots for unreachable positions
  • Path preview with Bezier curves
  • Display velocity vectors during planning

Physics Simulation

  • Newtonian physics integration
    • Initial velocity (vx, vy)
    • Acceleration/deceleration
    • Max speed constraints
  • Coupled flight mode
    • Main thruster acceleration
    • Automatic deceleration
    • Turn rate limits (°/s)
  • Decoupled flight mode
    • Independent thruster control (forward, backward, left, right)
    • Target rotation control
    • Maneuvering thrusters
  • Gravity wells
    • Gravitational bodies with mass/radius
    • Influence radius visualization
    • Gravity acceleration calculations
    • Bezier path modifications from gravity

Movement Animation

  • Animate ship movement along planned path
    • Bezier curve interpolation
    • Rotation animation
    • Velocity changes over time
  • Ship state updates after movement
    • Update position
    • Update velocity
    • Update heading
  • Movement history tracking
  • Replay system for past moves

UI & Controls

  • Camera pan controls
    • Mouse right-click drag
    • Touch hold to pan
  • Camera zoom controls
    • Mouse wheel zoom
    • Pinch to zoom (touch)
    • Zoom centered on mouse position
  • Control panels
    • Left sidebar: flight mode & physics parameters
    • Right sidebar: help & legend
    • Collapsible sidebars
    • Bottom button bar (Coast, End Turn, Replay)
  • Status display
    • Current zoom level
    • Reachability status
    • Turn state

Strategic Depth

  • Reachability calculations
    • Grid-based reachability analysis
    • Path validation
    • Time-limited movement
  • Movement cost visualization
    • Speed magnitude display
    • Segment time labels
    • Thrust indicators (decoupled mode)
  • Multiple ship coordination
    • Select different ships
    • Individual movement planning
    • Turn order management

Visual Polish

  • Ship rendering
    • Blue ship (current position, with glow)
    • Gold ship (dragging preview)
    • Orange ship (destination preview)
    • Ghost ships along path
  • Path visualization
    • Smooth Bezier curves
    • Fading opacity along path
    • Velocity vector arrows
    • Segment markers with time labels
  • Grid rendering
    • Dynamic grid density
    • Reachability overlay
    • Coordinate system
  • Gravity well visualization
    • Colored influence radius rings
    • Acceleration labels
    • Gradient field visualization

Advanced Features

  • Collision detection
    • Ship-to-ship collisions
    • Ship-to-gravity-well collisions
  • Obstacles/terrain
  • Fog of war
  • Multiple teams/factions
  • Combat system
  • Resource management

Technical Debt & Optimization

  • Performance profiling
  • Asset loading optimization
  • Shader compilation caching
  • Entity pooling for holograms
  • Efficient reachability grid calculation
  • LOD system for distant ships

Documentation

  • Update README.md with current progress
  • Document ship state machine
  • Document physics simulation parameters
  • Add code comments for complex systems
  • Create user guide for controls

About

A dev diary type thing for me hee hee

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published