Game: World of Warcraft: The Burning Crusade
Game Element: The Chess Event, a special quest in Karazan
Discipline: Content Design
Today’s post is a little bit different. Unlike previous post mortems, this is one I didn’t work much on.
The Chess Event in Karazhan was created by a designer who prefers to remain anonymous.
He started out at Blizzard back in the days of Warcraft 2 as a phone support technician, ended up showcasing his creativity and passion for trying out new and unexpected things repeatedly throughout his career at Blizzard.
He created holidays, battlegrounds and quest chains. However, for me, the Chess event was the most memorable.
It showed me that most of the barriers to what can be done in a game can be overcome with creativity, patience and hard work.
A Strange Room
The hollow shell of Karazhan had been in progress for three years when I started at Blizzard.
John Staats had planned, Aaron Kellar had built and rebuilt over the course of several years.
When I finally got my build machine setup and the special client used to connect to our development servers working, one of the first things I did was run through its hallways.
Twisty, dusty and mysterious, walking through its empty halls was like a piece of adventure fresh out of a faerie tale.
An opera house, a dusty corridor, the twisty-turning library, complete with secret passageway, and then suddenly…
Me: A chess board? Ooooohhh….
The gears in my head began to spin – the possibility of ideas clicked into place.
Me: Scott, can I make the boss for the chess room?
Scott: *turned around from his work scripting the stage event* Actually, [Redacted] has offered to do an event in there… but we do have a lull for a bit.
Why don’t you go find him and see if there’s something you can do to help out.
I scampered over to his office.
He was idling around Shattrath in the editor, dragging Christmas decorations into place, muttering small curses about what a pain it was to place objects all over.
The Challenges of a Mini-Game
When you are creating a mini-game inside of a complex, pre-existing engine, there’s a number of significant issues that prevent you from creating a seamless experience.
- The control scheme isn’t built to suit your work
- The camera will often be at the wrong angle or out of your control
- The game engine won’t exactly support what you’re trying to create
- Often engineers will be confused as to what you are trying to create.
- Often you will be confused as to what you’re trying to create.
The chess event was no different.
Knowing we wanted to draw upon the Battle Chess game as inspiration, but create our own rules, He went to town.
The first inspiration was Warcraft 1 – which ended up being the inspiration for the pieces and their names.
After several iterations, he put together the following rules:
- Each player will control their own piece.
- There will be more pieces than players.
- Players who die early will need to jump into different pieces to help the team.
- The king will be a powerful piece that is not only the target, but the most effective unit.
- You always play as your own faction.
- Kill the king to win.
These rules were important for a number of reasons.
- It’s bad if everyone’s at the dictate of a single person for a minigame.
- This is why it wasn’t just chess.
- If someone doesn’t get to participate that sucks too.
- This is why there were so many extra pieces. … ahem.
- If the best way to play is to keep the King out of the fray, that isn’t much fun and doesn’t create moments of tension.
- Thematic cohesion is important and an important aspect of identity for factionalized players.
We ran into the following problems:
- Targetting locations is difficult.
- The pathing grid, built into the Game Engine by Scott Hartin and was larger than the size of the squares of the room. Fixing this would increase the memory requirements of WoW servers by 40%.
- Running an AI is very challenging. WoW’s AI tools were designed to control single units – not coordinate the motion of multiple units.
- When players were given equally powerful units on both sides, they decimated the computer.
- The game tended to drag on.
Me: So, X, how should we deal with this?
X: I’m not exactly sure myself. Let me go talk to Sam Lantinga and see what he suggests.
One of the most important tools in your team is your team itself. When you are stuck on ideas… going to them is often the best plan.
X: Alright, I’ve got it!
Me: Cool, is he fixing the engine.
X: Well, no, that’s too expensive… but we have the best solution ever.
Me: And that is?
X: Invisible bunnies.
Me: What????
X: He recommended we place small invisible creatures in the center of each square.
Me: How will that help?
X: They act as marker points, which we can use for both targeting the square *and* movement to ensure a square is full or not.
Me: Wow, that seems pretty intense. How will you know which square is which.
X: Yeah… I’m going to have to attach a StringID (different than UUID) to each square to figure out which square is doing it.
Me: Geez! That’s a lot of work.
X: Design is a lot of work – often working around the limitations of your tech and your team’s time.
Get used to it.
Let’s just say I took these words to heart.
To solve the AI problem, I wrote several LUA scripts attached to the Medivh NPC in the room.
Using it to index and record which units were in the game still, I passed this script along to X, who was able to use the lua techniques inside along with his own knowledge of CS and develop the rest of the game.
Finally, to help improve the drama of the game, X added “cheating” to the game.
While its very out of Character for Medivh – it provided the right drama and also the ramp-up the made the fight more intense as character pieces died.
Then there were months of building small features to handle edge cases, like pieces moving toward the same spot at a time, handling bugs and fixing issues where the default AI rules fought the fake AI rules built for the game. (Did you ever see the king piece punch a pawn? That’s what was happening)
One thing to remember:
- If you’re working outside rules, be prepared to do the handiwork to rebuild what’s already been created
- Ask for help early.
Lessons:
We made fantastic use of a unique environment and a once-in-a-lifetime game opportunity.
The chess event is one of the most memorable and beloved parts of Karazhan.
Remember, in some of the old post-portems I was telling you that you can invest in an idea and take the risk if there is a big novelty reward or future features potential.
We definitely hit the novelty reward with this one.
While everything that was created had to be created from scratch, and no game rules from WoW were usable, except for damage and status effects.
The amount of work it takes to rebuild what already exists is staggering when you break the rules that hard, so ask for help early.
Always do risk/reward analysis and try to gauge the probability of the reward, so you can justify the risk if it ever comes to it.
8 Responses
Glad to see postmortems back.
Was the chess event the first use of Invisible Bunnies? They are responsible for a lot of things in WoW if i’m not mistaken.
Also sucks Blizzard asked you to stop for a while, I find these extremely interesting to read.
The first major use of invisible bunnies was the small rats in Molten Core – i believe they controlled several doors for years. There’s also two Herald Rats on the roof of the Blacksmith in Arathi Basin. These were the first invisible bunnies, I believe.
I missed reading your post-mortems!
Why did Blizzard as you to stop?
“Looking at the notes of this early draft – I started this post-mortem on February 20th, 2015 at 12:11 pm. It was around this time that I was contacted by Blizzard and asked to stop posting for a period of three months.”
That part was a bit dramatic, any reason for that?
Thank you for another quality post, I absolutely love reading these to get a tiny glimpse behind such a complex and amazing game.
Here’s hoping for more!
They had some internal reasons and J. Allen Brack didn’t want my blog getting caught in the crossfire. Thoughtful guy.
HELL. YES. Thank you so much for bringing these back, Xelnath!
The programming challenges the chess event presented sound pretty familiar. Budding programmers are taught (at least, I was) to NOT reinvent the wheel every time they sit down; but you learn pretty quickly that working within the rules of an existing system (especially if you’re a code maintainer) is one of the hardest parts of the job.
I don’t remember where, but I’ve heard it compared to scifi writers who box themselves in with ridiculous mechanics at the onset of a series and then have to either retcon or work around the rules at a later time.
Anyway… I don’t think anyone will contest that Karazhan’s chess event is one of the most memorable and beloved parts of WoW’s raiding chronology and this just adds more flavour to an already great memory.
Thanks again for sharing!
P.S.
Of course, you realize that whenever I hit the chess event now, all I’m going to be seeing is Invisibunnies, right?
Hahaha, yes, this is very true! There’s an invisible bunny in every square. (or two)
Invisible bunnies sound like a very common mechanic in development : )