圆桌论坛:Unity游戏开发精彩案例分享

圆桌论坛:Unity游戏开发精彩案例分享前段时间传统行业做互联网游戏大佬们在讨论,比如吴刚通过微博讲到全面转到3D游戏开发上来,包括碰到刘坤演示了僵尸3D版,说明越来越多游戏开发都往3D方面转型了。成都九众游戏CEO朱传靖、领钧科技Unity部门经理赵可新、沈阳坐标网络CTO杨晓东参与了圆桌讨论对Unity游戏开发的一些精彩案例进行分享,这个环节进行主持的嘉宾是Unity亚太区技术经理郭振平。图:圆桌论坛环节以下是会场实录:…

前段时间传统行业做互联网游戏大佬们在讨论,比如吴刚通过微博讲到全面转到3D游戏开发上来,包括碰到刘坤演示了僵尸3D版,说明越来越多游戏开发都往3D方面转型了。成都九众游戏CEO朱传靖、领钧科技Unity部门经理赵可新、沈阳坐标网络CTO杨晓东参与了圆桌讨论对Unity游戏开发的一些精彩案例进行分享,这个环节进行主持的嘉宾是Unity亚太区技术经理郭振平。

圆桌论坛:Unity游戏开发精彩案例分享

图:圆桌论坛环节

以下是会场实录:

郭振平:这三位都是在国内使用Unity最早的“吃螃蟹的人”,非常有勇气!一会有几个话题,我们请三位专家来和大家分享他们使用Unity开发游戏方面的一些经验。

第一个问题想问朱老师,因为用Unity开发的游戏是PC客户端的MMO,当初在选Unity的时候,做的项目很大,团队人也很多,怎么去组织这个团队使用Unity,介绍一下经验?

朱传靖:大家都知道网游开发是一个特别复杂的系统工程,有程序,有策划,测试,还有美术。最早选Unity是在2009年,当时面临选择引擎的问题,最终还是选择Unity,比较重要因素是因为Unity是一个很活跃的引擎,整个架构是新的。这样一个新架构又活跃引擎比较符合当时的构想,能够同步去做。

郭振平:比如做一款MMO,数据量非常庞大,开始创建游戏的时候要进行资源管理,后续逐渐更新游戏资源,跟大家分享一下经验吧。

朱传靖:比如,做游戏场景的典型例子。策划提出对场景的要求,用单机游戏观察来设计,接着会做出构想草图,设计出来后再会将其分解。说白了从策划到设计是美术草图推到效果图,分解成模型和资源,包括贴图的需求,再利用Unity编辑器把整个场景构建出来的一个简单流程。Unity对美术资源管理场景作用比较大,当然也有一些不足的地方,有些脚本包括一些其他管理需要用SOA再配合Unity来做管理工作。

郭振平:Unity这款引擎优势是跨平台,既可以做PC客户端MMO,又可以做移动平台,也可以做网页游戏,接下来请赵可新先生将资源管理的优化方面的经验分享给Unity的使用者。

赵可新:说说比较常见的经验,把材质数量、物质数量都缩小,尽量整合起来,再加上一些常规系统功能使用,比如遮挡裁切相关使用,假如本身技能比较低,尽量用一些小的材质能够更流畅。比如中文游戏,尽量在同一个游戏中把一些界面素材,针对所有的机型进行处理,相对来说做iPhone界面或ipad界面,可以等比缩放,这样会缩小一个等级。

郭振平:开始启动用Unity来做iPhone游戏的时候,开始会遵循什么标准、原则来减少后续在开发过程当中的一些麻烦?

赵可新:尽量把整个框架定好,之前接触的刻绘做某些游戏过程中整个框架不是很明确,那肯定要强调明确框架,否则到后期可能一些小的修改会影响到整个框架。

郭振平:在渲染方面,提高渲染效率,提高渲染效果这方面有哪些需要考虑的?

