Thread: Where To Start?

  1. #1
    Registered User
    Join Date
    Sep 2006
    Posts
    27

    Where To Start?

    Where does one begin to learn how to program a 3D game? I'm a total amateur at OpenGL and graphics programming in general, as I've mainly had my focus on more low-level processor and networking logic (been building server apps and basic console-driven operating systems), so me coming here is pretty last resort.

    I HAVE been through NeHe's tutorial to about tutorial #14, but I find it limited. It teaches you how to do stuff, woo, but one thing that I find sits so glaringly out at me is that it doesnt actually cover the underlying concepts of OpenGL, just teaches you how to apply the API to a limited number of cases.
    Bar that and the OpenGL Red Book, I'm struggling to find tutorials and places to generally start from.

    Put short, I can do as much as draw a few polygons, translate them, translate "yourself" in the dimension, and uh... yeah, basically, no idea how to even render nets, spheres, complex entities, what Anti-Aliasing is etc etc.

    I'm considering going through the OpenGL Red Book shortly to ensure I pick up the standards parts, but that wont really help gaming I take it...

    Any recommendation will be accepted really! =D

  2. #2
    Registered User
    Join Date
    Oct 2008
    Posts
    75
    XNA is a good way to start.
    Look up The Dishwasher: Dead Samurai on youtube, but it's a 2d game.
    THe guy who made the game wrote a book on how to do it.

    ANd xna has free tutorials on it's site.

    It looks good.

  3. #3
    Frequently Quite Prolix dwks's Avatar
    Join Date
    Apr 2005
    Location
    Canada
    Posts
    8,057
    I was under the impression -- possibly mistaken -- that you had to use C# if you wanted to use XNA.

    Put short, I can do as much as draw a few polygons, translate them, translate "yourself" in the dimension, and uh... yeah, basically, no idea how to even render nets, spheres, complex entities, what Anti-Aliasing is etc etc.
    Wikipedia is your friend, for some questions anyway. http://en.wikipedia.org/wiki/Anti-aliasing

    As for your other questions . . . I don't know, maybe you should read some books or web pages on graphics theory.
    dwk

    Seek and ye shall find. quaere et invenies.

    "Simplicity does not precede complexity, but follows it." -- Alan Perlis
    "Testing can only prove the presence of bugs, not their absence." -- Edsger Dijkstra
    "The only real mistake is the one from which we learn nothing." -- John Powell


    Other boards: DaniWeb, TPS
    Unofficial Wiki FAQ: cpwiki.sf.net

    My website: http://dwks.theprogrammingsite.com/
    Projects: codeform, xuni, atlantis, nort, etc.

  4. #4
    Registered User
    Join Date
    Aug 2003
    Posts
    1,218
    There are some things you cant fully understand and know until you have tried it, failed it, and done it. And programming games is one of those things. I suggest you check what simple 2D games (no dont start with 3D yet) use.

    Take animation for instance, how would you animate something. Well what is an animation really? What you do when you animate something is you have frames where you slowly change something and then replay them fast enough so the brain interprets it as something continues right?

    Ok so you know you need to switch frames. Now what is a frame? Easiest to think of a frame in an animation is a picture, and a picture in a graphic api can be represented with a texture. So you now know that you need to switch textures fast enough, so how can that be done in code with OpenGL? Well from NeHe tutorial you know how to load a single texture, so load up several and come up with a system where you switch which texture is being used after a given time.

    This is how i usually think when i program, and especially when i program games. I basicly just think like this:
    What do i want done?
    Ok what steps are there?
    How do i translate this to the world of C/C++ and OpenGL?

    And after that I try to find how to implement it.

    You come to a point where tutorials wont help you much further and where actual trial and error is needed. My suggestion is you try to do a basic 2D game with animations. Maybe something as simple as a board-game of some sort. When that is done try do animations and so on. And if you ever get stuck see if you cant solve the problem with the steps up here. And if no solution is found, you can always ask for tips here at cboard , we are usually more than happy to give tips and pointers and such, as long as you show some will to try to find the solution yourself.

    Hope this helps.
    STL Util a small headers-only library with various utility functions. Mainly for fun but feedback is welcome.

  5. #5
    The Right Honourable psychopath's Avatar
    Join Date
    Mar 2004
    Location
    Where circles begin.
    Posts
    1,071
    Get yourself a decent book on your API of choice as well. There should be a few threads around on that if you do a search.

    The thing with tutorials, as you said, is they demonstrate how to do one particular thing, generally without much regard to if it's the "best" way to do it. Careful not to get yourself in the trap of trying to do everything exactly like a tutorial, or trying to stitch tutorial code together into an entirely usable application...the results tend to be ugly at best, IMO.

    EDIT:
    Quote Originally Posted by dwks
    I was under the impression -- possibly mistaken -- that you had to use C# if you wanted to use XNA.
    You do. Therefore, not a good choice .
    M.Eng Computer Engineering Candidate
    B.Sc Computer Science

    Robotics and graphics enthusiast.

  6. #6
    Frequently Quite Prolix dwks's Avatar
    Join Date
    Apr 2005
    Location
    Canada
    Posts
    8,057
    You do. Therefore, not a good choice .
    Well, especially if you don't know C#.

    I think you probably would be best off dealing with 2D graphics for now. At least that's how most people learn it, I think.
    dwk

    Seek and ye shall find. quaere et invenies.

    "Simplicity does not precede complexity, but follows it." -- Alan Perlis
    "Testing can only prove the presence of bugs, not their absence." -- Edsger Dijkstra
    "The only real mistake is the one from which we learn nothing." -- John Powell


    Other boards: DaniWeb, TPS
    Unofficial Wiki FAQ: cpwiki.sf.net

    My website: http://dwks.theprogrammingsite.com/
    Projects: codeform, xuni, atlantis, nort, etc.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Data Structure Eror
    By prominababy in forum C Programming
    Replies: 3
    Last Post: 01-06-2009, 09:35 AM
  2. Adventures in labyrinth generation.
    By guesst in forum Game Programming
    Replies: 8
    Last Post: 10-12-2008, 01:30 PM
  3. C++ gui for windows where to start
    By prixone in forum Windows Programming
    Replies: 2
    Last Post: 12-16-2006, 11:48 PM
  4. GNOME Desktop won't start (Mandriva)
    By psychopath in forum Tech Board
    Replies: 10
    Last Post: 07-19-2006, 01:21 PM
  5. Start bar color in WinXP
    By confuted in forum Tech Board
    Replies: 4
    Last Post: 05-03-2003, 06:18 AM