I used to sit and write code for 8 hours a day just because I loved making games. 6 or 7 years ago I stopped due to life changes but am considering coming back. Back then I used QBasic and VBasic (it's all I could get). Now that I'm looking to come back, I'd like to get away from those languages (because ones ancient and the other isn't meant for games).
Primarily I'm looking at making C++ my core language. I'd like to get a thorough understanding of how it works and then perhaps integrate other languages afterwards. But seeing as C++ is so widely used in the game industry it seems like the best choice. Thoughts?
With that all said; are there any books you'd recommend me getting? I'd really like to begin with the basics and work my way up. Also if there are any solid online resources (other than this site of course) that you'd recommend for me specifically, that'd be nice.
My goal is to get very familiar with the common functionality of C++ before moving on to anything else. So for example, I dont want to learn how to use a pre-written game library. I did that last year with XNA, and although quick results are fun, I felt I didn't know enough about the basics of the language (c#) to justify the things I was doing. I want to have a much more in-depth understanding.
In summary, I have 3 questions:
C++ is a good language to learn the basics of for game development?
What book(s) would you recommend that focus on the basics of the language in terms of game dev?
Any online resources that you'd recommend now knowing a bit about my background?
Back from Basic
I used to sit and write code for 8 hours a day just because I loved making games. 6 or 7 years ago I stopped due to life changes but am considering coming back. Back then I used QBasic and VBasic (it's all I could get). Now that I'm looking to come back, I'd like to get away from those languages (because ones ancient and the other isn't meant for games).
Primarily I'm looking at making C++ my core language. I'd like to get a thorough understanding of how it works and then perhaps integrate other languages afterwards. But seeing as C++ is so widely used in the game industry it seems like the best choice. Thoughts?
With that all said; are there any books you'd recommend me getting? I'd really like to begin with the basics and work my way up. Also if there are any solid online resources (other than this site of course) that you'd recommend for me specifically, that'd be nice.
My goal is to get very familiar with the common functionality of C++ before moving on to anything else. So for example, I dont want to learn how to use a pre-written game library. I did that last year with XNA, and although quick results are fun, I felt I didn't know enough about the basics of the language (c#) to justify the things I was doing. I want to have a much more in-depth understanding.
In summary, I have 3 questions:
C++ is a good language to learn the basics of for game development?
What book(s) would you recommend that focus on the basics of the language in terms of game dev?
Any online resources that you'd recommend now knowing a bit about my background?
I think c++ is the best language for games.
But before starting game programming you should know the basics of c++ very well. There are many online-tutorials out there on the internet, which are pretty good.
Then you have to decide what games you wanna develop.
-Multiplattform or only windows?
-if windows->open gl or directx
-etc...
if you know about those things you should search a good book on amazon or somewhere else.
With that all said; are there any books you'd recommend me getting? I'd really like to begin with the basics and work my way up. Also if there are any solid online resources (other than this site of course) that you'd recommend for me specifically, that'd be nice.
My basic C++ books and resources recommendations are here. I am also working on a C++ specific tutorial here. It's using SFML and is as much a language primer to (mostly-safely) using C++ as it is an SFML or game specific tutorial. Plus is very much WIP.
My goal is to get very familiar with the common functionality of C++ before moving on to anything else. So for example, I dont want to learn how to use a pre-written game library. I did that last year with XNA, and although quick results are fun, I felt I didn't know enough about the basics of the language (c#) to justify the things I was doing. I want to have a much more in-depth understanding.
[/quote]
For the most part, the language experience shouldn't be denuded by using a library or engine. I agree you should focus on learning langauge basics first, but using C# with XNA should have still taught you or at least exposed you to, a great deal of C#. Of course though, it won't teach you the basics, everyone has to learn the basic first, even if that is the boring and painful part.
C++ is a good language to learn the basics of for game development?
[/quote]
No, C++ is a terrible language to learn anything with. However, given your foundation in other programming languages, it is not as terrible choice as it is for a complete beginner, instead I will simply call it a bad choice.
What book(s) would you recommend that focus on the basics of the language in terms of game dev?
[/quote]
Game specific books are really a mixed bag. General game programming books don't really seem all that common anymore ( where did you go Andre Lamothe? ;) ), and most books are much more specialized, like programming a game in Direct X, OpenGL, Unity, etc... You need to pick your base language, platform, etc... before we can make any good book recommendations. Or, you could subscribe to Safaribooksonline and have access to like 10,000 books like I do.
Any online resources that you'd recommend now knowing a bit about my background?
[/quote]
You are there. The next step is you need to get more specific, then more specific resources can be provided.
If you do decide to go the C++, for the love of god, pick up a modern reference. There are a ton of C++ resources on the web, but truth is, most of them are crap. The language has evolved massively and modern C++ has about as much in common with the first release of C++ as it does with say... C#. At the very least make sure the code you are referencing is using the standard template libraries. If you see a bunch of char* manipulations or a single malloc, run like hell! Unfortunately a lot of the sample sources for game programming are riddled with this crap.
If your goal is the games industry, then you will need a good grasp of c++, however, even if that is your goal, that doesn't necessarily make c++ a good language to jump into. If the industry is not your goal, c++ is particularly unattractive.
C++ is used in the industry for a couple reasons, both largely historic at this point. First, c and then c++ were the first decent compilers to take hold, and also to be low-level enough for the embedded development scenarios that were prevalent in early game consoles, and which today have diminished (but not disappeared) as game consoles have grown more fully-featured operating systems. Secondly, due to its legacy of use, there are huge, existing code bases in c++ (games, libraries, middle-ware) or even in C, to which the umbelical cord of the AAA games industry is firmly attached. While unavoidable to "the industry", neither is a particularly good reason for an indie or hobby developer to adopt C++ today, particularly when they have no legacy of code of their own to consider.
For a indie/hobbyist targeting Windows, c# and XNA or SlimDX is a good alternative. For pure hobby, good things have been said of PyGame. If you want to share your creations easily, Flash is a popular choice, and you can even make a bit of money.
I say all this even as my own primary language is C++.
C++ is used in the industry for a couple reasons, both largely historic at this point. First, c and then c++ were the first decent compilers to take hold, and also to be low-level enough for the embedded development scenarios that were prevalent in early game consoles, and which today have diminished (but not disappeared) as game consoles have grown more fully-featured operating systems. Secondly, due to its legacy of use, there are huge, existing code bases in c++ (games, libraries, middle-ware) or even in C, to which the umbelical cord of the AAA games industry is firmly attached. While unavoidable to "the industry", neither is a particularly good reason for an indie or hobby developer to adopt C++ today, particularly when they have no legacy of code of their own to consider.
For a indie/hobbyist targeting Windows, c# and XNA or SlimDX is a good alternative. For pure hobby, good things have been said of PyGame. If you want to share your creations easily, Flash is a popular choice, and you can even make a bit of money.
I say all this even as my own primary language is C++.
Thanks for all the thorough input folks!
My primary goal is to some day move out of the database consulting field I'm in and follow my dreams of game programming. Long shot? Yeah, but that's okay I'll have a ton of fun along the way even if it doesn't amount to an eventual career change. My previous years of game programming, even in primitive languages, was immensely entertaining.
So if that's the case, after reading your replies, I gather starting with just the basics of C++ is the best choice (albeit a bad choice). That means not necessarily focusing on game development but learning the ins and outs of the basic syntax. I can probably do that with online tutorials though something that points me in the direction of games would still make it more bearable.
I'll check out the links posted above and go from there. I've got this post and indeed the website itself book marked and plan to make this my new home. See you all around the forums!
My primary goal is to some day move out of the database consulting field I'm in and follow my dreams of game programming. Long shot? Yeah, but that's okay I'll have a ton of fun along the way even if it doesn't amount to an eventual career change. My previous years of game programming, even in primitive languages, was immensely entertaining.
So if that's the case, after reading your replies, I gather starting with just the basics of C++ is the best choice (albeit a bad choice). That means not necessarily focusing on game development but learning the ins and outs of the basic syntax. I can probably do that with online tutorials though something that points me in the direction of games would still make it more bearable.
I'll check out the links posted above and go from there. I've got this post and indeed the website itself book marked and plan to make this my new home. See you all around the forums!
So if that's the case, after reading your replies, I gather starting with just the basics of C++ is the best choice
No, it's not. Starting with C++, even just "the basics" is completely and utterly not the best choice and frankly I don't really understand how you got that from what we were saying. We both pragmatically acknowledge that C++ has it's place, but it is never the place to start.
Let me just drop an overly dramatic use of bolding to emphasis my point...
[size="7"]TO START
[size="7"]
That said, to be completely honest, I think the vast majority of people think they have moved beyond the "starting" phase far earlier than they actually have.
Well, the OP does claim earlier experience in some varieties of BASIC, so he's not the usual adolescent who heard once that his favorite game was written in uber 1337 C++. I was a self-taught QuickBasic programmer from the time I was 11 through the end of high-school, then moved straight into C and C++ during my first year of college with no issues, personally. Of course, that was under instruction technically, though I didn't find I had a need to pay super-close attention during lectures or study much, since I was already familiar with programming and made a few mid-scale games.
Anyhow, I'm certain there are better choices, and wemve paid our due diligence in laying out the facts, but I hardly think that this particular OP is doomed to failure if he chooses to tackle C++.
other than that, good luck. This is about the best community around if you need help, whatever your choice.
For the OP, make sure to really dive into the syntax and features of C++. There are a good many features of this language that don't really have parellels in older BASIC dialects. There are also many freshly-standardized features recently added to C++ itself which fundamentally change the way we will write idiomatic C++, such as lambdas and the repurposed 'auto' keyword. Make sure to use modern(ish) references, or at least be aware when your resources are outdated. Do be wary of resources that intermix C'isms with C++'isms without a sound explanation.
Anyhow, I'm certain there are better choices, and wemve paid our due diligence in laying out the facts, but I hardly think that this particular OP is doomed to failure if he chooses to tackle C++.
other than that, good luck. This is about the best community around if you need help, whatever your choice.
For the OP, make sure to really dive into the syntax and features of C++. There are a good many features of this language that don't really have parellels in older BASIC dialects. There are also many freshly-standardized features recently added to C++ itself which fundamentally change the way we will write idiomatic C++, such as lambdas and the repurposed 'auto' keyword. Make sure to use modern(ish) references, or at least be aware when your resources are outdated. Do be wary of resources that intermix C'isms with C++'isms without a sound explanation.
I wasn't suggesting C++ was the best place for someone to learn how to program. What I meant to say is that, based on what I read on this post, C++ is still a standard in the game industry and having a working knowledge of that particular language would further my career potential than other languages. Is that not true? If it's not, then what language should someone learn if they're interested in obtaining a strong foundation for game programming?
I'm here because I don't know. I'm trying to reap all the information you guys lay out for me here. Please excuse me if I misunderstand.
PS. Yes I did read your statement that specifically said "C++ is a bad choice" but no other choices have been offered. My plan before coming here was to learn C++ basics and slowly advance my way into the language to the point I could start utilizing DirectX. I did dX9 with VB (as silly as that sounds) with some degree of success. Well, I made a 2d game engine =)
I'm here because I don't know. I'm trying to reap all the information you guys lay out for me here. Please excuse me if I misunderstand.
PS. Yes I did read your statement that specifically said "C++ is a bad choice" but no other choices have been offered. My plan before coming here was to learn C++ basics and slowly advance my way into the language to the point I could start utilizing DirectX. I did dX9 with VB (as silly as that sounds) with some degree of success. Well, I made a 2d game engine =)
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement