28 September 2009

No Twinkies Allowed

Things that game designers should not do: The No Twinkie Database,  from the professional website of Ernest Adams.

Even great games can include design errors.
Here’s a list of things not to do.

These are all the Twinkie Denial Conditions described in my “Bad Game Designer, No Twinkie!” Designer’s Notebook columns. Each one is an egregious design error, although many of them have appeared in otherwise great games.

I've only read a few articles so far, but it was time well spent, and I'll be back for more.

21 September 2009

Math of 2DX Dice Systems

Hi, this is Kit from Orloff Military Academy here to do a guest post. I got the idea from my time playing BattleTech, but it didn't seem quite specialized enough to post on my blog. Luckily I have been kindly permitted to post it on GBR, so I would like to start out saying thanks for the opportunity.

This is an article I have been wanting to do for awhile and involves the statistics of systems that roll two identical sized dice. The one I actually know best is 2D6 systems because of my hobby playing BattleTech, however the math remains pretty much the same for all 2DX systems. Because of this I decided to assume 2D10 is being used to make the examples and graphs a bit more clean.

Simple Distribution

The first thing I feel is worth talking about involves the simple distribution that arise out of these systems just as a matter of course when you add the result of both dice together.

One of the easiest to spot is the % chance that any particular number will be rolled when using a 2DX system. The lowest and highest value will only have one possible dice combination (2 and 20 for the 2D10 example). The number of combinations lineally increases at a 1-to-1 ratio as you move toward the value of [N/2]+1 where N is the maximum sum of the two dice (in the following examples N=X+X=10+10=20). This is actually a very simple distribution as you can see from the graph:

Chance To Roll Better

From that simple distribution we get a very nice probability curve for attempting to roll equal or better than a target number. This type of roll is actually quite typical of games where some sort of roll must be made in order to successfully complete actions that can range anywhere from combat to convincing a merchant to lower the price of goods.

Take a look at the graph to the above. Notice that the chance of success is not linear at all, but rather curves more steeply toward the center, while leveling off near the ends. This is a direct result of the probability distribution I talked about above and it has a very significant impact on game play: a change of 1 to the difficulty of a roll will have a more profound impact on success toward the center of the possible number range than at either end.

For example, the difference between a target number of 11 and a target number of 12 is a 10% loss in success rate (from 55% to 45%). In contrast the change from 19 to 20 is only 2% difference (1% down from 3%). Likewise there is only a 2% impact in a change from 2 to 3.

Impact: Opposed Rolls

What I call an opposed roll is when two different rolls are made: one by whatever is trying to take the action (often a player or an NPC) and another by whatever is opposing them. In effect the second dice roll is setting the target number to beat on the spot.

In this type of play players need to be very aware of bonuses and penalties because so many rolls fall into the central portion of the graph and a penalty or bonus of 1 can have a profound impact. For example, 70% of all rolls in a 2D10 system will fall into the 7-15 range and 58% actually fall into the 8-14 range. This is in the steepest portion of the probability graph.

The result of this is that any type of action that poses a penalty upon the opposing roll without penalizing the player equally (or more), or one which gives the player a bonus without providing an equally helpful bonus to the opposed roll is amazingly powerful. This results in a 7% impact on the result from just a change of 1 to the dice roll. That is quite the significant difference. However conversely penalties and bonuses also reach a point of diminishing returns - which means that after a +3 or +4 bonus (or -3 or -4 penalty) is rarely worth going for more it if there are costs associated with doing so even if higher bonuses/penalties are possible. Dan was actually kind enough to make the following table:

Impact: Combat Systems

Another thing to consider is the style of combat that BattleTech uses: where factors such as range, movement, and so forth set the difficulty to make a shot. The target number doesn't change, however often any action you take to make your target easier to hit will also make it easier to hit you. By the same token, anything you do to make yourself more difficult to hit makes it more difficult for you to hit something else.

Now this means that when taking an action that will make your target more easy to hit you need to ask if the cost is worth it since typically you will be easier to hit as well. The way to do this is, thankfully, quite easy. You calculate how much your chance to hit the enemy will change and divide that by how much their chance to hit you will change. The larger the number the more the change favors you, while the smaller the number the more it favors the enemy (a result of 1 means things are perfectly even).

