Saturday, March 26, 2011

It strikes me I haven't posted about the state of MysteryMachine for a while, in fact well over a year.

Well during that year good things have been happening , which if you have been paying attention to the repository history you might have seen.

First off all during the months of September and October I ported the Siege Mentality game written by J. Tuomas Harviainen for use as an example game for mysterymachine into the MysteryMachine database. I then ran the game at Consequences using only MysteryMachine to produce player character sheets.

Some more work is need to streamline this operation but actually using the program in anger at this stage was a very good thing to do, so I could see the what are the most important missing features are.

Indeed I wouldn't have been able to even do that without one import last minute feature, The Bidirection reference. This important feature is a special new attribute type which allows two mysterymachine object to be linked together - to make this work a bidilink - as it is known, uses another new feature - the two stage commit - to keep a pair of attributes in sync. This attribute is needed because each end of the link is modelling by its own attribute, this means each end of the link has a handle which can use to follow the link in the opposite direction, while allowing the code to ensure if one end of the link moves the other immediately reflects that change. A link which is moved forces the other end to point to the None object to indicate that is is currently unconnected.

Unconnected link attributes such as this are known as anchorpoints, and a link can only be connected to another anchorpoint. This is because an anchorpoint is not just an empty node, but it also stores which of it's ancestors in the database any link which partners with it will point to.

To give an example a character object may have a list of anchorpoints called 'plotroles' , each of these anchorpoints are places which you could connect a link from the plotrole to the character which takes that role in the plot. The anchorpoint in the character object knows that when the link from plotrole is followed that the follower wants to end up on the character, not the anchorpoint , or the list.

The module which implements this currrently has some pretty good examples in it's documentation , and I'll put them on the MysteryMahcine wiki which is also overdue an update.

The best news is there is now a UI. This means it can start to be used by ordinary people rather than programmers. Up till now you have only been able to manipulate MysteryMachine games and system via actually exceuting python code, but now there is a UI which should work on Mac,Linux & Windows - although I have currrently only tested on linux.

There is a plan for myself and my partner to write a full game in in time for November but we shall have to see how that goes.


Trac or bitbucket.

Updated: 12:55 : I was attempting to blog from my andriod phone , but it posted it live rather than to drafts.
I've noticed that a recent server upgrade has broken the Trac install used by mysterymachine.
Trac was never very fast or responsive on my server and has no account creation support as standard (it is available as an extension). All accounts needed to be created by the site administrator.
This puts a roadblock in the way of causal users trying to report bugs. Not that I've hand any yet but I want to be able let all comers report bugs.
For sometime I've also had a mysterymachine archive on bitbucket, since bitbucket also provides a wiki and bug tracker as well as a large community. I'm strongly tempted to make that the new primarily for MysteryMachine. If I do so I will migrate the existing wiki content there. I will still host a copy of the MysteryMachine repo at , so it is just the the issue tracker and the wiki which are really moving. Does anyone have any opinions.

Labels: ,