zoukankan      html  css  js  c++  java
  • 网游UI解决方案的选择(CEGUI/MYGUI/Hikari/Scaleform/...)

    网游UI解决方案的选择
    作者 鸣·铭
    转载请注明出自http://www.mobilegamebase.com

        由于新项目动工,UI方面需要确定方向,所以最近纠结于各种解决方案的选择。以下是对各方案的比较,仅供参考,希望对同样纠结于此的朋友有所帮助:)

    1.沿用当前的UI
        公司是从2D游戏起家的,2D游戏本身就相当于一套庞大的UI,所以这方面有所积累。这套UI系统至少是经过几 十万玩家测试,稳定性自然不必说,而且移植到 3D游戏后,绕过Ogre,使用DX直接绘图绘文字,速度非常快,而且文字可以轻松实现多种字体,以及加粗、斜体、下划线等效果,所以继续沿用似乎是比较 好的选择。
        但是它同样存在问题,因为一方面UI脚本机是我们自己实现的,当时为了跨平台(移动设备)没有使用Lua,phyon等,所以 脚本像汇编写起来也比较困难。另外框架的设计不太好,为了实现方便,把部分逻辑带了进来,使得后续项目在使用时有较多障碍(这也是我放弃这套UI的主要原 因)。

    2.CEGUI

        CEGUI 是老牌的开源界面库了,最新版本是0.7.1,完全免费,也是Ogre官方推荐使用的界面库,Ogre1.6及以前的版本,都是内置支持的。使用它的商业 游戏也非常多,比如天龙八部,火炬之光,仙剑四等。这也就证明CEGUI确实强大,可以完全达到商业应用级别,而且相关资料非常丰富,至少不用担心某个功 能无法实现,因为你能碰到的问题,网上基本都有解决方案,经过这些大作的证明,就不要怀疑了:)。
        但是功能强大是有代价的,就是它太庞大、复杂了,上手很困难。这些大作没有一个不修改CEGUI的,也就是说要真正用起来,或者说要用的好,还是要做点事的。那需要做多少事呢?不清楚。
        PS: 选择CEGUI的另一个好处是网上有流传的天龙八部的源代码,大概是天龙08或09年早期的版本,其中包含一套比较完善的CEGUI,比如中文显示,中文 输入,字体颜色,表情,自适应窗口等都已实现,并且做了优化,效率上不用太担心,毕竟天龙用下来是没问题的。所以使用CEGUI碰到问题时,有现成的东西 可以参考,非常难得。不过这个版本的CEGUI是0.4版的,0.7版CEGUI做了大量优化,还用老版本觉得有点太老了……(我没有具体测试过,不清楚 0.7版效率到底提高了多少),而且这个项目也相当于也处在无人维护的状态,如果有问题或者要新增功能可能要自己解决。

    3. Ogre SDKTray
        从Ogre1.7开始就不再内置支持CEGUI了,转而使用Ogre自己的SDKTray,“tray”是在ogre的overlay和material的基础上实现的,使用很容易理解和使用,但目前它还只是个半成品,无法应用到商业游戏中。

    4.QuickGUI

        最新版本10.1,专为Ogre写的UI库,支持Ogre1.7,比起CEGUI来说,小巧了很多。
    但是很遗憾,至今还有没有编辑器(作者的Blog上说正在开发,但是还没有发布),要靠手动编写xml文件,囧啊~~Ogre社区里从来没有人推荐使用这个。我只是简单看了下,感觉像是作者练手的项目(个人观点)。

    5.Hikari


        Hikari 可以让你使用Flash制作界面,最新版本0.3,完全免费,大家知道Flash动画是非常流行的,如果将Flash应用到游戏中,一定很拉 风!Hikari就实现了这个功能,通过Flash.ocx将swf渲染成Ogre的Texture,然后你就可以任意操作这个Texture了,正是因 为如此,Hikari支持Flash的所有版本,不存在兼容性问题。因为Flash本身就支持多国语言,所以中文显示也没有问题。可以把界面开发的大部分 内容放到Flash那边,从而使客户端简洁很多(简单就是美啊)。
        但是Hikari最致命的问题的效率太低,它使用的是Flash的 ocx,先将动画内容渲染到DC上,然后拷到Texture中,所以很慢,而且慢的是第二步,使得Flash优秀的脏矩形优势无法发挥,根本无法应用到商 业游戏中。我做了个动画,30张图片随机飘动,1023x768的窗口,使Flash占满,Release版只能跑到15帧(集成显卡),这还没有显示任 何文字呢:(
    出自www.mobilegamebase.com
    6.Scaleform


        Scaleform 跟Hikari的作用是一样的,都是用Flash来做游戏界面,不同的是Scaleform非常牛X,它的效率很高,可以说是最强游戏界面解决方案了!而 且对亚洲语言显示和输入都完美支持。目前最新版本是3.2,据说4.0将支持Actionscript 3.0, 并全方位支持3D UI。超过600款游戏使用Scaleform做界面,比如超大作StarCraft II,Crysis,Fable II,Civilization IV,Halo Wars,Princes of Persia,Mess Effect 2,Prototype,Resistance 2,Splinter Cell等。
        心动了吧,可惜Scaleform是收费的,而且授权费相当的高,3.X版的目标售价是每一款游戏 2.5万美金。如果你不在乎钱的话,这绝对是不二之选,在乎钱的话,这是二B之选。PS:有不少商业引擎已经将Scaleform集成进去了,比如 Gamebryo,Unreal3等,如果你不用Ogre,买了商业引擎也爽了~~
    出自www.mobilegamebase.com
    7.ogreSwf/vektrix
        Hikari 效率太低,Scaleform太贵,ogreSwf/vektrix就是出来解决这个矛盾的。ogreSwf跟Scaleform一样都由开源的 gameSwf发展起来,Scaleform开始商业化,ogreswf继续开源,后来ogreswf项目停掉了。2010年ogreSwf的作者重起了 该项目,在原来的基础上改进并改名为vektrix,2010年4月发布了新的demo,可能是SourceForge的原因,我下的demo文件无法解 压,又觉得vektrix目前还无法达到Scaleform的高度,所以后来就没有再试了。

    8.Awesomium

        Awesomium 的功能有点类似Hikari,只不过它是将网页渲染成Texture,而且效率方面也做的比较好。Awesomium 采用了目前业界速度最快的浏览器内核webkit和v8,其实是把Chrome内核嵌入到了里面,同时还很好地支持flash,可以通过 javascript使游戏和网页交互。该项目最初也是开源的,后来商业化了,但是不太贵,最便宜的版本只要400多美金。
        Awesomium 的效率之所以高,估计也是脏矩形方面做的好,我把上面那个动画嵌到网页中,用Awesomium打开,帧数马上就下来了,所以还是不能做UI,但是游戏中的帮助页面则可以考虑用这个。Awesomium也不方便根据网页内的内容做半透明效果,也就是网页中部分半透明很难实现,全透明,也就是镂空效果则可以通过模板实现。
    出自www.mobilegamebase.com
    9.MYGUI
    [来源:GameRes.com]

        MyGUI最新版本3.0.1,是俄罗斯人写的,要么没有注释,要么注释是俄文的,而且相关的资料实在是太缺乏了,虽然小修改一下可以支持中文显示,但是效果太差了,根本不能用,更别说多种文字,多种效果了,目前也没有什么商业游戏是用这个库做的。
        但我最终选择了这个UI库。
        就 像MYGUI的介绍一样“MyGUI - fast, simple and flexible GUI.”这确实是一个,高效,轻便,灵活的库。首先它的设计很好,所以即使没有注释,也不难理解。换肤的设计避免了CEGUI里的很多中间层,使用要简 单很多,资源文件的管理也要清爽(清楚+爽)一些。没有使用ogre的overlay,用底层直接画了,效率比CEGUI要高。 LayoutEdit,ImageSetEdit等比CEGUI的要好用的多,CEGUI的工具经常当掉- -。中文显示可以模仿CEGUI去做,我已经完全实现,效率并不低,完全可以接受。
        载入layout文件后返回一个窗口的vector, 你可以自己写一个类似BaseLayout的类去管理,然后像MYGUI一样大量用C++委托做回调函数,就可以把各个Dialog分开去写,就像写 MFC的Dialog一样,这一点做的实在太好了。如果再学一点CEGUI,把Lua脚本集成进去,载入layout文件时把窗口注册到lua中,这样就 可以在脚本里写逻辑了,客户端-UI-脚本,很清晰。
        为什么没有商业游戏使用MYGUI呢?MYGUI比较稳定的版本2.2.3是09年10月份发布的,是少要1年才能有游戏出来,火炬之光是09年11月上市的,在开发的时候MYGUI还很不完善,以后一定会有不少游戏使用MYGUI:)
        跟 使用CEGUI一样,MYGUI也要做大量修改才能用到游戏中,但我觉得是少比CEGUI好改一点>_<。我目前也刚做到登录,选人界面,大 部分功能尚未开始,真正的问题可能还在后面,但到目前为止还是对MYGUI挺满意的,这也只是我个人的选择,诸位看官还请三思!

    文章来自: 本站原创
    引用通告: 查看所有引用 | 我要引用此文章
    Tags: UIUI MYGUIMYGUI OgreOgre
    原文地址:http://www.mobilegamebase.com/blog/article.asp?id=33

  • 相关阅读:
    Java如何编写自动售票机程序
    install windows service
    redis SERVER INSTALL WINDOWS SERVICE
    上传文件
    This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed.
    解决Uploadify上传控件加载导致的GET 404 Not Found问题
    OracleServiceORCL服务不见了怎么办
    Access to the temp directory is denied. Identity 'NT AUTHORITYNETWORK SERVICE' under which XmlSerializer is running does not have sufficient permiss
    MSSQL Server 2008 数据库安装失败
    数据库数据导出成XML文件
  • 原文地址:https://www.cnblogs.com/kex1n/p/2286443.html
Copyright © 2011-2022 走看看