Discussion about software development for the old-school Gameboys, ranging from the "Gray brick" to Gameboy Color
(Launched in 2008)
You are not logged in.
A few days ago, I had a relative try one of my Game Boy games, and she complained that the text in a font size typical for the platform (compare Pokémon generations 1 and 2 or Hamtaro: Ham-Hams Unite) was too small for her to read. So I took her into another room and had her try it on a Super Game Boy, and it was fine.
Later, someone was discussing video game accessibility on Twitter. I asked about this case, and in this thread on Twitter, Ian Hamilton replied:
One thing you definitely can't do is assume that popular games do a good job! Font size is pretty awful across the board. What your playtester was saying was that Pokémon and hamtaro are too small.
[...]
you can't multiply up like that, because the ratio between screen size and viewing distance is different
So I did the math myself.
In the web formatting standard CSS, the unit px doesn't necessarily mean one hardware pixel. It's the round number of hardware pixels closest to 1/2688 of the distance from the eye to the screen. This approximates the length of a pixel on a desktop computer before high-density displays became common, or 96 dpi at 28 inches away. This 2688px per radian is slightly coarser than the nominal visual acuity of the eye: one pixel per arc minute, or 180*60/pi = 3438 pixels per radian. This is why a typical PC display, with one pixel per px, isn't considered a Retina display.
W3C's article "em, px, pt, cm, in…" serves as an accessible introduction to CSS units:
To get an idea of the appearance of a px, imagine a CRT computer monitor from the 1990s: the smallest dot it can display measures about 1/100th of an inch (0.25mm) or a little more. The px unit got its name from those screen pixels.
From the official spec, "CSS Values and Units Module Level 3" section "Reference Pixel":
The reference pixel is the visual angle of one pixel on a device with a pixel density of 96dpi and a distance from the reader of an arm's length. For a nominal arm's length of 28 inches, the visual angle is therefore about 0.0213 degrees. For reading at arm's length, 1px thus corresponds to about 0.26 mm (1/96 inch).
So how many CSS px are in the display of a Game Boy compact video game system? When I hold a handheld, my wrists rest on my ribcage, which is a lot closer than arm's length. I measured myself as holding my Game Boy 270 mm (10.6") away from my eyes. Its screen is roughly 64 mm (2.5") diagonally, and by the Pythagorean theorem, that's (160^2+144^2)^.5 = 215 hardware pixels. But at 270 mm away, a 64 mm screen subtends 64/270*2688 = 637px. Thus in CSS terms, 1px equals one-third of the length of a hardware pixel, implying a 3x zoom to 480x432 on a desktop monitor. This would make the 8 pixel tall font on the Game Boy equivalent to a 24px tall web font.
So I suspect that the observation "8 pixels is not tall enough" must have some other cause. I can make a couple guesses:
- The shadow effect, where the LCD blocks light on both the way in and the way out. The distance from the plane of the liquid crystal to the reflector combines with the oblique angle of incident light to cause parallax (misalignment) between inbound and outbound pixel planes. Apparent on DMG/MGB; absent on CGB and later.
- Presbyopia, or farsightedness (inability to focus on close-up things) due to hardening of the lens in an older person's eye. This is the sort of condition for which reading glasses or bifocals compensate.
Did I miss something?
Offline
Font style can definitely play a role in readability, but based on your thorough breakdown you probably already thought of that.
Personally, I know seeing a big block of text all at once can seem much less readable than one or two words, even at the same font size.
Offline
I think it's a combination of low font definition combined with low contrast and the aforementioned shadow effect. A modern computer monitor, as well as a SGB played on a TV, has the advantage of creating a higher contrast between the lightest and the darkest color.
But I also think there are other compounding factors in the font style, which may contribute to decreased legibility. Ie, if the display had had a higher definition but with the same poor contrast, it might have reached above the threshold of legibility. I'd also say that it's not a binary of legible/non-legible, but there's also a greyscale of "uncomfortable" in-between.
The 8x8 font size is in reality 7x7, because one row and one column needs to be blank to guarantee that adjacent characters never intersect. The square size also affects legibility since characters are traditionally taller than they are wide, even in many monotype settings. As a result, characters with descenders (g, p, q, y) need to be moved above the baseline to fit inside the tile, adding to the feeling that the text is cramped. Likewise, the x-line is moved up by necessity, making it 71% (5/7) of the cap height, at very least for characters that need 5 pixels of height to be displayed as lower-case due to having three horizontal lines, like e and s. Another compounding factor may be the psychological effect of seeing 8 pixel blank lines between text lines, which may seem like a wasted opportunity. Why not make the type size 12-14 pixels so that all that wasted space can be used while still leaving some whitespace? There are good technical reasons for that, of course, but in user experience, the user's feelings don't care about facts, to reverse the popular adage.
Offline