Hello Hal,
I'm not supposed to do any programming on my vacation, but a
little design can't hurt :-)
* Will your program be two-dimensional or three-dimensional?
The error of pressing everything into the ecliptic rivals
what you get from circularizing orbits, so if you do one,
why not the other?
* There might be four of five kinds of object on your map.
- The sun, at the center of it all, as reference point.
- Planets moving around the sun.
- Possibly moons moving around the planets.
- Constant-acceleration spacecraft, with an accel stat.
- Variable-acceleration craft, where accel changes over
time and delta-V is limited. It might be possible to
to ignore time spent accelerating, and to assume an
instant vector change followed by coasting.
I'm ignoring solar sailers, interstellar rocks, etc.
* There should be a "tabletop display" with a zoom function
and a clock which can be slowed, stopped, accelerated and
reset.
* The position of the planets could be calculated like that
of a coasting spacecraft, subject to the gravity of the
sun, and moons could be coasting around their planets.
As mentioned, that is probably overkill. Have the planets
move on a circle around the sun, and the moons move on a
circle around the planets. They move with the clock.
* For spacecraft, the first stage of the project covers
movement from one planet to another. Enter start time,
accel or delta-V, and the destination, and the system
calculates a flight plan. This is shown on the tabletop
display the same way planetary orbits are show, with
hash marks representing time. Probably ships get a
smaller time scale, and different hash marks.
* Really useful, and really difficult, would be various
"intercept calculator" options -- ship A moves from Mars
to Ceres, can ship B from Earth make an intercept or
even rendezvous? If so, where and when does it happen?
I'm using intercept to describe "same place, same time,
different vector" and rendezvous for "same place, same
time, same vector".
* There could also a tool which gives the next launch
window for minimum-time or minimum-delta-V flights
between planets.
* GT has two-dimensional, hexgrid, vector maneuvering rules.
Maybe the program should be able to zoom in to this scale,
to help with space combat.
That sounds like something like the running example/exercise
for a semester-long course Object-Oriented Programming 101.
Regards,
Onno
_______________________________________________
GurpsNet-L mailing list <[email protected]>
http://mail.sjgames.com/mailman/listinfo/gurpsnet-l