6.移动版优化指南

概述:

移动设备不同于目前的高端设备(Wii、Xbox 360和PS3),市场上的手机硬件是很有限的,并且所有的移动设备都是不一样的。像Adroid手机,由于品牌和出厂年限的不同,有一部分手机相对整个市场而言是老旧的、较慢的。但是,作为游戏开发者并不能因为这些老旧的设备,而摒弃这部分的市场,因为尤其在中国,这些手机占有了很大一部分市场份额。那么如何保证好的游戏画面的同时,来保证游戏可以快速有效的运行,就是开发者在游戏开发初期应该考虑的问题。 本文意旨在于给应用Genesis-3D引擎开发新的手机游戏感到不知所措,抑或是在为新的手机游戏进行规划和原型设计,或移植现有项目到移动设备上让其顺利运行的开发者们一些参考。使开发者最好的将开发的游戏进行优化,使得开发的游戏有趣且迅速。

分析

分析很重要,因为它可以帮助你辨别哪些优化有益于较大的性能提高,哪些浪费了宝贵时间。大量的数据都表明,游戏运行的大部分时间花费在了渲染上。优化渲染作为提高游戏运行速度,值得更多开发者注意,并且美术人员也需要知道平台和他们通常要绕过的方法的局限性,使他们能够做出有益的、创造性的决定,而不必重做工作。

注意事项:

1. 在制作美术资源时。应该尽量避免使用法线贴图。真正的法线贴图只有在角色上才会使用。避免使用法线贴图可以减少实时渲染的时间,并且也会减少美术资源的制作时间。例如runcool里,贴图大小不超过256*256像素,模型不到处法线和切线,使用洪培关照等。

2. 引擎虽然支持物体板块。但是在碰撞检测方面,不建议玩家引入刚体。自己处理物体的碰撞检测。例如runcool中引入了子空Actor,在程序上实现碰撞的检测。

3. GPU优化,尤其是在移动设备上的GPU,在做alpha测试 (或者在像素着色器里做剪切和丢弃操作)的时候会产生很大的性能开销。如果可能,你应该用alpha混合来代替alpha测试。如果alpha测试不能避免,应该保证可见的进行alpha测试的像素个数是最小值。

4. 纹理压缩。

(1)iOS纹理压缩,有一些图像,尤其是使用iOS/Android pvr格式压缩的纹理,带有透明通道的图片压缩后质量损失较大,根据自己需求使用。在Genesis-3D引擎的编辑器中,集成了此项功能,压缩后图片将会保留原来的后缀名覆盖掉原有图片,建议在发布前再压缩图片。

(2)Android 纹理压缩,所有的Android 设备都能支持OpenGL ES 2.0 ,并因此支持ETC1压缩格式,因此,尽可能使用ETC1作为首选纹理格式。


引擎官方网站:http://www.genesis-3d.com.cn/

官方论坛:http://bbs.9tech.cn/genesis-3d/

官方千人大群:59113309   135439306

YY频道-游戏开发大讲堂(完全免费,定期开课):51735288

Genesis-3D开源游戏引擎:游戏起源,皆因有我!!!

 


