The Red Barn Blues

An exploration of the process and pedagogy behind establishing a non-linear narrative inside Second Life with the view to create a learning space rich in cross-curricular opportunities.

...there's been a murder in the Red Barn

...there's been a murder in the Red Barn
The "Red Barn" was a thatched timber out-building with a section of it's roof clad in red tiles.

Saturday, July 28, 2007

...dancing with myself

A strange but true video of me and my Bot dancing around obeying commands IM'd to it by me. This whole process is further explained in an IWHO as I found this blogging tool too frustrating to publish a long post in and too confusing to actually embed the video in.
Say hi to your mum for me.
...tap tap tap .... is this thing on?

Saturday, July 21, 2007

Receding Horizons

Rinse and Repeat - such a lovely mantra.
In-World, "Reba the Loon" is represented by her Crystal Ball, seen in loving SecondLife Machinima above.

Reba the Romany Elder [well, in truth Reba the Loon is a character name I borrowed from the Tom Waits song "Murder in the Red Barn" because I loved the imagery of an old chrone assumed mad only because of apprearance and manner of speech - how lovely SecondLife imitates FirstLife imitates Art doing an impression of something entirely different] now exists in MUD and MOO, she is a "thing" in SecondLife.
Now I move my attention to the new possibility of harnessing an out of world AIML bot to define the chat engine of a remote-controlled avatar.

Was asked if it is something that a "mere mortal" could attempt - I dunno. Best way to find out is to let this mere mortal [me] give it a whirl.

Interestingly, how often do we see label things as beyond what a "mere mortal" can do only because they are [at that time] outside their common experience. I can remember when I thought web page creation must be hard [before wysiwyg editors and all manner of smart tools] until I invested a little of my own time with someone who knew how to do it [shelly, you will _never_ appreciate the epiphany that that weekend workshop in 1992 caused], only to discover that it is manageably easy and for the most part understandable - I now merrily make web pages every bit as crap as professionals, but would not have, at the time i was about to acquire the skills, thought it possible. The "horizon" in webbing for me now is CSS [yes, I know you are prolly already proficient, but i am a complete n00b using them] and dynamic content and web2.0 and all that flashytwirly shizz.

Receding horizons I think it is called in the pooter industry ... that phenomenon that things are perceived as hard only until they are achieved and a new "vanishing point" emerges.

*tap tap tap* is this thing on? Is there anybody out there?

Friday, July 20, 2007

5 out of 12 voices in my head .....

Now it starts to get interesting...

pictured above is a pair of in-world SecondLife avatars ... right? Wrong!

Ignore the Dalek [bloody badly behaved thing it is - programmed to look for other in-world people, get close to them and offer to exterminate them ... locked in the Hay Loft until I can get it to behave more politely].

As it turns out, there are TWO INSTANCES of me [yes, dear reader, concrete virtual evidence of my duality] in the above picture - one being remotely controlled by a proggie OUT OF WORLD. The pale alien dude is my regular avatar [it was late, I was tired and if the glove fits, wear it I say] and the one I am signed in using, Wonko Whizenhunt. The fresh meat [beefcake in jeans and a tshirt, thongs and a twinkle in his eye] beside me is a clone [clearly not as ravaged by time, space nor chocolate] named Doppelganger Writer. For the uneducated reader, a doppleganger is supposed to exist for everyone [that is an exact lookalike] - so I thought go with the name Doppleganger but could not find a surname from the list of ones available that did not suck. Now what makes this a fairly significant EPIPHANY is that I am controlling Doppy from a local proggie on my pooter, not the SecondLife Client.

But wait, there's more.

Investigating the SecondLife account system, you are encouraged to have many accounts [by specifically not saying DO NOT DO IT, they are encouraging me, right?] - each their own avatar, but up until now I always thought you could only have one on at a time - silly me. Each avatar has their own customizable appearance [some can be boys, some girls, some ... blue things from planet spod], I can dress and feature them, attach them to pose-balls, give them animations, money, objects and other shizz ... and then I can control them externally. It's only bandwidth, right? Each being a splinter of my own persona maybe - there are so many voices in my head that are just not me.

