Monday, 29 December 2008

Miniatures and D&D - a few game sessions

So I got asked by a commenter recently if I was still using the Heroscape tiles for combat with Labyrinth Lords and the answer is that yes, I am. They have been a tremendous asset for building outdoor battlescapes. I had inserted a small wilderness adventure to break up all the dungeon crawling that the party were doing and now they've been exploring so much of the wilderness the balance has swung the other way, so they have been a very valuable asset. Last night, we played another session and I took some more photos so you can see how useful they can be...

This is a battle at the edge of the Monrag Swamp, a dangerous place. It is against wild boars, but alas I do not have miniatures for these enemies yet and so had to use my giant rat ones - slightly odd but it kind of worked. The mat underneath is a Lexan water terrain map, ideal for the wet terrain type were simulating. The party lost two characters in this battle; they had no idea that wild boars were 3HD creatures and were not afraid of facing five of them. They deployed badly too and I exploited that weakness - a combination of me going for the front of their wagon (a model they have built themselves!) and the water terrain ending their movement meant they were unable to bring their toughest (fourth level characters) to the front to save their beseiged weaker party members in time.

This is a shot of a battle at the edge of a graveyard. The underlying mat does line up but we set up the battle in haste and its slightly off in the photo. The ruined walls also come from the Heroscape game. This battle went very well for the party; the 4th level cleric rebuked the undead causing most of the skeletons to cower in fear of his dark god. There was an amusing moment where one of the skeletons fumbled (and drawing a card from the critical fumble deck) we discovered he had become blinded; he must have somehow got mud into his empty eye sockets and spent the rest of the battle wandering around like a drunken idiot until its eventual demise.

This last image shows a much smaller battlefield and was a combat that occured because the party had got wind that there was something nasty in a nearby cave and so dug a pit trap then hid and waited for something to fall into it. Something did indeed - a ghoul and the pit trap killed it. So they were resetting their trap, when out of the cave two more ghouls shambled, taking them by surprise. The area on the right is the cave entrance. Notice how the Heroscape hexes stack on top of each other very well, allowing you to create high and low areas with ease. This was a major factor in why I picked the game up to try them out - increased height complicates the battlefield and allows for more tactics in battles. In short, I think it spices up the combats. The party did very well in this encounter; one character got paralysed but the ghouls were quickly cut to ribbons.

The hexes have proved very flexible and are popular within the group so we are going to continue to use these hexes in all outdoor and wilderness encounters . The extra tactical considerations are great for fighter types and also for weapon selection (e.g. weapons can have reach and some weapons can power swing).

Monday, 22 December 2008

Running an evil campaign

Right from the start, Mike wanted his characters to be chaotic. Back then, we used a random dungeon generator from the net, as I had no modules for preparation, and it named the dungeon the something or other of the Malevolent Malice. One of the rooms it generated was clearly a shrine of some sort.

The next session, Ben joined us and rolled some characters up. As Mike had found this shrine, we concluded the session and said that he had cleared out a temple of an old evil god that had been overrun and that his clerics worshipped it and it was the religion of the village they were from. That was how the Malevolent Malice was born and helped to tie together all of the loose disparate parts of what had happened and why his characters were chaotic.

A number of adventures later, which are fairly standard stuff in that the characters had might as well be good and not evil, and I'm reminding them that chaotic characters dont put themselves in harms way to save others, even if they are friends or companions. Theres a discussion about whether their characters should kill everyone in a village, as the characters are evil after all, to get some artefacts back for the High Priestess, that have been stolen. We leave that session with me stating that if they do, karma can be a bitch.

Which left me with a bit of quandary. The characters are all chaotic. Its perfectly reasonable for them to leave a trail of slaughter and destruction wherever they go. In the game sessions we had played, we hadn't played up the evil part of the characters at all. Giving it some thought, I decided, evil is the reverse of the coin and what are the reverse of the usual monster lot they fight? It would be good races such as men and elves and fairy folk. Sure, they can fight evil too (and they will be doign), but its not to get rid of it *because* its evil, it would be because it threatens them in some way. They would fight good *because* it is good. An interesting thought, I think.

The game session last night had the first truly evil act occur in it. They were responsible for the demise of one of the Angels of the West, a protector of the land. In the process, they have made enemies with the Druids that serve them. An evil themed campaign could be quite fun I think. It would really be all about power. They don't know it yet, but they are going to be rubbing out the guardians one by one til the Malevolent Malice is in a position to build an army to take on the Free Peoples. If they are successful, the game world will be a much, much nastier place. Maybe after that, they could roll up some good characters to try and put the mess right. But thats a long way off, the characters vary in level from 1-4 at the moment. This is going to be a very different kind of campaign.

Tuesday, 9 December 2008

Experimenting with miniatures

Over the past two gamer sessions with Labyrinth Lord, we've been experimenting with using miniatures in the combats as the players expressed an interest in trying this out. I did some extensive looking into what options are out there for the week before and since the adventure the party were about to start was a wilderness based one (the first they have ever done) my focus was on outdoor battles.

My findings included printing out battle maps from PDF's, paper and card based maps that are pre-printed, battle maps that you can write on with marker pens and then erase afterwards and finally interlocking hex tiles from a game called Heroscape. I settled on this option and ordered the game, then pilfered the pieces from it. I particularly liked the Heroscape solution because the hexes also stack on top of each other to give height which then creates extra tactical considerations involving higher ground.

I picked up some trees from eBay too for obstacles then hunted around to find whatever miniatures I still had from back when I was at school and found very, very few, a real rag tag odd bunch - mostly hero types - and decided I needed to look at getting some more. Miniatures have sure got expensive. I don't remember them being this expensive. So I ended up buying some counter packs which work out much, much cheaper, for enemies and getting a dozen wolves and six frogs. The wolves were for an encounter in a forest and the giant frogs for one in a swamp.

The first gaming session went ok but we had some trouble adjusting what was once entirely in our heads into a more rigid and well defined ruleset (mostly house rules) and I was left unsure, but the second session went much better and we started to flow with it and become more inventive with the descriptions of what was going on and solutions to problems. So the second session became more like how we used to play; but everyone could see where everything ones. I also played to one of this style of handling combat's strengths - larger, more epic fights.

Here is the setup from the battle to take of the Frogman King and his Fishmen, which the party decided to do for a bunch of witches in the swamp so they could stay the night in their house...

As you can see, the counters are for the enemies and there is a lot of them. We wouldnt have been able to track that many enemies without using miniatures, so it definitely has its place and I think we'll continue to use them. The party won the fight - in an amusing moment, the Frogman King was knocked backwards off his lofty pedestal by a slight bullet and ended up in the water with an almighty splash - although it was a pretty close fight for them.

Tuesday, 2 December 2008

The evolution of the desktop

Been a while since I did a tech related post but I spotted an interesting news story that I thought I would share with you... a new OS called Good OS that lets users boot into a web browser and run pretty much every day tasks without loading up windows.

I see this as being the logical next step.

The desktop paradigm made sense when we all used floppy disks to move data from point to point and we needed big bulky programs on our machines to get stuff done. Now, however, we can get a hell of a lot of that same stuff done using a web browser (and often free) online services. So the desktop has reached out and embraced the web; but how long before we no longer need the desktop with its multi gigabytes of garbage, I wonder, and just have a thin layor that takes us straight to the web. Of course, you have to nail privacy and security issues, but say you do and you may well be looking at the future of computing. I already use the web for my email, documents and so forth. Now if only my dev tools ran online... ;-)

Continuous initiative example

About my Continuous Initiative house rule post, a commenter asked...

I'm intrigued, but having a really difficult time envisioning how this works. Can you post an example?

So I figured why not, lets post an example of how this works and how it benefits lightly armoured characters using three household fantasy characters - Gandalf, Gimli and erm Jeffry.

My scanner is currently out of commission so I cant show you the chart I drew, but imagine the below list of 'phases' draw into a sort of square with arrows connecting them to show a clockwise direction and you will have what I used in the game session.

Anyway, here is a quick example, between three combatants.

Gandalf the grey has no armour (G) and for some reason has forgotten his magic staff today and is instead using a dagger (G). This puts him in the GOLD category.

Gimli the Dwarf is wearing chainmail (S) and wielding a handaxe (S). This puts him in the SILVER category.

