← Back to devlog

Design

How much world fits on screen

It started as a sharpness problem and turned into the most expensive decision in the project: how tall the character should be on screen. Instead of picking by eye, I measured Terranigma and Eastward pixel by pixel.

Leo at the cathedral portico in the citadel, in the exterior framing
Leo at the cathedral portico in the citadel, in the exterior framing

This started as a silly complaint: Leo looked dirty in the game. The sprites came out of the render spotless and reached the screen with uneven pixels, some fatter than others.

It was not the drawing. It was the chain of scales.

Leo’s catalogue is drawn at one density, the world is measured in another, the camera zooms in, and the screen stretches the image at the end. Multiply those four factors and the number that comes out is not a whole number. When it is not whole, each pixel of the original drawing straddles two screen pixels: some get doubled and others vanish. Hence the dirt.

And pulling on that thread surfaced the real question, unanswered for months: how tall should Leo be on screen?

It is not an aesthetic matter. Everything else hangs off that number: how much world you see at once, how many square metres of art have to be painted by hand, how much memory a loaded zone takes, and how many screens one person has to review before calling a place finished.

Measure, instead of opine

I could have picked by eye. Instead I went looking for two games that had already solved it, and rather than reading articles about them, I measured them.

Terranigma, 1995. It runs at 256 × 224 on the SNES. I took the protagonist’s sprite sheet, separated the figure from the background by colour and measured the six bands of the walk cycle: 33 frames per band, a median of 30 pixels tall.

Eastward, 2021. Here I did not even take the resolution on trust: I measured it on a 1080p capture by looking for the pixel block size, and it came out at 3 — that is, a 640 × 360 base. Then, 435 frames of an adult character: 53 pixels of dominant height.

CharacterScreenFraction of the height
Terranigma30 px22413.39 %
Eastward53 px36014.72 %

They converge. Twenty-six years apart, hardware with nothing in common, and the same vertical proportion within 10 %. The difference in width is only that one is 4:3 and the other 16:9. Put another way: Terranigma on a widescreen is Eastward.

That stops being a personal taste and becomes a reference.

The mistake that nearly ruined it

With both references measured, ours was still missing. And there I got it wrong.

I measured Leo on a sprite sheet in the repository: 87 pixels. On that number I built a whole table of candidates and went as far as recommending a framing.

The problem is that the game does not use that sheet. It is from an earlier generation. Following the real chain — the scene instances the player, the player loads a catalogue, the catalogue declares its density — the right number was 77.64.

A 12 % difference, and that 12 % moved the entire table: percentages, framings, the number of screens of art, and even which candidate won.

The lesson goes in the rule book: the anchor is measured on what runs, not on a loose file with a similar name.

The surprise

With the corrected number something unexpected showed up. The view that had been on screen for two weeks — set without much thought while I was assembling the citadel — put Leo at 14.38 % of the height.

Terranigma sits at 13.39 %. Eastward at 14.72 %.

So: without knowing it, the game was already playing exactly between the two references. The research did not change course; it confirmed one the hand had already taken without consulting the head.

The decision: two heights, not one

What did change is that there are two framings, not one.

Looking at the comparison shots, the conclusion was that the open proportion works for the world and falls short once there is a fight involved. So they split:

Exteriors — maps, towns, roads. Leo at 14.38 % of the height, with nearly nineteen metres of width in view:

The citadel in the exterior framing: Leo at the cathedral portico, with the plaza and the wall around him

Interiors — dungeons, caves, houses. 28 % tighter, Leo at 18.40 %:

The same place in the interior framing: the camera closer, Leo bigger and less world in view

It is the usual pattern in this genre: open world, tight dungeon. The camera comes in exactly where reading an attack matters, and pulls back where what matters is understanding where you are.

And this is what it comes from: the previous view, still running in the forests, which now has to move to the new framing.

The previous view, tighter: less of the citadel is visible and Leo takes up a fifth of the height

What this saves

The cost of painting the world does not grow in a straight line with how close the camera sits: it grows with the square. Moving the camera 50 % closer does not cost 50 % more art, it costs more than double.

Measured on the citadel, which is some 149 × 84 metres of ground:

Framing4K screens that have to be painted
Previous view136
Exteriors (the chosen one)60
Exact Terranigma reference56

Going from 136 to 60 screens is not a cosmetic saving. It is the difference between a world that can be finished and one that cannot, made by one person.

What I take from it

Two things.

First: when a decision has references, measure them. There is an enormous difference between “I want a Terranigma-like view” and “Terranigma puts the character at 13.39 % of the screen height, measured over 198 frames”. The second sentence can be checked, argued with and executed; the first cannot.

And second, which has bitten me twice this month: a measurement on the wrong file is worse than no measurement, because it arrives with all the authority of a number.

← Back to devlog