Welcome to CrazedSanity Dot Com!
Home of the Dynamic Content System (cs-content)!
Server Time: 02-06-2012 07:26:37 CST
User: Pass:
State of the TTORP Address
Wednesday, November 03, 2010 08:28 PM

I know a couple of you have been looking forward to the new version of TTORP.  This post is meant to clear up the current status of it, along with an explanation of why it is taking so long (other than the fact that there is only one developer, me).

The original version was very simple initially, with the sole capability of storing character sheet data.  It had virtually no automatic calculations, very few database integrity checks, and generally very litle foresight.  As time went on and I added things like AJAX updates and some automatic calculations, it became painfully apparent that the system just wouldn't cut it.

I spoke to one of my developer friends, and came up with some ideas on how to better construct the database and the code that runs it.  So I set on my way to rebuilding the system.  The sheer volume of information stored in one character sheet, I came to find out, was even more massive than I originally realized, and that is without some other fairly important things (i.e. spell lists).

Part of the thing that is taking so terribly long in getting the new version of TTORP running is building the upgrade that will convert the existing character sheet data.  Since there was nothing in place to make sure that the numeric values were actually numeric (among other things), more and more logic had to be added to cope with it.  Some sheets didn't even have all the required data on them!

Anyway, the upgrade script appears to be complete.  I can't guarantee that it will be 100% accurate, so there will definitely need to be some double-checking (I'll setup a temporary site that runs the old version, for comparison) and manual updating.

After converting all the data, I had to get it into the webpage.  Finally, that part is (or mostly is) complete.  There are a few miscellaneous automatic calculations to be made, along with a couple of fields that should be stored (like experience stuff), but that'll come; I may leave it for a future upgrade, just to get this one "out the door."  Here's what is left (I'll try to keep this updated):

  • sending updates via AJAX [~90%]
  • handling automatic update notifications (via AJAX response) [~50%]
  • ensuring all the stuff that was automatically updated actually updates (via AJAX; everything actually updates properly, but the page might not reflect that until it is reloaded) [~50%]
  • adding new records (i.e. skills, weapons, armor, gear, & special abilities; this is stored differently now, there isn't any "padding"/empty fields)
  • re-sorting lists (i.e. skills, weapons, armor, gear, special abilities) after new records added

So there's still plenty to do.  I'm not really sure how long it will take, and there's the consideration of how much time I can set aside to work on it (not to mention ambition or lack thereof).

UPDATE [September 8th, 9:50 p.m.]: I had to spend a lot of extra time handling character sheets without any valid attributes (thanks Prophet): they won't get converted at all.  Unfortunately, that means I didn't get any of the listed items done.

UPDATE [October 5th, 6:30 p.m.]: Ended up spending a lot of time fixing an XML parser library (cs-phpxml), which was an integral part of the AJAX stuff (automatic saving for the non-techie).  After what amounts to a complete overhaul of that system, along with at least one other system that makes the site run (cs-webapplibs), I'm back to working on processing the automatic updates.  If you're interested--and if you got this far, I'm guessing you are--here's a diagram explaining at least a partial view of where things are going:

UPDATE [November 3rd, 4:00 p.m.]: After working with my group of testers, I've found and fixed multiple bugs.  With a few exceptions, the page performs excellently, and rarely requires any sort of page reload.  I have a working copy of the new sheets on my test site for a very small list of users that are willing to test it.  Here's the list of updates:

  1. AWESOME STUFF (changes I'm very proud of):
    • no arbitrary limit for the number of weapons, armor, skills, special abilities, or gear.
    • reloading page not required (except for some known issues, keep reading)
    • page width no longer arbitrarily set; looks good on wide-screen monitors
    • updates will cascade through all affected values (i.e. modifiers, max load, skill modifiers, base attack bonus, etc)
  2. FIXED (the highlights):
    • derived values are marked as such (i.e. you can only change base attack bonus in one spot)
    • most changes automatically update affected values (i.e. changing strength updates values for max load, etc)
    • fields that only accept numbers will show an error and revert your change
    • blanking some fields will cause an error and make that update "stuck" (can't edit it anymore); reloading the page shows the update was ignored)
    • updating associated ability for a skill doesn't update scores appropriately (requires page reload)
    • Adding records for weapons, armor, skills, special abilities, and gear will automatically create a new row at the bottom, no reload required
  3. KNOWN ISSUES:
    • if your browser doesn't allow javascript, you're boned.
    • If you don't use Firefox, things might not work (i.e. you're boned)
    • temporary scores don't take precedence over normal ones (i.e. setting a temporary strength score doesn't automatically update all values with that modifier)
    • no indication of numeric-only fields (frustrating when a change is unexpectedly reverted)
    • base attack bonus and total attack bonus (for weapons) are numeric only, so it is not possible to list full attack (i.e. "+16/+11/+6")
    • missing deflection bonus for AC (yeah, yeah... not really a high-priority for me, okay?)
  4. FUTURE CONSIDERATIONS:
    • delete records (weapons, armor, skills, special abilities, gear)
    • user-defined sorting (weapons, armor, special abilities, gear)
    • Containers for gear:
      • tab/drop-down/expandable list to show containers & items within container (i.e. backpack, bag of holding, etc)
      • indicator of whether container's contents count toward total weight (i.e. the contents for a bag of holding don't count toward total weight, but the bag itself does)
    • unused weapons/armor:
      • avoids having to move item into gear, which loses special info (attack bonus, damage, etc)
      • checkbox to indicate if armor/weapon is in use
      • unused armor/weapons count toward total weight