A small change of pace ...
In the future we will have handheld devices that resemble an iPad, except that they are not beholden to either Steve Jobs or AT&T. And we will want to know the Mars travel schedule right now, whether or not we can afford a ticket.
To prepare for this future I have started playing around with the Java language and the Android operating system. I've written a number of sim programs in C, some of which are on my static website, but they all have a neolithic user interface that makes them impressively user-hostile. So I have decided to move into the 21st century and play with some sim apps that don't go out of their way to be inconvenient.
Learning to program for mobile devices is a bit odd when I don't even own one, but the alternative was learning either Java for Windows, if there is such a thing, or programming inside a browser, which also seemed odd. Android provides a definite environment, and the Eclipse development tool comes with a nifty Android emulator, which you see in the screenshot.
Because working with modern user interfaces is new to me, that has been the focus of my initial efforts, which you see above. Don't go rushing out to buy an Android phone just yet; as space game apps go this one is both unrealistic and boring. You type in a heading in degrees (on the slide out keyboard, not shown). When you hit ENTER it reports the heading in radians, and positions the spacecraft at the desired angle. The little graphic comes with a Lunar Lander game at the Android development pages.
Hit the Reset button to clear the entry. Hit the Rotate button and the ship does a 360 degree rotation (at a steady rate, no fancy acceleration and deceleration). Error entries - anything non-numerical - cause the image of a wrecked ship to appear. That is the entire functionality of the app.
But the odd thing about a space sim app is that the rocket science is in many ways the easiest part. You don't actually have to design the hardware, after all, and as for the computations, Sir Isaac Newton and the computer processor do the heavy lifting. Providing the information in a way humans can play with it is the more challenging part. This little gizmo is effectively a sort of 'Hello, World' test of basic interface tools, and giving me a first sense of Java code in action.
What I have in mind for now is a solar orbit sim, intended to test the performance of the sorts of midfuture ships that I discuss on this blog. Right now there are no tools out there (that I know of) for modeling steep, fast orbits, and my estimates of travel times are a mix of flat-space approximations and sheer guesswork. The interface, as I picture it, will toggle between a 'pilot' view roughly like this one, and a 'navigation' view showing the orbits. There will also have to be a design-phase screen for entering ship characteristics.
It probably won't challenge FarmVille in the game popularity rankings, but who would have guessed that a farming sim would be a hit? And it will give everyone an opportunity to miss your destination and hurtle on to oblivion, without fuel enough to slow down let alone return to Earth.
Good clean fun for all!