Sign in to follow this  
Koosmono

New to game programming, Looking for guidance

Recommended Posts

Koosmono    102
Hello GameDev, Before I ask my question I'll begin with a bit of background. I'm a junior in college and a computer science major. the Languages I've learned consist of Java, Scheme, and Ada. I feel I am best versed in Java, but I have always had a desire to learn C++. Anyway, game design has long been an interest of mine and I've done a few very small projects in Java. After reading a lot the past few days I've become very interested in beginning with a tetris type game and then moving on from there, I feel I understand the benefits from starting small which are represented in some of the articles I've read on this site. Now my main question has become about which books to choose. I feel like I've exhausted the lists of game programming books, reading reviews and descriptions, and I'm having trouble deciding. The beginners list on this site is helpful, but I feel it may be a bit outdated. I think my chosen path will most likely be C++ but I am unsure from there (unsure about APIs DirectX etc.). I plan to learn C++ prior to designing games, but I am interested in peoples suggestions on where to begin. I was thinking maybe a book about programming games with C++ and DirectX, but honestly I have no clue. Lastly, I am sorry if this topic has been covered multiple times. I read through a lot looking for some direction, but in the end I felt this could be my biggest help. Any suggestions, or even personal experiences would be extremely appreciated. Thank you!

Share this post


Link to post
Share on other sites
hiigara    108
C++ and DirectX?
Frank D. Luna
Introduction to 3D Game Programming with DirectX 9.0c: A Shader Approach

There is also a DirectX 10 version of this book.

Share this post


Link to post
Share on other sites
Koosmono    102
Thanks for the quick reply! I guess when I said C++ and DirectX I was mainly referring to what I felt seemed to be the most suggested path when starting game programming, is this true?

Also, this book looks great and the reviews are mainly very positive. Would you suggest beginning with 3D though? I guess I thought it might be simpler to begin with 2D and slowly work my way into 3D. Again thank you for your help!

Share this post


Link to post
Share on other sites
Gamer Gamester    140
You (of course) have many different options.

There's the road I took:
Spent years studying before even attempting a simple game. Most of this studying involved C++. Am I happy about my choice? Mostly... I feel I got a lot of the hard learning out of the way, and created a good knowledge foundation for myself, though I wish I had gotten more experience along the way as well (finally got this after my 'study period', though I still do a lot of studying currently -- it's good for you).

Or there's the road I'd take if I were to do it again:
I'd make a 'simple game' (your tetris idea would do fine) using a 'simple language' (something like Python perhaps), with some 'simple-to-use libraries' to handle the lower-level stuff for you (maybe PyGame, though I don't have experience with it). This will give you a nice perspective: you'll learn all the little details you need to concern yourself with when making a game and more importantly how long everything takes (it's usually always much more time than initially imagined -- you'll learn the importance of development efficiency and why choosing good libraries [rather than doing everything yourself] is so useful). And in the meantime I'd be studying C++, OpenGL, and other deep topics on the side.

Share this post


Link to post
Share on other sites
hiigara    108
I agree with Gamer Gamester that you should start with a simple Game.
But you do not need to learn any intermediate Languages, since you already know how to program in Java. Go straight to C++.
C++ can be used by a beginner in a simple way, like plain C.
I would start with a Text Based Game in C++ and Win32. An RPG or Sports Management. Then a 2D graphical Game, with either SDL or still Win32.
Then you can jump to DirectX. The Frank D. Luna at the moment will just be a bed read. It's a good Book to have even if you are not going to try the Code now.
What type of game you want to create ultimately?

Share this post


Link to post
Share on other sites
Koosmono    102
Thank you Gamer Gamester, I think I know what you mean by getting down the basics. I guess I never thought of C++ as being so expansive and difficult to learn compared to other languages like Java. So you don't think I could start small in a similar way with C++? Also, do you have any suggestions as far as guides or books to get started with this. Thank you for your help and for sharing your experience, reading that helped.

Share this post


Link to post
Share on other sites
Koosmono    102
Thank you Hiigara, that does sound like a great start. This narrows it down a lot for me and I think it will be much easier for me to choose a book and get myself going. I guess my only remaining question is if you have any suggestions on which book or where to begin with this? Thanks again Hiigara! I think I'm figuring out where to get started.

Share this post


Link to post
Share on other sites
Gamer Gamester    140
You can certainly use C++ to make a simple game. But along with it you'll want to use a good library like SDL or SFML to handle most of the 'dirty work'. Since this first game is simple, and your library handles all the low-level stuff, you'll mostly be handling game logic. That's the thing: a scripting language (like Python or Lua)is often better suited for the game logic (high-level) stuff anyway.

If you've programmed in Java you could probably pick up Python quickly and be making your first game tomorrow. Check out this neat little tutorial.

I don't think C++ is really as hard as so many people say. But Python is going to be more efficient in terms of development-time. The idea is to complete your simple game as quickly as possible. You want to learn all the little lessons that come from completing a game, lessons that are independent of which language you use.

Share this post


Link to post
Share on other sites
Koosmono    102
Thanks Gamer Gamester, I see your point and that tutorial looks like a great place to start. The second I get some spare time(next week is finals, and I've got programming projects that have to be done then.... sigh)I'm going to dig right into that.

Also, Thanks Brain, that book has a lot of good reviews and sounds interesting. I might have to get my hands on it.

Share this post


Link to post
Share on other sites
Seol    146
If you know Java, and you're just setting out: why not use Java? Java2D is more than powerful and versatile enough for anyone's first few projects, and the principles you'd use in making a game are largely the same across languages. This way, you've got one less hurdle in your way.

Share this post


Link to post
Share on other sites
Quasimojo    279
While I don't discount the experience one would get from using a faster-track language for their first game, my personal opinion is that if you have a goal of using C++, you may as well start with that. Your first games won't likely be anything that will suffer much from the steeper learning curve of C++. Actually, the curve may not be all that much steeper for the simpler games.

Any time you spend learning PyGame, LUA or the like is time you're not spending becoming familiar with C++.

At some point I highly recommend reading the book, Head First Design Patterns. It is written from a Java perspective (with which you are already familiar), but the information applies to any object oriented language.

Share this post


Link to post
Share on other sites
Tom Sloper    16040
Quote:
Original post by Quasimojo
Any time you spend learning PyGame, LUA or the like is time you're not spending becoming familiar with C++.

So is sleeping and eating. Any time you spend learning things other than C++ is time you're spending expanding your knowledge in useful ways.

Share this post


Link to post
Share on other sites
Quasimojo    279
Quote:
Original post by Tom Sloper
Quote:
Original post by Quasimojo
Any time you spend learning PyGame, LUA or the like is time you're not spending becoming familiar with C++.

So is sleeping and eating. Any time you spend learning things other than C++ is time you're spending expanding your knowledge in useful ways.


Except things like sleeping and eating are not optional.

Of course expanding your knowledge in useful ways is a good thing. I'm sure PyGame and LUA are fine languages, and more knowledge is always better. However, that doesn't make them prerequisites to what you're ultimately trying to accomplish. If you're wanting to be a C++ programmer, start learning C++. If I wanted to learn to speak Chinese, I wouldn't start with Korean just because it may be somewhat related and perhaps easier to learn (substitute more closely related languages as appropriate).

Anyway, that's just my take on it. YMMV.

[Edited by - Quasimojo on May 2, 2010 8:38:56 AM]

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