The online Pathfinder RPG character generator that I’ve been tinkering with in my free time over the last couple of months is quickly approaching open beta testing. I currently have all the validation implemented for core class features, feats, and skills. The sole remaining elements to work on involve displaying character information effectively in the PDF export. Just need to figure out how I want to render class features and feats and it’s ready to go.
I figured I might list some of the features I have already implemented as well as those I eventually plan on including. For the moment, I am only supporting the Core Rulebook, but as I find time (and motivation), I’ll add stuff from other Pathfinder products (hint: beer money is motivational).
v1.0 Feature Implementation (bold items are finished; italicized items are in development):
- Ability Scores (point buy, tier points, racial adjustments)
- Core Classes (alignment restrictions, favored class bonuses, selectable class features)
- Skills (class skill training bonus, skill focus bonus, racial bonuses, ability modifiers)
- Calculated Combat Stats (BAB, CMB, CMD, AC, Touch AC, Flat Footed AC, Saves, HPs, Speed, Initiative)
- Feats (Racial, class granted feats, full prerequisite validation)
- Equipment (calculate wealth, calculate encumbrance, attack/damage bonuses, highlight proficiency, equip to slots)
- Spells (select known spells, select memorized spells, calculate DCs, calculate dice/bonuses)
- Save to PDF (complete with calculated values, racial & class features, custom landscape layout)
v2.0 Feature Roadmap:
- Portrait selection (using 60+ Terrible Portraits)
- Random Bio Generation (Name, Homeland, Age, Height, Weight, Hair, & Eyes) based on Race & Gender
- Aging Affects validation based on Age in Bio
- Rules Info (overlays with PRD definitions for class features, feats, etc.)
- Pathfinder Society legal character validation
- Save to HTML
v3.0 Feature Roadmap:
- Non-core open entries for class, feats, traits, skills, equipment, & spells.
- Pre-calculated Combat Maneuver & Spell sheets
- Export/Import character from database (may charge fee for storage)
I passed on HTML5 because I feel like there are too many compatibility issues that need to be addressed before you get a [nearly] uniform experience across browsers. Cross-platform is still ever elusive. Just take a look at percentage of browsers in use on W3C’s statistics page and cross-reference that with the HTML5 browser readiness site.
There are still a ton of users out there with little to no HTML5 support. Now consider that each browser implements features in slightly different ways and you have a nightmare for a developer wanting to build a robust app and ensure a similar experience across the browsers.
The choice to build upon ASP.NET was easy. I work with ASP.NET in my day job, so I’m pretty handy with it. The .NET library I’m using to generate PDFs is pretty slick and I’m not sure if it would be as easy to implement with another server-side language.
This line of questioning is especially germane with current hobby events as I saw my Twitter feed recently choked full of bitching and moaning about Wizards of the Coast’s choice in using Silverlight to develop their new online character builder.
All the geek angst seems to originate from a ZDNet article that cherry-picked quotes from Microsoft’s Professional Developers Conference (PDC). Someone thinks Microsoft is “deprecating” Silverlight (I could not find a direct quote from the conference that ever used the word, deprecate). And of course, all of the Apple iP* fanatics are sad-faced because Silverlight means it won’t work natively on their iOS devices.
Microsoft quickly cleared up any confusion about Silverlight (within 2 days of the ZDNet article), because there are a lot of businesses out their using the platform. Also, I’m sure you’ve recently seen a big marketing push for Windows Phone 7. Well WP7 is practically synonymous with Silverlight, so it’s most definitely still supported. You can now think of Silverlight as Objective C that benefits from browser plugins.