About me

Vladimir Nabokov

Aim | Communicate




Letters from Terra - Life in water warmed by sunlight


In addition, a more complex image editor, that allowed images to be constructed from scratch, and PCX files to be converted to my own image format was required, and produced by updating Canvas 1: Canvas 2 has been successively modernized since then, and currently in use are versions 2.4 for MCGA images, and 2.6 for SVGA. Images were loaded from disk as required, which was extremely slow since the Blockread instruction was not being employed: but sufficed for the purposes of the game.
Simultaneously, I was also dedicating much of my programming time to the construction of a 3D engine, capable (initially) of the accurate display of polygons in a 3D space, and the matrix defined manipulation of these for rotation. This started out using BGI graphics, something that I jettisoned quickly after I realized the limitations of 4-bit colour and the woedully slow rendering speed of the graphics. The original engine had a few simple, predefined polygons rotating and zooming according to the keyboard, using my own home formulated formulae to calculate perspective, that is the 3D engine itself, translating polygons defined in 3D space into shapes drawn onto the flat screen: amazingly, I was only slightly out in my calculations, and that engine, unchanged, still forms the core of my modern and entirely functional texture mapped 3D world. The early 3D engine was one of my most intensive projects, employing as it did graphics generated purely by a real time engine, and making use of more complex mathematical routines than I had previously used. It was through this that I also acquired the (vital) skill of optimising code: most of my previous programs had either hung off the speed of the processor, or needed code to stop them running too fast, and it was through the development of this code that I realised the limitation of the machine I was using, and the relative speed of the Pascal (and later Assembler) commands.
In compiling this catalogue of my past attempts to produce working programs, I hope to offer some insight into a more general development process when learning a porgramming language, and so to give others a measure of the speed of this development: of programming technique, basic acquisition of the langauge, and extension of the language using external units or Assembler, or optimisation. The games are also downloadable and quite amusing, although I suspect their replay value may be somewhat limited.

Page one | Back to Early projects
Letters from Terra | Updated 15th December 2004 | By Jonathan Ayling