Jeffry the Uruk Hai is wearing platemail (ST) and wielding a scimitar (B). Steel is the lowest band he is in, as it is the closest to copper, so it determines that his initiative band is STEEL.

Recalling that the phase order is:

Combat would go like this...
G = Gandalf can act
S = Gimli can act
B = No one, skip it
St = Jeffry can act
C = No one, skip it
G = Gandalf
S = Gimli
B =
G = Gandalf [so fast he acted twice before Jeffry could act!]
St = Jeffry
S = Gimli
C =
G = Gandalf
B =
S = Gimli [now even Gimli has got an extra action in over Jeffry!]
G = Gandalf [and not to be outdone, so does Gandalf!]
B =
S = Gimli [three!]
G = Gandalf [three!]
St = Jeffry
C =
B =
G = Gandalf
S = Gimli
St = Jeffry
[Start sequence again.]

Towards the end there, the benefits of continuous initiative really come into play for both Gandalf and Gimli. That's if they've survived that long into the combat, of course, as light armour means they can be hit easily as per the normal rules. Also, remember that two opportunities to hit a highly armoured low AC character are not the same as two opportunities to hit a lightly armoured one, in the first case two hits are unlikely whereas in the second, two hits are very likely.

Saturday, 29 November 2008

Continuous initiative

Back when I created Necrotech (a computer roleplay game which was itself loosely based on the setting I made for Snapshot 3000 - a game which only my oldest friends and family ever got to play) I implemented a round based combat system into the game. The game played out a little like a Final Fantasy battle, except for one crucial difference - actions took time to complete. Actions and times were displayed together in a menu format so that the player could make informed decisions about what to do - should he risk two snapshots with his pistol or go for one aimed shot instead?

Recently, in our D&D sessions, I decided to resurrect the idea of a continuous initiative system. Continuous initiative means just that - it is continuous - and does not have a one person acting per combat round order. The order is determined by how high the initiative values are (like normal) but then instead of going back to square one after all have moved, the higher initiative combatants may be acting multiple times over low initiative value combatants. This fundamentally changes combat.

Part of my reasoning in trying this out was because we have a number of house rules which we agree on (me as the referee and the players) and its fun to try new ideas out and see which ones stick. The other part is that if the players ever wanted to create a character like Conan the Barbarian, as it is, the game system would completely punish them for this choice. Note that I am playing classic D&D here (Labyrinth Lords ruleset) where platemail and shield is preferable any day to being unarmoured. Unarmoured characters drop like flies. Not necessarily so with a continuous initiative system, however. Read on...

First of all, when thinking about changing or updating combat in a table top roleplay system, anything that gets introduced needs to be simple. Really simple. It mustn't interrupt the flow of combat or it will cease to be fun. So I decided on five initiative bands that combatants can fall into. These are: Gold, Silver, Bronze, Steel and Copper. Gold is very fast while Copper is very slow. Both extremes are fairly hard to get into and bronze is the one that most characters will end up in.

To determine what band a character is in, look at his encumberance first, then his armour type, then his weapon. The 'lower' the band (the closer to Copper) any of these is, becomes the band he or she will act in.

GOLD: Padded or no armour. Club, Dagger, Dart, Light Hammer

SILVER: Leather, Studded Leather, Chainmail. Using a Shield. Light Pick, Light crossbow, Quarterstaff, Shortbow, Spear, Shortsword, Trident, Shuriken, Nunchak, Flail, Hand axe

BRONZE: 41-60lbs carried (lightly encumbered). Scale mail, Banded mail. Battle axe, Morning star, Heavy crossbow,Heavy Flail, Longbow, Heavy Pick, Scimitar, Longsword, Polearm, Two handed sword, Bastard sword, Torch, Oil, Sling

STEEL: 61-80lbs carried (medium encumbered). Platemail, Splint mail armours.

COPPER: 81-160lbs carried (heavily encumbered).

You now need a Continuous Intitiative chart. A chart is helpful because you can draw it out and then place a marker on it to show where in the sequence you are, then move the marker to traverse the sequence. The chart must show the following steps, in order (note that G=Gold, S=Silver, B=Bronze, St=Steel, C=Copper)...


When in combat, anyone in the marked sequence can act as normal. You may note that there are seven golds, six silvers and so on down to only three coppers. This means that Gold gets to have just over twice the amount of actions as copper - but its quite difficult to get into copper (you have to be encumbered, or a zombie). Gold to silver, for example, is only one extra action - although that could prove crucial when fighting for your life. Also note that initially, every band gets to act early on, which was crucial for keeping heavily armoured characters in the battle when I was looking at balancing this.

I share this with you now because the Continuous Initiative rules proved to be a big success in the game session we tried them out. Even the heavily armoured heroes (in the Steel category) did not complain and the mages certainly enjoyed being in Gold, making them far more useful in combat than ever before. The players have sinced started to outfit their characters with secondary, quick weapons (daggers, shortswords), I presume, so they can switch out of bronze if facing an exceptionally quick opponent which is definitely quite interesting!

If you're looking to spruce up your game session, or give players a reason to use a lightly armoured character, why not give them a go?

Monday, 17 November 2008

Random Beastie Maker

As you may know, I put together a little script for my random generator program that can create unique critters for roleplaying games. I posted one of those up in the blog entry here "Random Monster Generation and the Feathered Monrer" and since then I had a couple of requests to make it available for anyone to use... so here it is people, I hope you have some fun making truly unique and bizarre monsters :-)

Random Beastie Maker

PS if any of these monsters should make it into any type of published product, please give me a credit!

Thursday, 13 November 2008

Banning magic weapons and armour

I'm thinking of removing magical weapons and armour completely from my campaign setting and from my random charts and so on. This would have a number of effects.

The most obvious effect would be that magically overpowered characters would be a lot rarer. Characters that are powerful would be so through their innate abilities, or other means such as politically. This would make strongholds more desirable goals for high level characters.

The second effect is to de-emphasise combat and make players think on their feet a bit more. Facing off against a dragon is much tougher with a normal sword than a +5 sword of dragon annihilation. Players would have to be very inventive about dangerous combat situations and may even avoid them.

The third effect is that plot-centric special items would be incredibly special. Instead of their being a mass of +2 swords lying around, there could be one Excalibur that adventures and the plot would flow around. Who wields this mythical blade has serious significance. Perhaps only the gods can craft these items and it is beyond the ken of all mortal men, although the knowledge is sought after with a passion.

The fourth effect is that magical items would be highly sought after instead. Suddenly, by way of example, finding a flying carpet is a massive deal to even high level adventurers. Of course, I would need a very large assortment of magical miscellanea to stop the same lot from repeating over and over, but that would be quite fun to come up with, I think, especially if the items are not directly combat or stat bonus related. It could add a lot of spice to what might otherwise another run of the mill campaign.

What's even better is that I could probably get away with it. All the player characters are currently either first or second level and so do not currently own anything magical anyway, the adventures that they have been on so far have not uncovered any. Valuable trinkets, yes, but so far, nothing magical.

Monday, 10 November 2008

Random Monster Generation and the Feathered Monrer

Recently, I've knocked together a random generator program in Flash to help add some spice to the classic D&D game I'm currently running for a couple of friends. I designed it to be data driven and the data format itself to be extensible (think tables, sub-tables, looping and so forth - the program uses recursion [surprise!] so that any number of sub-tables can be traversed from any other ones, even allowing multiple rolls on the same table).

Anyway, I've added charts for things like creature deaths, misses, wandering monsters and so on all of which prove useful when you have to think on your feet. E.g. What is a miss? Oh it's an overhead swing that bounced off the opponent's helmet harmlessly! How did that goblin die? He was cleaved in two!

I generally have the players describe their attacks as it adds fun and a bit of drama to the game but this helps me with describing the enemy.

Another chart that I have put together is the random creature generator. I spent most of yesterday adding things to this (it now uses a lot of charts), testing and tweaking it - and I'm very pleased with the results. Here is the first monster I've had it generate, along with my descriptive text. Feel free to steal it and have it find its way into your own campaigns, I even put a suggestion for how it can be encountered in there...

Feathered Monrer (the Corridor Cleaner)