But wait, there's more.

Investigating the remote control box, I discovered a tab mentioning a Pandora Bot. Due to the wonders of the World Wide Wait, I visited http://www.pandorabots.com and signed up for a suite of free AIML [Artificial Intelligence Markup Language] bots [you want lots? for free? fully customizable? certainly sir] that I can customize the conversation engines for via a GUI that works, add keywords and responses, change the vocab, altar the grammar and speech patterns, is idiot proof [well, I did not bugger it up at least] and then connect, via a botId in the remote bot controller to that AIML Bot. And then I noticed that the SAME remote controller can be used to control MULTIPLE bots in-world simultaneously - this is seriously hoopy.

Then i got thinking, and decided to test if my remote-controlled avatar could be in-world without me being there at all. Surprise, surprise, surprise [said with full Gomer Pyle accent ... sorry kids of you are too young to know wtf that means] my remote-control bot entered world, and I could have a remote control conversation with my talky cow [an object with my chatterscript, by the barn ... a cow ... oh, do keep up!].

So what? Well ...... a solution to my lack of bots problem is to embed actual AVATARS in the places where people-shaped things need to be, load them with my vocab, remote-control them and hey presto, an interactive space held together with strings [wow, that works on SO MANY LEVELS - strings are sent, strings are analysed and pre-determined response strings are delivered from an externally held AIML database to an in-world avatar-not-avatar being held up by immaginary http strings - yes, this remote thing works thru PORT 80, so I can be ANYWHERE and keep my bots alive] like a puppet show - very exciting prospect.

Downside? A SINGLE registered remote control avatar costs L$2000 [about $7 real dollars, Lindy says, thanks for the cash injection] and my scenario needs about 8 ... grant hunting I will go I guess. The remote control facility was problematic to set up [documentation was non-existent, in-world instructions were inadwequate and partially unavailable - I await gaining access to the command syntax notecard that, although I bought, registered and paid for *cha-ching, thank you come again* I am unable to open because I have insufficient permissions - wtf???] Out of world I can see the bot-controlled avatars inventory, can turn them certain directions, can send chat and receive same, but have yet to master much else - one hopes the degree of control evolves - I would love to be able to trigger gestures, animations and manage inventory remotely - that would be hoopy, to be able to automate and script same would be doubly hoopy.

Wait a dog-gone moment ... if i remotely log on Doppy, and get him an inworld job pole dancing or something that pays an HOURLY rate in linden dollars, he could make me independently wealthy ... is this a scam or a legit part time job [anyone know the avatar name of a good inworld lawyer] ? Lol - one of me can be panicking at the disco, another can be manning an information booth at a Computer Education Professional development booth, another can be chatting to that person who added themselves to me friends list but, you know, is not really my friend [ /smile /nod ] and another can be trolling the seedy districts for some avatar on avatar pose-ball action for a fee [eek, did I just type that out loud?].

The plot thickens ... and that is a good thing. *tap tap tap* ... is this thing on? Is there anybody out there?

Saturday, July 14, 2007

Reba the Loon

Enter mad crystal-ball-gazing Gypsy [well, technically they called themselves "Romany", the general populace termed them gypsies] named Reba:
I have begun brainstorming the peripheral characters first, mainly because they are one source of background information vital in discovering just what has happened, to whom and why.

Reba was fun to write - a little mad - no, not really, just old and a bit mysterious, but she is inside the wagon - a treasured [if slightly feared] Romany elder.

I wanted to avoid using an organisation chart [the M$ tool drove me to insanity and drink last time - agreed, for me not a very long journey] so I found something free on the web called FreeMind - a java-based XML-producing mind-mapping tool, and it seems to work hoopily. Discovered a raft of similar tools which got me thinking that I shoulda been using something like this a long time ago - I think back to the tortured mess I was when building quest monster talk files in MUD, and how inadequate a linear tool [like a wordprocessor] is at that task.


