Monday, November 24, 2008

Procedures, part 3 (Monsters)

Continuing on with our trip into the world of EPIC SOLITAIRE NOTEBOOK ADVENTURES, we now move on to the next challenge...creatures to beat up. But let's review again what the stated goal of this exercise is: creating a game where components are created "on the fly" as needed.

First of all, I missed card 15 in the original card pack, which I have added back in. Click here for all the cards.

There are a few things to consider with regards to monsters in your basic creature-bash adventure game. One of the more important features is that the monsters somehow must scale in power as the player's character "levels up" in power, so as to keep the game interesting to the player. While running around in God-mode squashing monsters like bugs on a truck windshield might be fun for a little bit, a more interesting game-y approach is to somehow ensure that encountered monsters are relatively equal in strength. Even more interesting would be a situation where the monsters are also leveling up somewhat independently of the player, and a major factor of the game would be the player "racing" with the monsters to keep up.

The above mentioned race brings into consideration probably one of the least considered game design devices, which can be called The Clock. The Clock is usually subtle and somewhat forgotten (by most players) in most multi-player games, because it's never realized as to what it is. Ultimately, this is the point at which the game is declared over. It can be "no more tiles left to play," or "once a certain score is achieved," or any other number of ways a game can end. It is important, however, the realize that the clock is another resource, direct or indirect, that controls the game.

How is it a resource? Good players recognize the Clock. While most players understand that "once the tiles are gone, the game is over," a good players sees the Clock and, with some basic math, understands what it really means; there are 80 tiles to draw, there are four players, the game isn't over once the tiles are gone as much as it is over after I've taken 20 turns; 20 turns to maximize my results. From a game design standpoint, it's probably not a good idea to look at things as just as a game over condition, but as the number of expected actions a player can take.

So, getting control of the Clock is pretty important. Any game that ends with a player saying "if I only had one more turn to bring my evil plan to fruition to utterly destroy you" is a good game, in my opinion. Regardless of the above mentioned player's actual capability to really bring that plan into actuality. But that is a hook that demands the player to play again, because he was "merely" just one step away.

Anyway, the Clock will be the race between the monsters and the player leveling up. Interestingly, this will be somewhat indirect, as the player will either die during an encounter, or the player can retire with whatever goods he has obtained. Retiring will be at the sole discretion of the player, which will most likely be the point where it becomes obvious that the monsters are too strong for him to deal with safely any more...the risks of death will be too great.

Anyway, on to monster creation...

Aside from the sheet of paper where the map is being drawn, you will need another sheet which will be used for our "Monster Manual," but since I'm sure that's trademarked, I'll call ours the "Monster Journal." On the far left side, label each line of the sheet of paper with the alphabet, one letter at a time, starting with A on the top row, and ending with T twenty rows down. Much like creating Kingdom names from the last post, each monster, as they are created, will be referenced by a unique letter, and probably should be named starting with that letter, but that is left to your discretion.

A monster is comprised of various traits, again like Kingdoms. These are it's Type, Name, Level, Speed, Loot, and Flock Size.

Right now, before the game starts, you need to "seed" your Monster Journal with the types of Monsters you want to be dealing with. You should pick 5 or 6 different types, such as "poisonous", "undead", "flying", or "6 legged." The categories you choose don't matter too much, it's up to your personalization, and will affect things later when we talk about magical treasure creation later. After selecting your chosen categories, you should randomly allot each letter on your Monster Journal a type. Spread them around. Mix'em up.

And now you are all set.

During the game, on every turn, after you move to a new Kingdom, draw a card. In the middle right-hand side of the card, there is a grid of land types, and some letters and numbers.

The double land types directly refer to the two land types in the Kingdom that you are in. So, if you are in a Kingdom with a Mountain and a Desert, scan over this grid. If you don't see those land types, nothing happens. However, if there IS a matching pair of land types, then some event happens. If it is a letter, then there is an encounter with a monster.

