Imported From Epistula Projects webRPG

Party like it's 2003

I promised, and I deliver on promises occasionally.

PFD4 is back up for all your semi-stable online roleplaying needs.

Cantrip, its replacement, is still under reconstruction

Cantrip Imported From Epistula Python web development webRPG

PFd4-II Design Diary – Part One: Start of a Brand New World

In the first part of a brand new series, I’m going to document the entire process of getting a web-app working.

I’ve been promising a new version of PFd4 for a while now. I have also been meaning to learn Python properly, so I’ve decided to combine these two projects into one handy package.

PFd4 was originally concieved when 2d10 – which my girlfriend and a number of my other friends were playing an RPG on – went AWOL for two weeks. At the time I was staying with one of the players and her (now) husband, who hosts both this site and my main site Aquarionics. So, Girlfriend, Provider of Free Hosting (both real and virtual), and small number of other friends need a web site. At the time I was unemployed, homeless and about to slide into the dark pit of depression, so I took on the project.

I coded the original version of PFd4 in three days flat, including one day designing the data structures, and as such it isn’t the greatest piece of coding I’ve ever done. The interface for the messaging was messy, and it only barely did what they wanted it to do well. Nevertheless it existed until the game ended a couple of months later, and during that time I consistantly promised myself that I would rewrite it. Now I’m unemployed again, although not homeless this time, and I want to learn a new language and skillset, so I’m using this.

The original structure for v1 is here.

These are the design principles for PFd4-II:


A new name.

I’ve never really liked the name PFd4, partly because my brain wants to parse it as PDF4. It stands for “Point First d4” (A d4 being a four sided dice) which is a play on 2D10 – the system it replaced – and the fact that it’s quick, painful, and RPGish. (d4s are pyramid shaped, if you stand on them it hurts).


It’ll be written in python, built on mod_python, backending onto a mysql database – as the last one did. This is the tricky bit. I am a PHP programmer by trade – though I did both C++ and Java at University – and am just getting into this python lark. Most of the reason I’m doing this now is to learn python.


The python will generate XML, which will be fed though an XSLT stylesheet and passed to the user (Actually, I may not even do this to start with and leave the XSLT client-side, it’s slightly quicker)

In fact, even quicker would be to generate XHTML by default – rather than an arbitary XML form – and transform from that.


The XSLT stylesheet will generate XHTML/CSS3 code that degrades gracefully to older browsers (If it isn’t already, see above). It may also produce PDF versions of logs etc.

External Access

Allow XML-RPC interface, NNTP, SMTP access etc. Possibly



Games will belong to campaigns. Any number of active games can be in a campaigns. This may involve subcampaigns, though that might be a little too far.

Characters will belong to Games too, rather than campaign, meaning a character can’t be in two games at once. I’m open to negotiation on this bit, because whilst I can see that having three characters for “Bob the Avenger” is duplication of effort, having Bob level up in one game and suddenly be levelled up in the other two is silly. This is also an interface problem, since I don’t want duplicate names, but if they’re in the same campaign – though different games – and they are the same person (Say, Bob The Avenger aged 16 and Bob the Avenger aged 25) that should be allowed (Yes, I do like the idea of Bob the Avenger, why do you ask?)


When a character makes a “play” they can do it as a ‘voice’. So a thief pretending to be the lady of the person whose house she’s robbing would be “Bobette the Thief as Lady Fitzdamnation”, with Fitzdamnation as the ‘voice’. This concept was popular with those who understood it, but complicated to explain. It remains (I like the idea, and it’s my system, damnit) but may end up being on some kind of “advanced” system. Plus, I want to be able to use it so that GMs can use it without the players being aware of it, so instead of “GM as Lord Fitzdamnation” you just see “Lord Fitzdamnation”. In fact, it’s possible that all GM plays would be made this way, and make the GM register a character for any persistant avatars same as anyone else.

Other Players

At an option for the GM, no player should be able to see what other PCs are playing, or even whether a given play is made by a PC, NPC or GM. NPC is the tricky one of those, because PCs and GM characters can – and will – have profiles, whereas small NPCs probably won’t.

Artifacts & Encyclopaedia

Every campaign will get an Enyclopaedia where they can put articles (Text (& Images?)) relating to the campaign. GMs will also be able to upload “Artifacts”, a file – any type – which groups can view. (Needs to be worked on to avoid becoming arbitary gallery space)