This small creature has no head and is covered in grey vulture feathers. Its two legs are also covered in a darker set of feathers but its four arms are actually completely featherless, revealing a jelly like fleshy substance, and terminate in bird like claws. The Monrer can use these four arms as either arms or legs, preferring to rear up on two legs in combat and travel on all six of its limbs when moving. It looks a little like a 4 foot long feathered centipede in shape, rearing up to 3 feet tall in combat.

It normally scavenges for food and is quick to steal carcasses from other denizens of the dungeon and is able to make a quick getaway. Its bones are extremely small and the jelly like substance that makes up its flesh is some kind of extreme fat that its body produces. Without a head, it appears to have no way to consume its food, but in fact it is able to consume food through its claws. Without eyes, it is blind but navigates using some form of internal echo location system and seems to key on the smell of blood, although how it does this is not known.

The feathered Monrer is one of the creations of Tarjan, the Mad God to clean up his catacombs of dead adventurers. Since then, they found their way into many dungeons throughout the realms. Suggested encounter - when a character falls in battle have up to six of these little critters run swiftly in and attempt to drag the body away into the darkness of the dungeon!

Attacks: 2 claws (d4, d4)
AC: 5
HD: <1 hp:1-4 (-1 damage from blunt weapons because of its jelly like flesh)
Size: S
Movement : Quick (125% of normal)
Morale: 7
Diet: Carnivore (Niche: Scavenger)
Alignment: Neutral
Number encountered: 1-6 (3d6)

Ah, the joy of random tables lol.

Monday, 3 November 2008

Labyrinth Lord sample adventure notes

Here were my notes for the recently played sample adventure from Labyrinth Lord for anyone that might find them useful. I pretty much went through every event in the adventure and jazzed it up with some descriptive text. Anyway, here are the notes...

Approaching the mine

As you approach the location of the old mine, the forest reveals skeletal remains to you here and there - skeletons of humanoids that have had their gnawed clean by misshapen teeth. The once boisterous forest holds its tongue more and more until you reach the hill itself, a hill that is shrouded in an oppressive silence. Not even bird song is heard around here, or the howl of distant wolves. You catch site of a bloody maw set into the hill side - a large thirty foot hole lined with sharp stakes and leading into a total darkness. Surrounding it are cacasses of deer and people, scattered haphazardly as if thrown there by a bored giant.

The cave

Light illuminates the cave only for a very short distance and then the passage is thrown into a total pitch black. The cave has a high ceiling that is hung with glistening stalagtites and the floor is uneven and wet. The chittering of what you assume to be bats can be heard from time to time and you can see your breath in the cold air.

Area 1

You step into the alcove and are peering at an odd green fungus that is growing amongst the stalagmites when suddenly, with a wet glooping noise, a mass of dark green jelly ooze drops from the ceiling onto [character with lowest wisdom]. He lets out a stuttering, muffled cry and tries to throw this rubbery mess off of him! [dex check or automatic damage from acid if wearing a helmet - otherwise automatic damage!] Damage - X screams in agony as acid burns into his flesh!

Area 2

Your flickering torch light illuminates many figures standing stock still in the pitch darkness, but as you approach you realise that they are but stalagmites - You are not being observed dozens of dark figures. The cavern is littered with gnawed bones and other stinking refuse. Whoever - or whatever - has left these bones here appears to be absent. A large crevasse is visible on the other side of the room, past the gravelly floor.

* Slipping - X slips on the loose gravel and disappears into the pit with a scream that ends as abruptly as it begins!

Area 3

Trap - There is a slight cick and then a loud crash as part of the ceiling comes down without warning, crushing any who are under it and masking their cries of pain! Dust billows out from under the rock fall. [It may alert the denizens of area 4 who will send a single soldier to investigate]

Area 4

You hear footsteps and grip your weapons nervously! Almost a half dozen of the Pale Devils come running at you from inside the darkness of this large cavern; their teeth bared, their dead eyes a piggish pink and their skins an odd white. Their wet muscles glint eerily in the torch light. They carry small sharp blades which they wield clumsily, grunting and shouting as they do so, closing in on your party surprisingly quickly.

The door is a Large Double door.

Area 5

This is a room and not a cave - it is man made and must be part of the old mine system proper. There is a tattered and faded curtain at the back of the room.

Albino ape - surprised. A large colourless muscular creature is ripping into a the body of a man with powerful jaws and looks up at you as you enter. Its large black eyes narrow and then widen as it throws down its meal onto the dirty floor. It rears up to its full height - some eight foot in all, beats its fists against its mighty chest then lets out a loud bellow as it lumbers towards you!

Albino ape - unsurprised. As you enter, a muscular creature without colour that is about as large as any bear you have ever seen beats its fists against its mighty chest. It snorts in what could be derision as it eyes your party up and down, then comes clamboring towards you on all fours with frightening speed. It rears up on its hind legs as it reaches you, gnashing its disfigured teeth together hungrily before emitting a bone chilling bellow.

Albino ape - slain and party in good shape. As the mighty beast falls, the cry of something else reaches your ears as a pallid figure charges into the room through the southern archway and joins the battle! Behind it, standing ominously in the doorway, is a cowled figure who's eyes burn with a seering hatred and whose long white fingers fidget to an unheard tune. It roars something unintelligable in a deep and commanding voice!

Cowled figure - cause fear success - The pallid figure mumbles something you cannot quite make out and then places a withered hand against a patch of your bare skin. A rare panic comes over you as this happens and you run for your life hysterically, as far away and as fast as you can - all you know is that you must escape this unknown enemy for it is pure terror that envolopes you.

Cowled figure - cause light wounds - The hooded figure utters a word and its fingers dance across your flesh nimbly, withering wherever they touch and you recoil in horror as your flesh blisters!

Cowled figure - cure light wounds - The robed one's pink eyes flash briefly with divine power and suddenly the Pale Devil's wounds are regenerating!

Area 6

Beyond the curtain is an even muskier stink. Whether it comes from the carcasses of half eaten sheep or from the stained sleeping mat is not known but what is evident is that this is where the great beast you faught must have spent much of its time.

Area 7

You step into a room with a half dozen straw beds in it. A musky smell emanates from them and you turn to leave in discust when you realise you are not alone; three groggy looking pallid figures are stirring in the beds, grunting as they rise, reaching for nearby weapons and rubbing their odd pink eyes as they do so.

Area 8

A low whimpering can be heard from the left as your eyes follow the wall along this long but narrow hallway. There are four days interrupting it and there is blood and hair on the floor. [400 xp for rescuing the acolytes, treat as level zero clerics]

First door - Whimpering female teenage Acolyte (Caley Dugan daughter of Grant the Soothsayer, daughter of Cornell , daughter of Bryant )
Second door - Stairs down?
Third door - Higher order babboon that has been captured by the Morlocks but not yet trained up to fight. Its fur has been painted white in patches as though they have tried to make it albino.
Fourth door - Second teenage acolyte (Cocidius Haren son of Channon the Soldier, son of Nolen , son of Farrell )

Area 9

You cough from the dust that you have disturbed in this room, which appears empty save for a single small wooden box.

Area 10

You enter an an oval shaped from the north side.

[Not alerted] A cowled figure kneels in prayer in front a of statue of an ugly female brute holding a dagger with three skulls strung around her waist with a cord. Startled, the figure rises to his feet and you see a mad glint in his pink eyes. He is surrounded by an aura of fey and fetid power. He quickly barks an unintelligable order and from the other side of the room, where there is a grotesque male statue with its arms in the air holding head of a dwarf by its beard, another of the Pale Devil's rushes to fulfil his dark master's order.

[Alerted] On the west side of the room is a grotesque male statue with its arms in the air, holding the head of a dwarf by its beard and on the other side of this oval shaped room is another statue; this time of an ugly female brute holding a dagger. Somene has strung three skulls around the statue's waist - but of more immediate importance to you is the cowled figure and his Pale Devil body guard that stands beside him. Both have drawn wicked looking blades and are growling in the gloom. The robed one barks an unintelligable order and the other moves in front of it and utters what can only be described as a gutteral war cry!

Area 11

Pit trap - X steps onto a flagstone and suddenly disappears into a dark pit, crying out briefly as he quickly disappears from view!

Wednesday, 29 October 2008

Pen and paper online dice roller

Hope some of you out there playing pen and paper RPG's might find this useful which I knocked up a few days ago - its a program that rolls dice for you. All dice are included, can be rolled in multiples and are even totalled up at the right hand side.

