Tech Devlog - The Projection
Hello, my name is Ali, one of the programmer of the chef's shift. Now I want to talk a little bit behind the scene of this game.
Basically when we start a project, the first thing that we decide is the perspective of the game, not the gameplay at all! Because we believe that the perspective of the game will affect the possible gameplay. The perspective of the game is the one that the hardest to change in the mid development, so it needs to be decided early. Is the game will be 3D or 2D.
If it's 3D, will the camera will be first person or third person view? Or maybe bird eye view? Will the camera rotate? Or it's side scrolling? It will affect what will the control will be and how player interact with the world.
If it's 2D, will it be side scrolling? Top-down? Dimetric? Isometric? Where is the game axis? 3-4 Views?
![](https://img.itch.zone/aW1nLzExMzEyMDEyLnBuZw==/original/jq40Co.png)
Parallel Projection
Each perspective provide it's own challenge. Let's talk about this 3D to 2D projection first.
We will skip the Perspective one, because it's pretty 3D-ish... Because "the chef's shift" is 2D-ish, we will talk more about Parallel Projection.
So what is Parallel Projection? What is the difference from the Perspective Projection?
When you see the image above, it's pretty clear what it means, but the formal definition for Parallel Projection is: The parallel line should look parallel too in the projection. So a square should look like square / rectangle / parallelogram, it should not look trapezium or random quadrilateral. The opposite side should remain parallel when projected.
Parallel means, if you extend the line, they won't meet at a point.
Furthermore, Parallel Projection is divided into two types:
- Orthographic Projection
- Oblique Projection
Orthographic Projection
Basically every projection, has the plane where all the projection falls. Like this one:
But because talking about 3D projection to 2D is hard, because after all we only see 2D image on our screen when talking 3D, it's confusing.
Let's step down our game into the world of 2D and project it into 1D. What is 1D? Basically it's only a line.
So if we project 2D square into 1D, it will look like this:
So the result is only relative length of the point in 2D space. And yes we could also use vanishing point / perspective projection to project 2D to 1D.
So what is ortographic projection? Basically when the line from the object to projection plane is ortoghonal to project plane. It means 90 degrees. Let's see the comparison below.
In Ortographic all line will have 90 degree to the projection plane. In Oblique they will all have degree other than 90 degree. And in Perspective, all line will have different degree from each other.
Ortographic Projection could be differentiate by if the image plane is parallel to axis plane or not.
If it's parallel to axis plane, you'll get Top-Down or Side Scrolling image. If it's has parallax, it means the image plane is parallel but the projection is Perspective, not Parallel.
Example Top-Down game: Monaco
If the image plane is not parallel to the axis plane, then you could see two or three sides of the box.
There are three type of projection that usually used:
- Isometric
Isometric is where the axis in the projected image is separated by 120 degree, and each axis has the same length. - Dimetric
Dimetric is where two axis has same length and has the same angle to the third axis. - Trimetric
Trimetric is here all three axis has different length and the angles separated them is all different.
This list is not exhaustive, it's only the usual type of the Ortographic Projection. And basically "the chef's shift" use Ortographic Projection that is not listed here.
Oblique Projection
Oblique Projection is really tricky. Basically you could get Ortographic Projection out of the box from 3D package like Blender. But Oblique Projection, well not yet, as far as I know. Because the projection line should be at an angle other than 90 degree to image plane.
Quick refresher, oblique projection looks like this:
We will talk first, 3 famous oblique projection (not exhaustive list):
- Cavalier
This is where you draw the depth at 45 degree angle, and the length is not foreshortened, the length of the depth axis is the same as the rest. So a box with sides of 1 will look really elongated on depth axis. - Cabinet
This is like cavalier, where you draw the depth at 45 degree angle, but the length is foreshortened, usually by half. If you have ever draw box in math, you usually draw it in cabinet projection - Military
This is where the top side is still square but rotated 45 degree. And the height axis is not foreshortened, it has the same length of other axis.
Maybe you ask, why we need to use this ugly perspective... the oblique I mean...
Well many games use it, namely the game using RPG Maker, where Square on the floor has the same shape as the Square on the wall. It's not possible using Ortographic Projection.
But well to be honest, RPG Maker tileset doesn't have consistent projection. Sometimes it combines several projection, and it looks just fine (just a little bit weird).
The Projection That We Use
So what projection that we use for "the chef's shift"?
It's ortographic projection, where the camera rotated 30 degree from floor plane. This is the illustration.
So with this, if the horizontal / x axis has the length of 1, the depth / y axis has the length of 0.5, and the height / z axis has the length of sqrt(3)/2 or 0.87
It will show more the front side, not perfect square (1 x 0.87) because it's not oblique projection.
The first time when we make asset, we thought of the front side should be perfect square (1 x 1), and the depth is 0.5, but it looks weird, the box doesn't look like box. Then we calculated, then we realized that if we use perfect square for the front side, it will be an Oblique Projection, that's why it looks weird.
But the customer we keep it look as if we look from side. So we kinda mix Ortographic and Oblique Projection. It's kinda work, because the difference between 0.87 and 1 is not that much.
But if we use projection 60 degree from floor plane, where it shows the top side more than the front side. The customer will look weird. If using this angle, the character should show more the top than the side, for example like Zelda.
I think that's it for now, next I'll explain why this is important...
Get The Chef's Shift
The Chef's Shift
A short chaotic & fast-paced typing game about cooking & serving dishes in an Italian restaurant on a busy day.
Status | Prototype |
Authors | alijaya, MuhamadMentari, Shitsurei, JungeFuchs, Hanassiy, beruang lapar, myqpalzm |
Genre | Simulation |
Tags | 2D, Black and White, Casual, Cooking, Fast-Paced, hectic, indonesia, Management, Relaxing, Typing |
Languages | English |
More posts
- Update v1.0.3 - FMOD, Rebalance, and WishlistMay 23, 2023
- Our steam page is now LIVE!Apr 16, 2023
- Submission for GameJam+ IncubationFeb 12, 2023
Leave a comment
Log in with itch.io to leave a comment.