71
\$\begingroup\$

How much "harder" is 3D than 2D in terms of:

  • Amount/complexity of the code
  • Level of math skills required
  • Time involved in making art assets

Original title: How hard is 3D game development versus 2D?

\$\endgroup\$
9
  • 29
    \$\begingroup\$ One dimension harder :) \$\endgroup\$ Jul 16, 2010 at 16:49
  • 5
    \$\begingroup\$ Waay subjective... \$\endgroup\$
    – Cyclops
    Jul 16, 2010 at 17:31
  • \$\begingroup\$ Hmm... having said that, I actually really like @munificent's answer. Now I'm not sure how I want to categorize this question. :) It's not quite right for meta, either... Dang these edge cases. :) \$\endgroup\$
    – Cyclops
    Jul 16, 2010 at 19:07
  • 2
    \$\begingroup\$ Code complexity, math level, and time seem like relatively objective measures of difficulty to me. \$\endgroup\$ Jul 16, 2010 at 19:16
  • \$\begingroup\$ @Brian, yeah, I wish we could undo close votes. :) Re-evaluating it, I think part of the problem is the title - "How hard is X versus Y", sounds subjective. A better title might be, "What are the differences in 3D development versus 2D?" (maybe change it?). Which is actually the Question that @munificent answered, although with a one-liner that addressed the title. :) \$\endgroup\$
    – Cyclops
    Jul 16, 2010 at 19:25

7 Answers 7

128
\$\begingroup\$

3D is an order of magnitude harder than 2D:

Programming:

  • The math is significantly more complex for rendering, physics, collision, etc. Hope you like matrices and vectors!
  • Because of the previous point, good performance is much more difficult to attain. With today's hardware, you can make a nice-looking 2D game without having to think about performance at all beyond not being actively stupid. With 3D, you will have to do some optimization.
  • The data structures are much more complex. Because of the previous point, you'll need to think about culling, space partitioning, etc. all of which are more challenging then a simple "here's a list of everything in the level".
  • Animation is much more complicated. Animation in 2D is just a filmstrip of frames with possibly different positions for each frame. With 3D, you'll need to deal with separate animation assets, bones, skinning, etc.
  • The volume of data is much higher. You'll have to do intelligent resource management. Games ship with gigs of content, but consoles sure as hell don't have gigs of memory.
  • The pipelines are more complex to develop and maintain. You'll need code to get assets into your engine's preferred format. That code doesn't write itself.

Art:

  • The assets are, of course, much more complex. You'll need textures, models, rigs/skeletons, animation, etc. The tools are much more complex and expensive, and the skills to use them harder to find.
  • The set of skills needed is wider. Good animators aren't often good texture artists. Good lighters may not be good riggers.
  • The dependencies between the assets are more complex. With 2D, you can partition your assets across different artists cleanly: this guy does level one, this guy does enemies, etc. With 3D, the animation affects the rig which affects the skeleton which affects the model which affects the textures which affect the lighting... Your art team will have to coordinate carefully and constantly.
  • The technical limitations are more complex to deal with. With 2D it's basically "here's your palette and your max sprite size". With 3D, your artists will have to balance texture size (for multiple textures: specular, color, normal, etc.), polygon count, keyframe count, bone count, etc. The particulars of the engine will place random weird requirements on them ("Engine X blows up if you have more than 23 bones!").
  • Asset processing takes longer. Pipelines to convert 3D assets to game-ready format are complex, slow, and often buggy. This makes it take much longer for artists to see their changes in game, which slows them down.

Design:

  • User input is bitch. You have to deal with camera tracking, converting user input into the character's space intuitively, projecting 2D selections into world space, etc.
  • Levels are hard to author. Your level designers basically need the skills of a game designer and an architect. They have to take into account players getting lost, visibility, etc. when building levels.
  • Level physics is tedious to author. You'll have to check and recheck and recheck again to make sure there aren't gaps and bugs in the level physics where players can get stuck or fall through the world.
  • Tools are much harder. Most games need their own tools for authoring things like levels. Since the content is so much more complex, the tools are more work to create. That usually results in tools that are buggier, incomplete, and harder to use.