Monday, 27 October 2008

Some thoughts on Tomb Raider Anniversary

I picked up Tomb Raider Anniversary the other week after getting the adventure game itch. What I really wanted was a good old fashioned dungeon crawl game to sink my teeth into and was looking to pick something up to scratch that itch on the Xbox 360, but alas, did not find anything. However, what I picked up instead was Tomb Raider Anniversary as I have very fond memories of being blown away by the original Tomb Raider on the Playstation. Shame about the sequals though, either I never really 'got' them, or they never really 'got' what Lara Croft is really about. I'm not sure which way around it was.

Tomb Raider Anniversary is the original game but brought up to date with next gen graphics, essentially its in the new Tomb Raider (Legend) engine. Although this is a review of an older game as there is a new Tomb Raider game coming out imminently with even better graphics, but at the time of release, this was as good as it could get for Lara and her polygons. She also has an increased repertoire of moves available to her, such as swinging from a magnetic grappling hook, which was never in the original. So some of the puzzles have been redesigned to accommodate the increased moves at her disposal and it gives the game a very fresh appeal.

Although, that said, I'm really not happy with what they did with the Tyrannosaurus Rex. To bring it down you must master an adrenalin dodge a number of times but the game in no way communicates to you that this is the key to success. Mindlessly blasting away with the pistols does so little damage that you're left wondering what to do and scanning the arena where you fight in reveals no environmental hazards to take advantage of. OK I get its supposed to be hard but not hard by withholding information. Every creature to that point I had brought down the old fashioned way, I had no idea that there was even an advantage to using this new combat mechanic let alone that it would be the only way to bring a boss creature down.

That said, combat wasn't ever really what Tomb Raider was about and I'm glad about that. Kind of like the Silent Hill games, this is about something else - there is combat there, it is kind of awkward. If Lara Croft were a D&D character, she'd be the thief. She can climb walls, she steals from tombs, shes extremely acrobatic. Thieves are generally not very good toe to toe fighters.

I think the D&D comparison is apt and brings me full circle. I think the original Tomb Raider - and this remake - work *because* they are essentially dungeon crawls with an acrobatic thief character. The same air of mystery is there that you get from venturing further and further into a dungeon in an RPG as you figure out how to get Lara deeper and deeper into the tombs. I believe this is the key ingredient that was missing from the sequels that I played, the bit they lacked that you could never quite put your finger on. Tomb Raider is, and always should be, a dungeon crawl!

The Anniversary addition is tons of fun. I'm not sure if its better or worse than the original really; it feels more like the original has been expanded upon. This is no bad thing. I would definitely recommend it for anyone looking to revisit fond memories or who wants to play a modern adventure game. Its really nice and refreshing to load a game up and spend forty five minutes gradually working your way through an elaborate environmental puzzle and having nothing shooting at you or trying to kill you while you do it. Here's hoping that Core have learned something from bringing their masterpiece back for the masses and that the next Tomb Raider game will have this at its heart.

You know what, Lara's still got it ;-)

Thursday, 23 October 2008

The illusion of security

Security is - and always has been - really just an illusion. The most secure vaults can be broken in five minutes, the most secure countries have been the victims of terrorist attacks and the most secure computer systems have been hacked. In fact security is generally not supposed to be impenetrable - that is impossible - instead its measured in how long it would take to beat the security system in question. That's why most of are happy to put a lock on the doors to our houses, even though locks can be circumvented with ease by a locksmith or a thief with the right tools and similar know-how, and why we dont padlock, chain and dead bolt our doors at night. A lock is good *enough* for most situations. That same level of thinking goes right the way through security decision making.

So security is just an illusion and it always has been. Here is yet more evidence of this - Keystrokes can be recovered remotely. That's right folks, your keyboard gives off electromagnetic waves when you type that can be measured up to twenty metres away and decoded back to what was typed. So kiss your passwords goodbye if you type them and someone is 'listening in' to those waves.

Presumably, it is better to send those same keystrokes over an encrypted wifi connection as the wifi network itself must be cracked before they can be read. Or maybe Bluetooth. But I seem to recall Bluetooth being hackable too. He he

Sunday, 19 October 2008

Thursday, 16 October 2008

A recommended play list for coding

If anybody is wondering what is currently on my iTunes when I'm knee deep in code, here is one of my play lists and it comes highly recommended ;-)

Avenged Sevenfold - Almost easy
Disturbed - Indestructable
Nightwish - Wish I had an Angel
Echoes of Eternity - Lost beneath a silent sky
Firewind - Breaking the silence
Papa Roach - Between Angels and insects
Paramore - Misery Business
Trivium - Anthem (we are the fire)
Metallica - The Judas Kiss
White Zombie - More human than human

Monday, 6 October 2008

Truly astonishing - revisiting the birth of RPG's

I came across this online recently and it truly is astonishing - the magic of the original roleplay game... D&D0. A must read for any RPG fan.

Items, items, items

When I started on the items for Dungeon Creep I went down the usual route, that is, coming up with weapons of different types, armours that protect various hit locations, and so on. I came up with over two hundred items to be exact and all was going well.

Then I scrapped them. All of them.

You're probably wondering why. In the Pit of Penance, there is really no reason for weapons and armour to be down there. The Pit a horrible place where the Law Lords throw criminals to die; society does not care what happens to them so long as they are out of the way. These criminals would not be armed when being banished into the Pit, after all, there are no spectators - it's not a form of entertainment like a gladiatorial arena. There is no baying mob. No crowd favourites. Those sentenced to the Pit never return.

So I began thinking about weapons and armour from a very different perspective. What could be found, scavenged and used for the purpose of survival? Could weapons and armour be assembled together out of bits of other things, almost like primitive societies did? Suddenly, designing this became a lot more interesting than thinking up another suit of platemail armour. What sort of everyday items would be down there? What could they be assembled into?

This led me into thinking about the other side of creation too: destruction. Breaking items apart to get other items out of them. Fun stuff to think about. Perhaps taking a chair and busting it apart to get the legs, then adding nails to make a spiked club. That sort of thing.

This is how Dungeon Creep will work, the hero will be combining and breaking items to make improvised weapons and even armour. This concept totally suits the brutal and gory nature of the combat. It was worth redoing my item system to get this in there, even if it did set me back a few days of development time.

Tuesday, 30 September 2008

Genre reclassifications

Here are some thought provoking articles that make me wonder if we need to have some genre reclassifications within the video games industry.

The first one, Does survival horror still exist? asks the question is survival horror really evolving into something else entirely while the second The New Role Playing Games dares to suggest that Rock Band is actually an RPG.

Interesting stuff!

Monday, 1 September 2008

The World's worst installer

I'm not really sure what the world's worst installer actually is but I've got a pretty strong candidate for it. Adobe's Creative Suite 3 Web Premium (Jesus H Christ what a mouthful) takes about a billion years to install and then, even worse, when you want to get rid of it its not very clear how to. There's no remove program link on the start menu, in add/remove programs it isn't listed under Adobe, or Creative Suite 3 or Web Premium. In fact its semi hidden under the words Add or Remove (not that intuitive).

