Join 132,302 Programmers for FREE! Get instant access to thousands of experts, tutorials, code snippets, and more! There are 1,023 people online right now. Registration is fast and FREE... Join Now!
Yes, I am a geek. I am proud of that fact. And with that out of the way, here is the project.
My project is a complete toolkit for tabletop Role Playing Games like Dungeons & Dragons, GURPS, Vampire, etc. It is plug-in based so it will work with any tabletop RPG system that there is a plug-in for. The plan is to make the plug-ins work with the other tools in the toolkit. For instance, the combat tracker tool will have access to data from the character sheet tool. The map tool will have access to the character sheet tool and the combat tracker tool. This will allow the DM to load the Player Character into the character sheet tool to keep track of things while running game and when combat comes, he can open the combat tracker tool can have all the PCs in the campaign automatically loaded into the combat tracker tool. The combat tracker tool will communicate with the map tool to show who's turn it is. The map tool can even access the character sheet tool to figure out what the speed of the character is and can show what squares the character is able to move to and such.
The project is using the Java Plug-in Framework to load and handle the plug-in stuff. Each tool, of course, will be a plug-in which can be loaded dynamically. This allows me or other developers to create more tools and plug-ins for different systems and release them without the user having to re-install the program.
Planned Tools/Plug-ins:
Campaign Manager This is the main plug-in/GUI. Through this you will be able to load all the other tools. Multiple Document Interface for the GUI with the child forms being Character Sheets, Maps, and Notes. Will dynamically load menu items for the currently active plug-in and will also have a dynamically loaded tool menu which allows the user to open all of the tools that are loaded into the system.
Character Sheet This category of plug-in includes all the plug-ins for the game system specific character sheets. Current plug-in in works is Dungeons & Dragons 3.5. Other game systems will come as I have time to develop the plug-ins and money to purchase the books for other systems. Will include PC and NPC generation and character sheet printing with character data already on it. It will also be able to print out a "spellbook" of the known spells for your spell casting classes.
Dice Roller Standard dice rolling tool.
Combat Tracker This tool will keep track of who's turn it is, what spells/effects are currently in play, and will be able to automatically roll HP and Initiative for monsters/villains when added to the combat tracker. Will also communicate with the mapper tool to display who's turn it is.
Mapper This tool is a dual-screen tool. The first screen with be an MDI child form which will work within the Campaign Manger tool. This screen will display all the data for the map including GM only data. The second screen will be for player display. This screen will be designed with the intent of using with a projector pointed at a table as per the d20srd system. Will also include tokens for keep place of the PCs/NPCs/Monsters. The map will also be vector tile based so the map can be zoomed in or out to display from the world map down to a small area such as a town or on a road in which the players can have combat on. It will also include a "fog of war" feature which will display what the player's can see based on character's sight range including low-light vision/darkvision.
Eventually, this tool will be paired with a touch panel based system like the TouchKit so the players can interact with the map and move their characters around. Other planned features include dynamic lighting and dynamic "fog of war" based on the character who's turn it is currently is.
Data Entry This tool will allow users to input their own items/spells/monsters/classes/races/etc. The data for the D&D 3.5 is being stored in XML files. This will allow users to copy the data and share it with others easily.
This project is a labor of love for me since I am a big fan of tabletop RPGs and currently running a game. From my searching, I can not find something that does all of this stuff and work together like I want. So I am working on this toolkit basically for personal use. However, since I figure I'm not the only one who could use this, I will be offering this as freeware. I haven't decided if I want to release this as open-source or not yet. I am the only programmer working on this project with the occasional help from you fine people on this forum and the couple programmer friends I have locally. This is also being in my free time, so it may be a bit before it's done.
When I start getting to a point where I actually have something to offer, I will start working on a website for this project where users can download the program and join the forum to submit bug reports, ideas for later versions, etc.
I have thought of a few more things to add to the list.
Other planned features/tools: Monster/Creature search based on CR, Name, and/or Environment Shop Tool which allows the DM to create shops for items where prices are different then what the books state. May also include some sort of price override system for when players haggle for the price. Language Creation Tool for the DMs who like to create fantasy languages to use in their games.
Biggest issue with the toolkit is the data entry as there is TONS of info for each game system alone. Just the core rules of D&D 3.5 is huge if you think about the amount of data that needs to be put into the data files for all the feats, skills, spells, races, classes, etc. Right now I just have a small amount of test data to use while working on the program.
As for the project as a whole, the Character Sheet Tool for D&D 3.5 is about 35% done. I am currently working on the classes part which is taking a bit as I am adding a "level-scaling" feature. This will allow the user to keep track of their character's advancement by level. So if they say have a 12th level character which they want to use in a campaign where the current level is only 4th, they can scale their character back to 4th level and play with the data for their character at that level. As their character gains XP, the program will automatically level up their character with the data already stored. This, of course, will be able to be over written if they instead decided to take their character on a different path then they originally did. And when adding a new level, the data will automatically update with the proper data based on their new level.
The Campaign Mapper is about 70% done. I still have to add the dynamic menu part for the plug-in menus (Tools and menu specifically for current loaded plug-in i.e. Character Sheet), and a few other odds and ends to tie up.
The Dice Roller is about 50% done. The back-end code to actually do the roles is done and is stored in a common plug-in that all the tools have access to. I just have to create a GUI for the Dice Roller.
Once, these 3 tools are done. I will release a beta version for people to play with and test. Anyone that wants to help test the beta should feel free to help out when it gets released. I will post a link to the site for it here when I get to that point. The other tools and plug-ins I will release as I get them done. The Mapper will probably be the last one of the list to be done as it will be a HUGE undertaking.
Character Sheet Tool for D&D 3.5 is now about 50% done. I have the level system working. It will automatically update character data based on the level of each class you have selected. Still left to do is the items, saving, loading, and printing. The saving and loading will use similar code to what is already being used to load the data. All the data that needs to be saved is already in a class created to store the data in the program. The printing will probably take a little bit of time, but I have done work with Crystal Reports before, so it shouldn't be to much of an issue. I just have to translate my knowledge into Java in the Eclipse environment.
I am also currently working on a multi-touch table for use with the Mapper Tool. The table will allow the players and the GM to touch the character and monster tokens to activate different options based on the gesture done. I haven't decided which library I will use yet (either TouchKit or Touchlib). All of the options will also be available by mouse clicks as most users probably won't have one of the tables to play with. The table is built following the numerous tutorials online about using a piece of plexiglass, IR LEDs, and a hacked webcam.
For Gurps. I suggest using the Gurps lite rules it would simplify your code as it is the condensed version of the rules.
I used to be a cell leader for Steve Jackson Games. It has been about 6 years but I could probably play test with the Gurps component when it is done. We also play d20 and I would love to get a 3.5 DnD game running again.
Other game systems will probably have to wait until I get the other parts of the project done and as I get access to the rule books for those systems, but I will definitely look into GURPS lite.
The Mapper is the next most important piece to be done after the core stuff (Campaign Manager, Character Sheet, and Dice Roller) are done. The multi-touch table is almost complete. I am waiting on the IR LEDs to come in so I can finish the electronics part of it and waiting on a chance to finish up a few odds and ends with the table itself (mainly some cutting to fit the electrical boxes to hold the power outlets. I will post pics of the table after it is done.
For those of you who are interested in developing a plug-in for your favorite game system, the project is being written in Java. The main GUI for the Character Sheet plug-in should extend JPanel which will then be loaded as the content pane of a JInternalFrame by the Campaign Manager. Data is stored in the data folder for your plug-in (~/RPG Toolkit/data/your.package.name.here/). I have developed a common plug-in which contains some useful functions (such as one to return the location of the data folder) in the rpg.toolkit.common package. Other details about developing a plug-in will be posted when I get everything finalized. You should see a tutorial for creating plug-ins around the same time the details are posted.