Why CE-GUI sucks

1649 篇文章 11 订阅
1623 篇文章 22 订阅

http://blog.csdn.net/xjyhust/article/details/1739570

 

首先要说的是,ce-gui是我一直都在使用的一个开源的gui库。我从0.4版本初期,就一直在关注这个项目,到现在的0.5的版本,和将要开发的0.6的版本来看,cegui已经进步了不少,很多问题,已经或者将要被解决。

cegui的易于使用和相对的完整性,是我选择cegui的主要原因。但是cegui要想成为具有商业品质的一个开源库,需要走的路还是很长的。

首先是,过于复杂的设计,这一点在gui中当然不算什么,但是,一个轻量级的gui库,比较理想的,应该是底层用c来写,上层用c++来进行封装。但是,在看cegui的源代码的时候,肯定会被吓一跳,和其他的gui库比起来,其设计复杂度是相当大的。可以和其他一些开源的引擎,比如irrLicht和cs中的内建gui比叫一下,就知道了。

其次是,优化不足,效率上面的优化,是一个方面,最让人惊讶的是对于内存的优化,没有到位。其实这点很容易被忽视,一些引擎也只是内置了执行时间上面的优化工作,比如想ogre和torque,但是,一个良好的内存占用的监视器,是必须的。cegui中,一个MultiLineEditBox就要10M,这让人感到很惊讶。稍微分析一下cegui就发现,存在大量同一对象的拷贝,很多资源都没有达到共享。在游戏引擎中,是要尽量的共享数据,使用纹理、材质管理器的一个根本原因也就是在于此。

另外一点,可能很多人会有不同的看法,但是我认为cegui是不太好扩展的。首先,说他利于扩展的人会举例说明,你看,现在所有的控件,都是一点点的加上去的,这怎么能说不好扩展呢。游戏的利于扩展性,有两个方面的意义,一个是对于开发这个库的人员,在上面添加库的功能;更重要的一个含义,是对于用户,也就是其他程序员来说,要利于扩展。如果是写另外一个editbox,代替cegui原来的那个,当然是比较简单的,但是要想往里面添加一个饼型的菜单,就像second life那样,难度是相当大的,原因很简单,cegui的良好的设计,只能达到提高开发人员的效率,而没有做到提高用户的效率。

我现在发现,我对游戏引擎的理解程度是分为了几个阶段的,对于什么是游戏引擎,什么是好的游戏引擎的认识,也是分为几个阶段的。想ogre、cegui那样的非常华丽的设计,曾经是我最求的目标。但是游戏引擎中,衡量的标准缺苛刻的多,时间和空间上面的性能,才是最关键的一环。当然,这只是我现在的看法,以后也许会变。而且,对于ogre和cegui的开发者,我一直是相当尊敬的,他们的工作相当的出色,如果要我来做,绝对做不出比他们更好的开源库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值