This issue: A Very Special RussCon Report!
The usual evening's report and ratings!
RussD gets drunk and rowdy during explosive Sunday gaming!
Cumulative ratings from the first half of 1998!
(James is the True Devil!)
Frequency of all games played so far this year!
Lengthy tedious news of the proposed Fight AI tournament!
Short worthless news of the online Nomic game!
And a reminder: no RussCon on Wednesday August 5!
Plus a table of contents, and final salutations!
Wednesday July 22 was a very strange RussCon. For starters, there were only 8 of us. Only 3 4-player rated games were played.
6 of us also playtested JonathanB's creation Gobelin which lasted about 4 hours till we decided to call it off. Gobelin has some fun ideas and neat potential. I also think it's fair to say it needs further work. It is always an interesting experience to playtest a work-in-progress, with the designer making rule decisions on the fly. Most of our gaming time is spent playing published games which have been playtested and edited and nicely produced and packaged. It's kind of fun to see an early stage of the process. I also find it somewhat grueling -- it's not really the same experience (for me) as playing a "real" game. It's more like work in some ways (especially for someone like me who works as a game developer!) It led to some fun and interesting debates about game design, and I hope we left JonathanB with a lot of useful ideas (some of them conflicting, of course) to continue evolving Gobelins. The core idea is quite fun: geomorphic hex tiles of underground tunnels, with army recruitment, leaders, and conquest of other players.
After that playtesting and brainstorming session, we were fairly brain-dead (except William, who'd spent most of the evening reading books), and so played a game of Ghost Party (which Jay won, and William refused to play) and 2 games of Survive (which Brady and William each won). We noticed that the Survive rules are actually unclear on whether the beach, jungle, and mountain tiles should be placed in concentric rings or all mixed together when you build the island initially. We played both ways, and both games were interesting in different ways.
JP & I also made a rare RussCon alliance in the second game, which got us talking about why diplomacy is so underemphasized in our group's playing style, rarely extending beyond the usual protestations of "Don't attack me, Eugene is actually way ahead of me!" We actively and explicitly agreed not to do nasty things to each other for our mutual gain. It's hard to judge whether the alliance helped us: we came in 2nd and 3rd out of 4, in a very close game (final scores 20, 21, 22, and 23!) All 4 of us got more people off the island than in the first more cut-throat game.
Then several of us stayed up way too late talking about life, the universe, and everything...
The Wednesday soundtrack:
The Breeders "Last Splash"
Laibach "Sympathy for the Devil"
Nine Inch Nails "The Downward Spiral"
Procol Harum "The Collection"
The Evening Ratings:
There were only 3 rated games this week!
Rank ratings: 1.0000 Jay (1 game played) 0.6667 William (2) -0.1111 JP (3) -0.3333 Brady (3) -0.3333 RussW (3) Win ratings: 1.0000 Jay (1) 0.5000 William (2) 0.2000 Brady (3) -1.0000 JP (3) -1.0000 RussW (3)
The partial ordering is mercifully trivial this week:
Jay | William / \ JP Brady \ / RussW
Thus Jay comes out on top, but he only played 1 game! So William is the official Devil next time, except of course that July 29 is RussD's final RussCon and so RussD is, by Imperial Decree, the Honorary Devil. There have been whispered rumors that RussD may choose to play Cosmic Encounter at the dining table.
There was also a Sunday gaming session in honor of RussD. The main event was Age of Renaissance. Sadly, RussD came in dead last and drowned his bitter sorrows in Pale Rider Ale generously supplied by Wendy. He didn't actually get drunk and rowdy, but it's fun to imagine. Some side games went on as well, leading to an overall Sunday ratings tie between DaveB & JeffF. Next came Wendy, Darin, and a tie between Jay & Brady; Jay was the only one of these who actually played more than 1 rated game, so Jay was the Sunday Devil, for what that's worth, which is apparently not a heck of a lot. Woo-hoo.
The Sunday soundtrack:
Eve's Plum "Cherry Alive"
Goth Box (disc 4)
Harvey Danger "Where have all the merrymakers gone?"
Hole "B Girl"
It's been about 7 months since I started keeping game statistics. This seems a good time to look back at them. Here are ratings for all players who've played at least 4 games. I was initially going to make 5 the minimum, but DaveB has only played 4 and he recently expressed great interest in his ratings, so I made it 4 just for you Dave!
Ironically, it turns out then that Dave has the highest ratings! Such is the power of his Jedi mind tricks.
Tom is 2nd, and Bob is 3rd. Tom used to be a Wednesday regular, but has not been around lately; perhaps this glorious high ranking will encourage a return visit. Alas, Bob moved away.
Traditionally James is recognized by all as a Devil, and indeed he is 4th place on this long list of players. I am NOT going to attempt to figure a full total ordering beyond 4th place with the partial ordering method; there are simply too many players here! I will note that the infamous Black Baron is fairly high up there thanks to his excellent performance in Montgolfiere late one evening.
Although DaveB, Tom, and Bob come out ahead of James in ratings, I would have to give great weight to the fact that each of them only played about 5 games, whereas James has played 86 rated games! I cannot help but believe that DaveB's, Bob's, and Tom's ratings would drop a bit if they played more games and we got more data from them.
Therefore, I'd have to call James the True Devil here. Congratulations, Fiendish One.
(And of course that bastard DaveB has never even come to a Wednesday night RussCon, which naturally disqualifies him from any true honors anyway. DaveB, you should come to RussCon, and need I add: you should play more Go!)
Rank ratings (of all players who've played at least 4 games): 0.5385 DaveB (4 games played) 0.4444 Bob (6) 0.4444 Tom (5) 0.2033 James (86) 0.1503 Ken (88) 0.1429 Kelly (6) 0.1127 RussW (191) 0.0831 Marty (91) 0.0667 Baron (5) 0.0495 JonathanB (23) 0.0435 Stefan (7) 0.0333 EricH (28) 0.0332 JP (76) 0.0040 Doug (62) 0.0000 JeffW (4) 0.0000 Ryan (4) -0.0150 JonathanC (32) -0.0162 Jay (44) -0.0233 WendyWhi (13) -0.0238 Randy (21) -0.0261 Tim (54) -0.0485 Alfred (26) -0.0577 Evan (14) -0.0940 Dawn (29) -0.0968 JeffF (16) -0.1000 Peter (23) -0.1216 William (60) -0.1311 Clayton (35) -0.1577 RussD (77) -0.1667 Brady (74) -0.2000 Bill (5) -0.2143 Greg (4) -0.2200 JeffS (18) -0.3288 Kevin (25) -0.4500 Lance (6) -0.4565 Rick (14) -0.5385 Josh (4) Win ratings: 0.6532 Tom (5) 0.5122 DaveB (4) 0.4857 Bob (6) 0.3527 James (86) 0.3134 Alfred (26) 0.1589 WendyWhi (13) 0.1556 Ken (88) 0.1477 Marty (91) 0.1436 EricH (28) 0.1329 JonathanB (23) 0.1104 RussW (191) 0.0909 Baron (5) 0.0716 Jay (44) 0.0667 Ryan (4) 0.0597 JP (76) 0.0588 Greg (4) 0.0588 JeffW (4) 0.0496 Tim (54) -0.0256 Randy (21) -0.0606 Clayton (35) -0.0943 Doug (62) -0.1717 JeffF (16) -0.1726 Peter (23) -0.1892 Kelly (6) -0.1917 William (60) -0.2105 Lance (6) -0.2721 Brady (74) -0.2801 RussD (77) -0.2861 Dawn (29) -0.3315 JeffS (18) -0.3421 Evan (14) -0.3630 JonathanC (32) -0.3701 Stefan (7) -0.6070 Rick (14) -0.7973 Kevin (25) -1.0000 Bill (5) -1.0000 Josh (4)
What games have we been playing? Here's a complete list of all recorded games and how many times we played each. These are all games which I played in or which were played at my house, with just once exception, I believe (a reported Settlers result from Chicago -- thanks Bill!)
Game count: 1 1830 1 2038 1 BenHurt 1 BlackMornManor 1 BritishRails 1 Condottiere 1 Dilbert 1 DragonMaster 1 DungeonQuest 1 EnemyInSight 1 Guerilla 1 HeroesOfAsfar 1 HonorOfTheSamurai 1 HookOrCrook 1 Huzzah 1 Illuminati 1 LostPueblo 1 MaterialWorld 1 MinionHunter 1 SamuraiSwords 1 Successors 1 Titan 1 VeryCleverPipeGame 1 Wizards 2 AgeOfRenaissance 2 AirBaron 2 AtlanticStorm 2 Cosmic 2 FerroPampas 2 GiveMeTheBrain 2 Hoax 2 Konzern 2 MysticWar 2 WizWar 3 Downtown 3 Manhattan 3 MrBond 3 ThroneWorld 4 LordOfTheFries 4 ModernArt 4 Survive 5 GhostParty 5 KillDrLucky 6 Acquire 6 Fluxx 7 MississippiQueen 7 Montgolfiere 12 ElGrande 12 TitanArena 15 Fight 18 Loewenherz 18 RoboRally 20 Entdecker 26 Medici 32 Euphrates 41 Settlers
I suspect it's not a big surprise to anyone that Settlers was the most-played game. Note that 8 or 9 of the top 11 games are all German imports. Anyone who's not yet played Euphrates, Medici, Entdecker, Loewenherz, Titan the Arena, El Grande, or Mississippi Queen should give them a try.
Lest anyone protest that Titan the Arena is not German, be aware that it's the Avalon Hill version of a German game, originally about horse racing, but mutated by Avalon Hill to be about monster gladiatorial combat. (Similarly, Avalon Hill's fun game By Hook Or Crook is a US version of the German game Adel Verpflichtet.)
Montgolfiere may be French; I'm not positive. It's not as great a game as the others, anyway... it got played a fair amount due to its quickness, and one evening James, Brady, and I binged on it.
I'm (pleasantly) surprised that RoboRally has proven so popular; it's a game that people seem to either love or hate. RoboRally picked up momentum when I painted my robot miniatures back in January, which was fun little project. This past weekend I picked up the new RoboRally boards: Radioactive! Radioactive waste squares cause damage but permit you to draw an option card (your robot is mutating, don't you know!) Fear the Reactor Core board.
Fight is of course the supremely elegant free game from Cheapass Games, whose complete rules fit on a business card. JimC and I have been brainstorming about how best to set up and administer a computer AI tournament for Fight. It's an attractive project because the game is nontrivial, yet simple enough that one could reasonably expect to create a plausible AI without spending weeks, months or years on the task.
Several folks have expressed interest in this project. One issue is how the tournament director software will interface with the various AI functions. I saw at least 3 possibilities:
(1) People give me C/C++ source code which I compile and link in to a single EXE. This prevents people from using nonstandard compiler extensions, of course, but allows people to develop their code on any C/C++ platform. It requires me to modify the tournament director source code to explicitly know the names of everyone's functions. (Actually, using the paradigm of the global variable whose sole purpose is to have its constructor register an AI with the tournament director might be a way around that. Hmm.) I still have to relink the tournament director EXE each time we run with a new combination of AIs.
(2) People give me a Win32 DLL. The tournament director dynamically links in all the DLLs it finds in its directory. This lets people use whatever compiler dialect they want, as long as it makes Win32 DLLs.
(3) People give me an OBJ (or LIB) to link in to a single executable. This appears to combine the properties of (1) & (2): I have to statically link in your code, but you can write it with any compiler dialect that produces Win32 OBJs.
So, survey time. If you're interested in writing a Fight AI, would you develop it for Win32 and be able to supply an OBJ/DLL, or would you need to give me source and have me compile it? And would you prefer making an OBJ (with a global variable in it whose constructor registers your AI object with the tournament director) or a DLL? (If you're familiar with C but not C++, I could help you out with that global variable automatic registration thing, so that you can then still write the bulk of your code in C not C++.) Please also tell me whether you want to write in C++ or C. (If everyone's comfy with C++, then cool, we can make an OOPy interface spec for the tournament and AI components. If not, no problem.)
Initially we were leaning toward DLL, but if folks prefer OBJs, I'm cool with that now that I've realized the global variable trick saves me from having to change the tournament source code each time I run a new tournament; relinking is not an undue burden. But any of the 3 approaches are fine by me -- the main priority is to let everyone participates who wants to. So let me know your preferences and needs.
The next issue is what if an AI crashes or runs out of time?
My thought here is the following:
This ends the game, and all survivors are considered to tie for first. Then the previously eliminated players take next ranks. Then the crashing AI takes last place.
E.g. suppose A, B, C, D, and E are the players. A gets eliminated, then B, then C crashes or runs out of time.
Then I'd assign the following results. C comes in last, then A, then B, then D & E tie for first.
One could debate that perhaps the previously eliminated players should be lower ranked since they were after all eliminated before the crasher crashed. But frankly I wish to punish the crashing AI.
One could also debate about making the survivors tie for victory. E.g. if D has 1 penny and E has 10 pennies when C crashes, then "obviously" E would have beaten D. But many cases would be less obvious, e.g. if D has 4 pennies, 3 nickels and a dime and C has 3 pennies 2 nickels and a quarter... frankly I don't want to take the trouble to try to sort out who would have won. So a simple clear-cut rule seems reasonable to me here.
In practice, I'm hoping these contingencies never arise, but it's nice to have a ruling for it in advance.
What about time controls? JimC advocates a simple fixed time limit for each turn, simply by virtue of simplicity, and I'm inclined to agree with this. Time will be enforced by the tournament director running an AI in a separate thread and monitoring its time; this will catch very long-running or infinite looping AIs.
Tournament format: since this will all be automated and there will be time limits, I'm inclined to try for complete coverage (all possible combinations of numbers of players and player orders). E.g. if there are 4 players, then do all the following games:
4! = 24 games with all 4 players
6 * 4 = 24 games with all 6 orderings of all 4 sets of 3 players
2 * 6 = 12 games with both orderings of all 6 sets of 2 players
These complete cycle could perhaps be repeated several times (depending on whether it takes minutes, hours or days to accomplish!) to account for any AIs which have random or nondeterministic behavior (whether intentionally or not!)
Any AI which crashes is a severe disruption causing me to have to manually intervene. Thus punishment will be severe: 3 strikes and you're out! I restart the tournament without that player. Depending on the ease of restarting the program after a crash, this might be modified to the even more draconian 1 strike and you're out.
Any AI which runs out of time a lot shouldn't cause me to have to manually intervene, so such an AI would not be eliminated. (It will be punished in the ratings by coming in last for each game where it runs out of time.)
We also figured it would be nice to generate a log of all games, partly for debugging and partly just for interest's sake. We'd balance conciseness with human readability. Perhaps something like:
what coin they tossed in
what coins they removed
resulting player coins
resulting central pot
(Note the last 2 fields are not necessary, but aid human readability of the log.)
E.g. the first few records of a game might be:
A P,,3P 3N 2D 1Q, 1P
B P,,3P 3N 2D 1Q, 2P
C N,2P,6P 2N 2D 1Q, 1N
The only remaining issue I can see is hammering out a specific detailed proposal for the functional interface spec. The basic model is that I give your AI the current state as well as a history of all past moves in this game (in case your AI cares to try psychoanalyzing its opponents), and it tells me what move it makes. It would also be wise to tell the AI how long it has to do its turn, so the prudent AI will have no excuse for running out of time. In addition, this could enable us to do varying time limits: conceivably one AI might be more competive with 2 second turns, and another more competitive with 15 second turns. Perhaps a multiround-robin tournament can combine the results of several full round each of different time limits. I will try to put together a concrete spec proposal soon and send it out.
(The thought of psychoanalyzing your opponents raises the question of whether an AI should get to know information about previous games and which opponents it is playing. I say no, partly just for simplicity and because I doubt anyone will go that far anyway. But also I think each game should be played in isolation anyway just on philosophical grounds.)
The online Nomic game (dubbed RussCoNomic, and not by me) has been lurching forward. Rapid progress has been made getting a website running, but much chaos has ensued as participants stumble about unable to follow simple rules about turn order, discover contradictions in the starting rule set, bicker about how to play, etc. I confess I've not been participating very actively as many of the posts are as exciting to read as legal briefs.
It is an interesting experiment to observe, however. I imagine it's similar to watching fumbling young lawyers in their first day of court. In terms of game events so far, there has been one proposal, not yet voted on, and many more proposals, generating discussion that they were all posted out of order, and debate about whether to handle this troublesome situation within the rules (and if so, how?) or by meta-common-sense (thus breaking the very point of the game, i.e. following the rules and procedures).
Now that I've alienated the more dedicated Nomic players, perhaps there will appear a Rule Proposal 1004: RussW loses 5 points for each Nomic-bashing thing he writes! Ha, I'll just sneakily change the victory conditions!
A reminder: there will be NO WEDNESDAY AUGUST 5 RUSSCON!
Marty has asked me to suggest people make alternate plans to game that evening at some mutually agreeable location, perhaps Dobie Mall, or an expensive German brothel. Contact Marty (email@example.com) if you're interested!
There will be RussCon as usual this Wednesday July 29. This is RussD's Bon Voyage before he begins his mad journey to Dallas. Come share a laugh (ha ha) and shed a tear (sniff), but please keep farting to a minimum.