Content vs Camera2020-03-06
Hi and welcome to our next blog post - How to create game content so it conforms to the player’s point of view within the game screen. This one is less about programming and more about graphics – so it’s written by the best artist in our graphic department (…who also happens to be the only artist in our graphic department).
Many grid - based world games use axonometric projection. Axonometric projection is a type of orthographic projection used for creating a pictorial drawing of an object, where the lines of sight are perpendicular to the plane of projection, and the object is rotated around one or more of its axes to reveal multiple sides. One of subtypes of axonometric projection is called isometric projection. You might already be familiar with isometric projection because it was used in many well-known older games E.g. Fallout 1&2, Baldurs Gate 1&2, Sim City 2000, Age of Empires, Pharaoh etc. And now it’s making a comeback in many indie games.
But here we have to confess that we mispoke to you a little bit in the previous paragraph. Often, many games that claim to be isometric are not really isometric. This word is frequently used but typically it only means that a game used axonometric projection. There is another subtype of axonometric projection called dimetric which is more commonly used. And that’s the case with Nebuchadnezzar, too. We also use dimetric projection.
So, how does dimetric projection work? Imagine a grid-based game with a top down camera. The grid and two buildings placed on it would look like this:
Everything is well-arranged but most players would like to see more than the roofs of buildings. Let’s see how it looks if we used dimetric projection:
See the difference? We can clearly identify both buildings, which is usually crucial for strategy games. And on a visual level, to see the whole of a building is nicer than just the roof. So what exactly does dimetric projection do? In dimetric projection, vertical distances on a grid are halved.
This is important if we create game content in some 3d package (software). Because we need to find a proper position for the camera according to the grid in order to render a tile exactly in dimetric projection.
So how do we achieve this? Less programming doesn't necessarily mean no math. Even creating a game’s graphics requires some elementary knowledge of math. So we will calculate it as you can see in the next image. To get the halved vertical grid on the rendered image, we need to set up the camera angle to 30 degrees (fig. B) compared to the top down view (fig. A) where the angle is 90 degrees (for 90 degrees the grid is rendered as is).
Now we knows the correct angle so we can setup the render camera to get our buildings in dimetric projection. But when we do that, we usually get something like this:
As you can see, it’s not what we wanted. The grid lines go towards the vanishing points that are placed somewhere out of the image. So what does this mean? It means that the camera is in perspective mode. To get proper dimetric projection we need to switch the camera to orthographic mode. And the result is:
So that’s the trick to get a desired diametric picture. In a future blog post, we will return to this topic from the perspective of guidelines for creating content for mods.
So stay tuned and thanks for your support and sharing!Discuss this blog post on our forum or reddit.