As my laptop decided to fail quite catastrophically the day after I handed in my honours project (just luck it didn’t do so before, really) I realise I haven’t updated the blog in some time. I’ll post results and likely also the written work and source code when I have my own laptop back again, but for now here are some images to show how the project ended. Continue reading »
Honours Project Presentation
May 19th, 2010
Here are my slides from my final presentation on my honours project, summarising the aims and some of the methods and results.
Microcell Distribution
March 28th, 2010
The images in this post show the successful distribution of space over the network, allowing clients to connect and be assigned a section of the world to process. Currently the framework allows functions for distributing cells to be added when the simulation starts, as additional nodes connect, and/or at regular intervals. These can be managed either by the central server, or initiated by worker nodes themselves. The majority of the remainder of the project involves the algorithms for distributing cells between nodes.
Additionally, the framework now supports both hexagons and quads as cells. Hexagons have the advantage that only 3 cells meet at any corner, limiting the maximum number of nodes which might be involved should an event take place there. Here’s some images of the view from the server with the most basic (block) distribution of cells:
Microcell Testbed Images
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.
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.
Comms Library Progress
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.





