Guild Wars 2
Upon leaving my job at Amaze Entertainment, I joined the team at ArenaNet in autumn of 2007, just in time for the kickoff for the unannounced sequel to Guild Wars, Guild Wars 2. Despite having just shipped the final expansion, Guild Wars: Eye of the North, the company needed to quickly ramp up development for the new game engine, content stack, and level authoring tools.
My initial responsibilities consisted of helping the tools team interface the managed content editing tool (written in C#) with the native game engine (written in C++). After achieving this goal, my help was requested on the engine team where I worked on developing and improving various core systems such as map loading and the low level asynchronous file system layer, while continuing to support the art and content pipeline.
My seven year long career at ArenaNet allowed me to get in on the ground floor of the making of a ground breaking MMO, working with my coworkers to help see it become an award winning, best selling release. Being able to work on the entire application stack for many years was an incredible learning experience for me; I acquired countless skills that shaped my career as a software engineer.
- Core map systems including decals, audio zones, and environment maps.
- Rapid content iteration for designers via live-preview from within the game.
- Tools for environment art and designer content pipelines.
- In-game “Google Maps” style interactive map system and supporting tools.
- Asynchronous file I/O retrofit for core engine systems and new game patching features.
- In-game web browser integration for auction house and gem shop.
- Python module for inspecting game assets, which extended capabilities of tech artists.
- Web-based build monitoring and management tool.
I returned to ArenaNet after completing my studies to contribute to a new and exciting technology initiative. Given the title of Programmer at Large, I had the latitude and trust of my employer to work on engine features that I identified as being important to the project. One of my overarching responsibilities became rearchitecting an existing codebase to support very large streaming worlds, which have never been seen in the Guild Wars franchise. This complex and far-reaching task gave me the opportunity to engineer multiple systems of which I am very proud to this day.
- Game object streaming for vast, open worlds within an existing engine.
- Sparse database for storing and asynchronously retrieving millions of objects.
- Utility for automatically baking individually authored maps into a continuous world.
- Asynchronous broad phase system for graphics, audio, streaming, and game systems.
- Archive format with per-structure versioning, JSON round-tripping, and viewer.
- Data visualizers to facilitate debugging and performance optimization.