Yesterday, I accidentally talked to my colleagues about the development engine, which is not an easy task.
First, I want to figure out what the engine is. As early as the 80 s and 90 s of the last century, game development started from scratch and there was no engine. Later, some smart developers
All games are independently packaged into a function library and provide a group of APIS for second developers to call. The engine is available here. That is to say, the essential concept of the engine is
Function libraries can be reused in different game projects, or at least in the same type of games.
Nowadays, the modern game engine is more complex. It integrates various module systems, resource management systems, rendering systems, physical systems, sound systems, and so on. Some of these systems
It is easy to implement and somewhat complicated, and sometimes they are not completely isolated from each other. What's more, they work together to support each other. More importantly, a complete
The engine also has complete tools, Scenario Editor, special effect Editor, role editor, and so on.
Now, it is not easy to develop an engine. In general, it is still a challenge. The engine architecture is designed in two aspects.
As mentioned above, the engine is composed of various systems, and there is a more or less relationship between them. This requires a good architecture design so that each system can be isolated to the maximum extent and at the same time
Calling mutual support is more natural and coordinated. It is not easy to achieve this. It is difficult to achieve this without years of experience. At the implementation level, the definition of a function is as small as that of a variable.
The workload, such as the ease of use of tools, is not small. In my experience, a 3D engine does not include any logic. In addition, the editor code is about ~ About 20 rows.
If I think the development engine is easy, I think it may be only camark qualified to rewrite an engine in a short time. In addition, it is considered that it is easy to create an engine, or
If you are not familiar with it, either you have not written a real engine from the beginning to the end, or you can use a powerful engine. After all, the reality is in front of us, and there are no more than 15 powerful engines. Quake, unreal, and cryengine, which are familiar to everyone, have evolved over several years or even more.
It is very easy to do something special and mysterious. I think this should be done in several aspects, if it is a special effect implemented by shader, such as hdr, this is of course very easy,
At least a large number of existing shader code can be used. You just need to add it. If some algorithms are relatively strong, such as some light effects, if it is just a simple
Show, write a program of thousands or even tens of thousands of lines, just show this one (just like the test program in many papers), the difficulty is not how to structure the code, but you
Algorithm. If you refer to others' papers to implement this demo, the difficulty lies in your understanding of the algorithm. Of course, the premise is that your encoding is not a problem.
C/C ++ veteran.
The real engine has far higher considerations than this. It needs to consider the relationship between this feature and other parts of the engine, the calling process, and how it is designed to be more reasonable.
To improve efficiency and conciseness, increase the impact of this feature on the engine performance, what changes will be brought to the open interfaces of the engine, the operations for tool creation, and the file data format
And so on. Some column problems make a comprehensive problem. The effect is only the beginning, not the end !!!
So what exactly does an engine need? Money? Time ?, Well, these are what you need. After all, you can't be hungry, but you just need them. Isn't it a powerful engine everywhere?
. What you need most is persistence and toughness !!! In the continuous design of the coding process to improve the correction, or even overturn again, the pursuit of the ultimate process.
To create an excellent engine
1. a deep understanding of engines and engine systems, knowing what they need to do, or what they only need to do, directly determines whether you are doing an engine or a hodgedge.
2. The structural design of the engine and various systems is very important and determines the vitality of your engine.
3. Strong skills in C/C ++ Programming
4. Your persistence and perseverance
The first three items can be learned, improved, and improved. The key lies in Article 4!
This article from the CSDN blog, reproduced please indicate the source: http://blog.csdn.net/Leo1981816/archive/2010/04/27/5532276.aspx