سلام، من هم مدتی ِ که روی ساخت بازی های کامپیوتری کار میکنم (البته در بخش برنامه نویسی) و در این زمینه کتاب های زیادی دارم(که چنتاییشون رو خوندم...)، اول اینکه میخواستم بگم منم هستم، و دوم اینکه یک طرح درسی برای اوناییکه میخوان برنامه نویس بازی بشن گیر اوردم ایناهاش
Introduction
There are a lot a people that dream about becoming game programmers and making their own games. Making games is not something you will learn overnight but knowing what books to read will help you to get there much faster.

Before continuing I think I need to point out that this article is mainly about game *programming* not game design, about selling a game to a publisher, or about making levels or art for a game. It isn't possible to be good at it all so you should focus on what you want to be good at. In fact you will find that the selection of books in this guide focuses your attention mostly towards game engine programming, not gameplay programming.

To learn game programming like the professionals you will need to know many things. The easiest way to get most of the this information is to take a degree in traditional Computer Science, but since that may not be an option for you the next best thing is to learn all you can from books and by programming games for fun.

I will focus mainly on making games for the PC since that is the largest platform that is easy to get access to. Some of the later titles I list will also be about console programming. Console development requires a developer license (virtually impossible to get for hobbyists) so I will not focus on that here, but most of what you learn for the PC also applies to the consoles.

The books are divided into categories. You should select the categories that interest you the most and begin there, but within each category you should read the books in the order they are listed. I have tried to list the most important categories first.

If you are a kid or just want to get started fast this guide is probably not for you. In that case I recommend that you start with something more immediately rewarding like Dark Basic, Blitz Basic, or 3D game studio (Google them)

About me: I am the Architecture Manager at Deadline Games where I manage the Engine team of 7 people. I have worked several years on the soon to be released game, Total Overdose.

Step 1: Learn how to program C/C++‎

I assume that you have no previous programming experience, but a general flair for computers are assumed.

You will have to learn how to program C and C++‎. C and C++‎ are the de facto programming languages used in game programming. Both languages are important so don't avoid C in favor of the more modern C++‎. I recommend learning C before C++‎.

So let's start with C:

An excellent C tutorial: 'C Primer Plus (4th Edition)'
The definitive guide to C (You need this!): 'The C Programming Language (2nd Edition)'

And then go on to C++‎:

An excellent C++‎ tutorial: 'C++‎ Primer Plus (4th Edition)'
An introduction and reference to C++‎ standard library: 'The C++‎ Standard Library : A Tutorial and Reference'
The definitive guide to C++‎: 'The C++‎ Programming Language (Special 3rd Edition)'

To actually make any use of these books you need a C++‎ compiler. Although many good ones are available I personally prefer Microsoft Visual C++‎. Both version 6 and the .NET version are good. If possible buy the Professional Edition.

Step 2: An introduction to game programming.

Then I would recommend a newbie book to get feel of what is to come. This is just intended to let you get a feel of what goes into a game, how it is structured, and lets you make some small games yourself. The book focuses on 2D games on Windows using DirectX and that is a perfect valid way to start: 'Tricks of the Windows Game Programming Gurus (2nd Edition)'. This book doesn't go into complete depth so think of it as a beginner's guides.

Step 3: Data structures and algorithms.

At this point I highly recommend that you learn something about data structures, algorithms and complexity analysis; all of which are vital to the game programmer. One good book are: 'Introduction to Algorithms, Second Edition'

Step 4: Graphics programming (2D and 3D)

Next you will need to learn more about graphics theory & programming:

First you will need some math skills: 'Discrete Mathematics: For New Technology'
A good book to give you a solid founding in graphics: 'Computer Graphics: Principles and Practice in C (2nd Edition)'
A book to teach more advanced things and about 3D engines: 'Real-Time Rendering (2nd Edition)'

You will also have to learn how to use at least one graphics library. You should learn either DirectX or OpenGL:

- For learning DirectX I recommend that you simply read the documentation that comes with the DirectX SDK. That is far better than the books written specifically about it.
- For OpenGL I recommend: 'OpenGL(R) Programming Guide: The Official Guide to Learning OpenGL, Version 1.2 (3rd Edition)'

Step 5: Learn Windows Programming.

You should also learn how to program Windows. I assume you want to make PC games. If you are working on other platforms you can skip this category and read some book for that platform instead.

The definitive Windows programming guide: 'Programming Windows, Fifth Edition'

Step 6: More on game programming.

For tricks using in game programming you should read: 'Game Programming Gems (Game Programming Gems Series)', 'Game Programming Gems 2 (Game Programming Gems Series)', 'Game Programming Gems 3 (Game Programming Gems Series 3)', and 'Game Programming Gems 4 (Game Programming Gems Series) (Game Programming Gems Series)'.

Other important stuff

You will also need to know some common computer science things to really be a good game developer.
Artificial intelligence: 'Artificial Intelligence: A Modern Approach (2nd Edition)' (and optionally: 'AI Game Programming Wisdom (with CD-ROM) (Game Development Series)')
Creatings compilers and scripting languages: 'Compilers'
And optionally some basic physics for games: 'Physics for Game Developers'

Other good books you might want to take a look at:
Design Patterns: 'Design Patterns'
Processor architecture: 'Computer Organization and Design Second Edition : The Hardware/Software Interface'
Networks: 'Computer Networks'

More about programming: 'Effective C++‎: 50 Specific Ways to Improve Your Programs and Design (2nd Edition)', 'More Effective C++‎: 35 New Ways to Improve Your Programs and Designs', 'Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library', 'Modern C++‎ Design: Generic Programming and Design Patterns Applied', 'Code Complete, Second Edition', and 'Refactoring: Improving the Design of Existing Code'.

