1. Is this a rules description or a rules engine? What I mean by this is are you intending on using this to just build and maintain characters or run games with? I would say to start with just a character sheet maintainer. You can always expand later.

The scope of this is rules description with (eventually) some level of logical build support (i.e. It will do some of your math for you). If you have Windows or Wine, check out Grapevine, a Whitewolf LARP administration utility. It's not going to be a clone, but my intent is to eventually provide that sort of support system for GMs, possibly with a restricted-subset mode for players (one of the problems with grapevine is that, if you want everyone to have access to their own character sheet and such, you basically end up passing around the whole gamefile, and run into synchronization issues between users. Definitely a "version number" sort of thing, at least.

2. Figure out which systems you intend on supporting at first. White Wolf? AD&D (if so, which edition? 2? 3? 3.5? 4?)? You can always add systems later, but trying to solve ALL systems is going to doom you to failure. I would suggest just supporting what you play right now. You will need to refactor later anyways, so embrace it.

My plan right now is to try and generalize the data structure so that it can cover White Wolf, D&D3.5, and Paranoia (which will be simple enough if you can cover White Wolf). As far as which ones I'm actually going to try and handle making a valid configuration file to handle in the first release... definitely one, either White Wolf or Paranoia. Paranoia is simpler, White Wolf is an itch I'm more likely to scratch, and would be closer to a complete test of this.

3. How amenable do you intend on being to supporting house rules? Initially, I would say no.

I definitely intend on there being support for player-created traits and such. One advantage of loading the description of the system from a description document is that it seems like it would make it fairly easy to support multiple cascading documents. So that, for instance, loading White_Wolf.xyajsonml would get you the standard traits, and then you would load "White_Wolf_User.xyajsonml" and superimpose trait redefinitions and new traits.

I think this provides for a fairly graceful path for building the system. At first, you can only edit the main file to add house-rules and user-created traits. Then you can load a second file to do so. Then, finally, you can do so in-GUI.

That seems like a very sensible release schedule, with the caveat that I might want to be able to load and display a system's rules for characters before having a character to display. Maybe not, though... I still have a lot of planning and thinking to do before I start coding ;-)

I've found this really helpful, and I may very well take you up on your offer of help. I do have to say that I'm a little worried about being overwhelmed... this is my first non-school/trivial programming project, and I do definitely want to collaborate with people on this... but I also feel like I need to have SOMETHING that I made that's remotely functional before I bring people in. Maybe it's just insecurity, but I feel like, if I don't have some of the skeleton first, I risk being a useless appendix on my own project.

That being said, I'll definitely take a look at DBM::Deep, and I'll let you know when/if I'm ready to open it up. Thanks VERY much for the detailed analysis... the suggested roadmap especially is really useful.

for(split(" ","tsuJ rehtonA lreP rekcaH")){print reverse . " "}print "\b.\n";

In reply to Re^2: RFC: RPG ;-) by pobocks
in thread RFC: RPG ;-) by pobocks

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.