About

I co-founded this project with my friend Cameron Foote in 2010. We were both interested in creating a multiplayer experience for the game Just Cause 2. Over the course of developing this project my role within the team had many iterations, initially I worked on reverse engineering the game systems and files to facilitate the core features we required to create a multiplayer experience within the game. From here we implemented a Lua scripting system into our project allowing our growing community to create their own gamemodes. From here I transitioned into a Gameplay and Design focused role within the team, working with the other Lead Programmers of the project to make our scripting system feature rich.

Over the course of the project I would go on to create several popular gamemodes played by thousands of players around the world. These gamemodes were Faction Wars which after a total rewrite later became Battle for Panau, Invasion and finally Panau Online.



Along with writing gamemodes I did extensive work on creating AI and Pathfinding systems. With our approach to create multiplayer in Just Cause 2 one of our first steps was to remove the games core AI systems so we were left with basic 'actors' or 'dumb agents' to represent other players within the game. The downside to this came with the world being void of NPCs ( non player characters ). A core part of any AI character is pathfinding, its ability to traverse the game world. Just Cause 2 uses PathEngine for its pathing system, initially we were unable to reverse engineer this system, so I wrote my own implementation of A* pathfinding. This included writing a tool to map out the entire game world of Just Cause 2 into a custom format for calculating paths and allowing custom script AI agents to traverse the game world and interact with players. The release / video footage of this AI can be found here. Although it functioned, this method / approach wasn't really viable for large game servers as all the pathfinding was being calculated on the server which in turn was incredibly resource intensive. Years later we would go on to finally crack PathEngine and expose it to our API, allowing our NPC agents to use the core game pathing system for navigation. This was then utilized in my gamemode Panau Online.


Working on Just Cause 2 Multiplayer allowed me to grow both as a software developer and as a creative designer.

Technologies Used

Lua ( gamemode scripting and tool creation ), XML ( extensive file editing )