Often meet some novice, ask if you want to aspire to the game engine development, there are some good suggestions. Another person thinks that even if the game programmer is using a business engine to do the project, it should at least reach the initial level of the engine, so that they can know the reason why, but also better use. summed up their own so many years of experience and lessons, to do a share. Opinion, for reference only.
1. Be familiar with C + + and data structure at least. Most game engines currently choose C + + as the development language for efficiency.
2, more contact demand. Many algorithms are difficult to understand if the requirements are not understood. Of course, it is best to find the engine research and development work, the use of commercial engine almost no chance. If you are a student, you can find such internship opportunities, or participate in some of these interest groups. Already engaged in the work, you can use the spare time to find such opportunities to participate, not to give money is not important.
3, in the introductory stage, the primary stage and the intermediate stage, followed by a senior engine programmer or team is critical, this progress is very fast, and not tired. In this respect I am not so lucky, most of the time is self-study, pressure, but also walked a lot of detours.
4, must adhere to the step-by-step. The introductory phase of the selection of materials must be intuitive, interesting, easy to explain, do not have too many theoretical things, there are many interesting examples of books is a good choice. My introduction is from the "Learning OpenGL 3D Game" began, the quality of the book is not too high, but is to complete a mini engine for the main line, after reading on the engine of the entire shelf has a simple but comprehensive understanding of the process is also very interesting. Do not come up to hold the Big Book computer graphics, that book at this stage in addition to combat your enthusiasm is not helpful. That is a good reference book, there are problems to turn the corresponding section, you can buy a reference for a lifetime. It is very important to keep interested and curious, otherwise the road of engine development is long, lose interest can not go down. Have time I also want to write a book for beginners to read, it is called "Play edge learning 3D game engine" bar.
4, in the initial stage, it is necessary to begin in-depth study of each module. This stage takes the study as the main, and can undertake some relatively simple development task. Resource loading, memory management, scene management, terrain, animation, rendering algorithms, sound and so on to at least understand it, the part of their interest can be seen in depth. The engine has developed for so many years, the various information on the Internet is quite many. This phase can be looked at with a good engine and data. Ogre not very recommended, the design pattern is too heavy. 2.x is much better, but it is still in the development phase. Urho3d is a good quality open Source engine, the disadvantage is that there is little information on the Internet, I intend to start writing this blog. But the engine is designed to be very concise, and the comments in the code are very detailed and easy to read.
5, to the intermediate stage, has a comprehensive understanding of the entire engine, mastered the knowledge can also be competent for the regular development task. This stage does not need to deliberately learn what, meet what needs to study the corresponding content.
6. When advancing to the advanced stage, few people can help. The engine is an algorithm-intensive program, so it requires a lot of research on the English version of the data. At this stage, the overall design of the engine has its own unique understanding, basically can be independently.
7, how to enter the level of the Ashes level I do not have any experience. If you have a chance to ask Carmack, don't forget to share it with me.
8, the engine involved in a very wide range of knowledge. So avoid aimless look, it is best to choose a point of their own good or very like to cut. For example, I was interested in beautiful graphics when I entered the profession, so I started with the graphics algorithm first. First focus on a module, must be refined, thoroughly a further expansion, or what is a half bottle of vinegar is very bad, such people I have seen a lot. In the study of a module will slowly involve other modules, gradually expand the scope.
9, must be able to sink down the heart. Unfortunately, many people are not suitable for the engine of the bottom of the research and development work.
10, do not repeat the wheel building. Many people think that they can make their own engine very tall, after watching a few graphics demo on the hands, the beginning of the blood, the stall was paved, the results of a few days of fresh energy passed, only a heap of waste without any value. It is true that you can improve the level of your own hands, but why not choose a smaller module to do it in depth. You know, today's engine is already not rely on a person's personal heroism can be done, is not carmack, there are commercial value of the engine can only rely on the team to make.