+ Reply to Thread
Results 1 to 13 of 13

Thread: Can I ask if I'm on the right path..?

  1. #1

    Default Can I ask if I'm on the right path..?

    Basically, I'm new to all of this.
    I'm trying to develop my first game, and I just want to make sure i'm on the right track.
    I've learned one hell of a lot of C++, i'm going to take a college course on it this fall just to make sure I'm solid on it, and I'm currently learning OpenGL straight from the OpenGL SuperBible (4th Edition, yes I know it's outdated), not to mention I'm also taking an Objective-C course for a new "Ipad Application Programming" class at the college. My previous experiences are only with DarkBasic and GameMaker. Is there anything else I should be working on? Any software to suggest? all i have is XCode and Bloodshed Dev-C++, so I don't need IDE's. I'm talking about modeling software and the likes.

    Any advise is appreciated, thank you :)

    **EDIT**

    I'm using Mac OSX Lion for my primary computer. I am dual booted with Win7 x64 Professional, however. Just don't throw programs that are linux only at me. ;)

  2. #2
    Senior Member
    Join Date
    May 2010
    Location
    Vancouver, BC
    Posts
    138

    Default

    My advice is to learn legacy-free OpenGL, which means OpenGL ES2.
    Or you can use Lion's new OpenGL 3.2 Core Profile.

    This gets rid of all the legacy stuff in OpenGL, no more matrix stack, no more archaics, only roll-your-own shaders with VAO and VBO.
    It will mean a little more work for you, as you need to do your own model-view-projection math.
    But you will be closer to how the GPU actually works, and it will be the future.
    Also it is a lot more flexible, and you will learn a lot more about 3D graphics as all the math falls on the application programmer.

    About C++, yes it is pretty much industry standard.
    But frankly, it is a pretty ugly language. It is so easy to get your self into deep trouble with it.
    Just read Scott Meyer's 'more effective c++' book to get an idea on how easy it is to screw up with C++.
    C++ and STL should only be used by experts, as average programmers will cut themselves with it.
    You'll be amazed on how many C++ programmers do not know how to delete an element while iterating the container e.g.
    Also, I have seen OO gone awry in big commercial game engines. Often OO can harm you.
    Noel Lopis has an excellent article on Data Oriented programming and Structures-of-Arrays vs Arrays-of-Structures. His advice: program everything in your game as you would program a particle system (SoA). Data Oriented programming may be less of an issue in smaller code bases for casual games e.g.

    Personally, I prefer C or Objective-C. The former is more portable, the latter I would only use if iOS and OSX are your target platforms.

    Bram

  3. #3
    Senior Member
    Join Date
    Dec 2004
    Posts
    1,085

    Default

    my advice. find an engine that will do you for right now and start putting out games. don't mess with opengl and all the lower level stuff right now. you just don't need to.

  4. #4
    Senior Member
    Join Date
    Nov 2009
    Location
    Brisbane, QLD, Australia
    Posts
    191

    Default

    "Bloodshed Dev-C++"

    Why.... that is so very very out dated. If you need something for windows get Visual C++ Express, or even something like Eclipse. Dev C++ was old 5 years ago and has no support anymore.

    Language is already covered, so I'll make a suggestion for art stuffs. Learn about the basics (color theory, how to draw with your hands etc..) then get yourself a copy of Gimp and Blender and start doing some online tutorials (lots of good ones for the new blender... I actually like the newest version). Even if it's only to get the basics down so you understand what you will be expecting of an artist. Don't stress on having everything perfect, just make some basic items so you can get on creating simple example program or 2.

    After that make some games, just keep it heaps simple. By the time you're done that you should know what to do to find yourself some team mates to do some more advanced stuff. Just don't go build an engine, or try and do every little thing yourself. If you just keep your head about yourself, you can design things in such a way that say you want to replace StandardSoundLib2000 with something custom you can just drop in your custom code and get something running but there is nothing wrong with middle ware, it saves everybody time.
    Benjamin Jarvinen
    ------------------------------------
    "Never let your morals get in the way of doing what's right"

  5. #5
    Senior Member
    Join Date
    Mar 2008
    Location
    Gainesville, Florida
    Posts
    794

    Cool

    Speaking as a C++ expert....

    The first thing that strikes me is that you're learning C++ and then turning around and using OpenGL. OpenGL is a state machine written-with and designed-for C.

    If you were signing up at college for a programming class, I would recommend an Algorithms & Data Structures class. That usually has one prerequisite class in front of it, but it fully explains OO programming in C (without C++). That will help out with understanding how OpenGL works (state machines, ADTs) and you'll learn some basic algorithms.

    Objective-C is a superset of C (not C++). It has a lot of features that C++ has, and the newer compilers can compile both Obj-C and C++ in the same file, but Obj-C is still C orientated. I used >this book to learn Objective-C<. I didn't buy it, I sat down at the bookstore and read it.

    If you're learning Objective-C and OpenGL, then you should focus on making an iPhone game. Download XCode 4 from the App Store ($4.99). It comes with the iOS SDK so you can build and test on the iPhone/iPad simulators.

    Also, consider buying this book: The Business of iPhone App Development. Read it all the way through before starting a single line of code. Then, go back and do the market research before starting to design/code your game.

    If you're making an iPhone game, written in Objective-C and you want to follow BMC's advice, then look into Cocos2D. That bypasses a lot of the work to get a game up and running from the OpenGL level.
    -James
    Haunted Hotel I, Haunted Hotel II, Jane Croft

  6. #6
    Senior Member
    Join Date
    Jul 2004
    Location
    Isle of Wight, UK
    Posts
    3,773

    Default

    +1 for all of the above.
    Regards,
    Paul Johnson

    [Great BIG War Game: iOS | Android] [Great Little War Game: iOS | Android] [Fruit Blitz: iOS | Android] [Yachty Deluxe: iOS | Android]

  7. #7
    Senior Member
    Join Date
    Nov 2004
    Posts
    2,432

    Default

    EDIT: Nevermind, didn't read the original post properly.
    Last edited by Nexic; 07-31-2011 at 02:20 AM.

  8. #8
    Senior Member
    Join Date
    May 2005
    Location
    Warsaw, Poland
    Posts
    2,707

    Default

    Quote Originally Posted by Bram View Post
    My advice is to learn legacy-free OpenGL, which means OpenGL ES2.
    Or you can use Lion's new OpenGL 3.2 Core Profile.
    Keep in mind that anything before OpenGL 3.x does not work in pre-Lion Mac OS X machines (i'm sure there are many out there, including mine :-P) and might not work properly in Lion Mac OS X machines with some configurations (according to opengl.org forum posts, some people found that with some cards only GLSL 1.2 is supported even if OpenGL 3.2 is reported).

    Also with OpenGL 3.x+ you lose support for older devices not supporting this, such as -for example- many netbooks (like the one i'm using right now which supports OpenGL 2.1 with GLSL 1.2).

    If you think these are important for your games, you should either avoid GL3+ or write separate codepaths. Mac OS X Lion makes this harder, though, since it only seems to support the "Core" profile of OpenGL 3.2 which means that you cannot mix GL1.x/2.x and GL3.2+ code (as you can do in other platforms which have the compatibility profile).

    Basically this means that if you want to cover a wide range of GPUs you should avoid GL3 (or avoid using GL directly and abstract out your graphics API). At this point there is little you cannot do with GL1.x/2.x APIs that can be done with GL3 and, honestly, if GL2 is good for RAGE, HL2, Portal 2, BioShock, etc i think it'll be good for what you want to do :-P.

  9. #9
    Member
    Join Date
    Jan 2011
    Location
    Scotland
    Posts
    50

    Default

    If you were signing up at college for a programming class, I would recommend an Algorithms & Data Structures class. That usually has one prerequisite class in front of it, but it fully explains OO programming in C (without C++). That will help out with understanding how OpenGL works (state machines, ADTs) and you'll learn some basic algorithms.
    In my experience most of these classes are now taught mostly with Java. Not that it matters really as the theory behind it is much more important than the language itself.

  10. #10
    Senior Member
    Join Date
    Mar 2008
    Location
    Gainesville, Florida
    Posts
    794

    Default

    Quote Originally Posted by HL706 View Post
    In my experience most of these classes are now taught mostly with Java. Not that it matters really as the theory behind it is much more important than the language itself.
    I completely agree about the theory more important than the language. The upside to Java is that it has single inheritance just like Objective-C does. That's really where the similarity ends.
    -James
    Haunted Hotel I, Haunted Hotel II, Jane Croft

  11. #11
    Senior Member
    Join Date
    May 2005
    Location
    Warsaw, Poland
    Posts
    2,707

    Default

    Quote Originally Posted by Bad Sector View Post
    Also with OpenGL 3.x+ you lose support for older devices not supporting this, such as -for example- many netbooks (like the one i'm using right now which supports OpenGL 2.1 with GLSL 1.2).
    Small correction here: apparently there was an issue with my configuration (probably caused while i was getting rid of Ubuntu's default abysmally slow Unity interface) and the netbook used the Mesa software rasterizer. I realized that just a few moments ago when i tried to play some game and i got a slideshow :-P. with hardware acceleration enabled i only have OpenGL 1.4 without any support for GLSL.

  12. #12

    Default

    Thank you all for the great replies :)

    I'm learning OpenGL since DirectX isn't compatible with Mac OS, and I want something that can bend either to windows or Mac. OpenGL seems to be the best way to go.

    C++ I learned in my spare time, and Objective-C is something I'm learning at school. I plan to program for the iPhone; however I don't plan for that to be my main platform. Not to mention, on the second class meeting we had our instructor explicitly told us not to go using other software that will "make programming simple." On the other hand, he told us to go download the Stanford Podcasts on iPhone App Development. Also, after DarkBasic, I'm pretty sure I'm not touching anything similar to the whole: "make 3d graphics with one line of code!" sort of thing.

    I've been using Blender, yet I have no idea what GIMP is. I've heard of it, but I haven't used it. I've heard that there's a way to use .3DS or .OBJ files in OpenGL but I have no idea where to start with that, nor do I have any idea where to start with animations and whatnot. On the other hand, none of that is entirely needed to be explained to me since I'm downloading a fairly large number of youtube tutorials to grant me knowledge.

  13. #13

    Default

    erg. double post. my bad.

+ Reply to Thread

Posting Permissions

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