For my final year project I proposed my own project. This originated as “A Crowd Simulation” and was proposed to demonstrate, how using agent basic logic, collision avoidance and communication techniques could recreate a natural system. However, this project has developed since then, moving into a modular town simulation. The simulation is being created in Unreal Engine using primarily the C++ backend to ensure flexibility and to further my experience with this medium.
The purpose of this proposal is to present a simulation modelling a self-managing town using agent based methodologies. The ultimate goal is to produce a town that is not only sustainable but has the intelligence to grow and adapt to its surroundings. The hope is this dynamic and adaptable system could be easily integrated into a larger game, therefore it is paramount that the overhead of this system should be minimal, and should provide the ability to control as much of the simulation settings as possible.
Agents within the system use RVO based crowd avoidance techniques to create realistic and responsive movement. Agents start simple and unspecialized, but through their experiences will gain task competence and therefore bring more efficient at completing said task. Agents should also be able to interact and perceive their environment, assessing it for better resource locations, building spots and making other agents aware of this information. Agents will work independently nut proximity based interactions will create realistic moments, as well as allowing for the previously mentioned data to be communicated.
The system will be managed by various managing classes, and will provide the infrastructure for agents to navigate, manage and sustain the town. A Acyclic directed dependency graph will be used for task assignment, and each task will have a priority and ser of dependencies which must be satisfied before it can be completed.
This project is on going, and is in the early stages but now that the systems foundations are established project should be quick. I will continue to post updates to this project up until it’s completion.