Drezard

Hey, I'm an aspiring C++ programmer and Ive so far learn't these things:

- C++ Basics (Variables, Structs, Functions, All the console stuff)
- Winsock (Most of the TCP and UDP stuff)
- STL

Thats what I've learn't so far. Now, Im wondering what else I need to learn before I can make games (3D Games mainly): I know I need Direct3D, DirectSound and the stuff I've already got. What else do I need to do Also, I would not only like to learn games but basic programming (making professional apps). Is there an internet list or could someone make me a quick one of topics i should Google or books I need to read. That would be great...

Thanks, Daniel


Re: Visual C++ Language Visual C++ Path

Burhan Ateeq MSFT

You can start here. This is the first step towards creating professional windows applications.

http://msdn2.microsoft.com/en-us/library/e6w9eycd(VS.80).aspx

If I find some resources about starting 3D programming I will post the links here. Do let me know if this is helpful

thanks,

Burhan





Re: Visual C++ Language Visual C++ Path

Drezard

Thanks anything else you could help me with





Re: Visual C++ Language Visual C++ Path

Marius Bancila

I don't want to hurt your feelings, but I find it funny how many people start learning programming because they want to make games. Unfortunatelly, as a beginner, it's hard to understand that games programming is a dificult task, because a game is a complex program (well, that also depends on what kind of game). Games like the ones you play at home or with your friends were developed by teams that put months or years into them. What I'm trying to say is that learning basic stuff like structs, functions or STL isn't enought to build games.

My recommendation is that before you start thinking about that you learn very well at least C++, graphics programming, networking. But if you intend to build a 3D game by yourself, trust me, you'll never make it happen. Or ir will take so long you'll get bored.






Re: Visual C++ Language Visual C++ Path

Burhan Ateeq MSFT

Hello,

Well to that I will say, it depends on how serious you are. If you plan to do it, it will be a career long committment to a goal.

In order to eventually achieve what you plan to do, I suggest taking Computer Science classes at college and specifically working on Masters level semester or year long projects. This will give you some basic idea of the level of effort required. It will also help you figure out where exactly you should look for resources. Full time professional experience at a good software company will also be very very helpful.

thanks,

Burhan





Re: Visual C++ Language Visual C++ Path

Sarath.

A better understanding in Virtual Functions and generics will help you more in the area of gaming. There are some well known design patterns are which are widely used in games(Observer, Decorator, Strategy, Builder Patterns etc...) You can see an article about applying design patterns in codeproject

Also be aware of about each and every bit of memory you are using. else the performance of your game/engine will end up in tears.






Re: Visual C++ Language Visual C++ Path

Brian Kramer

Computer Science classes are a waste of time and money if your goal is to be a good programmer. Learning design patterns with no real world context is going to bore you. Don't try to learn a technique before you've seen a problem where the technique is needed to solve it.

There are going to be 10 times as much effort and detail in a project that what you will initially give it credit for (according to the rule of "you don't know what you don't know.") I would just jump in and get started with what you know, and not worry so much about proper form. Proper form takes years of experience. As you progress you will begin to ask the right questions on how to improve the structure of your program.

Brian





Re: Visual C++ Language Visual C++ Path

Simple Samples

I think I saw some forums among these Microsoft forums for games.

The following are from my bookmarks, most of which are the result of searching for something else. I don't know how useful they are.

One important concept that games can teach is the concept of requirements definitions and specifications. When software is developed, it helps to first determine requirements and then to develop specifications. Programmers often skip those things, but it can be a big mistake to avoid determining requirements. For games, the rules of the game can be the equivalent of requirements and specifications. If you get in the habit of creating relatively detailed rules and descriptions of a game before developing the game, then you can learn some critical skills that can help with all software development.






Re: Visual C++ Language Visual C++ Path

Brian Kramer

Sam, how did you first learn how to program   Was it in a classroom Did you draft out requirements   (Just friendly curiousity here, because I suspect that you're giving advice that is inconsistent with how most people get to where they are.)



Re: Visual C++ Language Visual C++ Path

Simple Samples

All of this would normally be way off-topic for these forums, but since the subject is what path to take for learning, I hope this is not too off-topic. I apoligize for writing only about myself but I hope it helps.

I began in High School back in the days when there were no computers in any High School campus; a computer such as an IBM PC was science fiction. I took classes for High School students that were on Saturdays using computers in the Junior College and computers at IBM. Initially I learned Fortran and then COBOL. In High School, I began learning assembly language for the old IBM Mainframe computers; I have never had a class teaching assembly language.

I then went into the Army and was sent to programming school to learn COBOL but I taught the instructor instead of the instructor teaching me. At that time, programming was still new enough that the colleges had not yet caught up. The college courses were generally inadequate, I think. I was a COBOL programmer in the Army for 4 years. When I got out of the Army I was a COBOL programmer for various businesses.

So yes, I have not had very much training. I have learned most everything I know using documentation and books and such. I learned Intel x86 (which is also Pentium) assembly language and C and C++ on my own without classes. I learned Windows and Windows programming when I was asked to write a printer device driver. That was 16-bit Windows and there was no internet to use to get help. The DDK documentation was frustrating but I got it working using the documentation.

I do know the value of documentation. As an employee, I usually wrote specifications for programs I wrote unless management did not allow me the time to do that.

I think the best way to learn programming is to have a project and to learn what needs to be done to accomplish the project.

My initial reaction to people wanting to write games is that they are not serious programmers, but then I realize that games can be a good way to get a person motivated to learn programming. Also, my cousin is also self-taught and he has done some major game development, including one for the PS3.

I have a tendency to fall asleep in a class; teachers usually dump out details without the concepts necessary to understand how it all fits together.

I am not sure I responded to the comment that I am "giving advice that is inconsistent with how most people get to where they are". In the context of requirements definition, that is something that is common to systems analysis and certainly should be an essential part of systems analysis. As far as I know, systems analysis is taught in most colleges teaching computer science.






Re: Visual C++ Language Visual C++ Path

Brian Kramer

Great history. It remembles my own. I think people starting out should just follow a path of self-discovery. Formalizing it can kill the fun.



Re: Visual C++ Language Visual C++ Path

TTris

Even though this may be slightly different from what you were asking, if you are eventually intersted in making games, check out XNA, a free microsoft game developer that is very useful and even comes with a complete game that you are able to modify and experiment with. It is helpful for getting a feel as to how to create games and, when you are ready, actually create them. Even though this is in C# not C++, I just thought I would mention it.