Monday, September 17, 2012

Lessons I Learned: Vincent Ross (City of Heroes)

Vincent Ross. You were the bane of my existence.


City of Heroes Issue 19: Alpha Strike, was a great issue for me. We released it back in November of 2010 and people thought it was great. I had done the Apex and Tin Mage task forces, Praetorian repeatable missions, new maps for Mission Architect, a new hero arc, and a new villain arc, given out by a guy named Vincent Ross.

Oh, Vincent Ross. I had such grand plans! You were to be my greatest creation, my Requiem, sans me dying. However, you betrayed me. Or rather, I betrayed me (!). I relied on dirty hacks to try to do cool things. You were my lesson in how to be a better game designer, because you utterly destroyed me. You will be part of my first, Lessons I Learned series, where I look back on my previous work and reflect on the lessons learned from it. I should note that I still love the story and the arc in Vincent Ross to death, but man, I think I earned a few years in Purgatory for the anguish I put our QA team through trying to get it done.

That's me in the Proud section for thinking I could pull this off.


The goal with the Vincent Ross arc was to have several side stories going on that the player could do. It was going to be amazing. Players could choose one of six contacts in Sharkhead Isle to see their point of view on the story. You would still play the main story with Vincent Ross, but you would also have objectives from the side contact you chose to work with. It was going to be extremely replayable - imagine! You could have 6 possible stories in 1 storyline.

I figured out how I would do it. We had gotten the technology to do Optional Delivery Contacts on a mission. It was simple. You attach a flag on a mission to say that, while you're on this mission, you can also talk to this contact out in the world to hear something special. We used this very sparingly for our expansion, Going Rogue, and it was mainly with our undercover agent system. I decided that I was going to go ALL OUT with it in Issue 19 and Vincent Ross.

THERE'S NO WAY THIS WILL GO WRONG!


I should've realized the problem from the get go. You could talk to a contact out in the world easily enough. However, that contact couldn't set an objective in the mission. Plus, I had to add a clue that the contact gave you in order to stop the dialog and remind the player what was going on. It's an easy fix, I thought. I'll just add a radio at the beginning of the mission for you to communicate to your contact. I'll use a dialog tree to check which clue you have, and then that clue sends you to the appropriate page for the side contact, and that page triggers an objective. You beat the objective, get the clue for completing it, and you rinse and repeat for the remaining missions. I'd just have to add to the next require statements for the contacts that you had the previous clue from the previous mission. Plus! I'll add a BADGE for completing one of the contacts side missions completely!

If you're looking at this and thinking, "Sean, this seems reasonable!", then you're wrong. It wasn't reasonable at all. Oh, I thought it was. I was so proud of it when I finished working on it. After the milestone ended for this, I had gone on a four day weekend vacation to Lake Tahoe. However, while I was gone, all the things broke. I came back and saw a stack of e-mails detailing where all the things went wrong.

"I had a fun time at Tahoe! Wow! What's with all the e-mails in my inb-"
"AAAAAAAAAAAAAAHHHHHH!!!!"


So many issues cropped up from this. First, it was clunky. The contact told you what you had to do, then you had to talk to them again via this weird radio in the mission, which, also, was always spawned in the mission because there was no way to tell it NOT to spawn. So if you chose not to do anything, this weird radio was just hanging around.

Another issue was that it just flat out broke when the whole "multi-player" aspect of an MMO came to play. City of Heroes had an option where a player could auto-complete a mission if they felt like it every 3 days, or if they were on a team that completed this mission. If a player was trying to do the contact side missions and then auto-completed a mission, they would be stuck. This meant that the best way to do this was to either not team, or repeat the mission again after your friend completed it. To top it all off, there was no messaging that indicated to the player that they did something wrong.

Lastly, QA discovered something that was surprising. I had about 50-60 clues on my mission to keep track of the 6 side contacts. As it turns out, the mission system in City of Heroes had a max clue limit of 32 clues per story arc. We found this out pretty far into the development process. This meant I had to shave off at least 2 of the side contacts, if not 3 of them, after having written all of their dialog in the missions. Even after doing that, my test plan was so complicated for this that most of the QA team had a hard time even understanding how this thing was supposed to work.

We got Vincent Ross out the door and working, ish, by making some concessions, namely that all you had to do was have the first clue that started your work with the contact. You could not complete any of their side missions and still talk to them again. The worst part? With all of this work and effort, most players of the game didn't even notice that there were these side missions. I didn't make it clear enough to them and they didn't notice anything changing because they didn't participate in it.

I went from Mozart to Salieri in one fell swoop.

What lessons did I learn from all of this?

1) If you get a new system that you think is cool, don't go hog wild on it. Test it out first, understand it better, make iterations on it and proceed carefully with it. Once you've gotten a better grasp of it, you can then do the CRAZY things with it.

2) If you're going to give players a choice, make sure they know that choice exists, how to get to it, and that things are changing because of that choice.

3) Don't do hacks. If you're jumping through 4 or 5 hoops to do one thing, then you're Doing It Wrong. Talk to another designer or a programmer to see if there's a better way to do it. You might think you're a clever designer for figuring out how to connect the dots between systems, but players won't see that cleverness. They'll only see the clunkiness.

I'm very happy that Vincent Ross happened. It was a turning point in my career as a designer. I was burned badly by the hacks I did in the arc, and I vowed never to rely on those things again. You were my Bane, Vincent Ross. You broke my back and tossed me into a hole. But I climbed out of that hole and swore never to be the Hackman ever again.

I don't think that analogy really works.





10 comments:

  1. I just finished that arc last night on my MM. First time I've done it to be honest *blush* I enjoyed every minute of it..and *I* thought it was pretty well done. I picked Maros because he was the easiest one to find. My wolves bit Cuda in the butt. what what?

    ReplyDelete
    Replies
    1. Thanks! I do enjoy playing through the Vincent Ross arc, and I like it a lot. But the road it took to get it to where it is now was needlessly difficult compared to say, Dean MacArthur, thanks to the whole branching options.

      What I didn't mention in here is that with option 3. you could get a programmer to code a new way which you can do things much simpler, which I eventually did. If I were to do Vincent Ross again today, it would be with this new code.

      Delete
  2. I've done that arc a few times and not once did I realize I could branch off into side missions. I saw that 'working with other contacts' yellow text but didn't know what to make of it. Dang!

    ReplyDelete
    Replies
    1. There you go! I did this much better in Issue 24 and on a smaller scale with Dean MacArthur, but it's still a bit of a process to be perfected.

      Delete
  3. Sean, why isn't there a button to just subscribe to your blog? LOL If there is, I can't find it. :P ~Mel

    ReplyDelete
    Replies
    1. Here I thought it was something just done automatically, but I guess I need to install a gadget to do so. I'm looking into it now.

      Delete
    2. And found it! That should work. I hope.

      Delete
    3. Add the "Followers" widget. That one allows people who are logged in to Google to follow your blog on Google Reader without typing their email address. Typing is for people who are not lazy.

      Delete
  4. Very cool article. As a gamer (City of Heroes is my only MMO) and former computer programmer (COBOL, RPG, problem was, I actually preferred BASIC) I found it interesting on many levels.

    Sadly, I've only been playing CoH for a year and a half, just started finding joy in teaming up with others a week or two before the excrement hit the A/C. I was really only just starting to really get the hang of getting the full potential out of my toons!

    Here's hoping the game is saved, and that before I'm thru I get to experience I19's special story arc first hand!

    ReplyDelete