Doing this it quickly becomes apparent that if the enemy's target number is at either extreme there is usually no reason to not make both them and you easier to hit - if they are always hitting anyway you are best served to improve your hitting chances as well, or if they are always missing because of high target numbers any change is not too significant. This holds especially true if your target numbers fall toward the middle of the target range. Of course this works the other way as well and the logic is almost exactly the same when it comes to raising target numbers.

If anyone spots a flaw in my numbers/reasoning or has something worth pointing out please feel free to chime in! There is actually a lot more that can be talked about regarding these types of dice systems so don't hesitate to share your thoughts.

20 September 2009

Gamers Love Math

I've written before that gamers are fascinated by math and probability, and I am happy to bring two fine examples to your attention.

The first is Paint-it-Pink, a new blog by a science fiction fan, model maker and writer, with a long connection to Battletech going back to the FASA days. Her most recent post is a nice method of cost-effectiveness analysis for Battletech weapons.

The second is Orloff Military Academy, a blog featuring content for the Battletech community. Kit wrote me last week about doing a guest-post, and his article on the Math of 2DX Dice Systems will be appearing tomorrow morning.

I have added both of these to my list of Battletech blogs and bloggers in the first sidebar. I encourage you to visit and leave a word of encouragement welcoming them to the Battletech blogging community.

16 September 2009

Robosaurus

Just for fun, I give you ...

This isn't a Battlemech. Not quite. It is, however, well over 10 meters tall and masses about 30 tons, so it's on the order size for a light Battlemech ... and it transforms ... and it mounts a flamethrower.

Also of note is a bit of FASA history you can read about.

Robosauruses live at public events such as drag races and monster truck rallies. The typical diet of a Robosaurus consists of old cars and airplanes, flame broiled to a crispy perfection.

The Robosaurus site is an interesting read. In addition to pictures and promotional information, there are considerable details about the construction, engineering, and operation of this machine.

Also worth a visit is www.CanoSOARus.com the home of
Doug Malewicki's patented inventions and other engineering involvements. You might see some other of his famous inventions there too.

11 September 2009

Year One

One year ago today I published my first post on this blog. Today I'm going back through the past year and meta-blogging about my favorite posts.

September -

Lucky Dice versus the Water Test

My first post other than just "hello world". Rereading this, I didn't explain things very well, and I think I have improved in that aspect. More recently there was a better version of this Fair Dice test at The Scrapyard Armory.

October -

If Battletech were a Card Game

Here I first described the connection between Battletech and cribbage - most wargames and cribbage actually.

Not a favorite: Tater Titan!, a knock-off post which continues to gather many hits from Google image search. Go figure.

November -

Anatomy of a Black Hawk H - Part III

I love painting, I only wish I had more time for it. This mini is still waiting to be finished.

December -

The Mathematics of ... Candyland???

I thought this was a decent post. I put it up and went out shopping with my wife. When I got back home I noticed new several comments, and my web hits were exploding. Hello Blogs-of-Note. That was really big break, and roughly half the people who follow this blog signed-up shortly after this. I still get web traffic from Blogs-of-Note every day.

January -

Graph Paper Race

Encouraged by the attention I got from Blogs-of-Note, I wrote seven Math-in-Games posts, of which Graph Paper Race was (and still is) the most popular.

February -

Game Theory Week: Intro

My first attempt at a series of post all on one topic and all in one week. I discovered that series like this need a lot of work up front, and it helps to have a rich reserve of sources to call on. My other series (still in progress) are requiring me to create most of the material myself, and it's much harder.

March -

Battletech - One Versus All

Not my best month, because my life was very busy and my Dad was very ill. I had fun with this post though.

April -

Business Cards for a Games Blog

A good idea more than a good post. My Dad passed away a few days after I put this up, so April was a rough time for me. I've come to realize that I was writing in part as a release from the stress of worrying about his illness. Fortunately that is not the only reason that I write/blog; and this project has taken on a life of its own. I really think Dad would have gotten a kick out of this though, and I wish I could show him.

May -

The Origin of Battletech

Not a flashy post, but I like it because the history of games is interesting. This reminds me - it's time to follow up with John Curry and see if his new book is out yet.

June -

ORIGINS 2009: Day 3 - More Than Just Fun & Games

ORIGINS was definitely the June highlight, and this particular event really made the Con, the month, and maybe my year (still working on that bit).

July -

The Battletech Reader

