30 April 2007

Subtitles In Games

Sign Language

I was reading an article about putting subtitles in games. It is a request I fully understand (though I'm not deaf) if only to give the player the option of turning their speaker volume down. Obviously in the case of people who can't hear it's essential to their ability to play a game. I remember in Prince of Persia: Sands of Time there was a point where you needed to hear the sound of running water to pick the right door. I was stuck on this for a long time due to not having my volume up enough and not getting that audio cue I needed to progress. Eventually I checked an FAQ site and found I needed to hear it. For me that was annoying but a deaf person would need someone to guide them through that; a simple visual clue as well would have solved this. There would also be points where the prince was talking and you couldn't hear it over the sounds of some circle saw beside you. It stopped the story being as complete for me but meant a deaf person missed out on the story pretty much entirely.

The article asks who can be contacted about this. It's a good question and for console games I'd suggest that Sony, Nintendo and Microsoft are the leads in this. I don't think they should stop companies publishing without subtitles but they should try and promote subtitles as much as possible. Obviously we can't achieve similar goals to what the web accessibility initiative is trying to achieve: games aren't semantic, we just can't remove visual or controller requirements (though even then you can insure things like checking your colour setup and customised controls) but, for most games, voice and other story audio can be displayed (through subtitles and graphics). Whether the companies could then take it into their own hands to warn people about the lack of subtitles (or, I suppose, to go the other way like DVDs and list it as a feature).

I noticed there is a site called Deaf Gamers that reviews games with that in mind. It would be great if this didn't need to exist and deaf gamers could buy any game with confidence that it will have provisions for them.

26 April 2007

Adaptive Music

Piano taken by  Andreas Reinhold

I was reading an article on Defining Adaptive Music which is well worth a read if you have a few minutes. I've studied a bit of music in my past and, I guess, my interest in dance invariable knocks on to an interest in music too. The article, as its title suggests, attempts to define adaptive music; much more in the theory rather than practice.

A few years ago I had a Gravis Ultrasound (what am I talking about it's well over 10 years ago now). That soundcard had much, much, better MIDI handling than my current onboard sound card. Decent MIDI synth is expensive; requiring a chunk of dedicated hardware. People who want it, for music development work, spend a lot on a top of the range soundcard; everyone else just gets some off the shelf card that has fairly poor support. Games now tend to use MP3 or similar files for their tracks; they are small so you can fit a lot of them in a reasonable sized game (though they are no where near as small as MIDI data); there is a CPU cost associated with playing them but it's relatively inexpensive. This means unless you want your game to sound poor on most peoples hardware you want to go for compressed audio like MP3.

MP3s are fairly difficult objects to play with though. They aren't very well suited to adaptive music. Sure you can fade one out and fade another in; you can play one over another to, say, keep the baseline while you change the treble (assuming three audio files here). You can change the pitch and such but your options are fairly limited. It's not to say you can't do it at all. The article mentions Mozart’s Musikalisches W├╝rfelspiel describing it as:

In Mozart’s combinatorial Musical Dice Game, parts are generated a measure at a time by rolling dice to pick randomly from a table listing multiple potential versions. The number of potential variations of this piece of music is so large that any waltz you generate with the dice and actually play is almost certainly a waltz never heard before. If you fail to preserve it, it will be a waltz that will probably never be heard again.

In this case each piece could be recorded onto different files and the same random method could be used to generate the given track for, umm, a Waltz scene. In a similar way perhaps it is possible to include the fast bass line of some battle music with the music of a safe location such as a town as a juxtaposition between what the player recognises as a safe location and the fact that, for some reason, a battle is going on there. Of course the audio engineers might just write another score that mixes the two and has it as one file: until there is a large permutation it is probably more efficient to have multiple files with only one playing at a time rather than have less files (possibly) with multiple files playing at the same time.

It could well be that the best place for innovation in this field is in consoles like the Nintendo DS which, as far as I know, uses a synthesizer. So what do you think? Do you think that we've missed the boat for major innovation in the area?

19 April 2007


I've finished my first level/modification for RoboBlitz :D. I'm not releasing it yet as I'm using it to apply for a job for now but I will release it in the future.

I had some problems with some of the end scripting (in terms of getting it working to my satisfaction) so it took me a little longer than expected. Also, even though I consider it finished it still has a couple of minor bugs (which I don't think I can do anything about so I'm ok with them) and I feel I could do more with the lighting. I'm hoping to move on to other things just now and maybe revisit this at a later stage.

At first I had a fan in the level (which I lined up and it looked beautiful), added in rotation, and started the game and bounced of its huge collision model (which basically is a large polygon lump around the fan). I remembered that they had a fan in the Kismet mini-game and wondered how Ecnassianer did that. Looking at it he just had turned the collision model off! Something that I couldn't get away with since it would be pretty obvious when the player went through it. I could have turned it into a Matinee driving the fan, turned off the collision model and added in blocking volumes but that was more time than I really wanted to spend on it at the moment so I missed it out. I would have known about the casual collision model if I pressed the C key except I've found, and it is a known issue, that it can cause your machine to reboot if you use an nVidia card.

My lighting skills aren't quite up to scratch either. I added a nice red/amber/green start light which is nice but beyond that the lighting in the map is pretty basic. I couldn't seem to get more defined shadows and I'm not sure if that's because I'm using a skylight that lights all the areas or not. I'd like to play around with this more but I'll going to get some feedback on the map first and see what people think.

My first impressions of Kismet (the high level scripting language used in UnrealEd) seems alright though one thing that bugs me, as a programmer, is that you can create subroutines; that you can set an input and an output along with variables it takes (all of which appear to be passed by reference) but to reuse this you need to create a copy. Now the copy is just that, an independent copy that can be changed with no reflection on the original. This can be handy at times, such as when creating a copy with intent to alter it, but really what I want is a blueprint sequence that I can create references to. This way by updating the sequence I update all things that use it.

For example: I have a sequence that checks a Trigger the player has just crossed; if it is in the right direction it increments to the next trigger and prints a message and plays a sound. Now say I want to replace the comments with an custom UI dialogue. I've got to find every reference waypoint and change the code on them. It's sloppy coding and I'd prefer to avoid it. Saying this I'm still to check if you can, by saving to a package, create a new component in Kismet which will just be generic. Otherwise you could create an event in UnrealScript which would do just this but if you've already written it in Kismet it seems a pain to need to translate it to UnrealScript.

I also discovered that there doesn't seem to be a way to restart the level properly (that is to reset everything to their default state). I've coded it so that it restarts in a controlled fashion but the pickups will have been picked up and things that have been knocked over will stay that way. It's something I can live with so I'm happy to let it be.

All in all I'm happy with the way the level has turned out; I think it plays pretty well and I'm happy that I could do something with the engine that feels different while still not attempting to make sweeping changes to it.

Multiplayer is coming to RoboBlitz which I'm interested in for two reasons. First I'm hoping my next map can be more of a multiplayer map and secondly whether my current map could be adapted to work with multiplayer. I shall have to see when the code is released.

17 April 2007

Feng Shui Roleplaying XML Stuff


I ran a game at the Student Nationals a bit back. Anyway I quickly hacked out an XML document and XSLT script for Feng Shui characters. Here's an empty character sheet as an XML document and an XSLT stylesheet that transforms it to HTML. I also included an Old Master (ish) archetype as an example.

Hopefully the empty one should be fairly obvious where to put the values. Keep the preprocessor directive in as it means, if the stylesheet is in the same directory, that browsers can use it to render the document as HTML (I used XSLT 1.0 for this reason). The XSLT also includes embedded CSS for styling the document, including some Mozilla specific multi-column stuff. All of this might not make sense to someone who is using it. If it isn't drop me a comment/mail/IM and I'll try to explain it to you (I'm currently working on the basis that it will only be used by me but thought I'd offer it to all anyway). Finally it is under the creative commons license (by attribution, share alike) so feel free to modify it etc.

Creative Commons License
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License.

16 April 2007

Weekend of Dance

Couple of Swing Dancers

Boogie Nights had a mini-weekender thing in Edinburgh this weekend which I went along to. I know it has been a while since I've really talked about dance on this blog; suffice to say I'm still dancing and loving it but feel less inclined to blog about it than I once did; but I just felt inclined to post a little about this event.

The first workshop was with Nigel Anderson. He went back a little to basics with keeping simple footwork patterns (a step per beat) and insuring that that is the basic step you do as the foundation to build more complex footwork on. For those of you that know Ceroc (which is a company with a particular style of Modern Jive) you'll know that they teach virtually no footwork. I've heard argued, a few times, the merits of teaching a step-per-beat footwork pattern in Jive and how it helps beginners have some build a framework. I can see the benefit though part of the reason I love Ceroc is its simplicity and accessibility. I think making it initially complex would put many people off. We had some nice moves to begin with that focused a lot on a close hold frame and using the connection. At times I wondered, however, later on how much of some of the moves we were learning I'd use. We learnt a Backhander but it was basically the swing version with a lot of momentum and space used. Indeed quite often, later in the workshop, he talked about elasticity in the dance, moving to the full extent of your frame and using the momentum almost to the degree that I assumed we were learning Swing. This isn't a bad thing but I'd say my style is leaning more towards a constrained, West Coast Swing or Tango feel and they go for a more restrained dance. However I'll try integrating some of that stuff when faster tracks come on and see how it feels. He finished with American Blues which felt too much like ballroom and not enough like blues to me.

The evening party started with a Swing Rueda, which basically involves dancing to a caller's moves and switching partners on the fly. Nigel was teaching and calling this and he did a fantastic job; it was really good fun and really got the people on the floor involved. I think doing more of that sort of stuff at the beginnings of parties would make me less likely to turn up late. I'll skip a bit ahead in the evening's events to the cabaret which was really interesting as it was a sort of history of dance with Nigel talking about the styles that emerged (and why they emerged) and then them performing a quick piece. I was especially impressed that most of it was just unplanned freestyle on their part and the number of dances that Nigel knows. I did feel their dig at Ceroc (when they got to the eighties) as a bit unjustified especially given the heavy Ceroc background of the audience. Anyway it finished with an impressive solo routine from one of the West Coast Swing teachers and went back to freestyle.

I had a really good time in freestyle; it feels like it has been a long time since I last was at a party event (it hasn't really been that long) and there were a lot of people there I haven't dance with in a while so it was great to get some dances with them. There were, however, nearly twice as many women as men there and at the same time as feeling overworked (I didn't get many breaks) I also felt sorry for all the women that seemed to be sitting out often. I worked hard to get around as many as I could but I missed quite a few that I wanted to dance with or never got around to a second dance with many I wanted to.

The highlight for the weekend for me was Catriona Wiles West Coast Swing workshop. It went back to basics, like WCS classes are so prone to doing. I felt a bit sorry for those down from Aberdeen or up from London who are more experienced WCS dancers and were, perhaps, expecting a more intermediate level class. It was highly beneficial for me though taking some fundamental moves and going into much more detail about WCS techniques and concepts. It was pretty tough going (and a few of the things taught were in opposition to things I'd been previously taught) but I feel I got a lot out of it. At the end I thanked Cat for the class and she said I did well but I tend to place myself quite far away from my partner where I could just angle slightly to be out of the slot and be closer to my partner (on, say, a Left Side Pass).

Finally, in case there are people waiting for computer games updates that, for some reason, read through this whole post. There is a track I love dancing to: Louis Armstrong's A Kiss To Build A Dream On; and it occurred to me recently that I have heard it used somewhere before. It was, of course, the opening to Fallout 2. I wonder whether my love for that song was based on my love for that game. Anyway for those of you that haven't played the game I found the intro on YouTube.

03 April 2007

Hardcore And Casual Gaming

Hedgehog with a controller

I was reading Dancers Can Be Hardcore, Too (linked from Kotaku). It's about what makes a hardcore and casual gamer; it's a really interesting read if you are into game development.

I, currently, am in the Recreation zone on XBox Live. The reason I picked this, event though I do play a fair number of games, is both my hope that the demographic that are in this are a more mature group and my desire to specialize in one game is lesser than that of someone who would be in Pro. I pondered how this linked to the suggested model; if it links at all or is really a parallel thing that states I want to play against more mature opponents and I'm looking to have a good time and not learn every mechanic in a game. For most multiplayer games I am a casual player. I split my time between them and, for the most part, I play online when some of my friends are up for playing the same game.

On the other hand Damion stated: If, when bored, your default play choice is the game or genre in question, you might be hardcore which seems true of RPG games for me. I've poured hours into many of them and I took some holidays to play Final Fantasy XII when it came out.

My girlfriend doesn't really play many games at all but she has been really drawn in by games like Feeding Frenzy and New Super Mario Bros. (which she recently completed). She has played a few other games but she hasn't really been taken with many others. Feeding Frenzy has a fairly easy control system and is easy to get into; there isn't many rules to learn and the designers are very good at introducing new concepts at the right pace for casual gamers. She has tried other games and, perhaps they weren't intuitively designed or maybe they just didn't capture her interest in time but she stopped playing them.

Of course the relative complexity of a game will be ignored by people who have more interest in it. Championship Manager seems to be a spreadsheet with a football themed interface yet people who have no interest in number crunching or strategy games will spend hours pouring over numbers and figures to optimise their team. The theme and subject of the game has bought the developers additional time with these players; players who are willing to struggle with an uphill learning curve based on the fact the game is based on another interest of theirs.

When I was at the Edinburgh Games Developer Conference in 2004 Will Wright did a talk about the upcoming Sims 2. He talked about the objectives (desires/goals) that each Sim has. Achieving those objects gives the Sims points which can send them into a super happy state and also allow you to purchase special items in the game as rewards for your achievement. He mentioned this was added in, from the lack of anything like that, to draw in your traditional hardcore male game playing audience; that they are less interested in having open ended, unquantifiable, achievements and more interested in having specific goals that they need to finish to progress to the next stage. Fascinating that, when he stated that, it clicked that that was one of the things missing in the original Sims for me. Stating that; that's more attempting to capture a specific gamer demographic. These people could be casual Sims players but what they are looking to achieve in the game differs from that of other players the game appeals to. When we refer to Hardcore players are we really talking about goal oriented players? Nerfbat certainly thought this had something to do with it.

Perhaps, then, it is just a confusion in terminology. Games, to be widely successful, need to have an ability to be picked up and played while also providing enough depth to capture people's interest in the long term (effectively to create hardcore players for that game). Some games, that have scoped their market appeal to a smaller group might increase the entry level complexity for the sake of not overly simplifying (most turn based strategy games might do this; their market is mostly established strategy games players though you might see them attempt to appeal to, say, a real time strategy market). Perhaps it is more important to identify what your target demographic is as well as Damion's double-coding of a game to appeal both to the casual and hardcore demographic of that market (possibly with some overlap to markets outside your scope to try and bring new players in).

Finally I leave you with Damion's Just because you like dancing and socializing doesn’t mean you’re not hardcore. I find that great to know :D.

02 April 2007

Roleplaying Events and Dancing

Oblivion Screenshot by CoreBurn

This is going to be one of those more traditional blog posts about what I've been up to and such. It might well be of interest to no one.

I ran a Star Wars game using the Feng Shui system at the Student National Roleplaying Event Thingy. I found it good fun and the adventure I wrote seemed to survive contact with the players (mostly) so it was fine. I wrote a little XML file and stylesheet to render Feng Shui characters. I shall post it up here in the near future. Some people might find it useful.

Post nationals on Sunday Dr Sordid; Silicon Owl; me and another man, who isn't into this whole web thing, went out for a meal and random chatter that was fairly grown up; reminding me that we are now grown up and talk about things like pensions. Umm, yeay?

Saturday night I was supposed to go out dancing but the day had drained me a little and I never actually made it out of the door. I had that point where I thought if I'm not going to go out now then I'm not going to make it out and that point passed. I then was kicking myself that I didn't go out and dance. I've been finding my dancing is getting a little to repetitive for my own liking. In part I attribute that to not turning up to lessons much at the moment. I think if you feel you are progressing, learning new things, then it makes it seem like you aren't going through the motions as much. Of course, as has been mentioned, a follower will dance with many leads so she probably won't see it that way (your lead being different) so it's only in your head... not in the heads of others.

So I've been playing a bit of Oblivion again recently, finishing the main quest and switching to my second character. I bought Shivering Isles, the expansion pack. I've been enjoying it so far though I've found it not overly different from the main game even though you are meant to be in the land of the insane.