Game Development Tips|青训营笔记

57 阅读2分钟

       这是我参与「第四届青训营」笔记创作活动的第5天。

Game.jpg

开发链路与角色

         组建一个最小但完整的游戏开发团队只需要3个人:策划、程序、美术。
         策划人员需要负责游戏的数值与内容部分;美术人员需要负责游戏的2D or 3D的开发,原画与音效动效的制作;程序人员需要负责前端与后端的编程开发。另外,还需要一定的运营、运维与市场团队以达到最终上线的目的。

游戏引擎的运用

         将每个游戏都会使用到的代码块进行封装抽离,就形成了一个游戏引擎,它不需要你再自己进行拼凑、封装,可以让你花费更少的时间来做出一个更好的效果,尤其是关于渲染效率与性能优化。
         游戏引擎提供了游戏开发的常见功能,通常会包含渲染器,2D/3D图形元素,碰撞检测,物理引擎,声音,控制器支持,动画等部分。

特定类型的客户端游戏引擎

         The NVL Maker——文字冒险游戏制作器,No Code形式的开发,只需要写文字脚本加上一定的配置就可以生成一个文字冒险游戏。
         PRG Maker——场景游戏制作器,Low Code形式的开发,适合于代码能力有限但是有一定空间想象力创造力的游戏开发者。
         Web游戏引擎,利用Canvas和WebGL为底层技术抽象的图像绘制库,通用能力包括预加载,展示与图层、组合系统、动画系统以及音效与声音系统。常见的Web游戏引擎包括Laya、Egret、CreatJS & Phaser

Web游戏引擎的渲染原理

  1. 创建Renderer渲染器,获取它的view,添加到Dom Tree中。
  2. 在MainLoop中调用Renderer.render()并传入一个DisplayObject作为根节点开发渲染。
  3. 从场景树的根节点开始,以zlndex为序从小到大进行深度优先遍历,对每一个节点进行渲染操作,由后往前把整个场景绘制一次。
WebGL的render方法执行过程
render(display0bject,renderTexture,clear,transform,skipUpdateTransform){
//1.应用变换(GPU级别)
this.projection.transform=transform;//2.渲染纹理绑定与BatchRendering处理
this.renderTexture.bind(renderTexture); this.batch.currentRenderer.start();
//3.执行元素渲染,将顶点、索引和纹理等数据添加到BatchRendering中 displayobiect.render();
//4.执行renderer的绘制方法
thisbatch.currentRenderer.flush():
//根据传入的clear与renderTexture参数对纹理的处理...//5.清空变换
this.projection.transform =null:}