目录结构:
【第二章】游戏开发(手游)
- 图形渲染
- 模拟仿真
- 音效
- 操作
- 多人
- AI
一、图形渲染
1.GPU
GPU是决定图形渲染质量的一个重要指标,下面就是三个GPU型号(这个不是本人的目标):
- PowerVR
TBDR(Tile Based Deferred Rendering)
HSR(Hidden Surface Removal)+Early Z
上图为PowerVR 的架构图。
- Adreno
IMR(Immediate Mode Rendering)
Adreno 3xx TBDR&Bining Pass
Adreno 5xx LRZ(low resolution z)
TBIMR(Tile Based Immediate Mode Rendering)
Early Z
FPK(Forward Pixel Kill)
2.API
- OPENGL ES
如果我们要衡量用哪个版本的图形API,要参考一下市面上这个GPU芯片的覆盖率,然后决定他们的支持程度
- Metal
IOS唯一选择
轻量
GPU工作不会少,但会更快
- Vulkan
驱动不成熟
3.管线
如果是做图形渲染,整个图形渲染从开始到结束,它整个流程是什么,每个流程的步骤,我选择哪个方案(选择和硬件发展水平相关)
Pipeline:
- Forward or Deferred
- HDR or LDR
- Linear or Gamma
- Culing
- Z Pre Pass
- Sorting
- Post Process
实用性最重要(方案没有好和坏)
4.光照
- 直接光
Diffuse:
渲染最基本的一个点光照,会根据光的角度和面的法线jiaodu计算亮度。
Specular(高光)
质感主要来源于高光
- 环境光
加上了环境光,整体亮度会稍微有提高
5、阴影
- CSM层级问题
- 边缘锯齿问题
- 抖动问题
- 自阴影问题
- 物理正确问题
6、权衡
- Hack与物理方法
在实验室接触到的一些图形学的方法,大多数都是基于纯物理运算的,但是在游戏中(手游?)基本上都是Hack的方法(物理计算量太大)。
- 多方案
这里就直接特指玩家们的手机性能不同,需要多种方案。
- 细节
二、模拟仿真
- 刚体碰撞
- 载具模拟
- 角色IK
- 毛发
- 布料
- 流体
- 3D重建
从照片还原3D模型,由正脸和侧脸(可选)照片重建模型,且可绑定骨骼,在游戏中已经应用。
下图是腾讯自己完成的一个自动定义化人脸的过程。(效果感觉不太好)
为了减少过程时间:
- 离线生成素材库
- 玩家上传照片时,从素材库里检索
- 找到合适的人脸参数
- 性能
三、音效
游戏中的音效分为2D和3D,3D音效除了距离衰减之外还有其他效果,例如上图(是一个枪声的例子),不同的位置枪声是不一样的,室内室外,枪的类型不同等等。
声音的阻挡:传统使用射线检测来做,发几条射线,然后看几条射线是连接的,然后计算阻挡的比例在计算衰减。但是如果出现全阻挡的事情,也是也是还有声音的,这时候就需要在外面设置一个第三人,通过第三人计算。
四、操作
操作其实属于游戏的细节,这部分比较接近之前我看的游戏感这本书了。
五、多人
涉及到百万级,千万级的用户,所以服务器主要处理一些并发、负载均衡还有容灾等。
延迟:
网络延迟的处理一般有两种:
- 客户端预表现
就是客户端假设操作立即被服务器确认,并在本地进行预表现。如果与服务器结果不一致,则根据服务器的结果进行纠正。
- 导航推测(Dead Reckoning)
根据现有的状态信息,来推测物体的运动。在超过阈值或者接受到新的状态信息之前,运动可以继续。
外挂
- 代码修改
- 内存修改
- 游戏辅助
六、AI
AI是一种非常直观的表达方式,以树的方式来表示它的一个行为准则。换句话说,就是把一个事情不断的细化,形成一个树状结构。每次AI的行为就是从根节点不断的遍历,直到最后的节点。(这是一个很老的技术了)