The Giant Gap

Started by
8 comments, last by Kylotan 18 years, 5 months ago
<begin rant> I've had this on my mind for a couple of months now, and I've decided I might as well post it here, see what you lot think. I've been trying my utmost best at trying to learn C++ and try and make a demo using Truevision3D, Torque and Cipher. Torque and Cipher I paid for myself, TV3D is free. While experimenting with these engines, I've come to the conclusion that there is a huge "gap" between the people trying to learn, and the experts. Take for example Cipher. It's last proper update was in 2003, and it's rich own called Rikh has done his best to make the homepage look all professional, but the second you send those 100$, you've just sold your soul to the devil. The "tutorials" which they offer are ridiculous. Their ten(ish) step noob friendly tutorial which was advised by one of their forum members (don't even get me started on their forums) in fact turned out to be for a very old version of Visual Studio. Of course this was completely ignored when I asked for help on the forums. What I'm trying to get at is this. Is the best way of learning to make a demo to just learn the most you can through books, and then try and code? The two current books I own are: Programming Roleplaying Games with DirectX by Jim Adams and Andre LaMothe. The Zen of Direct3D Game Programming by Peter Walsh and Andre LaMothe. Both of these books have explained quite well at the beginning how to effectively use DirectX, but lack the ground knowledge of game programming. I don't mean loops, variables and what-not, but how to move from making windows programs to game programming. Could someone advise me on how to move on from here. Should I invest in better books, or simply keep "trying" with other engines? Thanks. </end rant>
Ho, ho, ho!
Advertisement
Invest first in free documentation until you grasp the principles and can accomplish tasks of medium complexity. Among said documentation give primacy to:
  • Your compiler documentation

  • Language specification documentation

  • Standard library documentation

  • Target platform documentation

  • Platform SDK documentation

...all of which are free for any platform that's going to be good for learning.
You probably don't need to read through books before trying to code, but you will need to start small. Even minor demos are fairly complex pieces of software to beginners. Trying to learn an API before being comfortable with the language you're using is doomed to failure [or at least a slow, slow learning process].

Personally, I'd drop LaMothe. The books I've seen of his don't teach anything. They seem useful because they walk through stuff that seems practical. They don't though teach you how to design programs though, which is that "gap".

That's actually something no book will really tell you. They can offer hints, but only writing increasingly different and complex programs can you gain that experience to best know how things fit together.

So, to sum up, learn C++ if that's the language you want. Really get comfortable with the Standard Library, templates, everything. Write little apps to try each feature out. Direct3D, engines, everything builds off that. If you don't have a good foundation, you'll just find more of this frustration.
Quote:Original post by Telastyn
So, to sum up, learn C++ if that's the language you want. Really get comfortable with the Standard Library, templates, everything. Write little apps to try each feature out. Direct3D, engines, everything builds off that. If you don't have a good foundation, you'll just find more of this frustration.


Ok, I'll have to stick to that then. Do you know any good C++ books you could recommend? I had a look at the 'Books' section, but didn't have a clue which C++ book is best.

Quote:Original post by Oluseyi
Invest first in free documentation until you grasp the principles and can accomplish tasks of medium complexity. Among said documentation give primacy to:

Your compiler documentation

Language specification documentation

Standard library documentation

Target platform documentation

Platform SDK documentation

...all of which are free for any platform that's going to be good for learning.


Would any of this be covered in a standard C++ book?

Thanks guys.
Ho, ho, ho!
nope, a good C++ book will go over:

Language specification documentation
Standard library documentation

the others are probably best found as a help file (for example the DirectX SDK goes with a good help file) or online. I have never really found a good source for IDE documention.
Alas, I don't know of any really great C++ books. All the ones I have are largely mediocre. The C++ Standard Library by Josuttis is good, though it only deals with a [large] subset of the language and might be a little difficult for someone if they don't have a fair understanding to begin with.
Guys guys, I moved from a trial version of GameStudio to c++ in a matter of weeks, if you want you can see my entry "Susano" in the 4E4 gaming contest which I made using the Free engine "Irrlicht"...You wasted alot of money man, screw those big expensive engines like you said they are hopelessly documented and have a crap communitee, goto http://irrlicht.sourceforge.net/ and check it out urself buddy.
thing is not to concentrate on books and sites specifically to do with games. Design patterns, uml, and plain vanilla C++ books are all cruical, because often the game books sample code is written in a way to demostrate a point - rather then being structually sound.

Dave Parsons has a great book set out with a lesson plan on Object Oriented C++.

Dietel and Dietel is a good reference too, teaching via examples with exercises and answers in the back.

Neither concentrates on games, but both will give you a good foundation. Of course books by Bjarne Stroustrup would be a decent addition to a library too, because you know, he's the father of C++ and all that.
Anything posted is personal opinion which does not in anyway reflect or represent my employer. Any code and opinion is expressed “as is” and used at your own risk – it does not constitute a legal relationship of any kind.
Thanks for all the help, I know what I gotta do now. Shame I don't get my 200$ back though. ;)
Ho, ho, ho!
Quote:Original post by GreenGiant
I've been trying my utmost best at trying to learn C++ and try and make a demo using Truevision3D, Torque and Cipher. Torque and Cipher I paid for myself, TV3D is free. While experimenting with these engines, I've come to the conclusion that there is a huge "gap" between the people trying to learn, and the experts.


Starting out by buying an engine is like learning to drive with a Formula 1 car. I know there's a temptation to 'do things properly' from the start, but you learn more by working your way up through the low-level things. These engines are generally high-performance tools designed to amplify the abilities of programmers who are already familiar with intermediate-level programming.

Quote:What I'm trying to get at is this. Is the best way of learning to make a demo to just learn the most you can through books, and then try and code? The two current books I own are:

Programming Roleplaying Games with DirectX by Jim Adams and Andre LaMothe.
The Zen of Direct3D Game Programming by Peter Walsh and Andre LaMothe.


The first book is quite good in that it covers a lot of ground. I expect it would be good for you to work through it, if you haven't already. I can't speak for the 2nd book.

Quote:Both of these books have explained quite well at the beginning how to effectively use DirectX, but lack the ground knowledge of game programming. I don't mean loops, variables and what-not, but how to move from making windows programs to game programming.


Game programming is implicit in the structure, though. There is no distinct area of game programming - just normal programming applied to game-specific technologies like DirectX. About the only real difference between game programming and normal Windows programming is that game programming features an input-process-output polling loop as opposed to an event-driven structure. Beyond that... it's all the same, just a collection of technologies you string together.

Quote:Could someone advise me on how to move on from here. Should I invest in better books, or simply keep "trying" with other engines?


Aim lower (to begin with). Forget 'engines' as such, and try to write simple demos. Just concentrate on initialising the screen and displaying a graphic. Then have it move. Then have it move in response to user input. Then make a very simple game out of it. Pong and Tetris are 2 popular choices for this on these boards, and for good reason. Everything you need to achieve this is available in the DirectX docs, or in the various SDL tutorials if you were to use the SDL library instead. (A good choice for beginners.)

This topic is closed to new replies.

Advertisement