Game development has always been a mysterious discipline. No matter the design books in the book building or the development strategy on the Internet, there is no such thing as daunting, lengthy code, and profound words, this has caused various misunderstandings for game developers. For a long time, they mistakenly believe that game development is DirectX, Opengl, and ......, This concept can be seen from recruitment. If you have little understanding about game development, is game development really complicated? Actually not. It is a simple structure.
For games, DirectX was generated very early. DirectX was just an SDK. When it was not used before, the games still existed. Yao Xian wrote the Basec language, tetris is just a collection of assembly code. Today, flash and silverlight are both a development kit and a tool, which is not too complicated.
I am a game development enthusiast. In conclusion, I think that the basics of game development should be at least understood in the following three parts:
1. Logical Thinking and Basic Disciplines
Logical thinking is an important part. If logical thinking is good, many problems can be easily found before (we call it YY), but logical thinking is not equal to rational thinking, game Development requires logical thinking. If it is too rational, game development will not be full of passion. For example, in any scenario, designing a double entertainment project requires logic, not rational. However, reason is the foundation for controlling the brain and guiding us to do things and do things, just as this two-person entertainment project does not take the kitchen knife to cut each other, nor does it beat a single person to fight back, because reason tells us that we need to be fair and secure. Game Development is a discipline that combines logic and rational thinking. If we want to develop a good game, this aspect cannot be ignored.
For basic disciplines, it is recommended that you learn data structures, have a good mathematical foundation, and have an artistic feeling. These disciplines are the basic knowledge that will affect game development in the future, if there is a higher level of pursuit, learning psychology, economics, graphics, and project management will lay a good foundation in the future.
Second: game loop
In the final analysis, any game is actually a loop, a large loop, a variety of small loops, and a variety of small loops. These loops create a system for the game. Under this system, achieve the final display through a loop. If there is no loop in the game, it can be said that it is not a game, not object-oriented, not MVC, or an interface or control for the game, it is a manifestation of a simple loop. This theory is not a profound idea, but the simplest prototype of game development. If there is a better model than this, I can say, it is easy to understand those patterns that may not have loops. Games can be processed cyclically, easily and quickly.
It is just a simple expression. Experts may have other arguments about this. Later, we will use code to consider its rationality.
Third: code design mode
Although Silverlight provides the MVC design method, game developers should understand the code design patterns of software development. These design patterns are often divided into different types. Common types include:
Creation Design ModeSuch as Factory Method mode, Abstract Factory mode, Prototype mode, Singleton mode, and Builder mode.
Structural Design ModeSuch as Composite mode, Decorator mode, Proxy mode, Flyweight mode, Facade mode, and Bridge mode.
Behavior modeSuch as the Template Method mode, Observer mode, iteration sub (Iterator) mode, Chain of Responsibility mode, and Memento) mode, Command mode, State mode, Visitor mode, and so on.
As a game developer, you need to understand Abstract Factory, Iterator, Observer, and Visitor, if you understand these methods, you will be familiar with game development.
If it is engine-level development, you must clarify the design model. I have written two game engines, C ++ and DirectX. Now I can go back and see that the code is really rubbish, the main reason is that there is no high level of ideology, so the code written is nothing-no system, no performance, no convenience, no security ...... On the other hand, there are good design ideas and systems, and the Code cannot be written. It is precisely because of the tens of thousands of lines of code that have been built on the previous two bases that we can learn more. Therefore, we need to strengthen both aspects, so that code design and Coding can be improved.