noslopforever [天堂里的死神]

我浴血奋战,只为了神圣永久不变的传言

用户操作
[即时聊天] [发私信] [加为好友]
noslopforever(天堂里的死神)ID:noslopforever
76238次访问,排名1397,好友5人,关注者13人。
3D、图形学、游戏、哲学、历史、音乐,一个都不能少。
noslopforever的文章
原创 85 篇
翻译 2 篇
转载 4 篇
评论 215 篇
noslopforever(天堂里的死神)的公告

-欢迎大家来到我的空间。这里关注游戏相关学科的问题。
-自我介绍:男,25岁,程序员,喜欢战争、历史和哲学题材游戏。作为一位普通的初学者,希望众位前辈们能多多包涵和帮助。
-欢迎大家拍砖。本Blog原创的文章,如要转载,请注明出处和姓名。本Blog放置的代码,大部分是伪码,不保证能够运行。
*留言本1:没有CSDN帐号的网友留言请点击此链接
*留言本2:CSDN网友请在个人空间留言 ^_^




烽火过千年,往事如烟。争斗一生归何处?黄土青山。 繁华总易逝,回首不堪。敢叫天地换新颜,铁马连天。 ——《无题》 李巍于2008年6月9日

-最近在做:做好自己的项目,安排自己的时间。

-有些栏目的文章是不放在主页显示的,如果有感兴趣的可以到相应栏目查询。杂项和Just As Gamer栏目的,仅作为个人喜好,恕不回复。

最近评论
RAINini:比我小一岁,比我厉害这么多,心里不平衡,请我吃饭。
RAINini:createDirectory好像不支持递归创建目录,../temp/temp 就创建失败了。
noslopforever:嘿嘿……奔三啦……
版本结束,再去酸菜鱼吧~~嘴馋了~~^o^
noslopforever:好的,多谢 ^_^,我马上去弄个1.36来
Nhsoft:你装啥老啊。藕都28了,faint.....竟然比我小三岁,快请客。
文章分类
收藏
相册
misc杂项
朝圣者的路途
文档所需图片册
我的书单
我的照片
!飞龙在天!
cproom前辈的Blog
eXtreme 3D —— Dreams的Blog(RSS)
flymemory的Blog
johnson的Blog——我的老师和第一个上司 ^_^
nhsoft——野猪大大的Blog
Nightmare of Design/Dev(RSS)
游戏编程实践——我的老师的Blog
马肝前辈的Blog
!虎狼成群!
亮——同学、引擎程序员
江自流——另一位同学兼才思敏捷的策划
游戏王——同学,一位才思敏捷的策划
推荐网页
Boost——C++准标准库
Boost中文站
GameDev.net
OGRE3D中文站
OGRE3D——开源的3D图形引擎
Sourceforge
有关WOW格式的Wiki
涂鸦软件——一个很牛的国产游戏引擎
喜欢的站点
《闪电战》杂志讨论区
帝国之鹰
德军总部
英雄世界
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

原创 游戏引擎碎念 2收藏

