A 'Coding' Melting Pot
An inside look at the many coders who have implemented their work into the game and how those early code threads have evolved with the game (e.g., Legacy of the Baby Dragon). Here to shed some light on the franchise’s evolution is Jennifer Chan (Technical Director) and Terry Michaels (Senior Producer) from Daybreak Games:
Daybreak Game Co.: Much like the Baby Dragon code, what other interesting aspects of the ever changing code can you tell us?
JC: How EverQuest handles time would definitely be another "interesting" aspect of the code base. Most programmers refer to the passage of time in seconds, milliseconds (1/1000th of a second), or nanoseconds (1/1,000,000,000th of a second). In EQ, there's an additional unit of time called an Uzun. This is named after one of the early programmers Roger Uzun. Just in case you're wondering there are 12.5 Uzun's per second. We're unsure why there are 12.5 Uzun's a second but the latest theory has to do with the range of values that you can put in 1 byte. Any time a new programmer joins the team it's always a fun time when they work on a task that relates to the Uzun time code. It's a hilarious and great teaching moment when they look at the code, starting trying to understand it, and the eventual blank stare that accompanies when their mind has blown.
TM: A code base as large, and as tenured, as the EverQuest code base has plenty of interesting alleys, sinkholes and dives alongside amazing feats of architecture and elegance! It was always interesting to see what functionality already existed and would could be tweaked to open up huge avenues of new gameplay whenever design came up with new ideas.
Daybreak Game Co.: How long have these ideas been around?
TM: It really depends on which idea… Some of them have been around since before original launch while others may have been added during the current expansion development. Some of them have even been assembled from building blocks introduced in different expansions.
JC: From as far as we can tell, this concept has been in since the "EQ dawn of time". It's how our day and night cycles happen. Without Uzun's we wouldn't have days, months, or years!
Daybreak Game Co.: In the scheme of things, was this a longer or shorter process to have these become a reality from their original concept?
TM: Over time, it all balances out. Some ideas are considerably easier to implement based on everything done before while others are harder because you have to make sure to not disturb any of the surrounding functionality for a game as big as EverQuest!
Daybreak Game Co.: Since so many developers have touched the code, what kinds of difficulties does this bring when adding new code?
TM: It requires a particular type of mindset when working in an existing code-base. It requires a keen eye to ensure you’re leaving existing functionality alone while adding new gadgets and gizmos around it. You have to constantly fight off the desire to chuck an entire system and rewrite it from the ground up (because if you do, you *will* be creating at least as many issues as you think you’ll be solving) while at the same time being able to discern when something as drastic as a system rewrite is the only way to achieve everything you need to. Once you know the code well though, you can usually assemble some really amazing things from existing functionality in a timeframe that would put new-game development to shame on time from design to implementation.
JC: For most of the major game systems, we've been able to clean up and make large parts of the code consistent. Ironically, when adding new code it's actually easier than you'd might expect. At this point when we add new code it is often times related to or based on previous code with some new development. For instance, when we want to add a new UI element, instead having to create it from "scratch" we typically rely on other code that already exists and works within our code base. It's actually much more difficult and time consuming to modify our existing code because when doing that you need to make sure that all of the dozens or possibly hundreds of ways that code is used doesn't break in some bizarre or obscure way. Sometimes small changes can make all of the world turn into a gigantic rainbow or make it so that everyone is running around completely invisible except for their hair.