The following list shows the capabilities we hope Dawn of Infinity to have. When these are all implemented Dawn of Infinity should be very much how we envision it.
-
Phase 1: Fundamentals
- Set up core server code to receive from and delegate to nodes and clients
- Set up node code to efficiently exchange client information on the system level
- Set up client code to receive updates to the gamestate
- Create a test system (no graphics or visuals yet)
- Implement chat to and from all parties in the test system. By adding chat early, we have built-in communication for debugging purposes.
- Test and optimize until an acceptable number of people can actually play over the internet
-
Phase 2: Basic Simulation
- Create the system layout, with objects having set coordinates
- Implement motion:
- Enable ability to read in ship graphic (and create placeholder graphic)
- Implement turning, and map to keys
- Implement acceleration and top speed, and map thrust to a key
- Implement reverse and/or decelerate key
- Allow turning speed, acceleration, and top speed stats to be changed by an outside data file
- Optional: add simple starfield support for ease of movement
- Create test stellar object in test system, add support for landing (without any functionality while landed yet)
- Test: players should have basic movement capabilities
-
Phase 3: Deathmatch Elements
- Code in simple projectile weapons
- Add test weapon (with graphics & sounds)
- Add shield and armor values to test ships
- Add ship explosions, ejection & new ship handling
- Add targeting
- Map to a key
- Change appropriate interface elements
- Target box around ship
- Navigational targeting of stellar objects
- Program in autopilot key that points ship towards selected object
- Add combat rating (we may need to add other ship properties like crew first)
- Optional: add NPC AI-controlled ships
- Test: players should have a working persistent deathmatch/arena style game
-
Phase 4: Landed Elements
- Create landed interface (with graphics)
- Create player mission presets
- Create news
- Create governments/clans
- Create commodity exchange
- Create outfit shop and shipyard with test graphics
- Program in most if not all ship stats
- Program in most outfit types
- Optional: create gambling
- Create refueling (fuel not used yet)
- Allow for landed interface elements: ship info, cargo, etc., etc.
- Add zones and messages (i.e. "Cleared for docking, commence final approach")
- Test: players should see most of the familiar options when they land, but they will not yet be utilizable to their full extent
-
Phase 5: Macroscopic Elements
- Program in multiple systems, and their control over the network
- Program in jumping and fuel
- Add multiple systems and stellar objects
- Add clan support, etc. (to be determined)
- Iron out trading details
- Optional: add random missions
- Add remaining NPC ship elements: cargo, jumping, etc.
- Add an appropriate amount of game content (planets, ships, weapons, sounds, etc.)
- Test: the game should resemble a bare-bones yet functional version of EV
-
Phase 6: Advanced Player Controls
- Add other weapon types
- Add remaining outfit types
- Add afterburner, cloak, jettison, & self-destruct commands
- Add escort controls
- Program in hypergates/wormholes
- Test: Dawn of Infinity should handle almost all the things people would expect, although the content won't necessarily exist to take advantage of it all
-
Phase 7: Special Effects
- Add asteroids
- Add lighting effects
- Optional: add 3D model support for ships, planets, weapons, etc.
- Add particle FX, fancy explosions
- Add music
- Add any and all remaining game content
- Add new outfits/weapons/features not found in EV that haven't been already
- Test: Dawn of Infinity should be nearly complete and do everything that everyone had hoped for
-
Phase 8: Polishing
- Code freeze and extended bugtesting
- Scenario balancing
- Decision on core server and initial nodes
- Release Dawn of Infinity 1.0
- Cycle back to phase 7 for further modification as desired
Note: Phase 4 and 5 elements are flexible in their order. "Optional" means features could be added now, or could easily wait until later. Code freezes should occur before the testing period of each phase.