chris . makes . stuff

Early Programming

My first experience with programming was making computer games as a teenager.

I recently rediscovered some of my earliest creations so thought I'd put them here in case they get lost from the rest of the internet.

The first programming language I ever learnt was DarkBASIC. It was essentially an interpreted BASIC for making games in DirectX 7. I got a free trial of it with an issue of PC Gamer magazine.

My first finished game was called Alien Rampage which I made for a competition run by Alienware in 2003. The game had to feature a 3D model of the Alienware mascot and some other Alienware branding.

The pretentious intro was my idea :/

Suprisingly it does run on Windows 10, and gameplay wise holds up pretty well!

Download (3.35MB)

Alien Rampage won me a copy of DarkBASIC Professional - pretty much the same language but no longer interpreted, and supporting DirectX 9.

I used this to enter a Retro Remakes competition where you had to remake Operation Wolf, Snake, or Scorched Earth.

My entry was called Tankoids. It was a remake of Scorched Earth and a blatant rip-off of Worms.

It also runs on Windows 10 but has an issue on the "fade in" at the start of a level, which runs incredibly slowly - it seems to be solved if you alt-tab out to Desktop and back in.

Download (3.92MB) (you will probably also need to download DirectX 9.0c)

I made a few other games after this but unfortunately I since lost the code and binaries. Here's some pictures though which remained on a forum...

Blocks

This was a simple puzzle game similar to Bejeweled or Candy Crush. The objective was to clear sections of blocks of the same colour.

Chainmail

This was an unfinished 2D action/adventure game as with simple mouse gesture based sword controls and realistic physics.

In 2006 I got more interested in graphics and shaders than full games. My first successful one was this volumetric cloud effect. The technique is called 'billboarding', basically using lots of small 2D planes which are rotated to face the screen. To get it to run fast I used a trick of collapsing the planes into single points in the 3D model of the cloud, and then using the vertex shader to "spread them out" into a plane. This was very fast because each vertex could be moved using a vector addition based on it's UV texture coords. The usual technique for billboarding required rotating the plane using the camera matrix.

Download (1.92MB) (you will probably also need to download DirectX 9.0c)

My main interest in shaders was "non-photorealistic rendering" (NPR), after being absolutely blown away by this SIGGRAPH paper (from 2002!).

Eventually I achieve a pretty decent real-time "painterly" effect of my own;

Version 1

Version 2

When I left school I got a job (basically an apprenticeship) at a games studio called Frontier. The main game they were working on at the time was called The Outsider but it was never released. I was actually on the Engine team, working on the internal games engine "FGDK" (apparently now called "COBRA"), so it's possible some of my code eventually made it into subsequent Frontier games like Elite: Dangerous.

While I was at university I did a summer internship at IBM. My team's project was a plugin for Eclipse which let teams collobaratively tag/annotate pieces of code with documents or weblinks. It was intended to be a kind of 'next-gen comments'.