James' Game Programming Page

The purpose of this page is to provide my hints, info and links related to game programming. See my my games page to check out some of the games that I've written.

News:

14 April 2001 - E3D (Win32 version) (download below).

18 November 2000 - libE3D version 0.1 released (download below). This is a high-level 3D library for Allegro, designed to make generating 3D scenes as simple as possible.

20 June 2000 - E3D (version 2.1b) now available for download. New to this version is basic support for 3DS binary files and some other stuff. Note that E3D won't work on a video card with less than 2 MB RAM, and it doesn't work on Windows2000. Sorry.

Don't forget to check out my first Atari Lynx demo and links to Lynx development.

I use the DJGPP C compiler with the Allegro game library to do most of my game development, simply because it's free (mostly).

Every now and then I use QBasic or Visual Basic for programming game development utilities.

For game sound development, see my Music & MOD page.


Links to Games Programming Stuff:

DJGPP Stuff

Other Stuff


My Programming History

Back when the Earth was very young, before dinosaurs ruled the mass media, I discovered a wee black wedge called a ZX-81 in the school library. I now use one jammed underneath my monitor to get a better angle, but I've heard they make good doorstops too (personally, I think old Apple II or MSX floppy drives make more stylish doorstops, but that's just my opinion).

The first thing I tried to program on that was a version of the arcade game "Polaris", and I soon discovered that the ZX-81 had limited capabilities. But so what, I could never throw it away. It's 17 years old and it still works!

Then the school bought some Apple II's - party time! Hires graphics and a built-in 6502 assembler monitor. I played with GraForth for a while; very advanced for that time. I wish someone would write a GraForth for the PC.

Anyway, next came the Sinclair Spectrum craze, but I spurned that and bought a Spectravideo MSX machine 'cos it had hardware sprites and a 3-channel sound chip (AY-3-8910). Much the same hardware as old video-game machines. It was a programmer's dream, having the legendary Z-80 8/16 bit CPU with dedicated sound and video hardware. My last two games on this machine were a 50 fps 4-level platformer, and a 25 fps scroller, both using all of the 12.8 k available.

Other projects on the MSX included a 32-sprite automatic control system and a tiled scene handling system for RPG-type games.

Later, at university, I discovered the PC and then the Amiga, back in '87. The Amiga blew my mind, playing demos with colour 3D graphics and MOD music ("Just can't get enough"). It made the 286 look pathetic. But all of my university projects were done on a 286 or 386, including programming an Israeli-made robot to play 0's and X"s (tic-tac-toe), and programming a Finite Difference engine in True Basic.

Much later ('93), I bought a 2nd-hand Amiga 500, great machine for games, a great pity that it was never managed and promoted etc, for it was surely light-years ahead of the Mac and the PC. I never got into programming games on that, but messed around with blitters and dual playfields and sprites and MODs and samples with AMOS and OctaMED (still the best tracker!).

Then I hacked together a 386 DX40, played "Descent", and I thought "Hmmm, the PC's not so crap after all." Faster than an Amiga, and it had a hard drive (all 40 MB of it!).

After a while I accumulated a 486 DX4-100, an AWE-32, a Video Blaster, an S3, a CD-ROM, a zip drive, and a bigger hard drive. Also some sequencing/tracking software to use with my synths, and some graphics and programming tools to finish off my music and game development system.

These days I use a Pentium 4 1.5GHz machine.

I started off learning Borland C/C++ many years ago, but all that crap about segments put me off (Amiga programmers don't have to deal with that!), so I only got seriously into game programming on the PC with the arrival of DJGPP and Allegro, which together make game programming on the PC a pleasure.

Recently I've been using Dev-C++, Visual Studio and OpenGL for some of my projects.

My PC projects so far:
OpenGL Racing Game Track Editor
OpenGL Racing Game
E3D 3D Model Editor 3D Library for Allegro 3D Game Engine
Net Racer
Palette Editor
3D Model Editor for my 3D system.
Fractal Landscape Generator (Visual Basic).
File Viewer (Visual Basic).

Roland D-50 Patch Librarian