Games    Guitar (Soundcloud)


Website summary:

This site illustrates some of the games I have developed as part of my part-time hobby coding games.

Feng Shooey


For LD26, the theme was Minimalism. I had a few ideas, but ended up coming up with an idea about cleaning up a zen garden after cats and dogs had messsed it up. Instead you just scare them off a bit. It isn't really that fun, though I managed to implement animation in the 72 hour Jam period, and managed to port it to Android about two weeks later (though I was sick of playing it by that point).

The best reaction I received was "MY GOD, THE CATS ARE SHITTING EVERYWHERE!".

Feng Shooey

Java 4K: Starkiller


When I was developing Here be Dragn, I kept being drawn to the Java Gaming forum when I googled issues. I've been checking it for a while and I discovered the 4k Java competition tucked away. I'm very new to the concept, as shown by the fact I started trying to acheive that class limit uncompressed. I havent tried the compression tools on it yet, though I think it should sneak just under 4k.

I'm quite proud of the sneaky things I've done to make it work:


Ludum Dare (LD25):


I joined the Ludum Dare contest about 12 hours in. Given the theme of "You are the villain", I decided to create a game about playing a dragon eating people. The original idea was playing Smaug from the hobbit trying to get his jewel back in a map shooter, but it just ended up being a bit of a centipede clone in the end. As I had not got any sounds or many resources, I submitted in the Game Jam, and ended up spending a few odd days here and there smoothing wrinkles out. I was quite happy in that I overcame the GC issue (I learnt how to reuse objects).

I stopped developing when i got bored with playing the game and would have liked to have got animation working, though the resouce creation process was going to be a lot of work..

Strangely, for all the work I put in afterwards, the game is very similar to the LD version. This is probably a project effect whereby the majority of the project takes a small amount of time, and the last 10% takes absolutely ages. Theres a software engineering name for that, though I've forgotten it.

Here be Dragn
The archers and swordsmen here were redone from the LD version and I added things such as dragon dies and swordsmen attack. Link (.jar)
Here be Dragn

Game design course and Gamemaker executables:


I did a course with the Open University on games design. This was useful in showing some game design concepts, and most particularly, it isnt a game without fun or a purpose! All these games were developed with Gamemaker, which has a couple of issues (I dont like people downloading exe's, and I ended up doing most of the game logic with timers and drag and drop icons instead of sweet Java code), but is pretty good for rapid prototyping of ideas.

Chopper Rescue
Mission 2 had you doing airdrops in a disaster zone. The game logic was the same, except the helicopter had a crate emitter instead of a ladder. As with the other mission, if you didn't collect enough money, you ran out of fuel and crashed. Link (.exe)
Chopper Rescue
Mission 1 had you airlifting people out of a flooded village. The characters would move up the ladder object if they were over it, and vanish and give points when they reached the helicopter. Link (.exe)
Chopper Rescue
The final project was to create a game for a charity to use to show the work they do and engage people long enough to hopefully donate. Link (.exe) I decided to create a game like Harrier attack, though it ended up looking coincidentally like choplifter.
Hamster Platforms
Third step: Write a game design document. I was so engrossed in the idea I went one step further and implemented it. Link (.exe) I really loved the scampering movement but was a little confused about how to create levels.
Hamster Dash
Second step: Make a maze exploring game. Link (.exe) I had to hack around a hamsterdance gif for the characters.. It is quite clear that I was lost with creating tilesets!
Catch The Clown
First step: Customise the point click game "Catch the clown". Link (.exe) The blue clown eats the green ones and lowers your score, but you can nudge the blue clowns out of the way and farm the green ones.

Site created and updated with games and projects:


Before gamemaker I was experimenting mostly using Java. I generally use Java2D for the 2d games, and the open source lwjgl wrapper JMonkey Engine for the 3d ones.

Click here for playable version on a webpage! The biggest problem with this game was probably the garbage collection that pauses the game every now and again. I used gfxr for all the sound effects (there was another 50 not included in game), and used Adobe Illustrator to make the resources. I wrote a story arc for this game using storyboards.
I decided to participate in the latest Ludum Dare 48 hour game contest "It's dangerous to go alone, take this!", and although I had something playable by the end, it was too difficult and it took a week to make it work as a .jar. This is a prototype with the hitboxes of the objects on.
2D Environment
A post on Notch's blog suggested that a low-fi minecraft would be cool. I created a basic point and click program which added and removed blocks on a screen. I had an idea to add spells and make the game a sidescrolling Roguelike, but I discovered Terraria already did this! The green dot was going to be an object which fell until it hit a present block.
Quadtree editor
To create a larger environment, I decided that an array would not work for my program, so I experimented with Quadtrees to grow dynamically and lessen the quantity of data, especially as most would be missing, or blocky anyway. This graphics editor splits the quad at that point, and then recurses 4 levels through the tree to that block size. A better image editor could vary the depth.
Test Track
I updated a Car Physics demo in JMonkey to look prettier, use a free model and have a better racing feel. Movie.
Test Track
The mountain terrain is attached to the skybox and follows the player.Movie.
Test Track
The walls are there to keep the player on the track with a light touch, but the car tends to go flying quite often.Movie.
Test Track
I added some particles to the tyres when ultra-speed was active, but it makes the car too fast!Movie.
Test Track
To make my levels, I made a track editor. The track follows the white line, and the actual track points extend perpendicular to this without intersection issues.
Test Track
This picture demonstrates the Catmull-Rom interpolation.
Test Track
This picture demonstrates the Catmull-Rom interpolation.
Test Track
This picture demonstrates the Catmull-Rom interpolation.
SVG Textures
This shows a better attempt at building SVG functionality with GL Shaders. The pixel shading means that fading textures with transparency and shape clips would be easy to do.
SVG Textures
I thought it would make for especially flawless and vivid textures, with intricate level of detail. Especially for bumpmaps and specularity.
SVG Textures
After managing triangles, rectanges, circles and ellipses, I tried to create Bezier curves by distorting a shallow semi-circle with affine transformations. This was imperfect. The red dotted line shows where the blue ellipse should be.
Ball hunt
I adapted two tests so I could both run around on the terrain without physics and shoot red floating balls. They respawn behind the player and keep going.
Week Game
I decided to make a game in a week and went for a completely ambitious design which incorporated elements from tests of the physics and graphics system from JMonkey. The movement is tank movement, and the staff fires where pointed. The model was a retextured and armed version of Psionic's 'armless zombie model. There is a video here.
I got intrigued on how to make a lightning effect based on a question in the forum. I ended up creating points in space and moving them randomly between one source and the other, and a program found a path through these points and displayed the result, with a brighter line for segments closer to the center of the axis.
Second foray into the 3D Java JMonkey API. Got lost making the clouds pretty. The effect is created by a semi-transparent terrain painted in white at different heights. This is merged with a bloom shader which makes it brighter depending on where the sun is.
First foray into the 3D Java JMonkey API. Got lost making white billboards shift slightly in position so they appeared to be twinkling stars.
Contours to map
Trying to use the Catmull Rom Spline to recreate 3d terrain from a contour. Didn't work out as I wanted it to.
I had a go at CVG for meshes but it was difficult. I had the idea to subdivide triangles on the edge of another object, and remove the internal triangles, and then polish the result, but the bounds.contains method did not work.
Circle program
Trying to get the overlapped area of two chords on a circle in a program.

Copyright Stephen Davison 2011. Design by mark_olson 2002 Hybrid Theory