VecFever documentation
XLander
Homebrew, 2009
The year ‘2009’ is based on the GitHub date since I didn’t find anything in the source code but I am pretty certain this code is much older: it mentions running on workstation OSes of the 1990s and the C language used is also what I think of as old. It feels really old, too, something I could have seen running on an X terminal in the early 90s when using Sun and SGI workstations as a student, not something anyone would have programmed this millennium.
The newer date is likely the time when it was put up onto GitHub but it kept being updated to run on newer Unix systems. It never had a high frame rate due to its history: just 5-10 frames per sec. at a guess way back when, in the source for current Unix versions it is simply waiting 1/10th of a second after rendering a frame. Framerate is not important here, either, the original Atari Lunar Lander is slow as molasses, too, after all.
So does Lunar Lander work in 3D ? Yes – but it is also like XInvaders3D less fun than the original. The vector count of the world is pretty high and it is drawn in a way the Vectrex does not like but at the moment I am also not sure how a Vectrex could draw a hexagonal 3D world well at all so have only played with a few drawing variants and picked the one looking the best here. It flickers .badly. though, be warned. This is more a test application for the creation of frames over a long time-span, where the previous one is kept being output, at minimal ram usage. Which incidentally I implemented first for this but instantly put into other games to average out cpu load between alternate frames in various ported games.
Inputs
Joystick to move in the x/y plane and 4: to thrust
Localization
//NAME="XLANDER"
//
GERMAN[] = {
{ 0, 0, 0},
{ 0, 0, "von"},
{ 0, 0, 0},
{ 0, 0, "und"},
{ 0, 0, 0},
{ 0, 0, "Abgestürzt"},
{ 0, 0, "Gelandet"},
{ 0, 0, "Spielende"},
{ 0, 0, "Ausserhalb gelandet"},
{ 0, 0, "Nette Landung!"},
{ 0, 0, "Geschwindigkeit"},
{ 0, 0, "Vertikal:%.2f Fuss/s"},
{ 0, 0, "Lateral:%.2f Fuss/s"},
{ 0, 0, "Treibstoff:%.2f"},
{ 0, 0, "Punkte:%d"},
{ 0, 0, "Punkte:%d"},
{ 0, 0, " XLander von Paul Riddle und Mike Friedman. Eine weitere 3D Interpretation eines Arcadespiels der goldenen Ära programmiert für das X-Window System. Nach jeder Landung wird das Spiel etwas schwieriger, die Gravitaton wird langsam erhöht, aber der Treibstoff wird im Vergleich zum original Lunar Lander wieder aufgetankt. "}
};
FRENCH[] = {
{ 0, 0, 0},
{ 0, 0, "de"},
{ 0, 0, 0},
{ 0, 0, "et"},
{ 0, 0, 0},
{ 0, 0, "Crash"},
{ 0, 0, "Atterrisage"},
{ 0, 0, "Fin de Partie"},
{ 0, 0, "Atterrissage hors champ"},
{ 0, 0, "Bel Atterrissage!"},
{ 0, 0, "Vitesse"},
{ 0, 0, "Verticale:%.2f pieds/sec"},
{ 0, 0, "Latérale:%.2f pieds/sec"},
{ 0, 0, 0},
{ 0, 0, 0},
{ 0, 0, "Score Final:%d"},
{ 0, 0, " XLander de Paul Riddle et Mike Friedman. Encore une autre adaptation 3D d'un jeu d'arcade de l'âge d'or, programmé pour le système X-Window. Après chaque atterrissage réussi, le jeu devient plus difficile - la gravité augmente - mais contrairement au jeu 'Lunar Lander' original, le vaisseau est ici à nouveau alimenté en fuel. "}
};
ENGLISH[] = {
{ 0, 0, "XLander"},
{ 0, 0, "by"},
{ 0, 0, "Paul Riddle"},
{ 0, 0, "and"},
{ 0, 0, "Mike Friedman"},
{ 0, 0, "Crashed"},
{ 0, 0, "Touchdown"},
{ 0, 0, "Game Over"},
{ 0, 0, "Landed Off Pad!"},
{ 0, 0, "Nice Landing!"},
{ 0, 0, "Speed"},
{ 0, 0, "Vertical:%.2f ft/sec"},
{ 0, 0, "Lateral:%.2f ft/sec"},
{ 0, 0, "Fuel:%.2f"},
{ 0, 0, "Score:%d"},
{ 0, 0, "Final Score:%d"},
{ 0, 0, " XLander by Paul Riddle and Mike Friedman. Yet another 3D interpretation of a golden age arcade game programmed for the X-Window system. After every successful landing the game gets harder - the gravity increases - but in contrast to the original Lunar Lander here the ship is fueled up again. "}
};