Home  >  Q&A  >  body text

c++ - 我想学习游戏编程,需要哪些知识?

本猿web程序员一枚,熟悉c#,对c++也有些经验,想踏入游戏开发的大门,我该从何入手?

——————————————————————————————————————————————————————————

很感谢各位的回答,最近比较忙没什么时间上来。

u3d我有了解过,是一款开发周期比较短的引擎,其优点在于跨平台,缺点是效果上较老牌引擎差很多。

经过考虑,我认为想要成为一名能当一面的游戏开发者,应该从底层学起,再到高层,从而能够独当一面。

最后,我没有选择哪一款引擎(也许会选ue4吧),选择从directX学起,了解3d基本知识,掌握基本HLSL的编写,以此打下基础。

很感谢各位的回答,虽然并不是我最终要走的路,但是对我来说还是十分有用的。

天蓬老师天蓬老师2765 days ago822

reply all(7)I'll reply

  • 巴扎黑

    巴扎黑2017-04-17 11:27:19

    Since you have C++ background knowledge, you can just use cocos2d-x. Developed in C++, it is cross-platform, there are many tutorials, and there are many people who know it (someone will teach you).

    reply
    0
  • 迷茫

    迷茫2017-04-17 11:27:19

    My understanding is that the poster wants to develop a mobile game client, and my answer is also based on this premise.
    First of all, the choice of game engine. If you want to learn 2D or 3D games, there is still a difference between the two. If it is a 2D game, we recommend cocos2d-x. If it is a 3D game, we recommend u3d (2D games are also available). The game engine is determined. Finally, all you have to do is gradually become familiar with the usage of various APIs. Are there any tutorials on the Internet?
    Secondly, after getting started with the above, it will take anywhere from a few weeks to half a year, and then you will start to select design patterns, data structures and algorithms, such as A*, FSM, behavior trees, etc. There are also some mathematical things, such as linear algebra.
    Again, understand the script. If it is cocos2d-x, it is lua or js. If it is u3d, it is C# that you have already mastered.
    Finally, if you want to go deeper, you can learn about OpenGL ES and Shader programming. At this time, you have entered the master mode and can kill everyone with one move.

    I am still in the early stages. I have done many projects with cocos2d. I have a basic understanding of ejoy2d. I have talked a lot about u3d during my study, but these are my learning plans for your reference. There are so many things to learn as a game programmer, and it’s hard work but also happiness. .

    reply
    0
  • ringa_lee

    ringa_lee2017-04-17 11:27:19

    A unique suggestion is to learn naked writing first. For example, first learn the calling method of h5 canvas, then learn how to draw dotted lines, how to interact with the mouse, and then understand that the game is a frame loop process, and understand a What basic functional modules should the game framework contain? From your perspective, different game development frameworks are just different external moves, but they are all the same internally. Then choose a specific game direction and select a development framework in a targeted manner.
    There is a computer vision thing called processing, which is a dialect of Java. You can take a look. It is not for making games, but it can be used for making games. It's not considered a framework, it can only be considered a relatively convenient collection of APIs. But its logic is very clear, and it is quick to get started. After you obtain the functions of each API, can't you piece together a game? To sum up the piecing together process, that is the development framework.

    In addition, first determine what kind of game development you refer to as a unique game developer - whether it is a web game, a mobile game, or a stand-alone game. I think it is recommended to learn mobile game development, and do it with h5. The game is not bad and has the advantage of being cross-platform. Personally, I think h5 is not suitable for commercial applications. H5 is a good choice for mobile games. In addition, it is also recommended to make native games. Cocos2dx is indeed very popular. If you want to learn more, it is recommended to learn objective-c directly and learn how to make ios apps first.

    reply
    0
  • PHP中文网

    PHP中文网2017-04-17 11:27:19

    Unity3d? Many mobile games and web games use it.

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-17 11:27:19

    I made a small j2me game when I was in school... I personally think that communication between threads needs to be learned (for example, if an NPC talks to himself, it may be a thread, and you run over to talk to him, the NPC will Turning around), you may also need to learn a little bit about data structures, because algorithms are used more in games, and better data structures can reduce the complexity of algorithms (such as automatic path finding), welcome to fold ^_^

    reply
    0
  • 阿神

    阿神2017-04-17 11:27:19

    Scripting language

    For example lua

    reply
    0
  • PHP中文网

    PHP中文网2017-04-17 11:27:19

    The author is right to choose to learn hlsl first. I am also learning this. The tool is RenderMonkey. Although it only supports Shader Model 3, if you have a thorough understanding of SM3, other Shaders should be no problem. Pure graphics rendering That's all, not to mention that the ShaderFX function of 3ds Max and Maya can also visually generate Shader code without having to write it yourself.

    I think the most important thing in the game is scene management, which controls everything, rendering effects and efficiency, collision detection... After getting the Shader almost done in RenderMonkey, I can improve the BSP, PVS, etc. Basically, even if you are not an expert, you are an average person. Hands on.

    reply
    0
  • Cancelreply