RPGs as Data Driven Apps

I meant to work on this post earlier this week but my week got real busy and I lost my time to write up posts.

I spent some time thinking about how pen-and-paper RPGs are best represented in an electronic medium. I don’t mean writing a full game like Neverwinter Nights; I mean representing the actual experience of the books, rules and dice in an app format. I realized that RPGs are by their very nature data driven: the character sheet, the rule set, the world setting, and the information that goes with it. Because everything is created whole-cloth — even those settings based on established properties — the game must be communicated with information for it to go. This is different than a card game or a board game which require a very small amount of fixed information (what’s on a card, say, or a die roll moves you 5 spaces, or you need to play this token) and a large set of rules. An RPG requires a large amount of information and an arguable amount of rules.

The devil is in the details with the amount and control of the information surrounding an RPG. This lies at the heart of many rules and design-based conflicts: how much information is needed for a person to interact with the world, how is the information manipulated to model the world, and how is this information communicated and stored. In the past, games often required a HIGH amount of information to interact with a HIGH number of system rules to determine a HIGHLY DETAILED piece of data after running the system — a simulationist system. Today, we have a huge number of styles from a low data with small ruleset games (like Fiasco) to moderate sized amount of data/character and data/world with moderate sized rule sets (like FATE or Cortex) to high information games with high detail (like D&D4).

This is all run on data. The nice thing about data is that data is about all a computer understands. It can hold data, process rulesets on data, and present data-driven results at the end of processing. So for example we have a large piece of data model in a character sheet. A character sheet possess stats in some form (d8 Wits, 18 Strength, 3 dots in Hawt, etc). The world may also possess similar unified stats — an NPC, a known test, a quantified piece of the world. Passing the world stats and the character stats through a known resolution engine generates a known result, which may also be stored and used to modify other data.

This is all basic game writing 101 and absolutely nothing new, but it’s important to lay out the basics before figuring out how to make it go. A character sheet is simply a line from a data model that has a paper-based persistence model representing a shared contract between player and game world. What becomes more interesting is in building up databases of world information. Pulling up, for example, cult information for Trail of Cthulhu with lists of cults (pick one) and integrated NPC and evil book lists, perhaps be able to cross-reference this with information either found online (automatically populate a database with reference information that auto-loads inline) and information in published material. Work against perhaps web services of a master repository that hosts a bigger centralized database and… but this is starting to get off the device and into web servers and databases and LAMP stacks and generally wandering off the reservation. But this is the idea — RPGs are data driven applications and more data makes them better.

This is where my mind is starting to go for RPG-based apps. There’s more to it than that, though:

* Core Data for storage, persistence, data modelling and all the CRUD facilities (create, read, update, delete).
* Cocos2D engine for dice rolling, card playing, and visual representations of game mechanics.
* WebKit for integrating web resources and maybe a shared repository
* Quartz for drawing really nice character sheets, game sheets, NPC sheets, and to generate PDFs on the fly.
* UIKit with Cocos2D for front end data management screens.
* Network stack for cross-communication between devices, communication with back end web services.

I think it would be nice to be able to have a database of NPCs whose sheets render nicely on the screen and then with a click be able to summon up world information around the NPC — their horrible organization, say, or, GOD FORBID, a RELATIONSHIP MAP… Computers are really good at knitting all this data together into a palm of the hand player, GM and gaming community set of tools. It’s what they do.

These are where my thoughts are sort of going for apps, but I also have lots of thought about an iFiasco app too which hasn’t been fleshed out yet.

And Man… iPad based Smallville Relationship Maps with integrated character sheets. Just…. damn. Can it be done? OF COURSE.