I can talk a little bit about the math behind the relationship of the land types and the event grid. There are 10 different possible combinations of the four land types ("specific ordering" doesn't matter in this case...Forest/Mountain is the same as Mountain/Forest). Each card can have up to 8 different combinations, and therefore, up to 8 possible events.

However, the +1 events are considered to be "good" events. They help build your world without a chance of death. In general, the player has about a 50% chance of a monster encounter each turn in the current card set due to a creature letter appearing.

As another side note, the actual balancing of the creature letters is not a mere random placement. In fact, each letter is weighted towards a specific land type. So, if you go exploring mostly in forested Kingdoms, you will encounter the same forest-dwelling creatures more often. Calculating and fudging data and numbers for this kind of thing is easily handled within your friend, a spreadsheet program, such as Microsoft Excel.

Aside from the basic gee-whiz factor of this letter pairing, there exists a subtle strategy within the game because of this. Simply, if you know that the most dangerous creatures live in the forest, and you don't want to deal with them, it's probably wise to avoid the forests if traveling. But as you will see later, this comes at a cost of "pumping up" the lower level creatures, as mentioned in the race/clock discussion above.

For right now, we won't bother with the details of the battle (or the other actions that the other icons take). We are still concerning ourselves with the creation of a creature...

Continuing with our example to the left, if we are in a Kingdom with land types of a Mountain and a Desert, then the creature designated as a G attacks. If we have not "built" this creature yet, we will need to do so now.

You've already given him a random creature type; let's assume he's been typed as a creature who you've designated as "Stone Throwing" at the beginning of the game.

Ok, so creature G, let's give him a name. As naming the Kingdoms, it's usually a good idea to name the creatures with the starting letter for easy reference. And since creatures have a tendency to hang out in specific land types, we'll call this creature a "Gorge Orc," since that's the kind of fellow who would seem to want to hang around Desert-y Mountain type places.

Next up, is Level, when a new creature is introduced to your creature journal, the creature gets the same level as your character's current level.

Speed is handled by drawing the next card. Right below the event grid is a banner with a ghastly looking monster; his speed is shown in the lightning bolt on that card, so write that down.

Loot is again handled by drawing another card, and to the very right of the lightning bolt is a number; write that number down for the creature's loot.

And finally, Flock Size. Flock Size does two things at once. It keeps tracks of how many times you encountered this monster, which for all practical purposes, is a pointless data point. Since this is the first time w've encountered a Gorge Orc, put a single tic mark here.

But the second thing is important. Every time you encounter a creature, another tic mark is added to the Flock Size. This also indicates how many creatures make up the "creature's party." So, the next time you draw the G event, you will be battling 2 Gorge Orcs. The third time, there will be three, etc.

So why is this important? This has a lot to do with scaling the creatures against the player's abilities. Obviously, introducing a new creature at the same level of the player's character keeps the scale balanced, but what of the old, scrawny level 1 creatures, while you've grown up to be a strapping level character? By increasing the NUMBER of the low level creatures that attack you as you get stronger, the integrity of the creatures is kept stable while becoming a strategic race clock to battle against.

At this point, I guess I need to point out a little tidbit about your hero. He tops out at level 10. But creatures don't top out with regards to the amount of creatures that can band against you. And so, there is your clock you are racing against in this game; the ever increasing growth of creatures in the world.

For example, as a level 8 character, you might want to putz around in the forest because you know that there are a bunch of level 1 Drunken Elves that you can beat up on, while avoiding the level 8 Beach Whales in the desert. However, pretty quickly, after a few encounters with the Drunken Elves, they start amassing in quite bigger what point do you decide that maybe dealing with 2 Beach Whales is a better choice that 10 Drunken Elves? And then, at what point does it maybe become prudent that you are better off retiring with your loot than risk dealing with the 12 Drunken Elves OR 4 Beach Whales?

And so, as a recap, here is our "G" creature:
Reference Letter: G.
Type: Stone Thrower.
Name: Gorge Orc.
Speed: 8.
Loot: 3.
Flock Size: 1 tic mark (the first encounter).

Repeat as new creatures are needed. Or increment your Flock Size as old creatures are re-visited.

Coming soon, you and your ever-growing world.

Labels: , , , ,

Thursday, November 13, 2008

Procedures, Part 2 (The World)

Ok, part two. So, as a quick refresher, the design goal here is: by designing the game in such a way that data parts of the game are "built on the fly," we can keep our original component count low, while, in theory, making a pretty "big" game.

And so, with much ado, I present... Epic Solitaire Notepad Adventures. A grand solitaire adventuring game across vast wildernesses, with mighty battles, missions of intrigue, incessant looting....

...all on twenty cards. Which you can download by clicking here. All you will need is the cards, plus a writing utensil (a pencil) and a pad of paper. And a coin, I guess, if you want a token to indicate where you are.

A sample card is off to the left here. There's quite a bit of data point here, which are used to describe various aspects within the game, and to randomly build game data for use in the game.

The plan here is to discuss each system a bit individually, and how it relates to "on the fly" data components. The cards will most likely change somewhat as I get a bit further on in the development; in fact, there's always the chance, like most things of a design-y nature, that the damn thing just won't work, and it eventually gets tossed on the dusty shelves where all the other bright ideas that didn't pan out wind up.

ESNA is basically a solitaire fantasy world game; go around the world, go do missions, level up, beat up on monsters and steal their loot. There seems to be some calling for this kind of game on BGG on occasion. So, it's a good target to shoot for. As you will notice, unlike a typical Hack-n-Slash loot game, the cards don't have any flavor text, or names of fascinating creatures and such. What the cards DO have is the raw data needed for creating these things. It is up to the player to add personality to the things that get created on the way as the cards merely provided attributes to these pieces of data.

Anyway, this will become more clear as we go. For starters, let's get you building some worlds!

So, right now, the core gameplay, for all that we care out, is moving around in the world. The general deck action that we all know and love applies: draw a card, get the data you want off the card, then discard. If the deck empties out, reshuffle the discard pile and make a new deck.

On one sheet of paper, you will be drawing a map of the world. The map will be drawn as a series of land regions known as Kingdoms. Kingdoms are places that the player can move back and forth through, having completely fabulous adventures and such. Kingdoms have various attributes, most of which are assign by the ESNA cards, but some that are assigned, or placed by the player. The player aspect of this is important, as it grants a bit of strategy to the mix.

To begin....we need a Kingdom for you to start at! Draw the border of a Kingdom on your pad of paper. A Kingdom can contain A) a Name B) a certain amount of paths to other Kingdoms, B) two land types that describe the type of Kingdom it is, C) A Village, A Castle or a Temple.

