views:

346

answers:

5

Hi I am working in VC++ and I am quite interested in game programming and I have few queries.

1).What one must know before starting game programming ?

2).Can anybody give me info @ resources like tutorial ,links ,etc. which would help me to start as fast as possible ?

3).Also give me info @ some good books on game programming ?

Any help would be greatly appreciated.

A: 
  1. It takes time and requires a lot of patience. And playable game is more than just working C++ code.
  2. gamedev.net.
PiotrLegnica
+7  A: 

Before you start programming you must have a good understanding of the language, how to program and how to structure and test your code. Oh, and a huge amount of either patience or free time. On the maths front, Vectors, Matrices and Quaternions are the main things I found I needed.
The other thing that often goes overlooked when I programmer starts writing a game is someone to create the assets. Preferably someone specialized in it.

You mention DirectX, which is not actually a fast way to go as you have to build everything from square one, which means a lot more maths, performance testing and overall handwork. I would suggest at least a rendering engine like Ogre3D. There are plenty of tutorials and a very good community.
There is a good post here on why you should write games not engines.

The main reason you would want to use DirectX is to enhance your understanding of the lower levels, all the things an engine is abstracting for you. While I think this is a good thing to do, I wouldn't want to do it for a major or first project.

The main site I used for help was gamedev.net, although I also found some intresting articles on gamesutra

Yacoby
This. Specially the last paragraph on DirectX. Learning the in's and out's of the really low level DirectX buffers and its interactions with the gpu etc isn't something you can do in a small period of time. I've had two 4 month classes in my program alone to teach DirectX coding and I still feel like there's an entire world beyond what I know.
Jesse O'Brien
The first paragraph is key too. People often forget that game programming is programming. You need to be a good programmer *to begin with*. Know your language, know how to code, know how to debug your code and so on.
jalf
A: 

First, download Visual C# Express Edition, and then download XNA Game Studio 3.1.

After that, check out the XNA Creators Club - that has lots of help to get you up and running quickly.

CraigS
A: 

Are you 100% dedicated to C++? If not, I would recommend starting with XNA/C# instead. DirectX will force you to spend a lot of time up front learning API calls before you ever get something on the screen. XNA will allow you to start coding your game very quickly while getting immediate feedback while you program.

If you are committed to C++, I would recommend Beginning Game Programming by Jonathan Harbour. He starts with an easy to understand framework that won't take long to pick up. Remember that to use DirectX you will have to learn win32, and low level DirectX code.

For tutorials, try googling "c++ beginning game programming tutorial". Gamedev.net will be another invaluable resource. Go to the "For Beginners" forum and look through the stickies.

As for what you must know, it depends on your aspirations and your choice of tools. As a beginner, you will want to start small and in 2D or text games. To get a Pong game going in XNA, you only need to have basic C# skills and basic collision detection. To get a Pong game going in DirectX, you will need to understand win32 code, and a ton of device calls. To do a console text game, you only need to know basic C++ and maybe some basic gameflow techniques.

ChurchSkiz
A: 

If using DirectX is not a fixed requirement, you should consider OpenGL, and use a library like SFML or Allegro to handle all the basic stuff.

http://www.talula.demon.co.uk/allegro/

http://www.sfml-dev.org/

HyperCas