Reba is there for richness, and to connect some dots I am placing elsewhere in this space. Trying to include cultural identity to a second population group here, so the devil is in the details. Some nice cultural references here, including arranged marriages, fierce and loyal friends, human foibles and other niceties.

The process is as before - make the MUD char, give it this talk file; make a MOO bot, teach it these keywords [and prolly some randoms and question response fill-ins, because they are a little richer]; make a "thing" in secondLife and give it this talky script;

Next step: I must get around to investigating the markup to encapsulate this story tree in an AI file for my newly installed AliceBot [thanks Alicebot.org for providing me with an extensible, multi-personality AI-driven conversation engine that I think I can mash-up to connect to something in-world]. New frontier - my first SecondLife in-out world mashup - Azwaldo will need to be my guide as noob is my flavour.

Will keep you posted ... tap, tap, tap ... is this thing on? Is there anybody out there?

Monday, June 25, 2007

"It's Alive!!!" [maniacal laughter amidst thunderstorm]

So it comes time to add a little artificial life to the scenarios, and what better to start with that a corpse. Quickly Igor, fetch the electrodes .... and now we need a BRAIN, fresh brain... herein lies the problem. Each of the environments [MUD, MOO and SecondLife] use completely different methods, but in-keeping with a narrative, I thought it best to plan out what was in the poor decomposed lady's brain. So, I planned a KEY WORD TREE:
Now the way of a KEY WORD TREE is somehow you get an initial prompt [for Ms Maria Marten, her initial phrase is: "What happened? Where am i? Is that you Will?" as she is dead, right ... still with me ... this is the talk file of a bewildered ghost coming to terms with the fact that she is dead] and in that prompt is a number of words, some of which are KEY words that lead to other phrases, they themselves containing other key words and so on. So it is a way of encapsulating a divergent conversation in a non-linear way - akin I guess to the concept of a hyperlink [not that that concept will ever catch on].

Once the talk was brainstormed [have I mentioned how much I HATE MSWord - used an organisation chart, and swore at it all morning while it did almost but not entirely exactly opposite to what I wanted - you get what you payed for] I then set about creating life ... quick Igor, throw the switch and raise the platform...

MUD first: In overview, I have to create a monster [settle Igor], customise it's names, flag it as a woman, undead, a talker, give it a description and an initial talk string, some RPG char stats and then save it with a numeric index [that I prepared earlier]. I then teleported to the room the monster will live in [a good old shallow grave - see previous posting], popped a copy of that indexed monster, permed it into the room, saved the room and Bob's your Aunty we have a talking monster ... not quite. Although the monster is flagged as a talker, I have to deposit a talk file into a special folder on the server that contains the keyword and responses separated by hard returns [but that is UNIX, right, you know this ... lol, my FAVOURITE line from the Jurassic Park movie where a shiny teen sits at a pooter, turns it on with aggro velociraptors opening the doors beside her and up pops a bewildering graphical mess and she says ...."this is UNIX, I know this" - laugh, I tell you], and then we have a live talker - "It's ALIVE muhahahaha!". The script I used to do this is here: MUD Maria Marten Script

Now to MOO: In overview, I create an instance of a generic bot, named "Ghost of Maria Marten", travel to the room she will live in [again shallow grave], drop her there [when you make something other than a room in MOO, it is automatically in your inventory], then LOCK it into the room [this saves some well meaning thieving mongrel coming in and picking it up and carting it away with them ... yes, it happens], then remove the already defined vocabulary [a generic bot is a turing conversation engine, with keywords, random responses and question responses and grammar patters able to be defined via command line]. then I add each of the keywords, followed by their responses [and I realise that the responses are not as rich as I normally make a MOObot respond, usually I apply 2 or 3 responses for each keyword - might revisit that - that way two people can converse with the bot and get different responses each time], then I ACTIVATE the bot and ... "It's ALIVE muhahahaha!" - this was all done at command line in the MOO because I can, and because some of it has to be commands, some of the process can be mouse-driven however. The script I used to achieve all this is here: MOO Maria Marten Script

