CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Page 1 of 2 12 LastLast
Results 1 to 15 of 22

Thread: Moving on

  1. #1
    Join Date
    Sep 2008
    Posts
    113

    Moving on

    I hope this is in the right place. I apologize if it is not.

    I'm closing in on the end of the textbook I've been reading. I still have a couple of chapters left, but once I finish, I'd like to look towards what to do next.

    Of course, I intend to continue expanding my knowledge on C++. My intention is to find some good reading on the STL. But what kind of other options do I have? Are there some general subjects I should look into to apply my C++ programming capabilties?

    I began my venture into C++ to learn how to program graphics and, ultimately, video games. But as a programmer, I don't want to limit the ways to apply myself for reasons that I hope are obvious enough.

    Any suggestions? I'm going to continue looking for myself, but for some reason, I'm having a difficult time finding much.

  2. #2
    Lindley is offline Elite Member Power Poster
    Join Date
    Oct 2007
    Location
    Seattle, WA
    Posts
    10,895

    Re: Moving on

    Might be worthwhile to begin learning OpenGL or DirectX if you haven't already. Program a roller coaster simulation of some kind. Or you could do a project that lets you explore Boost a bit.
    Last edited by Lindley; June 6th, 2009 at 11:27 PM.

  3. #3
    Join Date
    Nov 2006
    Location
    Australia
    Posts
    1,569

    Re: Moving on

    Any experience is good experience... I'd agree with Lindley - OpenGL is a good idea. I'd usually say something simple like SDL, but lately I realised if you're planning to program video games, you're better off getting used to 3D graphics and not getting stuck in the simplicty of 2D.
    Good judgment is gained from experience. Experience is gained from bad judgment.
    Cosy Little Game | SDL | GM script | VLD | Syntax Hlt | Can you help me with my homework assignment?

  4. #4
    Join Date
    Sep 2008
    Posts
    113

    Re: Moving on

    Yeah, I've been debating OpenGL and DirectX for a long while now. If I understand correctly, OpenGL is capable of running on various systems, while DirectX is Windows-only. I'd prefer that whatever I eventually do, it be capable of running on Windows, Mac and Linux at the very least. I'm glad I decided to just stick to general programming first, though.

    I guess what I was aiming for is whether or not there are any general programming topics I should learn first. Data Structures, for example? Or would it be safe to begin learning OpenGL/DirectX as you suggested?

    As always, thanks for the quick response.

  5. #5
    Lindley is offline Elite Member Power Poster
    Join Date
    Oct 2007
    Location
    Seattle, WA
    Posts
    10,895

    Re: Moving on

    Knowing data structures and algorithms in general terms can be useful, certainly. There's usually a class on that in any undergrad computer science curriculum.

  6. #6
    Join Date
    Sep 2008
    Posts
    113

    Re: Moving on

    Probably. I've been out of school for a little while for a couple of reasons, but felt the brain-rot beginning to kick in, so I've been studying a couple of things on my own for a little while now. When I go back to school (this Fall, thank God), I'll look into it more. I guess I'm getting a little ahead of myself.

    Alright, I suppose I'll move into OpenGL and/or DirectX next. Still not sure which one to go with. I mentioned that I wanted to program video games, which is definitely ideal, but more specifically I want to program physics/simulation engines. Thus, I really like your idea of programming a roller coaster simulation.

    Mybowlcut - I missed your post by accident since you posted at the same time as me. Thanks go to you as well for the reassurance.

  7. #7
    Join Date
    Aug 2007
    Posts
    858

    Re: Moving on

    Alright, I suppose I'll move into OpenGL and/or DirectX next. Still not sure which one to go with. I mentioned that I wanted to program video games, which is definitely ideal, but more specifically I want to program physics/simulation engines. Thus, I really like your idea of programming a roller coaster simulation.
    If you aren't extremely interested in learning the nuts and bolts of 3D graphics, I can't really see it being worth investing the considerable time you'll need to learn and use OGL or D3D from scratch. Just pick a mature and established graphics engine like OGRE or Irrlicht, learn it, and get on with working on what actually interests you.

  8. #8
    Join Date
    May 2009
    Posts
    2,413

    Re: Moving on

    Quote Originally Posted by Raislin View Post
    I guess what I was aiming for is whether or not there are any general programming topics I should learn first. Data Structures, for example? Or would it be safe to begin learning OpenGL/DirectX as you suggested?
    To make your roller coaster simulation a more complete learning experience I suggest you:

    1. Make use of a GUI package. Try Qt. It's cross-platform and has built in support for OpenGL.

    http://www.qtsoftware.com/

    2. Make use of the C++ standard library as much as possible, especially the STL containers. There's a good reference called (what else) The C++ Standard Library by Josuttis. But beware, there's a new standard coming up so lend a copy or buy it used.

    3. During the project study the book C++ Coding Standard by Sutter & Alexandrescu at the side. This definately will improve your C++ coding style.

    4. Start small. A roller coaster simulation in 3D is a major undertaking. Start by simulating a sledge sliding down a slope in 2D (powered by gravity and stopped by friction).

    Good luck.

  9. #9
    Lindley is offline Elite Member Power Poster
    Join Date
    Oct 2007
    Location
    Seattle, WA
    Posts
    10,895

    Re: Moving on

    Personally I'd start by defining the track in terms of spline control points. Until you can draw the track, not much point in worrying about the physics. There are subtleties you'll encounter such as which direction the "up" vector should be at every point on the track.

    Here's one I made in my computer graphics class at Carnegie Mellon a few years back:
    http://img.photobucket.com/albums/v3...y/Coaster1.jpg
    http://img.photobucket.com/albums/v3...y/Coaster4.jpg

    The extent of the physics there was that the speed at any point was related via the standard equations to the height (kinetic vs potential energy). I didn't bother with collision detection, friction, or anything like that.

    It should be noted WRT GUI usage, that there is a well-defined disconnect between the GUI side of the program and the OpenGL side. You could design the OpenGL simulation using something simple like GLUT and then drop it into a Qt or GTK+ or WxWidgets framework later if you wanted.
    Last edited by Lindley; June 7th, 2009 at 12:12 PM.

  10. #10
    Join Date
    Aug 2007
    Posts
    858

    Re: Moving on

    It should be noted WRT GUI usage, that there is a well-defined disconnect between the GUI side of the program and the OpenGL side. You could design the OpenGL simulation using something simple like GLUT and then drop it into a Qt or GTK+ or WxWidgets framework later if you wanted.
    It really depends on what you're doing. Most "real" games won't use a GUI like Qt or WxWidgets, but will have a system that's rendered by your 3D engine. But still, pretty much any decent game GUI library will be pretty much independent of OGL or D3D.

  11. #11
    Join Date
    Sep 2008
    Posts
    113

    Re: Moving on

    Quote Originally Posted by Speedo View Post
    If you aren't extremely interested in learning the nuts and bolts of 3D graphics, I can't really see it being worth investing the considerable time you'll need to learn and use OGL or D3D from scratch. Just pick a mature and established graphics engine like OGRE or Irrlicht, learn it, and get on with working on what actually interests you.
    Well, I'm very much interested in creating simulations of real world or game world situations. I've been a gamer since I was 4 years old, so I most definitely have an interest in programming in the video game industry. What exactly would the nuts and bolts of 3D graphics consist of?

    Whether or not what I really want to do requires D3D/OGL or a graphics engine is something I'm not sure of yet. I'm willing to look into both.

    Quote Originally Posted by nuzzle View Post
    To make your roller coaster simulation a more complete learning experience I suggest you:

    1. Make use of a GUI package. Try Qt. It's cross-platform and has built in support for OpenGL.

    http://www.qtsoftware.com/

    2. Make use of the C++ standard library as much as possible, especially the STL containers. There's a good reference called (what else) The C++ Standard Library by Josuttis. But beware, there's a new standard coming up so lend a copy or buy it used.

    3. During the project study the book C++ Coding Standard by Sutter & Alexandrescu at the side. This definately will improve your C++ coding style.

    4. Start small. A roller coaster simulation in 3D is a major undertaking. Start by simulating a sledge sliding down a slope in 2D (powered by gravity and stopped by friction).

    Good luck.
    Thanks for the tips. I don't know anything about Qt or GUI packages in general, but I'll look into it.

  12. #12
    Lindley is offline Elite Member Power Poster
    Join Date
    Oct 2007
    Location
    Seattle, WA
    Posts
    10,895

    Re: Moving on

    Quote Originally Posted by Raislin View Post
    What exactly would the nuts and bolts of 3D graphics consist of?
    At the lowest level, it's all about points, lines, and triangles. Some packages will allow you to take a step above that and start working with models directly.

  13. #13
    Join Date
    Sep 2008
    Posts
    113

    Re: Moving on

    I had assumed there might be something more important being hinted at, but I really didn't know what.

    One thing I know for sure is that I hate using something without knowing how it works. Even if I eventually turn to a graphics engine, I'd prefer to have some understanding of what's going on underneath.

  14. #14
    Join Date
    Nov 2006
    Posts
    1,611

    Re: Moving on

    The what you need is one of David Eberly's texts on game engine design (Morgan Kaufman publishing).

    Ian Millington also has an excellent text on the introduction of a physics engine.

    Eberly covers a wide range of topics which explain 3D engines in considerable detail. It's better than studying Direct3D or OpenGL directly.

    I know - I do what you're aiming for.
    If my post was interesting or helpful, perhaps you would consider clicking the 'rate this post' to let me know (middle icon of the group in the upper right of the post).

  15. #15
    Join Date
    Sep 2008
    Posts
    113

    Re: Moving on

    Which of Eberly's texts should I start with? Or should I read Millington's book first? Thank you very much for helping me with the next step.

Page 1 of 2 12 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured