Thread: What do I learn now?

  1. #1
    Registered User
    Join Date
    Mar 2009
    Posts
    17

    Question What do I learn now?

    Hello,
    This is my first post on this site, so - Hello everyone!
    I've been wondering about the past month where I should go in C++. I've been doing it for about a year now, and I need something new. I've gone through about 6 books on all the basics, and all the basic tutorials on this site too. I'm comfortable with pointers and classes, and what have you.
    I've wanted to get into graphical game programming, but it seems lke everything I find is either the same stuff I've been doing for a year, (text based games) or it seems way out of my league. (DirectX specifically)
    If you have recommendations on what to learn, I'd love to listen. Don't think I'm only stuck on game making either; I just want to get out of this console based C++ world!

    Thanks for any help,

    Lorgon Jortle

    EDIT: I got Volume I and II of: Thinking in C++
    It looks like there is a bunch in there I can learn, but I'm still stuck on what to learn for GUI's.
    Last edited by Lorgon Jortle; 03-09-2009 at 05:25 PM.

  2. #2
    Registered User
    Join Date
    Mar 2007
    Posts
    416
    If you want to move to GUI programming and work in windows try learning win32 API. If you want to learn game programming look up Allegro, OpenGL, and Direct3D.

    API's:
    Win32
    OpenGL
    Allegro

    Maybe some concepts? (if not already done)
    Linked lists (doubly, singly, circular)
    Binary (search) trees
    sorting algorithms

    It's kind of hard to say which direction to go in when we don't know the concepts you've covered, or the extent of your c++ knowledge.

  3. #3
    Registered User
    Join Date
    Mar 2009
    Posts
    17
    Which API is easiest to learn? You're going to say Allegro, but from what I've seen, it doesn't do much. I'm not really interested in learning it then. I'm thinking deeply about Direct3D once I finish the Thinking in C++ volumes I and II. What do you think?

  4. #4
    i've lost my mind
    Join Date
    Jun 2008
    Posts
    26
    I don't know what you think is so complex about graphics API's. Maybe the syntax was aesthetically unpleasant and had an odor of 'complexity' that causes you to have the perspective that you do. That goes away with adaptation, with time and use.

    In truth, what is anything? Why are you even learning programming?

    I've done a lot of graphics/audio programming, and professionally mostly business applications. In my experience I gained little appreciation or understanding from the languages themselves. They're quite... benign. Just as mathematics is in itself. You teach yourself all of this algebra and geometry and finally you wonder... "what now?"

    Programming and mathematics are one in the same, languages to describe objects and things in the world around us, with this formal language we can cooperatively solve problems together. Instead of worrying so intently on the formality of the language itself, start focusing on models and systems that suffer from inefficiency or design flaws. What you should be doing is applying what you learn to solve problems, to achieve goals, to hit landmarks, to increase the complexity of everything and to push further. You've learned the words of a new language, what you're clearly not doing is speaking in that language, you're not communicating with the computer - cooperatively.

    Does this sound like it's addressing your issue? Sometimes I see people in this kind of situation, rarely is there difficulty or confusions in the languages themselves, but what to even do once you know some of it. Without problems to solve, programming and mathematics are useless, so don't look for meaning within them, use them to discover it.

    When I play games I'll write software to model or reverse engineer them to discover efficient patterns or solutions, if I want to exploit a system for personal use I'll analyze it and use software to model it... if I want to see objects in mathematics I study the equations translating them in to a software system and then I can understand better by playing with the geometry. Maybe you want to design complex webs of interacting systems, or build learning machines, or understand the way signals are analyzed and processed? Maybe you want to write information services to provide and share knowledge, etc etc etc.

    Use the API's which apply to all of your needs, not just because it's easy or not. An easy API might not suite your needs. Do what's necessary to achieve the goal.
    Last edited by gltiich; 03-10-2009 at 01:28 PM.

  5. #5
    Registered User
    Join Date
    Dec 2006
    Location
    Canada
    Posts
    3,229
    There's also SDL (and its OpenGL wrapper).

  6. #6
    Not stupid, just stupider yaya's Avatar
    Join Date
    May 2007
    Location
    Earthland
    Posts
    204
    Console mode is very easy to use, making it easier for you to worry about other things such as just learning the basics. Even though console mode doesn't have great graphics and what not, you can still do advanced stuff in it. For example, as scwizzo said, learn some of the more advanced concepts of programming. You can maybe try to implement your own scripting engine or learn how to use a sound or database library. I'd recommend looking into Win32... it may be very daunting at first, but as you learn the concepts, you'll learn to take advantage of all those "complex" parts and you might even enjoy it. Win32 might also be the core foundation to your next task, such as OpenGL and DirectX, which will make the transition a lot more pleasant.

  7. #7
    Registered User
    Join Date
    Mar 2009
    Posts
    17
    Thanks for the help everyone. I decided to go with DirectX, as daunting as it appears to me. Cheers

  8. #8
    Registered User
    Join Date
    Apr 2008
    Posts
    890
    There are also higher level graphic libraries like Irrlicht3d and Ogre3d. Both will provide compilable tutorials that you can build from. Both are platform independent and support both OpenGL and Direct3D.
    Last edited by medievalelks; 03-12-2009 at 07:59 AM.

  9. #9
    Registered User
    Join Date
    Apr 2004
    Location
    Ohio
    Posts
    147
    DirectX is far less complex than you might think. It's a matter of diving in and working with it. Get a book about DirectX programming, look up some tutorials, etc. OpenGL is also fun to play with but it's old and dated and bloated and... well I dont' want to start a war.

    You can also use SDL. It wraps around other API's so makes it a bit easier to start with.

    You can start challenging yourself by writing small games like pacman, tetris, bricks, etc. I know those are pretty generic but they're good teachers.

    You could also join a game project that's developing a game that you would like to work on. Look around on SourceForge or GameDev -- there are tons out there but look for projects that aren't totally brand new and have shown that they won't sputter out after a few months (seems most do these days).

  10. #10
    Registered User
    Join Date
    Apr 2008
    Posts
    890
    Quote Originally Posted by leeor_net View Post
    DirectX is far less complex than you might think. It's a matter of diving in and working with it. Get a book about DirectX programming, look up some tutorials, etc. OpenGL is also fun to play with but it's old and dated and bloated and... well I dont' want to start a war.
    I'm not trying to engage in a war, but why do you consider OpenGL to be bloated?

  11. #11
    i've lost my mind
    Join Date
    Jun 2008
    Posts
    26
    I've written some ridiculously fast visual effects for audio with OpenGL and GLSL, if you ask me OpenGL is freaking badass. OpenGL 3.0 just released and it looks like a fundamental reworking of the system, *future updates will bring OpenGL 3.0 to life.

    OpenGL is damn fine, and just as good as DirectX, even on Windows. (Fewer conveniences at best.)

    Oh, and if you don't want to start a war about something, then don't say anything about it. Jeez.

    The only thing that matters when it comes between the two is; Do you want your software to be portable across Linux and Windows, or do you want to become a game programmer where DirectX has become the API of choice (OpenGL is still heavily used actually, WoW for example was written in OpenGL, and every game made cross-platform has to be written in OpenGL)?

    I'm not trying to engage in a war,
    You just *did engage in war, people and their delusions. /sigh

    Lol >:]
    Last edited by gltiich; 03-13-2009 at 01:34 PM.

  12. #12
    Registered User
    Join Date
    Apr 2004
    Location
    Ohio
    Posts
    147
    I was refering to OpenGL 1 & 2 which is bloated and dated. I have no opinions of OpenGL 3/3.1 as I have never used it so I have no basis for comparison.

    Note that I'm not saying OpenGL sucks -- not by any means. I'm simply saying that OpenGL 1 was developed in the early 90's and provides over 250 functions, most of which aren't used by real-time computer games (e.g., it's bloated). 2 didn't seem to do much to help that but 3, so far as I've read, seems to have gotten it onto the right track.

    I only prefer DirectX as it does appear to run a little faster on Windows. This is not to say that DirectX is better. Frankly I think both API's are great and as you stated it comes down to personal preference and target audience.

  13. #13
    Master Apprentice phantomotap's Avatar
    Join Date
    Jan 2008
    Posts
    5,108
    O_O

    You think OpenGL is bloated compared to DirectX?

    Even comparing OpenGL to just Direct3D, that is crazy.

    The IDirect3DDevice9 interface alone has around 125 functions. A few of the D3D structures have over 50 members. I think one of the DirectShow structures have over 100 members.

    Edit: If complexity is a problem there are endless wrappers to get you off the ground with DirectX so you can play with it without having to deal with COM and the Win32 API.

    Soma
    Last edited by phantomotap; 03-13-2009 at 02:22 PM.

  14. #14
    Registered User
    Join Date
    Apr 2004
    Location
    Ohio
    Posts
    147
    Why do you think I'm comparing the 'bloatedness' of OpenGL and DirectX? I never said anything about DirectX's problems (which are numerous). I simply said that the OpenGL 1/2 specifications were designed in the early 1990's, were old and provided way more functions than could ever be necessary for a typical computer game. Holy crap *gasp*, I have an opinion! Sue me!

    I simply said that I prefer to use DirectX on the Win32 platform and that it's not as complicated as it would at first seem. That's all. I don't understand why I'm getting jumped on for this. Looks to me like there are assumptions being made and reading between the lines when there's nothing there.

    Regardless, the point of this thread is not to argue about which API is better (frankly, I don't care -- the argument is as moot as Mac vs Windows) but instead is somebody asking for pointers as to where to head next.

    To that end --

    GameDev.net is a pretty good resource for developers of all skill levels. If you're interested in cross-platform development, API's like SDL are also really good resources.

  15. #15
    Deprecated Dae's Avatar
    Join Date
    Oct 2004
    Location
    Canada
    Posts
    1,034
    Quote Originally Posted by leeor_net View Post
    Why do you think I'm comparing the 'bloatedness' of OpenGL and DirectX?
    Probably because you started the sentence with DirectX, and finished with OpenGL is bloated.

    Quote Originally Posted by leeor_net View Post
    DirectX is far less complex than you might think. It's a matter of diving in and working with it. Get a book about DirectX programming, look up some tutorials, etc. OpenGL is also fun to play with but it's old and dated and bloated and... well I dont' want to start a war.
    Warning: Have doubt in anything I post.

    GCC 4.5, Boost 1.40, Code::Blocks 8.02, Ubuntu 9.10 010001000110000101100101

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Am I too late to learn programming?
    By maccat in forum A Brief History of Cprogramming.com
    Replies: 17
    Last Post: 02-17-2009, 08:49 AM
  2. Looking to learn C++
    By Fuzzy91 in forum C++ Programming
    Replies: 40
    Last Post: 04-13-2006, 02:38 AM
  3. You have to learn C in order to learn C++
    By gandalf_bar in forum A Brief History of Cprogramming.com
    Replies: 20
    Last Post: 07-16-2004, 10:33 AM
  4. Novice trying to learn C++
    By dead in forum C++ Programming
    Replies: 10
    Last Post: 12-01-2003, 09:25 PM
  5. Trying to learn guitar
    By Ben_Robotics in forum A Brief History of Cprogramming.com
    Replies: 12
    Last Post: 07-10-2003, 03:15 AM