富达注册  

你的位置:富达注册 > 关于富达注册 >

「上海字符无限科技」游戏开发程序员的基本功有哪些?

发布日期:2024-08-23 22:38    点击次数:149

游戏开发程序(Programmer):总的来说有逻辑程序员(GamePlay)与引擎程序员(GameEngine)两种。

逻辑程序员一般又包括客户端程序( AI,战斗,通用功能,UI界面等)和服务器程序(职位比较笼统)。

引擎程序一般包括客户端引擎(渲染效果研发,物理表现)、服务器引擎、游戏工具、通用逻辑引擎(如AI通用框架)等。

和其他程序猿一样,要想做一名优秀的游戏开发者,底子不能差,算法,数据结构,语言等基础一个都不能少。

当然,除了这些基本功外,还要对游戏有比较深入的理解,比如看到一个功能就能猜出或给出一个大概的实现思路。

看一下游戏开发程序员的基本功有哪些:

数学基础:根据你所做内容来决定,一般上层逻辑比较少的去考虑到积分等高数内容。但是如果想搞图形学,矩阵线性代数,高数必须要有一定的功底

算法:常见的排序,查找需要理解并掌握,进一步常见的还有分治,贪心,动态规划,有时候现学现卖也是可以的。

另外,除了这些基本的算法,在游戏领域还是有很多其他领域不太常用的算法,比如八叉树查找,碰撞检测,A*。还有一些很特殊的情况需要开发者自己去寻找合适的算法。

C++(C#):基本语法,模板,代理,命名空间,const,继承,内存结构,虚表,引用,断言,宏定义等

数据结构:首先是掌握链表,数组,队列,堆,栈,图,树等数据结构,然后是各种排序,查找,遍历等算法。这些掌握了以后可以很快的熟悉stl或者类似的基本库原,用的时候可以更准确的选择合适的数据结构

设计模式:一般来说,我们需要设计模式来快速的搭建游戏逻辑框架,比如前面提到的各种逻辑系统。而且还需要通过设计模式来理解引擎各个模块的设计思路。当然,如果你想设计游戏引擎,那更不能少了设计模式了。

对引擎各个模块由一定深入的理解:这个不用多说,看一遍游戏引擎架构吧,不理解写出的代码经常会出现各种问题(比如同步问题),编辑器各种功能也用不好。

内存管理:可能很多引擎或者语言已经尽可能的帮你处理内存了,但是你难免需要在一些特殊情况下自己处理,内存池技术,各种C++的new的使用,不得不会。

对开发工具的熟悉:这里并不是指只是对某一个引擎使用熟练,而且对不同引擎相关的内容都有一定理解,可以很快的触类旁通。

编译原理,链接,第三方库:经常会遇到各种链接错误,编译错误,打包错误,这需要你有一定的相关知识与经验去解决这些问题。

性能分析与性能优化: 主要就是三个方面——内存,CPU,GPU。着手点有渲染批次,渲染实例化,布料优化,网络同步数据量,物理开销等,加载资源优化(包的合并),裁剪,声音文件加载,LOD,美术资源制作规范化等。

调试的时候可以使用引擎内置工具,进一步的细节可以采用Intel的VTune工具(有时间我可能写一个相关的使用文档)

对游戏的理解:虽然不玩游戏也一样能参与游戏开发,但玩过游戏的人还是有优势的。最明显的是玩过游戏的人会对游戏有更多的想法与意见,也习惯去主动学习其他的游戏的技术与优点。(程序这样,策划更是如此)

开发经验:这个就比较宽泛了,难以只言片语说清。比如你的游戏莫名其妙的出现了一些bug,新手完全无从下手,而有经验的人会有各种手段去调试并解决。

经验丰富的老手有时真的抵得上N个新手的,所以这需要各位不断的学习与实践了。

「上海字符无限科技」杰普软件战略合作伙伴,十八年来专注IT行业产学研一体化,主营游戏开发与设计,Unity/UE虚幻引擎开发与设计,VR/AR/MR,智慧城市,数字孪生,元宇宙相关等高端人才孵化。欢迎联系我们~

发布于:上海市

Powered by 富达注册 @2013-2022 RSS地图 HTML地图