Dev Diary Beast Masters in Game Update 5
Hello again! I'm Thomas "Hanse" Eidson and I've been working hard on Beast Master adjustments and a couple new pieces of content for them. I'll go through what all I've done the past few weeks, so you can get a good gist of what to expect with Update 5 for beasts.
In 2007, we finished our first incarnations of the profession expertise systems. The recent updates that we've performed were to improve those expertise systems. Luckily, the last expertise system added to the game was for Beast Masters, so it is very up-to-date. We felt that the expertise system for beasts is balanced and does not need tweaks in Update 5. This allowed us to focus on other areas of the beast master system for improvement.
I was chosen to work on the Beast Masters, due to my knowledge of their systems. I wrote the original framework that beasts use in the game. Many large additions for beasts were added (data storage, retrieval, initialization, combat movement, etc) instead of using the older pet system. To make systems such as those, you must have information on everything that the system must do. This gives me a unique insight into fixing issues with beasts.
The areas of the beast master system worked on were taken directly from player feedback. A few of those are:
Loyalty gain to become a best friend with a master is too slow.
Eggs and enzymes are not labeled adequately for finding them on the bazaar.
Beast reviving becomes interrupted by involuntary movement.
Beasts cannot be stuffed.
Beasts cannot be colorized.
Beast Empathy, an expertise that increases beast happiness, is not working.
Beast food must be used through the radial menu instead of simply double-clicking on it.
Beasts move slower while walking up slopes and run slower than they should.
Beast abilities are not evenly distributed across all beasts.
There are various other tweaks to the beast master system, but those are the primary issues we addressed in this update.
When looking at loyalty gain, I felt that lowering the cap would effectively steal the sense of accomplishment of getting your beast to be your best friend. So, I approached the issue through the gain itself. On live, it is currently affected by a 25% bonus through happiness, if your beast's happiness is maximized. This is actually rounded down to 20%, since the gain is small. I doubled the gain to a 50% bonus in Update 5, although we raised the cap on happiness from 25% to 50%.
So, at maximum happiness, you can double your loyalty gain in Update 5 (200% instead of 20% - you gain twice as fast at maximum).
Eggs and Enzymes
With eggs and enzymes, I followed the player advice on the forums and renamed them to display specific information in their title (a couple examples: "bageraset egg" and "red isomerase enzyme"). This information is updated on eggs and enzymes, if they are not in the bazaar when the update goes live. So, you may need to pull your current sales and resell your eggs and enzymes, but finding these objects on the bazaar will be much easier now.
Reviving a Beast
Supposedly, coughing and other emotes can stop the countdown timer for reviving a beast. My solution was to simply remove the restriction on no movement during the revival process of a beast. It will still check distance from the beast corpse and damage will interrupt it, of course.
With the addition of the beast master system, we allowed folks to convert their old pets to the new system as well as stuff them. The current beast master system does not have the ability to stuff beasts. So, I added a new option on the beast control device to stuff your beast.
It is a one-way transaction, so it will ask you to confirm the stuffing. Your beast's control device will be deleted and a platform will be placed in your inventory.
Once the platform is placed, the beast will appear with its correct size based on its level and coloring. You can rotate the platform and move it around and the beast will move with it. Although, you cannot raise and lower the platform and expect your beast to float off the floor.
Colorizing a Beast
Colorization of beasts is a request we've seen often. An armor colorization interface was made some time back that I wanted to use for a beast dye item. I spoke with Jaskell, as he'd used it before, and he filled me in on the details of how it works. The task turned out to be a large one, as I had to make it compatible with the incubator colorization and have both versions (incubator and beast dye) stored and retrievable from the beast control device.
The naming conventions for the palettes on all creatures vary, so I could not predict what those names were for accessing creature colors. In the end, the task took me twice as long as I expected it would. However, the end result looks very good
Once I had a working beast dye item, I went ahead and put a new collection in the game. The design goal was to make the collection easy and repeatable, and the reward tradable.
After the colorization tool, beast happiness expertise needed to be looked at. To fix the problem, I found I would have to modify over 53 areas of the code that governs beasts. If ever a problem occurred with that system, the next person would have to modify 53 different places in code. Most of our skill bonus modifiers are added into code in one or two places. So, what should have been a five minute change and a few minutes of testing turned out to be three days worth of work. I had to consolidate all the happiness code and make sure the modifiers are centralized. The process for reworking code to make it simpler, efficient, and functional is called "refactoring". After refactoring happiness, the skill bonus modifier was added to one place in the code.
I never expected I would ever state the phrase "refactoring happiness".
Let's go ahead and look at how happiness works now. Here's a chart for the addition and subtraction of likes and dislikes along with all the other modifiers that affect it. The chart represents the new happiness system that is in Update 5. Five bonuses go towards the highest happiness value of 50. Without one of those bonuses, you cannot achieve the highest happiness. Only three dislikes are available, so the lowest happiness value is -25. Because the maximum happiness is 50, instead of 25, your beast will gain loyalty faster, gain experience faster, and do more damage in combat!
After beast happiness, I changed the beast food over to a different object type, which would allow it to be double-clicked for beast feeding. Before this change, feeding a beast required using a radial menu. With this change, food can be placed on your quick bar for efficient beast feeding.
I scripted follow, stay, and attack movement for the beast master system. I spent a great deal of time testing and tweaking how beasts move. When I wrote the flow of how beasts move, I attempted to make them run when far away from their master and walk when the master only shuffled a couple steps away from them. Combat movement needs to know its target, follow that target at a run, and know to run to a new target if it is in multi-combat. Passive beasts need to follow their masters, instead of running off into combat. There were a lot of pieces that I needed to make sure were working. With all of this, I overlooked slope movement.
Slope movement was originally in the game to slow movement of anyone walking up a slope and allow faster movement down slopes. A skill bonus to move up slopes reduced this negative effect. At some point, slope movement was deemed to be something that isn't very fun, so now everyone has the skill bonus, except beasts. With Update 5, beasts gain slope movement and are able to run up and down hills at an improved pace.
Finally, I worked on special actions for beasts. I found that frogs, camels, and horses were all low on special actions. This would make some of the beasts in the game sub-par in combat.
Frogs were roughly ten attacks below the average amount of attacks that can be learned by other beasts. Non-beast frogs have a bite attack, so I added the bite line of attacks to frogs. Next, I added a new line of attacks called "Spit". A spit attack does damage and temporarily increases action costs for the target affected by its debuff. The debuff time does not increase with each spit level learned, but its damage does. This brought frogs in line with other beasts in the game. Also, chubas look like frogs, but for some reason were mis-categorized as wolves. I fixed chubas to use the frog category.
Next, I added the new spit line of attacks to camels. This brought camels up, but they were still missing five attacks. Horses were also missing five attacks, as well. So, I introduced a new line of attacks called "Kick". A kick attack does damage and stuns a target for one second. After adding in the kick line of attacks, camels and horses are brought up to the average 20 or so abilities.
So, there you have it! There are a few other details I left out, such as being able to call your beast while in combat, eggs on the Test Center frog for testing, and removal of the delay for storing a beast after combat. This dev diary contains a lot of information to digest. I hope you enjoyed reading about the beast update and I look forward to your comments!
Thomas "Hanse" Eidson
Star Wars Galaxies System Designer