Doing the easy part first, give the Kingdom a name. There's only one restriction to this...each Kingdom name must start with a unique letter, A through T. This allows the ESNA cards to "call out" a particular Kingdom when necessary by referencing just the letter (A,B,C...T). Sure, you could simply call your first Kingdom "A", but there' no fun in that. Let's go with "Alyndale".

Paths let you travel to neighboring Kingdoms. Your starting Kingdom starts with 4 Paths, which are drawn as dotted lines that extend to the border.

Each Kingdom has two different land types associated with it; in this case, the cards determine these attributes. So, draw a card off the top of the deck, and look at the land type in the large square sort of centered at the top of the card. There are Forests, Mountains, Deserts, and Farmlands. Draw the symbol in your Kingdom. Repeat this action one more time.

Finally, since this is your home Kingdom, there is a Village here. Draw a little Village icon in this Kingdom, and give it a Level of 1, by drawing a "1" in the center of it. In a later post, I'll get into the leveling system.

Ultimately, what you should wind up with is something that looks like the Kingdom off to the side here. Alyndale, in my world is a pleasant forested Kingdom! Oh, sweet Alyndale.

All cutesy aside, this is the basic data structure for a Kingdom. Generally, as you follow paths and go off exploring, you won't be placing Populated Landmarks (Villages, Castles, Temples) as those are added by a different means, but this is pretty much it.

So, let's do a little exploring. Following the example above, your hero decides to take the path on the upper right to venture off into the world. So, go and draw a new region for the shape you want this Kingdom to take, draw a path that continues into the new Kingdom, and give it a name starting with a letter you have not used. After this, draw two cards to determine the land types the Kingdom contains.

However, there's an additional card draw that's required when moving to a new Kingdom. After determining the land types, draw one more card, and look at the very upper right hand corner of the card, for the stat that lists "addl. paths." The indicates how many additional paths you can draw from with in the Kingdom. In the case of my example, "Beaverton" drew a card that lets me draw three additional paths. It should be noted that the borders between two Kingdoms can only include 1 path.

As your hero continues to go off and find new Kingdoms, there's a bit of trickiness in the way you build your world. Since you only are able to build a single "free" path in a new Kingdom when you follow a path to get there, trying to build a nice multi-faceted network of Kingdoms is risky. But at the same time, you don't want to be building a "single long chain" of Kingdoms. You don't want to be exploring Chile.

So, let's take a look at a further example of this; a new Kingdom called Caldwilly. Exploring from Beaverton into the new Kingdom of Caldwilly, we decided to draw Caldwilly close to Alyndale (in order to make a nice, easily travelled network), and drew our "free" path from Beaverton into Caldwilly. Then we drew our land types. Finally, we drew for additional paths.

