Sign in to follow this  
craksy

where to start?

Recommended Posts

ok i am using C++, and i realy dont know where to start with 3D game development! i have been programming for a while, and i have done some 2D games, so i guess i know some of the basics. i think ill try openGL, but i got some questions about that: should i use GLUT? its mentioned in many tutorials, but i dont know if i should use it? where do i download the lastest version of openGL for windows? where should i start learning? if you dont reconmend openGL, what would you then recomend? i hope you can help me! in advance: Thanks xD

Share this post


Link to post
Share on other sites
Hi, my situation is almost the same like yours. I spent the past 2 months playing around with SDL as my first step out of C++. I am now stuck between a choice of going into openGL or directx. Next question that came in was should i start learning the graphics api using a library(GLUT, OGRE) or directly use the API for my code.

Hope any more experienced programmers can help and share.

Share this post


Link to post
Share on other sites
I personally use OpenGL most often, and I think it's a good choice. Not that DirectX is bad at all, but it can be a little byzantine to newcomers.

glut and SDL are both good libraries that replace the OS windowing API and handle input and other common tasks. There are a ton of tutorials for both, and either one is a good choice. They are definitely better than kludging through the windowing and message system yourself, and help you to create portable code.

OpenGL, on Windows, is available through DirectX. Just download the DirectX SDK from Microsoft, and it will be in there too.

Share this post


Link to post
Share on other sites
I am kinda developing a basic 3D game engine and I chose OpenGL with SDL since they are portable and that is my goal kinda. Also, maybe look around sourceforge.net/ for some basic open source OpenGL engines. I learn by looking at other peoples code usually lol. There are a lot of OpenGL tutorials on the internet though, such as http://nehe.gamedev.net/

Share this post


Link to post
Share on other sites
You don't need to "download OpenGL" if you're on windows. Pretty much all windows compilers ship with the necessary headers and libraries.

Share this post


Link to post
Share on other sites
it worked, and i have already made some spinning cubes (how exciting -_- )but i dont think ill need the drawing verry much!
i'd rather load models into the program and render them!

where are there tutorials on that? and what models does open gl support? .X ?

Share this post


Link to post
Share on other sites
Quote:
Original post by craksy
it worked, and i have already made some spinning cubes (how exciting -_- )but i dont think ill need the drawing verry much!
i'd rather load models into the program and render them!

where are there tutorials on that? and what models does open gl support? .X ?


Well, OpenGL doesn't support or not support any particular model format. You'll have to find another library or write the routine yourself. There's a tutorial on NeHe on how to load MilkShape3D models. There's a ton of tutorials on how to use MD2 and similar models. A friend, when just starting out, learned how to parse and load OBJ files in a very short time.

So, essentially, you can use any format you want, and there's probably somebody who already did it and is ready to tell you how or give you code.

The better question is, what modeler do you use? What's its native format, and what formats does it support?

Share this post


Link to post
Share on other sites
If you have no experience with OpenGL, use a toolkit, like for example GLFW. The most painful thing with OpenGL is to actually get a window up and running, and to initialise all extensions, etc. A toolkit will do that for you.

SDL will certainly work too, but I prefer GLFW for its simplicity. GLFW lets you make "a window with OpenGL" and has some functions for mouse and keyboard, and that's it.
My first try at GLFW was getting a working program within 2 minutes after downloading the sources, which is nice.

SDL can do an awful lot more for you (network, images, fonts, virtually everything), but that makes it a lot more complex too. SDL got me asking "what now?" the first time I saw it. Your mileage may vary, of course.

GLUT is old and unmaintained (there are a few projects such as freeglut that reimplement it, though), so while it technically works, I wouldn't consider it when doing a fresh start.

The Phantom on this forum has written a toolkit of his own too (oglwfw.sourceforge.net), which is even more bare bones than GLFW. I haven't tried it because GLFW works for me, but it looks nice.

Share this post


Link to post
Share on other sites
Quote:
Original post by Hnefi
You don't need to "download OpenGL" if you're on windows. Pretty much all windows compilers ship with the necessary headers and libraries.


Note: Visual Stuios 2005 Express Edition doesn't. You'll have to download the platform SDK separately from MSDN if you're using that. 2008 does.

Share this post


Link to post
Share on other sites
Quote:
Original post by samoth
GLUT is old and unmaintained (there are a few projects such as freeglut that reimplement it, though), so while it technically works, I wouldn't consider it when doing a fresh start.


While it's been some time since GLUT 3.7 has been released, it's stable and functional. It's not meant to be a sophisticated catch-all, but "well-suited to learning OpenGL and developing simple OpenGL applications," which is just what someone starting out needs.

He already has a spinning cube, after all! :)

One problem with GLFW is the FW part; it's not portable, and the OP has stated that as one of his goals.

I still use GLUT for prototyping and simple tools and tests, and when I need more functionality, I use something else.

Share this post


