I want to learn how to create 3D games on a PC, but I don’t know anything about it. Please help me what to study? What programs does this implement? Also I will be glad to links to articles, manuals and in general information of any kind.

I plan to increase the complexity of the game in stages:

  1. Move through the three-dimensional level.
  2. Adding a target to reach.
  3. Adding to the level of moving objects (platforms, elevators, etc.), motion animation.
  4. Adding buttons that change the position of objects in the level (open / close the door; raise / lower the elevator, etc.).
  5. Adding opponents, building up AI.


Closed due to the fact that off-topic participants Kromster , xaja , Visman , PashaPash , Yuriy SPb 1 Oct '15 at 11:23 .

It seems that this question does not correspond to the subject of the site. Those who voted to close it indicated the following reason:

  • " Questionnaires are forbidden on Stack Overflow in Russian . To get an answer, rephrase your question so that it can be given an unambiguously correct answer." - Kromster, xaja, Visman, YuriSPb
If the question can be reformulated according to the rules set out in the certificate , edit it .

  • eleven
    Mathematics literature can be read for a start - rasmisha
  • 23
    I struggle with the temptation to add a label [корованы] . - karmadro4
  • eight
    @Starling - Try to decompose into 15-20 subtasks what you called the "Moving around the three-dimensional level", that is, make a list of what needs to be done in the process of implementing this task. And then it will be possible to discuss something. - Simply, roughly speaking, “building up AI” on the forums is a lot of people who can, but clearly and concisely breaking the task down into subtasks is practically an art. - Costantino Rupert
  • 9
    "I want to learn how to create 3D-games" - This will pass, you just have to open a book on programming. - Alex Silaev
  • eight
    It seems to me that this question is not worth laughing. Yes, writing a 3D game is not a task for a beginner who doesn’t know how to do it, but the question is IMHO correct and polite. - Oleg Arkhipov

6 answers 6

If you are a beginner, of course, the best start will be the book: "Programming in C ++", by Dirk Henkemans, Mark Lee. It is designed just for beginners (not familiar with C ++ or any other PL), and is aimed primarily at developing gaming applications (one of the authors is a BioWare employee). With the language C ++ in the development of games you will sooner or later have to face, no matter how you want to avoid it. After this start, it would be logical to read OpenGL or DirectX (any) books. A good choice can be a compilation from here: a blog of a serious lady , and then you should form your own view on what language and technologies to use in your work. PS: I do not advise at the initial stage to rest against mobile applications or online games.

  • Thanks for the great answer. I wanted to clarify: why you should not rest at the initial stage in mobile applications or network games? - Starling
  • Just to not delve into the specifics of the platform at the initial stage. The first thing you need to understand the basic principles of designing gaming applications, as well as the basics of computer graphics. Yes, and for 3D you should not grab at once. In parallel, do not forget about the examples (look for the game Snake on OpenGL - for starters, it is the most). - acronics
  • I see. Thanks. - Starling

This can be done in different ways:

  1. The easiest: take the game designer and do everything in it. Of course, programming is still needed, but it will be an order of magnitude smaller than writing the same in C ++ without an engine.
  2. The most difficult: To learn some fairly fast language (for example, C or C ++). This can be very boring, because at the initial stage of training you will not be able to create even a normal window, let alone draw something there. There will be only text in the console. Creating windows, drawing, sound is all a matter of libraries. Next, you learn OpenGL or Direct3D (for graphics) and OpenAL, DirectSound or XAudio for sound. You combine all this and write a game. That's just in this case there will be a huge amount of low-level code in which you can get confused. It should be competently wrapped in classes, that is, in fact, create your own engine. But then on this engine you can make games.
  3. Medium: Get ready engine. For this, it will be enough to know only the programming language for which it is intended. Sound and graphics engine will take over.

Personally, I went the second way. Although it is the most difficult, but now I know how everything works from the inside. Until the game has not yet come - for 2 years now I am at the stage of creating the engine. But I have more desire to write a good engine, rather than make a game.

  • Thank. By the way, in addition to graphics, sound and AI engine performs some other functions? Perhaps a stupid question, but I'm new to this business. - Starling
  • For example, physics. At least check collisions in a normal game engine should be. - gammaker

@Starling, specify what game you want to write: for the browser, desktop or for mobile devices?

Useful topics:

    I think that you here: http://unity3d.com/

    Although, if you do not know programming languages, here: http://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA%D0%B8_%D0%BF%D1 % 80% D0% BE% D0% B3% D1% 80% D0% B0% D0% BC% D0% BC% D0% B8% D1% 80% D0% BE% D0% B2% D0% B0% D0% BD % D0% B8% D1% 8F

      Games to write to one or create your own 3D-engine is not only irrelevant, but also slightly abnormal.

      There are a bunch of engines from which you can already make games. I was interested in Ogre3D.org (free, expandable, cross-platform), but I didn’t like it, because it’s more like a graphic library and I need a lot of knowledge of C ++ and this library. Unity3D is not very bad, cross-platform, the price is not high (for noncommercial. - free), but I have not tried it in practice. The Unreal Engine SDK (UDK) is the most advanced, the license is normal, based on a very expensive game engine (runs on DirectX). In addition, there are PureBasic, DarkBasic, Game studio, and many other specialized studios and languages. Everywhere, each of them with the proper approach has no limitations, neither hardware nor any other. I in your place would choose Unity or UDK. In an extreme case, GameStudio. Good luck!

      • 3
        > creating your own 3D engine is not only irrelevant, but also slightly abnormal. Go to gamedev.ru. There are almost all there. So this is normal. - gammaker
      • @GLmonster If at least a third of these "normal" instead of creating "the best and the most super-duper engine at all" joined any opensource project, it would be much better. - Costantino Rupert
      • @ Kotik_hokhet_kusat, it is unlikely. The influx of clientele from not to the night of the mentioned forum will greatly reduce the average responsibility for the hospital of any project. - karmadro4
      • > If at least a third of these "normal" instead of creating "the best and the most super-duper engine at all" joined any opensource project, it would be much better. It is unlikely to happen. For example, I will never give up my engine. Too much time and energy spent on it. And it seems to me that the architecture of the code it turns out better than others. Only the functionality is still small. - gammaker
      • one
        @ semenvx27 Well, about developing games alone, I strongly disagree with you. The main thing to start. And people catch up. An example is Notch. - zenith

      If you are a complete beginner, you can try DarkBASIC and BlitzBasic. The blessing with them in a set there is a great lot of examples on which it is possible to fill a hand.