Characters can be lassoed into groups, which can then be given permissions. For example, if the GM wanted the group to find an article in Elvish, s/he’d upload the file as an Artifact with the group of “Characters who understand Elvish” being the only group allowed access. Inside this group s/he’d put all the characters who – duh – understood Elvish, and only they would be able to read it.

‘Play’s can also be restricted to a group, or some groups, or a list of people (For example, all those didn’t fail an observation roll might see that the carpet by the bookshelf is trapped, nobody else would see that message), though the list of people might be better off as a message. A message then just becomes a play that only the other person can see, which neatly stops me having to write another bloody e-mail replacement.


  • Implement the database
  • Login system
  • first-cut templating
  • User add/admin
  • Campaigns
  • Message Events
  • Games
  • Characters
  • Plays
  • [1]
  • Groups
  • Plays Mk2 (With groups)
  • Character Profiles
  • Encylopaedia
  • Artifacts
  • Design Cut 2
  • Bugfixen
  • Release.

[1] is the point where the system is usable for testing.

aqWiki Imported From Epistula internet Projects webRPG

Those who resemble spammers from a distance

So, one of my major projects at the moment is to rearrange my online existance away from Aquarionics. Aquarionics remains as it is, mostly, but all the extra things (Like PFd4, ForEver and the forthcoming projects codenamed Touchstone, Threadnaut, and Angelica to move to a whole new domain – and empire – known as will have an integrated login system – so if you have an account on one, you have an account everywhere – and with this was going to come logging in for putting comments on Aquarionics.

This was never, and will never, be a requirement to comment here, but registering – which would be beside and an alternative to the “User/Email/Webpage” would give you certian benefits, like an extended triggers interface (Recieve an XML-RPC ping,SMS Message or email whenever this range of things happens) the ability to edit your comments (With revision control) and – if the spam gets too much for me – I can always turn off URL display for non-istic users for a time without losing any actual content.

Typekey, however, I’m against for anything outside Typepad, because it appears – at first glance, so I could be wrong – to be an all or nothing. You have to register to comment. Actually, “You have to register to post comments on anything more than $foo days old” might be better, but we shall see.

Imported From Epistula Personal webRPG

Happy Pills

Today, as the previous entry shows, has been more or less a write off.

Forever had it’s episode locking rewritten to stop manual overrides, PFD4 gained avatar editing and the ability to dump an entire game as an XML file (Currently less private messages, which might be a thing to add), and I nearly bought a new domain to put this type of thing on, but cancelled it at the last minute because the rent for my storage unit in Reading happened.

I also did not buy Wee Free Men – the new Terry Pratchett book – for which I’m quite proud of myself.

I also slept most of the afternoon, which frankly doesn’t bode well for my mental state. Fortunatly there is an AFP meet next weekend, which will do a lot to knock me back together, so I shall endevor to not fall apart until then.

Sorry. Happy thoughts.

La de-dar, dancing sparkling things, happy thoughts, tea, cakes, bright sunshiney days.

I’m not sure what cosmic balance I upset for all this to happen, but I’m really sorry.

So, today I watched Ocean’s 11, slept, read and did very little.

Afphrid aqcom epistula Imported From Epistula webRPG

Kiss My RSS

Aquarionics now has seperate RSS Feeds for every category. Said feeds are linked to from – logically enough – each category’s archive page. The net result of this, apart from thirty-odd new pages in the Great Aquarionics Empire, is that the news pages for PFd4, AFPHRID and eventually Nomical are all just displays of the RSS feed for that project’s category.


Imported From Epistula webRPG

Roll 2d6 to see if your feed validates

Jumping back into the RSS bandwagon again, I’ve fixed the Aqcom RSS2 feed to escape entities (Hoping that doesn’t break something else somewhere down the line) so that people can stop complaining at me 😛

Most of my current work, however, is spent on the new RPG system. The basic system is now there (Unless you’re using Galeon, which apparently hates label tags when floated left, even if you float them back again later. It just doesn’t display them. Did I mention I hate browsers? I hate browsers). The design is deceptivly simple. Apart from the purple banner at the top, nothing has any formatting, only grouping and positioning. This means that the entire site is built from your browser preferences. This means that not only are any rendering bugs (apart from the labels) not my fault, but I can take the moral high-ground when people tell me that black on white is unreadable by telling them to change their personal settings.

Mwa ha ha.

Also, PFd4 (Said RPG system) is now the only web-based RPG system in existance (That I know of) that has valid RSS feeds of the game…

aqcom Imported From Epistula webRPG

We're back

A minor server outage that was due to last just a little while happened today. We’re now back, ten hours later. Nobody’s fault, shit just happens.

Working on PFd4’s messaging system, and various things.

Normal service will be resumed shortly.

Imported From Epistula intertwingularity webRPG

Please stop hanging around

So this is what we find.

In the last days of March 2003, nobody could have imagined that forces beyond the imagination of average were conspiring to make Aquarion Kael D’Blue’s life more complicated than necessary. Necessary, in this case, being… well, at all would be nice.

The house hasn’t happened. I’m still homeless, still staying with Pol & Supermouse in the wilds of Aylesbury, still trying to get back the deposit for the old place, still recovering the extra rent they took by accident, still trying to resolve the new flat before I wear out my welcome here.

I hate, with a passion unholy, this, because I should have moved in last week, I should have sorted my life out, and even with the crap at the end of last month, I should have moved in by last weekend. To be fair, this isn’t all my fault, but it’s still annoying.

The results of this are severalfold. Not only has it resulted in the creation of Point First d4, quick and painful replacement for the dead 2d10 site – in three days flat, but also a number of minor (mostly internal) additions to Forever (Including the RSS feed, and the ability to add new users, which has apparently been dead since December) but also a bug & suggestion tracking system (Not written, but installed, in the form of Anthill, a PHP Bugzilla-like) for all the various Aquarionic systems (Epistula, Afphrid, Aqcom & PFd4) and I’ve also started on a redesign (You can act all suprised now) which, whatever it ends up being, will be less orange than Simon’s.

In less technological news, I’ve been helping Pol & Supermouse do such things as put up fencing, trellising and posts. Also clearning out server rooms, putting things into lofts, and watching copious amounts of really, really bad TV curtosy of my first detailed exploration of the anchient art of having hundreds of channels of bad TV at my summoning.

In conclusion, Samuri Jack is quite good, but most of them should have been shot at birth. Oh, and Graham Norton is So Very Annoying. Conclusion ends.

Oh, and we appear to have succeeded in invading Iraq, leading to lots of incredibly cinematic pictures of US Troops – ably assisted by grateful residents – destroying statues. I mean, you couldn’t arrange for such cinematic footage. Sorry, I’m being cynical again.

Does that mean we can get back to the important things, like new XML specs, Grad school, Personality Defects and the value of scemantic markup? apart, of course, from those who never left it. I tell you what, I’ve got this great idea for how to communicate between weblogs, and it involves carrier pigeons with the evil bit set

Imported From Epistula webRPG


I did it. I went from zero to a fully functional, reasonably complex RPG system in three days, including a day of database design and design docs.

It doesn’t have private messaging yet, though that’s coming soon, but that would be the only major thing it’s missing. I have to make the interface a little more intuitive, make the system explain itself more, and add the nice fripparies like ESF/RSS feeds of games (And also the game archives) and stuff, but the basic RPG system is there. Woo-hoo.

On top of that, LoneCat is in Aylesbury for a bit, Yay, and Vanderpumps are being annoying about the flat (boo).

epistula Imported From Epistula webRPG


I’ve given up on the cross-referencing thing until I’m less busy and the world is less caught up in Other Events. In the meantime…

2d10 went down last weekend. 2d10 was a generic message board type site designed for online RPGs. In this, it didn’t do badly, though the interface didn’t like Mozilla very much, but it sucked in many small yet annoying ways. I never used it, though several of my friends were involved in a game on it, so I got to overhear them discussing which bits worked and didn’t, and over time an idea for a better but similer system came about.

But, as I say, 2d10 went down last weekend, and doesn’t look like coming back any time soon. The GM of the game my friends are in mentioned that if it isn’t back by Monday, he’ll find somewhere else, and at that point my plans kicked into overdrive. From a borrowed laptop somewhere in the depths of Aylesburyian suburbia, Aquarionics Industries is bringing you Point First D4, a quick and painful 2d10 replacement which will get more features (and a better name) as it develops.

It’s being done in – you’ll be suprised at this – PHP with a MySQL backend and because my nice database libraries are all in storage the code is going to be a little dirty and kludgy until I get them back. Currently I have a design document and a lot of ideas, but first we must make basic functionality work, which will be Fun.

Observant readers my also have noticed the brand new addition to my increasingly cluttered right-hand bar in the shape of the return of the “New & Cool” box that has been on AqCom since feb2000, but got lost in the design about a year and a half ago. The data has been migrated, the box renamed, the archive coded, now I just have to add new things.