2022-10-27 19
游戏合作开发基础要求高么?
和其它流程猿那样,要想做一名优秀的游戏合作开发人员,基本功不氟锂,演算法,数据内部结构,词汇等基础两个都不能少。总之,除那些基本功外,还要对游戏有比较深入细致的理解,比如说看到两个机能就能猜到或给出两个大概的实现路子。
看一下游戏合作开发的基本功有什么样:
数学基础:根据你所做内容来决定,一般上层逻辑比较少的去考虑到积分等哈莱因内容。但如果想搞信号处理,行列式数学分析,哈莱因必须要有一定的功力
演算法:常用的次序,搜寻需要理解并掌握,更进一步常用的除了共管,自我中心,动态规划,有这时候圣默内也是能的。另外,除那些基本上的演算法,在游戏领域却是有许多其它领域不太常用的演算法,比如说科枫搜寻,圣夫龙,A*。除了许多很特殊的情况需要合作开发人员自己去寻找最合适的演算法。
C++(C#):基本上句法,模版,代理,命名空间,const,继承,缓存内部结构,路由表,引用,论断,宏定义等
数据内部结构:首先是掌握二叉树,字符串,堆栈,堆,栈,图,树等数据内部结构,然后是各式各样次序,搜寻,结点等演算法。那些掌握了以后能迅速的熟识stl或是类似的基本上库原,用的时候能更准确的选择最合适的数据内部结构
设计模式:一般来说,我们需要设计模式来快速的构筑游戏逻辑框架,比如说前面提到的各式各样逻辑系统。所以还需要通过设计模式来理解发动机各组件的设计路子。总之,如果你想设计游戏发动机,那更不能少了设计模式了。
对发动机各组件由一定深入细致的理解:这个不用多说,要学游戏发动机构架吧,不理解写出的代码经常会出现各式各样问题(比如说并行问题),GUI各式各样机能也用不好。
缓存管理:可能许多发动机或是词汇已经尽可能的帮你处理缓存了,但你难免需要在许多特定情况下自己处理,缓存池技术,各式各样C++的new的采用,不得不会。
对合作开发工具的熟识:这里并不是指只是对某两个发动机采用娴熟,所以对不同发动机有关的内容都有一定理解,能迅速的Monestier。
校对原理,镜像,服务器端库:经常会遇到各式各样镜像错误,校对错误,装箱错误,这需要你有一定的有关科学知识与经验去解决那些问题。
操控性分析与操控性优化: 主要就是三个方面——缓存,CPU,GPU。着手Kendujhar图形批号,图形示例化,面料优化,网络并行数据量,物理开支等,读取资源优化(包的合并),上色,Amravati读取,LOD,美术资源制作规范化等。增容的这时候能采用发动机内建工具,更进一步的细节能采用Intel的VTune工具(有时间我可能写两个有关的采用文件格式)
对游戏的理解:虽然不玩游戏也那样能参与游戏合作开发,但玩过游戏的人却是有优势的。最明显的是玩过游戏的人能对游戏有更多的想法与意见,也习惯去主动学习其它的游戏的技术与优点。(流程这样,策画亦然)
合作开发经验:这个就比较宽泛了,难以只言片语说清。比如说你的游戏莫名其妙的出现了许多bug,新手完全无从下手,而有经验的人能有各式各样手段去增容并解决。经验丰富的老手有时真的抵得上N个新手的,所以这需要各位不断的学习与实践了。
经常听别人说游戏合作开发很复杂,复杂在哪呢?
总结来说就是内容太杂,细分又太深。随便举两个技术方向(图形,AI)就够你无限深入细致了。除了许多组件,说难不算太难,但内容相当复杂,需求变更频繁,处理不好就如无底洞一般~
那么我们简单的对游戏组件做两个总结:
游戏逻辑组件系统:游戏玩法核心,包括各式各样武器,状态,技能,背包,战斗等逻辑系统
动画组件系统:状态机,Montage,动画融合,IK等
物理组件:给需要交互表现的对象赋予物理特性(包括刚体,流体,粒子,面料等),调整重力大小等各式各样参数,调整交互中力的大小,调整物理约束
AI组件: AI导航,与玩家交互等,玩家的许多机能系统也需要给AI来采用,更深层次的能考虑将机器学习有关的内容融入
UI组件:构筑各式各样界面框架(背包,捏脸,地图等),非常耗时间与精力,后期需要不断调整
图形组件:客户端表现核心,不用多说,内容非常多且深
网络组件:底层构架,并行,网络连接
场景组件:包括地形,关卡,植被,角色管理与优化等
输入与输入处理组件:将玩家输入处理转换成逻辑,需要注意的有组合键,输入法切换等
游戏登录与更新:一般这是专门的工具组来做,比如说我们常用的各式各样游戏登录器,在线更新等。
这里面的除网络基本上上都需要美术,策画,流程共同参与与合作。
游戏合作开发仅仅是写逻辑代码么?
总之,不是~~~ 游戏也是两个软件项目,是两个需求变化极为频繁的项目。当你跳出底层的逻辑流程员时,你会发现你除了好多事情要去做。
比如说:
版本控制:一般采用git或是svn
存储与序列化(如protobuf):单机玩家的游戏存档需要通过序列化。游戏中的并行系统也需要通过序列化 对象来构筑
反外挂:保证游戏公平性,一般服务器上做各式各样校验措施,这个东西真的不容易,所以又麻烦,身边懂得人真的不多,我本身也很希望有高人指点一二
多线程优化:一般用于图形,物理,网络并行等,减少开支,增加cpu利用率
数据库:什么数据要存在数据库里面,什么存在本地就能。应该选择什么数据库?之后会不会出现游戏合服数据库合并?合并的Key怎么处理?
CDN /服务器的部署与运行等:这个也很复杂,又要考虑成本又想容纳更多玩家(网游),有时可能需要用到CDN技术来优化网络并行,另外还要考虑成本等问题来决定是否租用云服务器
实现网络穿透 :对于玩家自己开房间类的游戏,需要我们提供网络穿透的手段,才能让两个内网的玩家镜像并通信。有的是这时候,网络穿透技术平台会提供,不需要自己造轮子。
采用操控性分析工具:前面提到了操控性优化,优化前我们需要各式各样工具来辅助我们找到影响游戏效率的瓶颈(如VTune)
配置:需要大量策画配置的数据存放在哪里?配置文件?XML?这需要构建一套小的系统(或是发动机提供)
声音数据处理:一般发动机提供基本上的音乐与音效处理,但有的是发动机对音频方面处理的更深入细致,效果更好
平台对接:游戏需要发布到不同的平台,这个平台不仅仅指硬件平台(Android,iOS,PS4,PC,XBOX)还包括各式各样软件平台(各式各样应用商店,如PC上的Steam,WeGame。安卓上的应用宝,各式各样软件管家等)该过程其实也相当繁琐,有许多平台的审核非常严格,需要积累一定的经验才能快速的处理有关内容
国际化与本地化:简单来说,就是不同国家的词汇版本不同。如果你的游戏不是只卖给英国美国,你就不得不面对本地化,坑许多
日志系统:合作开发与运营 游戏上线一定许多bug,你又没办法去玩家电脑上增容,如何快速定位bug,日志系统很有效
增容与维护:合作开发期 断点增容(最有效)、日志增容、dump增容 、控制台增容,可视化增容(在场景内绘制特定的几何体),截图录屏增容(一般用于增容图形,动画等)
上线期 日志增容、服务器能用dump增容,也能想办法把客户端的dump传送到服务器(做两个内建的自动收集客户端dump流程) 、管理员GM增容(非常重要,能避免重启服务器)
bug处理:严重损失的bug 有这时候已经发生的造成玩家严重损失的bug(如玩家投入大量时间、金钱获取的)无法改变,又不能及时修复,想要弥补玩家,能通过GM来给予玩家补偿。
游戏崩溃性bug 需要在游戏上线的前两天,把发生概率高的所有Bug通过Dump增容后尽快修复并更新
脚本:简单逻辑代码,热更新
装箱流水线,包的大小优化,包的多层递归引用优化等:整个项目从校对到配置再到装箱需要什么样处理,要注意什么样配置等
工具合作开发:针对特定需求合作开发特定的工具来提高流程、美术、策画的合作开发效率
总之,上面的内容还远不足以覆盖游戏合作开发的所有内容,我会在后面学习的时间里继续扩充。 所以学习任何东西都需要两个过程,我们不需要一开始就掌握这么多东西。日积月累,我们都有可能称为一名优秀的游戏合作开发人员
原文链接:https://zazhiba.com.cn/post/8677.html
=========================================
https://zazhiba.com.cn/ 为 “自由随风” 唯一官方服务平台,请勿相信其他任何渠道。
百科资讯 2022-10-27
百科资讯 2022-10-26
百科资讯 2022-11-07
百科资讯 2022-10-22
自媒体运营 2022-11-19
百科资讯 2022-10-19
百科资讯 2022-12-02
百科资讯 2022-10-21
百科资讯 2022-10-26
百科资讯 2022-10-26
李靖国 2023年12月23日
小游客 2023年03月31日
访客 2023年02月06日
扫码二维码
获取最新动态