信息化管理系统 | 数字孪生 · 智慧园区 · 数字大屏 | App · 微信 · 小程序 | 元宇宙 · 区块链 · 3D展厅 | 虚拟仿真系统 | 新零售电商

游戏开发方案(2)

游戏逻辑开发

 

游戏开发通俗点说就是怎么去设计和实现一个游戏的玩法。例如游戏的关卡怎么通关、何时自动存档、武器应该怎么获得、死亡判定条件是什么等等,这些都属于游戏逻辑的范畴之内。就拿FPS游戏为例,武器与技能的制作和使用(包括武器的切换方式、数值计算规则、武器结构的拆分与组装等)、角色的第一人称和第三人称的模型效果(包括角色的形象设计与展示、如何在游戏中自由切换一三人称、第一人称是否能看到下半身等)、角色的动画表现(包括移动、交互、开火等行为以及各种道具的动画);摄像机我们要考虑基本视角(第一人称)、镜头的切换(支持哪些特殊视角、不同视角的切换规则、是否有ADS瞄准状态)、镜头效果(包括屏幕后处理变化、后坐力震动效果设计);控制上根据不同的平台要考虑不同的设计,比如按键的位置、大小、是否允许自定义按键,按键的响应规则和响应时间等等。我们来简单分析一下FPS游戏有哪些需要我去实现的基本动作:射击、换弹、换枪、死亡。硬核一点的射击游戏如武装突袭3,逃离塔克夫,还有侧身射击动作、跳跃动作、探头的角度大小等等。首先拿基本的射击动作来举例,在对射击动作的处理时,命中的判定是看玩家的准心位置的,也就是说命中的判断逻辑是看目标是否在我方角色摄像头的正中心范围之内,而不是看目标是否在我们的枪前面。游戏逻辑的不同,玩法也大不相同。就拿经典的侠盗猎车手系列罪恶都市和侠盗猎车手V来对比,为什么罪恶都市的角色不会游泳,一下水就会被判定为死亡?因为他的游戏逻辑设定是角色不可游泳,而后者的游戏逻辑更新了,设定角色是可游泳,甚至可以潜水。可见游戏逻辑越丰富,玩法也更加多样性,但是开发的难度也会随之增加。

 

网络层

游戏中的网络模块与其他软件系统的基本原理并无差异,基本上是解决如何把网络消息快速安全的发送给其他端,然后其他端及时地处理该消息并作出对应的游戏表现。最经典的就是要防御游戏外挂等。(此模块在服务端开发会详细介绍到)

 

渲染

具体是指软件由模型生成图形的过程,模型是用语言或者数据结构进行严格的定义的三维物体或虚拟场景的描述,它包括几何、视点、纹理、照明和阴影等信息。(实际上渲染模块主要是引擎岗的内容,下面会介绍到)

 

工具链

比如说游戏编辑器、自动打包、测试平台等等。(如魔兽争霸3强大的地图编辑器)我曾经也做过几张魔兽争霸3的地图,就跟游戏引擎工具使用的原理一样,有人帮我们造好了轮子,随时可以发挥自己的创作力和想象力进行制作。但是若想完全实现自己的需求,则需要更深的知识,才能达到自己造轮子的要求。

 

