Sunday, July 12, 2009

Design: Uniqueness

Every good designer should always make sure they have an answer to one question about their game: "What makes your game unique?" Not having a good answer to this question is often a sign of a boring clone of another game. Ideally, there should be several reasons why a game should be set apart from its peers. In my last post, I spoke about the small details that I feel make a big difference in overall quality, but that is just one of many ways I am trying to make the module special.

One thing that's unique about this current project is the amount and diversity of custom items available for players to use - or have used against them! There are 44 custom weapons currently available for players to pick up, and the diversity means no matter what weapons you would like to use, you'll be able to find some that pack a signficant punch. Of course, given that these are no ordinary weapon, each has it's own detailed backstory and description, not to mention that some feature unique abilities. Some may be able to unleash fearsome effects upon enemies, though powerful magic always has its drawbacks, and some weapons might prove to be equally dangerous to their owners!

But such powerful items would be too much were they not match by equally powerful enemies. Yet the variety of enemies that players will face should provide them with some interesting challenges and strategic decisions. Many creatures will require special tactics to beat, forcing players to pick their attacks and their targets carefully. I am really wanting to provide some unique challenges in the combat arena, and believe that I'm giving enemies some special behaviours and weaknesses that will keep players on their toes.

Another unique thing about the module is its setting, for while it relies heavily on the D&D universe and many characters that players may be familiar with, it will be quite unlike anywhere else in the planes. I'll try to discuss the setting more in the future, though this poses some interesting challenges without providing plot spoilers...

Saturday, July 4, 2009

Design: Small Details and Scripting Tales

I'm afraid I don't have any new screenshots to show off, as lately my work on the module has been polishing up some area design and doing some scripting. As a programmer, generally I don't find scripting too taxing, but I do sometimes get hit by issues that take quite a while to nut out. This week has raised two such problems.

The first issue came out as a result of me being sick of fighting a horde of orcs/bugbears/giants/generic enemy X who all come at me with exactly the same appearance and weapon. So I decided to implement a relatively simple script to give creatures a random weapon upon spawning. While the logic for doing so was relatively simple, the script didn't work, and the creatures spawned in weaponless. After a lot of testing, I eventually tracked down the problem to the fact that NPCs can't equip a weapon that isn't identified. Frequently, creatures will have an unidentified magical weapon in their weapon hand, which poses no problem. However, if the item is in their inventory, and they have to equip it, then it must be identified before the equip is attempted, otherwise the attempt will fail, just like it would for a PC.

The second issue was a result of my trying to produce some atmosphere for one of my areas. This involved spawning a creature at a random location near the a PC and then making it move. This worked fine... except for that periodically, the game would crash! Such undesirably behaviour had me stumped until I hit upon the realisation that the creature was spawning in a non-walkable area and attempting to move - causing a crash just like a player trying to move in an unbaked area. After hunting around in the toolset, I found the FindSafeLocation function to solve the problem.

The reason I spent so much time fighting these bugs is because I feel it is small aspects like this that makes games special. I want players to have a unique experience while playing this module, and it's these small things that I feel go a long way to providing atmosphere and polish, even if the majority of players don't notice it. I'm reminded of a note in the Readme for Maerduin's Harp & Chrysanthemum, begging players to read at least one item description. I appreciate that dedication, and it's wonderful to see when players enjoy those small things. Trust me, every time a player notices those little details and smiles, the designer gets a real kick out of it.