赵可新:本身移动平台对动态灯光支持很有限,常规的用烘焙达到一些效果,尽量把贴图用的数量最小,减少存储空间使用,一个是存储空间使用。

杨晓东:Unity在移动游戏运用的最多,Web游戏也不例外。在创业之初考虑引擎的时候也想到很多方案,但是,怎样能够用最短的时间、最少人力成本做出最好的游戏?这就是直接选择Unity的原因。当然经过一番比较Unity是开发效率比较高的平台,刚才谈到MMO,MMO有很多个方向,未必应用量非常大,其实也可以做比较轻量MMO游戏。

程序开发环境无疑是地球上最强大的开发环境,没有什么好质疑的。游戏无论对个人还是对于创业团队都是非常适合的项目。因为首先作为游戏开发者,可以感受到创建一个完全虚拟的世界,让别人生活在其中,并给别人带来乐观是很酷的感觉,这是其他行业所体会不到的。另一个,游戏行业有一个很公平、很纯净的特点,在其他的互联网产品中,游戏公司能够形成垄断优势,但游戏行业不会这样,不会有一个游戏,或者某个游戏公司形成垄断优势,而使得完全没有市场。

郭振平:在资源管理方面应该做多大合适?怎么管理起来比较方便?

杨晓东:Unity提供平台进行加载的方式,但这只是在API方面的问题,如何能够用好呢?也是游戏要解决的问题。现在目前一般游戏用的方法,一个是预加载,一个是多加载方案,预加载把关卡和人物加载好,另外一个很多网页MMO普遍做法,所有资源都是分到原子极,每个所需要的资源进行加载,但是这两种方法可能都是一个比较抽象的,这方面还在探索,好象WAP游戏是一个优势,WAP游戏用的是按需加载,这也代表了一种趋势。渲染中的LED也利用这种方式,下载也分层次,比如某种资源非常重要,离开游戏无法表现,在第一时间必须下载下来,但对于不同网速不同考虑,只需要下载最重要资源,其他地方能够把这些物体都去掉,把LED概念引入到下载和步骤。

朱传靖:作为客户端游戏要提供给玩家,在相对比较长,比较稳定体验,这是客户端本身属性,虽然对资源这方面不像网页游戏那么严。当然也会做一些优化,但更多是针对显卡进行优化,会在一些渲染方面会做一些分层,或者加一些让远处,降低同屏的数,来提高在集成显卡上程度。

郭振平:简单介绍一下做大型的MMO后期场景改造等等。

朱传靖:大家都知道Unity有一个相对比较大的变化,现在所采用的方式,一般情况下不会更新地图东西,有些小的更新也会采用动态方式,因为Unity可以支持动态修改一部分物件,一般小的修改会做动态,但对特别大的修改,包括地表烘培效果,也都采用二进制方式去做。但接下来将会利用Unity提供二进制文件接口,做一些针对内部解决方案。

郭振平:最大问题,Unity这些数据都是二进制的,处理起来不那么容易,如果Unity提供一些接口,可能处理起来就很方便。这样的话,就可以尽量让数据变化文件尽量减小了。

以下是开发者提问环节实录:

提问:不知道其他开发者有没有更好办法,都是整个包开发吗?在国内3D网络和家庭网络还可以,但假如平时需要急用的话,用GPS来更新几乎不可能,比如现在在苹果和Android上一些应用也达到20,30兆,上百兆,如果我们做出来应用一下子更新,对于用户体验有很大影响?

赵可新:Unity通过二进制打补丁的方式处理,目前只能整个更新。

提问:打包打成之后,如果资源包还好说,如果程序做了更新,Unity该怎么办?还是像移动平台式的重新打包?

朱传靖:首先Unity本身程序基本没有大的版本更新是不用变的,然后资源更新,现在只有期待Unity把它IP开放出来。至于脚本资源,这是Unity没法帮你做的,只能去做一些pad工具和打包更新工具。这是不论客户端还是网页游戏都必须完成的一项工作。