《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇06:移动版优化指南》--本系列完结的更多相关文章

  1. 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程:简介及目录》(附上完整工程文件)

    介绍:讲述如何使用Genesis-3D来制作一个横版格斗游戏,涉及如何制作连招系统,如何使用包围盒实现碰撞检测,软键盘的制作,场景切换,技能读表,简单怪物AI等等,并为您提供这个框架的全套资源,源码以 ...

  2. 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程04:技能的输入与检测》

    4.技能的输入与检测 概述: 技能系统的用户体验,制约着玩家对整个游戏的体验.游戏角色的技能华丽度,连招的顺利过渡,以及逼真的打击感,都作为一款游戏的卖点吸引着玩家的注意.开发者在开发游戏初期,会根据 ...

  3. 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程01: 资源导入》

    1. 资源导入 概述: 制作一款游戏需要用到很多资源,比如:模型.纹理.声音和脚本等.通常都是用其它相关制作资源软件,完成前期资源的收集工作.比如通常用的三维美术资源,会在Max.MAYA等相应软件中 ...

  4. 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程08:虚拟键盘实现》--本系列完结

    8.虚拟键盘实现 概述: 硬键盘就是物理键盘,平时敲的那种.软键盘是虚拟的键盘,不是在键盘上,而是在"屏幕"上.虚拟按键就是虚拟键盘的一部分,根据功能需求,提供部分按键效果的UI可 ...

  5. 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程07:UI》

    概述: UI即User Interface(用户界面)的简称.UI设计是指对软件的燃机交互.操作逻辑.界面美观的整体设计.好的UI设计不仅可以让游戏变得更有品位,更吸引玩家,还能充分体现开发者对游戏整 ...

  6. 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程06:技能播放的逻辑关系》

    6.技能播放的逻辑关系 技能播放概述: 当完成对技能输入与检测之后,程序就该对输入在缓存器中的按键操作与程序读取的技能表信息进行匹配,根据匹配结果播放相应的连招技能. 技能播放原理: 按键缓存器中内容 ...

  7. 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程05:技能读表》

    5.技能读表 技能读表概述: 技能读表,作为实现技能系统更为快捷的一种方式,被广泛应用到游戏开发中.技能配表,作为桥梁连接着游戏策划者和开发者在技能实现上的关系.在游戏技能开发中,开发者只需要根据策划 ...

  8. 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程03:碰撞检测》

    3.碰撞检测 碰撞检测的概述: 碰撞在物理学中表现为两粒子或物体间极端的相互作用.而在游戏世界中,游戏对象在游戏世界自身并不受物理左右,为了模拟真实世界的效果,需要开发者为其添加属性,以模拟真实事件的 ...

  9. 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程02:关键帧动画导入与切割》

    2. 关键帧动画导入与切割 动画的分割与导入概述: 在游戏当中,游戏角色在不同状态下会有不同的动作,这些动作在引擎里相当于一段段的动画片段.当导入模型资源的时候,连同模型动画都会一并导入到引擎中.开发 ...

  10. Beat 'Em Up Game Starter Kit (横版格斗游戏) cocos2d-x游戏源代码

    浓缩精华.专注战斗! 游戏的本质是什么?界面?养成?NoNo!    游戏来源于对实战和比赛的模拟,所以它的本源就是对抗.就是战斗! 是挥洒热血的一种方式! 一个游戏最复杂最难做的是什么?UI?商城? ...

随机推荐

  1. XSS与CSRF两种跨站攻击比较

    XSS:跨站脚本(Cross-site scripting) CSRF:跨站请求伪造(Cross-site request forgery) 在那个年代,大家一般用拼接字符串的方式来构造动态SQL 语 ...

  2. uva 10051

    将每一个分解为六个两面的 简单地dp 回溯输出路径..... #include <cstdio> #include <cstring> #include <cmath&g ...

  3. iOS设计模式——委托(delegate)

    委托(delegate)也叫代理是iOS开发中常用的设计模式.我们借助于protocol(参考博文:objective-c协议(protocol))可以很方便的实现这种设计模式. 什么是代理? 苹果的 ...

  4. Amzon MWS API开发之订单接口

    Amazon订单接口是Amazon MWS 开发接口中的一大块,我们可以通过接口调用来获得订单数据. 在调用接口之前,首先我们要获得相关店铺商家的店铺密钥等信息.如下: 在此我将所有信息定义在一个类中 ...

  5. Let's go! (Ubuntu下搭建Go语言环境)

    自2009年Go语言发布以来,我一直在关注Go语言,如今Go语言已经发展到1.2版本,而且也收到越来越多的人关注这门语言.Go语言设计的目的就是为了解决执行数度快但是编译数度并不理想(如C++)以及编 ...

  6. MyBatis的分页操作(MySQL)

    1.无条件分页: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC ...

  7. 201. Bitwise AND of Numbers Range

    题目: Given a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND of all num ...

  8. svn:revert to this version 和 revert changes from this version的区别 假设我们有许多个版本,版本号分别是1-10

    假设我们有许多个版本,版本号分别是1-10 如果我们在7这里选择revert to this version那么7之后的8,9,10的操作都会被消除 如果在7选择revert changes from ...

  9. log file sync

    Recently, our application system has updated one app. I receive a email of complain the db server ch ...

  10. python学习笔记八--动态类型

    一.变量,对象,引用: 1. 变量: 2. 对象:均包含了一个头部信息,有以下两部分内容 a.对象的数据类型, b.引用计数器:纪录当前引用货指向该对象的数量,一旦计数器被清零,该对象的内存空间就会被 ...