Trek Project Management, because sometimes a checklist is all you need.
Counterclockwise, 0 - 1, the x axis marks 0, for simplicity of trig. The bearing system is [LONGITUDE] mark [LATITUDE]. Latitudinal movement is not yet implemented.
- Consolidated CSS
- Also, refactor to use stylus
- Class-selector CSS
- find and kill all id-based css rules
- All HTML must use base templating
- Fix the API
- Get the API turned into a RESTful API
- Consolidate the endpoints so that it"s not just one method per url
- Reduce the use of Constants
- Rely more on class variables for these things
- Speed up the test; rely less on timeouts by forcing the elapse of time through the delta_t ability
- crew test
- ship test
- ship.test.coffee -t "test alert settings"
- game test
- Get the authors of the Mesh"s names in a credits file, ideally the main README.md, and as a menu item off of the main screen
- AI
- We need to be able to create hostile players to fight
- We need to be able to create cooperative players to help, and to communicate with
- Create a klingon enemy ship
- Create a new level where we have to fight a hostile
- Create the level such that there is a spy aboard the enemy ship, and we must beam them off
- Have the level require the use of sensors to solve
- Have things detected with passive hi-res scans show up for nav and tactical displays
- Write an AI client that can act and respond with the API
- Wire up the AI to respond to either level events or with it's messaging
- Sector maps and other systems
- Setup LY-based coordinates for objects not in systems
- Compound coordinates? LY coordinates, offset by metrics is you"re in a system
- In system sets your LY coordinates to that of the system, and calculates your offset as your position
- Enter and leave systems when your delta to a system closes within 80AU
- Patch Long-Range Sensors and SR Sensors
- Simplify the models
- Have LR sensors detect ships and allow configuration
- UX Fail
- Can't dismiss target selection list
- Torpedoes are way overpowered...
- Spy shows up as a (green) Intruder on the crew display
- AI doesn't know how to handle ship operations/emergencies etc...
- Engineering overload is still busted
- Use input sliders for engineering:
- Pushing power to the bridge seems to blow it... causing massive disruption to all consoles
- use data-crew_id attributes for crew movement... there have been a few instances where prisoners seem to be becoming intruders somehow. Suspect this is due to improper crew selection.
- The internal alert indicator never sets back to blue when there is no longer an internal alert
- Transporter doesn't stop you from trying to transport without having selected a destination
- Science Scanner circles don't show up on FF
- Engineering systems should be grouped / filterable by functional requirements (IE goto warp requires nacels, nav, dampeners, integrity fields, etc)
- get a new mesh for the outposts... they're not Stations, they're power collectors. Design appropriately.
- build new mesh
- instantiate the new stations as a new Ship Class, not as a "Station" objects
- get rid of the station object. Merge into Ship
- Cargo run: we should be able to transmit to Starfleet that we need a given supply and have a supply ship bring it from the nearest starbase.
- Configuration of scanners
- Let the arc of the scanner be selected
- Let LR sensors be selected
- Do something more with sensors
- Objects get tracked once we"ve done a detailed scan... so how do we untrack them? At some point, we should be able to loose them (ie clocked, moved out of range, etc)
- Lifesupport loss should mean the crew dies in N minutes
- Show phaser fire, as we do torpedoes
- Pretty Renders
- http://devlog-martinsh.blogspot.ca/2011/12/glsl-depth-of-field-with-bokeh-v24.html
- Just putting a minor blur on the material might be enough
- Also, making the stations rotate a bit could help
- Tractor Beam
- Shuttles
- If transporters and related systems are down, you"ll need to be able to ferry cargo
- The ability for engineering to salvage parts from non-essential systems during an emergency
- All the render delay is in the loader... if we"re going to cache anything in the display, it should be in the parent frame, and then into local storage...
- Use this for animating transporters:
- Explosions disrupt warp fields (seems needed for realism, but if not, makes for good ability to run away); perhaps?
- Might not be needed; you"ll want to drop out of warp to turn and fight
- Additional Screens
- "Scotty" nback iframe
- Minigame for engineering to allow miracle fixes
- Library / Logs
- Working sector nav
- "Scotty" nback iframe
- Some kind of computer interface for querying and library functions
- Academy storage, .gitignored
- Player ID maps to email, score, and completed training
- Rank is determined by number of successfully completed missions at each station
- 0: Cadet
- 1: Ensign
- 2: Lieutenant
- 3: Lieutenant Commander
- 4: Commander
- 5: Captain
Feedback taken from real user testing
- Justin/Tactical still just wants to shoot things... we might need more responsibilities, or to keep them busy with chatter traffic.
- Comms-based minigame?
- [-] There was a strange error where going to warp was prevented by the Inertial Dampeners being offline... Engineering showed that they were completely online... What's up with that?
- Start a game and get given a prefix code, and captain"s log
- Scan for ships
- Get bearings to enemy ship
- Set course
- Fix the ship so that changes to heading will alter the velocity
- Set impulse to get closer to ship
- Raise shields
- Target ship
- Fire at ship until a shield fails
- Warp out to escape
- set warps greater than 1 accurately
- scan for a moving target
- plot a course (intercept)
- match base velocity and heading
- have the computer match speed and heading when we approach a nav target (destination)
- fire torpedos
- arm torpedos
- Vmax = Vi - x
- have torpedoes plot intercept coordinates
- torpedoes set to steer in warp, and tuned the honing parameters (otherwise no chance)
- get shot (MVP = no AI: used
command
instead) - phasers shouldn"t work at warp
- destroy a target
- set alerts
- Have a welcome screen severed in a web console
- Select a ship: Enter a prefix number, get validated
- Get presented with a lists of screens
- Conn (Helm & Navigation)
- Display a map of the system with scan objects
- for whatever reason this only works once, and not on refresh
- Set course
- Set speed
- Plot intercept with object
- x(this was an ugly ugly hack: NEEDS REFACTOR)
- might be nice to return estimated intercept time so the client can start a countdown
- Improved workflow: plot intercept target, then set speed per usual and engage handles the "if intercept_target" business
- Tactical
- Select targets
- Fire weapons
- Set alert
- Conn (Helm & Navigation)
- Main viewer
- Ability to assign URLs to the mainviewer
- Tactical
- Notes:
- Phaser range = 1,000km
- Torp range = 300,000km
- 16 yield levels (let"s make this exponential)
- Phasers can fire at warp if you"re very close together (5km)
- http://www.ex-astris-scientia.org/inconsistencies/treknology-weapons.htm
- Select yield options
- Weapons range viewer / zoom ability
- Phaser / Torp zoom
- Draw a circle around the ship to show range
- Torpedo inventory (96 from a manual count in ST:VI)
- BUG Range seems wrong: closing to within < 1000km still shows target outside the circle
- Initial state settings / update state
- Notes:
- Proper damage calculations for the world
- Pull out torpedo logic, and replace with a probability of impact, or something more controlled than JS trying to impact some integers w/ clock calcs
- Engineering
- Damage report
- visit space stations
- cargo scans
- cargo transporters
- beam personelle to other stations
- beam security teams aboard
- beam teams back
- get cargo from stations
- I want to be able to assign repair crews
- send hails
- View stations on screen
- Get initial starfield
- Display three.js asset
- Have a star
- Create Viewscreen page with camera options
- Foreward
- Selected target
- Define a visual range
- Web Interface:
- Ops
- Transporters / Away Missions
- View places within transporter ranger
- Transport away teams away
- Transport away teams to
- Transport crew from
- Need to rebuild crew and internal_personnel whenever sublists change
- Transport cargo to
- Transport cargo away
- Repairs
- View damaged system details
- Send repair crews to different systems
- Crew
- View crew on different decks
- Send crew to different decks
- Cargo/inventory mgmt
- Transporters / Away Missions
- Ops
- Hull Damage
- When phaser fire is incurred, the hull should be damaged
- When torpedo / explosions occur, the hull should be damaged
- Damage distribution
- Systems should be damaged according to the deck they hit
- Shields should only offer a dampening of damage, and that should decrease as they weaken
- Levels
- Load level objects
- Have ships, stations, and celestial objects be defined in the level
- Have a victory condition specified in the level that can be tested
- Have some means of displaying a "Game Over" message to all the teams
- EJS alows for imports; use these to build up templates and trek.js
- http://css-tricks.com/animating-svg-css/
- Power Systems
- Systems must have a greyout, operational, and maxrated power level
- Systems are tied together via EPS grids
- System power status should be checked as part of it"s health check
- Systems above operational rating should experience damage
- Systems above max rated should have a probability of blowing
- EPS Grids must distribute all their power to all sub systems
- EPS Grids can themselves overload if too much power is passed through them
- Warp core and impulse reactors can have their energy output scaled up and down
- Ship Power Systems
- Power systems should be able to calculate the draw required of their attached systems
- Have ability for ship to calculate and plot complex power routes (IE Warp power to forward shields) for as not to blow up all the power relays
- Systems performance should now be taken into account (system.performance()) when using the systems (IE Transporter range, shield regeneration, sensor range, phaser strength, etc)
- Have charge systems recharge over time, provided they have power (the recharge rate is x1 at operational power, <1 in the greyout band, and >1 in the operational to max band)
- Reactors should be able to be turned down, causing power drains to systems
- EPS junctions should be able to be switched to impulse or emergency power
- Allocated Power
- Engineering should be able to dial up individual system power
- Engineering should be able to reroute EPS sources
- Engineer should be able to turn systems on and off
- Engineer should be able to dial down reactors
- Working Science Screen
- For reference: http://www.startrekfreedom.com/wiki/index.php/Sensors
- Scans by volume/time/type
- Ship scan
- Game object scan setup
- Long Range scanners
- Short Range scanners
- Quadrant limiting
- Long Range scanners
- See scans and display them
- Need to be able to set configuration...
- Detailed scans of targeted objects
- See discussion below on Highres scanning
- [-] Spatial objects
- [-] asteroids
- dust disks
- stars
- [-] anomalies
- [-] protoplanetary clusters
- Skewed circle of blocks with a data overlay in the bottom right corner: http://jsfiddle.net/4j8pn/6/
- [-] Debt
- Store results in scanner in absolute values; translate to relative only when reporting
- Scanner have multiple subarrays... refactor so that scanners can run multiple scan types simultaneously, and store those results
- Passive HighRes is the scan that detects ships, and should get special treatment...
- Active HighRes, (as well as navigation and weapons targeting) should be available once Passive HighRes has successfully isolated a target
- [-] While it"s nice that plasma clouds block scans, they should also be able to simply limit/attenuate scans
- Expose a "scanStatus" api, and include a time-to-complete/progress property on the scanner system
- Hotfix: Plot intercept course appears to be 0.5 off of the actual required bearing (WTF?)
- [-] Hotfix: Gravimetric scans should always detect the local star, why doesn"t it? Totally not a problem... the LR scan only displays a quarter of the ring (fwd sweep) We should just make sure the ring in the browser only shows those grids.
- Hotfix: The grid numbers on the display are arranged backwards...
- Hotfix: When "setcourse" gets called, we end up seeing it mulptile times on the server?
- [-] Hotfix: Changing scan resolution settings seems to now clear the device..
- Hotfix: The sensor_sub screens don"t handle red alerts correctly
- Hotfix: Wire the transporter scans to use what the sensors see
- Comm Refactor
- Clearing out underscores from names
- [-] Plotting course to stationary objects is broken
- [-] Velocity doesn"t work at warp
- Setting speed above warp 6 is broken in the interface
- Ability to zoom around
- Fix the "Plot intercept" menu as a fly out that display over the screen to select a target
- Fix "Plot Intercept" to kill negative number results, and display an error if the plotted intercept was impossible.
- Error Handling
- When express.js throws a 500 error, I want the client to be passed the message, so they can take action if desired.
- Tactical
- Torpedo loading needs to be limited
- Torpedo tube launch status EMPTY... LOADING... LOADED
- on Red Alert, begin loading tubes
- The location of the ship seems to disapear when the subspace transponder is offline... we should probably fix that so that the ship is filtered out of the scan, but automatically inserted back in the display
- The target selection flyout menu should be a flyout, like the intercept menu
- Fix underscores in names
- Torpedo loading needs to be limited
- [-] Balanced Weapons
- [-] Tactical situation tests: Two constitution classes should be able to go toe-to-toe for more than one volley
- Torpedo logistics
- Have torpedo tubes
- Require tubes to be loaded, with a timeout
- Ensure inventory is managed
- Firing a torpedo without a target needs to be addressed/disabled
- Ensure that jumping to warp would allow you to evade a torpedo
- Have torpedoes send out notices to anyone looking at a target that they"re about to hit
- On torpedo hit, have every screen show damage
- When you destroy a target, have it blow up in displays
- There"s a bug with stations getting hit where they seem to all disapear
- How do stations process damage?
- Ops Love
- Transporters don"t seem to be working
- Crews en-route to destinations should be displayed as such
- [-] ... make more awesome?
- [-] Engineering
- [-] We need a feedback screen when something blows up, power wise
- [-] EPS relay destruction needs to be more apparent
- Bug:
- Trying to set the power of the Aft EPS circuit down to 99% causes the output to rise?!
- Science
- The active scan needs to display a progress bar of some kind
- Scanning... Complete... Compiling composite scan...
- The active scan array should be able to work even when the ship has turned. This could be accomplished by giving every object a base GUID that we could then use to track back on, like an object hash.
- We need to display the text outputs
- We need to display power readouts
- The active scan needs to display a progress bar of some kind
- Battle Ratios
- Balance the torpedo hits, sheild balances and hull strengths required for accurate combat simulation
- Check to see if it"s possible to get phasers working correctly here
- Torpedoes need to clear post-detonation
- White flash for explosions...
- Navigation
- Time to turn and make course corrections
- The viewscreen should indicate turns
- Warp animations
- Thruster manuvering
- We should have the ability to steer around other ships with thrusters
- Especially true if we want to turn the ship in combat
- ability to rotate the ship around
- Use callback result to highlight button
- put in delay when turning
- [-] put in delay when jumping to warp
- [-] put in acceleration delay
- [-] Charge time on warp
- [-] Warp powers require more power
- [-] Handles the routing of extra power to manage the warp drive systems
- Have the current operation and speed be displayed on the nav screen
- Time to turn and make course corrections
- Need the ability to see the current sheild levels
- Fix Transporters
- Fix Operations / Internal crew movement
- Where are the rest of the crews?
- Fix the Impulse direction indicator
- Also note, the direction indicator on the tactical screen is a flipped representation from the conn screen.
- Fix combat
- torpedo strikes don"t seem to be working well
- close range maneuvering is required for phasers
- Captains log
- Get a captain"s log displaying when the main viewer initiates
- Cooperative Mission Profile
- We need environmental and internal science screens
- Environmental
- Internal
- [-] We"ll need subsystem targeting for weapons
- Move this to the tactical refactor
- [-] We"ll need engineering and tactical to have a better shield status display
- It"s kind of nice that they have to check with engineering, and that engineering has to click around
- Create a scenario where two teams must cooperate
- Make it possible to win solo
- Create game level events to trigger actions
- We need environmental and internal science screens
- [-] Engineer minigame miracle fixes
- This may still be needed later on, but shouldn"t strictly be neccessary
- Engineering power allocation fixes
- Music/sound (Theme music, and red alerts. Phasers and torpedo hits.)
- https://www.youtube.com/watch?v=7J-y2rFfny8 (red alert)
- Enterprise-B bridge sounds from Generations
- Theme from Original Motion picture
- [-] Explosions
- Save this for developing the bridge system and handling broken screens etc.
- Transporters
- Alerts
- Torpedo firing
- Phaser firing
- Engineering warning on dangerous power level bumps
- Refresh the side screen when power levels are no longer critical
- Risks to systems should be made clear
- Include EPS percentage
- Force a confirmation popup when above safety line
- Systems should be damaged more than they currently are from over use
- EPS blowout status needs much better visual representation
- include sound effect and cracked screen as well
- Tactical
- Breakout the phaser, torpedo, targeting, alert, and comms screens
- Phaser screen should indicate charge buildup of each bank
- Bug Phasers won"t fire
- Targeting will need to have subsection targeting
- Shield screen should indicate the strength, charge, and status of each shield
- Crew interactions
- Healing from medics
- Heal crews in sickbay
- Repair teams should be able to fix bridge damage
- The bridge has to be a system
- Damage to consoles gets dolled out from here
- Engineering teams should limit/prevent overdrive damage
- [-] Science teams should ...
- [-] Figure out what science teams should be able to actually do
- Should be required for the mission profile: this is in keeping with cannon
- [-] Figure out what science teams should be able to actually do
- Game over if crew is dead
- Navigation
- Thruster maneuvering
- required for phaser combat
- Navigation status display
- Thruster maneuvering
- Viewscreen selection needs something other than the separate "viewscreen" page... either a mobile-friendly selector, or a flyout menu off of the main viewer
- Remove the iframe
- Make mobile friendly
- Background nebula art
- Build out a star map background
- Create a basic star and nebula bit of art
- It would be nice to be able to scan the star: We"d need a basic mesh for it, but that seems pretty simple
- z-axis implementation
- Allow ships to set course using "m": 0-250, 750-1000 are both valid sets... anything else, just turn the ship around
- display -/+ z values on system map displays
- have the stations start at positions other than z : 0
- figure out if/how to patch the rotation of the ship
- turning left/right while pitched up does different things depending on the angle of attack... we could get all fancy with quaternions, but at the end of the day, this is meant to be a ship, not a fighter. It would make sense for safety reasons to limit the accumulation of angular momentum, and if we decide we"re okay with this, we don"t have to do anything.
- have radiation levels increase the closer you get to the star
- safety zone > 20AU should allow a safe muster point
- science scans of the star should indicate this information
- [-] begin using the accretion disk
- have radiation be dampened by the accretion disks / dust cloud objects
- have the dust inform the particle density environmental value
- have the particle density figures corelate to max-possible warp speed
- this gets super annoying... let"s balance this a bit more
- when the nav drops out of warp, display a message to the conn screen (socket it)
- when the computer detects a lower required speed, drop to that speed, not zero
- [-] play with lowering the particle density some more
- [-] the visible gas clouds don"t seem to line up with the observed particle density
- display the distribution of gas clouds on the sector screen
- have clouds appear more radially, and at harmonics
- have warp drive be a charge-depleting action on the nacelles
- Academy!
- Training missions
- Build an SVG/HTML training mission plugin
- Hash SVGs to know which training is complete, use local storage
- http://maxwellito.github.io/vivus/
- Comm
- How ship turning works
- How to read distance, bearing, and z-axis
- How warp works
- Warp vs impulse
- Thrusters and newtonian bits
- Ops
- Transporting cargo
- Moving crew
- Conducting repairs
- Checking cargo
- Tactical
- Operating the communications systems
- Alerts
- Torpedoes
- Phasers
- Shields
- Tarteging
- Science
- Readings a scanner
- LR vs SR scanners
- Detailed scans
- Internal Sensors
- Engineering
- Systems: Active / Online
- How power works on a star ship
- Regular systems
- Charged systems
- Relays
- Training missions
- Zoom out for the navigation screen