Click to see Full-Size Screenshot

Side-Scrolling Shoot-em up download (3.22 MB)                                     GameMaker Studio

My latest project is a side scrolling Space Shoot-em up made with YoYo Games' GameMaker Studio, which is a game development tool specializing in (rapidly) making 2D games.  The game is playable but a little basic at the moment, with just one level, but there's already enough there to make it fun.

Click the screenshot to see a video of the game, or click the download link above to give it a whirl yourself.

Click to see Full-Size Screenshot

3D Space Shooter                                                                         C++/Direct3D Programming

This is my first attempt to create a fully functional game, in this case a scrolling space shoot-em up.  The game is top down, full 3D, has sound and music (using FMOD), multiple levels, full in-game options, and controller support. It's not done yet but most of the major systems are in place.  Hopefully I'll have a demo for download in the near future.

Click the screenshot to see a video of the progress so far.

Click to see Full-Size Screenshot

Whiteout download (2.44 MB)                                                         C++/Direct3D Programming

Whiteout is my attempt to turn my breakout programs (Aqua Breakout and 3D Breakout) into a more playable breakout game instead of just a pretty demo.  Instead of a rectangular array of blocks, this version has custom block layouts, multiple levels which it automatically transitions between, and special block types.  It also has sound and (a short bit of) music.

It's still a good way from finished, collision aren't perfect and it needs power-ups adding, more levels, but you're welcome to try it.

Click to see Full-Size Screenshot

3DSMax Buggy Model                                                                          3D Modelling/Animation

Shown here is a 4X4 Buggy model I made in 3DSMax, roughly based on a range of Jeep and other 4X4 vehicle photos, with some imagination thrown in there.  I don't know enough about cars to make it completely realistic but it looks nice enough.

Click the image to view a video of the buggy on youtube.

Click to see Full-Size Screenshot

3DSMax Reactor Animation                                                                 3D Modelling/Animation

Here's a nice little animation I made using 3DSMax's in-built physics system called Reactor.  It's kind of a 'great egg race' with the ball bearings falling down through various chutes and jumps which I also modelled in 3DSMax.  

Click the image to view a video of the animation on youtube.

Click to see Full-Size Screenshot

Terrain 3 download (899 KB)                                                            C++/Direct3D Programming

This third terrain project demonstrates a modified LOD technique based on GeoMipmapping. The LOD is applied on 17*17 node patches of terrain based on the distance from the viewer. Triangle fans have been dropped in favour of the much faster triangle strips which are stitched together using indices. The technique generates both the vertices and indices per frame, rather than paging from system memory. The advantages of this are a small memory footprint, and the ability to alter the terrain on the fly.

Texturing here is done with procedural texture mapping based on terrain height (generated at runtime), with an additional detail texture. A light map is applied to the terrain, built using slope lighting and terrain shadowing techniques, generated at runtime.

Click to see Full-Size Screenshot

Direct3D Terrain 1 download (475 KB)                                         C++/Direct3D Programming

This project demonstrates terrain generated from a height map with Slope Lighting and Procedural Texture Mapping applied. Slope Lighting is an easy way of shading the terrain so that ground facing away from the sun appears darker, but without impacting the frame rate. Procedural Texture Mapping makes the colour of the terrain depend on it's height and is generated in real-time from the height map, thus making high ground appear white for example as if it were topped with snow.

Click to see Full-Size Screenshot

Direct3D Terrain 0 download (666 KB)                                         C++/Direct3D Programming

This project shows a full detail section of terrain generated at run-time from a 512*512 height map.  The main point of the this program is to demonstrate the need for LOD algorithms, since even this modest section of terrain draws over 524,000 triangles per frame and uses 16 mb of video card memory, even when using triangle strips.  Hence terrain of 1024*1024 or bigger would be a real struggle with a full detail rendering method.  The program also features Slope Lighting.

Click to see Full-Size Screenshot

Aqua Breakout download (0.99 MB)                                             C++/Direct3D Programming

Aqua Breakout is a D3D version of Breakout. This version features a water theme, with realistically animated real-time water. The play arena is surrounded by an attractive 3d garden. The main aim for this project was to learn how to use dynamic vertex buffers, to gain more experience with D3D generally and to add more colour, more movement, and to make better use of the available polygons.

The program includes support for hardware features such as Hardware Vertex Processing, W-Buffering, Anisotropic Filtering, Environment Mapping, Alpha Blending and Mip-Mapping.

Click to see Full-Size Screenshot

3D Breakout download (502 KB)                                                  C++/Direct3D Programming

3D Breakout is a fairly basic but attractive Direct3D version of Breakout. It features a winter theme with falling snow, transparent game blocks, an icy sea, islands and a mountain backdrop. The camera movement accentuates the 3D nature of everything. As with the 2D version below, the higher blocks take more hits and the ball gradually accelerates as it hits more blocks.

It also includes support for hardware features such as Hardware Vertex Processing, W-Buffering, Anisotropic Filtering, Alpha Blending and Mip-mapping.

Click to see Full-Size Screemshot

Direct3D Maze download (400 KB)                                               C++/Direct3D Programming

Shown here is a screenshot of my Direct3D Maze program. The program includes collision detection, multiple levels and movement between levels via ramps, a much larger map, and a variety of room heights and shapes.

It features hardware acceleration, robust device enumeration, mip-mapping and hardware vertex processing support.

Click to see Full-Size Screenshot

Direct3D Grass download (377 KB)                                              C++/Direct3D Programming

This Direct3D program demonstrates a field with 3D polygon grass. The program can run with either 50,000, 100,000, 200,000 or 300,000 blades of texture-mapped grass. With hardware vertex processing this demo can push over 19 Million triangles per second on a GeForce 4.

Click to see Full-Size Screenshot

DirectDraw Raycasting Demo download (408 KB)                    C++/Direct3D Programming

This program demonstrates Raycasting. The interesting thing about Raycasting is that it isn't really 3D at all, it's just a simple trick involving projecting a line from the viewer for each vertical line on the screen, and finding the first block the line intersects. The distance to this intersection point is used to calculate a height value for the slice of wall to be drawn on that vertical line.

Click to see Full-Size Screenshot

DirectDraw Breakout download (381 KB)                                  C++/DirectDraw Programming

This program is a basic but functional and attractive DirectDraw version of Breakout. The ball accelerates on contact with each block and changes direction slightly based on the movement of the players bat at the point of impact. The higher the block, the more hits it takes to destroy.

Click to see Full-Size Screenshot

DirectDraw Software Texture-Mapper download (108 KB)             Software 3D Programming

This program is a software rendered cube again, but with perspective corrected texture-mapping. In this program, the correct texture coordinates are generated every 16 pixels and in-between values are interpolated, which is considerably faster than working out correct coordinates every pixel, and almost exactly the same quality.

Click to see Full-Size Screenshot

DirectDraw Software Cube download (81 KB)                                  Software 3D Programming

This program is a software rendered 3D cube, meaning that the whole thing is done with maths. It includes directional light-sourcing.

Download Microsoft DirectX 9         Download Visual Studio 2013 Redistributable

All content copyright Simon Brown 1999-2013

e-mail