14 September 2009

Delve a little late

The next release of Delve, with type checker and bug fixes is gonna be maybe another week away - development is going very well and smoothly, but I've decided to create a cool program I've been thinking about for a while -

See, in a pen and paper RPG, if the players decide to completely ignore the intended quest, for some reason and hang around in a bar instead, the dungeon master (DM) must be able to improvise, either to push them on to the intended quest, or instead to facilitate their mucking around, perhaps by creating a new quest.

This is something you can never have with World of Warcraft or Fallout or any computerized RPG game - well, something you can never have without a lot of artificial intelligence research.

So I want to develop a computer aided rpg system which allows for the flexibility of pen and paper RPGs as well as the complex rules and speed of a computer system. I'm gonna call it C.A.R.P, or just carp, because it's less of a pain to write that way.

There are some computer aided rpgs around - notably OpenRPG and RPG virtual table-top, but carp will differ from them.

I feel virtual table-top is, from the DM's perspective, too text based. It covers many things with documents which would be better written as scripts. Improvisation takes place entirely within a chat window - and then the benefits of programmatic game-play is lost . We can do better than this!

For instance, the player should have a panel of buttons which correspond to 'obvious actions' - stuff like the classic "GO NORTH", "CLIMB UP THE ROPE", "SHOOT THE KOBOLDS WITH YOUR GRENADE LAUNCHER". These are obviously dependent on your location, the current item you have equipped - this is dependent on the game rules, which is dependent on the DM.

Therefore, the DM needs to be able to add widgets to the player's GUIs at his whim. The game needs a scripting system, then, which is powerful enough to give the DM this control.

Also the computer should be able to generate appropriate adversities for the players to fight at any point, this would require statistical analysis, but that's ok.

Of course, a chat window is mandatory for information.

Erlang is a good choice for development language - because it can evaluate itself as a script and can send data around networks and has really good control over its own processes.

The power of erlang is such that its easy(ish) to imagine a player using an item in the game world which would cause a whole new game window to open, containing a whole new copy of carp - but one that exists literally inside the players universe - like in the xkcd comic.

Features, with the more important features ( those I'm going to implement first ) closer to the top:

GUI
Network support - can be played over the internet
Run-time scripting so the DM can improvise when needed
Game rules and content, built using the run time scripting mentioned above
Hot-seat mode - so more than one player can share a computer
Support for a mix hot-seat and network play - so say four people can play together with only 3
Tools for statistical analysis of various things in the game - so for instance the DM can generate appropriate adversities for the players

Features carp will not have:
animation
on-screen maps (print em or draw em, so your players can write on em)
grilled chicken

Also Lizzie notes that I've sunk to new levels of geekiness.

No comments:

Post a Comment