Reorganized TODO

master
Mark 2024-01-14 12:57:21 -08:00
parent 5815bb9f9f
commit 2a7d4a7688
Signed by: Mark
GPG Key ID: C6D63995FE72FD80
2 changed files with 171 additions and 117 deletions

View File

@ -7,3 +7,7 @@ end_of_line = lf
charset = utf-8
trim_trailing_whitespace = false
insert_final_newline = false
[*.md]
indent_style = space
indent_size = 2

274
TODO.md
View File

@ -1,7 +1,129 @@
# Specific projects
## Currently working on:
- player selection
- planet outfitter
## Small jobs
- 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
## 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)
## 🌟 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
- Fix angles (point, land)
- Correct depth order
- Land from farther away
- Take off
- Prevent collisions on unlanding
- UI: text arranger
- loading screen, menus
@ -27,122 +149,50 @@
- 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
- 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?)
- Jumping between systems -- how?
- Locks and keys -> variation?
- Active abilities
- 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
- 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?
## Features
- Music (user-configurable)
- Sound effects
- Debris (ship death, destructible, physics)
- Orbiting debris (asteroids)
- Collectibles (flotsam)
- Back arrow: reverse thruster or reverse ship
- Multiplayer? (how does that fit into gameplay?)
- On-screen text
- Controller input & key bindings
- Save games
- Date system -> planet position
- AI fleets
- More ship behaviors, improved ai
- Collision avoidance
- Jump between systems
- Government color, ship tint
- Different kinds of ship behaviors:
- who to target
- how to target them
- where to go
- etc, extra flags
- Advanced particle physics (must move to cpu. Maybe both?)
- Background simulation (two modes)
## Faction interaction
- Targeting overrides hitscan rules (only for player)
- Static and dynamic faction relationships (change with player actions/game events?)
- Dynamic relationships only for player? Other governments may be hard-coded
- Opinion towards player -> how to handle well?
- Actions against one faction affect another
## Internal
- Logging/warning system
- Only compute timings when necessary
- Elegantly handle lost focus
- Pause game
- Clear all `// TODO:` comments littered in the source
- CLI options (debug, save location, content location, check content)
- Config file and compile options, remove all those consts.
- Better error when run outside of directory
- Documentation site & front page
- Random animation delay/fps?
- Better WGSL preprocessor
- Depth buffer (z-axis when landing!)
- Compute shader for particles
- Better performance for projectiles
## Content
- Angled engines
- Angled guns
- Turn engine flares
- Turn engine physics?
- Reverse engine & flares
- Better ship colliders (need a tool or an algorithm)
- Turrets
- Weapons with ammunition
- Enable/disable weapons
- Cargo space
- Display name != internal key
- Conversations
- Trade
- Missions
- Procedural suns
- Heat and energy
- Non-removable outfits
- Space-converting outfits
- Damage struct and debuffs
## Camera
- Shake/wobble on heavy hits?
- Camera effects on low health?
- (or are ship particles better?)
- Lookahead -> position or direction?
- Damping?
- Important objects affect camera
## Visuals
- Dynamic lighting (planets & ships)
- Motion blur
- Zoom parallax (?)
- Background haze
- Nova dust parallax
- Engine flare ease in/out
- Lens flare
- Clustered starfield
- Redesign UI
- Passive engine glow
- Landing atmosphere burn
- 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