Thread: Dear god where do i start >>

  1. #1
    Registered User
    Join Date
    Feb 2010
    Posts
    2

    Dear god where do i start >>

    I am going to begin programming and i have no idea where to start. I do have what you could call "experience" i suppose. I worked with(for those of you who are fimiliar with this) Warcraft 3's world editor, in which i begin slowly and then moved onto editing this game purely in a c-based scripting language they use called Jass. i've went over a few tutorials for c++ and i've seen a lot of things i already have a firm grasp on(altho i'm very rusty its been over a year) such as arrays, strings, functions, variables, and quite a few other things.(I think i understand pointers, that is, atleast what they do, but i can't for the life of me figure out exactly why i need them yet) I want to eventually move into programming fully 3d games with online capabilities, but thats a long term goal. i also want to program much smaller scale 2d street fighter style games with hand drawn sprites, but thats a medium term goal. I want to begin by doing text based games, or tic-tac-toe or minesweeper style games, thats my short term goal.

    Here is my problem though. I've read so much now I've come across the fact that well, people make games with openGL or direct3D(i know this is not exclusive and games can be made with C++). So what am i doing here? Are these completely different then C++? Should i start with C++ and move into openGL or Direct3D(to be honest i think i prefer Direct3D but i'm not 100% yet) is C++ the core and Direct3D/openGL to be figuritively considered an "addon" or "expansion" or are these programs standalone and have little or nothing in common with C? or perhaps like Jass(which i used in the WC3 world editor) they are based off of C, and were Designed in the spirit of it, and altho learning C would build my overall undrestanding, it would not directly apply to the scripting itself?

    Dear moderator god, i'm new here and i'm lost and confused, if i have posted in the inappropriate section i apologize and would like to be guided to the right location but...

    for the love of god someone help me out here i'm so confused.

  2. #2
    Registered User jeffcobb's Avatar
    Join Date
    Dec 2009
    Location
    Henderson, NV
    Posts
    875
    There will be as many opinions about this as there are coders but some things are inescapable:
    C++ is a programming language.
    OpenGL and Direct3D are libraries that C++ can use for graphics used in games. Which one of these you pick would depend on which platforms you wish to support. If your only desire is to support Windows then either will work. If you wish to support any other platforms (ranging from cell phones to Linux to Mac to Windows) then OpenGL would be your best bet as it is cross platform whereas Direct3d chains you to Microsoft-land. Personally, Direct3d would be limited my options too much but that is me and there are plenty of MS fans here who could care less if other platforms exist. I would rather target the largest market possible.

    In either case, pointers are something you will not only need to learn but I would wager that the better you learn them the less painful your debugging sessions will be. I don't know anything about Jass but if it didn't do much with pointers, its not like C mate...
    C/C++ Environment: GNU CC/Emacs
    Make system: CMake
    Debuggers: Valgrind/GDB

  3. #3
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by ProjectPink View Post
    I want to eventually move into programming fully 3d games with online capabilities, but thats a long term goal.
    Believe that. Years.

    If you are interested in games C++ is the most appropriate language for you to learn. You can use both openGL and DirectX with C/C++, in fact, that's probably the easiest language to use them in. OpenGL is technically "language neutral", but founded in C. I dunno about DirectX.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  4. #4
    Registered User
    Join Date
    Feb 2010
    Posts
    2
    thank you both for your responses. my main concern was answered, which is the fact that open gl/direct3d are both basically derived from C++ and my best bet would be to just stick with that first before moving on.

    and just a little sidenote here on jass. it's basically a toned down version of c. a lot of the same concepts and such, but as for the lack of pointers i think its because basically all jass does is modify a currently existing game. your still stuck with a lot of boundaries and things that they didn't want to be possible to modify, which is perhaps why it was left out. like i said i'm still fuzzy on pointers and thier uses so, i can't really explain to well, but from what i do know thus far, jass was basically C without pointers, and hell maybe there was pointers and i just know it by another name, or maybe there were there and i just never learned em lol.

    also i know about directX's limitations, but my logic on it was i believe most of the major gaming companies that make the games i play(pretty much just blizzard) require you to download the latest version of directX and my only real reasoning on choosing it was because hell i love thier games, and if they use it it can't be all bad.

    either way thank you for both your responses, i feel a lot better now, and atleast now i know where to start. and thats with learning C++ or C before i jump into opengl or Direct3d

  5. #5
    Registered User jeffcobb's Avatar
    Join Date
    Dec 2009
    Location
    Henderson, NV
    Posts
    875
    Go with what you like best; of the games that I play, ID is the maker of the best of them and they are OpenGL. Having developed for multiple platforms OpenGL was the only solution so maybe my views are slanted.
    C/C++ Environment: GNU CC/Emacs
    Make system: CMake
    Debuggers: Valgrind/GDB

  6. #6
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    iphone apps are obj-C openES (which is a pared down GL).

    And on the way: webGL (which is a version of openES I think).
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  7. #7
    Programming Wraith GReaper's Avatar
    Join Date
    Apr 2009
    Location
    Greece
    Posts
    2,739
    Quote Originally Posted by MK27 View Post
    OpenGL is technically "language neutral", but founded in C. I dunno about DirectX.
    Well, DirectX is based on COM interfaces, so you can't say it's 'language neutral'!

  8. #8
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Quote Originally Posted by Sipher
    Well, DirectX is based on COM interfaces, so you can't say it's 'language neutral'!
    What do you mean?
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  9. #9
    Programming Wraith GReaper's Avatar
    Join Date
    Apr 2009
    Location
    Greece
    Posts
    2,739
    I mean that it uses COM( Component Object Model ), to interact with your program.
    Microsoft code is so filled with this programming model that anyone who's new or even average on Windows programming won't understand what the heck is that code doing!!!

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. GNOME Desktop won't start (Mandriva)
    By psychopath in forum Tech Board
    Replies: 10
    Last Post: 07-19-2006, 01:21 PM
  2. WHEN to start game programming
    By mrcheesypants in forum Game Programming
    Replies: 18
    Last Post: 02-02-2006, 04:09 PM
  3. Need help from experts to start game programming
    By cader in forum Game Programming
    Replies: 8
    Last Post: 11-29-2005, 12:48 PM
  4. Where is a good place to start?!
    By bobthefish3 in forum Game Programming
    Replies: 1
    Last Post: 10-09-2001, 11:28 AM
  5. Foundations
    By mithrandir in forum A Brief History of Cprogramming.com
    Replies: 18
    Last Post: 10-05-2001, 02:18 PM