30 September 2010

Money Can Buy Happiness

Today Valve released an excellent update for their Team Fortress 2 game.  In addition to numerous new items, mini-games and new clothing, they created the in-game Mann Co. Store.  This store enables players to spend real-world money to get game-world gear.

Most of the character classes for TF2 have items sets.  These are comprised of individual items which, when all are equipped, give an additional bonus/ability.  While these items may be found randomly within the game, many players opted to spend the money and outright obtain all of the completed sets.  It was rather remarkable to listen to players comment on their purchased items (literally listen – many of the players use team speak): one individual spent $60 at the Mann Co. Store and was very happy with his tricked-out sniper.

Some other cool things available at the in-game store are paint and name tags.  Paint enables a player to change the color of certain items, such as the color of a hat.  Name tags allow players to change the name of certain items.  There are also some new clothing accessories which are available only through the Mann Co. Store; these special items may not be found nor created within TF2.  They are available only through the in-game store.

I like the idea of spending a couple of dollars to customize your character.  The prices are low enough to make this an enticing option.  This lead me to wonder: (a) will this business model be successful for Valve, and (b) can a similar business model be applied to Clan Lord?  Joe has stated that he never wanted CL to be the type of game where players could buy in-game advantages, but what about allowing players to pay real world money for in-game vanity?  Would CL players pay $1.99 for a unique female fen healer icon, or pay $2.99 for a unique permanent skin dye?

My TF2 teammates were very happy with their purchases.  I guess money can buy happiness!

29 September 2010

When "No Problem" Becomes A Problem

An old bug has surfaced on my To Do List, involving the raffle house.

It's not a bug, per se, but it is a common-sense lack of a feature: why don't the raffle house NPCs mention the condition of the raffled items?  For example, if I were to raffle off a gold shirt, then why won't the raffle ticket sellers tell potential buyers "I am selling Yappy's gold shirt, which is in pretty good condition?"  This is good information to have, especially if the item is badly worn and can not be repaired (like Rocko Armor, for example).

After working on the mannequin bug, I felt that I had a pretty good sense of what changes needed to happen within the raffle house script.  I glanced through the script and noted where the description functions would need to be located.  These functions would snap into this script like jigsaw puzzle pieces snapping together in place.  And these functions existed within other scripts, so it would be a simple matter to just copy and paste them into the raffle house script.  In fact, I was so convinced that this was a trivial task that I added a note to the bug record, boasting that it would be "no problem!" and that I would personally take care of this feature.

And then I read through the supporting raffle house script – the one containing all of the functions which handle the heavy lifting for the raffle house.  Hoo boy howdy.  It turns out that the raffle house is powered by numerous sophisticated, complex functions, and there is a lot data management happening behind the scenes.  This is further complicated by the way that items are structured: it appears that the condition of armored items are handled slightly differently from the condition of clothing items – at least that is how I read it.  Therefore the functions used to describe a pair of pants may not be the same functions to describe an iron shield.  I hope that I read that wrong, and the two items are handled identically.

As with the mannequin script, I must be very careful in how I blend a new data structure into the existing data structure.  The format that I implement must be backwards compatible.  Items containing – or lacking – item-condition descriptors must be understood equally by the raffle house NPCs.

What on earth possessed me to believe that such a simple addition to a script would be... well... simple?

28 September 2010

So Far Away

An unexpected RL project has dropped into my figurative lap.  Therefore I expect to be AFK from CL work for the next couple of days.

O, Clan Lord!  You are so far away from me.

27 September 2010

The Golden Bug Award

I should hand out awards for the best bug report of an update.

All of the reports are great and helpful, and they're all very appreciated, but some reports are simply outrageously obvious, in a cartoonish-double-taking-I-can't-believe-that-no-one-and-I-mean-no-one-ever-reported-this-before kind of way.

The Golden Bug Award for V660 is awarded to an individual who noticed that some monsters were spawning in an area that was a little out of character for that monster type.  While I won't offer any details on the bug itself, a comparable example would be finding Savannah Mahas spawning underwater – and rejecting the IC explanation that they were sea lions.

