We are at a turning point in PCGen development, and we need the community to influence the direction that our project takes. This influence may be changing your level of participation, clarifying how you use PCGen, or in other ways… but the decisions we now face require more involvement to ensure a healthy future.
While we know this hasn’t always been perfect, backwards compatibility of data and PCs been a major focus since PCGen version 5.12, and that means many of the team’s hours is spent focusing on compatibility.
Unfortunately, portions of PCGen that are hard to replace with a backwards-compatible subsystem are increasingly the limiting factor in our ability to keep up with new rules released by publishers.
We have been working on some proposals in the last year; those that read some of the lists may have seen references to “FACT/FACTSET” or a new Formula System. These proposals are a major effort, but would have wide-ranging impact on data stored in LST files.
In an ideal world we get three things:
(1) Fast development
(2) Backwards-compatible data and PCs
(3) New, flexible capabilities to keep up with new rules/publishers
Simply stated, the current team cannot do all three. Something has to give.
The problem is determining which “breaks”. We cannot set the priority of those items without having input from those that use our program and those who would be most impacted.
This is where we need your help.
How it may impact you (Q&A)
Q1: How will this affect my character which only uses PCGen sources?
A1: Theoretically it shouldn’t, but we will need to test and probably get a library of characters to test with
Q2: How does this affect the customizations I have made for some home rules (based on / dependent upon PCGen shipped data)?
A2: It probably means a rewrite due to mental model changes to improve what we can do in data. Some tools (see Q3) may be able to help, but they have not been developed at this time.
Q3: How will this affect a full system set that I have developed or updated from a closed source?
A3: This is currently undefined… there are things we may be able to do to help, but would be an external converter, and not written by the current developers due to bandwidth constraints. If you have programming skills, you can probably help.
Q4: How will this affect me if I like to contribute data to the project every now and again?
A4: Learning new things because tags will be changing, but the increased consistency will probably mean it’s easier to learn than what we have today.
How to help / Next Steps
Given those potential impacts, here is where we could use your help:
1) If the Q&A above is not specific enough to answer your questions – then ask more questions. We will answer what we can (recognizing that these are proposals and that certain things still need work).
2) If you are a data monkey, catch up on the recent team meeting and learn what is happening. Make sure you understand the impact and what it will mean, since the changes are being made to give you more control and power. Make sure they meet your needs, and if not, speak up so it is either fixed or not implemented in PCGen.
3) If you have home-brew data, then you should learn about the proposals (See below for wiki links). Learn what they might do to your data. Speak up about features you might desire. Learn and ask how things would be converted. Become informed so that you can provide good input on setting priorities. We need you in the discussion and not just frustrated afterward that things changed.
4) If you just use the data we ship, but have development skills, consider helping out. There is a lot of custom data out there. Having a compatible system is important to home brew data, but without new developers it won’t happen…
5) If you are a user without custom data, speak up on what is important to you. The squeaky wheel gets the grease, so if the only ones speaking have custom data, it may become a big focus… that means if there is a huge problem with such data, then the new features may not be put into PCGen. We need some of the silent users to be less silent.
Further background and links
(1) Why we need to replace the JEP Formula System with a new Formula System –http://wiki.pcgen.org/Formula_Parser-JEP_removal
(2) Formula Parser replacement proposal –http://wiki.pcgen.org/Formula_Parser_Equip_Vars_Proposal
(3) Formula Parser demo for local items –http://wiki.pcgen.org/Formula_Parser_Equip_Vars_Demo
(4) Data Team Conversion to Formula Parser mock up –http://wiki.pcgen.org/Formula_Parser_Conversion_-_Data
(5) FACT tag proposal – A customizable, expandable tag to allow a single static value:http://wiki.pcgen.org/FACT_Token
(6) FACTSET tag proposal – A customizable, expandable tag to allow multiple static values:http://wiki.pcgen.org/FACTSET_Token
We also have a github repository where the data team is converting portions of the core pathfinder rulebook, to see how this would work, and demonstrating different mental models to replace what we have in place. Warning, syntax may be incorrect, this is just to provoke discussions of the nature “Why” and “How can we do it better in the new system”.
-The PCGen Team