Machst Spaß! Machst schnell!

Role playing, board games, programming, and maybe occasionally political opinion

Tuesday, January 31, 2006

MassTest and Giving Back

First of all, I’m pretty pleased right now with my MassTest extension to the Test::Unit library for Ruby. I really need to add it as a gem, or something, because I think it would probably be useful for purposes beyond testing web sites – my original use case.

As an aside, while coding for Test::Unit, I’m not entirely sure that it’s approach is necessarily the best one. Because of it’s TestCase-is-class philosophy – and by dropping the JUnit TestSuite-is-a-TestCase paradigm – it’s a bit on the tetchy side to extend. I want to incorporate it, and if it’s similarly annoying, I may be compelled to produce a competing package.

There are a couple of features I’d like to add to MassTest, and I don’t want to forget them. Quicky listy:

  • Include directory – This is kind of a general thing I want to do in Ruby in general. I want to scan a directory, load and .rb files I find, and add any MassTestCases I find into the current Suite.
  • Coverage – I’d really like to have some kind of automated way to determine what the actual domain of a set of tests ought to be, and then to determine if I hit them all.
  • I also would like to see about making the web related tests I’m doing be more robust – I think I probably ought to push off redirects until the actual tests, and I’d love to be testing content somehow.
  • Which does suggest memoization as a general feature. It might be nice to be able to record data in the course of a test, and then check against it later.

Monday, January 30, 2006

Game Shipment

Hurrah! Bunch of new games, care of my good friends at Funagain. (I really ought to emulate certain other bloggers and get an affiliate dingus.)

Anyhow, in case anyone is keeping score (or if I want to come back later and check) here’s the list of newcomers:

  • Domaine
  • Blue Moon
  • Gloom
  • Ys
  • Kablammo
  • Looney Bin
  • Bang!: A Fistful of Cards
  • Monkeys on the Moon
  • Hare & Tortoise

Current Mood

I’m currently maintaining a mixture of blase disregard and rebellious elitism.

This may not really be a surprise to anyone.

End of non-sequitor.

Tuesday, January 24, 2006

Here but for the grace of God...

Speaking of casualties, it makes it really sad to be browsing Funagain and run across games that I think so highly of … because I used to own it. But all is not lost: Funagain has shopping lists. I can record everything I lost, and come back over time and replace them.

When they’re not out of print.

Anyway, if anyone out there still needs to assuge some of their need to good for Katrina Survivers, here's a particularly frivilous way to manage that.

Monday, January 23, 2006

Board Game Inventory

