游戏开发论坛

 找回密码
 立即注册
搜索
查看: 32264|回复: 31

Orz引擎,挑战风魂,挑战KlayGE

[复制链接]

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
发表于 2009-3-7 13:31:00 | 显示全部楼层 |阅读模式
在国内开源引擎届,古有风魂++开天辟地,今有KlayGE纵横江湖。

我Orz初生牛犊不畏虎!踩在Ogre肩上向两位大哥挑战。

Orz今年年初采用LGPL协议发布,目前开放到0.0.6版本。


本引擎的开发目标:
让每个看电视的人都可以开发游戏。

本引擎的开发原则:
易扩展,易使用。


本引擎定位于MVC开发模式中的C。负责链接并简化包括Ogre,fmod等诸多View引擎。提供良好易用灵活的M接口给用户。
专注于系统逻辑分离,依靠boost,遵守一个好的引擎乃是一堆好的工具加上瘦小的框架概念。

http://bbs.ogre3d.cn

0

主题

6

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2009-3-7 16:50:00 | 显示全部楼层

Re: Orz引擎,挑战风魂,挑战KlayGE

不错 顶下~

20

主题

136

帖子

172

积分

注册会员

Rank: 2

积分
172
发表于 2009-3-7 18:39:00 | 显示全部楼层

Re:Orz引擎,挑战风魂,挑战KlayGE

使用 boost 的基本上都没有价值。

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
 楼主| 发表于 2009-3-8 00:26:00 | 显示全部楼层

Re: Re:Orz引擎,挑战风魂,挑战KlayGE

loserwang: Re:Orz引擎,挑战风魂,挑战KlayGE

使用 boost 的基本上都没有价值。


C++本身包括std
std中 tr1里 3/4 都是boost提供

如果一个人说使用boost的都没有价值  就等于说C++没有价值。
如果认为C++没有价值,自然不会用Orz 或者Ogre
继而 本引擎也不适合这类人。


倚老卖老的说句话,C++中凡存在必有其合理性,
因为老爹“小心谨慎的发展语言,大力的发展库”,导致的必然结果就是,在今天没有使用boost 对C++程序员来说寸步难行。可能你至今没有使用过Boost.
但是如果你接触过诸如java或者PHP语言这种本身带有大量特性的现代语言,你就会发现,就算“正则表达式”这些简单的零件,如果不提供的话,C++(相对于别的语言)根本寸步难行。C++靠boost支持函数式编程,C++靠boost支持模版元编成。

如果你写的有限状态机能超过boost中提供的我当然会敬佩你,但除非你开放源代码我才能使用。

单元测试你还在使用CppUnit,老土了 试验一下Boost::Test中提供的单元测试吧,你会了解C++相对于Java在单元测试中天生的优点(免于继承等繁琐)。

如果你看过景点的C++书籍 Effective C++,而且你相信其中所言,你就会知道Boost的重要(看看第三版最后一章节)。
如果没有boost 我甚至不知道怎样写C++代码。
没有智能指针,对于异常中安全释放我基本上搞不定,或者对于那些不明确所有权的对象如何释放。
当然如果你够细心,然后可以处理所有细节,那么至少你的Impl惯用法,代码会比我写的更长一些,更难看一些。

这就是 我们 不得不使用boost的原因,在您实现一套更好的C++准标准库并开源之前,请让我继续使用那个boost。谢谢


1.你如何跨平台多线程
2.你如何平台无关删除文件
3.你如何高效快速分析字符串
4.你如何单元测试
5.你如何模版元编程
6.在构造函数中触发异常之后,你如何保证在构造时候分配的内存空间和资源正确释放
7.你如何检查在你释放对象之前是否定义了类。
8.你如何分配类型安全的通用类型。类似动态类型语言。
9.你使用那套有限状态机,如果是你自己实现,拟开发了多少时间?
10.你如何实现通用的异常类。
11.存档是你如何序列化对象


如果一个人没有能力完整的解决上述问题,那么看看boost最好不过,当然重复实现轮子也是可以的,但有必要要么。这个可以有?这个真的没有。一睁眼一闭眼一天过去了 一闭眼没睁眼一辈子过去了。

20

主题

136

帖子

172

积分

注册会员

Rank: 2

积分
172
发表于 2009-3-8 01:36:00 | 显示全部楼层

Re:Orz引擎,挑战风魂,挑战KlayGE

