$google = false; ?> include 'ads.php'; ?>
[ Game Development Home | Internships in the Game Industry | Game Ideas | Game Books ]
[ Game Programming Software | Guide to the New Game Programmer | DirectX Introduction | Tile Based Games ]
The information contained here will try to assist people that are totally new or just beginning programming. I will explain how to get started, and what to do to continue programming and learning. I will offer suggestions based on my own experiences.
If you are reading this, you probably already have some interest in programming. Maybe you don't know exactly how to start? Or are wondering what to do next? Well this guide will try to guide you through the steps to begin programming. Learning how to program is not as hard as most people think, but it does require one thing: a desire. You need to be the one that wants to program. If you are not at all interested, or if someone else is encouraging you to, I would not recommend learning. Without a personal desire to learn computer programming, you will most likely fail. Any small roadblock will get you frustrated and make you want to quit. However, with patience and desire, any roadblock can be overcome. You can do anything if you put your mind to it.
Ok, enough for the psychological introduction (probably scared most of the people away). Where to start? As with most things, there are various levels of difficulty in the path you choose to take. The path that I will describe here begins with C/C++, touches on win32 API, and finishes on game programming. You would think each step would seem to get harder, but if you have completed the previous step, there shouldn't be much change in difficulty. This is because you live and learn by the mistakes you make.
If you are interested in game programming, you need to learn at least C first. C++ is not necessary for game development, but is highly recommended. C++ gives you OOP (object oriented programming) which can be very helpful for game development, especially in Role Playing Games. MFC (Microsoft Foundation Class) builds on C++ and gives you lots of "classes" to accelerate building applications. MFC is recommended for developing tools for your game, but not for the game itself because it is too slow. However, there is lots of debate whether or not MFC should be used for game programming, so you will have to decide for yourself. I personally do not use MFC, for I see no need in it.
Before you start to program, you need to decide what platform you want to write your applications for. A platform is the operating system the application will run on. There are quite a few different platforms, each having specific characteristics:
To learn C, I obtained the book New C Primer Plus: Second Edition, by Waite & Prata, published by The Waite Group. I bought it at ReadMe.Doc. This online bookstore sells computer books at a discounted price. It may not look as fancy as others like Amazon, but this is the place to go to save a buck. This book taught me everything I needed to know about C. During this book, I used DJGPP(download here) to try out all the new concepts that were being taught to me. This is a totally free compiler that creates fast and small code. Shortly after, I discovered the Allegro Game Programming Library that goes along with DJGPP. Allegro uses C and this allowed me to make my first game, a simple space shooter game. That got boring after awhile, so I thought it was time to move on.
I bought Microsoft Visual C++ 5.0. The price for an academic version of MSVC++ 5 Professional Edition is 100ドル; Learning Edition is 50ドル. The Learning Edition does not have an optimizing compiler or profiler, so I do not recommend the Learning Edition for any serious developer, especially game developers (additional differences are listed here). The academic versions of Microsoft products usually can not be sold to high school students, but the Microsoft Academic Store makes an exception. The normal price is huge, Professional Edition is 500ドル; Learning Edition is 100,ドル so try to get the academic version if you qualify for it. To learn about my new compiler, I got the book Beginning Visual C++ 5, by Ivor Horton, published by Wrox. This book taught me three concepts: Visual C++ 5.0 itself, the C++ language, and MFC. The first half of the book was a fast-paced tutorial about C++ in general. It didn't use very many MSVC++ specific programming concepts. However, scattered throughout the tutorial were tips on how to use MSVC++ more efficiently. Then, in the second half of the book, was an introductory tutorial about MFC. It didn't get into the specifics because there wasn't enough time or space. Entire books have been written about MFC, but this book just summed up the essentials into 500 pages. This creates a good foundation for future MFC reading. Game developers do not need to worry about learning MFC because it is rarely used in game development.
I learned MFC with C++ in the previous section. With regards to game development, there is much debate whether or not MFC should be used. In my opinion, it would be preferable to avoid MFC, due to the fact that reliance on MFC will make an application harder to port to other operating systems. I recommend skipping MFC and moving directly to win32 or game development.
I bought the book Programming Windows 95, by Charles Petzold, published by the Microsoft Press. I have read the entire book, and it has helped me extensively. Many times in game development, a program will need to interface with Windows, so it's good idea to have at least a little background knowledge to aid you. At the same time I learned DirectX, much to the thanks of Windows Game Programming for Dummies, by Andre LaMothe. This book provided numerous examples and was very easy to follow.
Game programming is listed last in the list for few reasons. Game programming requires that you know a lot about the language you are programming with. The reason for this is that games must be optimized for speed and if you don't know the fastest way to complete a task in your language, your game will be rather slow. However, everyone must start somewhere. So, pick a language you are fairly good at and use that language to write a game. A game can be written in entirely C, so you might not even have to learn C++ or win32. But as I have said before, C++ and win32 will most likely help you later on.
For more information about game programming, check out the other pages in my Game Development section!
Questions? Comments? Share your thoughts on the Discussion Forums...
if ($google) { echo $googlerectangle; } else { echo $yahoorectangle; } ?>