Galactica/TODO.md

214 lines
6.0 KiB
Markdown

# Specific projects
## Now:
- outfitter
- Clean up scripting & errors
- Clean up sprite content (and content in general)
- Arbitrary scene names
- Text style, color, formatting
- Flying UI
- Mouse colliders
- Clean renderscene/UI scene/change scene on land
- UI captures input?
- Scriptable renderscene: script decides which parts to show
- No UI zoom scroll
- Preserve aspect for icons
- Check game version in config
## Small jobs
- 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
- Configurable radar
- 🌟 Ship damage events
- 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
## 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
- 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
## 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
- 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