Also known as bragging. Really, I’m doing this to see what games I still have after the hurricane. I’ve tried to sort them in to rough categories. And I already see some of the casualties.

  • Hamster Rolle
  • Thing-a-majig
  • Maskenball Venezia
  • Perudo
  • In Pursuit
  • Trivial Pursuit (Baby Boomer expansion)
  • Trivial Pursuit – Genius Edition
  • Cranium (unopened)
  • Axis & Allies
  • Space Hulk (definitely cool)
  • Adeptus Titanicus (rules?)
  • Crimson Skies – wargame edition
  • Millenium Wars: Kashmir
  • Millenium Wars: Air War
  • Wings of War – Famous Aces
  • Wings of War – Watch Your Back
  • Diceland (Great White Sea + Ogre)
  • Aliens
  • Arkham Horror (the new Fantasy Flight edition)
  • Munchkin
  • Abduction
  • Dungeoneer – Vault of the Fiends (incomplete?)
  • Drakon
  • Torres
  • Big City
  • Pueblo
  • Taj Mahal
  • In the Shadow of the Emperor
  • Pizarro & Co.
  • Mueterer
  • Modern Art
  • San Marco
  • Tyros
  • Web of Power
  • Frischfleisch
  • King’s Gate
  • Alhambra
  • Putsch
  • Carcassonne
  • Carcassonne – Traders & Builders
  • Metro
  • Saint Petersburg
  • Colossal Arena
  • Ivanhoe
  • Atikka
  • Ohne Furcht und Adel
  • Thor
  • Chinatown
  • Bohnanza
  • Hoity Toity
  • Ricochet Robot
  • Dragon Delta
  • Super Icehouse collection (+ plus lovely Aqua pyramids)
  • Mississippi Queen
  • Drunter & Druber
  • Gardens of Alhambra
  • Trans America
  • San Juan
  • Illuminati Deluxe Edition
  • Hell Rail
  • Cartagena
  • Wreckage
  • Robo Rally (plus as many expansions as I’ll ever want)
  • Simply Cosmic (+2 colors)
  • Riot!
  • Caribbean
  • Magdar (sigh)
  • Senator
  • Orcz
  • Maginor
  • Dynasties
  • Trax
  • Lord of the Rings: The Search
  • Toscana
  • Snits!
  • Gipf
  • Tamsk
  • Lift Off
  • Falling
  • Laguna
  • Bang
  • Bang: Dodge City
  • Fluxx
  • Njet
  • Express
  • Draco & Co.
  • Cthulhu 500
  • Lunch Money
  • Corruption
  • Chrononauts – Early Americans
  • Gother Than Thou
  • Aquarius
  • Hex Hex
  • Coloretto
  • Chrononauts
  • Oriente
  • Mu & Mehr
  • On the Edge – one deck
  • Crimson Skies – collectable minis
  • Star Trek Customizable Card Game
  • Bitin’ Off Hedz
  • Save Doctor Lucky
  • Deadwood (plus expansions)
  • Parts Unknown
  • One False Step for Mankind
  • U.S. Patent Number 1
  • The Great Brain Robbery (2 copies)
  • Captain Park’s Imaginary Polar Expedition
  • Witch Trial
  • Unexploded Cow
  • Freeloader
  • Tiddlywinks
  • Blokado
  • Shifti

And a puzzle? Noticably AWOL: Diplomacy, Zertz, Java.

Fiction Masquerading as Game(?)

In conversation not too long ago, I was hashing out some fairly strong feelings about how a lot (a lot) of published RP materials are essentially novels in a strange format. Or even huge serials. And in certain respects, I really dig seeing that. It hits a button for me like reading collected comics or watching whole seasons of TV over the course of a week on DVD. Those who haven’t seen Battlestar Galactica really ought to drop on the collected first season. I’ll just wait here to collect your thanks.

But the avowed purpose of such media is that it be the basis of roleplay, which is a very different enjoyment mode than one gets out of concentrated passive entertainment. I think there’s a fundamental issue with large gaming supliments, which is that they’re ultimately something for the GM to relate to players. Basically it’s a script for Illusionist play, which is really rough.

Honestly, sometimes the intent seems to be that everyone will read these 300 page tomes about the World of Hoobajoob, and we’ll all have this huge and rich shared canon to riff off of. Eh? My experience is that I can barely get a group of players to read the actual part of the rulesbook that refers to character creation. I’ve become the Master Explainer, and that means that as GM, I become the conduit for the Canon World. Which leads to a certain amount of very frank “this is how it is” type discussion, which can be very awkward, especially when it relates largely to a conflict that the characters are presented with Right Now. Concrete example: say the characters are in the midst of the Royal Reception when the envoy of the Empress of Glass arives wearing all white and completely unspeaking. Well, there might be dozens of pages in the Encyclopedia of Hoobajoob regarding the Empress, her envoys, the significance of white, and the current socio-political structure relating her to the Royal Court. But if I need to take a break to explain all that, why not just have the guy run in and proclaim that the Empress is pissed off?

So, yeah, part of the frustration is the fact that without the setup of the referants, there’s no real point. The other side of the coin is the Plot Immunity that designers see fit to impose on GMs. Both Pinnacle and FASA pulled this crap, and I believe White Wolf has played the same game for a long time. Technically Unknown Armies is pretty rife with it, but Atlas left things loose enough that it wasn’t all that important. Essentially the threat is “if you in any way alter the paths of these characters, you might as well not buy the next few supliments” which is sort of annoying.

