The ZX Spectrum Reverse Engineering and Clone Desgin Blog


A site dedicated to the reverse engineering of the ZX Spectrum and related projects.

< 5 of 6 >

First Contact

Oct 11, 2009

Having put together the basics of an isometric game engine, the hunt was on for an interesting game idea. I had always thought that a 3D-isometric, run around, shoot-em-up would be fun, so I concentrated my thinking in that area.

Then, over the weekend I happened to watch Star Trek First Contact, and that was it - I had my game.

The basic premise of the game roughly follows the plot of film, in so far as the Enterprise is concerned. Namely, take back control of engineering and rescue Data. The great thing about Star Trek is that there is a whole universe of characters and technology to play with. The Borg for instance are not an immediate threat, but can be provoked. This allows for lots of walking around the ship and interaction, as well as fighting scenes.

Designing Graphics

The first thing I did was to come up with some graphics. I did a lot of research, and drew up a number of things in Google Sketch-up, as well as downloading some pre-created models. Using Google Sketch-up allowed me to rotate 3D objects into the correct isometric view and dump them out as PNG files. Using GIMP I then lowered the resolution of these, reduced them to 1 bit per pixel and drew over the top of them to create some clear graphics.

Drawing the 'people' was the most difficult task. I spent a day or so looking at 3D model images on the internet, photographing Star Wars characters and looking at graphics in about as many existing Spectrum Games as I could. Hard work in all, but I've come up with some sprites that I am pleased with.

I imported some of these graphics into the game engine, added some control code, applied the animation and dug out the sound FX engine and proportional font driver I started writing in 1987, to produce the following demo:

Demo Screen from First Contact

Click here to download a .sna file.

Controls are via the cursor keys. You can move the main character around and listen to the sound effects, and there is only one room. Not all the animation has been applied yet, as it is still early days and the frame syncing has not be tuned, so there is a little speed-up and slow-down. Once I get an idea as to the number of sprites per screen, and tune their speeds I can tune the frame synchronisation.

This week I introduced some further graphics, in particular the doors, as getting these working like proper Star Trek doors is essential! I think I've figured out how to get the engine to animate them, but as they're technically static room objects, they're a bit of a problem if the game action isn't to slow down when they open or close. I've got a solution, and will try it out when I get a moment. The status area is still a work in progress, but it seems to look good, adds colour and doesn't get in the way of the play area. It will be interesting to see how different shaped rooms fit with the status area, especially as I plan of having irregular shaped floor-plans instead of the usual square or rectangle.

I've yet to compile a demo from the new imported graphics and doors. That'll be coming soon.

Demo Screen from First Contact

The title screen where keyboard, joystick selections may be made will resemble the LCARS computer screens from Star Trek TNG. A lot of the in-game interaction will take place through LCARS, such as turbo-lift navigation and in-game puzzle games. This is a mock up of such a screen:

LCARS standby screen

Having the LCARS aspect to the game allows for an arcade-adventure aspect to be played out in a far more interactive way.

You might have noticed that there are three main characters planned for the game. See if you can guess who they are?

I'm going to be putting the game aside for a while, so I can get back to writing my ULA book. When my writing head starts to hurt, I'll be back putting more into the game!!