Home Creators Posts Import Register Favorites Logout

Content

See the previous post for a list of caveats, they all still apply.

Here's the stage 2 prototype 

You'll immediately notice that it doesn't look very different from the stage 1 prototype. It has a new "cover page" idea, and the class it uses is the Monk rather than the Sorcerer, but otherwise it's very familiar.

However, a lot has changed under the hood. This version is built out of 50 separate files, but gets inlined into just one file. Not just CSS, but fonts and images are all inlined as data URLs. The result is a single 617kB HTML file with no external links at all.

This has exposed a few things that I need to keep in mind.


Fonts are huge

Fonts contain shapes for many, many different characters. To handle all the different languages out there, that means a lot of repetition, because e, é, è, ê and ë are all separate glyphs. You don't notice the size of a font when it's just sitting on your desktop PC, but file size on the internet is on a different scale. And while it would be easy to dismiss that, I'd prefer not to. There are people in the world for whom fast, reliable internet is not a given, and those people deserve Dungeons & Dragons too.

That's why font subsetting was invented. If you know you're only going to use a small number of the shapes in a font - such as the ones used to write English - then you can cut the font down to just those letters and save 90% or more of your file size. The flip-side is that, if you then try to use that smaller font to write Polish or Russian, it won't work.

The character sheet file embeds all its fonts. To keep the file size from being insanely big, I had to pick out the exact fonts I need and, more importantly, pick a limited subset. That works for this prototype, but it's going to be more complicated for the real thing because other languages do need to be supported. So I'll need to keep multiple copies of each font, and pick one when it generates a character sheet.

Similarly, I'll need to keep track of which images and icons are used in a given character sheet rather than just including all of them.


I need to rethink flexible layouts

The layout in the first and second prototypes resembles that of my previous character sheets, with pages designed for an exact layout. Sadly, that approach gets increasingly complicated as the contents of the pages become variable. It was complicated enough when page size could be A4 or US Letter.

In future stages, I'm going to have to accept that some or all pages in the character sheet are laid out flexibly. If not, some bits of it end up getting much too stretched out.


Monks are dull

To be precise, the Monk class in the playtest has very few features. It's one of the few classes without a specialisation of some sort, compared to the Sorcerer's bloodline, the Cleric's domain etc.

Comments

dyslexic_charactersheets

A note on file size: embedded binary files, such as fonts or images, have to be base64-encoded in order to safely send them in an HTML file. This increases their size by a factor of 4/3, so a 16kB file adds 21.8kB to the output. I ameliorate this slightly by using SVG images where possible, which being XML-based don't need base64 encoding and are resolution-independent. There's no specific number for how big is too big, but a bigger file is likely to cause problems for more people.

dyslexic_charactersheets

Next prototype I'm going to remove the character portrait from the page with skills, and add a section for tracking general proficiencies: weapons, armour, etc etc. Unlike Paizo's character sheet, that has space for a small number of weapon proficiencies and a small number of armour proficiencies, and the usual categories filled in, I think I'm going to have a general-purpose space to track for your own character's proficiencies. After all, that's the motto of this project: one size does not fit all. With enough rearrangement, I may some day add the portrait to the Inventory page, but first I need to find better places for the various feats.

dyslexic_charactersheets

Regarding the ancestry etc descriptions on the cover page, I'll need to look very closely at the legality of those. Due to the way the OGL is worded, there's a distinction between the parts of Pathfinder that are purely mechanical versus the flavour of the brand and setting. Describing what a Bard does probably falls under mechanics, even if the precise words are copyright. Even describing what elves are like is probably fine. But describing a specific ethnicity on Golarion pushes over to the branded side of the line. You may note that I used as an example Hermean, an ethnicity not in the playtest Core Rulebook. That's partly because I don't think you should be limited to such a short set of options, and partly because I'm playing a Hermean atheist monk right now.