这不是重点,依赖平台越可信,项目设计和升级工作则越稳健。
应该考虑几年内的更新以跟随平台、设计标准的脚步。
还有版本混乱的问题。可以的话,自己打造一批合适的基础设施。

http://code.google.com/p/los-lib

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
 楼主| 发表于 2009-3-8 03:58:00 | 显示全部楼层

Re: Re:Orz引擎,挑战风魂,挑战KlayGE

loserwang: Re:Orz引擎,挑战风魂,挑战KlayGE

这不是重点,依赖平台越可信,项目设计和升级工作则越稳健。
应该考虑几年内的更新以跟随平台、设计标准的...



我不是很理解你说的这些话的意思,
我大体上觉得你说的两条是
boost 依赖平台不可信 & 版本混乱
如果你是这个意思的话,我不是很认同。
1依赖平台不可信:boost的审核流程十分规范,而且首C++标准委员会的直接影响,很多特性甚至提交到C++标准中。如果信赖C++ 不得不信赖boost
2版本混乱:近期boost版本升级很快,但我们需要明确的是开源软件的版本规则,只有当第一位接口号改变的时候才代表思想和结构的变化,比如php4和php5。多少年来boost一直是1.x.x 代表boost接口的稳定性,所以不存在版本混乱的问题。

自己打造一批基础设施再学习和研究的领域是没问题的,但是在真正应用中就有很大问题:
我们举例Loki,我是很爱Loki库的,其开创的使用了策略模式进行开发。不过Loki只是一个公司,用他的库你难免会感到功能不足。Loki本身也开发吃力,曾经两次希望加入Boost阵营,但因为诸多原因没有成功。后来Boost提供了模版元编成的库,基本上就接替了Loki成为模版元编成的领导者。Loki长年无人维护,目前仍然是好的学习资料而已,实用价值随着Boost的模版库的改善而减少。

3第三点我要提一下开源和黑客的精神,就是不重复制造轮子。和商业软件不同,开源软件没有隐藏的技术,大家共同维护一个开源的社区,如果你需要些一套自己的基础设施,请声明他和已有的基础设施有什么不同和优缺点。(在设计思想上一定要有自己独特之处)。这点是国内很多开源软件的问题,没有特点。如果你只是改良和增强boost的使用,最好的办法是参与到boost的开发中去,参加boost组织,为整个社区做贡献,而不是再写一套boost,否则除了找工作可以作为筹码之外,对整个人类软件业来说,没有什么太大的价值


“应该考虑几年内的更新以跟随平台、设计标准的脚步”,这句话我不是很理解,如果说跟随设计标准的脚步,boost委员会和c++委员会的关系,跟随平台设计标准的脚步谁能更比boost强?

20

主题

136

帖子

172

积分

注册会员

Rank: 2

积分
172
发表于 2009-3-8 13:09:00 | 显示全部楼层

Re:Orz引擎,挑战风魂,挑战KlayGE

为了提供的程序库能对用户有用,需要跟随着平台以及标准的发展。如果依赖其他非标准程序库,那问题就会比较复杂了。
我们知道 C++ 提供了基本思想, STL 提供算法二次开发平台,Win32 提供操作系统平台服务和内核对象接口,OpenGL 以及 DirectX 提供使用硬件的 API。
那么,在我耳闻的范围,看看这个 boost 是什么东西。

1)“准”标准
等成为标准再说。我用 STL。
2)模板元
人工产物吗?
3)序列化
相反这个东西很弱,很不实用。用户需要操心的东西实在太多了,他们希望序列化可以自己根据对象内存布局以及动态内存从属关系智能地建立序列化数据。
4)线程
号称跨平台的线程,但是用户更希望得到“UI 线程”、“工人线程”以及各种同步异步策略的“纯面向对象”的线程工具。
5)智能指针、共享指针
如果接触到实际开发环境,就可以发现管理资源的策略有许多许多种,像本地线程存储、组件对象模型、Windows 的通用句柄、内核对象层次结构、应用程序模块状态等等我们拿什么来用。

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
 楼主| 发表于 2009-3-8 13:23:00 | 显示全部楼层

Re: Re:Orz引擎,挑战风魂,挑战KlayGE

loserwang: Re:Orz引擎,挑战风魂,挑战KlayGE

为了提供的程序库能对用户有用,需要跟随着平台以及标准的发展。如果依赖其他非标准程序库,那问题就会比较...

