Quick question: 2D vs 3D

Just have a quick question on the differences between Unity 2D and 3D.

I'm looking to make a game with a Binding of Isaac dungeon crawler type environment. Should this be done in 2D or 3D.

My first thought is 2D as there are only 2 degrees of freedom for movement but I don't know how that works for generating the "3D" looking wall environment. I've also considered cave systems similar to what's shown in the procedural cave generation tutorial and that was done in 3D.

Essentially i'm a little confused as I have some clear pictures of 2D vs 3D games in my head but the perspective view dungeon crawler seems like a "2.5D"

Also, are there any tutorials about environment creation? I haven't been able to find much except in cases where it's glossed over as a basic part of a more complex product.

Thanks for any help you can give.

1 Like

There are no actual differences. Unity is a 3D engine; “2D” is just sprites, which are textures on a flat mesh. But everything is still always in 3D space regardless, there’s nothing to choose between. (Well, except 2D physics which are really 2D, but you can use 3D physics with sprites if you like, since they’re just meshes like everything else.) So you can do whatever you like.

–Eric

1 Like

There aren’t any differences because there isn’t an actual Unity 2D. What you are selecting from the launcher is simply the template you wish to start from. It affects initial settings for the project and any new scenes you create. Despite how it looks it is still Unity 3D.

1 Like

Ok, thanks for the replies. Makes it a lot easier for me then.

I’m guessing the difference between 2D and 3D vectors would just be that 2D automatically assume the 3rd dimension is 0 whereas 3D you can set it to 0 or otherwise.

1 Like

2.5D is very much a thing. It’s basically using 2D physics combined with 3D graphics.

From memory the key things the setting sets up for you are

  • 2D imports images as sprites instead of textures
  • 2D sets the camera in a new scene to orthographic
  • 2D sets the scene view to 2D. This is an orthographic view with the camera rotation locked

But all of these setting as easily changeable. I typically switch between 3D view and 2D view all the time.

Others have well covered the facts of how Unity works… I’ll venture to give a bit of advice for your game.

If you want to make a 2.5D dungeon crawler, you can do it with sprites or 3D objects, or some mixture of both. So which should you choose? That depends mainly on where you’re going to get the art, and in what form (3D models vs. 2D images).

2D images may be easier to come by (if you’re using free art), or easier to create. On the other hand, you will need more variations of each character: one for each direction they can face (usually 8). Also, you generally can’t morph sprites for the sake of animation, so your artist will have to draw a separate image for each frame of animation (times however many directions they can face). Maybe you have 4 walking frames, 4 attacking frames, 2 death frames, that’s 10, times 8 directions, that’s 80 images for each character. A good pixel artist can pump those out pretty quickly, but still, it’s a lot of art.

3D models can be rotated arbitrarily, and they can (often) be rigged and animated with bones. So you only need one model, though you still need (say) 10 animation poses. So it’s actually less art, but requires more sophisticated (3D modeling, texturing, rigging, & animation) art skills to produce. However, if you’re just starting out, you might find some great stuff on the Asset Store. Here is a fun little hack&slash game my older son created last year, built entirely with a couple of Asset Store art packs.

(Erm, please excuse the debugging output.)

Then there’s the combination idea: you could use sprites for your characters and pick-ups and whatnot, but use 3D objects for the dungeon walls. Those could be just textured cubes, so are no harder to produce than sprites, and would allow you to have a true perspective (rather than isomorphic) camera. But the challenge in this case will be to ensure that your sprites & walls have the same style and blend together seamlessly into one visual experience.

Good luck, and whatever you choose, have fun!

7 Likes

Look at the screenshots for Tiny Wizard:

That’s developed in Unity; Unity handles both 2D and 3D graphics seamlessly.

2 Likes

Thanks for the very detailed replies.

I'm more inclined to go with 3D as my day job is in engineering and I pretty much live in a 3D CAD environment so how it works and goes together is familiar to me. I just need to learn the 3D software like Blender/Maya etc to be able to produce models.

That's all later down the track anyway, was just asking this question before I delve to deep. Was wary of a situation where I started in 2D then realized I wanted 3D and had to convert all my work over...sounds like its a fairly simple thing to do in Unity though.

I missed this the first time:

This looks great, almost the same as the first game I ever sold. How old is your son?

If you want a book to learn how to program in Unity, my book Unity in Action also has an appendix to teach some basic modeling and texturing (a bench specifically) in Blender.

Xenoun, 2D and 3D are definitely different. A typical 2D game won’t allow your character to move in the Z axis, whereas in 3D you can move in that axis/vector. The way Unity is built though resembles much of that of a 3D software such as Maya or Cinema 4D, in the sense that there’s a 3D vieport where you place objects, that’s why everybody is saying “there is no Unity 2D”. Yes there is. If you choose to work on a 2D game your workflow will be different. Will your stage be a 3D viewport? Yes, but your players will never know that unless they’re game developers. Also, if you go for 2D you won’t have to deal with the peculiarities and complexities of 3D. Now, there are some compact 3D games, like indie games, sometimes, that will require about the same amount of complexity to make as a 2D game.
2D view is not ortographic. An ortographic view is that in which there is no vanishing point, but you can definitely make use of vanishing points in your 2D perspectives, unless you want to make an isometric drawing or something like that.
Anyways, I don’t know much about Unity or game engines whatsoever but I’m both a designer and programmer, and I’ve been digging into 3D art lately, so I thought I’d drop a line. I understand what everybody was trying to say, because in Unity your “stage” will be a 3D viewport, but the workflow for a 2D and a 3D game is different and I think 2D is easier, but that doesn’t mean worse. Kk, good luck and do for the better, not for the easier, but don’t be biased! =]

As you admit, you’re not familiar with Unity, so FYI there is in fact no “Unity 2D” per se. You even pointed out that you don’t have to use an orthographic camera. The workflow is pretty much the same either way, and it’s not necessarily any easier to do strictly 2D gameplay. (e.g. do a search for “unity transform lookat 2d”.) Given the fact that it can be quite advantageous to mix 3D and 2D (re: non-orthographic camera), I don’t think there’s much point trying to mentally separate the two in terms of development.

–Eric

2 Likes

Game design in 2D and 3D is different, sure. But…

… from the engines perspective there is no difference. Unity treats every game made in it as a 3D one. That’s why we say ‘there is no Unity 2D’. Everything is rendered as if it were 3D. Sprites are rendered in the same way a 3D model is, by drawing a mesh and applying a texture. You are still positioning transforms in 3D space. And the general workflow for both 2D and 3D games is pretty much the same in Unity.

If you want to try an actual 2D engine, check out something like Game Maker Studio. Its build in 2D from the ground up. And it feels very different from the Unity engine.

1 Like

apology for the necropost, but since google likes this post…I’d like to suggest that one thing not covered in these answers is resources. I assume sprites are cheaper than 3D objects so a 2D game would be cheaper in terms of needed resources. True or False? In other words, if you are developing for web or mobile 2D might be less resource intense, no?

False; sprites are 3D objects. A 2D game is not necessarily cheaper, and can indeed be more resource-intensive in some ways, since you’re likely going to be relying more on RAM-eating textures, because it’s harder to disguise anything with lighting effects and you’re unlikely to get away with heavily-compressed textures.

–Eric

2 Likes