So, on to the latest project in Second Life. It’s all a bit weird to be honest, like I’m in some kind of Trade Skill Valhalla, being justly rewarded for a lifetime of hard work clicking ‘Combine’ over and over, but I’m still as fascinated by the potential of the system provided as ever, so I continue.

I’m vaguely aware that somewhere on this shifting plain of script-based tinkering, is an insubstantial line marked ‘Game Dev’, and I’m worried that I’ll end up stumbling over it without realising at this rate. The idea itself doesn’t appeal very much, however; the best way to destroy your hobbies, fascinations and obsessions, is to get a job doing them, I’ve always thought. This way is great, because if I get bored of a thing, I can just walk away and try something different, and who knows, maybe even sell a few bits and pieces anyway.

On to the project then. I joked about it a few posts back, but indeed, the aim here is to recreate a passable replica of the SWG-Classic Musician profession. A little background then.

One of the original profession available in Star Wars: Galaxies, was Musician, although the Entertainer starter profession also got to do some of this. Now being able to create real music is an art, and a gift, and in general, only available to those of us who dedicate a significant amount of time and energy to it, and yet everyone likes listening to it, in some form or another, and many of us often think; ‘I wish I could play like that’.

The system implemented in SWG was a stroke of technical genius, and allowed just about anyone to do exactly that, albeit to a limited degree. Even more remarkable was the designed in ability for up to 20 tone-deaf gaming nerds to group up and actually play as a band, and still have it sound pretty good.

The way it works is this: for each of the available songs in the game, each different instrument has a set of riffs composed for it, nine in total; a ‘backing’ riff, and eight ‘flourishes’. Incredible talent on the part of the game’s composers and sound engineers ensured that all these different sets of nine riffs were both in tune with each other, using similar chord sequences and the like, and all in time with each other. Once a player starts playing, an intro riff will go, and then the ‘backing’ riffs will play, and then repeat continuously. A player than use a music ‘special’ to queue up one of the flourishes. This is not just played immediately, but put on hold until the current riff set, or bar, has finished. Then for the following bar, that specific player will play the flourish instead of his normal backing riff. More can be queued like this, or they can drop back to the backing riff. The different instruments occupied different areas of the score for a given song – oboes, trumpets, drums and so on, and the entire thing kept time perfectly, being driven from a server ‘metronome’ somehow.

It was surprisingly fun actually, and I used to spend hours just standing there hitting flourish hotkeys in a cantina, along with a group of others, most of whom had maxed the skills and had no ‘need’ to be there, save for sheer entertainment. The system has its roots in a similar, if somewhat less elaborate system implemented in Asheron’s Call 2. That had only ten flourishes for one song, but operated in a similar manner, and part of my enjoyment with that game was finding new and exotic instruments as loot, and hanging about the newbie forge playing with whoever else couldn’t be bother to go level. (I think WoW missed a trick but having nothing similar in their game..would make the usual AH loitering more fun for all concerned.)

Of course the granddaddy of all this, is the wonderfully innovative ‘iMuse’ system, devised and employed by Lucasarts for many of their single-player games, starting around Loom and The Secret of Monkey Island, and continuing to this day. While not directly ‘playable’ by the player, music in these games was not just a background MIDI file looping, but extremely context sensitive to the actions and events going on in the game. The X-Wing series of games demonstrate this wonderfully, with the music continually shifting up and down tempo and frenzy in response to proximity of enemy ships, capital ships and so on, and really went a considerable way to making it a very ‘Star Warsey’ experience. Most single-player games do this kind of thing as a matter of course nowadays.

Personally, I always thought the SWG Musician and Dancer professions, while innovative, really ought to have just been a ‘free-to-all’ social emote type of thing, as they had a tremendous function in the downtime attention trough parts of the gameplay experience. More on this here, from the horse’s mouth; Raph Koster's Blog - Forcing Interaction. The article contains some telling self-analysis on what he thinks went a bit wrong with the SWG Cantina system as first implemented by his own team, but also insight into the attention cycles of ordinary MMO Gamers. See? It is bad to be fighting ALL THE TIME!

Anyway – to my own half arsed implementation of it all. The plan:

  • Find Sounds: I am not a musical person, so would not at all be surprised if my version sounds like a total cacophony, but for me, the point is to create a working technical framework into which decent and correctly composed music could theoretically be dropped. A pretty interesting resource has come to light that will help me get something listenable out though: The Freesound Project Even this might not be enough however. For the system as a whole to work, each sound will need to be exactly the same length, and ideally, be being played at the same bpm. Anything that isn’t in a discordant key is frankly a bonus at that point :)
  • Create Working Instrument: First thing is to make just a single instrument capable of replaying uploaded sound files, providing a useable UI to do so, and is able to handle queuing. I’m pretty sure the script functions for this kind of thing are fairly simple, although finishing touches, like playing animations and realistic looking violins and so on, may be take longer.
  • Create Metronome Server: The most challenging bit, and potentially beyond me. Once individual instruments work, there will need to be a single ‘hub’ that can interact with them, and to some extent, control the replaying of the sound files in them. This is essential, as without a common ‘beat’, the various instruments will just sound like a mess. This is done by the game server in SWG and AC2, but I will have to make one of my own, just for this functionality.

Several solutions already spring to mind, ranging from a single fixed multi-seat ‘bandstand’ piece of furniture which avatars sit on to play, through to a complex ‘wi-fi’ range based system where avatars wear their instruments as attachment objects, and which listen for timings from a hidden tiny server box nearby, or even from a designated ‘lead’ instrument.

A lot to get my teeth into. One aspect of the SWG system I may ‘forget’ to put in however, is the months-long afk-macro grinding path required to unlock all the songs, but then I guess I’m lazy like that...

More as I get anywhere with it…