The tile was 34×17, and every sprite in the game was being displayed about a third larger than it had been cut.
That was not a bug anybody typed. It was the camera: the old fit-to-window logic landed on its 1.35× ceiling on an ordinary screen, and the comment on that very line said sprites go soft past a third over native. The renderer was sitting exactly on the limit its own author had written down.
The fix is not a camera change
Clamping the camera would have made the world smaller rather than sharper. The actual fix is to cut the library 1.412× larger and render it at 1:1 — identical apparent size, made of real pixels.
HW = 48
HH = 24 # the tile is 96x48
# artkit.py holds the other half of this change:
# DISPLAY_H and GROUP_H scale with it, or every sprite
# lands at the wrong height on the ground plane.
Why that particular number
96×48 is the Age of Empires II tile. That is not nostalgia. At 1080p it puts about nine hundred tiles on screen, which is the viewport that game has at that resolution and the one this map is designed around — a colony you can read in a glance, and a frontier that is a short pan away rather than a journey.
Everything measured in screen pixels scales with the tile: camera headroom, pan speed, shadow and water geometry, and the two height constants in the cutting tool. Each one is a silent bug if it is missed, which is why they are listed together in the project’s own instructions rather than discovered one at a time.
