I 've read Narue's answers in another game thread but there are still some things I would like to ask.

what kind of c++ works best for games? can one use any kind. the main reason for using c++ is, i assume, to take up as little space as possible in memory as well as to run at the highest possible speed. does a type of c++ such as visual C++ 2005 which uses dot net suffice or will it be too slow. i asume that dot net makes it slower since the c++ does not now run close enough to the hardware?

also what kind of education is needed. to simply be a programmer is obviously not enough. so what minimum level of study is sufficient? i also take it that it requires a lot of math and knowledge of advanced algorythms?

>what kind of c++ works best for games?
There's only one kind of C++. Don't confuse the tools with the language.

>does a type of c++ such as visual C++ 2005 which uses dot net suffice or will it be too slow.
Visual C++ 2005 is a compiler, and C++ with .NET isn't C++ anymore, it's C++/CLI; a completely different programming language. And yes, .NET would likely be too slow for many game projects where every ounce of performance is needed.

>so what minimum level of study is sufficient?
You should have a strong foundation in classical algorithms and data structures, mathematics, and low level programming. You should know intimately how computers work and be able to exploit that knowledge to squeeze performance and functionality out of the hardware. You should also be familiar with good programming practices so that you can write good code where possible, and be in a better position to know when to break the rules.

I say "should" because this is my list of requirements. I've worked with game developers that only knew the holy trinity of arrays, linked lists, and binary search trees, and could only write bubble sort from memory (on the second try). I guess that's why people like me get hired to consult for people like them. :D

in a previous thread you told me that the world has moved on to "forms of c++ that actually works with the standard language". is visual c++ 2005 one of these forms?

and by your comment about "standard language" i took it you meant that visual c++ 6.0 does not work with the standard language?

if you pick up a text book which just say C++ without any reference to microsoft or dot net or borland i asume that you have a ninety percent chance of reading aboout this standard c++. and also i take it that this standard language is the "only one form of c++" which you talked about earlier in this thread? if that is true then why did microsoft went through the trouble of creating its own form of c++ for 6.0?

>s visual c++ 2005 one of these forms?
Yes, you can write standard C++ in Visual Studio 2005.

>i took it you meant that visual c++ 6.0 does not work with the standard language?
Correct. Visual Studio 6 was released before the C++ standard came out, so it isn't very compliant.

>if you pick up a text book which just say C++ without any reference to
>microsoft or dot net or borland i asume that you have a ninety percent
>chance of reading aboout this standard c++.
If the book was also printed after around the year 2000, yes. Two good indicators of a non-standard book are looking for void main and headers with a .h suffix.

>and also i take it that this standard language is the "only one form of
>c++" which you talked about earlier in this thread?
Yes, only the C++ standard can tell us what C++ is or is not. Anything else is an extension or a dialect.

>if that is true then why did microsoft went through the trouble of
>creating its own form of c++ for 6.0?
Prior to the C++ standard we had the de facto standard defined in a book called The ARM (The Annotated C++ Reference Manual). Most older compilers followed the definition of C++ from that book, and/or followed cues from Stroustrup's compiler. Of course, since neither was an official standard, many compilers supported a slightly different dialect of C++. One of the reasons for standardization is the risk of a language diverging into multiple dialects (à la BASIC).

While the C++ standard was being worked on, compilers implemented parts of it that were promising or seemed highly likely to make it into the final standard. Visual C++ 6 is one of those compilers that implements a dialect of C++ somewhere between the ARM-standard and standard language. That's why it supports both .h headers and namespace headers, why it has a standard string class, but rudimentary templates and a weak STL.

Comments
Extremely helpfull
This article has been dead for over six months. Start a new discussion instead.