新一篇: 老规矩,这么久不见先FQ一把。 | 旧一篇: 新年了,说点什么吧还是……

    上次在《游戏引擎碎念》中,我提交了那个时候对于引擎的一些看法,这篇文字不准备革命,只是准备打个补丁。我过去对于引擎的认识,总是底层+工具+框架,底层就是平台api以及基本数据结构和算法的封装;工具就不用说了地球人都知道;框架呢?就是用作“粘合剂”,粘合游戏系统与底层的层次。各个层次按照什么组织,那不是问题,问题是,结构就是这样的结构,很少有变化。

    我最近遇到了一个很死很烦人的结构,在这个结构里,任何对于结构的破坏,都必须发生在结构所允诺的范围内,必须使用结构所要求你使用的技术来对之进行破坏。一开始我很心烦,心烦的结果就是上一篇文章:《新年了,说点什么吧还是……》,但是,能怎么办呢?大家都有事情忙,都被这东西郁闷了,难道我们这些做具体工作的也能像别人那样潇洒地过来骂一声:“这东西就是个垃圾”,然后去做别的事情么?!显然不能。不能的结果就是,我们必须想好该怎么办,必须习惯于神秘的探索,必须立足于脚踏实地的前进,必须做出具体的解决方案。这东西再是个垃圾,我们却也无法避免,那么,何不就这样,想一下为什么别人要这么做,我们可以怎样来做呢?

    人把底层设计得很复杂,有些人把底层设计得很独立,有些人把底层设计得很好很强大,有些人把底层设计得很傻很天真——其实没有什么不同,因为底层的结构不可能脱离其所依据的平台而存在。举例而言:DX10结构和DX7结构就很有不同,底层设计是否可以独立于这种平台api的强硬限制呢?再比如说,windows io和linux io也有所不同,windows wchar_t和linux wchar_t也有所不同,底层的平台io函数和locale是否可以独立于这些平台api存在呢?那是不可能的。所以,如上篇文章所说,我现在自己也不会太赞成底层过于复杂的设计了。

    再说结构,有些人把结构设计得很灵活,却很难组织,有些人把结构设计得很好组织,却很死板,到底哪种好?我觉得这个事情没有绝对,每个人的感觉都不同,但是,必须强调一点,框架结构无论如何——它所完成的任务,只不过是转嫁工作量而已。对于一个游戏而言,两个水平相当的小组,使用相近的技术,完成他所花费的功夫基本是一致的。对于这基本一致的功夫而言,框架多做一点,引擎的使用者就可以少做一点,框架少做一点,引擎的使用者就必须被迫多做一点。因此一个引擎如果没有框架还在那里沾沾自喜——那就准备好迎接一大堆受虐狂吧——不过中国的程序员有受虐狂么?引擎的使用者才不会去管你引擎这里那里怎样怎样,他们只关注游戏的质量和开发速度。

    公正点说,底层的设计,这个做的是复杂了,这主要是因为GC的引入和多线程,如果这些还都可以忍受,那么框架也做得太复杂了,这主要是因为框架层希望控制的事情太多,这就比较郁闷了。而这些事情在我们的项目中,却又恰恰不能按照他们所预想的道路发展——因为我们的项目还有另外一套体系。最为致命的是,对框架层的修改被迫不得不使用它强制的方式来进行,而对这种方式的学习中我们悲惨的发现这个过程是痛苦和扭曲的。因此,尽管这个引擎口碑不错,我仍然不得不表达一下自己心中的想法:它确实不适合我们的项目……真怀疑它是怎么适合你们的项目的?!

    我讨厌强制,强制意味着弱小,强大的引擎应该不至于沦落到强制用户必须这么这么,必须那么那么的地步。诚然,结构本身就是强制的,他代表着整个体系的健壮、安全和稳定,如果它不强制,那么整个体系就无从保证。但是强制也不能强制到对于风吹草动也要紧张的地步。结构犹如管理国家,文火慢煮,旁敲侧击永远是重要的,只有对于最顽固的敌人,才能进行正面对抗。两套水土不服的体系互相勾心斗角,苦了一大群被夹在中间无力反抗的人们,好在现在已经略有些进展,甚至能够游刃有余在两套体系之间。但,引擎的体系过于强硬,还是让我们感觉到无限的压力和困难。

    一个引擎对于项目的普适性或许是更加重要的,我总这么认为。一个oo的企业框架已经能供各种各样的企业去完成自己的功能,为什么一个oo的游戏引擎却还是只能消化一两种游戏类型?这个很让人觉得愤懑。都说搞游戏的开发者都是一帮牛人,可我真的没有觉得在结构设计上,我们到底比那些企业项目的设计师们牛到哪里去。即便是某些自诩oo的引擎,也走的是那种强奸民意的自以为oo路线,一件事情只要不准备发生在它的体系下,那么这套体系就变得一塌糊涂,甚至一无是处了。在这上面,这些oo引擎和我们现在用到的这个不自我标榜oo的几乎是一丘之貉,只不过更小更精悍更底层,不会遇到像我们现在的问题罢了。oo有时候并不是简简单单的模式,而是模式之外,对于整个体系结构的清醒认识。——这上面ogre做得还算可以,只可惜底层的设计上走得有点远,离一个游戏引擎差得也还太远了……

    或许我们还真的有很长的路要走……

发表于 @ 2008年03月01日 13:48:00|评论(loading...)|编辑

新一篇: 老规矩,这么久不见先FQ一把。 | 旧一篇: 新年了,说点什么吧还是……

评论:没有评论。

发表评论  


登录
Csdn Blog version 3.1a
Copyright © noslopforever(天堂里的死神)