Galactica/TODO.md

5.9 KiB

Specific projects

Now:

  • clean up content
  • Clean up state api
  • Clean up & document UI api
  • Persistent variables in ui scripts
  • Better planet icons
  • Clean up scripting errors
  • Mouse colliders
  • Fade sprites and text in scrollbox
  • Selection while flying
  • outfitter
  • fps textbox positioning

Small jobs

  • Clean up sprite content (and content in general)
  • Check game version in config
  • Fix window resizing
  • Debug: show mouse position
  • 🌟 Better planet desc formatting
  • Procedural suns
  • 🌟 Back arrow -> reverse
  • No wobble for ai ships & autopilot
  • 🌟 User-configurable outfit space types
  • 🌟 Sticky radar
  • 🌟 Ship damage events
  • Better landing animation (slow down)
  • Land from farther away
  • Ship collapse: damage + force events
  • 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
  • Unified content dir

Misc fixes & Optimizations

  • 🌟 Better errors when content/asset dirs don't exist
  • Clear // TODO: comments
  • Correct drawing order (player on top, landing ships)
  • Better physshiphandle
  • Clean up & faster frame timings (average)
  • 🌟 Handle lost focus
  • User config file
  • 🌟 Document content
  • 🌟 Clean up content: one ship per file, autodetect
  • CLI: specify dirs, content location, logs, etc
  • Starfield clusters, less flicker
  • Collider groups for factions? (projectile optimization)

🌟 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

  • Random start frame
  • 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 effect physics)
  • Sprite color variation

Texture loading

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

Sound effects

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


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
  • Land and unland effects
  • Muzzle effect
  • Effect / sprite color variation
  • UI Animations
  • in-game console?

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
  • 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
  • Reserved texture: index zero
  • Errors: lowercase, no punctuation
  • When to use what logging level

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