Is 3D game development easier with an engine?

Started by
4 comments, last by Promit 9 years, 6 months ago

So the general consensus seems to be that 3D development is significantly more difficult than 2D on account of the increased technical knowledge required in modelling, rendering, animation, collisions etc. However I have been told that pre-built engines, such as Unity, Source, or Unreal, often handle a good deal of the "dirty-work" work for you, thus reducing the amount of work required.

Does using an engine really reduce the difficulty of 3D development? Or is this a load of BS?

Advertisement

Their sole purpose is to make development of 3D games easier.

An analogy - "Is building a car from existing parts really easier than forging all the parts from raw materials yourself?"

As Hodgman said, making development easier is the reason why they exist.

Off the top of my head I can only think of a few reason why one would build their own engine, e.g. to learn how they work internally or because you need some super special features that you cannot get from an existing engine. Or, obiviously, if you're getting paid for it. biggrin.png

3d development isn't really more difficult than 2d development today, and that's because of engines.

If you're using an engine or another good 3d graphical framework, you can skip most of the scariest math that makes 3d games difficult and jump right into the game play.

In my opinion, engines can often make 2d games more difficult, and it's usually easier just to start from scratch with those, unless you're making something very cookie-cutter (in which case a very specific engine like RPG maker is a good call).

Whether the art is more difficult or not depends on what kind of game you're making. 2d animation tends to be harder, so if you have a lot of animations that you really need, and a lot of variety (like an RPG with equipment, and you want to show that on a sprite), lean 3d, since it handles some of these things more easily. There are also many things that are easier about 2d games.

It's hard to really compare them. Apples and oranges. Not only are they made in very different ways, the game play they can achieve and the consumer expectations can be very different too.

Yes, using an engine reduces the difficulty and makes development easier.

It doesn't removed the difficulty all together though; development is easier but is not necessarily easy, and a lot of hard work is usually still required to build a complete game.

Using an engine means spending some time to familiarise yourself with the functionality that engine offers and with the way the engine works; for most good engines -- especially high profile ones like those you mentioned -- a lot of effort goes into trying to provide the majority of common functionality a game might need and trying to do so in a way that makes sense and is reasonably easy to use, so for most people writing most games it's much less effort to learn to use an engine than it is to write one for yourself.

An engine will usually do little or nothing to make asset creation easier however; someone still has to create all of the 3d models, textures, animations, etc. Unless you're making a cookie-cutter game and can just work with existing templates or pre-built functionality an engine doesn't help with your actual game design; someone still needs to design a fun game and game world, balance all of the challenges and abilities, create fun levels, etc. You'll often find that you need to do plenty of work to configure or even extend an engine to meet the specific needs of your game because the engine provides general functionality that all games need rather than the specific things your game needs.

Using an engine usually makes development easier -- that's why they exist -- but it doesn't necessarily make it easy. There is still lots of hard work to do.

Using an engine might not make development easier if:

  • You're creating a very simple game (as StarMire touches on with his point about 2d games above). If you're reasonably skilled and the game only needs a few basic features and won't be overly difficult to test it may be quicker to write from scratch than to learn to use an engine that provides a lot of things you don't need.
  • You're creating a very unusual game that needs very different functionality than any existing engine offers. Even then it may still be beneficial to use an engine for some basic low-level functionality, or at least an existing framework or library for the boring stuff (window creation, basic input handling, etc.) that all games have in common.
  • You're targeting a platform your engine of choice doesn't properly support.

In the overwhelming majority of cases where the goal is to create a good quality game as quickly as possible rather than to learn about the low level technology or get programming practice I would recommend to look for and use a suitable engine rather than writing from scratch. It saves you a lot of the boring repetitive work that has little to do with the actual game itself, it should be proven and well tested, and other users of the engine may be able to offer you help that would be much more difficult to give if they first had to understand the specifics of your own custom-written code.

Hope that helps! smile.png

- Jason Astle-Adams

While I agree with everything that's been said, I want to chime in with one thought for posterity's sake. Engines make development easier for nearly everybody. But if your team has a strong background in the necessary engineering work, and your goals are extremely focused and/or extremely unusual, an engine can make things worse rather than better. Existing engines are always designed around existing problems and use cases, and designed to solve those particular cases. If you are doing something that steps outside those bounds, it can be difficult to make an off the shelf engine do the right thing. This is not the norm, it does not apply to most people, but an engine is not a silver bullet solution to everything.

IF you have to ask, then using an engine is probably the correct way to get a game done.

SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.

This topic is closed to new replies.

Advertisement