Being a semester into my master’s degree has given me plenty of work to do, and the culmination of 2 months work is shown above. It’s a snowglobe, coded in OpenGL and GLSL which cycles through the seasons. The tree grows using a fractal algorithm, it sprouts leaves, which turn brown and fall off, it also gets struck by lightning and burns down.
It’s a nice little showcase for a number of GLSL effects I’ve coded, including normal mapping and texture splatting on the ground, as well as reflection for the lake, and vertex shader mesh deformation for the snow drifts.
You can download the executable and full source here:
You’ll need the VS2010 redist, available here.
Over summer, I’ve been working on some procedural content generation code, part of which is a city generator, the other part of which is building generation. The above houses and apartment blocks were generated using the same algorithm, which takes a basic input shape (such as a cuboid or T-shape) and recursively adds details in. So firstly, it would divide the front face of the building into stories, depending on how high the building is. During the next step, the bottom level would have a door added, and higher up levels would have some windows and other details added in.
The purpose of this approach is to allow a huge number of different sorts of buildings to be created quickly, without user interaction. When finished, it could be a very useful tool to development studios wanting to create a large world at a low cost.
The program is being developed in Direct3D, and it interfaces with Python to allow the script rules to be changed, which means that new building types and styles can be added just by modifying the Python file. All of the geometry manipulation is done within Python, which meant I had to write Slice, Extrude and Felkel straight skeleton functions exclusively in Python.
My third year at University is coming to a close, and I have completed my final year project. The aim of this project was to create a fractal landscape which you could fly over with a plane. My version goes a little further and requires that the landscape goes on forever, so you can explore for thousands of miles, and more of the world is generated in front of you (much like a certain block-based indie game I know of).
It ended up taking a lot of work to multithread the generation algorithms and make all the blocks of terrain mesh together properly and look like a seamless terrain, but I’m pretty proud of the result. If you want to know more about it, the full Final Report, executable and source code are available here:
Cosmic Interlopers is a piece of coursework I’ve completed for the 2D graphics course at the University of Hull. During development, it was known as Particle Invaders, ‘the one with the particles’ or ‘the one with an explode button’. Really, it was just an experiment to see how many particles I could get on screen without C# dying a death; the answer is about 2,000,000.
The gameplay is pretty standard Space Invaders affair, enemies scroll towards you, you shoot at them, they shoot at you, etcetera. Enemies will split in two when hit (and explode), you can also shoot enemy shots out of the air (which explode), and get to fight a boss every 5 levels (which bleeds, and then explodes). Just be careful not to hit the Enter button by accident (which might explode).
Control using the arrow keys and spacebar, requires the .NET framework and OpenGL.
To play the game, click the Run Cosmic Interlopers shortcut. Zip file includes full source code, but will require the tao framework to compile.
I thought I’d actually start using my webspace for something other than just storage, so Wordpress is go.
I plan on using this site to keep track of my programming projects and, in case anyone’s interested, let them know what I’m working on.