李强 发表于 2023-5-31 22:23

游戏开发血泪史-Gameplay碎碎念

前情撮要

开篇先简单说一下想写这篇文章的原因吧,首先必定不是因为年底最后一天没事干划水打发时间(手动狗头),主要还是因为比来开始玩《塞尔达传说:荒野之息》有一点小小的感到吧,而且本身对做游戏的想法也有了一些改变。说来惭愧,作为一个训练时长接近两个两年半的游戏客户端开发,比来才接触这款神作。作为一个主要做Gameplay的游戏客户端开发,玩游戏的视角也会稍有分歧,在沉浸式体验这款游戏的过程中,我一边沉浸于骑马狂奔看风光、打猎打怪偷刀兵,一边也感慨老任精细到令人发指的游戏细节,各个游戏元素的联动,天气系统与场景、角色、物品的互动,战斗中的复杂物理交互、可以进行环境交互的“化学引擎”,毫不生硬的融入游戏的新手引导。。。各种只有你想不到没有你做不到的操作,玩法设计和技术相得益彰以及强迫症一样的细节把控等等,瞬间就开始感慨本身平时做的都是些什么玩意儿。



大电视还是爽

说回游戏开发,国内的游戏开发范围一直有一条潜在的鄙夷链,认为做TA的、做图形的、做引擎的就是比做Gameplay的、做UI的牛掰,逻辑仔就是客户端里最没技术含量的存在。曾经我也一度认同这个不雅概念,疯狂学习图形学,学习打包技术,学习游戏引擎架构里的一些高深的技术,急切的想逃离Gameplay的开发,但随着工作经验的加深和对游戏认知的提升,我逐渐发现这个想法并不正确,做游戏开发并不是技术牛逼就行了,更重要的说到底还是可玩性,也就是说Gameplay是游戏设计中非常重要的一环,即使你的画面再灿艳,游戏性能优化的再牛掰,甚至做到小灵通都能完美运行,但是毫无可玩性,那又有什么卵用呢,没有玩家会为此买账,也许只是一堆技术堆砌起来的工业品,甚至是工业垃圾,当然并不是说这些相对底层的技术不重要,所有的游戏技术都是为了搭建最终的游戏世界而处事的,好的可玩性加上帅气的衬着,再配上顺畅运行的性能,才是真正牛逼的存在。此外Gameplay也是成立在各种游戏引擎底层技术以及计算机基础上的,下面结合本身的开发经验举几个常见系统作为例子:
交互系统:
你得了解骨骼动画的机制,IK算法,法式化动画,移动组件的使用等等才能实现好的交互表示,此外没有镜头的交互也是没有不完整的,那么相机的插值算法,镜头不变与降噪(滤波算法),多模式相机系统的设计,分歧相机模式的融合、平滑措置,呼吸镜头(相机噪声发生器的实现)等等也是必要的常识了。再者,复杂点的交互就得上Timeline或者节点编纂器了,这些也是Gameplay开发的家常便饭。
任务(对话)系统:
复杂的线性或者非线性任务,试想随便一个大型游戏的任务或者对话,都有巨量的配置工作,多层嵌套和多种逻辑判断下的选择对话,而且分歧的对话都有对应场景、人物的动画、语音、表情、UI等等的表示,如何提供有效的编纂方式,是不是得掌握编纂器开发的能力。再进一步,上述内容在某些游戏中基本会一直贯穿,如果每次编纂后都需要重启游戏才能看效果,那筹谋和测试都不用回家了,那么一个有良知的法式是不是得开发一个运行时可编纂的机制;
战斗系统:
好的战斗系统都是成立在完善的怪物AI系统、电影级此外镜头控制系统、战斗运行时性能与效果平衡的能力、细腻的动画表示、分歧动画之间的衔接、顺畅的连击体验、冲击感、复杂的物理交互效果、流畅的网络同步机制(网络游戏下)等等内容下的。
代码框架:
分歧引擎可能有分歧的语言,C++、lua、python、蓝图。。。作为Gameplay开发,基本也是如数家珍,换一个引擎换一种语言就像每天上班都要摸鱼一样自然。


此外项目规模一上来,随便一个系统都是上千行代码,如果没有合理的设计模式、代码框架的话,可能上午写的代码下午就成屎山了。再来如果不了解性能优化与数据布局的合理使用,可能同一个功能,别人做的60帧完美运行,你的卡成PPT,转眼就领PIP (懂的都懂)。
上面说的这些大部门都属于Gameplay逻辑系统开发,贯穿于游戏世界的各个角落,同时也是成立在各种游戏引擎开发技术以及计算机基础常识上的,技术没有主次之分,各部门协调运作才能有好的成果。
游戏人老生常谈:法式、美术、筹谋、测试?

