Added TODO
parent
0de278cb03
commit
b48f5e71df
|
@ -0,0 +1,133 @@
|
||||||
|
## Game & Story
|
||||||
|
- Landmarks to determine speed?
|
||||||
|
- 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.)
|
||||||
|
- 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
|
||||||
|
- (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)
|
||||||
|
- UI
|
||||||
|
- Landable planets
|
||||||
|
- Back arrow: reverse thruster or reverse ship
|
||||||
|
- Loading screen, incremental texturearray loading
|
||||||
|
- Indicators (planet names, enemy ship stats)
|
||||||
|
- 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
|
||||||
|
- 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
|
||||||
|
|
||||||
|
|
||||||
|
## 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?
|
||||||
|
- Player faction is special
|
||||||
|
- Actions against one faction affect another
|
||||||
|
|
||||||
|
|
||||||
|
## Internal
|
||||||
|
- Logging/warning system
|
||||||
|
- Frame timings (compute/render/physics/etc)
|
||||||
|
- Elegantly handle lost focus
|
||||||
|
- Pause game
|
||||||
|
- Better player controller? (only one shipbehavior needs inputs)
|
||||||
|
- Clear all `// TODO:` comments littered in the source
|
||||||
|
- Config file
|
||||||
|
|
||||||
|
## Content
|
||||||
|
- Angled engines
|
||||||
|
- Angled guns
|
||||||
|
- Turn engine flares
|
||||||
|
- Reverse engine & flares
|
||||||
|
- Better ship colliders (need a tool or an algorithm)
|
||||||
|
- Better projectile colliders (box/ball/etc -- shared syntax)
|
||||||
|
- Turrets
|
||||||
|
- Weapons with ammunition
|
||||||
|
- Enable/disable weapons
|
||||||
|
- Cargo space
|
||||||
|
- List of ES content--which to implement?
|
||||||
|
- Ship stats
|
||||||
|
- Weapon stats
|
||||||
|
- Display name != internal key
|
||||||
|
- Conversations
|
||||||
|
- Trade
|
||||||
|
- Missions
|
||||||
|
|
||||||
|
## 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
|
||||||
|
- Particles
|
||||||
|
- Dynamic lighting (planets & ships)
|
||||||
|
- Motion blur
|
||||||
|
- Zoom parallax (?)
|
||||||
|
- Background haze
|
||||||
|
- Nova dust parallax
|
||||||
|
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
|
||||||
|
## 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.
|
||||||
|
- ES story is a bit basic
|
||||||
|
- 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)
|
|
@ -2,7 +2,7 @@ use crate::consts;
|
||||||
use cgmath::Matrix4;
|
use cgmath::Matrix4;
|
||||||
|
|
||||||
// We can draw at most this many sprites on the screen.
|
// We can draw at most this many sprites on the screen.
|
||||||
// TODO: compile-time option
|
// TODO: compile-time option or config file
|
||||||
pub const SPRITE_INSTANCE_LIMIT: u64 = 500;
|
pub const SPRITE_INSTANCE_LIMIT: u64 = 500;
|
||||||
|
|
||||||
// Must be small enough to fit in an i32
|
// Must be small enough to fit in an i32
|
||||||
|
|
|
@ -81,7 +81,7 @@ impl VertexBuffer {
|
||||||
|
|
||||||
/// Set the buffers defined here as buffers in a RenderPass.
|
/// Set the buffers defined here as buffers in a RenderPass.
|
||||||
pub fn set_in_pass<'a, 'b: 'a>(&'b self, render_pass: &'a mut wgpu::RenderPass<'b>) {
|
pub fn set_in_pass<'a, 'b: 'a>(&'b self, render_pass: &'a mut wgpu::RenderPass<'b>) {
|
||||||
// TODO: why do these lifetimes work? Write an article!
|
// TODO: why do these lifetimes work?
|
||||||
let mut v_slot = 0u32;
|
let mut v_slot = 0u32;
|
||||||
if let Some(vertices) = &self.vertices {
|
if let Some(vertices) = &self.vertices {
|
||||||
render_pass.set_vertex_buffer(v_slot, vertices.slice(..));
|
render_pass.set_vertex_buffer(v_slot, vertices.slice(..));
|
||||||
|
|
Loading…
Reference in New Issue