Why is the Starcraft 2 Minimap not a rectangle?

  1. Why is the minimap in Starcraft 2 shaped like a Trapezoid.
  2. Why does it change shape as it moves, with one side becoming elongated, etc.
  3. On what game mechanics / mathematics is the shape and state based?

Solution 1:

It's not rectangular, because you don't see the game straight from above. You see a bit into the horizon too. At the bottom of the view frame, you don't see as much as you do at the top of the view frame, because it's further away.

If you carved out a frame, held at at an angle at your floor, you'd realize the area on the floor you can see through the frame isn't rectangular either.

Solution 2:

Is no one here familiar with the viewing frustum?

enter image description here

In Computer Graphics your field of view is often constrained to what is called the "viewing frustum," usually via Culling. The practical consideration of rendering an infinite scene on even modern hardware is restrictive enough that almost every major rendering library performs some form of culling (even ray tracing which usually culls in a different manner). Culling is the process by which 3D objects in the scene do not get drawn.

In the most common method of rendering (drawing fragments), this culling is bounded by a near clipping plan, a far clipping plan, and a viewing angle. Because the viewing angle is usually defined for each axis (or once for both axese), the resulting shape is a Frustum. This is commonly known as the Viewing Frustum, and can even be set directly (instead of stipulating near/far clipping plane and Field of View). In openGL this is the glfrustum call (glu will calculate the frustum for you via the gluPerspective call, which takes near/clipping plans, field of view in the Y and a ratio of FoVx to FoVy).

So what does this have to do with Starcraft?

Since the viewing frustum represents what the player can actually see, the makers of Starcraft2 felt it would be beneficial if they projected this onto the minimap, so players could identify what was within their visible range. Additionally, they identified what culling was the result of the viewing frustum and what culling was the result of the terrain itself. This is why the representation of the viewing frustum on the minimap changes as you move around.

Solution 3:

Starcraft2 is "3d" game and main player view works in '3d' mode. Under "3d" I mean here that you see map under some angle, and object on the top of the screen (far away) looks smaller.

As a result of that you see MORE objects on the top... and as a result you see bigger peace of the map on the top side of your monitor.

The MINI-map displays map in 2d mode. That means that terrain and buildings, units are displayed without taking into into account how far away are from you (from the height of flying birds).

The mini-map displays which part of the area you see right now... and because you see more object far away the frame on the minimap is trapezoid, not a rectangle.

Hope that explains.