Dungeons & Dragons & development

September went by so fast that I missed the deadline for the Experimental Gameplay Project‘s “Neverending Theme“. No matter, I’ve been busy with other things… sometimes involving these:

Jim has been bitten by the Dungeon & Dragons bug since attending the Worldwide D&D Game Day early in September. His fascination with D&D appears to have started via Penny Arcade‘s involvement in the D&D podcast, and was further cemented after watching the Robot Chicken writers play D&D on YouTube:

Jim has since been Dungeon Master for a few short game sessions at his apartment, and I’ve been playing a character called “Gakk: The Face-stabber”. It’s been interesting to see how the game has changed since I last played it in primary school. It feels more like a board-and-card game… but maybe that’s just because I never played it properly before.

The character sheets are fairly intimidating for newcomers. They feel onerous to interpret and update (“Um… are these values cumulative?”), and somewhat volatile (subject to being misplaced or damaged). Maybe it’s just because we’re not used to them, but they seem a little convoluted.

Which brings me on to “development”. I’ve been trying to grok web development from the ground up. There are a lot of new technologies that make things easier for seasoned web developers, but I have little practical appreciation for the models they follow or the problems they solve.

I decided to try to learn web development foundations by using just the most basic (and widely used) software: Apache, MySQL, and PHP… with a little CSS and JavaScript thrown in for good measure. I’m using Subversion for version control and a simple Bash script that invokes rsync for deployment.

Creating web-based D&D character sheets seemed like a good project to undertake. They may make D&D more enjoyable, and we could learn more about web development. I got a copy of Learning PHP, MySQL, and Javascript and set to work on modifying some examples to suit our requirements.

My first problem was setting up a development environment under Windows. I usually develop on my desktop computer (which runs Ubuntu 10.04 and I use a virtual machine as a LAMP server), but I would be working on my Windows laptop over at Jim’s place.

I went with software that I had used before and added some recommendations from the book. This meant installing TortoiseSVN, Cygwin (with rsync and SSH for key-based authentication when uploading to the live server), and EasyPHP to provide a WAMP stack.

After a couple of programming sessions, we had a basic website where users could sign-up, login, create a profile, and create characters. Jim has more database experience than me, so he directed the database design. It seems pretty lightweight because character sheets are formulaic and a lot of the data is fixed.

I figured that it would be nice to have a web app version for iPhone, so I bought an iPod Touch 4 (8GB) for $268 at BigW. I haven’t really been interested in iOS devices before, but the new (pseudo) multi-tasking features and high-resolution “Retina display” address what I considered two of the devices’ biggest shortcomings.

It’s clear that Apple have put a lot of thought into product and software design for their iOS range. The iPod Touch 4 is responsive and intuitive, and tailored web-pages look fantastic and load quickly. This made me even more keen to develop a mobile version of the site, and also to get an Android device in the not-too-distant future.

Unfortunately, the battery life on these sorts of devices is abysmal. So I may be sticking to a feature phone for a while longer (such as the Nokia C1 which boasts a whopping 6 week battery).

Anyhow, James is still looking for more D&D players. So let him know if you are keen and you may be able to also help us test our web-based character sheets. 🙂

7 thoughts on “Dungeons & Dragons & development”

  1. Do you have any kind of mail push enabled? It absolutey destroys battery life, I usually just have the check at 30min intervals ticked and it works a lot better.

    Matt has been working on a similar thing recently with html5 awesomeness and a django backend. You should had a chat about it with him and trade notes.

Comments are closed.