Calling All Code Monkies
- A few days ago, I did a checkout, and I noticed something that scared me
- no one had checked in code for nine days - and that code checkin was
from me. I had to go back 2-3 months to find a code checkin from
another CM. This sparked a level of worry in me that the code side of
the project is dying. So, for the past few days I have been chatting
with various coders and other people on the project to find out what is
ailing the project.
And here is what I found (Ignoring Real Life, because that is always an
issue with a certain percentage of the project):
1) The list of proposed items for 5.8 was too big. Between XML, the GUI
rewrite, the magic system revamp .... the size of it was overwhelming.
This also stopped code in other areas, because coders figured that their
stuff would just get thrown away when it was re-written.
2) The code in many important areas is too hard to learn, and hard to
change without breaking: Persistance, Core, Output etc are some pretty
scare pieces of code made even scarrier by the fact that they are in
many ways tied at the hip.
3) 5.6 was a big effort and people needed a breather
4) Many of the big proposals do little to immediatly impact people's
games. They have esoteric benefits that over time will become apparent
- but in the short term are a ton of work to get back to where we
5) Leadership - We (The BoD) have not been leading a charge.
6) Lack of weekly releases.
So, here is my vision to address these issues:
1) Cutting way back on the goals for 5.8. I'll post my proposed list
later in the message. Everything we want to do *will* get done
eventually, but it needs to be smaller, more bite sized chunks. Also, I
have designed a way for many of these new things to live concurrently
with the existing way of doing things (LST & XML, Old GUI and new GUI,
etc) which leads to (Addresses point 1, 4)
2) I have recently ported the GMGen plugin system to pcgen. My intention
it to use this to break up the code base over time into sets of
plugins. LST as a plugin, pcg loader as a plugin, the *gui* as a
plugin, output, the lst editors, etc....This will allow us to tackle the
giant, scarry parts of the code base in an organized manor - with each
piece encapsulated in it's own little world - allowing changes to become
easier. (Addresses point 3) I propose we move back to weekly releases.
The benefits of longer milestones have been outweights by the fact it
seems to have helped drive people away (Addresses 6)
4) Hopefully, this letter is a start in addressing #5. #3 should have
addressed itself by now.
So far, I have buy in from the BoD on #1 and #2, and based on bryan's
recent letter, I don't think #3 will be a problem. So, here is the list
I proposed to the BoD for the scope of 5.8 that has been accepted
(except Data - the scope for that is still getting nailed down).
1) Get plugins working in PCGen so we can start splitting up the code base into easier to swallow chunks (done)
2) Support code to get RSRD (including epic and psionics) and MSRD working
3) Fix bugs / broken features / unfinished but started mini-projects (bonuses, OS tokens, etc)
1) Fix RSRD bugs
3) Urban Arcana
1) character sheets for MSRD, Epic, Psionics and Spycraft
So, all that being said - are there any other issues you all see? Is
this direction something that can get you all excited and ready to roll
up your sleeves?