有一个很大的问题,可能是我的问题,其实我并不是很理解你说的意思。所以我也没有什么办法反驳。

我只是不明白,你认为你自己开发的东西会比boost强?

当然 我没看过你的东西,所以我也没办法评价。

单纯对于boost来说
Effective C++强调其价值,用了一个章节。 你否定其价值,用了三篇帖子。
在这两者选择,你应该知道我会相信谁的。

我想我没必要把那一章节复制过来,Effective C++最后一章节,便是我对Boost价值的理解,本人在相当多的时候,是尊重权威的,Meyers也是我在C++界十分尊重的人。

所以在我没弄清事物的本质(或者你说的真正含义)之前,我宁愿相信Meyers所说,除非你能证明,你是比如BS老爹的马甲之类,才可能在这个时间动摇我对Boost的崇拜有如滔滔江水连绵不绝。

对于软件开发,显然我不是革命派。




我看了一下Los,但是我还是不能做任何评价,到现在为止,我仍然没有能力了解Los 到底是一个什么库。

恕我愚钝,不知道 “Los 对象集合库提供一组 Windows 应用程序开发的对象化类型。” 这句话的含义。

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
 楼主| 发表于 2009-3-8 13:59:00 | 显示全部楼层

Re: Orz引擎,挑战风魂,挑战KlayGE

回了上一个帖子我一直在想一个问题,你的观点是什么。
这是很郁闷的一件事情,
如果不是你的表述问题那就是我的理解问题了。

我思考良久,大约觉得你的观点似乎是以下几条之一

a,los比boost强大,或者将会强大,所以用los比较好,不要用boost
b,boost太通用,还是我们每人实现一个自己的后花园比较好,我的是los,你的可能是las,lbs之类。
c,c++根本不用解决高级程序问题的库,我们硬写在代码里好了,毕竟我们精力和效率都是最高的。
d,我在等c++09表准,等那时候估计C++标准库就包含了boost大部分有用的功能,所以没必要下载boost,只下载vs2010就好了。

如果继续讨论,请先告诉我您的观点,如果不在此列,请单独声明一下,我觉得这片贴子到了现在已经(让我)没头脑了。

9

主题

208

帖子

290

积分

中级会员

Rank: 3Rank: 3

积分
290
发表于 2009-3-8 15:27:00 | 显示全部楼层

Re: Re:Orz引擎,挑战风魂,挑战KlayGE

loserwang: Re:Orz引擎,挑战风魂,挑战KlayGE

使用 boost 的基本上都没有价值。

免费打工仔别太在意了,loserwang可能不太善于表达。我注意到这句话里有一个“基本上”,应该还是没有完全否定boost的。

讨论甚至争论问题是好的,可以让人眼界更宽,对自己的知识把握更深。
别说boost,业界对于c++的争论在前段时间不也达到高潮了吗?比如云风的《c的回归》,孟岩的《Linux之父话糙理不糙》等等。但争论归争论,大家该用啥用啥。
凡事都有两面,就像任我行的吸星大法,吸了别人的功力他得能消化,不然就被反噬。boost也一样,用在合适得地方,你的系统会有个好的框架和实现,用得不当,它只会捆绑你的手脚。

当前硬件系统的运算能力和10年前已不可同日而语,应用系统相应也越来越复杂,如果一切工作从头做起,确实让个人不知道怎么去写一个应用,我们或多或少需要lib、framework。这一点上我非常赞同免费打工仔的观点。在这点上,对于boost,我认为是有用的,并且对于loserwang所说“那问题就会比较复杂了”,我认为主要是如何运用的问题,而不是boost的问题。

loserwang的los-lib我在这个贴里第一次知道,于是到页面上去看了看,然后我对自己说,我不会用这个的。消息映射、多线程我会用boost,GUI我可以用MFC、wxWidgets,3d渲染我会用ogre,我为什么要用loserwang你写的这个库?可能是我不够敏感,或者实力不够,我看不出los-lib里的特别之处,我认为作者既然写了这个库,还应该多花些笔墨描绘自己的特点,最好有几个例子,这样你的东西才会容易推广。

结尾,做为开源精神的拥护者,在这里表达下对两位的景仰,希望在这里学到更多东西,呵呵

忘了提醒了,免费打工仔发的链接错了吧?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-8 10:00

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表