Yet another "What do I do?" post...

Started by
8 comments, last by Telastyn 17 years, 11 months ago
I guess it's time for what I want to call my mid-C++ book, what next post. No I'm not saying that I'm stopping halfway to ask what I should focus on C++ wise, but rather well, everything else wise. Let me explain, after reading other books (C++ for dummies, C++ in easy steps) in which I was dissatisfied, I picked up "Beginning Game Programming In C++" because of the good user reviews on this site. Before I continue let me give you my "background story". My goal is not to, make a game fast. My goal is not even to make a good game. My goal is to learn, making a game will only aid in that process. Like many here, I'm just a 16 year old hoping to become a game programmer. While I do know about, C#, Python, Lisp, and all the other languages used to only create programs, but to create games as well, I always assumed it would be best to dive into C++ as a first (aside from some DarkBasic experience) language. It seems relatively easy so far, but I'm not foolish enough to think that it won't get much harder logic wise. I guess my first question is, with my goals in mind, what is the right thing to do? Which language should I learn first? Am I setting myself up for frustration with C++? My second question: If I do end up continuing with C++, what’s after the basics? Win32? SDL? openGL/DirectX (I'm assuming not). If you need me to explain something further, don’t hesitate to ask. Thanks a bunch in advance.
Advertisement
Quote:Original post by kevtimc
, C#, Python, Lisp, and all the other languages used to only create programs, but to create games as well,


This was a stupid thing to say, what I meant by this was something along the lines of great Win32 programs and games.
Quote:
I guess my first question is, with my goals in mind, what is the right thing to do? Which language should I learn first? Am I setting myself up for frustration with C++?

My second question: If I do end up continuing with C++, what’s after the basics? Win32? SDL? openGL/DirectX (I'm assuming not). If you need me to explain something further, don’t hesitate to ask. Thanks a bunch in advance.

Go and try out the game accompany with this book; then u know how great the book is . Then u know what differentiate pro and novice. Then u will never be frustrated with C++.
Quote:Original post by kevtimc
Which language should I learn first? Am I setting myself up for frustration with C++?

It doesn't really matter which language you learn first. Learning to program is the difficult thing, once you've done that it's significantly easier to pick up new programming languages (excepting of course languages that are extremely different). C++ is an exceptable choice as a first programming language, and plenty of people manage to learn it. This doesn't mean it's the only option, and it may not neccesarily be the best option for you.

Since you've already got the book, I'd recommend continuing with C++ for now and seeing how you go with it, you can always try a different language if you're still having trouble or just want to try something different later on. If you want some additional supplemental material you could also try reading the tutorials at www.cprogramming.com and the freely available Thinking in C++ 2nd Edition, by Bruce Eckel.

If you wanted to try a different language, Python is an excellent choice, and the freely availableHow To Think Like A Computer Scientist and Dive Into Python make excellent texts.

Quote:My second question: If I do end up continuing with C++, what’s after the basics? Win32? SDL? openGL/DirectX (I'm assuming not).

Take your pick. Personally I'd recommend SDL as a good choice, as it can be a bit more beginner friendly than the other options listed there, and can be used with OpenGL if desired. Allegro is also a potential option. Again, there's no best option, and which will suit you is mostly a matter of personal preference. Once you get to this stage you could even consider trying a little of each to get an idea of which might be suitable for you.

- Jason Astle-Adams

Excellent response, I was think of going into SDL as well. I guess I'll also continue with C++ for now.
Quote:Original post by gan
Quote:
I guess my first question is, with my goals in mind, what is the right thing to do? Which language should I learn first? Am I setting myself up for frustration with C++?

My second question: If I do end up continuing with C++, what’s after the basics? Win32? SDL? openGL/DirectX (I'm assuming not). If you need me to explain something further, don’t hesitate to ask. Thanks a bunch in advance.

Go and try out the game accompany with this book; then u know how great the book is . Then u know what differentiate pro and novice. Then u will never be frustrated with C++.


I think a full on FPS is out of my league, but thanks, I'll keep it in mind when I get much better.
Quote:
what’s after the basics?


Why, the intermediates...

Seriously, learn the language thoroughly first. Don't escew inheritance, templates, the Standard Library or even a common library like Boost because you think you know 'enough'. More tools means you'll have an easier time solving problems.

Along the way you'll realise what an asset it is to learn/practice application design, which will generally lead to Design Patterns and similar theory. That will help you greatly, since even 'simple' games are fairly large constructs, requiring effective design to build them acceptably.

Then you'll be in a good position to put the rendering APIs you mentioned to good use. Sure, you can probably learn them earlier, but [imo] not well. This applies similarly to other languages if you don't want to learn via C++ (which I'd perhaps not recommend) though perhaps less so since most other languages lack some of the nuances and pitfalls C++ has.
Quote:Original post by Telastyn
Quote:
what’s after the basics?


Why, the intermediates...

Seriously, learn the language thoroughly first. Don't escew inheritance, templates, the Standard Library or even a common library like Boost because you think you know 'enough'. More tools means you'll have an easier time solving problems.

Along the way you'll realise what an asset it is to learn/practice application design, which will generally lead to Design Patterns and similar theory. That will help you greatly, since even 'simple' games are fairly large constructs, requiring effective design to build them acceptably.

Then you'll be in a good position to put the rendering APIs you mentioned to good use. Sure, you can probably learn them earlier, but [imo] not well. This applies similarly to other languages if you don't want to learn via C++ (which I'd perhaps not recommend) though perhaps less so since most other languages lack some of the nuances and pitfalls C++ has.


Ok, I have one question, how should I approach STL? My book covered vecotrs, iterators, algorithms, and a bit more, but every book is different.
That's the problem with C++ - too much to learn!
There are entire books on STL but the best C++ should at least mention it and what it's for.
If you are still confused read this
http://www.research.att.com/~bs/tour2.pdf
[size="2"]Don't talk about writing games, don't write design docs, don't spend your time on web boards. Sit in your house write 20 games when you complete them you will either want to do it the rest of your life or not * Andre Lamothe
Quote:Original post by kevtimc

Ok, I have one question, how should I approach STL? My book covered vecotrs, iterators, algorithms, and a bit more, but every book is different.


I'm not sure. It's bad to put it off, and to understand it well you generally need to learn templates, but to learn templates you need to learn common stuff that the STL really helps with. It's a bad catch-22, and one of the reasons I argue against c++ as a learning language. There's too many bad ways to learn it.

The best route is to perhaps learn a bit of the Standard Library [vectors, maps, how to iterate through them, that you can't use an iterator after deleting its target, std::string, how to get std::string into const char*, how to convert stuff to strings via stringstream] while ignoring completely the how or why. These tools will really help you do things you need to do while learning language basics [classes, functions, pointers, inheritance]. Once you can muddle with templates, and once you have a better grounding in those basics, revisit the Standard Library. Find out the how and the why of things, and explore many of the other helpful functions available to you.

This topic is closed to new replies.

Advertisement