Advertisement

WoW Insider Interview: PopCap's T. Carl Kwoh and Moongaze, maker of the Bejeweled addon

PopCap's Bejeweled addon

for World of Warcraft is coming out today (we did an in-depth preview of it earlier this week, in case you missed it), and to celebrate, we sat down with the addon's creators to see how it came about, and why this addon release (officially endorsed by another well-known gaming company) is so important.

Michael Fromwiller is a student at San Jose University, but in the WoW community he's better known as Moongaze, creator of the popular Lunarsphere addon. He also created another addon called Besharded a while back, which was an unofficial clone of PopCap's Bejeweled, a game he'd played a lot on his cell phone. PopCap heard about the addon, and when word got around to T. Carl Kwoh, a senior producer at the company, they decided, rather than shutting down the unofficial version, to try and hire Moongaze to make it official.

Our interview with both of them, which starts after the break, covers how the game came together, how Moongaze took influences from both PopCap and WoW to fit one game inside another, and why inserting another game into World of Warcraft doesn't exactly mean there are holes in Blizzard's game.



So let's start at the beginning: Moongaze, how did you get started working with addons? And how did Besharded come about originally?


Michael "Moongaze" Fromwiller: I started working with addons a couple years ago with a simple mob health display. It was really simple and just calculated an approximate value of the hit points a mob would have by comparing the percentage of health left and how much actual damage was done. I never released it to the public as it was just meant to be a side hobby for myself. After I found out how easy it was to modify the interface, I sat down and came up with my own game called ShardGrid which was a really basic and simple puzzle game where you just move rows and columns around until you line up each color in its own row or column. After a week of trial and error, the game was finished and uploaded to a few addon sites. I still wasn't too comfortable with the LUA scripting language that the Blizzard UI uses, but I was still learning. This was also the first game project I actually finished and let others play and after hearing some of the comments on the game, I wanted to make more. I made another game called Bust-a-Shard that plays like the game Bust-a-Move, to prove to myself that it was possible. After that, I moved onto the Bejeweled clone, Besharded.

Besharded, like the other games, was made to kill time. Granted, I didn't have a level 60 toon at the time, but I saw situations where I was waiting around for flights to finish or groups to start up. In practically every MMO I've played, this issue comes up. My reason to go with the Bejeweled clone was because Bejeweled ate my free time better than anything else at the time. It was simple to learn, hard to master, extremely addicting, and basically a lot of fun. Due to the random nature of the game, it wouldn't never be the same game twice and I could always play it.

And Carl, how did this all begin from PopCap's end? Have you all been playing WoW for a while (and I have to ask, this is WoW Insider, so what classes and levels do you all play)? And how did you hear about Besharded, and then decide to contact Moongaze to get this started?

T. Carl Kwoh, Senior Producer, PopCap Games: Having a Bejeweled addon has been something we've actually had kicking around at the company for awhile. We have a pretty good group of people in the office who play and every once in a while someone would go, "wouldn't it be cool if...?"

During one of these, one of the guys here went looking for any mods out there that had done something like Bejeweled to see how hard it looked like it would be to do in lua. They found Besharded and ended up notifying our legal department since Moongaze was using our art in that mod. One of our founders, Jason Kapalka, intercepted this and basically posed the question of "How cool is this, really? Cool enough to try and contract this guy to make an official one?" The resounding answer was "Way cool" and so we reached out to Moongaze to get it going, and I was put in charge of the project for PopCap.

I personally have 3 70's: Hunter, Rogue, Warrior. I'm working on a Shaman (about 63 right now), and ended up leveling a friend's Warlock from 60-70 when he couldn't play. I've raided through SSC on my rogue (had to stop cause I couldn't make raid times). Tysen Henderson, the artist on the project, has a 70 Priest and 70 Druid. We all play Horde.

Moongaze: I have a level 70 priest, and the others are low level alts that I'm not serious about. All are for the Horde!

I haven't played Besharded, so Moongaze, how much did you change to the Bejeweled release? Did PopCap give you any input on features/design they wanted implemented, or was it a pretty straight port of your own addon?

Moongaze: Besharded was based upon most of the rules found within the original Bejeweled game that I had on my cell phone. The Bejeweled addon, however, was to be based on the Bejeweled 2 rules and include a lot of the effects found within the PC version of the game. At first, I thought I could just skin the original Besharded addon, add the new rules, include a few new graphical features to make it look more like Bejeweled 2 and improve the graphics with official animations from PopCap. However, I realized early on that I had to rebuild most of the addon to even support the stuff we wanted to do. Some of the logic to determine if a match was made and the generation of new jewels is the same, but that is pretty much the extent of it. This addon is almost completely new in comparison to the original Besharded code.

When PopCap contacted me, they said that they wanted a version of Bejeweled that would look like it fit within the WoW interface. I explained most of the stuff that can be done with an interface addon in terms of graphics, animation, and sound effects and it kinda went from there. Some phone calls, emails, and instant messages later, PopCap was able to provide me with product and feature specifications for the Bejeweled addon and the project was on it's way. The process, like most game design, was not set in stone and changed almost on a daily basis. T. Carl Kwoh, the producer for the project, was in constant communication with me as we bounced ideas back and forth and made changes to the original specifications.

