David Sansome

me@davidsansome.com

C++, OpenGL

Baarbarity

A cross-platform real-time strategy game written in C++ and OpenGL. Features Cg shaders for bloom and reflections, procedural terrain generation and scripting hooks for game events and AI.

Baarbarity was my first OpenGL project and the code is incomplete and quite rough around the edges in places. The game was originally written with hooks for QtScript (based on ECMAScript), but I have recently been working on bindings for other languages including Perl and Python.

Titan terror fishtank

A university graphics coursework. The task was to create a scene based on a Gerry Anderson creation. I chose to put the Titan Terrorfish from Stingray into a fishtank.

Features GLSL shaders for bloom, water surface reflections, fish animation, underwater wobble effect and stencil shadow volumes. Uses SDL and works on Windows, Mac and Linux.

BeQunge

A cross-platform IDE and interpreter for the esoteric programming language Funge. Features an OpenGL code editor capable of displaying code in any number of dimensions.

GLSL Raytracer

A raytracer implemented on the GPU in a single GLSL fragment shader. Supports spheres and triangles with colours, reflections and shadows. Achieves 30fps at 800x600 on a GeForce 8800.

Most of this GLSL raytracer was written in one evening as the result of a friend saying "I bet you can't write a GLSL raytracer in one evening".

Perl

Travianalytics

A mapping and statistical service for the browser-based strategy game Travian. Travianalytics fetches data through the game's API daily and presents a Google Maps interface onto the in-game world.

Although the backend is written mostly in Perl there is a C++ component that generates map tiles. Almost 20GB of player data is stored in PostgreSQL.

Python, Google App Engine

Noogle Goatbook

Noogle Goatbook is an open-source replacement for the discontinued Google Notebook. Notes are encrypted with AES-256 in Javascript on the client, so that neither the password nor the plaintext is ever sent to the server.

Rickrolley

One of the first robots created for Google Wave, Rickrolley will add an embedded YouTube player to a wave and annoy the other participants by re-adding it if it is removed.