going in circles?

Started by
24 comments, last by Megafox 18 years, 5 months ago
Hello- I am about halfway through "Beginning C++ Game Programming" by Michael Dawson (im learning about arrays as of now). Looking ahead in the book, it has become apparent to me that i will not be making any "full-fledged" games (i.e. everything is text-based). What worries me is that by the time i finish the book I won't even know where to begin in terms of getting graphics/sound/animation into a game, or how to use it. So, my question is, are there other books out there that I should read after I finish this one? What should be my next step after finishing this book? Thanks in advance for your help...! -Lucas (by the way, the last chapter in the book is about inheritance and polymorphism, telling you where i will be at the end of my current study)
Advertisement
My post is probably not helpfull however, yes there are other books that you should read after you finish this book. The type of book you'll need you'll understand better once you finish reading the book you're reading.

Inheritance and polymorphism is the end?

Yegods.

Yes, there's many more books available to you. A decent C++ book would be a good start, maybe 'The C++ Standard Library' by Josuttis...

[in hindsight] I'd worry about learning the language first, and then some design/computer science before worrying about games, let alone pretty-shiny games.
There's a lot you can do with text-based programs. In fact, nearly everything can be done, short of actually getting stuff on the screen. I know that sounds stupid, but too often people assume that once they learn how to display 3D graphics, that they'll be able to discard a lot of what they've learned, but this isn't true. You still have to know the math to determine exactly where everything goes, even if you make the computer do a lot of the actual rendering. That said, you have a lot of possible choices now. You can go and write your own rendering engine to see how it works (but it probably won't be applicable to any real projects, because it won't harness your GPU), you can teach yourself Direct3D or OpenGL (two API's; they use the GPU but still give you about as much control as they can, you'll have to choose one), or you can use a higher-level engine like Ogre. It depends on what you want to do as soon as you're done. Eventually, you'll probably want to be able to do it in as many ways as possible.
-~-The Cow of Darkness-~-
Yes. A brief overview:

OpenGL and DirectX are graphics APIs for rendering rasterized triangles. What this means is that they do 3D graphics. They can be bound with several other APIs to make them easier to use.

For beginning with graphics, I would recommend SDL. SDL is a simple, easy-to-use API that has support for graphics, sound, threading, and has lots of add-ons that give it even more functionality. SDL is available from libsdl.org. SDL also supports use with OpenGL. It is fit for use in commercial games, and the game Civilization 4 used it for their game engine, I hear.

If you don't like SDL, another alternative is Allegro. I haven't used it, but I think it fulfills a similar purpose. Other posters can elaborate.

All of the above are free, very well used, and just rock-solid. I would suggest starting with SDL or Allegro, and going from there.
my siteGenius is 1% inspiration and 99% perspiration
Even before you have completely finished that book, try checking out these tutorials:

http://cone3d.gamedev.net/cgi-bin/index.pl
http://www.aaroncox.net/tutorials/2dtutorials/
http://sol.gfxile.net/

These will teach you how to do 2D graphics programming using SDL, a common graphics library. While a book is not necessary to learn SDL, it may help. I, personnally, have not read any SDL books, so I can't make any recommendations.

Check out nehe.gamedev.net for OpenGL tutorials, once your comfortable with SDL.
Hello all, and thank you so much for your quick replies!

@Telastyn: Im guessing polymorphism isn't that far in then...? =P
also, i think i might've been misunderstood, i'm not planning to make any "pretty-shiny" games for a while. My main concern is being able to do anything at all using graphics (as in, after finishing this book, i wouldn't even be able to make a graphical tic-tac-toe :-\)

@cowsarenotevil: thanks for your reply. I'm not exactly clear on all of what you said, but i think its safe to assume thats a long way off for me? =-P

@silverphyre673: what exactly is SDL? Is it similar to iostream? (in that it is a library of executables?). What exactly does SDL entail, and what sort of interface does it use? Do you simply write in C++ using different commands enabled by SDL?

@Ezbez: thanks for the links! I appreciate it. School has been very time consuming lately (please don't judge me, i'm still in highschool haha). Whenever I get some more time I will check those out.....!

Once again, I thank you all for your quick replies...!
This is, if I may say, one of the most useful forums I have ever used.

-Lucas
Quote:Original post by lucasloredo
@cowsarenotevil: thanks for your reply. I'm not exactly clear on all of what you said, but i think its safe to assume thats a long way off for me? =-P


It really doesn't need to be. SDL is an example of a higher-level library. It just uses your video card's 2D functions (or 3D if you use it with OpenGL). I've not used it, so I don't know the specifics, but it seems like a good choice. Using SDL with OpenGL is not much different from using OpenGL with the standard Windows (or whatever you use) setup, but it's more flexible and probably a better solution. But you might also want to consider Direct3D (Windows only) or, like I mentioned, Ogre and the like (Ogre is a 3D engine that is API independent-- it can use OpenGL or Direct3D). There's no need to learn 2D graphics first, either, provided you're willing to learn a little bit more math to do the 3D. 3D definitely needs a basis you can get from writing text-only programs, but there's not as much foundation that you'll get from using 2D graphics.


EDIT: I can use the quote tag. Really.
-~-The Cow of Darkness-~-
Yeah, learn the language first, then move on to actual game programming. I would pick up Game Coding Complete 2nd Edition. I loved it. Tricks of The 3D Game Programming Gurus was also a great book if you're wanting to get into 3D. Although books are awesome you'll want to scour websites like GameDev and Gamasutra to get specific topics. And always look over the chapters before you buy the book to make sure it goes over what you're looking for. There are so many resources on the web for you to use. Once you learn a language Google things your interested learning, like AI, images, DX, OpenGL etc. There is a link somewhere on GDNet of tons of file formats, which will be very useful.
thanks again for your replies

@I_smell_tuna: is there a certain level one should be at before attempting to make a game? Or, in my case, what would you suggest I understand before I move on to the books you mentioned?


On a general note, C++ is sometimes a bit difficult for me to fully understand. I can do the commands and statements, and understand when to use certain things (for the most part) but its hard for me to fully grasp something that i'm learning without knowing why its happening. My mind (and i'm assuming a lot of your minds as well) works best when i know what's happening behind the scenes.

I would guess that you guys would suggest taking a computer science course... however, being a sophomore in highschool limits my possibilities. Would you suggest a summer course in said subject? I live in Austin, TX and have easy access to the University of Texas.... are there any good programs there that you guys know of?

thanks again,
Lucas

This topic is closed to new replies.

Advertisement