提问:通过多核渲染均匀化,但是仅局限在一个CPU上面,现在很多人所使用的机器都是多核,但只有一个CPU很忙。

郭振平:现在Unity还没有对多线程支持那么活,多线程支持没那么完整,多核也解决不了。

朱传靖:Unity有几个方面,会把主线程CPU占用很高,如果为主线程设定一个上限,增速会降下来一点。第二,Unity本身体系的CPU占比相对直接编译的引擎来说略高一些,确实在同等条件下,CPU占用率会略高,这是未来更高扩展性和灵活性所必须付出的抬价。这方面来说,不可能达到全编译执行的引擎那样低的CPU占比。

比CPU高不是渲染问题,是在解释Unity的字解码,其实渲染是不用CPU时间,占的是GPU时间。当看到核心占有率高,是因为Unity在做字节码直接编译,不是渲染。所以,一定要分清楚渲染跟CPU没关,占的是GPU观念。

提问:请问50兆陷井的50兆是累计大小还是当前大小?

赵可新:这是Unity本身免费神权会提供的50兆缓存空间,会基于新的顶掉旧的,不用考虑如何使用,只要看够不够用。也可以花钱提升缓存时间。累计的新的文件,比如已经有40多兆快满的情况下,还有10兆的话,会把旧的40多兆的东西清理并且顶替掉。

杨晓东:做WAP游戏现在有可能到50兆之后再加载会使客户端崩溃,但更多问题是要花钱解决的,而且还很贵。但是,像很多游戏刚开始很美好,但实际上不行,希望Unity在这方面能够有所改善。像Flash这种方案,占用多少空间,这个应该是游戏开发商和用户之间的一个协定,而不是整体提供商的能力,比如游戏要部署多大空间,只要用户同意就可以了。但是,考虑商业上的原因,50兆问题是回避不掉的问题,而且是所有游戏50兆,怎么回避呢?用3W方式下载到内存里,这样永远不会到50兆,只在内存里,这是没有问题的。

当然,如果控制好游戏资源量,都放在内存里,下次再重新加载也不是一个很大问题,因为问落环境。现在,做WEB游戏最大障碍还不是技术上的,主要是设计上的,心中总是会有一个很纠结的问题,究竟是客户端游戏,还是WEB游戏,这两者都不一样,大家玩客户端游戏都是端很大,而且运营方式很平稳,升级很长这样一个概念,而网页游戏周期非常短,运营商在其中起了很大的作用,可以通过很多游戏刺激这个游戏,甚至是杀鸡取卵的游戏,使这个游戏很快时间能赚很多钱,但是生命期很短,该纠结的是设计思路应该往哪方面靠拢。

最后的方式表现方面尽量向客户端靠拢,运营模式介于两者至今,这也是一种很中庸的方案,但本质上这也是一个劣势。当然,也不是WEB游戏也有一个优点打开容易,结束也很容易。本身从技术上,WEB,客户端游戏并没有什么本质区别,网络连接也是一样,只不过把窗口从客户端独立窗口放在浏览器而已,下载方式是较为动态的方式。

提问:刚刚看了视频,里面游戏UI,之前因为Unity本身提供的UI效果不是很高,不知道游戏里面是用什么方案来做的?还有个问题,UI里面,为什么要显示一些自己特殊处理过的字,比如自己钩编,染色,通过什么方式,有什么好的办法去解决?

杨晓东:目前使用方案是自己的UI,最近发现有一个纪元(音译)UI不错,正在考虑要不要换掉,时间很长,暂时还没有这个计划。但是,自带的I特征很强大,不足确实渲染效率不是很高,所以我先建议用GAUI,所有UI肯定不能满足所有要求,肯定需要在这上面做一些扩展性开发。

今天的文章圆桌论坛:Unity游戏开发精彩案例分享分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/40178.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注