I've been playing board games with some of my nerd buddies lately, and, as always happens when I partake of cultural activities, the creative impulse is fired up and I start thinking (mono-maniacally) about how to make my own.
As I see it, there are 3 major design aspects for these games:
- Mechanics and
- Art work.
Theme and art work can be evaluated using your own sense of taste.
But mechanics can only be evaluated by "play testing". And this is the major limiting factor for a solo designer; even for a team of people this a very resource intensive problem.
So my mind then turns to genetic algorithms (GA)... how can I build a system that represents the rules of a game in such a way that they can be evolved? And in particular: how can the effectiveness of a set of rules be evaluated?
There's two tricky aspects here:
First you'd need to build a general game playing engine that can play the game against itself.
Second, you'd need it to provide information about how "fun" a given rule-set is to play. This sense of "fun" is the crucial thing that needs to be defined.
But on that first problem for a moment: a general game playing engine. My research led me to find that there are "general game playing" engines out there. And the academic term for them is (drum roll) "general game playing engines". One example is Zillions of Games("ZOG") which encodes rules as S-expressions. (Old timers: yes lisp of course; newbs: like JSON.) ZOG includes a 'self-play' mode in which it plays the games against itself. I don't know how good it is at the games.
However ZOG is not capable of representing the kind of games I want to evolve.
I read this short paper: Automatic Design of Balanced Board Games (pdf)
This was an interesting and very straight forward read.
They used ZOG and a GA to explore rule variations in 2 player board games (such as checkers, reversi, connect 4) to evolve rule systems.
They had a very limited sense of "fun" Comprised of just two things:
- Don't confer an advantage or disadvantage to the first player (they call this "balance" -- though game designers use the word balance for a lot of other concepts too)
- Avoid games ending in a draw.
Representing any type of game.
In my theoretical system you'd need to be able to represent all sorts of games that combine cards, boards, pieces, trading, information hiding, and so forth.
It might be worth describing first a single "über" game that demonstrates all possible elements.
Here's a partial example.
X6 are numeric variables which would be set in the rules. Most such variables would be equal to zero.)
Start of game
- Each player is given
X1 "Action" cards and
X2 "currency1" cards and
X3 currency2 cards and
x4 "currency3" cards (and so on for
N1 types of currency).
- They are also given
X5 Power cards, and
X6 cards from a shuffled deck of all card types. They hold these cards where other players can't see them.
- They are also given
X7 cards, face down which they cannot see.
X8 cards which are placed facing out in front of each player, such that they cannot see them but every other player can.
They also have
X9 cards face up in front of them.
The layout and setup of the board(s) would need to be described in a similarly generic way.
A turn might be described something like this:
- Player may roll a dice, result
- Player may roll a dice, result
- Player may flip a coin:
- Player discards
n2 cards from their hand, turns over
n3 cards, picks up
n4 cards and discards
d1 cards from their hand and picks up
- Player may choose to play
A1 action cards. Or they may allowed to buy the right to play up to
A2 action cards. They may...
A possible "building" phase and a "trading" phase would be included as well, including moving pieces on a board, and trying to guess some series of facts.
Game ends when any player fully understands the rules. Ha ha.
Let's say we succeeded at building out a complete über game in that manner. It would be trivial to represent in a GA and easy to combine/mutate. The challenge would then be how to evaluate the "fun" that each player has.
My idea of fun
It's generally fair to say that the first player shouldn't be more or less likely to win than any other player. And games resulting in a draw are not satisfying. So we'd need to inherit those two rules.
But there's a lot more to it as well.
The sense of fun that you're targeting will be different at different times. You might want a game that is quick to play or long to play. You might enjoy learning a few complex rules, or a lot of complex rules. You might like games where the optimal strategy to employ changes throughout the game. You might like it if there is a constant change of who is in front (unlike, say, monopoly, where one person gets in front and then slowly destroys their competitors over a long period of time). You might be able to evolve games where being in front is a disadvantage until the end: or you might hate that.
It's crucial that every part of the mechanics has an influence on winning/losing. You shouldn't need to hold more than a few things in your short term memory. Card counting probably shouldn't be rewarded.
You might like games that involve double-crossing. You might hate such games. You might like games that reward skill, or that have a certain mix of skill and luck.
You may need to try encoding other succesful games and see if you can find a way to measure the types of fun that they involve.
Anyway -- it sounds like a big task. I wish you luck. I think I'll get on with doing other things.
Anyway, while researching this I was at Board Game Geek, and under the "Board Game Design" part of their forums I noticed a Seeking Play Testers forum.
This gave me an idea for a film or series of films, or a sitcom:
A frustrated boardgame designer abducts a group of nerds, and keeps them in an underground lair, where he forces them to playtest his hundreds of wacky game ideas.
It would be a comedy but would also be spooky creepy scary fun and drama too. I picture the nerds as being a kind of Buffy Gang, though maybe with a bit of an IT Crowd tilt.
I think this could be an awesome sitcom. I'd definitely watch it. So instead of making that complex game evaluation engine, why don't you bash out a few episodes for "Games Underground."
Email me the royalty checks when you're done. Cheers.