Then when you do start the uninstall process, it asks you to close down practically everything running. It ordered me to shut Firefox, Excel, Windows Live Messenger, Flash 8 (which isn't even part of the creative suite, its the previous version) and then finally, when it was happy all I had open was Notepad, it took ten minutes to uninstall. So I sit and stare at a progress bar, willing it to move forwards pixel by pixel, as it has reduced my machine to having no programs running at all so I cannot do anything.

For gods sake, who coded this mess. All it has to do is delete a bunch of files, their folders and remove some registry entries. The only way they could have made this any worse - yet still work - would be if it forced me to reboot the machine afterwards. Well, it tried to make me by "recommending" it but at least it didn't force it to happen.

Monday, 18 August 2008

The return of graph paper

In a surprise twist that no one could have predicted, graph paper has made a surprising return to my life. It all started last week when I realised that roleplay games had not advanced in game combat narrative in years, if at all.

Essentially, the writeup of combat in modern roleplay games is often one of the following... a number that drifts above a combatant's head that represents the damage dealt or sometimes the word 'MISS' or a some text that says something along the lines of 'A attacks B and misses' or 'A Attacks B and hits for 10 damage'. Often this text isn't even visible til you switch it on. Obviously in game animations representing this has come on in leaps and bounds, but the text hasn't.

In fact, its taken a step back.

The original Bards Tale (a classic game from 1986) at least played around with the verbs a bit. E.g. a zombie might grope your hero (a description I still find funny, to this day, although I bet that isn't what is intended) while a berseker might try and pummel the hero. This was something, at least, which opened it up a little in my imagination back when I was a kid playing these games.

It seems to me that modern games have forgotten that all the good stuff really exists in our heads and not 100% on the screens. Not that I'm against modern games (just check my gamer profile to see I play the latest and greatest regularly, and often do complete them). A trick that good directors of horror films know is to give the viewer a brief silhouette of the nasty and let the mind fill in the rest of the details.

Along the same kind of lines, I was fortunate enough to sit in an accessibility demo by a blind person, showing how he used windows with a screen reader. This was very educational especially when he loaded up a number of games designed for people with no sight. These games are all sound based. I bet they are quite immersive too because most of what is going on is in the imagination of the player. Like how games used to be before we were forced to view the same animations, over and over (think Final Fantasy type games where the battle animations are initially impressive but pretty soon you wish you could skip them).

All this got me thinking. I reckon that in game combat narrative can be improved immensely if real writers get involved. So I'm putting up some of my own money to get a prototype together to see if my ideas will work, which I'm pretty excited about.

But back to the graph paper. I downloaded the Bards Tale 2, Destiny Knight, as part of my research and got playing it using a DOS emulator on my macbook (hehe, who'd have thought). Its just as addictive as I remember the first one being back when I used to play it on my trusty Spectrum. But its impossible to navigate around the dungeons without mapping them. So I've had to dig out my old pad of graph paper, a pencil and an eraser to avoid getting lost. It has been literally at least a decade since a game made me do that.

Thursday, 14 August 2008

It will take 100 years for the U.S. to catch Japan

In broadband speeds, according to this article from TechNewsWorld. Quite amusing, although, I'm not really sure how accurate that statement really is, hehe.

Friday, 25 July 2008

Microsoft buys Truespace, makes it free!

Yep you read that right, according to this article, Microsoft has aquired the respected 3D modelling package Truespace and re-released it as a free download. Yes let me repeat that. A free download. Microsoft, it has been a long time, but for this, I applaud you.

Thursday, 24 July 2008

Artificial Intelligence test

Last night, myself Chris and his young son Joe gave the latest build of Magefire a playtest. We were mostly testing the artificial intelligence routines that are now completed for independent creatures (see the earlier blog post Fun and games with designing AI for more details). It took me a while to program these because of the unusual approach I took that supports emergent behaviour, but it was well worth it. Some of the complex behaviours I wanted to be in there have indeed emerged. For example, because of the ruleset for the game, creatures that are next to each other become engaged and must fight to the death. The exception to this are flying creatures, who never get engaged to their enemies. So a valid a strategy for using flying creatures is to fly in, attack and then fly away again. This kind of behaviour was the sort of thing I wanted to emerge from the AI and it has, so I'm very happy with the results.

The overall playtest went well for the first game (which took place in my specially designed Deadly Arena level where pretty much nowhere on the level is really safe) but the following two games were marred with raising the dead bugs (in the game, Dark Imps can raise the dead as skeletal minions) so some work needs to be done on areas that we thought were already working. We managed to get a computer controlled wizard in there too, who uses the independent creature AI, but as predicted he didn't really perform too well. The next big step in the AI development is planning and unit coordination, both areas that the independent creatures do not require as they do not cooperate (except by accident).

So overall, the independent AI has been a big success and complex behaviours and strategies for individual units do indeed emerge.

Tuesday, 22 July 2008

Confessions of the Nuclear man

For anybody that might be interested, I have posted a new short story to the Creative Chasm blog, a long neglected creative outlet of mine.

Wednesday, 16 July 2008

To be honest, sometimes I just switch it off and on again

Does anybody remember the advert that ran on British television recently for a military technician type job on board a nuclear submarine? In it, a technician boldy proclaimed that sometimes he would just switch it off and back on again. At the time I thought it was quite a funny line of dialogue to put into a job advert and that it was probably true; but now I know it is.

Our nuclear subs, you see, actually run on Windows 2000. See Submarine Command System (SMCS) (United Kingdom), COMMAND INFORMATION SYSTEMS - MARITIME and SMCS ... which, when I read articles like this Unpatched Windows PCs own3d in less than four minutes it doesn't fill me with a lot of confidence! You see, you can garruantee that those subs are most definitely *not* hooked up to the web receiving OS updates from Microsoft...

Single threaded ranting

Now this is something that has bothered me for years; ever since I picked up .Net 1 and started to build applications for the office with it and learned how easy and straightforward the Microsoft dev team had made threading, I have wondered why on earth Microsoft office applications are often single threaded simpletons. The reason is likely to be legacy, but even knowing that this is the most likely cause, I cannot bring myself to forgive a multi-billion dollar corporation for keeping the old codebase and not refactoring it to improve it for its users. How much money does a product need to make before a company will improve the experience of using it?

I'll rewind a little here. Single threaded applications get busy when the business logic is busy, do not redraw themselves any more (often go white), do not respond to user input and generally appear to have crashed - even if they haven't actually crashed. Think about when Outlook gets busy and the UI stops responding, or Internet Explorer. The solution to this is to have the business logic spun off into a different thread to the UI - this means that when the business logic gets busy the UI stays responsive. This does not require multiple cores or processors to work thanks to the (semi-modern) pre-emptive multitasking nature of our operating systems, it just works. So why can't the largest software company in the world update its flag ship applications to take advantage of this?

Possibly because if you have a fast, snappy environment that responds to user input in a timely fashion (even if the underlying application is busy) then you won't want to buy a new computer and they won't sell another copy of their OS and / or office suite. I've heard it said that newspapers serve two masters: the readers of the newspaper and the shareholders. I think that applies here. Ultimately, the shareholders are in control. Sucks to be a consumer of the actual software.

Thursday, 10 July 2008

Fun and games with designing AI

We have got Magefire to a very basic playable point where we could test it. There were bugs in the engine with it being such early days but on our second playtest, nothing that was a show stopper. In fact a surprising amount of it worked properly and overall the engine is behaving itself.

We were testing line of sight code, initiative unit ordering, the combat system, map shrouding, ranged attacks and summoning of the basic units (various types of Imps) by the wizards, movement including flight and a points system to show who was winning. Also, the "replay mode" was tested as that has been built too, which replays back anything your units could see that occured when it wasn't your turn. Most of this did exactly what we wanted to do which got me thinking about what the next step should be. And, as what can be done at this point is very small in terms of actions (i.e. things such as move around, summon, attack, etc) I figured this was a good time to start on the single player AI (and by extension, the multiplayer independent creature AI).

Whenever you begin developing something from scratch - in any programming language or environment - you are faced with choices. How should the system be designed? Are you really building a system? Object oriented programming teaches us to think abstractly, high level, so we don't get bogged down in implementation factors when considering an overall design. A very useful skill. So I knew that generally the AI has to make decisions based on its goals. Thinking like that freed me up from thinking about FSM's, behaviour trees and so on. Instead I was thinking about what needed to be achieved. I recalled a new scientist article I had read recently where the author was suggesting that what our brains do is take a range of values, pick one and then feed back into it whether it was successful or not by adjusting the weights. Now I know that this is really just a neural network rephrased, but put into it's simplest terms in this way, got me thinking. To do that and support reinforcement learning, you don't actually need a structure as complicated as a neural net. You could have a rules based AI system.

The basic idea is this. Everything stems outwards from the actions that an individual unit can do. Actions include such things as walking around or attacking an enemy. The default weight on these would be zero. However, each action would have a number of requirements that must be met or the action is not considered by the AI system at all. A requirement could be having a ranged attack before the ranged attack action can be considered. Providing the action passes these checks, the AI then runs through a list of modifiers that affect how much priority the action has. A modifier could be, how likely is it that the ranged attack will hurt the enemy and how badly will it. So you have a whole bunch of these things and a simple stack that gets sorted by priority that determines what the unit should do.

Now this won't cover planning or goal oriented behaviours, but would be fine for individual independent units that only need to worry about their own safety. So this is the approach I'm going with and it's mostly done now. So hopefully in the next week we'll be able to stick independent creatures on the map and have their behaviour emerge (e.g. run away when injured, without having the circumstances specifically programmed for, instead a safety influence map gets selected as a target for movement with a higher priority as the creature gets more injured). In the future, the weightings on the modifiers could be in turn influenced by reinforcement learning.

Comment Spam Attack!

The Recursion King blog has been the victim of a random and bizarre comment spam attack. Fourteen of the more recent blog posts have been spammed with a list of links (most likely a link farmer trying to fool Google's page ranking system into moving them further up the searches and closer to page one). I didn't realise that the blog was popular enough to be the victim of such an attack... as it clearly is, I may have to blog a bit more often ;)

Tuesday, 1 July 2008

Windows in a virtual machine

Is the answer to every problem with windows (and as Microsoft put it, modern operating systems in general) to run it inside of a virtual machine? According to this article here,
Goodbye, XP. Hello, Midori , Microsoft are working on a long term project to have the OS as managed code. To some extent this is not a surprise (after all .Net has been a great success, as have other virtual machine implementations such as Java, Flash and Shockwave to name a few) as they offer platform independence (you target the virtual machine and not the platform itself), potentially increased security as the code can be checked and monitored before it is run and arguably very good performance (I had a conversation a couple of months ago with a games developer who said that if you know how the .Net garbage collector works you can equal C++'s speed with C#, and also look at how the Flash 9 player is very quick too).

But an OS running in a virtual machine. Is this the answer? If modern operating system architecture is too old, too designed for a non networked 24/7 age, then we better think about alternatives. Alternatives that include running the whole shebang using virtualisation on a seperate core to a lightweight OS that just gets that up and running. Or perhaps a version of linux on a ROM chip that lets you surf the web and chat like Asus are doing. Or perhaps an OS that boots from the web (kind of like switching to boot from network in your BIOS).

What will be the future paradigm for operating systems be?

Friday, 20 June 2008

Firefox 3 Vulnerability

Firefox 3 gets released and becomes the most downloaded program ever (8 million or so downloads in the first day). Mozilla is understandably very happy about this. However, just hours later, a security flaw is uncovered by security firm TippingPoint and submitted to Mozilla for fixing. So embarrassment all round.

Except, being the cynic I am and knowing how I would do things, I bet TippingPoint found this bug out in the open source code during the round of beta testing, but held back on submitting it. This way, they could make quite a name for themselves on the web by being the first to uncover a vulnerability in the new web browser. Very clever. It's exactly what I would have done, too.

Spectre Software reforms

After a long hiatus, Chris and I have reformed Spectre Software. Not that we ever disbanded, mind, just took a break from making projects for a few years. That sounds like a long time when it's written down like that, but it's not really. We used to make games together for a lot longer a while ago, from ones in Euphoria that ran on DOS to ones in Director. We're remaking our Magefire game in Flash so that it can be played within a web browser, and for free. Magefire is a battle of wizards that is represented as a turn based strategy game. Its roots are the all time classic Chaos (which it owes a lot of inspiration too) as well as the lesser known sequel Lords of Chaos.

Over the years, we have made this game many times. Different versions have had different capabilities (for example, Magefire Online would allow you to play your opponent by email and Magefire 3D was - you guessed it - in 3D). We keep remaking it because the basic idea and the core of it is actually very good and quite addictive once you get it. Of course, with a game of this ilk and in this age of decreasing attention spans, getting it is the problem. So this time around our aim is to make the most accessible and easy to play version ever in order to bring new players into this genre. Wish us luck!

Oh and by the way, the website is hopelessly out of date, I'm not sure what to do with that at the moment, its a very low priority.

Thursday, 1 May 2008

Who really has the agenda here?

Mozilla has decided to spread some FUD (Fear, uncertainty and doubt) about proprietary software (see Mozilla warns of Flash and Silverlight 'agenda' ) by stating that one day, maybe the Flash Player and the Silverlight player will have a charge attached to them. So, according to them, we should all wait for HTML 5 and use that instead. I wouldn't normally blog about this kind of thing, but if you look at Adobe's recent announcement about their Open Screen Project and plan to drop all licensing fees for the mobile version of the Flash player (see here ) then you can really start to see Mozilla's own agenda coming into play. A totally free version of Flash across all platforms? Why on earth would we need HTML 5 with its much touted ability to play videos? It's rare that politics in the tech world are this transparent!

Tuesday, 29 April 2008

Windows Media Center sucks

The other day a friend came over with a divx movie of a live gig and his laptop. We got a few beers in, burned the movie to a DVD and settled in to watch the gig. Or at least, that was the plan.

I have my surround sound and TV hooked up to my xbox 360 and so placed the DVD into the 360's drive tray. However, it wouldn't play the DVD and said it was an unknown format. It was a standard data disc burned from Vista. So it was kind of surprising that the Microsoft console couldn't read a disc made by the latest Microsoft operating system. Still, not to worry, no problem, we thought. We can just use the 360 to stream the video right from Vista.

Only we couldn't seem to get his laptop onto my network. In fact, he'd never used his WIFI capabilities on his laptop before and had never successfully connected to any wireless network and he was unable to get onto mine, despite having all the right security credentials, the 360 being on it and my Macbook. Ah well, time to go grab an ethernet cable.

They connected with a cable fine and a few wizards later and windows media center was running on both platforms. Some confusing file dialogs later and we had got the divx video into the menu system, but alas, it wouldn't play it anyway, complaining about codecs. It even complained about codecs when selecting it on the Vista laptop - despite being able to play it fine in Windows Media Player. But that isn't the full story of why media center sucks. Oh no. While hunting around its (admittedly nice) user interface, we discovered some sample videos of things like a bear in a river. A quite strange selection, but they played fine, but my friend decided he didnt want the bear on his laptop, so deleted the file through the media center interface.

That was enough to totally confuse it on both platforms, giving us error messages about not being able to find and play the video. So get this. Deleting a file through the media center interface stuffs it up. How simple is it to program that kind of functionality? Answer - very simple. Microsoft, we found a bug in five minutes. Media center sucks.

Thursday, 10 April 2008

Adobe has its finger on the pulse

For a while now, ever since I first bought a PVR, I realised that the way we consume live content will change. The PVR lets me record TV to a hard drive and watch it later at my leisure, by picking items from the electronic program guide. It's a really easy way to record things to watch later and a benefit of this is that you can fast forward the adverts. Then I discovered podcasts, and later video podcasts and I could see how TV would go from being broadcast live to a subscription "on demand" model. I think all TV will eventually end up being delivered in this way, where you might subscribe to a series and every episode is sent to you electronically as it is released. Very much like video pod casts are today.

For this vision to succeed, a good media player that supports this is needed. The obvious candidate is iTunes. iTunes tends to be more focussed around music libraries and digital players but definitely has this capability even today.

However, this article is about Adobe, who have just released a new media player that uses its Air technology. This media player's focus seems to be almost exclusively on subscribing to TV shows; they seem to have built this from the ground up to do this. So iTunes has a real competitor here and this could be the media player of the future - if it were built into set top boxes so you can watch all this stuff in your living room without having to load up hundreds of megs of code in a modern OS (i.e. windows, linux or mac OSX). I wonder if this will happen. If they are smart, they'll go down this route.

The other reason that this media player is noteworthy is that it is built using Actionscript. AS 3 is really powerful and in the next few years I think we'll start to see some proper heavy weight applications coming out that use it. Delivery using Air is interesting (use Actionscript to build desktop apps - it probably explains Silverlight as a response to this possible threat to Microsoft language dominance for desktop apps). Adobe eating its own dog food is interesting (see also the recently released Photoshop Express - another online application built using Actionscript 3 which the engineers who worked on Photoshop itself built).

Now, if only they would merge some of the best features of Director (Xtras, the 3D engine) into Flash, I'd be a happy developer ;)

Wednesday, 2 April 2008

Beyond Turing

Clive Thompson recently wrote that we may be already beyond turing (see the article on Wired News here ). It is well worth a read, but for me he doesn't put forward a really convincing argument.

To summarise and paraphrase and generally miss the point, he is saying that playing computer games can lead you to care about some of the AI characters. I play a lot of games and this doesn't often happen. Well not to me anyway. The idea of caring about a computer game character can seem ridiculous, but I do remember feeling a little upset over one of the deaths in Final Fantasy seven (speaking of Final Fantasy, if you like those games, check out Lost Odyssey - it's great). That is very different from what Clive is talking about however, because the emotions essentially come from the story and not the game play.

Can game play illicit emotional responses in people such that they care for and treat AI characters as they would treat another person? I have yet to really experience this myself and put it down to a lack of depth in the artificial intelligence that is driving these agents in games, but I'd be happy to be proven wrong. Maybe the Sims can produce this kind of response and fool a person into treating a digital entity as though it were real?

Monday, 17 March 2008

So much for Silverlight...

Microsoft has just licensed Adobe’s FlashLite for Windows Mobile phones - see here .

A little bit of background for anyone who doesn't really understand this. Adobe's Flash is the de facto standard for delivering animation, vector graphics and rich media to the web. Recently, Microsoft has released a technology called Silverlight that aims to do the same thing. Displacing Flash is quite a lofty goal though, even for Microsoft, as Flash has over ninety percent market share.

So what is behind this move of licensing Flahlite for mobile phones from Adobe? Is it a loss of confidence in their fledgling technology? Is Silverlight not all that? Is it perhaps too resource heavy (as Microsoft's technologies often are, they're often just pushing the next generation of hardware after all) for current generation mobile phones?

Perhaps Microsoft is playing it safe, providing all the options, unlike the iPhone? After all, there is no Flash on the iPhone. This did puzzle me for a while, until I learned that you can do voice over IP in Flash.. i.e. make free phone calls. AT&T and O2 wouldn't be happy with that. So maybe this is a move so they can say Windows Mobile is better than the iPhone, which in this case, would be true.

Whatever, it can really only be a good thing for Windows Mobile users... not that I'm one. I once owned an O2 SDK with Windows Mobile 2003 OS on it and it would lock up and crash all the time, so I sold it on eBay and never looked back. Now I use a small, regular mobile phone that never crashes and has very good battery life. Result.

Wednesday, 12 March 2008

Living in the "Digital Shadow"

Whether it be held on the web, in the multitude of databases that institutions use to hold all kinds of information about us, or on the hard drives archived from security cameras - what happens with all that data?

"My big concern is that pretty soon these organizations that have collected so much information about us will know more about us than we do about ourselves," Marc Rotenberg, executive director of the Electronic Privacy Information Center Latest News about Electronic Privacy Information Center (EPIC), told TechNewsWorld. "We need to start thinking about this, particularly as ID theft becomes more widespread."

What happens when the data stored about us exceeds what we've voluntarily committed into the digital domain? What if that day is almost here already?

Read the full story here.

Tuesday, 11 March 2008

It's good for you boy, blog it

It turns out that blogging is good for you. Ah, I feel better for just blogging that ;)

Monday, 3 March 2008

Flocking in Flash

I put together a simple flocking demo in Actionscript during the week and tweaked it a little over the weekend. The algorithm is very simple but does support a goal location and also obstacle avoidance. The goal by default is the top right of the map but you can click anywhere to set the goal there instead. You can think of this flocking as representing something like an insect swarm.

What's interesting is how the flock have some ability to find their way around obstacles without having any knowledge of the game space. They do know there is an obstacle there when they are repelled by it, but that is all. So no path finding in here, no influence maps, yet they do have some ability to get around the map simply as emergent behaviour.

There really isn't too much else to say about this as there are lots of flocking algorithms out there but not too many in flash so I figured I would share it with you.

Anyway, the demo is available here. It uses fifty sprites and is not optimised.

Snow is alive.

That's right, you read that right. Bacteria are necessary for snow to form. Read further here.

Gaia theory, anyone?

Monday, 25 February 2008

The challenges of a natural query engine

Thanks to the people who have given me feedback on the natural conversation engine in flash prototype that I put up online last week. It has been interesting to discover what people's thoughts on this have been, so I figured a follow up article is really required. Note that I'm now calling it a natural query engine and not a natural conversation engine; I have a different use for it in mind than I originally did (more on this later).

  • The first challenge : Accuracy

As the engine, on a basic level, analyses what the player has keyed in and tries to deliver an appropriate response, the most obvious was of achieving this is to use keywords on the responses. This is an incredibly basic, but somewhat effective, way of delivering responses but it has a number of large flaws. The biggest of which is that the player must know (or guess) what they keywords are, in order to get the responses out of the engine's database. If the player cannot do this, then he will get frustrated pretty quickly and move onto something else. That got me thinking about using word synonyms. Synonyms help solve this, but bring with them their own issues. Word can have multiple meanings, so synonym lookups can be very wide.

Keywords are very narrow, but synonyms are very wide.

Somewhere within that band is the correct meaning of the sentence that the player has keyed in. In the analysis for that, we need to throw away lots of common words (such as "a", "the", "there") as they will not be too relevant to the keyword searching. Although, at some point if I need to get the engine to recognise nouns, these words may come in handy.

A second problem with accuracy is word endings. For example, the engine has to understand plurals, case endings and so on. The keyword transform should match the keyword entry transformation or our search is not wide enough to pick up on what to a human is an obvious hit. The engine generates multiple variations of words by looking for common word endings and creating new potential matches by joining them onto the base stem of the word. This approach will match transformation with transform (note this is only an example, there is no keyword transform in the prototype).

  • The second challenge : Sequencing

The engine has a number of topics that are in its database. Within each of these topics are a number of responses that the engine can deliver, but each topic has a single entry point. For example, asking the character where he is from will deliver a short response about that. The player can then query further into that topic because the entry point to the topic unlocks other responses. This prevents the engine matching the player's response with something that hasn't even come up in the conversation yet. I also lock responses that the player has accessed, as pretty early on I realised that if the engine keeps delivering the same response to the player, it looks pretty stupid pretty quickly.

  • The third challenge : Context

This is something that I have put into the engine more recently. I'm evolving the engine daily and trying to make up for its shortcomings and getting it to understand context has helped this tremendously. Essentially, when the player has triggered a topic, any other responses within the topic that are unlocked will get top priority for selection. This is making a big assumption - that the player is likely to continue talking about this topic, which seems to be generally what happens. It definitely stops the engine from looking so dumb when it matches the player input with a totally different topic, yet the player was clearly continuing the same subject. I'd definitely like some feedback on this aspect as it's new in the protoype.

  • The fourth challenge: Richness

By richness, I'm referring to how much rich the knowledge the system has is. No matter how smart the code gets, it's using a rule system to select a response from a database and so the end experience is only as good as the database is. If there simply are no response for the input that the player has entered, then the whole thing will look dumb. I have some ideas of how to populate this (I'm using them already in then engine) and I plan on blogging about this at a later point.

At the moment, I'm building up general character background traits and this is essentially what the engine is searching. However, this would be only one layer in an actual game. A second layer would be things that every character would know, such as facts about the world, the time of day, what the weather is and so on. A third layer would be an emotional state layer (note, I model one emotion only at present - a general annoyance level which allows the other character to terminate the conversation if he gets fed up) which would add a lot to the believability of the interaction, I feel. A fourth layer would be specifics that only that character would know, such as a barkeeper with his problem with rats.

Use for an engine like this

I'm not thinking of replacing a conversation tree with this engine, but I am thinking about supplementing a conversation tree with the natural query engine. This will allow players to deviate from the limited selections in the tree and allow them to query the character on basically anything (providing the engine can match an appropriate response from the input to the database, of course). This, to me anyway, would be a step closer to real roleplaying. One of the things I really love about the game Mass Effect is how the characters in the game feel more rounded out than in other roleplay games I have played, but I'm still constricted by a limited tree to do this. I can't ask the characters about what their favourite food is, for example, and generally fool around in that possibility space. Utilising a natural query engine with a conversation tree opens all of that up...

In addition, a natural query engine could be used to reward the player. Hints and tips could be present for problems in the game, within this. So, if a player gets stuck, he may return to a character in the game and ask for help or more information. Not putting that kind of information in the conversation tree would be controversial for some, but more natural for others. After all, we don't want to give the player help when he doesn't need it, we can hold her hand but we don't want to treat her like an idiot.

The prototype
Try out the prototype here. I'm very interested in any feedback or comments you may have.

Thursday, 21 February 2008

Natural language conversations in Flash

I've been working on a role-play engine in Flash and thinking a lot about how to interact with characters within a role-play game. 

I'll rewind somewhat and put this in context. Back in my old school days, I used to play AD&D with a group of friends. I was normally the DM, the guy who designed the quests and took on the role of the monsters and other characters that the heroes would interact with. This was great fun, and led to some memorable scenes that even today, over a decade later, we will still sometimes discuss fondly. So why have those imaginary experiences stood the test of time within this group of old friends?

I believe that part of the reason is that, being an intelligent human being, I could react to their interactions with the characters in the adventures in a believable way. I had to improvise a lot, going off-script, and inventing back stories as we played. Now computer based role-play games do not really try and tackle this tricky problem in a believable way. Probably the best, most believable characters I have come across are in the computer game Mass Effect, which (like the classic Baldurs Gate series and numerous other RPGs) use conversation trees. Now these work well, but you cannot stray from the possible options that the game's designers have come up with and so when you run out of possibilities (or just want to say something else that hasn't been scripted), well, um, you can't - it's just a game. So there isn't too much role-playing actually going on in computer based role-play games, unless you involve real people like MMRPGs do, but then again, I don't think too many people are staying in character in those games. Correct me if I'm wrong.

So this brings me back to single player games and how conversation trees are good but don't really allow you much freedom. In discussing this with a work colleague a while ago, he alerted me to an old Ultima game that would allow you to free type keywords in to the characters. This (and the excellent Facade  AI demo) got me thinking about the possibilities of this approach. Of course, the problem with this is that you have to know the keywords which will trigger the correct reactions in the NPC's, but this can be solved by involving synonyms and also if you know the issue of second time around playing, where if you know the keyword you can get the correct response right away (my colleague gave the example of a grappling hook that you needed to scale a wall, when you know this, you just said grapple to the NPC and he gave it you right away whether or not you'd even discussed it with him), but this is solvable using an unlock list on the topics themselves.

So here is the results of about four days work in experimenting with this approach. V1.1 of my demo is available here. It is extremely basic; there is no preloader (wait a few seconds and something will actually appear). Type in the light grey box and click the dark grey box to send your query. Treat it as a query engine, where you can ask the character various things. I'd love to solicit feedback on this, so if you have any thoughts, feel free to share them.

Wednesday, 30 January 2008

When games programming experience becomes valuable for solving other problems.

As part of the large multimillion pound project I'm working on at work, there are lots of little tools that I've had to build to aid content authors and the technical team in the development process.

One of those tools is an automatic menu generator. We have a slight problem where, as part of the resources we're building, there are going to be about forty HTML pages with content that we don't know about and a structure that hasn't been decided yet and they need to be ready (with everything else for the next delivery) in only a couple of weeks. To top it off, the design hasn't been implemented yet either.

Developing a tool to help us to cope with a situation like this is obviously not that easy, but having some application that you can throw a template at (for the design), an XML file (for the navigation) and have it spit out the resulting transformed HTML is tremendously useful. It allows us to move quickly and meet the deadline even if the content authors are extremely late at bringing all the assets to the table. So that's what I've been working on for the past few days and brings us up to scratch with where I'm at.

I have the tool working and generating the navigation menu, which needs to show the detail for the level you are at within the structure, as well as menu options for the levels above. I use recursion for parsing the navigation XML and have it spit out the final HTML based on this; but it turns out this wasn't enough.

As each navigation branch in the structure tree could potentially contain the current page that the user is on, it suddenly occured to me that this was in essence, a pathing problem. Only the path through the resource that the user has taken to get to any particular page should be "open" on the menu. Other paths should remain closed, as only the sections that a user has gone through to get to the page they are on should be shown. I realised pretty quickly that I could bring my A Star programming experience to this problem in order to solve it. I was right. A Star is a famous algorythm used for finding a way around a map by opening and closing nodes. It normally involves a heuristic to optimise the pathing but I didn't need it for this; the navigation is not in 2D space, so that simlpified matters somewhat.

Ten minutes later, I had implemented a slight variant of A Star and fixed my menu transformation so that it produced the correct data. Bringing my games programming experience to bear on this specific problem was a huge benefit. I wonder if there are other problems I could use A Star to solve that are not game related?

Wednesday, 23 January 2008

The future is SSD.

Last month, I ordered a new Macbook laptop and an MTron 32gb Solid State Disk drive to go with it. Thirdy two gigabytes is fairly small, but I planned to expose other hard drives I have through my wireless network for heavy duty data storage, so 32gb would be enough for a boot drive.

Solid state disks have a number of advantages over their regular brethren. For one thing, there are no moving parts, meaning they use less power and generate much less friction - therefore less heat. Also, having no moving parts, they are more robust against knocks and falls. All these characteristics make them ideal for mobile computing devices.

SSD's have traditionally had a couple of weakpoints. Because they are essentially a big block of flash NAND memory, they can be much more expensive (per GB) than a regular hard drive. Also, flash memory is typically slow, especially at writing data. Not ideal to run an OS from, then.

Well, that was until the MTron drives came out. Take a look at this article from Anandtech: MTRON MSP 7000 SSD - Raptors Beware in which the MTron SSD absolutely destroys the Western Digital Raptor (previously, the fastest desktop hard drive, which I have in my G5 Powermac). 0.1 ms access time!!!! Reading that article really made my mind up (just take a look at the benchmark results). So I paid a small fortune, waited a while and the hard drive arrived.

I mirrored my data across from the standard Macbook drive and booted up from the MTron. It is very quick. Not just at booting, or shutting down (which is now instant) but at every day usability tasks. So quick, a friend of mine stated they have never known a computer be as quick as this!

My boot times went down from over around about a minute and 20 to 20 seconds. Everything loads fast. The system responds to everything you doextremely quickly. Money well spent, then.

So the writings on the wall for standard hard drive technology. A few years from now, performance like this will be available to everyone and not at a premium. Rock and roll!

Monday, 21 January 2008

HD Downloads... so where's the High Definition?

A few days ago I decided to try out Microsoft's High Definition movie rental service out on the Xbox 360. It's a relatively new service (for us in the UK anyway) and there are only 25 movies up there to choose from, which I'm guessing is a reflection of this whole thing being a bit of an experiment.
Some of those movies are offered in standard definition only (like the classic Clash of the Titans film) while some are in both HD and SD. The pricing for HD is a little steep but I figured, what the hell, I'll try it out anyway, as I quite like the idea of renting by looking through a list and downloading.

There are some issues with this model for HD content. First of all, the download size is quite large. I picked the Zodiac film (about the Zodiac killings, based on a true story) as my test film. It's not a special effects heavy film, but as I own a number of HD DVD's from when I picked up the attachment for the 360, I've learned this doesn't matter too much. Films like Serenity looks simply awesome in HD but other HD DVD's I have like a View From Space (an hour of footage filmed by astronauts heading to the international space station) are also very, very good. Plus I had heard from a couple of friends that it is a good film. It weighed in at about 6.9gb, a fairly large download, but fairly small for HD content. HD DVD and Blu Ray hold around 20 gb (or more).

Anyway, I watched the film and enjoyed it's twists and turns, but overall, thought I had picked totally the wrong film to test the service out with. That is, until I read this: Don’t believe the low bit-rate ‘HD’ lie. It turns out that the film didn't really look HD because it isn't at all. It's compressed more highly than a regular DVD!


Wednesday, 16 January 2008

Should Singletons be avoided?

First of all, happy new year all. I've been busy and not had much time to blog recently and not seen too much on the web to really get my teeth into. Until I found this...

According to an article in the Software Development Times many developers are thinking that Singletons are bad and should be avoided. I was wondering, why, exactly? In some ways it may be because using them as houses to store global varaibles (a use I often put them to myself) may be considered bad in the same way that globals are bad. The author comments on Singletons being bad for unit testing, but I tend to find the opposite is true myself. With global variables, you have to have access to whatever code sets up their defaults or any code that uses them will fall flat on itself when used in isolation of the main project. With a Singleton, those values are set up to their default values when the instance is requested for the first time, which it will be with a class that is being tested outside of the main project. So I'm left wondering, why would there be a backlash against Singletons as a design pattern? Is it that developers are struggling with OOP concepts (especially design patterns) and frequently misuse them?