Halo Wars Dev Blog: Leader Powers Part Four

Published Monday, August 03, 2009 10:42 AM by Aloysius

This is the 4th and final part of the Halo Wars Leader Powers Dev Blog. Marcin Szymanski wrote parts One and Two, and this is Vijay Thakkar's second and final Dev Blog. Part 3 is here.

Rage

The Rage power started with a pretty simple idea: the player should feel like a badass while killing things with the Arbiter. Easy enough, right? Having just come off of getting the basics of Cryo done and understanding some of the nuances of our code based powers system, Rage became a prime example of prototyping a radical idea really quickly to evaluate how fun it was before investing serious effort into it. I really wanted the player to feel like they were in control of the Arbiter, that they could steer him around and direct him to attack. I felt like it was necessary to try a much more direct control scheme, something closer to the traditional console experience.

It didn't take much time to get something up and running, showing the Arbiter running around and teleporting to attack by flicking the right analog stick. It turned out that controlling the Arbiter like this and hopping across the battlefield in a matter of seconds was just crazy fun. I knew we were getitng somewhere when I could bring a coworker over to my desk to try it out and the result was a giddy smile on their face and a thirty minutes of brainstorming ideas on how to improve it. That process of just excitedly throwing ideas around with fellow gamers is absolutely one of the best parts of game development.


Arbiter's Rage power is the only way he can hit Air units.


There were certainly a lot of difficulties with Rage, not least of which was the fact that our simluation was made for indirect movement of units via commands, not at all for direct control of a unit. Plenty of complications arose around our pathing and obstruction systems, such as how to address pushing up against static and dynamic units, what to do when the unit got stuck, etc. Additionally, we started to question how asychronous we could make the control of the Arbiter on the local player's machine to make input tighter (check Marcin Szymanski's dev diary about how this was solved for Cleansing). This was a very complex problem, since there was more state to simulate with the Arbiter than there was with a beam. Given where we were in the lifecycle of the project and what we felt it would be irresponsible to take on work that we couldn't polish, and instead work inside the system we had in place. In that regard, we actually solved the problem of the Arbiter's movement in the opposite way of the cleansing beam (a little ironc, since the Arbiter has more complex movements). The Arbiter is actually controlled the same as any other units in the game: the controlling player sends movement commands to all connected machines, and each machine simulates that command in a synchronous manner. There's a little bit of delay there, but I think the compromise was worth it.

The power only improved in quality as we added in camera shake, controller shake. particle effects, impact decals on terrain, sound effects, and serious area of effect damage. The initial versions of all of those were a little overpowering, but they certainly were fun. A good amount of custom code went into pacing the actual movement of the Arbiter, and really nailing the speed at which you could jump from one target to another. It needed to be quick enough that you felt powerful, but not so quick so that you felt totally out of control. Throw game balance into the mix, and adjusting that speed and pacing became very important. Because of those pauses between jumps, we focused on making each individual jump feel as impactful as possible. The Rage power actually had quite a few complex code systems interacting within it, marking the first power that had variable cost based off of the action that was executing, as well as the most elaborate upgrades within the leader powers. (the final upgrade of Rage is just so powerful).


There are lots of interesting edge cases with the Arbiter's Rage power.


The final piece of the Rage puzzle happened during what I can only describe as the "final weeks before all polish features are done, so if you have any pet polish items you really want to get in, you *** well better do it now" phase of the project. I was pretty happy with how Rage was coming along, but when attacking air units the Arbiter would jump towards them and strike the ground underneath them, dealing damage in a clearly unfinished manner. We were at an turning point where the Arbiter either wouldn't be able to deal damage to air units in Rage mode, or we needed to find another solution. Enter a little excitement and support from an animator, and we managed to find a way to reuse some of the code systems created for Spartan jacking to allow the Arbiter to jump onto and destroy air vehicles. It's something that literally came together in a matter of a day or two to prove the concept. It took a while after that to polish it all up and find a good balance of the physics impacts to the aircrafts when he hit (an initial impusle when landing on the unit, and another each time he struck it). When it all came together, It was pretty awesome to see the Arbiter destroy a unit and ride it in down into the ground, reminscent of riding a bomb down to impact (Dr. Strangelove, anyone?). After all that came together, I think I could watch people destroying hornets with the Arbiter all day long in playtest laughing maniacally.

Vortex

Vortex was the final power to come online. Rage was finished enough to where we needed to seriously figure out what the final power would be, and I was ready to go with two power's worth of implementations under my belt. I remember sitting around an office with a few other people throwing out ideas on what direction we wanted to take the Brute's power. Inspired by some of the modal controls from Cleansing and Rage, we had ideas all over the board - a wave attack accomplished by swinging the thumbstick, a ground slam attack that split the ground underneath units, and even a mode where the player controlled two different gravity wells, each moved by an analog stick. We settled on a starting point: driving one gravity well around that gathered debris until it reached critical mass and exploded for massive damage. As an interesting aside - the Brute's power was originally called Wave in all our in game text, until we came up with a new idea during implementation it, at which point Vortex seemed somewhat more appropriate and we had to go back and re localize a bunch of strings.

The initial version of Vortex did nothing more than instantly kill infantry units and snatch them up into a ball, in which they immediately disappeared (certainly quite rudimentary). Kind of like what it would look like if you dropped a black hole onto the battlefield. As we iterated on it a little more, we were fortunate enough to reuse some code in the building and vehicle destruction system added in for the Cyclops' throw ability, specifying what pieces were able to be torn off to be used as projectiles. Prototype Vortex also involved finding the perfect amount of force to apply to the objects, somewhere between comically sending them into orbit and sadly nudging them along the ground. These first implementations were racked with bugs as we dealt with entire buildings that would go flying around the screen and even a case where the Brute got pulled into his own Vortex (a side effect of being rammed by a Warthog while casting). However, through all the chaos it showed us one thing with certainty: a power with physics effects can be *** fun.


