OpenRPG

From Wikipedia, the free encyclopedia

OpenRPG is a computer-assisted role-playing game application that allows people to play role-playing games in real-time over the internet. OpenRPG is free open source software, distributed under GNU/GPL license. OpenRPG is developed with the Python programming language, with the wxPython graphical library. It runs on Microsoft Windows, most versions of Linux, FreeBSD, and Mac OS 10.2 and up.

[edit] Interface

Unlike computer role-playing games, OpenRPG is designed to simulate a tabletop gaming session as closely as possible. Players can either run their own servers or connect to one of the public servers hosted by community members, and then create their own chat rooms in the servers for individual games. In each room, players interface through the main components of OpenRPG's user interface: the chat window, the miniature map, the player list, and the game tree.

The chat window is an HTML window which contains the text of the conversation. Players send messages to each other in a manner similar to that of IRC, except that rudimentary HTML is used for formatting. For example, the gamemaster might send a message to chat describing a room into which the player characters have entered, and the players would respond by typing their characters' actions or responses once entering the room. OpenRPG has built-in dice simulators, which can roll all standard and many obscure types of dice. There are a number of sets of macros, called dierollers, which are usually associated with specific game systems and are used to make specific dice rolls easier for those systems.

The miniature map is a grid area where game masters can put images representing maps, scenery, miniature figures, and other graphics. Players can move miniatures representing their characters around the map to show where their characters are walking. OpenRPG's miniature map is often considered the most buggy part of the program.

The player list contains a list of all people in the current chat room. Players have an ID number, which is assigned by the server when they connect; a nickname, which they can freely change through the course of the game (because it is often necessary to assume new names while roleplaying); and a status, which tells whether the player is currently typing.

The gametree is a tree structure containing "nodes". By arranging different nodes like text boxes, grids, and containers like tabbers and splitters, players can create their own digital character sheets for storing information about their characters. Unlike the competing program WebRPG, OpenRPG's character sheets are not dynamically shared, but they can be transferred between players.

Many parts of OpenRPG are written with a "plug-in" infrastructure to allow for minimal modification of core code in order to add new features. The official "OpenRPG plugins" are hosted on an external site, and can run code on different types of prompts, such as user text being sent to chat or once per second. However, other parts of the OpenRPG code are extensible in the same way. Handlers for new gametree node types as well as dierollers can be created so that users can add new utilities to OpenRPG with minimal effort.

[edit] Development

The creator of OpenRPG is Chris Davis ("posterboy"). In the initial stages, he contributed a significant share of the code; including the basic client and server. He also created many of the initial concepts which are now central to OpenRPG, such as the game tree, which is extensible via plugins, and an HTML chat window. In recent years, Davis has been busy building up his company RPGObjects and has had little time to work on the OpenRPG project. Though not as active as he once was, he does plan to return to the project in a greater capacity one day. Thomas Baleno ("tdb30_") and Todd Faris ("Snowdog") are the other project administrators, and there are a total of 16 official developers that work on OpenRPG, to one degree or another, with the collaboration of numerous other users; some to the detriment of OpenRPG.

Since then significant contributions have taken place which allow OpenRPG to become more usable and highly extensible. The initial server GUI was created by Lex Berezhny and later improved by Greg Copeland ("oracle"). Copeland went on to become a major project contributor, working on image caching, persistent rooms, room messages, background image processing, thread safety, a vastly improved networking base, a personal web server, various die and performance improvements, general application stabilization, and countless other minor contributions, including rewriting some code from scratch. Without Oracle's contribution, it is unlikely OpenRPG would exist today. Ted Berg contributed the initial chalk board implementation and the alias tool, which brought a new level of chat and map usability to OpenRPG. Ted also created an independent implementation of OpenRPG using Java; though the current status is unknown. Greg Copeland and Ted Berg both left because of conflicts with the development team and process. Since leaving, little significant development has taken place.

Other noteworthy contributors include Andrew Bennett, Bernhard Bergbauer, Chris Blocher, Ben Collins-Sussman, Robin Cook, Michael Edwards, Andrew Ettinger, Dj Gilcrease, Christopher Hickman, Paul Hosking, Brian Manning, Scott Mackay, Jesse McConnell, Brian Osman, Rome, Reginelli, Christopher Rouse, Dave Sanders and Mark Tarrabain.

In December 2005, OpenRPG released version 1.6.3 of its software. The 1.6.3 release was the first official release in about a year and made numerous improvements to the program including several major bug fixes, server reliability improvements, integration of plugins, and improved support for the new versions of Python (2.4) and wxPython (2.6), though developers still recommend that users run OpenRPG 1.6.3 with Python 2.3 and wxPython 2.4.2.4 rather than the latest versions of each.

A complete rewrite, OpenRPG2, has stalled, while still in the earliest stages of infrastructure development. Spearheaded by “Snowdog”, OpenRPG2 was to be written in Java instead of Python. It attempted to re-envision many of the low-level features of OpenRPG which have become limiting in the course of the program's development. Ultimately this was attempted because of long list of misconceptions Snowdog held about Python's capabilities and supported platforms. Furthermore, unlike the existing OpenRPG implementation which actively encourages language agnostic features, Snowdog's implementation was to become Java centric. Snowdog also holds a strong desire to limit code contributors which has been the bane of OpenRPG's stability; which is not an altogether negative aspect to his approach.

At some point after version 1.6.3, one of the developers, Dj Gilcrease, started working on versions 1.7 and above. 1.7.x has since become the official release and only the developer (beta) version is called OpenRPG+. The current Stable release is 1.7.3

[edit] External links