The world of Ultima Online continues to expand year after year, fueled by fan support and an ongoing sense of community. The latest expansion, Samurai Empire, adds more than just samurai and ninja professions. Indeed, it adds substantially to the Ultima mythos itself: a new virtue will be rolled out, "Honor." How did it come about, and what's the process this new game addition goes through from start to finish? Game Programmer EvilMantis tells us in his own words how it all went down.
When the Samurai Empire expansion was designed to add the samurai and ninja professions, one of the first things discussed was combat. Due to the theme of this expansion, the concept of "honorable combat" naturally entered this discussion. The result of this was the addition of the Honor virtue to the Ultima Online virtue system. It was at this point that I joined the expansion team and the first task given to me was the implementation of this virtue.
I am EvilMantis, a longtime fan of the Ultima series, as well as a longtime player of Ultima Online, and I was very eager to tackle this particular feature. I began with the design documents that the team put together for this virtue. After reading the requirements I talked with the designers about things that weren't specific or particularly clear. Armed with this information I began to dig into the code. It was a little bit daunting to dig into such a complex system, but it wasn't like looking for a needle in a haystack. Being a longtime player, I knew how the existing virtue system worked so that is where I looked first.
My first task was easy: I activated the virtue gump for the "Honor" virtue and added in all the UI choices. The next sets of tasks were a bit more challenging. This is where I began coding what happens when a player selects the Honor virtue and then their target. There were quite a few logic tests involved. Is the target at all damaged? Is the target already being honored by another player? Can the player see the target? Can the target reach the player?
Now, if the player makes it through the logic tests and actually honors their opponent, special case damage calculations needed to be made. There are many different ways to damage your opponent in UO, both directly and indirectly. Additionally, some specific things had to be considered. Is the player attacking from a distance or in melee range? Did the player inflict any poison damage? Did the player provoke another monster onto their target? Did the player use pets to damage their target?