Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

This question already has an answer here:

I was wondering why today programmers place so much emphasis on API like DirectX, and even OpenGl. As far as I know, you'd need thousands of lines of code to make a simple 3D game using one of the aforementioned. But with game engines like Unity, the process is simplified and you can pretty much drag around shapes to create the graphics in lieu of programming it. So what I wanted to know: why is knowing APIs DirectX more preferable than being knowledgeable in Unity, other than the fact that with an API you can code it to be portable on other systems. To me it's like choosing Assembly over a high level language like C. Sure, with assembly I'll really understand what's happening at machine level, but it's take a lot longer to write programs using it and it would be a lot harder to debug.

share|improve this question

marked as duplicate by Trevor Powell, Byte56 Jul 27 at 13:11

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

2  
I think you have an assumption that every game can and/or should be made in Unity (or similar). Perhaps thinking about why this assumption might not be true will also answer your question. –  Chewy Gumball Jul 26 at 22:22
    
    
Also of When to roll your own game engine? –  Trevor Powell Jul 26 at 23:56
2  
related: what is the point in using bicycles when there are cars? and what is the point of living if we all are going to die eventually? –  vaxquis Jul 27 at 6:56
    
@Chewy Gumball I doubt most console games like COD, SKYRIM, AC are made in something like OpenGl or DirectX alone. I'm 100% they'll use a game engine for a lot of it –  83457 Sep 3 at 21:13

4 Answers 4

Using your own analogy: Why did people make COBOL? Why did people make C++ if C was around? Why did they make PHP? Why did they make Python? Ignoring the fact that some of those implementations are written in C themselves, this is the same thing.

Some people want to make their own languages for new purposes and to do that you need to start with the graphics APIs. Other people want to learn how they work -- similar to implementing your own C compiler.

In some cases it's a personal case of NIH: "My engine will be better than Unity's!". In other it's appropriateness -- building a 2d game like Monkey Island in Unity3D is probably more difficult than rolling your own simple engine. And finally you need to remember that Unity is a very large API to build upon with a lot of functionality. It's a lot of effort to learn it all, and some people feel that effort is better spent making their own simpler engine.

share|improve this answer

I can speak only for my self, but I implement my engine for sake of implementing it. It is fun for me. Plus the time spent learning an engine is roughly equal to implementing it yourself.
It also gives you absolute control over the engine and you can specialize it for your task more easily (you would have to read pretty much everything about an engine, read and understand all code to be able alter it).

share|improve this answer
1  
I would note that the time spent doing one versus the other depends on your partiular skills and focus. For me, implementing anything 3d would take an order of magnitude longer than using and learning unity, at least, and i'd be spending much of my time looking up people's explinations of how stuff works and translating their algorythms into my code without realy understanding much of the dep math behind them. –  StarWeaver Jul 27 at 2:51
    
To be precise, there is different learning curve. It is relatively easy to start using an engine, but it is very hard to master it because it requires deep knowledge of the engine. On the other hand, if you implemented the engine (slower at beginning) you already have that knowledge (faster later). –  wondra Jul 27 at 11:52

Sometimes for compactness a self-made engine ( Despite thousands of lines of code ) can be more compact than a pre-made engine due to the fact that unused features can be removed.

Also keep in mind that if you write your own engine from scratch, you'll know all the ins and outs of it. If you ever want to add a feature or change something, you can!

Some engines can also be very restrictive of what you can do with them or even if you can publish it for money.

The best part about creating your own engine is the knowledge that you can look back on a game and say made it 100% yourself.

share|improve this answer

cf.

What is the point in designing your own car (e.g. to take part in an F1 race) if there are existing car manufacturers who will sell you cars that already work?

I looked over some other answers here and in the proposed dupe questions and one point not really being championed is that creating your own system affords you more technical (and, as a consequence, creative) control.

The car analogy falls well short because cars are all hardware plus the user, here we're talking about middleware software. Which is just a part of the software. Which usually has to accommodate combinatorial variations of hardware, as well as completely unskilled users.

Anyway, the point is that ABC game engine, no matter how attractive its feature set, was not designed with you in mind. For example, an Unreal engine was designed with an Unreal Tournament game in mind. Unless it is open source, usually you will have no idea how it works.

Of course that may be just fine and dandy, depends on what you're setting out to do.

share|improve this answer

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