What is the hardest job, the hardest job for programmers? We are known as software migrant workers.
What programmers work the hardest, game programmers work the hardest, we work overtime every day, with a meager salary, claim to strive for the ideal.
Software migrant workers are actually a little high. In fact, apart from looking at our clothes and collars as clean as migrant workers, we feel a lot more pressure in our hearts than migrant workers. We must learn new languages, new computing methods, and new architectures every day. This kind of pain can only be understood by programmers.
However, since we strive for the ideal, we need many people to pay for it. I personally hope that people who are interested in playing games will not be able to take a detour, or give new people a direction to enter the game industry.
Maybe you cannot find a direction to become a game programmer, because you like games and want to make your own games, but you have no choice but to give you some advice, so I hope that what I wrote will be helpful to you. If it is helpful, let us know.
To become a game programmer, you must first become a programmer. Only when you become a "programmer" can you become a "game programmer". game programmers have to make more effort than programmers in other industries, you cannot imagine the challenges and difficulties to learn more. If you do not enter this industry, you may not be able to understand it.
If you do not have the courage to become a programmer, you cannot become a game programmer. A qualified game programmer must be a qualified programmer and must have the basic knowledge of the programmer. A programmer must have a solid knowledge of data structures, operating systems, and software engineering. You must master the C/C ++ language. Otherwise, everything will become a castle in the air.
If you are a common programmer or you are a new employee, but you want to enter the gaming industry, do not worry about learning about games, we should first prepare to become a qualified programmer and consider training in the gaming industry.
First, you must be familiar with the C/C ++ language. As for how to become a C/C ++ programmer, there are related articles in my blog. After you have mastered the basic knowledge of the C/C ++ language, data structure, and operating system, the best and fastest way to get down is to apply for a game company, go to this industry to learn from experts, learn from people in the same industry, and create a complete game to let others take you step by step, in this way, you will know where to start and where to go.
Game Development involves too many things and is a comprehensive and complex system engineering. A simple online game has more than 0.2 million lines of code.
Next I will talk about the underlying engine of game development in the framework.
What are the game development engines?
1. graphics engine (this is the most core and complex, with the largest amount of code. I recommend that you study ogre or irrlicht. The most widely used open-source graphics engine in China is Ogre. Ogre has a good architecture, and the code quality and readability are very good. It is worth studying. Irrlicht is a good 3D engine for beginners, and the code is very readable. The key is that the Code is small, simple, and easy to understand .)
2. sound engine (sound engine is much simpler. We recommend that you use fmod, a free engine. Many world-class and awesome games use this sound engine, which is easy to use, the results are good, and many functions are supported .)
3. physical engines (physical engines are rarely used in domestic games. Some physical effects are basically animated by direct modeling of 3dmax, rather than computing by programs, if your game requires the support of the physical engine, we recommend that you use the ode physical engine .)
4. A Game Engine (a game engine is generally a game framework that encapsulates a complete set of packaging solutions for images, sounds, networks, scripts, and so on, along with various tools, for example, the map editor, particle Editor, level editor, Sound Editor, script editor, and other game engines may also include server-side database-to-database encapsulation and path search algorithm encapsulation. In short, it is a very complex system engineering .)
5. Network engine (the network engine needs to be encapsulated according to different game types. It may need to support P2P functions and provide stable support for large-scale concurrency. Libevent, Ace, and libev are recommended for open-source network engines. Ace is huge and the learning curve is steep. However, once mastered, libevent is lightweight and efficient .)
6. UI engine (as the name suggests, it is a variety of buttons in the game for players to click, such as backpacks, blood bars, chat boxes, etc. In the gaming industry, the open-source library cegui is mostly used, however, cegui does not fully meet the game's needs. It needs to be developed and encapsulated twice, and the workload is also large .)
7. Script Engine (the most used script in the gaming industry is Lua, and python is also used more. The script engine can be encapsulated for direct use by planning, and the NPC logic and attribute values can be set through a visual interface .)
When we see so many engines above, we should not be confused. Each person's development direction is different. It is impossible for a person to grasp all these things in a game company, maybe you only need to master one of them and study to the level of proficiency. In gaming companies, there are people responsible for 3D engine Image Rendering, people responsible for game logic, people responsible for UI logic, and people responsible for databases, if you only understand the C/C ++ language, you can apply for a game logic programmer or a UI programmer. In this industry, you can learn more about graphic engine rendering. In addition, you can find information directly from the Internet using commonly used algorithms in the gaming industry. The most commonly used algorithms may involve pathfinding. Both 2D and 3D games involve pathfinding, pathfinding algorithms can be used to search for information on the Internet. 3D search algorithms in 3D games are more complex. In short, as a programmer, there is no shortcut to writing code and debugging code more frequently.
I recommend a few good gaming books.
Windows game programming master skills
3DMaster game programming skills"
These two books explain the basic knowledge of game development starting from the underlying principles and are very useful to game beginners.