Thanks to the individual who filed this bug report, and thanks for bringing this discrepancy to our attention.  We're working on a fix for V672.

26 September 2010

Story Genies

I have been mulling about Jeanne's thoughtful journal entry on reviving role playing within Clan Lord.  One particular comment that caught my attention was a request for more story tools:
Giving everyone more tools aside from different colored text boxes will be useful. Less powerful tools than the apprentice GMs get but something that will make it so creating their own stories will be fun. I'm not sure exactly what tools are needed but I'm sure many folks have ideas of what they'd like to have.
One of the general weaknesses of player-generated stories has been dissemination of a story.  Sometimes word of mouth works, but sometimes it doesn't.  Players should be able to learn of ongoing stories within the Clan Lord world without relying on external sources (such as Thoomcare, for example).  Koppi is a good example of sharing information within the game, but Koppi is better served for news than developing an ongoing story.

What tools could help a player spread a story?  One obvious idea would be a dedicated story NPC, something along the idea of Koppi.  A player could speak some lines of a story script to the NPC, and that NPC could repeat those lines – either sequentially or randomly, at the choice of the player.  But the problem with NPCs is that they can not be created on-the-fly; there needs to be a predetermined number of them.  How many story NPCs would Puddleby need?  One?  Ten?  Thirty?

This lead me to think: instead of NPCs (which need to be created ahead of time), why not use monsters – which may be created on-the-fly?  If you have ever encounter a T'rool then you probably already know that certain monsters possess the ability to hear and repeat phases.  Why not create a new type of monster to assist with role playing and story telling?

These monsters – I'll call them Story Genies – would be something along the idea of a portable pet.  My caveat is that I have given this idea minimal thought, but in broad terms, I envision that story genies would behave thusly:
  • The player would obtain a genie bottle from an NPC within the fairgrounds. Each bottle contains one genie.
  • The player may name the genie, like "Timber Arm, Darshak Mate," or "Gh'rgh, Summoned Orga Warrior."
  • The player may select the genie's appearance by touching the bottle to another mobile (such as a monster, another player, or NPC). Other methods of defining the genie's appearance could be to chain a corpse to the genie NPC in the fairgrounds, or to simply hold a stuffed trophy while holding the bottle.
  • The player may speak their story lines into the bottle, and the genie will remember these spoken lines.  I imagine support for standard actions, such as ponders and growling.
  • The player would carry the bottle to a location and release the genie.
  • The genie would wander around within its released location, speaking its story lines for the duration of the Chaos Storm.
  • Story Genies would not attack players or other monsters, but could be killed by other determined players.
Would such a story tool help?  Are there any improvements to this idea?  Is the idea overall worth putting "On The List?"

25 September 2010

Almost Done.

I am nearing completion on my Helper Assistant script.  I am resisting the temptation of beginning another project, for my experience with the mannequin script has taught me to focus on one project to get it done.

I hope to put some hours into it this weekend.  It would be great to have the script completed and ready for use by Monday.

24 September 2010

Eliminating Share Dependency

I was pleasantly surprised by the responses to my ramblings about sharecads.  Thank you all for your comments.  I wish to quickly address some points:
  • It is not my intention to remove sharecads from Clan Lord, but the macro's popularity lead me to scratch my head and wonder if there could be an in-game alternative.
  • I have no intention of removing @env.textLog or any other macro features.
  • I recognize that healers are dependent on shares.
  • I recognize that some healers use sharecads to harvest shares for experience rather than for the action of healing.  In my opinion, this is an exploitation of the macro.  A clever macro scripter could address this issue by adding a personalized blacklist of healer names to their copy of the macro.
  • I recognize that Clan Lord's sharing system has numerous limitations.

23 September 2010

Temporary Code

The ServerGM approached me this evening.  "I have a question about a script," he said.

I don't know if I possess the language to adequately describe the draining sense of fear that I experience when the All Knowing ServerGM comes to me with a question about a script.  My immediate, panicked assumption is that I touched a script and somehow broke it.  ServerGM proceeded to name the script and my anxiety increased: I had indeed touched some code back in V633.

