Posted by : Unknown Friday, October 24, 2014


 I was browsing a forum and i found a thread where some guys were discussing the difference between Opengl and directX and some even more newbies try to compare it to unity3D and C#, i couldn't believe what are they saying so i wrote this maybe for many people to understand things clearly if you are interested.


Game development is a huge industry and a good way to make money, that's why game developers community is growing everyday, it's not an easy industry the challenge is very competitive, anyway no one born a game developer every professional game programmer or game artist was newbie at his beginning so don't worry you will be that Pro someday.

but in order to take your first steps in this industry you need to understand some stuff and have a minimum knowledge even if it doesn't matter in the present time due to the technologies that make it easy for you to make video games. This article is useful for you to have a little knowledge about game developement.

-DirectX is not a graphic library it's a package of libraries inluding Graphics,
Audio...etc
DirectX handle multimedia applications such as games, so it's called Multimedia Librarie it's even wrong to compare it to Opengl.

a simple explanation of a Library is : it's an extension for a programming language to make it have more functionalities.

- The part that handle graphics in DirectX is called Direct3d or Dd3, that part now is comparable with Opengl.

- Opengl is a graphic librariy same as Direct 3D, i can't discuss differences here but mostly Opengl support more platforms and unity uses OpenGl and Diret3d , if you are on Windows it's going to use DD3 by default but you can force it to change to OpenGl, the main difference between OpenGl and directX that Opengl support more platform , it can work on any system you use or even if you build an new machine, opengl will be able to work on it. while direct3d mostly dedicated to Microsoft platforms such as Windows, Xbox.

- C# is a programming language, you use the programming language to develop any kind of computer softwares, the programming language doesn't show graphics or control your hardware, so it need a graphic library to tell the Graphics card how to render graphics ( how to show the graphics in your game). programming language also uses other libraries to get inputs from keyboard, game-pad..other library to play sound ....etc

- Unity 3D , Cryengine , Unreal Engine... are game engines which mean , it's just an integrated development environment dedicated for video games, i'm sure you know some IDE such as Visual Studio, Code::blocks ....etc and yeah you can use them to make games too, but they are general purpose IDE they can do any kind of programs, but Game engine is targeting video games development , so it had many features included to make it easy make video games. 

Note : Obviously if you have enough knowledge about game engines, you would say no the game engine is set of libraries to make it easy developing a video game. yes that's 100% true, but nowadays the game engines are tightly built with the Editor so you don't have access to the core engine unless you hack it maybe. so probably when almost people talking about game engines they are talking about the whole binaries you install on your system, mostly about the Editor because almost people who have not try coding low level don't know the difference between the engine and the Editor. so it's easier to explain for newbie this way.

Why the Game Engine ( the Editor ) is an IDE? 
game engine provide a 3D render engine which is written with OpenGl or Direct3d and provide many other libraries to handle many other things in video games development, and game engine sometimes provide it's unique programming language to make it easier for developers. game engine provide your with game editor which include the terrain editor and the level building window, in Unity 3d case , The Scene window and the game window , the terrain editor , the light , the waters ....all this stuff is ready made objects to make it easy for you, if you wanted to use Code::blocks for making your game , you would do almost everything with codes, and the game engine also offer a text editor and a compiler for the languages they want you to use. in Unity 3d case it supports C#, Java Script and Boo.

Conclusion : a game engine such Unity 3D , is a huge software that includes everything you need to makes video games , it includes Opengl, Directx(direct3d as a part of DirectX also includes  programming languages C# and JavaScript...

So, no more comparing Opengl to Directx , or Opengl to C# or Unity 3D to Opengl because that doesn't make any sense of comparing a desk with the room because the desk is a part of room and can't compare a desk to a chair because you use them both to set and make homework on the desk. and also you can't compare the your room to the neighbors house, just because the house has many rooms and it can't be compared , maybe onlt for the size in this case if you insist to compare it , then yeah compare Unity 3d , Opnegl , directx and C# source codes they are comparable that way, but the functionality is totally different.

{ 1 comments... read them below or add one }

Total Pageviews

INDIE HOW! News

the blog is new , you won't find everything you need yet, but it's a good opportunity for Newbies to follow this blog from it's beginning because I'm going to be listening to you and try to answer you questions. and i will start by basic tutorials in about the Game industry, don't worry by Basic i don't mean boring articles as it used to be in every Getting Started tutorials. i will also make some tutorial for graphic and game development. in variety of Engines.

Popular Articles

Copyright © INDIE HOW!.