Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Alright, let me start off by saying this: I've seen multiple threads comparing creating custom game engines to already created game engines such as Unity3D or UDK, but none of the threads I've found have discussed this issue in terms of pure learning purposes. Instead, they've discussed the advantages and disadvantages of using already created game engines in terms of performance, development time, and customizability. Well, at least for starting out, I'm not worried about those aspects.

So, to reiterate, will designing my own game engine offer a firmer grasp on game programming concepts and knowledge than creating a game engine with an already built engine?

At the moment, I've got an intermediate-level knowledge of C++, no knowledge of DirectX or OpenGL, and an extremely limited knowledge of game engine architecture. However, assume that if I were to creating my own game engine, I'd first become acquainted with these required languages and concepts by reading multiple books.

Thanks in advance.

share|improve this question
Will you learn more about making a game engine by making one or not making one? This question seems rhetorical to me... – Kai Feb 19 '12 at 19:25
Perhaps it is, I've got no experience in the gaming industry. Although my main goal is not to create a game engine, but to create a game. However, my understanding is that knowledge of how game engines operate would aid in the creation of a game itself. Another way to view this question is: "How important is understanding how game engines work to the actual creation of a game?" – user12173 Feb 19 '12 at 19:31
In your original question you state that you're interested in game engines for "pure learning purposes". Now it sounds like you want to create a game and the learning is auxiliary. The mixed messages make this question hard to answer. – Kai Feb 19 '12 at 19:38
That is a completely separate question, because I don't think making a game engine is the only way to learn how game engines work. – jhocking Feb 19 '12 at 19:46
@user12173 Why don't you come up with an actual game you want to try making (perhaps start with a clone of a game you know), a timeframe for making it, and a list of your specific personal goals for making this game, then re-ask this question. – Kai Feb 19 '12 at 20:17
up vote 8 down vote accepted

It depends what you're trying to learn. If you want to learn how to program a game engine, then you should program a game engine. If that isn't what you are trying to learn, then programming a game engine will be a distraction from what you are trying to learn.

share|improve this answer
Just remember, that without also making a game, your engine will not support a real game if it is your first try. OP, make a game with your engine, even if its a simple one. – Peter Ølsted Feb 19 '12 at 19:56
I don't entirely agree with this. Writing your own game engine, though it can be extremely involved, will prepare you very well for using a game engine. – stephelton Feb 20 '12 at 6:31
I think that the best way to learn how to use a game engine is to use a game engine. Arguably, the first step in writing your own game engine even is to first use other game engines to see how they work. – jhocking Feb 20 '12 at 15:35

So, to reiterate, will designing my own game engine offer a firmer grasp on game programming concepts and knowledge than creating a game engine with an already built engine?

No. Designing a game engine will teach you how to create a game engine. You could spend a year writing a rendering engine that handles vertex and pixel lighting, refraction, reflection, lens flare etc.

At the end of the year you'd probably know a whole lot about rendering but nothing new or significant about actually making a game. If you love the concept of game engines, make a game engine. If you love games, pick an engine and make games.

First, figure out what you love.

share|improve this answer

When creating a game from scratch, you learn about creating a game engine. However, by learning about engine creation, you gain knowlege of how other engines work, and why they do the things they do. Having that experience is key to using game engines correctly and pushing them to their limits.

If you know know the inner workings of a game engine, learning how to use them becomes second nature, or an acquired common sense. I am currently in the Game and Simulation Programming Bachlor Course at DeVry. The difference between a Bachelor degree in GSP and the associates you will get at a place like ITT, or Full Sail, is that DeVry focuses on Engine Development. The reason for this, is that they feel that if they prepare their students for the hardest math, physics, and problem solving, then the rest will come naturally, which from what I've witnessed in my 3 years there, is correct.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.