# What is a “2.5D” environment?

I don't understand the meaning of the term "2.5D." I'm specifically confused about the difference between 2.5D and 3D environments, even though I've read different definitions and articles about both. I understand the parts where 2.5D is like 3D but I don't get the parts where 2.5D is different.

So, what does it mean for a game to be 2.5D? For example, is the game shown here 2.5D?

• As far as I know, its 2.5D when sprites are being used to simulate a 3D look. Whenever you have a fixed camera but are still working with 3D geometry, its still a 3D game. From the screenshot, it looks like Mario is a 3D model, so that game seems to be full 3D. Its all about whether you are emulating 3D or actually rendering 3D geometry in a typical 3D pipeline. – Grimshaw Oct 17 '14 at 14:07
• @Grimshaw So, does 2.5D mean the engine can be 2D with 3D models for example? I'm sure there is a counterpart if you make this kind of game with 2D engine and also with 3D engine. What are they? Performance cost for 3D? – mathieug Oct 17 '14 at 14:13
• 2.5D means almost exclusively you are using 2D images(sprites) to render your world, even if it looks kind of 3D. Check isometric games like Clash of Clans for examples of 2.5D games, fully rendered in 2D, but it does look like a 3D game. When you start putting in your world 3D models, you are going full 3D and the 2.5D term doesn't apply anymore. This is to say the camera has no relation to whether or not you are rendering 3D. 3D is not about projections or camera behavior, but rather about geometry. – Grimshaw Oct 17 '14 at 14:54
• This question appears to be off-topic because it is about the features of a particular game. A question asking (only) what the definition of, or meaning of, the "2.5D" term would be appropriate (I feel like we've already got one floating around though), but asking if it a particular game is doesn't have anything to do with making your game; and asking if you should make a 2.5D game and why is not objective. – user1430 Oct 17 '14 at 15:35
• @JoshPetrie What? How does adding an example of where his understanding leads to ambiguity prevent the question from being generally useful? In this case (where the core question is perfectly valid but there is a minor amount of bloat caused by OP rather clumsily explaining himself) the question should be left open. If its a duplicate close it as a duplicate. – ClassicThunder Oct 17 '14 at 16:06

The terms 2D and 3D (as you probably already know) refer to the number of spatial dimensions in a Euclidean world-space. This dimensionality must be an ordinal number; there is no such thing as a half dimension, so the term 2.5D is really a nonsense term, and has no intrinsic meaning. That said, 2.5 is "somewhere between" 2 and 3, so 2.5D generally means something along the lines of "somewhere between 2D and 3D".

Personally, I use the term to refer to cases where a game's graphical and logical world-spaces have different dimensionalities. In particular, there are two different variants here:

• 2D logical & 3D graphical. For example, a platformer with 2D game mechanics and physics, but rendered with 3D meshes and a perspective camera. Most remakes of classic arcade games like Pac-Man, Breakout, etc. fall into this category. Pictured below: Pineapple Smash Crew

• 3D logical & 2D graphical. Examples include games like Gnomoria or SimCity 2000 which have 3D game worlds, but are rendered in a 2D isometric view. Pictured below: Xenonauts

Another common use of the term (though not one that I use) refers to games which utilize a combination of 3D and billboarded 2D graphics. In this case the term does not describe the logical dimensionality of the game at all. Virtually all 3D games use billboarding in some way or another, including particle systems, distant-object proxies, and in-world UI overlays. Therefore, the term is usually only used when a significant portion of non-background objects use 2D graphics, and the border between 2.5D and 3D is somewhat blurry.

• By the way, there is such a thing as a fractional dimension, but it has nothing to do with the game-development term "2.5D"; it comes up in studying fractals and other weird topological shapes. For instance, the Quadratic Koch surface (type 2) has a Hausdorff dimension (a common way of defining fractal dimension) of exactly 2.5. – Lily Chung Oct 17 '14 at 22:34
• @IstvanChung Yes, technically you are right and I considered mentioning it, but figured it would only confuse the issue. I think few game developers need to know about topological spaces outside of n-dimensional Euclidean space, and if they do, it's likely they understand that I'm not talking about fractals. – bcrist Oct 18 '14 at 3:30
• @bcrist If I could upvote a second time I would, so I'll just will someone to upvote for me with the power of my brain. – Pharap Oct 18 '14 at 5:51
• @Pharap It worked. How did you do that? – gla3dr Oct 18 '14 at 18:10
• I really like this logical vs graphical distinction. While most of the answers/comments here seem to assume 2.5D means 2D graphics, I actually tend to think of 3D graphics. so your logical vs. graphical distinction is a great way to encompass both notions of 2.5D – jhocking Oct 18 '14 at 19:52

The first game I'm aware of that had the term "2.5D" applied to it was Doom (although Wolfenstein 3D qualifies in some sense too).

Wolfenstein 3D was a basically 2D game with a 3D presentation. You navigated a 2D maze, all the floors were flat, all the ceilings were at the same height, there were no windows, doors were floor-to-ceiling and opened sideways, and you could never be on top of or below another object. The game used raycasting to figure out, for each column of the screen, how far away the wall was in that direction, and what texture the wall had; then a column of the wall texture was drawn with a height inversely proportional to the distance, and the space above and below painted with floor fill and ceiling fill. Enemies and objects were sprites, with a limited number of aspects, and their size again proportional to distance.

Doom used very similar technology to Wolfenstein 3D, but abused it to get a more 3D experience. The maps were still 2D, represented using 2D binary space partitioning (thus the .BSP map filename). What you saw on the automap when you hit tab was just a direct 2D rendering of the map. But each sector had an independent "floor height" and "ceiling height", and edges had top and bottom side textures (used when they had a lower ceiling height, or a higher floor height, than part of their surroundings). This allowed for stairways, windows, platforms, pools, and other effects — the engine just had to be able to keep a list of multiple sectors passed through before eventually hitting a wall, and their respective textures. But you still couldn't have real 3D architecture — you could make a "bridge" across some slime using a raised section of floor, but it would be impossible for anything to be under the bridge. A position in the game is still only X and Y. The only control the player has over their height is falling off of things, and elevators, which are simply sectors that are scripted to change their floor height. Enemies are still sprites (although I think they had more aspects), shots "auto-aim" in height because the collision detection is only 2-dimensional, and there wasn't a 3D model to be found in the game.

Heretic and Hexen used Doom-derived engines that took things even a step further, to the point that they were occasionally called "2.75D"; they had most of the same architectural limitations and sprite-based enemies, but added the ability for the player to look up and down (tilt the view, but only so far or else the engine would break) and to jump, fly, and crouch (changing their height independently).

• +1, I've only heard the term 2.5D when people referred to raycasting. Good explanation! – Ruben Oct 18 '14 at 19:12
• +1 this answer is correct with regards to the first historical use of the term. – R.. GitHub STOP HELPING ICE Oct 18 '14 at 20:15
• this is the most (practically) correct answer, not sure why it's not the first… – Display Name Oct 20 '14 at 6:53
• While this answer may be historically correct, it is not the industry standard accepted or expected definition. Today, any game described as 2.5D is universally understood to have 2d rendering with a 3d look. – Ted Bigham Feb 27 '15 at 1:17
• I think the limit on look up/down for games like Heretic was based upon the fact that object heights were only factored into screen Y coordinates and not X coordinates, and thus all vertical lines in a scene would be rendered as vertical. If one is looking up or down at a shallow angle, this wouldn't be too noticeable, but at steeper angles it would be very objectionable. I don't think steeper angles would have broken the engine, but merely the illusion. – supercat Feb 27 '15 at 23:24

## 2.5D

2.5D ("two-and-a-half-dimensional"), ¾ perspective, and pseudo-3D ar terms, mainly in the video game industry, used to describe either 2D graphical projections and similar techniques used to cause a series of images (or scenes) to simulate the appearance of being three-dimensional (3D) when in fact they are not, or gameplay in an otherwise three-dimensional video game that is restricted to a two-dimensional plane.

In my experience which definition is emphasized depends on the age of the person you are talking to.

1. Older gamers tend to use the 1st definition "2D graphical projections and similar techniques used to cause a series of images (or scenes) to simulate the appearance of being three-dimensional (3D) when in fact they are not"

2. Younger gamers use the 2nd definition "gameplay in an otherwise three-dimensional video game that is restricted to a two-dimensional plane".

Personally I use the 2nd definition. Trine, Donkey Kong, and Super Mario Bros Wii U would all be 2.5D in my opinion. Additionally the 2.5D Steam tag uses the second definition. I figure this is a good litmus test for how a typical gamer defines the concept) and as such I believe the 2nd definition is more correct.

