I. Books:
Algorithm and data structure:
Data structure (C language version)-yan Weimin and Wu Weimin Tsinghua Press
I think its related exercise set is even more valuable than the original book, and every difficult question is worth doing.
"Introduction to algorithms" Second Edition Chinese name "Introduction to algorithms"
According to the algorithm standard learning materials and engineering reference manual, the translation version of csdn was named the top 20 technology bestsellers of the year on the website last year, at the same time, "programmers" magazine opened the "algorithm middleware" column, these actions are traced back to the source, the so-called "it" industry, which is so impetuous in China, has produced a glimmer of hope. I can afford this thick book at a discount. Although he has made thousands of pages, he is easy to understand and understand. It can be seen that classic books are more readable than normal books. You can also find the MIT video tutorial. In the first class, the old professor smiled and followed by a long-haired ta class.
A selection of hundreds of skills in the C language name and question -- Yan jingguang Machinery Industry Press
The author spent a year collecting a variety of very skillful programming methods for common C program segments. The content is very promising and provides detailed references. For example, a common number of Fibonacci provides non-recursive solutions, rapid algorithms, and extended algorithms. The number of such algorithms goes deep step by step until there are several non-oily files that can be squeezed. For a game programmer whose speed is like life, and a common floating point number is converted to an integer, how can this problem be avoided?
Computer Algorithm BASICS (second edition) -- MA xiangxuan and other Huazhong University Press
I have seen some graduate students use it as teaching materials (it's a joke that graduate students only use algorithms ). This book is thin. In the words of the author, it is also "brilliant ". In fact, this book is the abbreviation of fundamentals of computer algorithms, but the original book has been published for too long and I cannot find it anyway.
The art of computer programming Volume 1-3
The author Donald E. knuth is one of the four masters in my mind tied to Feng nuoman, Dijkstra, and Shannon. This book was written by the author since I was a bachelor's degree and has been written as a doctor for ten years. Can be used as the core of computer technology-the ultimate reference manual for algorithms and data structures. There are also a lot of innovations, such as the common shell sorting, which puts forward the available (3i-1)/2 interval in the book, which makes it a little faster than O (N1. 5 ). Of course, this set of books is highly mathematical, so I am afraid that ordinary people (Me ?) It is best to read a Preliminary Mathematical book concrete mathematics? ^-^. Unfortunately, this set of books came out to the third volume and did not cover all common algorithm contents. However, for game programmers, the more common algorithms they use, the less terrible the loss.
STL source code analysis-hou Jie Huazhong University Press
Hou Jie does not need to introduce it. The flagship of Chinese technical writers says it has a world-class level. I think this book is a sunflower collection of C ++ and data structures ). That is to say, it is hard to understand at least a few layers of hell, because it requires too much preparation knowledge, for example, STL, data structures, generic programming, and memory management must be solid (do you have to look at the book "Small memory software" called the memory management design pattern ?), But once you understand it, it will be invincible.
Data Structures for game programmers
Every data structure routine is a small game, and an algorithm demonstration system is implemented using the SDL library. Although the content is missing, at least people understand the role of data structures in the game.
Its real game programs are not more special than other programs, and even require more solid basic skills. Therefore, it is of great benefit to spend time doing exercises that seem unrelated to practical applications. In addition, some algorithms that are widely used, such as the * Algorithm and its variants, involve the search traveling and branch-Restriction Methods of graphs, i'm afraid I have to read some difficult papers to fully understand the application, such as Donald E. knuth's an analysis of alpha-beta cutoffs. There are many such good books, such as data ures and Algorithms in C ++, programming pearls, and more programming pearls, I thought I had to read a more rigorous book and a more casual book.
Assembly:
IBM-PC Assembly Language Program Design (2)
Classic textbooks in China.
The art of Assembly Language
This book has 1600 pages, oh!
C language:
The C programming language version 2
Although the length is short, every routine is classic. (Our teacher started to use it as a teaching material, and later it was replaced by Tan Xiaoqiang's C language book. The reason is: the example is full of text processing. I am bored. Isn't modern computer programs spending a lot of time on string and text processing ?)
C ++:
I have studied C language and C ++ again. Let's take a look at the abbreviated version of C ++ Primer:
Essential C ++
Get started with C ++.
C ++ common knowledge: essential intermediate Programming
There won't be any important knowledge points completely overwhelmed. Next
The C ++ standard library: a tutorial and reference
The standard library, of course, mainly refers to the standard learning Reference Manual of the standard template library, and then it is best to write programs while learning.
Aggressive C ++
I mean those books with Adjectives + C ++ with seven or eight books. Let's take a look. Rome was not built on a day.
("Essential C ++", "valid C ++", "more effective C ++", "accelerated C ++", "valid STL", and "predictional C ++ ", more than tional C ++, imperfect C ++, although the title format is similar, every book is not sloppy .)
Who said that C ++ programs are slower than C programs? Take a look at the following:
The design and evolution of c ++
Only by knowing its past can we know its future and use it.
Inside the C ++ Object Model
Expose the C ++ compiler model.
Efficient C ++ performance Programming Techniques
When algorithm optimization has reached the limit, you can finally look at this book before using assembly. Sometimes, both advanced and low levels can achieve the same thing.
There are also two special books:
Modern C ++ design: Generic programming and design patterns applied
The author wants to combine the design pattern with generic programming and write a Loki library that tries to provide everything for implementation. However, his point of view has not received a general response from the C ++ community. Even so, this book is still a model of combining cutting-edge ideology with practical technology.
C ++ template metaprogramming
Use the compiler as a calculator? This book introduces the MPL template metabase of the boost library. Of course, when talking about the boost library, game programmers can't help but mention the graph library, which can be viewed in the book "The boost graph library. In addition, the python library, known as the first commercial 3D graphics engine in China, uses the boost-Python library. To be honest, I think the starting engine is quite good. Although the self-made 3D editor has a simple interface, its functions are quite complete, and it is also good to use it as a teaching content for the game school. There is also a complete set of online game solutions, known as China's first self-developed online game solution. I saw the 3D editor. I thought this was not a foreign editor named freeworld3d? Although a little biased, I have tried to crack it before. The English interface is also written in Chinese. You can use the resource modification software such as exclusive. I wondered why I was looking for a freeworld3d editor that was not very powerful? Is it just because it is cheap to dozens of dollars? The only thing special about it is that it supports exporting the scenario format of the Ogre graphics engine. In this way, you can't help but doubt the "autonomy" of its graphics engine. This kind of "independent" R & D is really shameful, as long as there is no SourceForge website in China (it is said that it was previously blocked with FreeBSD website ?), Chinese people can develop independently.
Some people will also recommend books such as C ++ primer, thinking in C ++, and the c ++ programming language. It is true that these books are also good, but I always think they are too big. It is better to spend more time looking at good source code abroad.
Windows Programming
Operating System Concepts version 5
Some Operating System tutorials in China are actually abbreviated versions.
Windows 95 system programming secrets
I have thoroughly analyzed the various types of Windows operating systems. Some people love to read the Linux kernel complete notes, and others love to read the lyrical books like writing an operating system by yourself, however, as a commercial operating system, I want to analyze the Windows kernel to this point.
Programming applications for Microsoft Windows Version 4
First Process threads, then virtual memory management, and then dynamically link to the database. The message mechanism can be discussed at most. The author said in the preface: "I don't talk about ActiveX, COM, and so on, because when you understand these basics, those things will soon understand !" It can be used as a prerequisite for programming windows.
Computer System:
Computer systems: a programmer's perspective
In my mind, the art of computer programming and the art of computer are two great books in the history of computers. The principles of computer composition, operating systems, compilation, and compilation are as follows, computer networks and other courses are integrated into this huge book, because computers are a whole in the eyes of the author.
Open-source reading:
Code Reading: The Open Source perspective
Zhang dasheng copied several hundred pieces of Shi Tao's landscape in the Ming Dynasty, and painted the landscape in disorder. Later, he went to Dunhuang to copy the landscape for a few years. Then he came back to see great changes and eventually became a great family. In fact, Programmers spend 0% of their time reading others' source code. Mr. Hou Jie said, "There is no secret in front of the source code." He also said, "The world is a huge event, and it must be fine ", you can refer to his "yellow spring, source tracing experience.
MFC:
In-depth introduction to MFC
I really thought that most people who have not read Mr Hou Jie's "Let's get down to the source of MFC" would not understand MFC programming. In fact, I plan to write a three-dimensional editor for the game artist over a year, by the way, as my graduation plan. Use MFC for the graphics library. You have no choice. If you want to use wxWidgets, it is nothing more than a curious version, but it is not a flip version of MFC, of course, it is cross-platform. Just as the resistance hacker knows the parts of his firearms well, if you want to use MFC to write a non-toy program, you must understand its internal structure. Another book, called MFC, is not the same.
IDE:
Microsoft Visual Studio 2005 unleashed
To do well, you must first sharpen your tools. Of course, I think it is better to use your own brain with code readers and graphical tools like source insight, slick edit, and code visualizer. However, if the source code is too slow, you can use visual program X. If you are always writing similar code, you can use code Smith. Cppunit can be used for unit testing, and the testing framework in the boost library is also good. If you are in a mood, you can use Visual Studio's external intel compiler, which is embedded with stlport, but it is not a big project. If you do not need to perform performance analysis, use vtune.
Programmer's path:
Game journey-my programming sentiment (# Add is not good)
Cloud wind brother. In my mind, game programmers are the first to push the card mark abroad, and the first to push the cloud in China. Maybe two years later, I will go to Netease as an Assistant Programmer of Yunfeng. It's my dream. (^-^) he wrote this book only based on what he understood, so the content won't be cool and new, but believe me, every time I read it, there are new gains, but they are not knowledge-based. because knowledge is endless, it is better to teach people to fish than to teach people to fish. spiritual inspiration is a long term. As Yao zhuangxian, the main programmer and art guide of the classic game "Legend of the legend" Yao zhuangxian ", said in the preface, the entire Chinese national game industry will be promoted by knowledge.
Proverbs of programming experts (# Poor add)
Liang zhaoxin is the author of Haojie's super solutions. What every qualified Programmer (programmer rather than CODER) should master is now the exclusive rumor of a programming guru. I don't know whether it is the luck of the author or the sorrow of the Chinese IT industry. There are still a lot of knowledge points, but there are some microwords about the status of MFC. I really think that the reputation of MFC is something that people who don't know how to use it stink. However, the author's complaints are also excited. Every creative programmer should not like the framework.
Masters of Doom: how two guys created an empire and transformed pop culture
The names of these games have always been names. (Now camark has been focusing on rocket manufacturing, and luros has his wife and his home for seclusion.) If it weren't for the honors of camark and Abraham, the graphics master, maybe I still don't know why in the current game. Undoubtedly, the history of the computer industry is promoted by heroes. This book truly records the thoughts of these worldly heroes.
As a programmer, I am also very interested in these planning and art books. I used to program the 3DS MAX plug-in for a year or two. I think maxscript is better than maxsdk, after all, most of the data in game development is imported and exported in model scenarios.
Planning:
Creating emotion in games: the craft and art of emotioneering
What else do we need to grasp the players' hearts behind the magnificent 3D world with magnificent targets and the brutal killing and exciting plots? Right, that is, emotion. What is truly touching is deep in the bone marrow.
Ultimate Game Design: building game worlds
From the name, we can see that the building of outdoor natural scenes is quite desirable for level designers, especially those who talk about outdoor natural scenes.
Developing online games: an insider's Guide
Just like an anti-pattern book about software team operations, this book talks about commercial operations more than technology. A game programmer who has experienced great hardships and now has translated this book.
Artist:
Digital cinematography & directing
Digital photography Director, whenever you place a camera in a 3D creative software such as 3DS MAX or Maya to design its motion track, have you ever thought that you are also standing in the director's position?
The animator's getting Val Kit
Reading this book about the movements of cartoon characters produces the idea of studying "cats and mice, while continuing to show contempt for a recent report on a computer-generated auto-cartoon animation software in China, the report said the move could greatly accelerate the production of Chinese cartoon cartoons. I do not discuss technically whether it is being placed on a satellite. (In fact, I know very well that I have prepared the cartoon animation-Assisted Software for a year or two ), but how can computer mechanical animation replace human spiritual creations?
The dark side of game texturing
Using Photoshop to make texture maps is a bit of learning.
3D graphics:
In 3D graphics, we should first look at the textbooks for analytic ry, linear algebra, and computational ry in a down-to-earth manner. There should be no less exercise. Domestic mathematics books are quite good. The computation ry by Master Su buqing is a world-class design. Unfortunately, Chinese CAD macros have been compromised by piracy. It's time for us to take over the baton. It's time!
Computer Graphics geometrical tools
There are many algorithms and many leaks in "detailed explanation of computer graphics geometric tools and algorithms.
3D math primer for graphics and Game Development
Simple, can be used as a "fast food" for three-dimensional mathematics.
Mathematics for 3D game programming & Computer Graphics Version 2
It is more in-depth than the above one, proving that the mathematical spirit of reasoning is also more intense. It can be used as a bridge between professional mathematical books and programming practices. Wide-ranging content, ray tracing, light computing, visual cropping, collision detection, Polygon technology, shadow algorithm, rigid body physics, fluid water waves, numerical methods, curve and surface, which is rich enough.
Vector game math Processors
If you want to learn MMX and SSE, let's take a look at it. But from the basics, be patient.
DirectX:
Introduction to 3D game programming with DirectX 9.0
The simple example framework written by the author of the Dragon book getting started with DirectX. I will simply use the state mode to tie all the examples together.
Beginning direct3d game programming
After obtaining a lawyer's degree, the author became a game programmer. It's really strange. Although this book is positioned as an entry-level book, its content has unique merits. It uses the dxsdk sample framework instead of the currently accepted dxut. There are two ways to compile, one is to rewrite it into dxut. Second, find the old sample framework. I am too lazy to download the entire early version of DirectX for an example framework. Later I found it in NVIDIA SDK 9.5.
Advanced animation with DirectX
DirectX advanced animation technology. Skeleton system, gradient Key Frame Animation, doll technology, facial expression deformation, particle system, cloth softening, dynamic material, not all. I often think about the effects exported from 3D creative software, which are converted into a pile of text or binary files, encrypted, compressed, packaged, unwrapped, unzipped, and decrypted, and then re-built a lite animation System Using game programs, gaming programmers are also really hard.
OpenGL:
Nehe OpenGL tutorials
Although it is a Web tutorial, it is no better than a formal book. Learning OpenGL is nothing more than reading hundreds of C function documents. If the basic knowledge of graphics is solid.
OpenGL shading Language
OpenGL supports the latest graphics technology, which relies on hotfix and makeup extension.
NVIDIA OpenGL extension specifications
Let's see.
Focus on 3D Models
Focus on 3D terrain Programming
Focus on curves and surfaces
As the name suggests, although the three articles are not very deep, we still need to look at them before performing reverse engineering on the unknown 3D model format and studying the geomipmapping terrain algorithm paper before CAD, if you haven't gotten the basics from somewhere else.
Script:
First look
Game scripting mastery
After understanding the structure of the virtual machine, you can design a simple script to explain the execution system.
Check the manuals of Python, Lua, and Ruby. It will take half a second.
Programming role playing games with DirectX 8.0
While teaching, I used DirectX to write a gamecore library, which was initially engine-oriented.
Isometric game programming with DirectX 7.0
3D is also based on two dimensions. This is why this book is worth reading.
Modeling and Implementation of Visual C ++ online games
Written by lianzhong's programmers, he has a solid skill in programming chess and card games, especially UML modeling and rotional rose.
Object-oriented Game Development
Use someone's words: "I like this book ."
Shader:
For more information, see
Shaders for game programmers and artists
This article describes how to write shader in rendermonkey using HLSL advanced coloring language.
Check again
Direct3d shaderx: vertex and pixel shander tips and tricks
Uses the Assembly coloring language, the sterling silver chijin.
Three Treasures:
Game programming gems
I only saw 1-6 books. It is said that 7th and 8 books have also come out? The accompanying source code often has bugs, but it cannot be concealed. This annual technical collection of the world's top game programmers involves various aspects of game development. I think developers with rich development experience can find resonance in it.
All five copies of graphics gems
Graphics programming Bible. After reading this set of books, you will understand the differences between scientists and engineers in the computer field. Scientists always say this is theoretically feasible. Engineers will say that to solve the problem within the time limit of logn, I can only give up and simplify the problem.
Two GPU gems releases
NVIDIA convened a graphic written by gurus. On the day I understood it, I also ran to the Siggraph International graphics conference to submit an article for luck.
Game Engine programming:
3D Game Engine Programming
It is an explanation of the zfxengine design philosophy. It is very plain, and there are too many surprises.
3D Game Engine Design
The theoretical knowledge of mathematics and physics is explained a lot. This is enough. Can you expect more?
Artificial Intelligence:
AI techniques for game programming
Genetic Algorithms and artificial neural networks are mainly used in-place arrays and graph algorithms. The prototype of the book is based on the content posted by the author on the gamedev.net forum.
AI game programming wisdom
It is equivalent to gems for AI programming.
PC game programming (man-machine game)
Based on the chess program, this paper introduces many search algorithms, except common extreme minimum Algorithm and its improved negative maximum algorithm, as well as deep priority search. It also provides a variety of improved algorithms, such as alpha-Beta, fail-soft alpha-Beta, aspiration search, minimal window search, Zobrist hash, iterative deepening, history heuristic, killer heuristic, SSS *, dual *, MFD and more. it is rare to see a wide array of data.
Plug-ins:
Data encryption and decryption (version 2)
Is the cracking serial number related to the anti-plug-in? However, which two things in the world are irrelevant?
UML Distilled Martin Fowler
Many people did not really understand UML until they read this book.
Martin Fowler is a real master. From the early analysis model to the essence of UML, he proposed revolutionary reconstruction. Later, he wrote a book on enterprise model. I am now leading a software development consulting company. He came to China as an expert at the javaone China conference last year. Personal Website: martinfowler.com
Three muskeys in the design mode:
Design Patterns elements of reusable object-oriented software
Design Patterns explained
Head first design patterns
Restructuring the three axes:
Refactoring: improving the design of existing code
Refactoring to patterns
Refactoring workbook
Software Engineering:
Extreme Programming explained: Embrace change Version 2
Among them, the value of simplicity is really confusing, which is why I like lightweight.
Agile Software development principles, patterns, and practices
Agility is really hot enough, and even companies are agile enough to say, but the Masters won't be so advertising.
Code complete version 2
Famous Books.
Mathematics:
Loss of mathematics and certainty M. Klein
It turns out that mathematics is nothing more than human invention and speculation, and it is not necessary to enter the temple. I think that so many scientists (mostly mathematicians) who don't eat human fireworks in history think they have discovered the mysteries of cosmic operation, it's time to go down the altar.
Physical:
General physics book 1 + = physics for game developers
I think that's all about physics. I can use the Newton engine and Ode to make full use of physx when the PPU of the physical card is popularized, I have watched the latest cell division game demo, where thousands of Box crazy collide players are drooling while touching their wallets.