I had a really useful meeting with my supervisor, Ruth, as well as with James Bown, this meeting was in response to an initial draft of my proposal essay which had been created this week.
The first major takeaway was the answer to a question I had come across a couple of weeks ago regarding execution speed of the simulation. I was unsure whether to create a real-time application or one which executed the simulation very quickly to gather more data for statistical analysis. Two points were raised on this matter.
The first point was the scientific approach of using a model. When little is known about how the simulation will perform, it makes more sense to have it execute in real-time. This means that real-time adjustments may be made, and it can be observed while it operates making it easier to debug. When an interesting behaviour is noticed and can be replicated this is when it becomes useful to create a simulation that executes rapidly so that the behaviour can be statistically analysed.
The second point was regarding my personal development. I am undertaking this project from a games background, therefore it makes sense to use my ability as a games developer and create a real-time application which can be demonstrated more easily to interested parties, rather than a lost of data with accompanying statistical analysis which is relatively less useful in the context of games development.
In the initial draft of the proposal the methodology was not particularly well fleshed out as I wasn’t really sure what I would be testing for or what to model. Core things which really need to be outlined in a proposal! Ruth and Jim were able to give me great pointers as to which direction I should go in for these. It was already decided that I would be using an agent-based model, so a sequence of tests was suggested which looked at the performance of agent-agent communication. Ranging from only client-agent communication to global random agent-agent communication. This could then be extended with a number of features such as:
- Environmental interactions e.g. diffusion of a substance through the simulation
- Runtime dynamic scale increase e.g cell reproduction
- 3D simulation
As the simulation itself is not of huge importance, only its performance characteristics, an existing simulation algorithm should be used. For this, n-body simulations were suggested. These are usually a model of newtonian gravity with complex mathematical functionality and agent-agent communication. Two main implementations exist: a ‘brute force’ and a ‘barnes-hut’. These mostly differ in how they gather data from other agents, and my own implementation will likely be created using these as a basis as data gathering from agents will be a key component which is tested.