March 20th, 2010
For once I have something visual relating to my honours project, so it seemed appropriate to share a sample here.
A major part of the project involves distributing microcells (fixed areas of the world) between a series of worker nodes both statically and dynamically. In order to test methods of achieving this, I created a small testbed application which simulates the task without networking. It is capable of using various methods to distribute cells, both at the start of the application and as it runs, both controlled by a central server and initiated by worker nodes and gives graphical and numerical feedback.
The images below were taken with a greatly reduced number of cells, and the work involved in processing each cell is artificial: there are no pathfinding characters yet. However hopefully it demonstrates to some extent how division of the world takes place, and allows me to easily test distribution methods before using them in the proper simulation.

Coloured by number of characters per cell.

Initial block distribution.

Random distribution for comparison.

Block distribution with dynamic passing after time.
As the actual application I am working on is written in C#, I used XNA to create the images here. As it is possible to render XNA frames to a windows form application with little difficulty, this is also the approach I will employ for visualising the complete project.
Subject: Honours Project Tags: C++, dissertation, Distributed Computing, microcells, testbed, XNA
Leave a Comment »
February 28th, 2010
Unfortunately my honours project is not particularly visual, so it can be hard to update this blog with my progress when I have nothing I can really show. However, progress is being made. The first component of the project, a communications and network library, was completed almost a week ago.
The most useful thing I can share is the class diagram this was based on. It’s rough, it doesn’t detail methods or member data, and it’s far from beautiful, but perfection is an easy trap to fall into. I thought it was better to have a functioning library and an ugly diagram than a work of art demonstrating a library which I then would have no time to create.

The current phase of the project is far more interesting in my opinion, and thankfully should result in something slightly more visually interesting. It concerns the division of the world, hierarchically, into microcells. This spatial partitioning, and more importantly the assignment of work to specific processors is fast becoming the major focus of the project, and I hope to follow up with more on that topic shortly.
EDIT: I have replaced the original diagram with a still-ugly but slightly more descriptive update (if you actually view it at a decent size, that is). The majority of member data and functions are still missing, but hopefully the few I’ve added will make my intentions slightly clearer.
Subject: Honours Project, Programming Tags: .NET, C++, dissertation, multithreading, networking, UML
4 Comments »
February 4th, 2010

Over the weekend, almost 50 developers in Scotland and over 1500 crazy people worldwide opted to forgo luxuries like sleep and rest by taking part in Global Game Jam. Perhaps unsurprisingly, you’re reading this because I was one of them. Continue reading »
Subject: Programming Tags: C++, Game Jam, GGJ, Glasgow Caledonian, Panda Dragoon, SGJ, Unity
6 Comments »
January 22nd, 2010
Starting work on a 3D project as of yet lacking in assets, I was considering cracking open Paint.Net to create some default textures. However, being a programmer rather than an artist, I figured I’d better investigate some alternatives. I reduced my work, and made even more hideous coder art in the process!
I ended up trying two options: .Net Graphics support (which uses GDI) and everyone’s favourite image manipulation tool ImageMagick. My aim was to create bright an horrible images, to ensure they don’t remain in the project by mistake, with text on them to show what object my many cubes and spheres represent. Continue reading »
Subject: Programming Tags: C++, ImageMagick, Texture Generation, tools
2 Comments »
November 2nd, 2009
Having heard that the Unity game engine is now being offered for free, I figured I would be a fool not to take advantage and give it a go. As such, I spent a little time working through tutorials, playing with various features and starting a small game project.
I figured as a quick introduction I would work on a clone of Rotation, an Asteroids/Duo/Space Invaders sort of game which I created in Flash a couple of years ago.
Overall things went (slightly surprisingly) very smoothly. Initially I had to cling the script reference but once I had a better idea of the functionality available, everything started to come together. I don’t have much experience with comprehensive game engines like this, but Unity certainly seemed to provide far fewer “Why on earth was it designed like that?” moments than I’ve experienced in the past; it also took far less time to get a general overview of in the first place. I can already see how this tool could be useful for quick gameplay mock-ups as well as complete, commercial products. Continue reading »
Subject: Programming Tags: C++, Games Engines, Javascript, Rotation, Unity
Leave a Comment »