Prof. Dr. rer. nat. Peer Johannsen

Weird Science - Tales from the Vectrex Academy Lab

Vectrex Game Project Working Title (also known as PROJECT X)

  • THE LADY AND THE LORD OF THE RINGS

Project Status

Synopsis

  • My personal take on one of the arcade classics of the early eighties ...

Flyer and Caveat

       

How To Play

  • This is a single player game, no two player mode.
  • Both the x and the y axis of the joystick are used to control the game's protagonist.
  • All controller buttons are used, though, for ease of use, buttons 1+2 and 3+4 have same functionality.
  • The game has either 13 or 50 levels, depending on how this is viewed.
  • The ultimate goal is to master all levels.
  • The entry point and the order in which to play the levels can be chosen, to a certain degree.
  • To achieve the overall goal, some orders may be more expedient than others.
  • The player has an additional strategic device at hand which might help in this regard.
  • Further information is still classified.

Some numbers / game features

  • There will be 2 different overlays.
  • The game has only 3 different sound effects. And the obligatory title tune. And 1 more melody.
  • It features 9 different types of bad guys, behaving in 6 different ways, and 12 different super villains.
  • And, of course, there is this 1 evil overlord...
  • There are also 8 different shapes of, let's call them, obstacles.
  • And 1 additional obstacle that comes in 4 variations.
  • There are also 7+ types of, say, blockades, with different behaviors.
  • To increase the chances of survival, there are 3 different types of boni. Well, if found and caught...
  • The player's weapon comes in 4 different power settings. But only if earned...
  • Enemy weapons come in 8 different looks.
  • And another thing also comes in 8 different looks.
  • That much for statistics. Sounds like a lot of variety?
  • Don't get any expectations up. Those are just numbers.
  • The actual game play is rather repetitive and monotonous, and basically always just the same.
  • Blame this on the original ;-)

Some additional remarks

  • The genre of the game is one of the classic video game archetypes. Nothing new here.
  • But with the required level of dexterity increased.
  • Abd with a tiny strategy aspect added.
  • And some fantasy elements added. At least to the fictitious background story.
  • And some educational bits added. Of a certain (scientific or magic?) discipline. For those who are interested in such details. Many kids are...
  • The action is rather fast paced. Often too fast for myself ;-)
  • The final stage of the game features a special Vectrex surprise.
  • There is a small happy end scene, if 100% of the game are completed. Nothing much, but this at least.

Concept Art and Screenshots

  • Probably not to come before the release. To maintain the element of surprise...

Implementation Details

  • Right now, the binary is at 32730 and 32738 bytes of ROM.
  • Of this, 17557 bytes are pure game data, and the rest is execution code.
  • RAM usage is at 803 bytes, with some 16 bytes buffer to the lowest address of the run-time stack.
  • The game is coded 100% in pure gcc6809 Vectrex C.
  • Interfacing with the Vectrex hardware (sound and vector-graphics) is done exclusively by means of using the Vectrex BIOS (RUM) routines. The C code does not contain any other custom inline-assembly routines.
  • The objective (and the fun challenge) is to still have the game running flicker-free at a 50Hz frame-rate, while at the same time fitting the binary in 32K ROM so that it can be used with all common flash cartridges out there.

Regarding Brightness

  • Variation of vector beam brightness (intensity, Z-axis value) is heavily used throughout the game.
  • Those brightness effects look very nice on a real Vectrex console, but are handled only to a certain degree by some emulators. If you have the means, please play the game on a real console.
  • The best results are obtained by turning the brightness potentiometer on the back of the console to a medium setting. This allows for a maximum contrast of bright and faint vectors.

Regarding Scale

  • For performance reasons, the implementation uses some extremely small scale factors (drawing times) for certain game elements. While these game elements can still clearly be seen on a real console, some emulators draw them way too small, showing them just as dots. Again, if you have the means, please play the game on a real console.

Trivia and Personal Note

  • My sincere apologies for still being a bit secretive about the details of the game here. I know this is childish, but I openly admit to still never having fully reached adulthood in my mind and heart...
  • The thing is that I got the idea for this project as the result of an email exchange I had with a certain and very dear member of the Vectrex community back in autumn 2019. I then wanted to do a "quick hack" implementation, meant as a surprise for said person. But the usual thing happened.
  • Working on this idea turned out to be so much fun that the initial "quick hack" rapidly got more and more complex, and soon I wanted the game (and still want it) to be rather complete and polished before "surprising" that certain someone with the final result. Well, I guess, by now it is probably not that much of a surprise anymore?
  • I kept (and keep) working on this project whenever I found (find) some spare time to do so. Often I had to put the project to hibernation when things in real (work & family) life got too busy, and even more often I got side-tracked by other Vectrex ideas and projects.
  • But the nice thing about Vectrex programming is, that - in contrast to industrial programming - there are no hard deadlines in the Vectrex world. So one can do and thus enjoy the programming just and only if one feels like programming. There is actually no need to feel any rush, and no need to hurry. And this greatly adds to the fun of it all. So, cheers to all fellow Vectrex homebrewers out there!
  • Nevertheless, I will try to finish this project as quickly as possible :-)

Author

  • Peer Johannsen

Latest modification on 03/06/2021, 19:00

  • Beta release candidates are available.