OpenRPG

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.
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.
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 - a large portion of which has been replaced. 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 which actually allowed ORPG to work, a personal web server, various die and performance improvements, general application stabilization, and countless other minor contributions, including rewriting large portions 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; while broadening its appeal to new users. 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. The primary conflict revolved around quality and stability versus quantity. Needless to say, quantity won. 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 was originally spearheaded by "Oracle" but developer conflicts prevented it. Later, after "Snowdog" chased away the remaining programming talent, he completely re-envisioned OpenRPG. "Snogdog's" re-invisioned OpenRPG2 was to target Java instead of Python. He attempted to redesign many of OpenRPG's low-level features which are subpar or kludged in the original implementation; mostly from acceptance of many low quality patches in the course of the development. Ultimately the Java transition centred on long list of seemingly minor language misconceptions "Snowdog" held about Python's capabilities and supported platforms. Ignorance of available python technologies likely played a part. Furthermore, unlike the existing OpenRPG implementation which actively encourages language and platform agnostic features, "Snowdog's" implementation was to become Java centric, to the exclusion of all other languages and implementations. This posed a major departure from the existing open, language agnostic, and multi-platform approach. "Snowdog" also held a strong desire to limit code contribution which is in part, the bane of OpenRPG's stability. To date, the OpenRPG2 effort has completely stalled and no significant development on either OpenRPG1 or OpenRPG2 has taken place in years. Code from "Snowdog's" effort is likely still available.
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 but the most common version in use is 1.7.7. The current development focus is to absorb minor community patches and maintain compatibility with current wxPython (wxWidgets) releases.
 
< Prev   Next >