I just learned the basics of c++ and c#,just the simple basics of the language.And I want to pursue game programming can anyone please tell me where to start off I read somewhere that Direct-X is used for game programming and I downloaded it from Microsoft's website but I just didn't understood it.From where did you people started your game programming when you were just beginners or do I need to have a deep knowledge about the language or can I just start now, please suggest me.And I am in the first semester of my cs undergraduate degree.
Start coding now. You won't get deep knowledge without, well, coding! I'd highly recommend XNA. XNA is basically a .NET wrapper for DirectX. It is very clean and well thought out (This means C# of course).
Have fun!
Introduction to Game Programming in C++ is a good start.
Introduction to Game Programming with C++ explores the world of game development with a focus on C++. This book begins with an explanation of the basics of mathematics as it relates to game programming, covers the fundamentals of C++, and describes a number of algorithms commonly used in games. In addition, it discusses several libraries that can help you manage graphics, add audio, and create installation software so you can get started on the path to making both 2D and 3D games.
If you want to start with C#, which is recommended for beginners, you can use XNA, which is quite simple to learn, and a good book is Beginning XNA 2.0 Game Programming: From Novice to Professional
Would you like to create your own games, but never have the time to dig into the details of multimedia programming? Now you don’t have to! XNA makes it simple to create your own games, which will run on your PC and Xbox 360 console. Even if you don’t know how to program at all, Beginning XNA 2.0 Game Programming: From Novice to Professional will teach you the basics of C# 2005 programming along the way. Don’t get overwhelmed with details you don’t need to know— just learn what you need to start creating your own games right now!
The fast–paced introduction to XNA and the C# language provides professional developers a quick-start guide to creating a commercial product using XNA, as well as offering home enthusiasts or hobbyists everything they need to begin putting together games in their spare time. You’ll discover and understand all the key concepts required to create smooth, professional–looking results in a range of gaming genres. Every reader will come away with a firm foundation onto which they can build more advanced ideas.
Maybe www.gamedev.net is the best site of resources of game programming
Check out the torque engine. It's inexpensive and takes care of a lot of the grunt work of making your game so that you can focus on making it fun. It's inexpensive and you can code in C#.
I would recommend getting started with XNA, if you know a little C# it is an excellent way to get into game development and learn some important concepts that will help you out with other libraries. creators.xna.com There are several videos and tutorials to walk through, and it is all free when programming for the pc.
I do not suggest XNA for learning how to do game programming. It hides many concepts that you need to have for a solid understanding of how it works from the inside.
First, learn thoroughly how to program in C++ and to understand how the Component Object Model (COM) works since this is what you will need to use in order to call the different methods in the DirectX SDK. Once this is done, learn how to create a window with C++ in Win32. After, find yourself some books on Direct3D for DirectX 9 SDK, game engines and architecture, multithreaded applications and design patterns. I would suggest DirectX 9 Graphics The Definitive Guide to Direct3D from Alan Thorn for Direct3D. This book is not a definitive guide, but rather a very good introduction to gain a solid base. Of course the book is a bit old, but the concepts remain very similar and it will be a good reference book for later on (plus it is cheap.. your budget might be tight with everything you have to pay for university :P) . Also, look at the documentation and samples from the SDK. Oh and before I forget, you will need some notions in maths (linear and vector algebra comes to mind)!
From reading your comments to the original question, it would seem that you have fallen into the trap of setting your sights far too high. The game 'World of Goo' did not happen overnight. It took a long time using lots of third party libraries to do the video/audio/physics/gameplay elements and a very good working knowledge of programming in general and an understanding of the restrictions doing a game often imposes.
Now, this may seem like a negative response but the point is it is better to achieve something small than to fail at something big. Failure generally puts people off doing what they really want to do.
Byron Whitlock's advice of "start coding now" is the best advice. But, start off with something simple: a text based version of Guess the Colours for example, then some easy, non-realtime graphics like Othello / Reversi / Sliding puzzles then try something realtime like Tetris and then branch out into physics, audio, 3D and so on.
The key to becoming a great programmer is to get code finished and working (shipping is a feature!), learn from the code - see if there are better ways to do stuff and so on. Start small, finish some programs, get a morale boost, firm up your foundations and gradually add complexity from there.
I suggest try using Silverlight as your game platform.
Check out this site http://dobbschallenge2.com/. It has a full functioning 2D platform game engine with source code and images. You can learn how parallax scrolling works, etc.
This way you can modify the game source code and slowly learn how it works. The game engine is quite simple yet the game is fun and includes awesome soundtrack :)