Console programming

When you feel you are ready to learn something about console programming (except the X-box which is almost the same as a PC), you should read: 'Introduction to RISC Assembly Language Programming', 'See MIPS Run (The Morgan Kaufmann Series in Computer Architecture and Design)' (Playstation 2), 'ARM Architecture Reference Manual (2nd Edition)' (Gamecube and Gameboy Advance). But it should be emphasized that programming for these machines requires a developer license - so don't read them until you have to. And don't try reading them until you have read at least one book about processor architecture.

Tips for buying computer books

Also, here is some tips for finding good computer books:
1. If the book contains many long code listings it is usually not good.
2. If the book comes with a CD-ROM it is usually not good. It is not that it is bad that the book comes with a CD-ROM - it is just that many books with a CD-ROM for some reason is not very good.
3. Stay clear of book titles containing words like "for dummies", "teach yourself XXX in XX days", etc. Those books are created to trick newcomers into buying them, but they are not as good as other books out there.
4. Look at the name of the publisher; this can tell you a lot about the quality of the book:
Publishers that make good computer books: IEEE, ACM, Springer-Verlag, Addison-Wesley, Prentice Hall, Morgan Kaufmann, MIT Press, Academic Press.
Average publishers (some good some bad books): Microsoft Press, O'Reilly, Premier Pr., Charles River Media, Wordware, SAMS.
Bad Publishers: M&T, Sybex, AP Professional, IDG.
اینم جزئیات کتاب ها(تقریبا تمام کتاب ها رو جمع آوری کردم به غیر از پنج شش تاشون..)
----------------------------------------------------------------------------------------------------

C Primer Plus (4th Edition)
by Stephen Prata
----------------------------------------------------------------------------------------------------
The C Programming Language (2nd Edition)
by Brian W. Kernighan, et al
----------------------------------------------------------------------------------------------------
C++‎ Primer Plus (4th Edition)
by Stephen Prata
----------------------------------------------------------------------------------------------------
The C++‎ Standard Library : A Tutorial and Reference
by Nicolai M. Josuttis
----------------------------------------------------------------------------------------------------
The C++‎ Programming Language (Special 3rd Edition)
by Bjarne Stroustrup
----------------------------------------------------------------------------------------------------
Tricks of the Windows Game Programming Gurus (2nd Edition)
by Andre LaMothe
----------------------------------------------------------------------------------------------------
Introduction to Algorithms, Second Edition
by Thomas H. Cormen, et al
----------------------------------------------------------------------------------------------------
Discrete Mathematics: For New Technology
by Rowan Garnier, John Taylor
----------------------------------------------------------------------------------------------------
Computer Graphics: Principles and Practice in C (2nd Edition)
by James D. Foley, et al
----------------------------------------------------------------------------------------------------
Real-Time Rendering (2nd Edition)
by Tomas Moller, et al
----------------------------------------------------------------------------------------------------
OpenGL(R) Programming Guide: The Official Guide to Learning OpenGL, Version 1.2 (3rd Edition)
by Mason Woo, et al
----------------------------------------------------------------------------------------------------
DirectX SDK documentation
----------------------------------------------------------------------------------------------------
Programming Windows, Fifth Edition
by Charles Petzold
----------------------------------------------------------------------------------------------------
Game Programming Gems (Game Programming Gems Series)
by Mark Deloura (Editor)
----------------------------------------------------------------------------------------------------
Game Programming Gems 2 (Game Programming Gems Series)
by Mark A. Deloura (Editor)
----------------------------------------------------------------------------------------------------
Game Programming Gems 3 (Game Programming Gems Series 3)
by Mark Deloura, Dante Treglia (Editor)
----------------------------------------------------------------------------------------------------
Game Programming Gems 4 (Game Programming Gems Series)
by Andrew Kirmse (Editor)
----------------------------------------------------------------------------------------------------
Artificial Intelligence: A Modern Approach (2nd Edition)
by Stuart J. Russell, Peter Norvig
----------------------------------------------------------------------------------------------------
AI Game Programming Wisdom (with CD-ROM) (Game Development Series)
by Steve Rabin (Editor)
----------------------------------------------------------------------------------------------------
Compilers
by Alfred V. Aho, et al
----------------------------------------------------------------------------------------------------
Physics for Game Developers
by David M. Bourg
----------------------------------------------------------------------------------------------------
Design Patterns
by Erich Gamma, et al
----------------------------------------------------------------------------------------------------
Computer Organization and Design Second Edition : The Hardware/Software Interface
by David A. Patterson, John L. Hennessy
----------------------------------------------------------------------------------------------------
Computer Networks
by Andrew S. Tanenbaum
----------------------------------------------------------------------------------------------------
Effective C++‎: 50 Specific Ways to Improve Your Programs and Design (2nd Edition)
by Scott Meyers
----------------------------------------------------------------------------------------------------
More Effective C++‎: 35 New Ways to Improve Your Programs and Designs
by Scott Meyers
----------------------------------------------------------------------------------------------------
Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library
by Scott Meyers
----------------------------------------------------------------------------------------------------
Modern C++‎ Design: Generic Programming and Design Patterns Applied
by Andrei Alexandrescu
----------------------------------------------------------------------------------------------------
Code Complete, Second Edition
by Steve McConnell
----------------------------------------------------------------------------------------------------
Refactoring: Improving the Design of Existing Code
by Martin Fowler, et al
----------------------------------------------------------------------------------------------------
Introduction to RISC Assembly Language Programming
by John Waldron - For PlayStation 2
----------------------------------------------------------------------------------------------------
See MIPS Run (The Morgan Kaufmann Series in Computer Architecture and Design)
by Dominic Sweetman - For PlayStation 2
----------------------------------------------------------------------------------------------------