Sunday, July 13, 2008

A Wormy Tale

The following is a fiction inspired by real events. The case displayed isn't at all an actual request, just a made up example to demonstrate how things aren't always as simple as they seem.

* * * * * *

I wake up a fine morning, all excited to head out to work. The project I'm working on only needed a wee bit of tweaking then off it went to QA for testing. I don't really want to start on my next big task until QA passed the first one so, having some time to kill I glance at the forums and see players request yet again for something we promised them a while back and some other stuff they've just been wanting forever because it was omitted originally.

Feeling like a good Samaritan (and frankly to quell the outcries too), I grab one issue which seems like it would be a quick fix and start digging through the code...

If you're a fisher, come see me, I've just uncovered the bait stash of the century!

So the players were saying "Why can I write in the red and blue books but not in the burgundy ones? Can we please write in the burgundy books?" I figure, heck, I don't have a problem with that. It's just fluff, doesn't create imbalances and if it will make them happy, have at it!

I dig up the code controlling books thinking this is a 10-15 mins job. Then I start reading through it and feel a cold shiver running down my spine as it downs on me there are actually 5 different scripts controlling things. So I open each script look through them and realize how one is included in the other or inherits from that one and how this other function defines how the blue and red books react and dictates what interactions are allowed with all other books.

I take a deep breath...

"You can do this, girl! It seems more complicated than it really is! Just think how happy the players will be once Com posts it with the next patch notes!"

So I changes a few lines here and there. Go to next script, change a few more lines, add a couple more. WOOT! It compiles! Test it in game. Ugh, talk about miserable failure. Go back to the code, fiddle some more. Doesn't compile. DANGIT! Work on it some more ("OMG, has it really already been 2 hours I'm at this?!). Yay! It compiles! Test it. Hmmmm, this part works, but now I've just broken all other books. Wait a minute, worse than that!! I've broken All other items!!! I don't think double-clicking a trashbarrel should open a writable book gump.


A little bell goes off... I just received an email from QA. My previous task passed successfully! Go me! I have to write and setup a new event, which is fairly important... at least definitely more than being able to write in the burgundy book vs the red and blue ones. Plus in terms of bang per buck, there really is no comparison...

By now, the worms are crawling all over me and throwing a party on my desk, high fiving each other.

Decision time...

I take another look at the clock. I've already spent (wasted?) 4 1/2 hours on this dang thing. I know what the problem is, and if I fiddle with it enough, I know I can fix it, but it will be another hour or two atleast. If I stop now and revert what I've done so far, it will truly have been a waste of time. So I shake off the worms that were nesting on my arms and plow on. Another 1 1/2 hours later, touch down!

So 6 hours, lots of hair pulling, head banging on the wall and thousands of worm squashing later, players can finally write in burgundy books without it breaking previously working features of the game. Yay?

I'm a little annoyed it took so long but I'm happy it's done and smile at the thought some players will be pleased at that little bone thrown to them in the next publish.

* * * * * *
Two weeks later...

The patch notes of the latest publish have been posted. I'm curious to see players' reaction to all the stuff the team and I have worked on the past weeks/month. For the first couple of days, no one seemed to even notice that burgundy books are now writeable. I'm a little disappointed but shrug it off. Then someone finally seems to notice and starts a brand new bandwagon:

Player 1: "Wtf? Instead of working on balance issues, or major bug fixing, or new content, you Devs have nothing better to do than allow players to write in stinking burgundy books? You morons need to be fired! Get a (censored) sense of priorities!"

Player 2: "No kidding! This is (censored) pathetic! No wonder this game is going to hell!

Me: *sighs*

* * * * * *

Another two weeks goes by...

A colleague drops by my office to ask a few question regarding something I submitted to make sure QA is testing the right things. While talking, she mentions some request she saw on the forums and points out a couple which she felt might be worth taking a stab at, despite our pretty tight schedule. She didn't look at the script (that's not her job anyways) but unless she's wrong, she thinks it might be a quick fix.

I smile and reply "yeah, I read it as well this morning". She says "Ok, cool!! Just thought I'd throw it out there if you had time to kill". I nod at her, still smiling, while she saunters out of my office. The nodding turns into headshaking. I had a quick look at one of the issues and a conservative guess says a full day for that "quick fix". I let out a sigh that almost sounds like a painful moan. As I turn back to my monitor to continue on my current task, I spot worm trying to crawl its way back up the top of my desk. I flick it off. "Dont be so impatient you slime ball. It isn't time for you to party yet. You'll get another turn soon enough".


Lord GOD (GOD) - Atlantic said...

In regards to pleasing the player base' requests on the boards, I believe Homer Simpson said it best.

"If something's hard to do, it probably isn't worth doing.

Chao said...

If it makes you feel any better... I still love you? :P

Seriously though! Writing in burgundy books is the best.

Anonymous said...

That was an interesting insight! It seems to me that the scripts running the game are like a complicated web that has been woven by a hundred different people over the past 10 years.
I wonder, if someone will consider actually migrating the game to a new, more efficient code base. I wonder whether such a change (which will cost money) would pay off after 1 or 2 years (because adding new features or fixes would be much more efficient, and players would definitely like this)?

Regine "Sakkarah" Abel said...

You can't really change the base code without completely redoing the game. Which basically what was they had in mind with UO2.

I must admit though that despite the crazy spaghetti of a code we have, I enjoy the challenge of trying to make heads or tails out of it. And it's actually a lot more powerful than it seems at first glance.

This was really more a matter of showing how even with the best of intentions, what you do will often not yield the expected result. That there's just no way of pleasing everyone and especially that sometimes, certain long standing bugs aren't being fixed not out of malice or lazyness, but because the amount of work required to fix a seemingly simple bug is just not worth the return on time investment.

Tomas Bryce said...

Well, I think it is good to have developers who actively play the game. I hope you get a chance to implement all your ideas.