One of the things I really love about the addon is how it mixes WoW sounds and graphics with a decidedly PopCap style. Did you think about combining both of those as you put it together, Moongaze, or was there anything specific you did to insert the shiny PopCap feel into WoW's UI?

Carl: I'll add something here since we did the UI art and handed it off to Moongaze. When we were sitting down to do the project, we really felt like if we just straight up took Bejeweled 2's art style and plunked it down as an addon in WoW, it would feel really foreign and intruding. So the goal became to make the Addon feel more integrated into the WoW style and add some nods to the base UI and general style while still retaining the Bejeweled aspect as well. So the icon we did for the upper left, for example, was a Bejeweled jewel done up in the style of the WoW skill icons. We went after the studded metal look and feel of the WoW homepage. We used default WoW button art in several places.

That melding was also something we went after in features as well: the bejeweling skill, using the rare and epic item link standards for Power-gems and Hyper-cubes, listing time played as "/played". Nice in-jokes of "this is Bejeweled... INSIDE World of Warcraft."

Moongaze: The graphics and choice of sound effects to use came from PopCap. Tysen Henderson did an amazing job with the frame skin and provided all the graphics you see within the game. I just gave them the specs that I needed and a day or two later, my mailbox was full of artwork for me to chop up and place inside the addon. I worked hard to make sure that most of the graphic details found within the PC version of Bejeweled 2 would be found in this addon. The spinning jewels, the highlight glow that bounced around on the adjacent gems, the explosion and shard scattering from the power gems ... I wanted to make sure those were all in. It took a while to get some of the effects to look right, but I'm pretty happy with the result. The lightning effect from using a hyper cube was added at the last minute and Tysen really made that lightning graphic look good.

The other fun thing is how you've integrated it into the game -- set on default, it pops up at some really perfect times that I wouldn't necessarily expect, ie on flightpaths or death, places where there are "holes" in WoW's gameplay. Were there any other places where you considered putting it. or any other places in the game where you've found it useful? A lot of players have said it's a little silly to require a game inside a game -- do you think that there are design flaws in WoW that create this downtime where things like Bejeweled are required?

Carl: Flight paths I think are the obvious place – and really where my whole idea for the addon really took shape. On death was something that came up from my raiding days – and suggested by some of our beta testers who raid – from that weird time where you die on a boss fight, but the call hasn't gone out to run back nor are you going to be battle-rezzed yet. Similarly the auto-close on Ready Check come from the times when you're waiting for raids to start where you are just listening to instructions on Vent, or for everyone to finish buffing.

Other times we considered were for Battleground/Arena Queues, but those are hard times to lock down and get flags for so instead we just offer the ability to setup a timed game of a set duration. Our company's Hunter suggested we have an auto-open on auto-shot, though we decided to pass on that one. Other dead times of waiting around major cities or just in general idling don't have any in-game flags associated with them (I guess we could have done auto-open if you can read the trade channel or Barrens /general chat...).

On the game within a game issue, I think many games have lulls in them, places where the pacing is either accidently or purposely changed. Some players do well with that – they need the experience broken up with different pacing – others don't. I do know that if it weren't for some of the lulls in WoW, I wouldn't really look up at the clock and realize I needed to be in bed an hour ago. So not all pauses in gameplay are bad from my perspective.

Moongaze: I personally don't think it's silly to play a game within a game. The arena could be argued as a game within a game, the battlegrounds all have a game concept added to them as well. When you're playing a healing class, you get to play whack-a-mole, especially with the Decursive addon. Some people mess around with the Auction House as a small game itself, or just use it to make money. What we're doing is providing another mini-game for people to play. It might be more in-your-face because, well ... you see an actual game being played.

WoW, like any MMO, will have downtime and you can't really prevent it. If you're raiding and you happen to die and need to wait for a while for the battle to be over, what do you do? You could shoot the breeze with your guild, but chances are that they are with you in the raid and can't talk. So, you just watch the battle. That's fun. It's like TV. Or, you can browse the internet, watch TV, hit the bathroom, grab a snack, turn on your DS or PSP ... and not play WoW for a little bit. If you're flying on a flight path, you pretty much need to consider that your 5-10 minute break before getting back into the game. These breaks exist. Maybe they exist so that the players will be forced to take a small break from WoW and do something else for a few minutes. Some people will take advantage of it, others will sit at the computer and wait. Bejeweled is just another thing to do while it's "break time." Of course, when your long flight ends, or your raid is ready to continue and issues a raid check, the Bejeweled game will hide (if you set it to do so) and you won't miss what needs to happen.

I was trying to figure out how the flightpath/timed game code works -- do you just have all the times for the various flightpaths stored in there, so you know how long each flight is accordingly? Would it ever be possible, say, to compare scores on specific flightpaths rather than just a general "points-per-second" score? Like, could my friends and I compare all of our scores from Ironforge to Booty Bay, or from Shattrath to Cosmowrench?