On the other hand, I know people who love the setting. Or a setting from, say, a series of TV shows, or children’s novels, or whatever. And there’s this urge to play “in that setting.” And I can’t say that I myself am entirely immune to the allure. Predictably, I kinda think that Galactica would make an awesome RPG premise, setting included.

Which leads me to wonder, is there a way to present a setting that isn’t onerous to roleplay in? Basically, you need to solve a few problems.

  • How do you get the players to read and absorb the information?
  • How do you avoid deprotagonizing the characters by writing this awesome setting?
  • What kind of elements facilitate interesting play, and what are just stoking your own pen?

I think that The Burning Wheel and The Shadow of Yesterday have something really interesting going on, by putting all of the setting details in the character lists. After that, I’m still in the thinking phase.

Sunday, January 22, 2006

RPG Doodle 2

Game where the players control a group of people, like an army or a corporation or something. Maybe they each command a portion of it (like they’re all VPs, or colonels, or something).

Important to the game would be the control the characters have over they’re underlings, and the abilities of their underlings. Managing the trust the underlings have for their boss, as well as using their time and skills well would be some of the challenges of the game.

The more I think about this, the more the idea has a Sim flavor, although the mechanics might extend to other kinds of game, granted that the command strucure isn’t absolutely central. It does seem like it would support other premises fairly well.

Quicky Little Mechanical Noodling

Battlestar Galactica, Apollo is technically on parole. He’s still the flight commander. His pilots ask him when he’s coming back to the card game. He’s tells them, as nicely as he can, that it’s pretty much against the rules. They start to get loud about how uncool it is that their beloved commander is locked up, and he shouts them down.

Here’s the idea that inspired. Imagine Apollo has a trait like Devotion to Duty. He could get a point pretty much all the time, because he’s in a position where his duty puts him in all kinds of conflicts. But as another player at his table (even GM), I’d want to see him get more for putting his duty in front of his own beliefs.

Here’s the basic premise: you’ve got some kind of plot/behavior reward. Like TSoY Keys. Except that when you hit your trait, you get one point, guaranteed, plus extra ones at the behest of other players, and the GM.

Maybe there’s some kind of cost to grant extra points, but it should be positive sum – you spend something worth less than a point to grant the extra.

Anyway, the idea is that when you do something run of the mill, you get a point, but when you do something really cool, your fellow players boost you up because it’s so cool.

Some nifty boardgame style mechanic to influence how the points get awarded. Maybe the GM always gets a bump up an award. The rest of players get some kind of collaborative extra award? Maybe there’s a pool of points, but they have to agree, or expend their own points for the nomination.

Wednesday, January 18, 2006

Big Roleplaying Concepts

I think I’m beginning to develop a severe agnosticism about a lot of the Big Concepts in roleplaying. From the RGFA Threefold Model, to the Forgish GNS, I’m beginning to think that as dogma it’s a bunch of malarky.

Which is not to say “there’s no such thing as …” anything. I completely accept that people play games to compete, to tell stories, to pretend that they’re in a different world and to pretend that they’re different people. I accept that it’s legitimate to term these activities Creative Agendas, to call them Narrativism, or Immersion, and useful even to call them these things.

What I really think is unhelpful is to talk about a triangular arrangement of these things, or to balance them against each other in terms of cohesion or coherence or some such nonsense. Trying to arrange them in some crazy Unified Model of Roleplaying serves no other purpose than drawing lines in the sand of the huge huge universe of all possible roleplaying.

Yes, it’s useful to have the concept behind the word Narrativism (or Dramatism), for the same reason that it’s useful to know what “savory” means if you’re cooking. But I don’t think it makes sense to try to say that cuisine must be “Coherent,” and only include savories, or that if there are sweet elements they’re just “color.” Or that a chef fits somewhere in a graph of sweet, savory and spicy.