游戏引擎开发

 

      游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些互交式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程序而不用由零开始。大部分都支持多种操作系统平台,如Linux、Mac OS X、微软Windows。游戏引擎包含以下系统:渲染引擎(即“渲染器”,含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理。下面介绍一些PC端以及移动端常用的主流游戏引擎以及他们的代表作品。

 

端游引擎

Unreal (虚幻引擎)代表作:《绝地求生》、《战争机器》系列、《质量效应》系列、《荣耀勋章》系列

CryEngine(尖叫引擎)代表作:《孤岛危机系列》

Source(起源)代表作:《CS》系列、《Dota 2》

Frostbite Engine(寒霜引擎)代表作:《上古卷轴》系列、《战地系列》、《极品飞车16/18》

IW Engine 代表作:《使命召唤》系列Havok物理引擎,很多3A游戏以及好莱坞大片都用了该物理引擎

 

手机引擎

Cocos2d-x、U3D、Egret、Flash Air、Corona、LayaBox

其中我最近做的一个小项目手游版植物大战僵尸就用到了Cocos旗下的Cocos2d引擎。除了这些之外还有工作室的自研引擎,比如大家熟知的《GTA5》和荒野大镖客就用到了R星旗下的RAGE引擎、《英雄联盟》也是通过自研引擎实现。

引擎岗除了要熟练的使用游戏引擎工具外,还要熟悉写引擎的代码,不过除了极少数拥有自研引擎的工作室外,大部分引擎岗都是如何“用好”和“改好”商业引擎,不需要自己重新造轮子。但如果所用到的商业引擎没有这个功能,而你的项目又需要用到这个功能,你就需要去自己造轮子;如果这个引擎的功能无法满足项目的需求或者是太烂,你就需要进行改进。包括一些引擎工具的开发,一些系统功能的扩展和优化(修复引擎自身的bug)等都属于引擎岗的工作范围之内。引擎占比很大的一部分则是性能优化,这一模块平时会由更资深技术更强的引擎岗技术大牛来完成,引擎岗平时更多的是要和美术打交道,如何去实现更炫酷的效果。

可见游戏引擎开发对如何熟练的掌握引擎开发工具是非常重要的,如果想试水游戏开发的话,我是推荐选择Unity 3d。2016年腾讯已经Kill了所有2dx项目组,全面投入到U3D,另外还有个别项目在尝试使用虚幻4 。大家玩的腾讯系《王者荣耀》、《穿越火线》手机版等都是U3D制作。小米的 “吃鸡”手游《小米枪战》是用虚幻4制作。之前网易的“吃鸡”手游《荒野行动》是自研引擎 Messiah。用Unity 3d、虚幻4 可是要给引擎厂商分成的,所以网易开了个好头,自己赚的钱自己拿。当然腾讯也有自研引擎,也许不能说服重点项目去使用吧。毕竟引擎这东西,开发的不好坑是特别多的,不能期待项目组等你修改。商业产品还是需要选择稳定的、可靠的引擎。自研引擎需要投入时间长、成本大、人力多,还得紧跟潮流,作为中小公司基本上不适合走这一条路。即使你研发出来,还得开发一套工具链,还得有一个完善活跃的社区,这些因素缺一不可。

Epic Game 旗下的UE4(虚幻4)引擎虽然免费并且网上也有很多UE4引擎的使用教程,但是UE4对新手来说实在是很不友好,门槛非常高。随着之前使用UE4引擎《绝地求生》的大火,加上目前鹅厂已经大量使用UE4了,加上近期UE5的推出,以后国内UE引擎的生态会越来越好,因此如果想从事游戏开发岗位的同学花时间去学习UE引擎性价比还是非常高的。

 

以下是一些UE4的学习教程推荐:

 

1、工程规范

官方推荐的工程规范,创建某个asset文件,命名总是绞尽脑汁,那么参考这个Epic官方推荐的规范会少走很多弯路,从学习的一开始不断熟悉,成为工程组织和命名的本能吧

https://github.com/Allar/ue5-style-guide

 

2、谌嘉诚的初学者教程

非常趣味实施获得反馈的课程,Unreal Engine十分庞大,一个清晰的入门概览,能够做一些功能体验非常有助于提高学习的兴趣

https://www.bilibili.com/video/BV164411Y732?spm_id_from=333.999.0.0

--简单操作,制作场景,基本的Actor操作等等

--Unreal Engine4.2x的基本操作,基本使用

 

3、对于模型的理解

未来blender可能会非常不错,因为开源免费;通过Blender的学习实践非常有助于良好理解3D模型相关的种种,实际使用Unreal当中也会有经常用到Blender工具,游戏引擎离不开3D模型;如果想自己能够独立创意点什么就更为需要了

https://www.youtube.com/user/AndrewPPrice/playlists

--作者讲解非常风趣,让反人类的Blender操作习惯,不知不觉间就习惯了

--跟视频完成甜甜圈的建模等课程;blender的基本建模,操作,渲染、导出视频等等;作为第一个初步能够使用的blender

 

4、Epic官方的Online课程

这个课程是Unreal Engine整体功能的概览,Unreal Engine十分庞大,一种视角是掌握其中某个核心某块,但游戏是艺术,想要自己做点什么全局掌握就是必要的了,这个课程非常好;初看很难理解在说什么,每学习一段事件回顾看看,学习进展如何了,是否能够理解到位了,这个课程可以看成是贯穿学习Unreal Engine始终的好课程

Unreal Engine Kickstart for Developers

https://learn.unrealengine.com/home/LearningPath/113226?r=False&ts=637750612305202459

 

5、CodeLikeMe的Root Motion Loco Motion

这个系列的课程并不长,但是非常的进阶,在Unreal官网通过在线课程基本掌握了Animation相关知识后,这个课程十分有助于深入理解

作者的讲解在一边做一边讲中进行,娓娓道来,把思考和解决问题的思路呈现出来;吃力的地方在于,使用到的蓝图节点模块都没有讲解,对于初学者,学习时间对比视频时间要乘以10来看了,但是十分值得

https://www.youtube.com/watch?v=YtWbl50Jwwc&list=RDCMUClb6Jh9EBV7a_Nm52Ipll_Q&index=2

 

6、材质Material

Ben‘s Material Tutorial,作者是这个领域的世界级专家,这个课程比较有特点,应该是需要首先学习shader相关的基础知识;如果数学基础比较好,对于计算机图形学比较了解也可以直接上;这个课程就会以道出Unreal Material的设计思路,基于物理的材质;从对于视觉现象的物理拆解出发,一个个特性的去实现,比如水面材质,从波浪、透明、折射、反射、散射等等一序列的实现优化起来

https://www.youtube.com/playlist?list=PL78XDi0TS4lEBWa2Hpzg2SRC5njCcKydl

--场景化的教程,案例世的展示material的应用;从而帮助学习者理解,Unreal Material的基于物理的材质系统

--基本的材质性能优化

 

7、粒子,Niagara

UE4-VFX,作者将Unreal新的粒子系统Niagara的基本功能分为56个不到十分钟的视频讲解,以此为基础可以去分析种种能够找到的Niagara实现的酷炫效果,可以更为自由的想象设计粒子效果

https://www.youtube.com/watch?

 游戏引擎开发更偏重于游戏的画面和性能,并且引擎岗会更多的涉及底层的技术知识。引擎岗细分为多个方向:渲染、动画、物理、编辑器、脚本、性能以及开发工具等,渲染又可细分为光照、着色、阴影、抗锯齿、后处理、特效等。游戏引擎中也包含了渲染引擎。

 

具体的工作而言,你可能会去实现某种画面表现的特性,比如天气系统,你怎么实现动态昼夜变化的效果?比如粒子系统,UE的Niagara已经非常强大了,你当然不需要自己去实现一个粒子系统,但是你如何运用它的强大功能去实现一些酷炫的效果?比如像最后的生还者2中的雪粒子附着到人物身上、随着手电筒的光束照射,虫粒子群会随之聚集和扩散等。Niagara系统是可以在内置的脚本中写逻辑的,因此几乎你想要的粒子行为和表现效果,都可以通过代码(和美术)来实现。

 

从事游戏渲染方向需要准备许多知识,熟悉3D硬件渲染管线、底层图形API(DX、OpenGL/ES、Metal、Vulkan)、熟悉Shader语言(CG、HLSL、GLSL)、熟悉游戏引擎、熟悉游戏中常见的渲染算法(地形、水面、天空、静态模型、骨骼动画、粒子、阴影、反射、光照图、全局光照、PBR、后期处理等)、熟悉常见的渲染优化算法和技术(视椎体剪裁、场景层次结构、遮挡剪裁、动态合批、GPU Instance等),其中计算机图形学尤为重要。

 

九影专注软件定制开发13年,提供:游戏开发、元宇宙/虚拟仿真/AR/VR开发、小程序/H5开发、App开发/网站开发、政企系统定制、三维展示、CRM/OA/ERP软件开发等。

热线:021-50309719  负责人电话/微信15000568602 免费提供方案和报价!

 

 

本文未完 待续……

 

 

本文转自:如有侵权请通知删除,谢谢!https://mp.weixin.qq.com/s/tBA7bizsoAIUXhaIII0OEg