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
...inside the barn
Saturday, July 28, 2007
...dancing with myself
Saturday, July 21, 2007
Receding Horizons
In-World, "Reba the Loon" is represented by her Crystal Ball, seen in loving SecondLife Machinima above.
Friday, July 20, 2007
5 out of 12 voices in my head .....
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
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]
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
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.
Friday, May 4, 2007
Digging in the Dirt
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.