views:

176

answers:

4

I am a newbie C++ developer for Ubuntu and Windows.

I want to know, what other things ( what 3d engine for example ) I have to learn to create a game like Mafia 2 or GTA IV.

A: 

You need to learn Lua, or something similar. With C++ you can create a great game engine, though :-)

Marco Mariani
I'm under the impression that this language is just used for speedy script execution in games, I'm not sure it can crank out the graphics.
Orbit
@Brandon: **Exactly**. The graphics are generated in the *engine*, while the game logic is ("who can interact with what, and how") is scripted in almost all modern titles. Hence, the emphasison *engine in c++* in the answer
sum1stolemyname
A: 

UDK(Unreal Development Kit) for the engine and unreal script for the language.

stonemetal
A: 

I'm not a professional video game developer, but if you are interested, you may want to take a look at something like openGL, and start playing with shapes or something. There is a C++ toolkit so that you can use openGL, it can be found here:

http://www.nigels.com/glt/

Although I haven't used this binding, all my experience (sadly) is with JOGL (Java openGL).

Orbit
+7  A: 

Developing a game with the complexity and scale of, say, Mafia or GTA is not an easy task. Several hundred people are involved for some years in the process developing a game like GTA or any other AAA game. The development is a very time consuming and not trivial task in general. For a single person, it should be impossible within life time to do all the work of very different kinds (design, programming, testing, etc.) realizing a game with same complexity and quality.

Above that, with respect to the previous answers, there is more than just knowing some ready-to-use frameworks or engines. Understanding things behind is a necessary requirement for (effectively) using such frameworks and engines. For example, just to indicate a few aspects:

  • Game Design
  • 3D Graphics
  • 3D Modeling
  • Texture Engineering
  • Shader Development
  • Lighting and Shadow Techniques
  • 3D Space Partitioning
  • Object Culling Techniques
  • Sound Engineering
  • Resource Management
  • In-game Object Management
  • 3D Collision Detection and Response
  • GUI Programming
  • Scripting
  • ...

However, for "newbie C++ developers", the first step should be to get into the programming language C++ (and really, really understand the concepts) and fundamental frameworks like std and boost and stuff like that. Nevertheless, (hobby) game development is an awesome thing and I dont want anyone to spoil the pleasure. Quite the contrary: I am a (hobby) game developer since I was 13, so more than half of my life, and it still makes a lot of fun. But it took a long way to come to where I am meanwhile...

Flinsch