# 3D

Any video game with 3D game graphics, that are computed in 3 dimensions. Note this makes it a super-set of the second 2.5D definition.

• I found platformer Shadow Complex to be a very interesting case, because the interactions could happen in 3D, even the location of enemies. But aiming your gun at them involved pointing to the 2D angle that aligned with where the projection from 3D placed them on the screen. Then the character took care of unprojecting that angle and pointing their gun into the Z-axis. – Seth Battin Oct 17 '14 at 17:15

2.5D is just a convienient way of saying 2D that looks 3D.
I supose you could really blur the lines of the definition if, for example, you use a 3D engine but restrict gameplay to a 2D plane only, but personally I'd consider something 2.5D is it looks 3D but acts 2D.

• Thanks. My project idea would look like 3D but I'm still wondering about 2D or 3D engine and stuff. Can you tell me more about 2.5D/3D oriented to the screenshot I posted? – mathieug Oct 17 '14 at 14:01
• Afraid I can't see the screenshot (blocked at work) so I can't comment. – DFreeman Oct 17 '14 at 14:02

The game screen shot you posted is a 3D game.

In a 3D game, the objects are drawn using vertices to draw actual 3D objects, which are then colored, textured, so forth.

In a 2D game, the objects are taken from sprites / sprite sheets, etc.

The difference between the two is how you can view them. A sprite is like a flat piece of paper. You can not view it at a different pitch or angle or the sprite will be skewed. On a 3D object, as the camera moves, you can see different parts of the object because the object is, well 3D.

In a 2.5D game you are combining both of these worlds. Keep in mind just because you can't move a camera to see different angles, doesn't make a game not 3D. It's the objects that are in it that determine this.

A good example of a 2.5D game is Ragnarok Online. What makes it 2.5D is that the world is mostly compromised of 3D objects. Buildings, landscape, etc are textured 3D objects. You can rotate the over head camera and see different sides of these objects at the same time. You can view the front side of a building as well as a left/right/roof area. The players however, are 2D sprites that are positioned to appear to be standing upwards. If you rotate the camera too much, the game must load a different cell of the sprite sheet for that character to change how it appears to be standing. You can not view different angles of the character because they aren't 3D. The angles are dynamically loaded in depending on the view of the camera.

http://sprites.technoized.com/images/sprite/ro/gm_m.png

This is a sprite sheet from the game. If you were to just look at it, you would assume it's from a 2D game. Alone, you would be correct. But once it's placed into a 3D world, you have a 2.5D game.

• I think 2.5D is misleading since its just a human interpretation etc. not something technical about this. For example what is your game if you're using Billboard technique for everything (etc. textured quads) on a 3D environment, if they're rotated always in front of you? Some might say 2.5D but most of the pack will say 3D as there is Z-depth. Technically, if it uses 3D vertices (thus, z-dimension) it's 3D, if it uses only X/Y (say, Super Mario bros) then it's 2D. But if it utilizes only 2D (x/y) on a 3D environment (including character), then it's still 3D but 2.5D by interpretation. – user43436 Oct 21 '14 at 9:57

2.5D is often another way of saying "isometric" -- 2D graphics drawn in a way to give the appearance of 3D, but not actually simulating 3D coordinates. See the wikipedia article on isometric graphics: http://en.wikipedia.org/wiki/Isometric_graphics_in_video_games_and_pixel_art

The gist is that in 2.5D/isometric, you are still using a 2D coordinate system -- with x and y axes only to calculate your graphics. Your graphics may simply be 2D sprites, which are typically drawn such that you can see three faces, and then placed on the screen using (x,y) coordinates. Sometimes the sprites are even created by modelling in 3D, then creating 2D sprites of the 3D model from multiple angles.

Moving objects characteristically only have a few angles they can be viewed from. If you spin a character around in an isometric view, it won't smoothly spin, but you'll see several distinct angles, such as front, 3/4, side, and so forth. This is because each unique angle of view requires a whole new set of sprites.

Isometric games usually support only one camera angle, because of the limitations of this type of system. Another distinguishing feature of isometric games is that they do not typically have vanishing points. When viewing an object in real life, if the object is closer to you, the object will appear larger in your vision. If the object is farther away, it will appear smaller. In isometric games, all objects typically appear the same size no matter where they are located in space.

3D games in comparison, simulate all 3 axes -- x, y, and z. On a very low level, the computer is translating x, y, and z to x, y to be displayed on a monitor, but on a higher level, artists are actually manipulating points on 3 axes to represent objects. Since the computer has all the information about the shape of the object, it can dynamically calculate what that object looks viewed at any angle, and it can appear smaller or larger as you get closer or farther from it.

Some games are a mix of 2.5D and true 3D. An example I can think of is the Disgaea series, which features 3D backgrounds and 2D sprites.

I am not sure what would be the more accepted definition, but I and the folks at my previous company considered "any game which looks like isometric 3D, but is rendered via 2D sprites" to be 2.5D.

Now let me explain why we did that. Generally rendering a 3D world with a lot of objects in it will create too much pressure on the processing, lowering the FPS count. So to overcome this we generally created objects in 3D rendering software like Maya and rendered them as sprites. Which can be used in the game. Not to mention that the angle were considered while rendering. So to speak about this tech with publisher we normally used this term. A 3D world which looks like it's a 2D world is still technically 3D for us. So we generally didn't use the term for this method. I thought I should share my bit here.

Usually the term "2.5-D" refers to one of two very different styles of games.

It could either mean:

1) A game that uses 2-D rendering techniques, but controls in 3 spacial dimensions. Usually uses graphical tricks to appear as though it were actually rendered in 3-D. This was very common in the 90s, but not so much today. (Examples: "DOOM", "Duke Nukem 3D", "Wolfenstein 3D")