\$\endgroup\$
6
  • 2
    \$\begingroup\$ Excellent answer. I was thinking this would be more subjective, but you've laid it out very clearly. While there might not be an actual number (3.5x harder), you've made a good case for order of magnitude harder. \$\endgroup\$
    – Cyclops
    Jul 16, 2010 at 19:14
  • 5
    \$\begingroup\$ +1 Nailed it. This question is hardly subjective. We're talking about two completely different worlds. There is an inherent increase in difficulty. Don't start your thinking at the genius level... \$\endgroup\$ Jul 17, 2010 at 0:25
  • \$\begingroup\$ Superb answer ! \$\endgroup\$
    – zebrabox
    Jul 18, 2010 at 22:05
  • 1
    \$\begingroup\$ I see my answer is beaten by several (to use the authors words) magnitudes. It is so superb that I leaned a lot of things myself that I'd never thought of previously. Nice work! \$\endgroup\$
    – Toby
    Jul 19, 2010 at 18:45
  • \$\begingroup\$ Great answer. One additional thought I did have - in 3D's favour - is that, when I was getting started, it was much, much easier to find resources relating to 3D development than 2D. But that well over 5 years ago, and the landscape has changed quite a bit since then. \$\endgroup\$ Jul 20, 2010 at 16:02
11
\$\begingroup\$

Lots harder. If you're not comfortable making a 2D game, you will REALLY not like what it takes to make a 3D game.

The good news: 99% of the time, you don't really need it. Think of any 3D game you can. Take the camera, fix it on the ceiling looking down so that you're now looking at a 2D plane. Doom becomes Gauntlet. Civ IV becomes Civ I. Metal Gear Solid becomes the original Metal Gear. None of these games are "bad" just because they're 2D; they are perfectly playable and generally have much of the same gameplay.

\$\endgroup\$
7
\$\begingroup\$

Largely, 3D is going to introduce more difficulties than simplifications. But I just feel like adding a few things that might actually be easier in a 3D game:

  • Player customizations. Imagine if Team Fortress 2 were a 2D platformer with 20 animations for each class. Now, imagine your marketing director has suggested you add hats to the game. This would mean 20 new spritesheets for every class; and it would only expand if you decide to add other miscellaneous items. One company I worked for ran into this frustration.
  • Character movements. Rigging and animating is definitely not a simple task, but if your characters are complex, then it's eventually going to be an easier job than in 2D, where you'd be redrawing the character completely for each pose. Practically the first mark of excellence in any 2D game is how many times the creators were willing to redraw their characters for additional animation.
  • Finding an engine. I can make a simple platformer in less than one hour in 3D with no coding at all, but it might take a bit longer in 2D. You'll definitely find plenty of good 2D engines out there after some looking, but honestly nothing immediately comes to mind for me; few have hit their massive popularity the way Ogre3D or other 3D engines have. For 3D, there's UDK, Unity, and far more frameworks available. Part of this might be that the reduced complexity of 2D means that it's not so difficult for amateurs to just write their own, basing off of XNA. (Plus, some of the mentioned 3D engines can be made viable to create a 2D game)
\$\endgroup\$
3
\$\begingroup\$

This is a highly subjective question, since the answer depends on personal preference/experience/knowledge/intelligence.

I will try to answer neutrally, but since I am only a programmer and not an artist i can only hypothesize for the last point.

Code complexity should not be so very different, except in maths and maybe rendering/physics. Game Logic isn't so much different if you take a healthy level of abstraction (not too much - you're trying to make a game not an engine, at least I guess from your question.) Obviously its a lot easier to calculate movement in 2D because you have limited perspective. Physics is WAY more difficult when dealing in three axes. Also, loading a Sprite from a Bitmap is a lot easier than loading a 3D Model (and possibly texturing).

