28 November 2011

I have one new script and one modified script submitted to our file depository, and I am racing to finish two new scripts by this Friday (the GM's deadline for V732 deliverables). In addition to all of these scripts, I need to make some new art work happen, test some new items, add a couple of new monsters – and then I can think about implementing my languishing quest.

Sometimes I wish that I was Santa Claus Chicken, and that I could use my chicken-magic to grant everyone their wish. And deliver lots of goodies in one evening.

24 November 2011

It is Thanksgiving Day here in the States. As I work on some Bawkmas related projects, I am thankful that I can take an existing script – one that other GMs have worked upon to perfect – and gut it and h4x it and create a new purpose for it.

21 November 2011

I wrote a new support script for a small upcoming quest, and then – while it was on my mind – turned my attention to a quest that has been simmering on the back burner for some while. I launched my test server and tested the script over and over again, but the script was behaving unpredictably.

See (and this is where I get a little technical) we have some pretty cool filtering functions to support our scripts. We can place a filter on a door that would translate into "allow only fighters to pass through this door" (a handy thing to have on the Fighter's Guildhall to keep those nosy mystics away), and we can also have a fancier filter that would translate into "allow everyone except fighters to pass through this door." The former function is handled by the filtering function, while the latter is handled by the individual script calling the filtering function.

This means that not every script will support this exclusionary logic, and sho'nuff, the script which I was using for my quest did not support this style of filtering. It took me two hours of debugging to realize that.

19 November 2011

I came home late Friday night/Saturday morning (boy's night out, don'tchyaknow) and instead of going directly to bed like a good little yapper, I popped online for a moment just to see if anything was happening.

And something was happening!

Slarty was in the fairgrounds sitting very quietly. I suppose that alone is debatable if it qualifies as "something happening." But! what Slarty was doing was debugging his latest project: the Clanroid Informer! And in the name of quality assurance, we sent out some status alerts to test the new application:

16 November 2011

Without going into details, we had some, uh, "technical challenges" which had complicated matters. Fortunately we have some pretty smart folk which were able to troubleshoot problems faster than Trinity could slap-and-draw a six shooter.

One problem did come to light: one of my scripts-in-development went rogue and started flooding the server log with a lot error alerts. What confuses me the most is that I do not recall ever uploading that script to the live server! How embarrassing for me.

I am excited about this update. I think that it may prove to be a lot of fun, now that we were able to overcome the technical challenges.

14 November 2011

Now that I feel reasonably comfortable (and secure) with my upcoming silly quest, I have returned my attention to two larger projects that have been simmering on the back burner for some time (and by "some time" I really mean "several years").

One of the projects involves a moderately complicated structure, one that I had discussed in brief. I was contemplating on including instance dungeons, but after a little lot of thought, I believe that I have settled upon an approach which emulates the uniqueness of an instance while circumnavigating the complication of managing instances.

The other project is a rather massive undertaking – massive for me that is, as none of the puzzle technologies exist. All of the scripts to power this adventure need to be designed and implemented. The design of this project is still being revised as I try to find that magic balance between fun and complexity whist reducing the tedium common to repeatable quests.

Then there are all of those smaller projects – several small, silly side quests – that still await attention. I shall make an effort to squeeze those into updates as time provides, but my attention is now on the next big project.

13 November 2011

I compiled the revised quest script on my private test server. I mentally prepared myself for a lot of work: I was dreading the expected long list of errors and was pleasantly surprised to find one minor bug.

11 November 2011

It is a shame that this script was not included in my submission for V729 (which contains some proof-of-concept areas for a new adventure that my helper and I have been developing). I still have a little time this weekend to slide the revised script in under the radar, but I have other activities planned that may distract me for an extended period of time.

I am very pleased that I achieved the goal of rewriting my script, but I now need to run the new script through a test server and begin the debugging process. My prediction is that there shall be bugs. Lots of bugs.

09 November 2011

I have been coasting a bit with the rewriting of my quest script(s) – and by that I mean that I have been rewriting the script at a leisurely pace. Last night I noted that I had a calendar reminder: this is an update week and content for V729 is due this Friday.

I spent several hours today revising the script in earnest, rearranging sections of code that were infuriating me. I am pleased to report that I have made fine progress. I am not done, but I am close to being done – or at least close to done with the first rewrite, at which point I shall run the script on the test server and begin bug hunting.

I really want this quest in for V729, and I am going to try my best to make it happen. What I do not want to do is to rush the project into the live game and have it embarrass me. I figure that is less embarrassing to be late on delivering a project – and have it rock solid – than it is to deliver a project on time and have it overflowing with bugs.

08 November 2011

I saw a charming movie yesterday: a Japanese film entitled "Linda, Linda, Linda."

This is not a film for everyone, as it is in Japanese (with English subtitles), and it develops rather slowly. However, it is quite sweet and touching as it follows four high school girls struggling to prepare themselves for a rock concert performance.

07 November 2011

The past several days have been busy for me IRL, but I still make time each day for Clan Lord projects. In fact, I spent some time yesterday creating illustrated instructions for my newest helper, as I am (arguably unfairly) throwing him into a new, challenging project.

Under typical circumstances, a new helper would be assigned some easy-to-do introductory projects in an effort to acclimate the helper with design processes of Clan Lord. The learning curve varies from person to person, as does the attention span. After discussing the conceptual project mechanics with the helper, he understood right away what I was trying to achieve (which partially concerns me, because sometimes I don't understand what I am trying to achieve). I then gave him the unglamorous assignment of entering the data tables for the project – and there is a lot of data for this project. And this assignment is just for the test project – a smaller, trial run version of the real project.

While he's doing that, I can turn my attention to finishing the rewrite of my silly quest.

03 November 2011

My neighborhood is unpredictable on Halloween evening. Some years I receive a swarm of trick-or-treaters, and some years I receive none. My prediction this year was for a busy evening, and I went to my local wholesale warehouse club and purchased a pallet-o-candy.

By the evening's end I had a total of three groups of kids visit me: two large groups of children and one small group of teenagers. This leaves me with a pallet-o-candy – minus a handful of candy bars – just within arm's reach from my computer desk.

02 November 2011

I spent the past couple of days polishing the new silly quest, fine tuning the scripts for the quest NPC and chasing down a small speech bug (the NPC was not properly articulating which quest components she was referencing). As I read through my script I felt something that I had never felt before: I felt ashamed of my script. My script was just plain bad. Although it worked well enough, it was poorly designed and the layout was just awful. I completely Frankensteined the script together, and it was obvious.

To understand my displeasure is to understand some basic scripting logic: throughout a typical NPC quest script, comparisons are made:

if a player has the quest item{ then say some things and take the quest item and give a reward}otherwise{ tell the player that they do not possess the quest item}end

The problem with this format is that it's too (ahem) positive. The script begins by making a comparison for a true condition, and if the comparison is true, then I do some positive stuff – otherwise the comparison is false, and I do the negative stuff. This style becomes harder to read when there are multiple positive comparisons:

if the player is alive
{
if the player has the quest item { if the player's gender is male { then say "Attaboy!" } otherwise the player's gender is female { then say "Attagal!" } then take the quest item give the reward } otherwise the player does not have the quest item {tell the player that they do not possess the quest item }}otherwise the player is dead{ look sympathetically at the player}end

While there's nothing wrong with the logic of this code (at least I hope so; I have not debugged it!), I find it rather difficult to read. What I should have done is to design the script to make negative comparisons, and if the negative comparison is true, then do not make subsequent comparisons:

if the player is not alive
{ look sympathetically at the playerend
}

if the player does not have the quest item
{
tell the player that they do not possess the quest itemend}

if the player is not a female{ then say "Attaboy!"}otherwise{ say "Attagal!"}take the quest itemgive the rewardend

The rewrite is easier to read in that it filters out any of the negative possibilities first; by first eliminating any "negative" conditions, then whatever conditions remains must be "positive". If the player is not alive, then it does not matter if the player has the quest item: stop here and check no further. If the player does not have the quest item, then the player's gender does not matter: stop here and check no further.

Who would have thought that negative thinking would have been so positive?