Procedurally Generated Dungeon Crawler

For my final year university project I made a procedurally generated dungeon crawler. The Dungeon level layout is generated using a BSP Tree algorithm. A square is split into randomly sized rooms, which are then connected together with corridors. The rooms are then populated with gems, which award points, depending on which gem is picked up.

Tower Defence Game for Android

My Mobile Games assignment at uni was to make a Tower Defence game for Android. The game had to include a main menu, allowing the user to view the instructions and high scores, select a level to play, or just quickly jump into the game.

The main user interface of the game is comprised of the main game screen, the info bar, and the purchase window.
The info bar displays the level number, the user’s remaining hitpoints, the user’s money, and the remaining number of enemy waves, and number of enemies in the current wave.
The purchase window allows you to buy three different sizes of turrets. Each turret has different stats: radius, hitpoints, damage, rate of fire, and cost. Advanced turrets have a larger radius and deal higher damage, but cost more and may have a lower rate of fire than basic turrets.

Enemies spawn in waves, starting from the right hand side of the screen, following the blue squares. If they reach the other side of the screen, the user loses hitpoints. The user builds turrets on the yellow squares to defend his base. Killing an enemy rewards the play with money, which he can use to build more defences.

SFML Chess Game

I used SFML to program a 2D chess game, using the chess set modelled in Maya to create the sprites.
The piece images are placed automatically in positions determined by reading a ‘FEN’ string (Forsyth-Edwards Notation). The FEN string for the start of the game would be “rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR”.
Lower-case letters are black pieces, upper-case are white pieces. ‘/’ represents a new row, and numbers represent empty squares. So ‘ppp4p’ would represent a row with three pawns, then four empty squares, then a single pawn.
The FEN string for the second image would be this:

Piece Capture

Pawn Promotion

En Passant

Chess Set

This chess model was made in my spare time in Autodesk Maya, based on an actual chess set I own. I later used this to make 2D sprites for a chess game I made in SFML.


Garlic Press

As part of my university coursework in the second year, I had to make a 3D model of a garlic press, by using reference pictures of an actual garlic press. Because I repeated the second year of university, I have two different garlic presses.

First garlic press.

Second garlic press.


EVE Online Corporation Website

This website is something I worked on with someone over the internet, for a group in an online game called EVE Online. He worked on the front-end stuff (CSS/JavaScript, Photoshop etc.), while I did the behind the scenes work, namely the PHP code and building the MySQL database. The group (or Corporation, as they’re known in EVE) was setting up a program where members could request skillbooks, and the admins would send the skillbook to the member. Rather than going through their in-game mail every day, they wanted a websites so the requests were organised in an easy to read format.  The screenshot on the right shows what the website looks like when you’re logged in. If you don’t have a valid username and password (one that’s in the database), you can’t see the request page.

Japanese Kana Trainer

I wrote a program that uses repetition to teach the user the two Japanese writing systems (Hiragana and Katakana). The characters are grouped into columns, and each column can be activated and deactivated by clicking a checkbox, so the user can learn one group of characters at a time.

Pistol Model

I made this pistol model in my spare time using the XSI Mod Tool (now called Softimage Mod Tool). The images below show the model at various stages of the modelling process.