Thread: Confused on how the game process works

  1. #1
    Registered User
    Join Date
    May 2006
    Posts
    23

    Confused on how the game process works

    Ok ive been confused for a while and I still am as to how making a game works. Ok so what should i do after I learn c++?? Is it possible to make your own simple games with just pure C++ programming that is not text base? Is it necessary to learn Direct x or open gl? If so which one is used most in todays games? What do I need to know before I can start to make my own simple games? And if someone knows... can they summarize the process of making a professional game like the ones we buy in the stores today? like what happens first? story boarding? drawing? programming a game engine? How is all this tied together? Im not saying im going to make a professional game on my own because that would be impossible. I just want to know the general process of making one. And once you learn how to create simple 2d games is it easier to convert to 3d games?

    Also I know there have been threads before on game programming books. The forum moderator should really make a sticky on just game programming books. But what programming book would you recommend for somone who knows C++ but has no clue at all how to game program (like me)?


    Thanks

  2. #2
    Its hard... But im here swgh's Avatar
    Join Date
    Apr 2005
    Location
    England
    Posts
    1,688
    Good questions. First, when you are sure you are comfortable enough with C++ to makes games, start at the begginning. There is no shame in maklng a text adventure game.
    It involves many of the processes that many commercial games have,
    ie: classes, functions, templates, pointers and references ect..
    As you become more competent in your skills, then learn soimthing more advanced like
    opengl. which is more or less the easiest graphics library to learn, directX is microsoft based, and all commercial games use a mixture of opengl and direct X, so learning one or the other should not matter.

    A game engine is hard to write on your own, and will require a good sound knowlege of windows programming, especially of you plan on learning direct X.

    As for a good book, check out "C++ game programming" by micheal morrison

    It is an excellent insight into the craft of game programming, and even now, i relate back to it.
    It shows you how to make only text-based games, but does give you a very good introduction into game programming used by the proffesinals.

    In closing, learn lots of C++, move onto small text based games, then larger ones, then learn OpenGl or directX, then you could jump into windows programming and implement that into your games, it is a long road, but starting off on the right foot is the first step to becomming a professional game programmer.
    Good luck and the all the best in your endevours, remember to ask on the board for any help or advise.
    -pete

  3. #3
    Supermassive black hole cboard_member's Avatar
    Join Date
    Jul 2005
    Posts
    1,709
    Good class architecture is not like a Swiss Army Knife; it should be more like a well balanced throwing knife.

    - Mike McShaffry

  4. #4
    Registered User
    Join Date
    Aug 2001
    Posts
    244
    >> A game engine is hard to write on your own, and will require a good sound knowlege of windows programming
    disagreed.

    for network code: you need to know sockets - which work basically the same in windows and linux if you use the berkeley socket intrface. you might also use a higher level cross platform library.
    for graphics: use a high level cross platform library like opengl.
    sound: use a cross platform library like openal
    keyboard'n'stuff: use e.g. a cross-platform library like sdl
    phsyics: well there is e.g. ode and newton - but currently i'm sure of how deterministic they are. (it takes some "hacking" as far as i have read)
    graphical user interfaces: tons of cross platform libraries out there.

    so there is a cross platform library for basically anything - no need to stick to windows internals. ppl have already wrapped those functions in their cross platform libraries.

    the only good reason to use windows api functions is not to bother downloading and installing other libraries imo,

    also take a look at the diagram at:
    http://www.amazon.com/gp/reader/1592...06#reader-link

    page 6 - thats a pretty nice diagram of how a game is made up.
    signature under construction

  5. #5
    Registered User
    Join Date
    May 2006
    Posts
    23
    Hey thanks alot you guys. Awesome book recommendations. Yeah my first step is going to be taking some more C++ classes because I honestly know im not that confortable with C++ yet. I have made a guess the number game so I guess my next step would be a text adventure game. Im going to see if I can find some direct x or open Gl classes. Oh and swgh can you possibly post a link to your book recommendation?

    Thanks

  6. #6
    Registered User
    Join Date
    May 2006
    Posts
    23
    hey Raven Arkadon if you know open GL would you have to learn open al? or is open al part of Open gl?


    Thanks

  7. #7
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    Quote Originally Posted by Raven Arkadon
    >> A game engine is hard to write on your own, and will require a good sound knowlege of windows programming
    disagreed.
    I'm sure you don't consider the list that followed your reply as something... easy.

    There's a fair level of complexity in learning all those things, but most importantly, on how to put them working together. There is no shame in admitting something is hard. It's more realistic, separates those that are just on it for the fun from those that are serious about it, and better prepares them for what they will have to expect.

    And that is hard work with many obstacles that need to somehow be dealt with. There is no serious reference to game programming that will not state right at the beginning that while rewarding, game programming is also an hard task.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  8. #8
    Registered User
    Join Date
    Aug 2001
    Posts
    244
    that "disagreed" was meant for the last part "good sound knowlege of windows programming".
    of course i agree that writing a game is a damn hard thing to do.

    its just that i once had windows knowledge but i have done so much stuff in linux than that i already forgot.
    still my friends can usually compile my stuff natively in windows (although i don't care about windows api functions).

    well the thing is that learning the windows api isnt much harder or easier than learning the other apis in the list.
    i even consider opengl WAAAAAAYYYY easier than directx (i started learning directx in version 6, then a little open gl. in open gl you simply say: do something - in directx you spent hundrets of lines just trying to get your device to work. and i doubt that the concepts used by directx are understandable for a newbie .

    in fact, a programming language is just a tool - but the thing that counts is the knowledge of concepts.

    >> but most importantly, on how to put them working together.
    yes, that is probably the hardest part in every bigger project.

    if you know how the components of e.g. a game should work together and how they must be designed it doesnt matter much in which language you write them.
    e.g. learning java if you know c++ takes a few days at most. and the concepts you know can be almost implemented in the same way as you would have done it in c++.
    also if you learned directx first and thus know how a rendering pipeline works and what things like depth/front/stencil buffers are, and so on it will be easy moving to e.g. open gl. and vice versa.
    you just then ask: how do i do the stuff i have done in directx in open gl? and those questions are usually pretty easy to answer.
    this thing is just that opengl can be compiled almost anywhere, while direcx... well just windows.
    signature under construction

  9. #9
    Registered User linuxdude's Avatar
    Join Date
    Mar 2003
    Location
    Louisiana
    Posts
    926
    opengl is only graphics it doesn't handle input, sound, or anything else. This is because it is designed to be cross-platform and simple.

  10. #10
    Registered User
    Join Date
    Aug 2001
    Posts
    244
    ah i meant direc3d by directx. sry. but ive listed some libraries already which handle input and sound and stuff.
    there are also complete cross platform engine packages out there (e.g. neo engine).

    but such a big package somehow takes the fun out of it
    signature under construction

  11. #11
    60% Braindead
    Join Date
    Dec 2005
    Posts
    379
    Actualy, there are some games that single people have programmed, its not impossible, just prehaps lower quality. Heres an example - This guy knows his networking :P -
    www.xenimus.com

    Developers really dont have any set rules about the creating process. Usualy the storyboard goes up first. (If there happens to be one) Then you can do a few things. Usualy the engine will go up next, though, most game companys never touch an engine, its usualy purchased then modified. Or else the company will modify an old engine. Sence the engine usual has a model loading process, the company will probably start making models & skinning the models. At the same time, a map editor of sorts will be made if one was not supplied. From there, a scripting engine comes in if it was not supplied. Dummy models sometimes are sometimes used at this point. (Basicaly models with no animation, just to test the systems) The map is made -> stuff is placed -> things are scripted, this is the longest process if the engine was purchased. Once everything works, the games released. It gets alot more complicated if you dont buy the engine. Then again, things could be done completely backwards, though I imagine that would cause a great headache for most people :P.

    Languages vary. C/C++ are the most common. From C/C++ it usualy boils down to DirectX or OpenGL. DirectX is more windows friendly, but its drawback is it... only works on windows. OpenGL requires a bit of extra code to get things working, but it works cross platform if you do it right. They're some other libraries such as alegro, though I've never seen a commercial game made in them.

    I dont know about books, and I dont have any 3D programming links on me, but they're out there. Good luck .
    Code:
    Error W8057 C:\\Life.cpp: Invalid number of arguments in function run(Brain *)

  12. #12
    C / C++
    Join Date
    Jan 2006
    Location
    The Netherlands
    Posts
    312
    nehe.gamedev.net has nice openGL tutorials.
    Operating Systems:
    - Ubuntu 9.04
    - XP

    Compiler: gcc

  13. #13
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    Everyone recommends a text adventure game first, and yet parsing technology and implementing it is some of the hardest programming out there. Getting the computer to parse a phrase, interpret it, act on it, and return something meaningful to the player is not something I would call easy.

    If you are going to write a text adventure game you might as well write a 3D game and save the parsing for the script portion of the game. Parsing human input is not simple.

    If you are interested in parsing there are tons of websites about cellular automata, pattern recognition, etc, etc. If you actually do come up with a good parser you are probably closer to writing a compiler than a simple text game.

  14. #14
    Registered User Frobozz's Avatar
    Join Date
    Dec 2002
    Posts
    546
    Making a 2D game using the library SDL is also a good way to start. The library has everything you need to make a simple 2D game - video, sound, input, etc. Plus you can use OpenGL with SDL if you want 3D.

  15. #15
    Registered User
    Join Date
    May 2006
    Posts
    23
    How do you use libraries with languages? If they are compatible with the language do you just "#include" it? And must you learn the commands of the library once you include it? I was never clear what exactly libraries are. So they are pre-made functions that you can include? and you can only include a certain library if it is compatible with the language you are using correct???


    Thanks

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. beach bar (sims type game)
    By DrKillPatient in forum Game Programming
    Replies: 1
    Last Post: 03-06-2006, 01:32 PM
  2. PC Game project requires c++ programmers
    By drallstars in forum Projects and Job Recruitment
    Replies: 2
    Last Post: 02-22-2006, 12:23 AM
  3. Engine <=> DX/OGL | c++ ?
    By darkcloud in forum Game Programming
    Replies: 6
    Last Post: 05-13-2005, 12:19 AM
  4. Someone help me with this game??
    By stehigs321 in forum Game Programming
    Replies: 15
    Last Post: 10-30-2003, 09:42 PM
  5. u got me wrong fellas
    By clover in forum Game Programming
    Replies: 4
    Last Post: 10-18-2003, 04:23 PM