Moongaze: The times were all pretty much gathered by beta testers who jumped on a flight path and Bejeweled would time it and save it to a database. Pretty much every Alliance and Horde flight point is timed, with the exception of the Wrath of the Lich King paths. Bejeweled will also auto-correct the times database as you take flight paths, that way if Blizzard changes a path or adds a new path, Bejeweled will track and save it. The flight path score tracking was a little, um ... large, if we wanted to do it from one flight point to another, such as Ironforce to Booty Bay. There are a lot of combinations for the flight paths and the high score screen would be HUGE if we accounted for every path. So, the Points Per Second decision was made and seems to fit really well.

Carl: One of the original features was to have flight-path specific high score tables, and my pie-in-the-sky goal was to be able to have some sort of automated "daily-challenge" of a flight point so people could have little mini competitions with each other every day. Where it breaks down though is the sheer number of flight paths in the game. A to B does not necessarily have the same flight time as B to A. And A to C does not necessarily have the same time as A to B + B to C. So the sheer number of high score lists we would have to keep track of and find a way to logically display became too unwieldy. So we went with the more generic and normalized points per second, which was a boon since it's also a nice nod to damage per second from WoW.

In that vein, are you planning any updates of the addon in the future, either with new features or just for compatibility?

Moongaze: If the addon breaks for any reason, there should be an update. I made sure that it worked for the 3.0 patch, so it should be safe from the chaos that the patch will bring with it. There will be some new features that will be unlocked when WotLK hits as well.

Carl: At the moment we don't have any plans for updated features, though we aren't totally adverse to looking at that. The mod will be kept up to date for any changes to the interface API – it is already compatible for the upcoming 3.0 patch. And once Wrath comes out, we'll be flipping a flag on the Addon that lets you get your Bejeweling Skill up to 450 (and unlocks some more in-addon achievements).

The UI/Addon code in WoW seems pretty robust, especially when you can do things like compare scores across friend lists and guilds. Is there anything you'd like Blizzard to add/fix in the UI system, or anything that you wanted to do, but couldn't with the tools they gave you?

Carl: I'll let Michael answer this mainly, but the only thing I asked for that he couldn't give me was a volume slider. Apparently in the current API if you put in a volume slider it affects all sounds, including the default game sounds. It'd be nice if there was a way to basically tell a mod to play a sound at X% of max volume that didn't affect other game sounds.

And of course a volume slider was the only issue I had with the addon in the preview we posted.

Moongaze: This project made me wish for the ability to specify the volume to play sound effects that an addon loads up. There is a global sound volume I can manipulate, but that affects all sound effects which makes it hard if you want to turn up the sound effects while fishing, but don't want to hear the Bejeweled sound effects which happen to be crazy loud in that situation.

I always wanted to create a mask for the cooldown effect that are on the buttons. Currently, the cooldown effect is a gray square that washes away in a circular motion. That's cool and all, but I really wish we could make it a circle or apply any shape mask to it that we wanted. It would help with circular button addons.

Or the ability find out if someone is in the guild or the friends list by specifying their name, instead of having to iterate over every member of the list to see if you find a match. That would be nice.

For making mini-games, I can't really think of anything else I would want. All the tools are there or, if they aren't there, they probably are ... you just need to think of strange ways to use the existing tools to get the results you want. Blizzard really has put together a nice package to us to play with and experiment with, so I'm pretty happy with what I got.

Carl, let me thank you guys at PopCap -- you're giving this away for free, and so from me and the community, thanks very much. And thanks also for doing the right thing here -- in the days of Scrabbulous and Tris, it's great to see a company embrace an unofficial version rather than sue it out of existence. Why did PopCap decide to release this in the way you're doing it, rather than block Moongaze from making his or trying to sell it?

Carl: We've done a lot of community support stuff in the past. Our PopCap framework for casual games is completely free for other developers to use, for example. And there was a guy who made a javascript Bejeweled knock-off for the iPhone last year. It was a pretty egregious copyright violation, but it was also really well done, so we decided to hire him to make the official web version. You want to recognize when people are doing something cool. And if they're doing it well, why not try to use that talent? Good game developers rarely come out of some official "game dev school."

The addon is completely unofficial, too -- have you had any contact with Blizzard about it, or ever consider releasing it officially? EverQuest famously had the /gems game, so it's not completely unprecendented to have a casual puzzle game inside an MMO.

Carl: We did show it around "off the record" to some Blizzard folks, just to make sure they were okay with it. So far, their response has been really positive! But no, we never looked into making it an "official" release. The whole thing was meant to be a fun little project, not some complicated corporate marketing event. Though if Blizzard wants to put new pets into WoW based on the Peggle master I doubt we'd say no.

Well, the number one question we've heard from readers already is that they want more PopCap. Any chance you'll look at doing this with Bookworm, or even creating a WoW version of Peggle?

Carl: While working on Bejeweled, we did think about some other possible games that could be done as addons, and Peggle's definitely near the top of the list... though it would be technically challenging to do inside the WoW interface. But we really haven't made any concrete plans to do other games yet.

Thanks very much guys, appreciate it.

Don't forget to read our preview of the addon if you haven't yet (or just go download it and see for yourself). And for other addon news, our weekly Addon Spotlight column will help you find all the addons you can fit in your UI.