The Vortex Leader power had its own problems as well, this situation would be very bad for the Brute Chieftain player.


One of the most interesting tidbits of information when it comes to physics in games is that a real world physics simulation is very rarely what you want in a game context. More often than not you want something that appears to be a real physics simulation, but is carefully crafted to create the effect you're looking for. In this case we had a very specific effect we were trying to accomplish: a swirling mass of objects, not under complete control. Needless to say, many different attempts and approaches were taken to try and get the orbiting behavior we were looking for in the most general case. There were plenty of times when pieces would launch across the map, or where every piece conglomerated into a blob of polygon soup in the center of the Vortex. The final solution involved remove all object to object collisions inside of the vortex and completely disable their gravity. The ideal distance from the center and the initial force used to pull the object to the center of the vortex were dynamically scaled based off of how many objects the vortex had currently picked up, which allowed the chaotic swirling mass to very gradually grow each time a new piece was picked up. Tweaking those values and finding some creative solutions inside of the physics simulation was certainly one of the most challenging part of the Vortex power, and without a doubt the source of the most bugs.

It became important to have Vortex stand out from the other powers: it needed to have its own chaotic nature and feel in its camera and controls. We prototyped a variety of potential solutions, from a fixed camera over the shoulder of the Brute looking forward onto the Vortex to directly controlling the Vortex the same way as Cleansing. There was even a version where the player controlled both the horizontal and vertical movement of the swirling death ball with both analog sticks. As we iterated, freer camera control stood tall and I'm quite glad that we could find something in the middle, controlling similarly to Cleansing but with some unique twists. In the final version, the camera is focused on a point between the Brute and the Vortex, effectively keeping both in the player's visibility, and the Vortex's vertical movement is automatic in a sinusoidal pattern (which also helped to give the internal objects some more motion). Finally, Vortex employs a similar system to Rage in that its cost changes based off of the state that it is in. It is the only power that costs nothing to maintain, (only taking resources when dealing damage), and is also the only power that actually improves its potential damage the longer it is active. As the Vortex picks up more and more pieces, the power of the final explosion increases to devastating amounts, which combine with the damage inflicted by the thrown debris, providing an effect that was a bit more chaotic in nature.


The Vortex power also had the ability to throw other leaders around, getting this Arbiter stuck.


Even after all of this work, it was pretty cool to see a multitude of your enemies swirling helplessly in a wild gravity induced mass and blow them to kingdom come, but it still didn't feel as badass as it could be. There are a lot of little polish features that really brought the effect from cool to over the top and really awesome. We gave the lightning bolts that strike down enemy units intelligent behavior to find the most effective target unit in its area of effect and added the slightest rumble of the camera and controller on each blow. We again found that adding a delay to cascade the objects that were picked up off of the field gave the visual effect a much better pacing. As each piece is picked up (or gloriously ripped off a vehicle), there is a distinctive controller rumble, a quick bolt of lightning, and a physics impulse applied lateral to the ball which starts the piece off in a perfect orbit around the Vortex. It's a lot of little meticulous work that it seems like noone would notice, but the sum of all the parts add up to make the power just feel better when playing. It all comes together to really make the player feel like they can dominate the battlefield with a little bit of controlled chaos. One of my personal favorite illustrations of the Vortex power came from a playtest where a player started spiraling the power around in circles until the pieces got enough momentum orbiting the vortex horizontally, and he managed to time the explosion perfectly to effectively shotput a spray of tank pieces and marines into an enemy base. Not exactly the most practical attack, but you have to give the guy points for style.

Conclusion

It was certainly a challenge to try and create all the experiences we wanted to illustrate with the leader powers, especially under the gun of the inevitable deadline. We quickly learned that in order to make any of the powers live up to the intensity they needed to portray, a high level of polish was necessary. The meticulous details like adding a tenth of a second delay to an effect, a subtle controller shake, or Spirit of Fire chatter in the targeting UI may not have been overtly noticeable, but they were absolutely pivotal to taking the powers over that last step from pretty good to really great.


This early Halo Wars Development Screenshot, shows some temporary art of BorgTim, and the Orbital Bombardment Leader Power, as well as some early UI.


Being sure we had the time to add that polish meant that we were always evaluating the cost and benefit of the work we were doing. Not many people know, but there was actually a point where we were short on time enough that we talked about the potential ramifications of giving all three of the Convenant leaders the cleansing power! Fortunately, I'm very happy that a little passion and some hard working late nights from all of our disciplines let us create and finish the Rage and Vortex powers, which in my personal opinion, feel pretty *** great and added a lot of depth to the Convenant side.

Taking point on creating and polishing the leader powers on Halo Wars was a spectacular experience for me personally - rewarding because of the end result as well as the process in which we got there. The excitement that came out of the team during brainstorming and the cross discipline work while creating the powers is really the passion that comes together to make a great game in this industry. I know that I was excited to make the player feel like a badass on the battlefield in an RTS, and I feel like we accomplished that.


This other early Halo Wars Development Screenshot shows the Orbital Bombardment power in action, as well as very early base buildings.


Probably my favorite part of working on the powers was watching people play during our company playtests. Each time a new power went in or had a new feature added, it was awesome to see it immediately become the "power of choice" for everyone playing. It was easy to tell how well we were doing with the current version by seeing how many people said, "Holy crap that's awesome!" or were laughing maniacally while devastating their opponent while trying out the new power. I hope all of you have had a similar experience when you used the powers in Halo Wars; I would certainly consider that a victory. Thanks for reading, See you on Xbox Live!