ServerGM described the situation.  I shall spare you the boring technical details, but in summary a section of the script was propagating data changes to areas of the Clan Lord world.  What puzzled ServerGM was that this section was labeled as "temporary code."

"Temporary?" I asked.

"Yes, this code has been temporary since 2005," replied ServerGM.

After a brief discussion, it was evident that these changes needed permanent implementation.  The work involved could be done in one evening, and that's exactly what we did: I updated all of the game data which the script had been changing dynamically, and ServerGM retired the temporary code.  As of V672, the temporary data changes made by this script for the past five years shall become permanent.

While it's not my place to discuss what was changed, I will instead say that this evening was a great learning experience.  And it was a relief to know that I didn't break anything!

22 September 2010

Welcome to V669

I had prepared some monsters for the final invasion of V666, and then missed the opportunity because I stupidly fell asleep.


You may read about the V669 changes on Delta Tao's page and on Thoomcare.

21 September 2010

Sharecads, Shareheals and Shares

I had the idea of creating in-game support for sharecads-like healing, but I remain unconvinced that it is a good idea.

I assume that most players are aware of sharecads, but if you are new to Clan Lord and never heard of it: sharecads is a macro (originally written by Prince Valiant) which enables a player to automatically share with the healer who is healing that player.  Gorvin has written a sophisticated, updated version of this macro and has it available on his web page.

