Then any game developer needs to know most of the knowledge of game development. If you are a client programmer, you need to know the following basic knowledge: graphics, graphics API(D3D/OGL), algorithms/data structures, physics, game logic, music sound effects, artificial intelligence, programming languages, design patterns, operating systems, tool writing and UI.
Among them, programming language and design pattern are the most important, and they are also the basic parameters to judge whether an excellent programmer is good or not.
Other skills unrelated to programming:
Communication skills, excellent English reading ability, document writing ability, independent problem solving ability, and understanding of current popular hardware systems.
Engaged in game development for about ten years, now I can barely be called a qualified engine developer. If you want to be a real game developer, you must be prepared to suffer.