July was a good month for me, with more ideas than I could write down coming out of my experience at ORIGINS. This particular post represents a different kind of success though, because it has lead to an ongoing connection with Steven Satak, and his creativity has spurred my own. Blogging is not just about writing to attract attention to yourself and speaking blindly to an unseen audience, it's about finding this kind of connection with other people that creates a conversation. Steven isn't the only one who deserves this credit (that will require another post), but serves as a good example of what I was looking for when I got into blogging. Thanks Steve!

August -

Playing Fair with the Chi-Square Test of Homogeneity

As I write this it was still August a week ago, so it seems a bit silly to "look back". This post brings things full circle though; I started and ended writing about fairness of dice, and that seems fitting somehow.

Next up: YEAR TWO

08 September 2009

Paper Figure Generator

The Stages RPG site has a feature that lets you create your own paper figures, which can then be cut out and assembled. That might be handy for your next RPG game.

If this printed all 6 sides instead of just two, you could make your own Squadron Strike and Attack Vector: Tactical ship boxes.

[UPDATE] Ad Astra Games has an application to create six-sided box figures as part of their subscription service for Squadron Strike.

05 September 2009

Pole Dancing

With a title like that, this will probably be my most popular post ever! :-)

As many of you have noticed already, I have a pole poll up inquiring try to determine if people have found my blog because of my custom GBR dice, which I ordered from Chessex as sort of a business card to help advertise this blog. These dice have certainly been popular, between friends and two conventions most of the 400 I ordered have been given out already. I don't know that a lot of new readers have come here as a result, but I will be happy with even a modest response. Those dice are out there now, and a lot more people will see them as time goes on.
So if you haven't yet, please respond to my poll not pole! in the right sidebar. Note that you can vote for more than one item, so check all that apply.

I should mention that my friend Tom of PhotonCutter Studios handed out dice for me at GENCON, and I thank him for that. I'll thank him better soon by posting about his expanding product line.

I see a number of people are already indicating they "want dice". I'm not opposed to ordering more if I need to. Hopefully the opportunity will come to give good homes.

Also, my thanks to Saxywolf for giving me the idea for this pole poll.

Finally, if you have read this far and are disappointed not to find scantily clad women performing acrobatic contortions on polls poles, then this is what you want (a little NSFW, but not very)

03 September 2009

Itatsi: Part 2

My communication with the author of the game Itatsi.

Jim writes:
Thanks for the support. Itatsi is a work in progress. I'm still trying to figure out how to make it into an attractive game. So far only my duty bound family has said it is playable and interesting.

I got the idea while playing with Elsberry's Weasel page. I tried using words as the target instead of sentences. I discovered that words could be made in ten or twenty generations with a small population. From there it was just a matter of learning JavaScript and figuring out how to do the dynamic HTML. I've dabbled in these before, but never to this extent.