Because, honestly, we realize that sometimes we want different things in a meal, or in a game. And it’s useful to be able talk about those things, because that’s how we get what we want.

But trying to fit them all into some correlated philosophy of play is just nutty, and wrong. Like Nazi Ethnology: it’s an evil pseudo-science.

Let’s talk about what makes for Gamism, and Sim, and Narrativism and Dramatism (if those are different things,) and how it can be promoted. Let’s be honest about wanting to take a directoral stance, or to attempt character immersion, and encourage each other in those endevours. Let’s recognize that some game texts, and games that we run have those various flavors, and play to their strengths because we have names for them and recognize them. But let’s not try to fit them all into an overarching holy writ system of roleplaying.

Web Framework Caching

An idea I wanted to get down before I forget it: if I’m going to extend any templating system, and especially cs/Template, I want it to cache it’s templates.

Here’s the specifics: essentially, the new templating system would function identically, unless it was handed a CacheWatcher (or whatever.) Now, some of the resources that the template uses to produce the output of the document get cached. Includes would be a perfect example; once they’re included into the template, they should stay there until they need to be reloaded.

Now when the template gets an output call, it checks it’s CacheWatcher to see which of it’s resources are dirty. (The default behavior is that everything is dirty.) The motivational case is that the CacheWatcher treats vars, evals, withs, etc as dirty, and includes as clean, unless they’re made manually dirty.

How are they made dirty? Why with a RingService, of course! The whole point is that I can use a semi-static nav menu as an include, and know that it won’t slow the app down unduly. If I change the menu, I run a little mini-app that announces the path as being dirty, and all the templates that are using it will reload it (once) when they need it next.

Some more advanced usage might include filtering out vars by their lifecycle, and keeping them around while, for instance, a session is still open. Why dip into the DB all the time? Granted, it gets things more shared, but I think share nothing is mostly a guideline.

Thursday, January 12, 2006

Resolution Analysis

I’ve been wanting to make a few notes on this topic for some little while. Basically, in reading more and more of these indie games that try to make the destinction clear – especially in conflict resolution mechanics and stake setting, there’s an interesting flow built into every resolution system, that seems to legitimately say something about the game and it’sworld.

First of all, when does a roll1 happen? It seems to me that a roll occurs as a the grown-up equivalent of “nuh-uh!, noyadidn’t!” that happens in the children’s game Let’s Pretend. Ultimately, you don’t roll unless some player is calling your declared action into question. Well, sometimes you roll pre-emptively, to prove your authority to control the game. A GM might call for a roll because he finds the proposed course of action implausible, or wants to emphasize the danger and risk involved, or to resist the inexorable advance of the players2. Another player might call for a roll because he sees his character as in conflict with the first.

Secondly, how does the roll interact with the game world? For instance, when and to what degree is the character committed to his player’s declaration? One important impact on this whole thought is Fortune in the Middle, since a player doesn’t need to commit much before the roll, except the barest outline of his intention.

An important aspect of the relationship between a risk3 in the gameworld and the roll that resolves it is the point at which the player can back out clean. In some games (both as designed and as played), a player can say at any time up to the actual roll, “Maybe that’s not such a good idea. Never mind.” The other end of the spectrum is that once you’ve declared your action, you’re going through with it, even if during the course of resolution, you discover that there’s a difference between how chancy you thought it was and how chancy it is. In between is the idea that a declaration is half an action; that your character will have revealed his intentions, even if you decide to back down.

Resolution mechanics are one of the bridges between player and character,and between the real world and the game world. They tell us a lot about what the relationship between a player and a character should be. If resolution is frequent, task based, only called for by the GM, and declaration is a commitment, then the implied relationship is very close. Players are meant to feel as if they’re seeing out of the eyes of their characters. When resolution is less frequent, is conflict based, commitment to action comes later in resolution, and right to call for a roll is shared by all participants, the implied relationship is more distant, almost over-the-shoulder of the characters – possibly not even identifying with any of them. Adjusting along that line seems quite straightforward, and it’s worthwhile for a designer to look at what they want in their game and plan resolution accordingly.

