About me

Vladimir Nabokov

Books
Programming
Biochemistry
Aim | Communicate

Search
 


 

 

   
Letters from Terra - Life in water warmed by sunlight
 
 

     
 
 

     
Trooper II in action - click for more screenshots
 
 
     

Trooper II - Introduction

Trooper II is my largest project, and has now become infamous with all those that have any form of contact with me. It started with an experimental graphics engine for the efficient display of images over a scrolling background: this was met with such success that I began to work on the game engine obsessively, to the extent that within a few weeks I had the beginnings of a fast and (for me) graphically impressive platform game. The engine is far from sophisticated, but (admittedly mostely in order to remove the pain from playtesting) the emphasis was always on speed, reactions, and quick playability. The result is, after nearly 12 months of pathological programming, an immediately responsive generic engine that can handle just about anything the user wishes to give it (through the incorporated level editor, and now the level editor for Windows written in Delphi 4.0) whilst maintaining speed and an unhealthily stealthy AI system for the monsters that I wrote during playtesting. A brief histort of the development of the game is probably required. The first implementation of the graphics engine involved the simple loading and scrolling of a background image, the code being generic and written in pascal (I never felt the need to rescript in Assembler). This could be achieved at different rates, and was initially entirely seperate from the game engine. Once this was achieved, I quickly began to experiment with the display of images superimposed on the backgound. Speed proved not to be a problem, but the methodical loading and storage of the images did: and this led to the core of the Trooper II images system, that of keeping all the image file details in a regestry array, and loading the images according to constants that were originally supplied by the pascal program, and are now loaded from the level files. This image data is used to load images into the memory allocated dynamically, and so no valuable conventional memory is wasted; and the image position numbers (the interface to the previously written Pascal graphics engine for MCGA) are stored in another array, written as the images are loaded when the game engine is started. This array is indexed to the number of an image in the registery, and so if one particular image is required, it can be inputted into this array and the images exact position on the heap given by the graphics library variables.

Back to Trooper II home | Next page
 
 
Letters from Terra | Updated 15th December 2004 | By Jonathan Ayling