The sharecads macro is very clever in its application, but it has numerous limitations: it only works if a healer is healing a player with the caduceus (or "cad" for short, hence the macro's name "sharecads"); the macro does not support those healers using the moonstone, nor is there support for the asklepian; and the functionality of the macro relies on scraping the text log for keywords via the macro variable @env.textLog.

For a long while I had felt that the ideal sharecads macro would be more of a "shareheals" macro, in which the macro would be aware of all healing sources and enable the player to automatically share with healers supplying the healing.  I had envisioned that this healing information would be supplied by the server – not the text log – in the form of the macro variable @my.heals.  This value, in theory, would be updated every frame and it would contain a list of the last five healers to provide any healing to the player, either by moonstone, caduceus or asklepian.  New healers would be added to the front of the list, and healers that have ceased to provide healing would be removed from the list.  In theory.

I was initially excited about the potential of this macro support.  A macro scripter could compare the list of names held within @my.shares_out to the list of healers held within @my.heals and determine which healers required a share and which ones could be unshared and delegate a new share as desired and ––

And then I paused, stepped back from this idea and asked myself exactly what problem am I trying to solve?  I became so caught up in the technicalities of the design that I had lost sight of its purpose.

At its core, the purpose of sharecads is to facilitate efficient healing.  The healer using a cad (typically) gets a share from the player running the sharecads macro, and only five healers may benefit from this macro.  I may be wrong, but sharecads seems to be a situational macro, one that is used under a specific set of circumstances.  I can't speak for the frequency of use, but it has been my observation that sharecads is most popular during invasions and events where a large party consists of more than five healers.  I imagine that this macro is less popular in smaller parties that consist of two or three healers.

This lead me to think: instead of relying on a macro to haphazardly share the last five healers to heal a player by a caduceus, wouldn't it make sense to offer an option of allowing more than five healers to efficiently heal one player – without the need of sharing the healers?  For example, suppose that players had access to an item, something like an orga eye, which when held in the player's right hand then that player would be healed almost as efficiently as if that player had shared the healer?  Would such an item be a reasonable alternative to the sharecads macro?

I see pros and cons for such an item.  The pros are that the unsharing player gets healed almost as efficiently as a sharing player, and all healing styles (stoners and cadders) may equally enjoy the benefits of this efficiency.  Players using this item also retain control over their shares instead of relying on the disorderliness of sharecads-assigned shares.  The cons are that such an item requires inventory space, and cadding healers would not automatically receive a share from healing a player holding this hypothetical item.

Allow me to be clear: this idea is no where near to being "on the list."  This is all vaporware, and I view this example as an interesting challenge in design.  And as I stated, I am not convinced that my idea is a good idea.

But I still think about it.

20 September 2010

Raising Hell

One of my regrets for V666 is that I did not have adequate time to raise hell.

I had envisioned daily invasions throughout this update.  I wanted to run some large scale undine attacks upon Puddleby and its surrounding areas, attacks that would originate from places such as the Undine Hut or the Dark Chamber on Ash Island.  I had wanted to create buzz and excitement throughout this update.  Six hundred and sixty-six versions is a phenomenal achievement for a MMORPG, and I had wanted it to be memorable for its hellish invasions.

I still have a couple of days remaining to raise a little hell.

19 September 2010

Pappy Yappy

As the dust settles from my RL project, I find myself once again looking forward to tackling my multiple CL projects.  I spent this afternoon updating the Helper Assistant script – and by "updating" I really mean that I deleted the old version and began writing a new version.

As I developed the revision of this script, I realized that the tone of the script was – for want of a better description – rather negative.  Instead of writing the script in the form of "do this action, then do that action," the script instead read as a stern parent scolding a young child: "confirm that the data is valid before taking action" and "don't take any actions under these conditions."

And I do believe that I am feeling some paternal pride in this script, and I hope that it remains well behaved.

18 September 2010

Yappy, Unplugged

Today I stayed away from my computer and allowed myself to decompress from my previous two weeks.  I simply could not bring myself to look at a computer monitor.

17 September 2010

Silent Service

My personal submissions for V669 consisted of several minor bug fixes, and there were no more than half of a dozen of these fixes.  The real heroes of this update were the helpers with whom I work: they supplied lots of content for multiple projects under development, and their content is, in a word, great.  I am grateful that they were able to remain productive in my absence.

A lot of thanks is owed to these silent assistants.  Their efforts are just as valued as those of the GMs.

16 September 2010

Dirty Dishes

I was AFK all day today, and therefore was unable to touch any of my CL projects.  My RL project is drawing to its conclusion, and my untouched CL projects are on my mind much like a growing pile of unwashed dishes stacked within a small sink.  They need to get done, and I want to do them sooner rather than later.

And I don't want "soon" to be the Clan Lord kind of "soon!"

15 September 2010

WTB: Gold Pocket Watch

Today was one of those days.  You know the kind: the leave-home-early-arrive-home-late kind of days.  Today was one of those days where I simply ran out of time.

I have jokingly suggested that I should clone myself, but I think that a more practical solution to finding time is to get a time-stopping pocket watch.

Craig's List needs a better selection of affordable magic watches.

14 September 2010

The Teardown

I spent this evening reorganizing, redesigning, and basically rewriting the Helper Assistant NPC script.

As previously stated, the development of this script was unplanned.  It started as a couple of notes which morphed into a stream-of-conscious script, and now that I have reread it I see plainly that the design of the script was improvised.  For some inexplicable reason I created one small main routine and numerous supporting functions.  I guess that I had really enjoyed creating functions on the day that I wrote this script!  I have revised the script by eliminating these cluttered functions and incorporated a simplified version of them into the main body of the script.

Another problem that I see with the script is the scope of its purpose.  The script helps manage quest data, and initially I had tried to support multiple data fields for multiple quests.  I have revised the scope so that each NPC focuses on one data field of one quest.  This simplification was made primarily so that I may have the script ready for V669.  I can always expand upon this feature in the future.

The new version of the script is forming well.  It's a large effort to develop a script for a handful of people, but if those handful use it in turn to develop better quests for Clan Lord, then it is an effort well placed.

13 September 2010

Two Races, One Goal

This is a week where I enter two home stretches: both my CL and RL projects are due on Friday.  Two projects, independent of each other, hurtling forward and destined to collide!

That sounds like the premise of a disaster film.

12 September 2010

Crashing A Fancy Dinner Party

Thanks to all who participated in Stinkfist's fancy dinner party this afternoon.  I think there was a point in which we had over 70 people online, and that was very pleasant to see.

11 September 2010

Memory Shortage

I met with a helper today.  Our conversation went something like this:
Helper: Have you completed work on the Helper Assistant NPC?
Me: Ummm...
Helper: You had mentioned that you were developing a Helper Assistant NPC, and that NPC would be very helpful for my project.
Me: Errr...
Helper: The Helper Assistant NPC is vaporware, isn't it.
Me: Uhhh...
In truth, I had developed a Helper Assistant NPC, but my script had required redesign and simplification.  I placed it aside and promptly forgot about it.  And because this was a side-project, I never placed this script on my punch list.  Now that I have been reminded of it, I am definitely putting it on my "to do" list, and because there is a need for this script, I am placing it high on my priority list.

I can't believe that I forgot about this project.  I think that my brain needs a memory upgrade.

10 September 2010

Perverse Incentives

This is my new favorite phrase: perverse incentives!

I never knew that this concept had a label, but now that I know it, I simply love it.  This falls under the umbrella of unintended consequences, another concept which I bear in mind while designing quests.  As I had mentioned in a previous entry, I tend to be cynical in my review of designs and look for ways which quests and items may be exploited.  Now these exploits have a name.  Perverse incentives!

One quest that I had really wanted to do was a variation of the "escort the NPC from point X to point Y."  The variation that I had in mind was that the path taken would be laced with ambush points, and customized monsters would attempt to attack the defenseless NPC.  Players would need to fight the monsters to protect the NPC.  If the NPC died, then the quest ended in failure.

My idea was that this quest would be difficult, and this difficulty would be reflected within the rewards.  While drafting the quest, I started to think "well, what's the incentive to complete the quest compared to the incentive to deliberately fail the quest?"  If the ambushing monsters gave particularly good experience, then it could be conceivable that a group of five players could escort the NPC through all but the last ambush points – vanquishing monsters along the way – and finally allowing the NPC die so that the quest may be repeated.  And repeated.  And repeated.

Perverse incentives.

One day I'll get this quest working without the perversions.

09 September 2010

5/7 Efficiency

This evening started well enough.  It was my intention to spend tonight outlining the design for my Next Big Quest.  I had been thinking about it all day and had some ideas that I wished to develop.  Tonight was also the opening official game of the NFL season (American football).  Instead spending my evening yelling at my computer (something that I frequently do while scripting), I instead spent the evening yelling at my television.

I worry that my Clan Lord productivity is going to suffer on Thursdays and Sundays.

08 September 2010

Mark Your Calendars

I have returned to my current RL project which shall be commanding my time for the next week and a half.  I want to get ahead on my RL responsibilities so that I may make time for some upcoming CL activities:
  • Operation Fancy Dinner Party, scheduled for the 12th
  • Trip to Trillbane, scheduled for the 19th 
Both events sound like a lot of fun and I want to attend them, providing that I get my RL chores done.

07 September 2010

Random Inspiration

Have you ever experienced the sensation of an idea passing by you?  Have you ever been deep in thought on a subject, and you have a sudden, random flash of insight on something absolutely unrelated to the topic on which you focus – and the idea is gone just as quickly as it came?

I experienced this today.  I was thinking of something totally unrelated to Clan Lord when I suddenly had an idea for a Clan Lord quest.  The experience was rather surreal, like starting awake from a deep sleep and losing the memory of a dream.  As the idea faded from my mind, I went to my computer and hastily typed the idea.  Later this evening I refined this idea and have started drafting outlines for the supporting scripts.

I have been working on a large area for a while now, and although the project has been creeping along slowly, the overall project has been missing a cool central quest.  Today I found that central quest – in a rather sudden, random sort of way – and I am really excited about the idea.

I am very inspired and motivated right now, and that's all that I'll say.

06 September 2010

Weather Report

Instead of taking the day off and relaxing like most Americans on this Labor Day, I spent today catching up on cataloging and resolving bug cases.  While I managed to organize all of the cases from V663, I noted that there are still outstanding cases from V660 that have yet been organized.  I still have a lot of work ahead of me.

One of the personal goals achieved today was organizing the bugs related to weather, which included comparing and closing duplicate reports.  The most popular weather-related bug report has been of the "it's raining indoors" variety.  For those who are curious, here is the list of the unique areas that we have so far:
  • The small safe caves in Sasquatch Valley
  • The lower level of The Meshra Cave
  • Both PF trees in The South Forest
  • Elendil Fa'ril's tree in The Meadow
  • The small cave in the marshy section of The Wetlands (this one is debatable; this small area could be a gorge bottom instead of a cave)
  • Arial's Hut near The Northern Plain
  • The tree in the Old Cemetry
  • Ehmboff's hut in The Estuary
  • The small hut in wooded section of The Wetlands
  • The tunnel near the Myrm Highlands
  • The tunnel in The Spirit Wood
  • The safe cave in The Northwest Forest
  • Geisela's hut near Kitty Beach
  • The tunnel in The Northern Plain leading to the chamelopod area 
Thanks to everyone who has taken the time to file a weather report.  It is much appreciated.

05 September 2010


This evening involved cheap, silly fun – but fun nonetheless!

04 September 2010

The Potion Of Disguise

While holding a fairgrounds chat prior to the update, I entertained myself by throwing disguise potions at several of the attendees.  This item has been around for a while – it was created circa V321 – and I admit that I have never seen disguise potions available in game (I should also mention that I never saw oak bashers available in game, so your experiences may differ from mine).  I had wondered as to why this item has been unavailable for so long.

Allow me to begin by stating that there's more to designing an item than "what can the item do?"  A designer should think ahead on how the item will impact the game.  Personally, when designing an item, I do not think "what cool things will this item do," but instead I tend to take the cynical view of "what can go wrong" and "how will this item be exploited?"

Having said that: the potion of disguise is a frivolous toy.  The technology that powers this potion is similar to a butterfly's kiss.  The change of appearance is temporary and cosmetic; it does not actually change the race of the player.  One may not quaff a potion of disguise and then enter a tree on KI which one would normally not have access.

If the potion is harmless, then why is it unavailable?

It may be that the potion is simply confusing.  If you see a character with a human icon and their /INFO reads that they are a thoom, then that is confusing.  It may have been decided that such a situation conflicted with the expectations of the /INFO command, and therefore the potion of disguise brought more trouble than fun to the game.

Another reason why this item may not have made its way into the game is because, like a bottle of paint, one player may use the potion upon another (unwilling) player.  We've all grown accustomed to our personal character's appearance, and I can understand how some players may not appreciate having a change forced upon them.  A player who wishes to avoid a butterfly kiss may move away from the butterfly, but that is harder to do with a thrown potion of disguise.

In truth, I do not know the reasons why the potion of disguise was never made publicly available.  But as a designer, I have some ideas.

03 September 2010


As a follow-up to my discussion of games within games, I wanted to mention one of my favorite web games: RSVP.

The premise is that you are hosting a dinner party and you, being a good host, must keep everyone happy.  This is achieved by seating matching guests next to each other.

This game has everything that makes a game enjoyable: simple premise, very simple rules, even simpler game play, and a lot of planning and thinking.  The retro look and jazzy lounge music are all bonuses.  And there is no time limit!  This is, in my opinion, a well-designed game.

You may play RSVP online here.

02 September 2010

Bugday Is Now!

You may have heard from another player, or experienced for yourself, that a health-poison bug was introduced into V666 which impacts the ranger's shape-changing ability.

The problem originates from several of the support scripts which manage temporary changes applied to a player's stats.  For example, when a ranger morphs into a vermine, all of the ranger's stats – atkus, detha, regia – temporarily change for the duration of that morph.  These support scripts oversee and manage those changes.

Up until now there had been handshaking between the numerous scripts – or perhaps a better description would be to say that there had been "silent nods of acknowledgment" – on how to manage changes to a player's histia stat.  This arrangement worked well enough for morphing rangers but less so for stonegirdling champions: champions using the stonegirdle continued to experience situations which would invoke health-poisoning.  We tried to correct this problem within the support scripts for V666.  It appears that the problem has instead been transfered from champions to rangers – so champions: you're welcome!

We're aware of the issue, and we are working on a swift solution.  On the bright side, this bug is certainly keeping in the spirit of V666: it is, without question, hellish.

01 September 2010

Welcome to V666.

While UpdateGM commenced the process of initiating the update, I stayed out of the way by chatting in the fairgrounds for a while.  Paramedic had some insight on the gerbil wrangling process:

Details about V666 may be read here. Have fun exploring!