I had a brief meeting with my supervisor, Ruth Falconer, this week so that she could point me in the direction of relevant resources. It was a very productive session and I came away with a book and a master’s dissertation.
The book was ‘Large-Scale Computing Techniques for Complex System Simulations’, a collection of essays covering a broad range of information surrounding simulations. Of particular interest was an essay that looked at a distributed cloud framework which was analysed for its performance at different scales. This essay challenged my assumption that the application I would be creating would be a real-time simulation. I initially made this assumption as I am used to working in a games environment where everything is run time, however I realised whilst reading this essay that a simulation may need to be run faster than real-time. The concept of stochasticity, the random nature of something, was introduced to me. To account for a stochastic simulation a thorough statistical analysis of multiple runs of the simulation should be performed, this means it would be ideal to have the simulation run a lot faster than real-time so that more data can be gathered in a shorter space of time.
The masters dissertation was also interesting, covering a GPGPU agent-based simulation. It demonstrated a simple model, using the electrostatic force of cells, to demonstrate an increase in performance of the simulation when run on a GPU rather than a CPU which an initial study had created. This was helpful in giving me an idea about the scope of the model of the simulation which I would be creating.
This week I continued with my search for academic papers which discussed simulations of biological processes, as well as papers that described benchmarking techniques for simulations – especially cloud based simulations. The continued research into these areas provided me with a much deeper understanding of the complexities of the task ahead and I am now starting to form some good ideas about how to scope out my project in a way that is achievable, whilst at the same time providing genuinely useful insight into the field.
Now that a lot of the academic research groundwork has been done, I decided it was time to begin some ‘primary source’ technological research to help but my reading into context. I set up SpatialOS on my PC and followed the two available tutorials. The first gave an overview of the online interface (“Inspector” & “Console”) for interacting with the system. This provided me with a good introductory understanding of how the SpatialOS functions and how systems can be designed to make full use of the platform. The second tutorial series guided me through the implementation of a new feature in an existing example unity project, cover how the Improbable API is used from within Unity. This gave me a much deeper understanding of how the system should be used and will provide valuable reference material for creating my own project from scratch.
Currently it is my intention to create three separate applications: one using Unity, one using Unreal Engine and the third using the more ‘bare-bones’ C++ FALCOR research framework created by Nvidia. This will allow me to do preliminary performance testing on the plugin implementations so I can decide on the best environment to construct the model simulation with which to perform more detailed performance analysis. I am hoping that a game engine will not hinder the performance in a meaningful way so that I can expand my game engine knowledge concurrently. However, I suspect that there will be noticeable limitations with the existing implementations requiring a more limited development environment, such as FALCOR, to be used.
I was not able to commit much time to honours research this week, unfortunately, as I was taking a game ‘OIL’ to EGX in Birmingham as part of the Abertay Dare competition. However, as the event was in Birmingham, a long coach journey was involved which allowed for some good reading time.
I was directed by Ruth Falconer to the GPU Technology Conference website to look for talks about GPU based simulation frameworks, this proved a fruitful resource! I was also able to find some good papers linked to from the FLAME GPU website, in particular looking at the important aspects in biological simulations. My naïve eyes were opened to the complexities of biological simulation! In particular the impact of performing a simulation of mobile cells in 3D compared to static cells in 2D. I think the performance aspects of these areas would be of most interest to me over the duration of this project.
Whilst attending a workshop this week I was directed toward the lecturer Dr Ruth Falconer, for her research into simulations especially GPU based simulations. I arranged an appointment to speak with her about using SpatialOS as a simulation platform with the hope that she would be able to give me some good directions to look in to further focus my title.
I was very fortunate to have a meeting with both Ruth and James, due to coincidental timetable availability, and was able to get a good understanding of their upcoming simulation research and how my undergraduate dissertation could assist – perhaps by conducting some preliminary research. It goes without saying that my project would not be setting up a vast biological simulation in the way that this research project hopes to do – as that would be extremely far outside the scope of a single undergrad in 6 months. However, it was suggested to me that I could perform some performance analysis to help direct the doctoral research.
I left the meeting armed with a collection of leads, mostly focused around reading about the existing FLAME GPU framework for agent based modelling, as well as looking at traditional performance analysis techniques. I was also told that some major considerations for performance issues could be:
- Latency and how far out of step the simulation can get and recover from.
- The difference between 2D and 3D biological simulations.
- The performance advantages of using cloud based systems over GPU systems.
The final year of my undergraduate Computer Games Technology degree at Abertay University allows me to complete an honours project and dissertation relating to technology and games. Accompanying this project will be a development blog which tracks my progress on a week to week basis allowing me to look back on the project’s timeline as well as allowing others to follow my work. I will be using this blog to document my research as well as to record any key decisions and milestones as the project is developed toward completion.
My initial aims for the project, in addition to the course requirements, are to conduct useful research into an area that I find personally interesting. I will accompany this with a polished prototype application as either a means of demonstrating the use of an interesting technology or as a means of testing various techniques to answer a research question.
This first week was primarily about exploring possible ares of research and trying to narrow down on one particular subject area, to allow me to spend time deciding on a suitable question withing the subject area. Here are a few of the preliminary ideas I had which I looked into the feasibility of:
- Using a functional programming language (e.g. Haskell) to create a game and which types of game a functional language could be used to create
- Using a functional programming language (e.g. Haskell) on a GPU for parallel computing and/or rendering
- Pathfinding / flocking algorithms for groups of agents which can walk in formations or unorganised crowds.
- Using the SpatialOS platform for persistent, scalable, interactive simulations
- Creating a plug-in for a widely available game engine (Unity / Unreal) for integrating some aspects of Microsoft’s Azure platform.
After looking into these areas I constructed a decision matrix where I could assess the total benefit of each choice with respect to scope, how interested I would be in the project, how the resultant project would affect my employability and whether the technical requirements of the project satisfied the requirements of my degree program.
The decision matrix left SpatialOS and functional programming as the best options for me, which I took to a lecturer to speak to. It was pointed out that whilst the Haskell projects could be academically interesting it would be quite hard to form a good research question that would be measurable beyond “Is it possible to use Haskell for this purpose” – not really good enough of a question. The lecturer pointed out that Abertay University was about to be involved with a project where PhD students would be working with a professor to create a ‘4D simulation of a cancer tumour’ using the SpatialOS platform. This led me to research the professor running the project (Prof James Bown) and what exactly the project would entail. I was extremely interested in the project and decided to contact the professor to see if I would be able to use my honours project to provide some good preliminary research to help the PhD students get started.