Maths is more complicated for 3D (a no-brainer really - quaternions, vectors, matrices. 'nuff said)

For art, I think it must be more difficult for 3D too, since you need to create art that looks good from every possible viewing angle (or at least a wide range), and you usually want to texture things too. Animating a mesh is no picnic to get realistic, and getting the texture to play along isn't either.

\$\endgroup\$
2
  • \$\begingroup\$ Loading a sprite is easier than loading a model? Models involve skeletons, skinning, shaders, UV coordinates, textures, normal maps, etc. A sprite is an image. Following along that vain, 3D art is much much harder, because of the things listed above. \$\endgroup\$
    – Sean James
    Jul 18, 2010 at 19:37
  • \$\begingroup\$ I'm sorry, that was an error. quite a big one too, thanks for pointing it out. It must have been so bland that it didn't register when I proofread. \$\endgroup\$
    – Toby
    Jul 19, 2010 at 18:40
3
\$\begingroup\$

The other thing to consider ... with a 3D game you probably want to consider using a pre-existing engine and concentrate on making a game not an engine. It can go someway to reducing the time and difficulty taken in a 3D game (as excellently identified by munificent).

It's much easier to build a 2D game ground up. But obviously you can (and should consider) using sprite, sound, portability libraries as well. No point in reinventing the wheel except for education purposes.

Seems obvious - but I thought it was worth saying.

\$\endgroup\$
2
\$\begingroup\$

Allow me to offer one interesting consideration for mobile devices where 2D performance can actually lag behind low poly 3d models:

1) Fill rate can cause quite a bit of performance trouble when dealing with many sprites on screen at a given time.

2) Texture memory requirements for a fully fleshed out 2D game are actually much higher if you're using frame based animation. Each and every single character frame blows out your total texture budget in a linear way. This means that if you use simple flipbook animation you actually have a more constricted animation budget than you would with skeleton based 3D animation.

Toolkits like Spine help level this playing field a bit by creating 2d deformations of a texture.


So, considering this, and the ease of access of Unity and UDK which both extract much of the complexity of game development that existed years ago for 3D, the answer is not so straight forward.

\$\endgroup\$
2
  • \$\begingroup\$ I would suggest not bumping old posts like this with new details. The current top answer is very much applicable still, and this question did not really need bumped to the first page. \$\endgroup\$
    – Pip
    May 22, 2015 at 22:03
  • 3
    \$\begingroup\$ I was linked this by a coworker just today, and since my addition to this answer has actually been accurate for years, I think it's fine. There is nothing wrong with adding to an old question new relevant information! Most people use google as an interface for stack overflow, so even very old items can appear in relevant searches to this day. \$\endgroup\$
    – M2tM
    May 22, 2015 at 23:44
1
\$\begingroup\$

It depends on game developer. The time consuming part is making game assets. If you feel it is easier for you to make these assets with illustrator and Photoshop then 2D is easier for you, but if you know 3D modeling probably you agree with me that 3D is much easier than 2D.

Regarding animation, definitely 3D is easier and faster and easier to manage.

For example while in 3D you can make all of animations for a character in a few hours in one scene, in 2d you have to draw the character from scratch for any activity he is suppose to do and save many files, it takes days in 2D vs. hours in 3D.

Also if you change something, you have to redo it all in 2D, but you don't have to change everything for example if you decide your character should not have a hat. You don't have to redo all the animation you just delete the hat in 3D.

If you have humanoid characters, there are Thousands of free mo-cap animations. Most of the time you don't need to make any animation for your game.

Regarding complexity and programming there is no difference.

But you should know 3D well, otherwise you may end up in game engine your animation is different from your 3D app or your character head is rotating in reverse direction and you don't know how to solve the problem, and some other glitches.

Also you should be familiar with low poly modeling for game and how to do texturing for game, it is different from modeling and texturing for animation.

By the way Contrary to popular belief 3D is less hardware demanding for mobile devices .

\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged .