# Specific projects ## Now: - init on resize - hide ui element - zoom limits - text scrolling - scrollbox scroll limits - clean up content - Clean up state api - Clean up & document UI api - Clean up scripting errors - Mouse colliders - Fade sprites and text in scrollbox - Selection while flying - outfitter - fps textbox positioning - shield generation curve - clippy & rules - reject unknown toml ## Small jobs - Better planet icons in radar - 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