Preliminary Planning
SDxWiki

Candidates for The Job Jar! An attempt to identify first steps in development, in rough priority order. Can't show parallelism here without using fancier tools. GraphViz?

No attempt is made here to address ongoing early design work, e.g. discussions on more advanced simulation and gameplay elements. The focus is on ground-level elements of the architecture on which detail work could begin.

'Develop' is shorthand for design & build. Design usually starts with identifying requirements and designing APIs exposed to other parts of the system, both to be reviewed by others.

  1. Infrastructure
  2. Server setup 3. Buy/build a small server. (Or lease a dedicated hosting server.) 4. Install Linux and source code control system (SCCS). 5. Connect server to net at member home, including setting up a DNS name. (Or install at dedicated hosting site.) 6. Teach members how to use the SCCS.
  3. Development tools 8. Select other development tools appropriate for target platforms.
  4. Develop static flight environment
  5. Develop library for handling hierarchic coordinate system
  6. Acquire/build/convert stellar object DB (static DB replicated on all player nodes).
  7. Develop code to generate and display stellar background for a player location from stellar DB.
  8. Develop first pass at seeded solar system generation algorithms. (Orbital Object Generation)
  9. Develop basic dynamic flight environment
  10. Develop user flight control input system
  11. Develop physics of Newtonian motion; allow player POV to fly as if in a ship.
  12. Develop collision detection. (Suggest we include this early.)
  13. Animate 'static' environment elements; orbiting, asteroid tumbling, etc.
  14. Develop most basic network environment
  15. Design abstractions for communications between nodes. Need to consider direct-call API vs. network API. Perhaps network services layer should include tools to bridge this gap. What can/should we leverage from RPC? Mozart's networking services? Other?
  16. Develop database
  17. Select DB technology. PostgreSQL? Portability/installation issues?
  18. Design comms methods. Direct query of DB allowed (with security restrictions)? Or follow a single- or few-port paradigm?
  19. Design preliminary schema elements 25. Seeds for 'static' objects. 26. Basic active physical object data.
  20. Script system development
  21. Select/design basic language. Leverage existing scripting language if possible -- many possibilities.
  22. Design security model. Script context and resource access.
  23. Design distribution model. Automatic distribution of new scripts to nodes may be critical to smooth evolution and network/computation load distribution.
  24. Develop language/library elements for basic flight control.

Istvan: Notes

  1. I've been told that concept art also needs to start very early - that artwork time can be rate-limiting for the entire project. I'd welcome Dave's comments.
  2. Not immediately, but early in the development cycle process, we will want a very rudimentary QA procedure set up. Once we have segments of compiled code that can be tested, a method to record and report issues back to the responsible coder will be desirable. This could be done via Web script or a simple handmade QA DB.