Agent-based systems are often used as tools for sociologists and within video games. However, there is little public research on the best way to design a video-game using an agent-based system. I want to add to this research by documenting the processes involved in developing a video-game using an agent-based system.
Why Mars? Mars is a topic of constant research in the scientific world. During our lifetimes, we may witness or be a part of the first colonisation of the red planet.
What it does
The prototype system contains the functionality to zoom in, click and drag with the camera and right-click for the rover to move to the position.
How I built it
I built this system in Unity and C#. The C# backend system holds the scene setup and generation. The Unity aspect manages the navigational meshes.
Challenges I ran into
The biggest challenge was in getting the navigational meshes to work. With a programatically generated scene, I had to generate the navigational meshes at runtime.
Accomplishments that I'm proud of
I have completed a lot of research around Unity, including architectures for setting up a project. I have done a lot of research into how Unity works and its benefits and disadvantages when it comes to agents.
What I learned
I have had to do a lot of research into the best architecture to set up a Unity startup project. The pathfinding algorithm used by Unity agents is the A* algorithm, which is not explorational but direct. Unity agent's are reactive - they react to incoming obstacles and other agents. Unity does have the functionality to update their perceptions of the environment. This includes updates about other moving objects and also updates on changes to the possible navigational choices. From tutorials, this functionality seems to be simple and time-efficient. It will be interesting to see how this works in practise.
What's next for Agents on Mars