And finally to SecondLife: In overview, I find a comfy chair, beside a pool and entertaining show to watch while I drag my camera to where I want the character to be [actually walking or flying there is just so yesterday], create an object, shape and texture it to look like a human - actually, no, i lie - I made a cube primi and will worry about something that looks vaguely human later. Then I r-click, edit, contents and add a SCRIPT object to this primi containing a variant of a script originally written for me by Azwaldo [see previous postings - love your work mate] with all the appropriate keywords and keyword decisions with response actions edited syntactically into the object, select a channel for that critter to chatter on, touch the object and - "I'ts ALIVE muhahahahaha" - all done with point and click except the scripty thing which is textual. The script I embedded in the Maria Marten object is here: SecondLife Maria Marten Script

And what did I learn from this - apart from "it's a hell of a way to EAT a rainy day and some bandwidth" - remarkably, the character creation process in all three environments is very similar conceptually. Sure the syntax and convention differs but starting with a plan, I was actually surprised how it was possible to take the MUD version and using good old search-and-replace wrap that stuff up in the code and commands for each of the three environments.

Comparing and contrasting the artificial lifeforms: The SecondLife critter is least lifelike - I have not got any animations yet, it does not yet even vaguely resemble a person but is a functional container for dialogue-based content. The MOO bot is cleverest in it's conversational construction - when I add randoms and question responses also you will be able to talk to it as you would another player in MOO, and it will get clever in sentence construction remembering what was said previously - when I add the animated graphics for icon and multi-media components of the bot it should be quite satisfying to deal with. The MUD talker is by far the most configurable, and when I talk to her, my mind seems to fill in the gaps - I find myself empathising with her plight and I know that is odd, as she is a bunch of words in an arcane interface and not even any colour ... but that is my brain, not yours. This whole theory of "multiple intelligences" suggests we all have preferred interaction and learning styles, so I should not be freaked out that a bunch of words speak to me at my level, just as you should not feel guilty for preferring to click on something ...

What is next - rinse and repeat, and then some artefacts to add richness in all three environments. Nice to see some progress, say hi to your mum for me. "Igor, we now have enough LIFE for a tennis match - break out the raquets and iced lemonade - tennis anyone?"

Saturday, June 23, 2007

Textualization

In methodologising a space, I find that once I have a clear picture of it my head, I am able to describe it, right down to minute details, which has always sorta wigged me out. I am not sure where this comes from, certainly I am a text-based RPG fan, but it is a form of writing I seem to have some talent for. So, after a hiatus where life, assessment and marking got in the way, my brain was free enough to begin to flesh out the details of the actual space that "The Red Barn Mystery" will take place.

