Twitter Week: 2009-06-27
- The hummingbird chicks by my door are growing apace: http://twitpic.com/86zp9 Fed on the spiders from the junipers, they’ll be flying soon! #
- @ingredientx This is the Valley. No way in hell Twitter will run out of money. VCs beg to give them money. The ecosystem has really started. in reply to ingredientx #
- @ingredientx They’ve a long way to run before monetisation is an issue. They have the eyeballs: that’s all that’s required for some years. in reply to ingredientx #
- @ingredientx I went through the bubble at VA Research, Nuron, Critical Path, Protego Networks etc. I grok. I think they’ll make it. in reply to ingredientx #
- Looking into #Django. There’s a fair bit to like here for a rapid development platform, esp if your code is also high velocity. #
- @ingredientx Hehn. Yet more echoes of Lokomoticve Werks? The local complaint has been the hidden/uncertain demand. (I’ve not played yet) in reply to ingredientx #
- @rholzgrafe Congrats! in reply to rholzgrafe #
- Thinking of learning/using #Django to parse the #18xx differences list into a RDBMS so that game-specific views may be extracted. #
- @brettspiel Dude, I told you to see Coraline 3D at the tme! It was exemplary. Yet to see UP 3D, but may this week. in reply to brettspiel #
Age of Steam: production probabilities
The following python script calculates the probabilities of a given cube on a row being produced by the end of a given round in a game of Age of Steam:
#! /usr/bin/env python
# Author: J C Lawrence <claw+blog@kanga.nu>
# Date: 25 June 2009
# Purpose: Calculate AoS cube production probabilities by row and round
def fact (x):
if x < 1:
return 1
return reduce (lambda x, y: x * y, xrange (1, x + 1))
def xCy (x, y):
return fact (x) / (fact (x - y) * fact (y))
def point_p (d, n):
c = float (xCy (d, n))
p = (((1.0 / 6) ** n) * ((5.0 / 6) ** (d - n)))
return c * p
def sum_p (d, n):
rc = 0.0
for i in range (n, d + 1):
rc = rc + point_p (d, i)
return rc
def main ():
for p in range (3, 7):
print "Players: %d" % p
for r in range (1, [10, 8, 7, 6][p - 3]):
print "\tRound %d: Row 1 - %f\tRow 2 - %f\tRow 3 - %f" \
% (r, sum_p (r * p, 1), sum_p (r * p, 2), sum_p (r * p, 3))
if __name__ == "__main__":
main ()
The results:
Players: 3
Round 1: Row 1 - 0.421296 Row 2 - 0.074074 Row 3 - 0.004630
Round 2: Row 1 - 0.665102 Row 2 - 0.263224 Row 3 - 0.062286
Round 3: Row 1 - 0.806193 Row 2 - 0.457341 Row 3 - 0.178260
Round 4: Row 1 - 0.887843 Row 2 - 0.618667 Row 3 - 0.322574
Round 5: Row 1 - 0.935095 Row 2 - 0.740378 Row 3 - 0.467775
Round 6: Row 1 - 0.962439 Row 2 - 0.827219 Row 3 - 0.597346
Round 7: Row 1 - 0.978263 Row 2 - 0.886969 Row 3 - 0.704381
Round 8: Row 1 - 0.987421 Row 2 - 0.927041 Row 3 - 0.788168
Round 9: Row 1 - 0.992720 Row 2 - 0.953411 Row 3 - 0.851205
Players: 4
Round 1: Row 1 - 0.517747 Row 2 - 0.131944 Row 3 - 0.016204
Round 2: Row 1 - 0.767432 Row 2 - 0.395323 Row 3 - 0.134847
Round 3: Row 1 - 0.887843 Row 2 - 0.618667 Row 3 - 0.322574
Round 4: Row 1 - 0.945912 Row 2 - 0.772831 Row 3 - 0.513209
Round 5: Row 1 - 0.973916 Row 2 - 0.869580 Row 3 - 0.671341
Round 6: Row 1 - 0.987421 Row 2 - 0.927041 Row 3 - 0.788168
Round 7: Row 1 - 0.993934 Row 2 - 0.959962 Row 3 - 0.868240
Players: 5
Round 1: Row 1 - 0.598122 Row 2 - 0.196245 Row 3 - 0.035494
Round 2: Row 1 - 0.838494 Row 2 - 0.515483 Row 3 - 0.224773
Round 3: Row 1 - 0.935095 Row 2 - 0.740378 Row 3 - 0.467775
Round 4: Row 1 - 0.973916 Row 2 - 0.869580 Row 3 - 0.671341
Round 5: Row 1 - 0.989517 Row 2 - 0.937104 Row 3 - 0.811313
Round 6: Row 1 - 0.995787 Row 2 - 0.970511 Row 3 - 0.897210
Players: 6
Round 1: Row 1 - 0.665102 Row 2 - 0.263224 Row 3 - 0.062286
Round 2: Row 1 - 0.887843 Row 2 - 0.618667 Row 3 - 0.322574
Round 3: Row 1 - 0.962439 Row 2 - 0.827219 Row 3 - 0.597346
Round 4: Row 1 - 0.987421 Row 2 - 0.927041 Row 3 - 0.788168
Round 5: Row 1 - 0.995787 Row 2 - 0.970511 Row 3 - 0.897210
No accommodations have been made for maps with different numbers of rounds per player count, or the insta-production rules used on most of my maps. Enjoy.
Twitter Week: 2009-06-20
- @brettspiel My FB and Twitter accounts are linked, but that’s mostly because I can’t think of a unique value for my FB account. in reply to brettspiel #
- @brettspiel @jlweiss Good point on selective twitter/FB posting. I’d rather exclude specific tweets from #FB than flag those to cross-post, in reply to brettspiel #
- #Twitter upgrade delayed to help Iran: http://tr.im/oGbF Thanks — I’ve family there. #nomaintenance #iran #iranelection #
- #twitter at work: http://twitter.com/#search?q=#iranelection Primal. #iranelection #iran #
- Someone has my respect and gratitude. RT @alleyinsider:State Dept asked #Twitter to delay downtime: http://bit.ly/2lH6Xy #iranelection #iran #
- @raphkoster Overly dramatic. Just tell #iTunes to DL the upgrade 1st and then install it separately rather than DL & insta-install. #iphone in reply to raphkoster #
- Subtitles that don’t word-match the same-language dub. Poor form! #anime #
- @jdludlow Thanks. I’ll add that one to the list. This is Pumpkin Scissors. Reminds me of the horribly good/bad Mad Mission 3 dub. #anime in reply to jdludlow #
- Metropolys expansion not so interesting: http://tr.im/p67Q Hoped for a game-inverter like a once-per-player treat-last-bid-as-if-were-a-1 #
Twitter Week: 2009-06-13
- Yep, #twitter is a performance art more than a participatory or discourse system: http://tr.im/nEMD #
- Common wisdom and the symmetry of popularity: http://tr.im/nEZh (via @andrew_chen, @jhong) #
- @neilhimself So would that be the blessed schizophrenic duality of the beast or merely a squared beast, perhaps framed in fearful symmetry? in reply to neilhimself #
- Piracy becoming the centre: http://tr.im/nJdZ If you outlaw piracy, only everyone will be a pirate. Ergo, you become what you resist. #
- Blind search engine result testing: http://blindsearch.fejus.com/ Surprised? #
- No, this is the onset of active data. RT @hnshah: RT @timyoung The web “page” will soon be dead. It’s days are numbered. #
- @seo1970 And are the cows winning? Told Michael last night to not make a decision on the render, but to paste-up a real box. Light dawned? in reply to seo1970 #
- @seo1970 Send me an URL? in reply to seo1970 #
- http://twitpic.com/6zs9s It seems the hummingbird eggs by my door have hatched. http://twitpic.com/6zseh #
- Google Wave’s success rests on its LCD OSS foundation? MS’s Mesh tied too hard to proprietary product stack? http://tr.im/nXIe #gwave #
- Fiddled with Jeremiah Lee’s #Kindle during Tahuantinsuyu. Great human factors. The data-trap (Amazon dies, so does your Kindle) scares me. #
- Do you know where you are? Really? Seen the Milky Way lately? Context is everything for a sense of life’s relative scales. http://tr.im/nZPb #
- Here Cthulhu, here boy! Come on boy! That’s my little Cthulhu! Want a Care Bear for din-dins? http://tr.im/o69z (via @neilhimself) #
- I’m off to meet the Wizard, the wonderful wizard of, umm, 18TN? B&O? Gimme my damn poker chips back, and no, you can’t have that many! #18xx #
- Neighborhood pot boiler. RT @newscientist:Supervolcano under Mount St Helens may be cranking up for a biggun http://bit.ly/2HMDH #
- The ranting on Rubicon’s offices is BS. They’re not an engineering/tech company, they’re market-driven media and they’re optimised for that. #
Time’s sweet paradox
To some degree games may be classified as reactive and predictive. it all depends on where the players act in relation to the progression of time in the game. In reactive games events occur in the game and the players respond. They may have prepared for such an event in advance, but their response is purely reactive when it occurs. In predictive games player act ahead of the game time, they make choices so that when/if certain matters should come true they are ready and (ideally) don’t even need to react. This is perhaps not a stunning insight, but it got me to thinking, What about a game in which the players are never in present time, a game in which the players exclusively operate in the future, both short and long term? What if players can only operate within the bounds of an increasingly uncertain future?
Imagine a planning game, perhaps a logistics game of some sort. Possible actions are arranged in a stack, perhaps represented by cards or tiles. The bottom action is NOW (ie present time) in the game sense. The bottom action card will be performed on this game turn, either by a player or by the game itself in some autonomous fashion or interpretation. When an action is performed it is discarded or perhaps recycled.
Each player has a number of markers, perhaps two or three which they can place on action cards (one marker per card) in the future. In fact this is the only decision afforded to a player: committing to a future action. If and as when such a card with a player marker becomes the bottom card, that player does that action, and they move their action marker to another action card (unoccupied by another player’s marker) in the future.
But things are not quie that simple. Actions have durations. As quick example a future action might be building a factory. However the action card reaching the bottom of the stack merely means that construction has started. Factory construction lasts 5 turns (ie 5 action cards off the bottom of the stack). If the factory construction card was 3 turns in the future when the player put their marker on it, then the player waited 3 turns before starting to build the factory, and then another 5 turns of actually building the factory (assume some cost for this) before the factory is finally built and the action marker may be used to reserve yet another action in the future. Game state could have changed considerably in that time. Perhaps the player carefully built a Q-Factory as Q-items were in high demand and commanded a price premium, but by the time their factory came online, not only had the Q-item market collapsed, but Q-items were obsolete and couldn’t even be used for any purpose! Then again, they might have started shipping T-items by slow boat over the ocean, a trip that takes 7 game turns, only to find that T-items are commanding a huge price premium when they arrive.
In short the player is constantly committing themselves to events which will only occur in the relatively distant future (in game terms). They have absolutely no ability to react to current events, only to setup changes that will be realised after an appreciable game delay. In short they are stuck in the future.
Some abstractions may be added. Players could be allowed to sell each other the actions they’d reserved in the future, or possibly the actions that have occurred but are still maturing (eg construction on the factory has started but not yet finished). In this way something of a futures market could be supported in which players not only speculatively commit to actions they think will be profitable for themselves, but also to actions they may be able to sell to other players. Of a sudden players are trading in what they imagine the game’s future will be.
Twitter Week: 2009-06-06
- The short definition of Google Wave: Conversation as a first class noun/object. The rest is just network & RPC model. #gwave #googlewave. #
- @timoreilly @vanessafox Search spiders replicating human/client views isn’t l/t viable. Predict custom views for spiders – & trust issues. in reply to timoreilly #
- Google Wave may rewrite the blogosphere. Blogs become wave collections. Goodbye RSS! If waves can nest, blogs become just another #gwave. #
- @ysrthgrathe Aye, getting the auth model right for Google Wave will be interesting. #gwave in reply to ysrthgrathe #
- #tweetdeck limited to 11 columns, #nambu 20 searches. Must run multiple clients to get perspective? Need 75+ w/ priority sorting. #twitter #
- Twitter, Facebook , blogs etc allow users to find discussions. Google Wave doesn’t. Participating is one thing, finding is another. #gwave. #
- Good discussion of systemic trade-offs in both problem resolution and process: http://bit.ly/On0Rl #
- @davemcclure Microsoft, Google and Yahoo! have re-invented their platforms at least once every 5 years. #twtrcon in reply to davemcclure #
- Any guesses on number of RPCs/second/user for Google Wave? What are the operational boundaries? #gwave #
- Greedy algorithm is strong in 4 player Mexica. With 3 players is viable but not dominant (tough proof). http://tr.im/n8n7 http://tr.im/n8na #
- Game design thought for the night: What if you’re herding cats (or dogs), but all you can do is to point their tails in the right direction? #
- @doctorow On source `dpkg –get-selectiions | fgrep -v deinstall | cut -f1` > pkg.list then `xargs apt-get install < pkg.list` on target in reply to doctorow #
- Max-diff surveying what customers really want with clear differentiation and ranking: http://tr.im/nsFK (via @seanellis, @brantcooper) #
- @raphkoster While twitter can support conversation, it is more of a performance art upon a stage. in reply to raphkoster #
- A little sentimental, but well worth the time, the thought and the resulting discussion. Home: http://www.youtube.com/homeproject #
- Ray Ozzie has a point: Google Wave “is anti-Web” http://bit.ly/12VwcD #gwave #
Oooo my pretty precious!
As those who follow my Twitter feed know, Corner Lot did rather well at the Kublacon design competition, coming in the top 3 and quite likely being second. Julie, the organiser of the competition said that if it had player aids it would have won.
Several changes:
- Player aids! Yep, there are now neat little player aids which contain the most frequently requested information (the 4 bonus categories and the 3 actions)
- Spiffy new art without conflicting colour pairs (all credit goes to Ariel Seoane here)
- An advanced variant which simply ups some costs and cash drains and thus significantly changes the timing and pacing of the Empty Lot cards1
New rules. Playtesters will find that the file at the same magic URL has the new card images and rules.
- The increased cost of the Empty Lot cards is not cast in stone, the other two values likely are ↩
Commentary and processes of 
Comments