I had visions that Itatsi had commercial potential, so I hid the mutation engine and fitness scoring engine on the server side. ( I also needed a database to handle the fitness table.

The fitness table went through several generations. I'm told I'm using a hidden Markov model. I didn't know what that meant until I looked it up. The last math course I took was intro to statistics in 1970. I developed a frequency table for letter pairs and triplets. The Weasel children are scored for fitness base on a database lookup.

The fitness scoring was an afterthought. I originally intended to make a very difficult game in which the player would be completely on his own. This is still and option, but I doubt in many humans could have the skill and patience to go beyond five letters. So I decided to make a hinting engine.

[and my response]

Dan: Thanks for the reply. I did a bit of research (ie: playing) so I could understand it better. I discovered that I would often exhaust the un-scored words on for the current stem, and I by intentionally choosing a parent with a lower fitness I could quickly move to a parent that would allow me to score well again. In other words, I had to go down in fitness before I could move up; an interesting evolutionary strategy!

This certainly qualifies as "a series of interesting decisions", which is Sid Meier's definition of a game, and as such it is playable as-is. My wife played a lot of "Scrabbulous" before Hasbro sued to shut it down, and Itatsi has some similarities to that, though a very different game engine (I might be mistaking Scrabbulous for another game). The scoring system allows for a competitive goal, which is always good in a game. It would be nice if you could compare score with other players too.

It occurs to me that if different players could all start with the same random seed number, or if a single player could replay a game starting with the same seed, this would allow a common starting point for competition. Letting two players play with a common list of score words (one player can't score a word if the other player already got it) would add a different sort of competition.

I congratulate you on a clever idea, and I hope you might have some success in taking it commercial.

Jim Responds:
If you check the demo mode an set a game length of 100 or 500 and a long word length you may notice that the demo engine automatically chooses the second most fit child every fourth generation. You can see this by watching the fitness scores. I call this my extinction event. I find it gratifying that you found that strategy independently.

The yellow (or gold) highlighted child has the highest fitness score; the silver child the second highest. These hints can be turned on or off. As currently written, a player accumulates no score while hints are on. I have been thinking of having the program swap turns with the human player and compete for score. The program has the advantage in early rounds, but the program has the disadvantage of not knowing about scoreable words, and not knowing to avoid words that have already been scored. It does remarkably well anyway in demo mode -- something that I find relevant to the issue of irreducible complexity.

You might also find the variable word length demo interesting, if given 500 generations. The French language appears to have less distance between words, and 10 letter words appear quite often in demo mode. You can switch language in mid-game.

Dan again: And I did. I played the variable word length, and I found it quickly took me into longer strings than I could easily manage. I therefore tried to keep the length from growing too much and so I could consistently get new words, but this may have been poor strategy; Longer words score many more points, and I can afford not to score any words for several generations if there is a big payoff down the road. Darn, Now I want to go try this out - a hallmark of a fun game. :-)

02 September 2009

ITATSI: A Weasely Word Game

Serendipity is a wonderful thing. Comments on my other blog lead me to contact the author of Itatsi, a game based on a simple search algorithm presented in Richard Dawkins book The Blind Watchmaker. First though, a description of the game itself:

The ideas is very simple, starting with 50 strings of three random letters, pick one that will be the parent of the next generation. With each new generation there is a random chance each letter will be randomly replace by another letter. The game has a database of some 30,000 words (3 letters or more), and choosing a parent that spells one of these words will score points - more points for longer words. In the example below there is also a chance the string will become longer, allowing longer words to be found.
The game also gives a "fitness" score, when is related to how close the parent string is to other words in the database. A higher fitness indicates a greater chance that the next generation will contain words that can be scored. Each word can only be scored once, so the strategy is to choose parents that not only score points, but also lead to new words that can be scored.

I'll be describing the screen-shots as I go along, but you might find it easier to see if you open another tab or window.

Those are the controls for starting the game (most of them). Word length controls the number of characters randomized. Remember that longer words also score more points. For this example I'm playing with variable length words. For starters you will want to select "Training Weasel: Yes".

So here is the first turn or "generation" of the game. It doesn't say, but because about half of the 50 children are "CAU" it appears that "CAU" was also the original parent string.
The gold or yellow "CAW" string is the child with the highest fitness, or the most likely to generate scoring words if chosen as the parent. The silver/grey "CAN" is the second highest fitness.

The other colors indicate children that have mutated (one or more letters changed) from the parent. Note that some of the children have randomized to become longer (4 characters instead of 3).

This turn I select the string "CAW", and the next generation will be created by randomizing that string 50 times. (below)
You can see I scored 2 points for the word "CAW" and its fitness score was 46.
In generation 2 the highest fitness is again "CAW" (I could choose any of them), but since I already scored "CAW", I choose "WAW" instead.
Above is generation 3. I scored 2 more points for "WAW", and "CAN" is now the highest fitness. The "Training Weasel" is the feature is what marks the highest two fitness as gold/silver. You will want to use this feature to learn, but the game does not track your points when it is giving you these hint.
Now here comes a a bunch of turns.
At generation 12 now, and you can see my chpices over on the right. "NAGS" scored 8 points. Let's zoom ahead now ...
... to generation 20. I scored big on turn 17 (12 points for HEAL and HEALS), and another 14 on turn 18. I'm up to 7 letters now, and that might be trouble because it gets harder with longer strings.
At generation 38 now, and I think that's enough to give you the general idea. I had one more screen-shot to show, but I must have forgotten to save it. Too bad, because it the Weasel found the string "BEHE" (a little joke there).

In part two, I'll share my exchange with the game creator.

01 September 2009

20 Sided Women

If you combine a friend and a blogger, do you get a blend or a frogger? :-)

My fellow blogger D20 Sapphire has started a new blog, the 20 Sided Women Project:

Sapphire writes: So what is this project, you say? Its simple in concept. Essentially I don't feel like there is enough out there about women in the role playing game community. There are a couple essays here and there, but there hasn't been a real investigation. So I decided to investigate.

Good luck to Sapphire, I'm very curious to see where she takes this. Go investigate for yourself what else she has to say at the 20 Sided Women Project.