Making a Fictional Map Playable: the One Piece Scenario in Globdrop

Globdrop has a map scenario set in the world of One Piece: 26 islands and towns, from Foosha Village to Laugh Tale. On a real map, every place has a latitude and a longitude, and the game can work out how far your click is from it. A fictional map has none of that. This post explains how we made one playable anyway, and what that means for how it plays.

One Piece is a trademark of its respective owners. Globdrop is not affiliated with or endorsed by them.

The map

The scenario uses one image, maps/one-piece.png, 1242 × 848 pixels. It’s Globdrop’s own illustration, drawn in the style of an old sea chart. It has a parchment texture, two compass roses, sailing ships and sea creatures, and no place names. Like every Globdrop map, it’s a plain image with pins placed on top. It isn’t drawn in code.

Coordinates without a globe

Globdrop has six coordinate systems. On the real maps, a place is stored either as a latitude and longitude, which the game runs through a projection (Miller for the world, Lambert equal-area for Europe, Albers for the US, and plain latitude and longitude for the Ancient Wonders), or as UTM metres for Catalonia, which are already projected. The sixth system, Linear, is for maps that have neither. It is a straight proportion between the coordinates in the file and the pixels on the screen, the same arithmetic the game uses for UTM. This is that branch of coordToPixel in src/engine/coordinate-math.ts:

// Linear (UTM or custom grid)
const rangeY = bottomRight.y - topLeft.y;
const scaleY = height / rangeY;

return {
  px: (coord.x - topLeft.x) * scaleX,
  py: (coord.y - topLeft.y) * scaleY,
};

For One Piece, the scenario’s bounding box is the image itself: topLeft is (0, 0) and bottomRight is (1242, 848). So a place’s coordinates in one-piece.json are simply its pixel position on the original image. Foosha Village, for example, is at (1125.8, 243.6). Whatever size the map is shown at on your screen, the same proportion puts the pin in the same spot.

Choosing a width

A pixel position is enough to draw a pin, but not to score a click. Globdrop scores the distance from your click to the target, and it needs that distance in a unit. On a map of the real world it turns the click back into latitude and longitude and measures on the globe. A fictional map has no latitude and longitude, so Globdrop measures the straight line in pixels and multiplies by one scale: the map’s real width divided by its width in pixels.

For a fictional world there is no real width, so the scenario sets one: mapRealWidth is 3,000 miles. That number isn’t taken from the series. It’s a scale we chose so the distances read like sea distances. On the original image, it works out at about 2.4 miles per pixel.

What matters for the game isn’t the 3,000 itself but how it relates to the threshold. The threshold is the distance beyond which a click scores 0. For One Piece it’s 200 miles, about 83 pixels on the original image, or 6.7% of the map’s width. Middle-earth has the same ratio (100 miles on a 1,500-mile map). Westeros is more forgiving at 10%. Within the threshold, precision falls in a straight line from 100 at the target to 0 at 200 miles. The how-to-play guide has the full scoring formula, and Calibrating a map image explains how bounding boxes and widths work on the real maps.

Placing 26 islands

The commit that added the scenario also added a small script, fix_coords.py. It fixes a dozen key points by hand and places every other island on a straight line between its neighbours in the list. The list runs along the route, from Foosha Village to Laugh Tale. That was a first pass. The positions in the final file were adjusted afterwards: only Baratie, Little Garden and Alabasta still sit exactly on the script’s key points.

The result has two features that shape how the map plays.

The route runs off the edge. East Blue is in the top right. Reverse Mountain is near the centre, and the first half of the Grand Line runs right, to Marineford and Fish-Man Island at the right edge. Mary Geoise is on the far left, and the New World runs from the left edge back toward the centre, where Laugh Tale is. The map is a flat image, though, and distances don’t wrap around. Fish-Man Island and Punk Hazard are next to each other in the list but at opposite edges of the image. The game measures them about 2,660 miles apart. If you look for Punk Hazard at the right-hand edge, you score nothing, even if you know exactly where it comes in the story. We explain why Globdrop measures on a flat image, and what that costs on real maps too, in Why Globdrop doesn’t use the Dymaxion map.

Some islands are close together, others far apart. We measured the distance from each place to its nearest neighbour in the file:

So the first half of the Grand Line forgives near misses, and East Blue and the New World don’t. We rate the scenario as medium difficulty overall on the Globdrop page. That rating is our own; the game itself doesn’t define difficulty for a scenario.

Each place in the file also carries a difficulty tag: 8 are marked easy, 11 medium and 7 hard. The game doesn’t use those tags yet. Every round picks a random place that hasn’t come up yet in the game, whatever its tag.

Modes, ranks and languages

The scenario has two modes:

At the end of a game, you get one of seven ranks. They go from “lost cabin boy” through “Supernova” and “Warlord of the Sea” to “King of the Pirates”. The rank depends on your share of the best possible score, cut into seven equal bands. To be King of the Pirates you need at least six-sevenths of the maximum, about 86%.

The place names, modes and ranks are in all six of the game’s languages: Catalan, Spanish, English, Chinese, Arabic and Japanese. Arabic is shown right to left.

Miles, labelled as miles

This scenario is measured in miles. Until September 2026 the top bar after each click and the results screen labelled the distance “km”: the number was right and the label wrong, on all four scenarios measured in miles (US States, Middle-earth, Westeros and One Piece). They say “mi” now.

A One Piece round in Globdrop: a click 183 miles from Drum Island, a dashed line between the two pins, and 56 points with 12 seconds left

In the round above, the click landed 183 miles from Drum Island, inside the 200-mile threshold but near its edge, so precision is only about 8 out of 100. With 12 seconds left on the clock, that still comes to 56 points. We describe the rest of what happens after a click in Designing Globdrop’s feedback loop.