Link to post
Share on other sites
Quote:
Original post by erissian
One problem with GLFW is the FW part; it's not portable, and the OP has stated that as one of his goals.
Um... you do realize it supports Windows, Linux, IRIX , FreeBSD, Solaris/SunOS, QNX, and Mac OS X, don't you?
I don't know, but for me, that's already more portable than what I need :)

But yes, you're right that one can surely use GLUT for prototyping, and it certainly does work.
Still, it wouldn't be the toolkit of my choice if I was to start anew. Also, I'd rather learn one thing that works, that's simple, and that's maintained, instead of two things, one for prototyping and one for the real stuff.

Actually I had expected one of the many SDL users to stand up and ask "why not SDL, I use it for everything". Same answer, it is not what I personally would choose. Doesn't mean it's bad.
SDL has been used for thousands of great projects, it is a million times more powerful than the other toolkits discussed.
However, the thing I would choose would be as simple as possible with as little features as possible, getting you up and running in no time, without having to learn anything.

Of course, everyone is free to do as he likes, and in the end, the tool that got you running is the right tool :)

Share this post


Link to post
Share on other sites
exept from nehe, where can i find glut tutorials?
i have played around with the code on nehe, changing stuff, adding stuff etc, but i would like to learn something closer to actual game making.

fx. a tutorial on how to load in models, and such..

Share this post


Link to post
Share on other sites
Quote:
Original post by samoth
Quote:
Original post by erissian
One problem with GLFW is the FW part; it's not portable, and the OP has stated that as one of his goals.
Um... you do realize it supports Windows, Linux, IRIX , FreeBSD, Solaris/SunOS, QNX, and Mac OS X, don't you?
I don't know, but for me, that's already more portable than what


Oh hell; I was thinking of GLW, which was a mess to boot.

Share this post


Link to post
Share on other sites
If you're not planning to do games for linux or macos or other os' than windows , go for directx.

Opengl can be somewhat harder to understand than directx due to the motherlode of extensions and other esotheric features that are not used in games, but they appear to be. Not to mention the VERY flexible vertex declarations that can confuse a newb. And the really old architecture... reverse compatibility has it's price...

So either go for opengl es if you want to develop games for ps3/wii/etc or stick to dx for windows as it is really good.

And no... i don't recomment using glut for anything other than basic prototyping.(that is if you want to stick to opengl... and again.. i don't recommend it.)

So .. go for dx.. it has a really nifty extension which does a lot of things you would have a somewhat hard time to do without it, or at least it would be a lot more work.

And, for practice.. i recommend doing your own framework.


But don't take my word for it .. research research research. See what api defines your needs best, cos if you want to do visualization applications, then ogl is the way to go, but if you want to do windows games, dx is better.


ps. oh.. and partly offtopic... what's the best 3d model format? like... it's so frustrating..

Share this post


Link to post
Share on other sites
Quote:
Original post by craksy
exept from nehe, where can i find glut tutorials?
i have played around with the code on nehe, changing stuff, adding stuff etc, but i would like to learn something closer to actual game making.

fx. a tutorial on how to load in models, and such..


That's a ton right there. What kind of effects? What kind of models?

Also, you may want to peruse the Articles & Resources section of this site for information on games in general.

GLUT is mostly a little windowing and some input. OpenGL is where all the rendering happens; and it will be a long, long time before you master it.

That being said, you should really work through the NeHe tutorials, or there's also Lighthouse, and there's a ton more. Check the sticky in the "For Beginners" forum.

If you're interested in more specific subjects, there are tutorials and articles about most of them, I'm sure.

A good place to start is here.

Share this post


Link to post
Share on other sites
Quote:
Original post by Overburn
If you're not planning to do games for linux or macos or other os' than windows , go for directx.

Opengl can be somewhat harder to understand than directx due to the motherlode of extensions and other esotheric features that are not used in games, but they appear to be. Not to mention the VERY flexible vertex declarations that can confuse a newb. And the really old architecture... reverse compatibility has it's price...


Extensions won't be used as a beginner for some time. No need to worry about those. I'm not sure what you're exactly referring to when you say "VERY flexible vertex declarations", but I'm sure that OpenGL's immediate mode doesn't have this problem and is what almost everyone starts off with as a beginner.

Besides, the OP stated that he wanted portable libraries.

Share this post


Link to post
Share on other sites
ok then... a couple of hours wasted -_-
but how do i get started with DirectX?
i would just like to get started quick

Share this post


Link to post
Share on other sites
For directx I started at www.directxtutorial.com. I had taken a course in computer graphics and openGL so I just needed the how-to-start stuff, but the directx tutorial is IMO a great place to start since it teaches you the minimum of what you need to start dx.

After that you can probably create a game if you'd like, but I'd suggest getting a book. I recently bought "Introduction to 3D Game Programming with Direct X 9.0c: A Shader Approach" and it seemes great. It explains all the things the tutorial only skimmed, gives code samples and is up to date with shaders.

You could start with the/a book of course.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this