I guess what I’m trying to get at is the idea that any resolution mechanic follows a flow of attention from the game world, to the real world and back again. It’s how the mechanic manipulates that flow that determines in a large part how successful4 a mechanic it is.

1 I’ll use “roll” as a shorthand for the whole “task and/or conflict resolution, with or without dice or other randomizers” echillada.

2 In fact, the variety and general fuzziness of why a roll can becalled for is one of the things that sets RPGs aside from board games. In a board game, all the players are have a set of conditions for rolls (call the Rules), which they’ve agreed to abide by. In an RPG, the conditions of the call are less clear.

3 Again, this is a shorthand. I’m quite aware that not every resolution is related to something that’s risky – but ultimately if there aren’t two paths, or success and failure, or even better and worse, why roll? Well, that’s a whole different matter.

4 Success being judged in this case in a fairly deconstructive wayhere, based on the supposed intentions of the designer.

Tuesday, January 10, 2006

Two RPG design insights

One of these is mine, and one of them is not.

First, a most briefly, heartbreaker games are reactionary designs. I’m convinced this is a simple and complete identity. The supposition, which bears out under anecdotal evidence and personal experience, is that one comes to one’s heartbreaker game as the result of finding the things ine’s favorite RPG that frustrate your personal idiom. After grinding your teeth on whatever grit you find in your first puppy-love of a system you figure out how you would fix it. But you love that first system which makes you hate, and hate but good the things you find that are wrong with it. So that first design, that lovingly recapitulated copy of the One True Way, with these fixes and Oh! what a shiny bauble is the result.

Which brings me to insight two: that roleplayers metamorphose over time and the impetus of the metamorphosis is frustration. Ultimately, every player gets fed up with his GM(s). Maybe in the nicest possible way. Maybe fed up is too strong. Maybe, just maybe, there are players out there who are so inspired by their GM that they just burst with enthusias to run a game themselves. But honestly, I think that most players turn to running games because, on way or another, they think that they can do it better.

The transition to designer is similar. Even if you don’t finish a single design, the urge to design is spawned by the feeling that you could write game that’s better. This sort of ties in to insight number one, in that the first game is a heartbreaker. The design comes out of wanting to do it better than this game.

So, I don’t know if there’s an application to all this, and it may not be all that profound, but both thoughts were pretty striking, and I wanted to get them down.

First Post!

Well, obviously not really. But what it is, really is the first post with my very own home brewed bloggy posty Ruby thingy. Which has been great fun to write, as it’s been the cobble together of several libraries which I love some of and love the foibles of others (net/http to be specific.) So, this is a string of beads that goes cs/template, YAML, RedCloth (which is so cool1), to the above mentioned, less than intuitive net/http2

Anyway, one system call, and I’m into a lovely little vim edit of my entry, which gets posted as I close it. And when it doesn’t work, it’s all there in marvelous Ruby code to fix.

Of course, some of the fixes are easier than others. For instance, both of Why’s libraries are awesome, perform exactly as advertized (although I often wish for YAML::load_from_path and YAML::dump_to_path, but that’s because I’m lazy. And it wouldn’t really be that hard. Hmm…)

1 See?

2Well, net/https, to be precise.

Friday, January 06, 2006

RPG doodle

I've been contemplating an idea for a game that resolves around spies, but with a grounding in the purposes behind their nefarious operations.

In essence, the concept is that the players start play as various officials in (possibly different) intelligence agencies. There's some sort of world situation which they all want to see change somehow.

As they resolve to have certain actions taken, play drills down through the ranks until an actual operation gets called, and the players sit down as the spies employed to take action.

Ultimately I'd like to see this as almost a more competitive board game-style RPG. Somehow the role of referee either doesn't exist or falls to some player as the drill down occurs.

