« June 2007 | Main | November 2007 »

July 02, 2007

SWG Dev Diary: Thomas "Hanse" Eidson #3

Howdy! I'm Thomas "Hanse" Eidson with another designer diary for y'all to peruse. The first diary I wrote explained a little about what a system designer does. My second diary had a high level explanation of how I approached a balance issue with Player versus Environment (PvE). In this diary, I will explain how I approached the Jedi expertise in Chapter 2.

At the time of the first expertise chapter, Jedi had already been revised and given many special actions. Their special actions were way more powerful than any other class and they had a larger variety of them. The expertise's intent was to allow for players to customize their character in a way they wanted to play as well as make them slightly diverse. This also went in hand with something to look forward to spending points on as you advanced with the profession.

The brainstorming began for the expertise. One of the other designers had been assigned the expertise and already had a basic flow chart designed for them. I had been assigned the Jedi by Helios and took over. Since I had a limit on introducing new abilities, I roped a few into the expertise. Too many new abilities would have caused major problems for designing the other profession expertise, as we might not have had time to complete the entire profession changes needed. The theme for the two expertise pages were general and the other light and dark abilities.

I used Microsoft Visio to edit the flow graph of the pages for all the expertises. Every expertise page was first drawn out in Visio. We did a little grease board design and discussion to hash out ideas, along with our brainstorming, of course. Once the Visio page was completed, I worked through the expertise bonus names, descriptions, points to spend, and preliminary bonuses. The bonuses went through many iterations as we implemented and tested them. Many bonuses changed through player feedback on the boards, as well. After the final layout was completed, we submitted art requests with our documentation. Once our documentation was approved by our peers (design team), our leads (Helios and producers), and LucasArts, we began the implementation phase.

Here are the final draft Visio pages. The icons were added as our art department sent them over. We would approve or ask for revisions of the icons during implementation. You will also notice that Force Run is not on this image, due to player feedback.

Here is the second page:

From the previous diary, you will recall an average damage per second chart. That chart is actually without weapon damage and used special actions as a base for its damage graph. I used that graph to base the damage for all future expertise I would make, including the Jedi expertise. With a good base to compare my special action damage values, I could spread the total amongst the special actions.

I was able to plot out a new graph using the Dark Jedi path, purchasing through the expertise all the damage special abilities – and no healing abilities.

An example of this is if at levels 20 to 30, you were granted four actions and those were the top four on all your cooldown groups. If the average damage for that range of levels was 1000, I would spread that damage between the four actions. This is a simplistic explanation, as I had to take into consideration casting time, cooldown time, and damage over time. If all of those were the same, the damage was split an even 25% across the four abilities. This kept the damage values very close to the graph and allowed me to balance future expertise abilities to it.

The graph that I made is dynamic. A data point on the graph would change its position as I worked on balancing ability data. My Excel spreadsheet has linked cells to the values and would modify the values of abilities if I "spent" points in expertise. This simulated the expertise system on paper for me to be able to quickly find data issues. A huge spike in the graph instantly clued me in on a data problem.

Once paper design is completed, the implementation begins. The most time consuming part of implementation is data entry. Each ability has multiple files that must be modified. These files range from where the ability is on the tree, what it looks like, its name and description, data on how it relates to other abilities on the tree, its command data, its appearance, timing, damage, cooldown, and many other bits of data. A single new command for the game can affect around 20 files, if it is complex (such as Forsake Fear). A single typo can doom you to reviewing all that data repeatedly to figure out why it isn't working when you attempt to test it on your server.

Some of the framework for the expertise system was coded the previous chapter. Although, I did have to extend the code quite a bit to get the Jedi abilities to all function. Forsake Fear required a larger amount of code due to its countdown bar. The combat system needed a few new expertise modifiers added to its combat loop. A special case change was made for Saber Block.

Each code change required testing. I like to beat up on Jabba Assassins when I test damage abilities. I think a few thousand Jabba Assassins were brutishly slain on my server during the chapter's development phase. I make sure to kill a few of them every chapter. Here is a picture of a Force Shockwave test with a debug window below it from today (as I write this document). The designers on Star Wars Galaxies use many tools to debug our changes, but the debug window in the image below is invaluable for run-time testing.

The entire process for designing the tree, calculating the special ability values (damage, duration, cooldown, etc), requesting art, and writing the documentation took roughly a week and a half. Implementation took roughly three weeks after that. I would test each change on my local server before submitting it. Testing internally and externally took a few weeks, as well. I did one expertise per publish up until I was asked to do the four trade professions. Each expertise was challenging and I enjoyed doing them.

In the next designer diary, I will explain the Beast Mastery system and the tasks I performed to complete the system.