Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!


1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!


Libraries, wrappers, framework, etc. What's the difference?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
2 replies to this topic

#1 nbmatt   Members   -  Reputation: 113

Like
0Likes
Like

Posted 14 March 2014 - 09:46 PM

After being a student majoring in video game programming for the last few years, I've decided to finally start seriously working on a simple game. After much research on the best tools to use, I've found that programmers are always using or at least talking about libraries, wrapper classes, or frameworks. I'm not quite comfortable with the definitions and explanations when I google each term so I thought I'd ask you folks here,

 

if you would be so kind to explain them on a level that a student would be able to understand what the following are, and what makes them differ from each other: 

 

- Library

- Wrapper class

- Framework

- Game Engine

- GDK (assuming this means Game Development Kit, things such as the UDK?)

- API

 

Also to help me understand better, which of the above would you categorize each of these in?

 

- Unity3D

- UDK

- Allegro

- DirectX

- OpenGL

- Qt Creator

- SDLnet



Sponsor:

#2 BCullis   Crossbones+   -  Reputation: 1943

Like
2Likes
Like

Posted 15 March 2014 - 01:51 AM

I'm surprised that after a few years in that major, you haven't had any of those elements covered for you, but here goes:

 

Library: just a collection of code, usually centered around a specific functionality.  An engine is a library, a framework is a library, etc.

Wrapper class: "Wraps" a class or piece of functionality inside another class, usually for ease of calling the thing being wrapped in the wrapping class' language.  Ex: SharpDX (a graphics library and API) has C# wrapper classes around the C++ DirectX classes. (this is grossly simplified for ease of explanation)

Framework: A library (ha!) or set of libraries that provide a lot of basic functionality that will be used to build upon.  XNA is considered a framework because it doesn't actually give you a game, just the toolkit to make one.

Game Engine: is a framework.  If you take a completely coded game, and remove all the stuff that specifically makes that individual game, what you're left with is the engine: all the code that makes everything work but that knows absolutely nothing about the specific assets it's loading, dialogue that happens in a game, level layouts, etc.  Game engines often (unless you're some AAA studio like Epic or Id) are a result of writing a specific game, and then keeping all the code that can be re-used to make another game.

GDK: usually a framework (or engine) coupled with a few handy editor tools (level editor, asset packager, etc)

API: Application Programming Interface  - You can think of them as tools to put in your coding toolbox.  Graphics APIs, networking APIs, Physics APIs...basically a black box of code in a library with (hopefully) documented interfaces for using that functionality.  Or not black-boxed in the case of open source.  API does a thing, you need something that does that thing, you use that API in your project.

 

For the specifics:

Unity3D: Game Engine/GDK/Framework/APIs.  This spans a lot.  It has its own engine, you can program with its APIs, it has editors (that you can extend in code)

UDK: same as Unity3D

Allegro: as per its wikipedia entry, it's a library that contains multiple APIs.  You could also consider it a framework (are you catching that some of these are loose definitions that overlap a lot?).  It has everything you would need to make an engine, but is not one itself.

DirectX, OpenGL, SDLnet: APIs.  Well, libraries of APIs if you stick to the concept of an API as a singular tool.

Qt Creator: had to look this one up, I guess it's just an IDE?  (Integrated Development Environment, think Visual Studio, Eclipse, Netbeans, etc)


Hazard Pay :: FPS/RTS in SharpDX
DeviantArt :: Because right-brain needs love too

#3 nbmatt   Members   -  Reputation: 113

Like
0Likes
Like

Posted 18 March 2014 - 02:21 AM

Great explanation. Thanks, very helpful!






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS