/usr/bin/playsh

March 22nd, 2006, By Duncan Gough

Social gaming is really taking off. Bunchball is an amazing API for which I haven’t devoted enough time to writing an app and getting things working.

Playsh is a multi-user python coding environment. It’s a much geekier proposition than Bunchball but it’s also pointing a lot further in the distance at what games and web development will start to look like. Since this blog is broadly about games and web development, I’m hugely excited about this.

Plus, it’s running on twisted, something that makes me very happy. There are so many web frameworks available since Ruby on Rails arrived and it’s somehow been saddest of all to see Python fall over itself to create more and more alternatives to a perfectly good framework, Django. Happily, when it comes to event-driven network programming, twisted is the only contender. Just as POE is for Perl. Twisted is also asynchronous and, since DHTML rebranded itself as AJAX, that’s the only way to go.

From http://interconnected.org/home/2006/03/08/playsh:

“The Python interactive interpreter is a lower-level interface to playsh. Objects have a dictionary interface for their key-value properties, and methods appear to be verbs. Because playsh is social, the Python interpreter is also social. That is, two players can live in the same interpreter: One player can write a function, and the second player can both see the first player typing, and make use of that function. This means playsh can be a good teaching and learning environment. Of course, anything that can be done on your computer in Python can be done in a verb, so verbs can interact with desktop applications or work with serial interfaces.”

Still with me? How about this?

“Because the view of objects is subjective, different players can play different games, while using the same underlying reality. One player may see playsh as a geographic layout of rooms; another may see it as a card game where they play the ‘north’ card and the dealer puts a ‘place’ card on the table, and deals out more directional cards.”

With regards to Python, for me and I suspect a lot of other programmers, it was the first time I’d used an interactive interpreter in anger. Naturally, it was quite a revalation. Seeing that playsh is a multi-user python interpreter, you should be able to see why I’m so excited about it.

More about playsh here, here and here. Interstingly, m3mnoch has some similar ideas to playsh, regarding Object Oriented Efforts in Game Design: Not Just for Programming Anymore:

“these same things get applied to the other game entities too as they are as equal citizens to the game as characters. so, a sword is an object. it has a single effect of ‘moderate physical damage’ which gives it a cost of 3. maybe you want a magical sword. add a fire damage effect. maybe it’s also one of those ‘enhancing’ magical swords. attach the skill ‘sharpness’ which has 2 ‘moderate skill enhancement’ effects on it that add 12 to the ‘slashing weapons’ skill value.

so, trees end up with 500 hit points and no skills. lava pits have no hit points, but they have 500 ‘great fire damage’ effects attached to them. ogres have attributes like a player does.”

2 comments

« Casual Gaming, Passive GamingCasual Games =~ Social Software »