关于上述几个岗位的协作,刚进入游戏行业的时候,我也以为作为一个法式小弟就安分的听筹谋哥哥、美术姐姐的话把需求完成就好了,但是后来发现这完全不够,不仅是对本身不负责,也是对所做的游戏不负责,Gameplay开发可以看做是上述四大金刚沟通的桥梁,是个中介者的角色,一旦桥塌了,那么可能其他人的心血就白费了,所以合作非常重要。
对于筹谋层面,有些时候筹谋给的就是一句短短几个字的需求,更有甚者甚至就是一句“参考《xxx》的xx功能”(懂的都懂,当然这只是部门筹谋了,靠谱负责的筹谋其实还是很多的),这种情况下筹谋概略率是不知道到底想要做成啥样的效果,或者是知道要做成啥样,但是说到细节就不清楚了,那么作为一个法式小哥,还是要担负起本身的责任,和筹谋沟通清楚实现细节和风险,同时某些不合理的处所可以进行指出,结合本身的游戏经验和开发经验提出一些合理定见。在进行复杂系统设计的时候,配置的设计是至关重要的,与筹谋沟通好需要进行配置的内容,尽量从非法式的角度进行注释或者文档的书写,因为很多时候配置都是给筹谋用的,虽然法式天然不喜欢筹谋,不外还是要说句公道话,有时候配置设计的不好又没有开发文档的系统对于筹谋来说真的是灾难,配置量大不说,很多纯法式侧的配置真的连同为法式的我也不知道如何下手,出格有时候看着一些刚毕业的筹谋萌新不会配又不敢问的场景,瞬间回忆起本身毕业时面对屎山代码的那种无助感,也许你的一个合理的设计就会挽救一个掉足的筹谋 。所以很多情况下自以为设计的很好的系统最终的参数都是默认值,因为除了开发者之外,没人会配也没人敢配。(当然这种情况我也有,大师都一样,不外我很庆幸我已经认识到了。)
而对于美术层面的话,很多美术和法式的思维方式都纷歧样,思维不在一个世界是常有的事情。所以合理沟通也能及时提升开发的质量和效率,很多时候短短的一句留言能挽救两个苍莽的加班少年。
接下来是测试角度,自从参与了线上项目的开发之后,终于意识到靠谱的测试同事有多么重要,开发环境下出一个bug最多就是花点时间查一查再提交从头打包就行了,然而一旦呈现线上bug,不说修复流程多么复杂,一层层的原因陈述请示,代码Review,PM沟通,这都算好的,万一影响的玩家人数多了,工资包一不小心就垂危了,外网铺天盖地的玩家吐槽也会让你深深的怀疑当初写bug的本身是不是个智障。好在此刻的游戏还能补丁更新,假设是做某些撑持离线模式的游戏,某些bug那的确就是灾难。综上所述,测试也是整个构建游戏世界的最后一道防线,每次开发完系统后及时和测试同事沟通清楚风险点以及本身拿不准的处所,辅佐他们完善测试用例。换个角度想,少一个bug,可能你的工资就多一点 。
很多法式自认为本身是东西人,我不是很认同,每个法式都是游戏世界的建筑师,每个功能做出来都是本身的心血,换个角度想,每天上班开心点不好吗,干嘛把本身想的那么卑微。---不外这里说句题外话,这些都是针对正常的筹谋和美术的,我可能属于斗劲幸运的,目前混了这么久还没遇到真正非常坑爹的同事或者带领,但是行业内鱼龙稠浊,坑爹的也不少,遇到这种情况还是及时向上反馈斗劲好,如果带领也坑爹的话,及时止损吧,bro。
此外,虽然国内游戏一直被吐槽,但目前的游戏品质还是在逐步提升的,玩家对游戏细节的要求也越来越高了,除了画面质量之外,Gameplay的要求也会越来越高。
最后,想说一下,此刻游戏品质一直在提高,游戏玩法的要求也越来越高了,所以说做客户端还得看Gameplay (TA牛逼,引擎也牛逼)。好了,写完回家筹备过年,祝大师新年快乐!

tylz2008 发表于 2023-5-31 22:24

确实,系统框架设计,功能之间的耦合与解耦,把所有资源都串起来,实现有序高性能的进行调度,也是一个很复杂的事情,还需要有很好的全局观,做好GamePlay也不容易[思考]

im286user 发表于 2023-5-31 22:24

而且现在游戏品质在逐步提升,游戏玩法更复杂了,要求也更高了

janjake 发表于 2023-5-31 22:24

比起换皮大行其道的日子大概提高了有那么一点点吧。当你求引擎爹加接口的时候,就知道谁才是真的地位高了[飙泪笑]

zhanhua999 发表于 2023-5-31 22:25

看组吧,我们是直接找pm给他们提单,不用我们催[滑稽]

yhc8325 发表于 2023-5-31 22:26

相机我觉得是gameplay中最复杂的一部分了,相机里的门道太多了[捂脸]最近在摸相机有感

寒流来袭 发表于 2023-5-31 22:26

不能说最复杂,但是确实现在游戏里的剧情还有战斗相关的镜头效果都在向电影级别的方向靠拢,想做好很难,而且镜头效果也有点抽象,调试起来麻烦,bug贼多就不用说了[飙泪笑]

女人 发表于 2023-5-31 22:27

GamePlay和引擎都干过,感觉GamePlay不是没意思,有些方向也有技术,主要是加班赶版本之类的问题,比如在版本期发现任何问题都得不占排期马上解决(可能和项目组有关),虽然可以靠自己最初排期的时候多加点时间,但总体来说体验还是比较差。如果这些人为的因素能减少,说不定GamePlay开发的体验会好不少,甚至非常舒服。

indianjohn 发表于 2023-5-31 22:28

同gameplay程序,感觉最难做的点是策划甚至老板不当人,让需求反复横跳,我们再好的设计也难顶

寒流来袭 发表于 2023-5-31 22:28

这确实是咱们无法避开的问题[飙泪笑]
页: [1] 2
查看完整版本: 游戏开发血泪史-Gameplay碎碎念