At the highest level I picture some sort of status board, which probably incorporates areas of ignorance and crisis. As officials, the players have a game-level goal to achieve. Possibly their separate positions have certain things to gain. A core idea, I think, is that the condition of the board can only be altered by operations, which have to be carried out by the players as spy characters.

Somewhere in here is the idea that the players take many sides, either because as officials they (collectively) play all of the sides in their world. So as (say) the Executive of the US, I might call for an operation to infiltrate Middle Eastern Terrorist Network A.

As we drill down to the US intelligence community, including a British and French representative, the player of the head of METN-A becomes (say) the Chief of the NSA. The conflict, of course, is between needing players to take on different roles, and them having an incentive to take on roles that are mutually antagonistic.

On some level, I want the actual operations to be stories of a whole other kind. That the likelihood of failure-through-incompetence should be almost nil. The eventual ops should be good stories in their own right, but with everyone completely on the same side, unless they betray one another.

Thinking...

Forum thoughts

Most of the Forums world seems to be phpBB or it's similars. Ultimately, I'm finding that I have a few features that I'd love to see in a forum system.

First: Following threads. Currently this is work that a Forum member has to do. Forums mention that some threads have "new posts," but then it's up to me to see which ones I've read and which I haven't. I for one forget whole websites over a weekend. Which thread I've read the most recent post to is really more than I care to deal with.

Second: participating in threads. Some forums will notify you if a thread you posted to has been posted to by someone else. But many don't, and the consequences of not following threads become even greater when you're trying to participate.

So, the thought is that you'd be able to collect a set of threads, and read the newest posts to them quickly.

Additionally, one useful function forums provide is for the aging and locking of old threads. It might be nice for a thread to be in a sort of garbage collection phase, where existing posters can continue to post to the thread, but even that ability fades without use. Eventually no one can post, but in the meantime the thread lives for as long as there's useful discussion.

I also am a big fan of subthreading. But I've yet to see a forum that allows you to collapse subthreads. There might even be some sort of subtle moderation in counting the number of members who collapse a subthread. Fundamentally it suggests that it's not interesting, because they don't want to see it. Implicitly, that might even push the thread towards being auto-collapsed, read less often, posted to less frequently, and eventually reaped.

Web Etiquette

I realized something the other day about forum posting etiquette while reading a site that I don't usually even post to. Basically, it occurs to me that it's rude to post absolute statements.

On some level, it's okay to say something like "I was thinking about this and..." or "This just occurred to me:" but not to post absolute statements of fact - at least where what's being discussed is theory (even theory of practice.)

By analogy, if I were to say "Separation of Concerns is vital to web development." in a forum of discussion, it seems to me that's a little rude. By implication I'm suggesting "and if you think different you're a moron."

I'm not entirely sure what I think about this. Ultimately I think I come down on the side of softening statements in forums. After all, you're there for discussion - what's useful to you and to the silent masses who will read the exchange later is the free flow of ideas. If you make closed pronouncements about your subject, you're effectively ending the discussion.

Thursday, January 05, 2006

First post regarding web-engine

I've been thinking for some time about a web development framework, and I'm doing my best to take the best ideas I've seen and fold them into one big thing.

I was originally quite inspired by Wee, by Michael Neumann. I really like the structure that Wee allows in web programming, and especially as AJAX becomes available at large, it seems like the sort of paradigms that Wee (and Seaside, and Borges) open up are intensely interesting.

On the other hand, I don't like the idea of generating HTML in code, and I don't like code in my HTML. I believe fairly strongly in SoC, and feel that even for a lone developer it leads to strong, flexible practices in code and application.

I've been very happy so far using cs/Template (although PageTemplate is a close second), and I think a derivation of the same will figure heavily in the final product. There are two features I want to add to it: the ability to add macros to a Template::Document, and a manually-dirtied caching engine.

I'd like to use Needle as the means to define wee-style parts to be composed with templates.

Anyway, that's a general roadmap. Separate entries as time goes one for different parts.