Galactica/TODO.md

6.7 KiB

Specific projects

Currently working on:

  • first: fix animation transition timings
  • first: fix particles & physics
  • clickable buttons
  • planet outfitter

Small jobs

  • 🌟 clean up and document short sprite sections
  • 🌟 Better planet desc formatting
  • Procedural suns
  • 🌟 Back arrow -> reverse
  • No wobble for ai ships & autopilot
  • 🌟 User-configurable outfit space types
  • 🌟 Sticky radar
  • Configurable radar
  • 🌟 Ship damage events, unify spawners
  • Better landing animation (slow down)
  • Land from farther away
  • Ship collapse: damage + force events
  • Redesign UI elements
  • Background haze: 3d perlin?
    • nova dust parallax
  • Motion blur
  • 🌟 Generate outlines and colliders
    • Then: outline self in status
  • Reverse engines + flares
  • Turn flares (physics by location?)
  • Angled engines & guns
  • Fix effect interaction with sprite sections

Misc fixes & Optimizations

  • 🌟 Better errors when content/asset dirs don't exist
  • Clear // TODO: comments
  • Correct drawing order (player on top, landing ships)
  • Faster handles (better than a hashmap?)
  • Check for handle leaks
  • 🌟 Log/warning system
  • Clean up & faster frame timings
  • 🌟 Handle lost focus
  • User config file
  • 🌟 Document content
  • 🌟 Clean up content: one ship per file, autodetect
  • CLI: pack sprites(?), check content, content location, logs, etc
  • Better WGSL preprocessor?
  • Projectile performance
  • Starfield clusters, shader instead of an array?
  • Collider groups for factions? (projectile optimization)
  • Better error when sprite is missing from atlas

🌟 Player selection

  • Planet name, ring, and distance
  • Selection UI (around game object)
  • Selection UI (radar arrow)
  • Selection keys
  • Select ships
    • Selection UI (HUD)
    • attack selected ship, even if friendly

🌟 Planet outfitter

  • UI, show ship on land
  • Money
  • Display name != key
  • then: non-removable outfits
  • then: cargo space
    • then: collectible flotsam
    • then: mass from cargo and outfits
    • then: space conversion
      • then: heat + energy stats
        • then: damage type (heat, energy, disrupt, etc)
        • then: debuffs
  • then: assign guns to points
  • then: guns with consumable ammunition
    • then: enable/disable weapons

Ship Spawning

  • requires: Basic ship AI (disable collision for now?)
  • requires: Fleets
  • Spawn ships from planets
  • Land ships on planets (destroy)
  • Start with player on planet, respawn

Debris (requires: flotsam)

  • Destroyed ships leave debris
  • Destructible & floatingdebris
  • Orbiting debris: asteroids
  • ES-style asteroid field (how should we do this?)

Camera physics

  • lookahead
  • damping
  • Don't jump when landing/taking off
  • wobble / ship thrown when hit?
  • UI/effects when damaged?
  • Focus important objects

Sprite reels

  • Sprite reels in content
  • Trigger sprite reel during collapse sequence
  • Trigger sprite reel when firing (requires: non-removable outfits)
  • then: ship tint
  • then: frame timing randomness
  • then: leaks during collapse (needs particle physics)
  • then: passive engine glow, ease in/out
  • Sprite color variation

Texture loading

  • loading screen & menu
  • GPU limits?
  • Cache direcory
  • How to pack?

Particle physics

  • Particles should stick to their ships. How?
  • Particle compute shader
  • Land and unland particles
  • Effect on fire gun
  • Particle / sprite color variation

Sound effects

  • Sound effects
  • User-configurable music (?, game config or user config?)

Specific Jobs

  • Correct depth order
  • Land from farther away
  • Prevent collisions on unlanding
  • UI: text arranger
    • loading screen, menus
    • Indicators (planet names, enemy ship stats)
  • Start documenting
  • Check for handle leaks
  • Don't allocate each frame
  • Sound system
  • Ship death debris
  • Sprite reels
    • random start frame
    • ship leaks
  • Ship death damage and force events
  • Gun fire effect
  • Sprite color variation
  • Multi-particle effects
  • Better loading
    • incremental?
    • Higher texture limit (16 x 8096 x 8096 isn't enough)
    • GPU limits? (texture size, texture number, particle/sprite limits)
  • Particles when a ship is damaged (events)
  • Sticky radar
  • Arbitrary size resource names


Ideas and long-term goals

Features (not soon)

  • Multiplayer
  • Configure key bindings, controller support
  • Save game state
  • Dynamic relationships (get angry when attacked)
  • Jump between systems
    • Story: how?
    • Conversations, trade, missions
    • Lightweight whole-universe simulation
  • Documentation site & front page
  • Dynamic lighting (planets & ships)
  • Lens flare?
  • Active abilities
  • Galaxy date system, slowly orbiting planets
  • Parallelize frame computations
  • Advanced AI: avoid collisions

Game & Story

  • How to keep player in system bounds, what to do if they fly far away
    • Max chase distance, physics-enforced area?
    • (Soft limits, you shouldn't go too far unless you decide to.)
    • Enforce: silently teleport to the other end
  • How to handle death -- save scum should not be the norm (hollow knight?)
  • Locks and keys -> variation?
  • Hard to get outfits you've lost (hollow knight's charms do this very well)
  • Missions: hunt scary targets
  • The world exists outside of the system you're in
    • (large-scale dynamics)
  • How does information travel?
  • Communication timer: destroy a ship fast, nobody needs to know
  • Do we want to pay crew?
  • How should ship capturing work?
  • Enemy motivations
  • Where does money come from?
  • Changing map paths? How?
  • Actions against one faction affect another, dynamic relationships

Write and Document

  • Parallax
  • Starfield & tiling
  • How the game is drawn
    • transforming game coordinates to screen
    • how angles work
  • Computation flow
    • Physics pipeline
    • Outfit pipeline
    • Collision detection
    • Ship AI
    • Handles
  • Content specification and pipeline
  • How packer and optimizations work, and why
  • How big should sprite resolutions be? How about frame rate?
  • Naming: atlas, sprite, image, frame, texture
  • Outfits may not change unless you've landed. They might not change ever for CC ships!
  • All angle adjustments happen in content & shaders

Ideas

  • Improvements over ES
    • Better visuals
    • More interesting combat
    • More interesting missions
    • Big fleets shouldn't be broken (should the player even have a fleet?)
    • ES Enemies don't have a real motivation.
    • Death matters - save-scumming shouldn't be normal
    • More interesting trading?
  • Death penalty
    • Find your wreckage when you die (dark souls/HK)
    • Lose some outfits, lose ship? Real risk for going out! (HK does this well)
  • Damage to ship subsystems
  • Soft and highly armored ship points
  • Repair your own ship