Now call me old fashion, but I started at MUD - and, having already built the space, imagined what it ouwl dbe like to be there. Decided arbritrarly that standing at the front of the barn and looking towards it was NORTH, then SWE is fixed - useful when describing surrounding details. I then fired up my wordprocessor [let's face it, writing tools are writing tools, and my spolling is not whert it used to be, then again, it probably never was] but had to dumb it down - font to COURIERNEW, 8 point, maxxed out the margins, set up a ruler:

*app 1234567890123456789012345678901234567890123456789012345678901234567890123456

...and began the process of textually describing the rooms, one by one. Now my MUD convention is to include a juicy descriptive paragraph [maybe 5 lines, 80chars long] on what it is like to be there, what it looks like, what smells and sounds are detectable, sometimes an attempted interpretation of what is being seen, and sometimes allusions to the available ways you can travel from this point. The descriptions I wrote [ linked here, for your convenience ] were very satisfying and in may cases exceed 10 lines - if reasoned that the textualisations provide vital clues for the user to gain an impression of their surroundings - therefore teh richer I made the text, the more vivid the mental imagery I would create. Initially I thought this decision was fraught with writers block and waffle, but on reading them back they are rich and representative of what I wanted to say - certainly what I currently imagine. Knowing back-story can be an empowering thing for a writer - the minutae that will be used later make good writing fodder, well, that is my experience at least. As I composed a room description, I tweaked it to fit in 80 char chunks [a pain, but that is how they are delivered in-game] and then composed append statements to get them to stick to my current room:


*app You stand in the main body of a cavernous timber barn, old straw crunching
*app under your feet. A dim oil lantern flickers overhead casting odd shadows
*app that seem to dance amongst the hand-hewn timbers of the roof space. The barn
*app runs roughly west-east, with a stock enclosure to the east, fresh manure
*app gently steaming in the cool damp air. Saddle and harness gear is visible to
*app the northwest and the straw is swept clear of a timber trapdoor set into the
*app floor, a large rusted iron ring providing its handle. An unsophisticated
*app pane glass window is set into the east wall, it's glass frosted with grime
*app and age, allowing a shaft of eerie light in from outside, visible only
*app because of the swirls of dust kicked up as you walk around. Soft noises
*app from penned livestock makes you feel comfortable and safe.

..then pasted the block into the room, *saving my progress as I went. The resultant environment already has the feel of a dreary farmhouse and surrounds, and that interests me, because the text produces clear pictures in my head.
Experiencing the environment through a client [pictured is SimpleMU] the space is tangible and delicious.

Given that I now had textual descriptions of the world I am building, it made sense to add these also to the MOO version of the scenario. Fortunately, MOO and MUD are similar enough that, with a little minor tweaking [good old search and replace], I was able to use command-line to quickly add the same textual descriptions to the same rooms:

@set here.description to "You stand in the main body of a cavernous timber barn, old straw crunching under your feet. A dim oil lantern flickers overhead casting odd shadows that seem to dance amongst the hand-hewn timbers of the roof space. The barn runs roughly west-east, with a stock enclosure to the east, fresh manure gently steaming in the cool damp air. Saddle and harness gear is visible to the northwest and the straw is swept clear of a timber trapdoor set into the floor, a large rusted iron ring providing its handle. An unsophisticated pane glass window is set into the east wall, it's glass frosted with grime and age, allowing a shaft of eerie light in from outside, visible only because of the swirls of dust kicked up as you walk around. Soft noises from penned livestock makes you feel comfortable and safe."

I had already been in SecondLife and done a virtual photoshoot to capture images or views of each of the places in MOO/MUD scenarios, so the pictures and textualisations marry to provide a multi-modal representation of teh space [like how I slipped in an "English" term? subtle hey, will spare you the priviledging of the discourse as my dominance is fading :P].
After a ripper post-marking and reporting afternoon discussion over a cup of tea with Dearest Mrs Noisy [a co-consirator and fellow loony], we brainstormed plot points and discovered that there were conceivably actually four [4] viable suspects in this drama - all of them will be represented and clues leading to them will also be embedded - what was clear to me was that the trial process actually applied in 1826 began with teh conclusion and worked backwards - now correct me if I am wrong that that is arse-about. My sceario will require players [dang, what do i call participants?] to collect the evidence before jumping to an informed conclusion. We also discovered possibilities of introducing another cultural group - The Romany [as english "Gypsies" preferred to be called] is a rich and diverse culture, with well organised social structure and, surprising, strict moral code ... can we use that, yes we can.

So what is next? Making the monsters [oops, automated characters] and objects [or artifacts] they add richness and interactivity. I took Mrs Noisy for a little wander in the MUD, and show her how monsters can talk, act independently, trade interactively, follow a script of pre-determined actions, be richly descriptive [and also kill you if you are a noob] so that for MUD at least offers some fascinating richness opportunities also. MOO bots will use the same conversation engines I build for MUD, and SecondLife will use modified script versions of the same conversation engines as well - this co-development thing is interesting as many elements can be utilised across platforms [allbeit obeying local syntax and within local limitations].

Had to laugh, returned to my SecondLife scenario to find a visitor had parked a helicopter and a hover board on ym hillock, and I could not move them as I am not the owner of the land. In a related issue, I find I cannot place vegetation where I want it, again because I do not own the land. I will, when my bandwidth is less restricted, create some flexi-primis and map some tree foliage to their bumpmaps so they actually look like trees - unlike the hilarious lollipop-like things I currently have as placemarkers for major trees. need some hedges and dry-stone walls, will experiment on aesthetics when the mechanics are more complete.

I will keep you [my adoring readers] posted..... tap tap tap ... is this thing on?

Friday, May 4, 2007

Digging in the Dirt

Ok, so finally back on task after a hiatus where other things just got in the way - life is like that, be it 1L, 2L or whatever.

So I begin to sculpt the MUD version of the Red Barn Mystery.

I attach the commands I used [all 10 or so minutes worth of it] - here - On closer examination this does not look even remotely like an environment at all, but trust me, MUD building and the actual environment being made are a few steps apart. I would _love_ to say that the building process in MUD is intuitive and that there are mature, GUI tools for this, but the reality is it is an eclectic command-line process, issuing commands that make sense when you have used them a few times. The [*add r 9943] command, for example makes a blank unnamed room indexed 9943; the [*name The Farm Yard] names the current room The Farmyard; the [*set x "barn doors" 9943] creates an exit called barn doors from the current room to indexed room 9943; [*save] commits changes to the database; and so on.

My MUD-building process [my own habit, unsure what others do] is as follows:
  • map the area [see previous posting]
  • number all the rooms, starting from the next available unused room index number [this depends on what already exists in the MUD - I keep records of what index numbers I have used for what areas]
  • create all the rooms [I use an exel file to make these commands : *add 9926; then copy/drag down and excel iterates the number for me - copy-paste in one hit to the command line and presto all the rooms are made, albeit unnamed and disconnected from everything.
  • teleport to the starting room [*t 9945], then dig an exit from there out to an existing room [*set x out 10002] then commit [*save], go thru the newly created door and build a reciprocal exit back in, commit then re-enter the new room.
  • I name the room [*name The Alterniverse"] - interestingly, I name all the rooms before describing them - spatially, it seems to help me if I have names - but also sometimes re-work the rooms as the area character emerges.
  • Dig an exit to the next room in the sequence [*set x "red barn mystery" 9926] and commit [*save], go through the newly-created door to ensure I have not pointed it to the wrong place, then rinse and repeat to build the room skeleton for the area.
  • I then visit all the doors that need special treatment [to be closed, locked or hidden for instance] - I close some doors [*set xf "barn doors" 4] then [*set xf "barn doors" 6] to make that door closed and closeable; [*set xf trapdoor 1] to make it hidden and so on, remembering to commit [*save] as I go - I have set up function keys to issue the most common commands to save a little time, and having a scriptable MUx Client program also greatly speeds this process up [I use SimpleMU and ZMUD as clients of choice, having bought licenses to both to remove the "nag screens" of the shareware]
  • Next I fire up a Wordprocessor [like Word] and set the page characteristics to max out margins, page font to 10pt Courier New [remembering that the text-interface uses 80 character wide lines as it's standard, with each line being separated by the next by a HARD RETURN not wrapped. I set up a 76 character wide ruler:
    *app 1234567890123456789012345678901234567890123456789012345678901234567890123456
  • For each room, I write a decent paragraph [4-6 rich sentences] which equates to at least 5 lines as the room description - written in third-person "You see in the distance a dilapidated farm out-building with a thickly thatched roof, yet notice the front portico is clad with vivid red shingles on it's angular roof. This section of the building you surmise has been added on later as it looks less weather beaten and the construction style is ..." BUT it has to be broken down into 76 ish character chunks, each preceded with the command *app to append the text onto that which is already there - a lot like the old line editors [like Vi on unix, or am I showing my age?]. Use Word ONLY because my spolling is at times attrocious.
  • ... and that is what I am up to at the moment - I find the process of textually describing an area _greatly_ clarifies the scenario and while, yes, I have a good idea of what is going on here, I need to words to actually "see" the space. The "devil" is in the details.

2do: describe all the rooms, create the objects, make the NPCs, program them to behave like people ... fun fun fun.

Interestingly and uncharacteristically for me, I have OPENED this partially done area to my MUD players - it might be instructive for them to be able to see what a developing area looks like while it is being made - might stop them winging because I have not finished an area they want to explore - doubt it tho.


... if you could see what I can imagine