2) A game rendered entirely in 3-D, but that controls exclusively along one or more 2-D planes. This style remains very popular to this day. (Examples: "Little Big Planet", "New Super Mario Bros.", "Trials HD")

One thing to note is that when using the model-view-controller architectural pattern, the first style of game has a "model" that represents data in 3 dimensions but a "view" that only displays it to the user in 2 dimensions; the second style of game is the other way around.

In 2.5D you use 2D assets/rendering techniques to give the sensation of a 3D environment.

Now, with that definition, in the following potentially ambiguous scenario, some elaboration is required:

Game A

Using 3D graphics, GPU accelerated and all (the game objects are meshes, not images), with a fixed camera angle. Lets make it even worse, the projection is orthographic, the classical 63.43 degrees. The only way to notice at first glance that graphics aren't 2D is because 3DGC, except that you render them with extreme care, are easily differentiated from hand drawing sprites, not matter the projection used to render them. You may experiment with different render techniques, parameters, shaders, etc, and you will have a hard time trying to hide the fact that they are 3D meshes.

Game B

A port of Game A, but targeting platforms that are known to have hardware that does not handle 3D graphics very well or does not handle it at all. Then the port replaces meshes with sprites. It still uses 3D Bounding Boxes for collisions, for example, and objects have a position property with x,y and z values, as the game logic was mostly not touched or not touched at all, only the rendering code was altered.

As the sprites of Game B are renders of the 3D assets of Game A and, to make things more ambiguous, Game A doesn't do anything that requires complicated shaders, in 99% of all GPUs out there you cannot differentiate a frame from Game B of a frame from Game A.

In 2.5D, interaction between game objects are limited to the set of situations where the illusion of 3D cannot be compromised. To represent two characters hugging, for example, you will have to create a single image file with the two characters interacting, as trying to represent the hug action only using a single image per character would be too hard or impossible. Maybe you can come with a character body divided in parts and draw them in the correct order. In 3D this problem does not exists (there exists another, that is posing the two characters correctly so they do not penetrate in the mesh of the other character).

Now, to visualize this, imagine that Game A and B have a bug that in some situation allows the player character to pass through another game object, allowing us to differentiate between the 2.5D one and the 3D one easily.

Game B, 2.5D Render, sprites are ordered by the z value of its position vector. In this example positive z is down and negative z is up. z-axis and y-axis are parallel but z is scaled by a factor of 0.5 of y. So if the visible area is from 10y to -10y, in the same area we have from 20z to -20z. Objects with a greater z will be drawn latter, so they will be seen as being in front of objects with lower z. Shadow of player character looks weird because shadows are in a superior layer than the floor, but in an inferior layer that all the other objects, so the player character shadow never is on top of the cube.

Game A, 3D Render. Depth buffer (also known as z-buffer) is used for pixel precision depth testing. So, an object does not need to completely occlude another, not even a triangle needs to completely occlude another, we have pixel precision depth test. We can rotate the game objects in any way and still get realistic results when they interact.

In resume: in 2.5D an sprite is either in front or behind another sprite. In 3D, a mesh is made of triangles, but triangle is not the minimal unit when testing for depth, you can have pixel precision. Of course, camera rotation in 2.5D is impossible as assets were created for a fixed camera angle, while in 3D is natural, if the angles of the camera are restricted by design in a 3D game is another subject.

There are different tricks to give the sensation of being in a 3D world when you only can render 2D graphics, I only presented a quickly crafted example using some assets of an abandoned project of mine.

Why not just use 3D always and forget about 2.5D?

Well, I can think in some examples of why a developer may prefer the 2.5D approach:

• Maybe they do not know, or do not like, 3D APIs (Direct3D, OpenGL, there are others).
• Maybe the target platform does not handle well 3D graphics (old desktop computers, 2D consoles).
• Your team can do amazing sprites but not 3D models.

How much you can approximate the results of 3D graphics using 2.5D?

There is a performance and programming complexity horizon. When you approximate to that horizon you start to doubt if your project is really possible in 2.5D or if you have to go full 3D. For example, you can use z-buffering in 2.5D (in theory), but can you pay the video memory cost (old desktop computer with onboard graphics, not powerful mobile devices)? Do you want to pay the storage cost of having an extra image to save the z-mask of every sprite?

Good candidates for 2.5D are RPG games, think Baldur's Gate series, or RTS, thinks Age of Empires 1 and 2 (AoE 3 is fully 3D and easily to differentiate).

Useful references:

Z-Buffering: http://en.wikipedia.org/wiki/Z-buffering

Orthographic projections: http://glasnost.itcarlow.ie/~powerk/GeneralGraphicsNotes/projection/orthographicprojection.html