# Specific projects ## Currently working on: - first: remove object array - first: sticky particles - 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 - Reserved texture: index zero ## 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