And got "zero additional paths."

So, the path that we expected to connect Caldwilly to Alyndale doesn't exist, so we will have to cross out the "dead" upper-left path in Alyndale. And so it goes.

Anyway, this is the basic building blocks of building a world "on the fly." There's quite a bit of personalization going on, and a bit of strategy, with a dash of luck, so you won't be able to build the perfect network of Kingdoms. The important thing to concentrate on here is how player-created data filled up a "virtual template" for the game rules to understand. And of particular note, pay attention to the first-letter coding of the Kingdom name, as this will be used further.

Next chapter, the Kingdom's population grows, and monsters appear.

Labels: , ,

Tuesday, November 11, 2008

Following the Procedures

Recently, a much-awaited digital game FINALLY hit the market. Spore, by Will Wright, for those who aren't aware of it, is another in the long line of his sandboxes. While these types of games have game-y elements, there is no main goal or story to complete. Granted, Spore does have this in a small amount: the object is starting with a single cell organism, eventually evolve and go off and conquer planets. However, it's really more about mucking about, and seeing what happens.

What makes Spore unique is the way that the data is handled. Instead of having massive teams of artists developing massive amounts of content for the various races, creatures, globs of primordial ooze, etc, all of this is handled procedurally. Basically, creatures aren't defined by what the artists make them look like, but instead, by simple software definitions of said creature, and the program just "figures it out." This allows for immense flexibility, as you just apply a few random numbers to a creature template, and TA DA, you have a living, breathing creature that knows how it's supposed to walk, fight, and otherwise generally behave.

What does this accomplish? Well, for one, size. The game doesn't need to have a bunch of pre-programmed walk motions, designed specifically for a pre-drawn animation cycle, designed by an artist. It just needs to know that the creature has three-legs of X size. Since artwork and texture are generated on the fly from this thinking, there's no need to have to import 100 Megs of texture images. It's just created as needed.

Additionally, this allows the users to make infinite combinations of creatures, without having to deal with creating their own textures and monster-shaped polygonal meshes. And once on the internet, suddenly there's millions of creatures, all defined by users, polluting the in-game universe, with very little "real artists" getting their hands in the mix.

One of the more imaginative side effects of this is the way creature data can be moved from one player to another. Since creatures are defined by various database attributes (as opposed by pre-created artwork), the file size of any creature is REALLY TINY. Sharing a creature is as simple as "taking an in-game picture" with the camera tool, and forwarding that image to your friend. What the game does is store all of the creature attribute data in the alpha channel of the picture; what is amazing about this is that all of the data that it takes to accurately replicate a creature is actually smaller, file-size, than the JPG IMAGE OF THE CREATURE ITSELF!

In fact, it is so easy to move creatures around is that if you want a creature from the Spore website, you simply drag the image from the website into your Spore program. Quite amazing stuff. (I've been amazed at this kind of stuff before, feel free to click this link.)

Anyway, what can we learn from this, in a table-top world. Obviously, when you are talking about player-creation, a few notables come to mind, such as Dungeons and Dragons, or really any game out of the RPG genre. But there's an interesting table-turning factor here; while Spore is a world where users create all of the elements in the world. D&D seems to be, aside from some character creation aspects, where the players create the world, and populate it with pre-designed denizens from a Monster Manual. I'm not saying that all D&D groups do this; I'm sure there are many out there that truly build a complete world on-the-fly; but most of the money made on RPG is based on creating a system, and then having the players buy countless expansions of new content, as opposed to creating their own.

So, where am I going with this?

One of the secrets of a successful print-and-play game (successful being a term that is rather fungible in this genre) is having a tiny component list; the less components that are required to print out and cut and paste and prepare, the better. No one wants to spend 3 hours building a game that isn't potentially fun; but maybe if it took the player 15 minutes, it's worth the risk of the time.

However, typically, a simple component list also waters down the game a lot, down to a simple game (unless it's some wacky abstract, where the depth of play comes from a more analytical nature). So, the question arises, how do you make an interesting, long-playing game with as little components as possible?

A completely viable solution to decreasing the component list is reducing as much data as you can to being procedural, as described above. In other words, the game should not necessarily come with all of the data pieces, but instead should just have the required rules to build the data units as you need them.

Aside from compactness, this also creates a game where each game is unique. You don't need expansion cards later to "refresh" the game, as the game constantly refreshes itself through the building of the data as you progress....

Soon to come, part 2, an example game....

Labels: , , ,