`
yanlijun250
  • 浏览: 783347 次
文章分类
社区版块
存档分类
最新评论

冷雨——随笔04-11-9

 
阅读更多
很久没有写BLOG了,其实是很久没有为技术而写BLOG了。
有人说技术是这样一樽美酒,只有在平静的时候,你才能品味出它的甘甜,不幸,最近我的头脑里正逢乱世。
今天北京下雨了,非常高兴,非常难得的机会能让自己冷静下来,坐在这里,写上一点什么东西。
---------------------------------------
这几天跟CGamer是一半吵架一半研究,在工作上也不甚顺利,总是提不起精神。跟CGamer一起把Irrlicht引擎基本看完了,他总结道:引擎的构成方式是在不变性和效率的前提下提取出最大程度的可变性。我想我没有异议。至于这个不变性究竟是指什么,我想主要可能就是数据,数据集。我跟CGamer争吵的核心就是在于不变性和可变性的定位问题上,或许,这本不是我们这种毛头小孩子可以解决的问题。
例如图像,假设说我们想让File和Render层脱离,那么除了Render把对象联系转化为标号联系之外(把利用File*变化为利用文件名,这样在对象这个层次的抽象上,File看不见Render,Render也看不见File。只是在具象实现的时候才需要建立对象联系。),还需要一点就是抽象层就要做到把数据抽象到底。
为什么呢?我们假设这几点:
1、假设数据不抽象到底,只留一个最小化的ImageData,会出现什么情况呢?当在File的具象层准备为ImageData填值的时候,它发现,有很多数据ImageData并不准备记录,那么,File具象层(注意是具象层不是抽象层)必须实现自己的XXImageData,这就有一个问题,在Render抽象层只可能知道File抽象层,那么当Render抽象层需要获取ImageData的时候怎么办?当然你可以把ImageData做成一个DataChunk来解决,但这总归不是很方便的事情:因为标准是由具象层来定的,抽象层再神通广大,怎么可能知道尚未出现的——从他角度所不可见的——具象层如何定制这个标准呢?!
还有一个问题,在Render具象层,是否要和File具象层耦合?现在看来必须是要耦合的。否则即便知道DataChunk是什么,也不知道里面如何排列这样那样的值,仍然是什么事情都做不了。好在这种耦合只是一种标准上的耦合,你只要符合这种DataChunk组织标准就可以。那么问题是,File具象层一换,很可能不再遵循XXImageData的标准,而换做支持YYImageData标准,这下就郁闷了。所有跟ImageData有关的地方全部需要重写或者重改。
设想我们为什么要设立抽象、具象层分开?具象层不互相访问?主要就是为了让各个模块脱离耦合,但是现在的设计只可能是逼迫着我们无法脱离耦合。
既然是无法脱离的耦合,我们就可以试图确定之为不变性。在抽象层设立最大化的ImageData,无论是抽象层还是具象层都应遵循此标准。如果你不知道会发生什么,那么你应该如此:设立DWORD dwReserved1、dwReserved2……dwReservedN,以方便具象层去定制标准了。反正最为核心的数据你都已经握在手里,具象层为了方便其实现订立的一些别的数据,即便在更换具象层的时候发生了更改,也会方便得多。这就类似于DX的思路,核心数据和方法我牢牢控制在手里,一切可变性都应在这些不变性的基础上来完成。
2、但是当这个思路遇到了高层引擎系统,则会复杂很多,众所周知,高层引擎系统可以说是每个游戏每个样子,但就地图格式而言,地图格式对于不同游戏几乎是完全不同的,怎么办呢?可能抽象出来这样一个高层核心数据吗?
答案是,不可能抽象出完全适应于各个游戏的核心数据,但是我们应当尽量试图把数据打散到各个部分,并为之抽象尽可能多的模式和细节。就拿地图来说:我们把地图本身的一些细节独自抽象(长宽高),而高级细节包括区域表和区域控制方式(例如阻挡和阻挡格子表),可能LightMap等也需要记录,或者暂不记录,在地图编辑器里面即时演算生成,其实是一样的。我们把现有的东西尽可能多抽象为不变性,这样一来必然会消耗大量的空间和效率,这就是设计者的问题:在效率和开发效率之间,做何权衡的问题。地图可能还受到一些牵制:包括场景管理器类型(BSP、四叉树、八叉树),那样就需要根据当前注册了哪些场景管理器,针对这些被注册的管理器抽象一些场景管理器所需的数据。肯定会有更好的方法,但是我和CGamer都比较蠢一些,呵呵
如果说地形、地图就是很多现有技术的总结,把这些东西抽象出来就可以,那么物件可能会稍稍复杂一些。我给CGamer提出的、并且几乎瞬间就被那丫挺否了的解决方案是:除了基本数据外,利用大量Reserved数据和脚本配合。我程序:无论具象层和抽象层都可以不知道数据是做什么用的,那无所谓,数据都交给一个比较强大的脚本来处理。例如我可能在做即时战略的时候,btReserved1是用作指定各方的标号,但在做RPG的时候,这个btReserved1又开始指这个物件是Player?NPC?还是触发器?可见Reserved这种抽象数据组织,势必要求一个强大的脚本系统作为补助,否则,其存在只配给大家造成更大的混乱。不过这个天才的(众人:你丫欠扁吧)方案,居然被CGamer那丫挺的瞬间就否决了,不知道他怎么想的。(CGamer:你丫敢说我坏话?!
呵呵,如果大家还有更好想法,一定要告诉我啊,跟回复,或者发信到laburas AT sohu.com都可以(AT应为@,不用@为了避免很多邮件搜索工具的搜索)

--------------------------------
最近几天另一个头疼的就是输入法,Windows下的伪全屏和IME,Linux不知道,这应该是标准的方法,但CGamer看来不想用。支持IME的输入法本身不是很多,据说微软拼音对IME的支持也是有问题的,只有智能ABC才是完全标准,这个我不太清楚,伪全屏降低效率,这地球人都知道。反正最近一段时间颇多心烦,所以经常在下班什么时候搞搞这个,查查资料。搞到了一个Linux下的开源的小企鹅输入法,很不错。但是说实话,那没有注释的函数看得我满身流汗,幸好系统本身不大。

以后的生活估计还是这么些东西:工作就是打包和上传工具、下来跟CGamer继续为他那些鬼点子吵架、最后看看输入法什么的。上帝保佑,或许,这段日子会很快结束吧。
分享到:
评论

相关推荐

    ASP实例开发网站源码——冷雨夜江湖剑侠外传商业版.zip

    这个"ASP实例开发网站源码——冷雨夜江湖剑侠外传商业版.zip"压缩包文件提供了一个基于ASP的网站开发实例,名为"冷雨夜江湖剑侠外传",它是一个商业版本的游戏或社区平台,可能包含了角色扮演、社交互动等元素。...

    冷雨夜1521 VIP 100%

    冷雨夜半自动会员! 须安装 1. ActivePerl-5.8.8.822-MSWin32-x86-280952.msi 2. ora10client.exe 客户端程序 注:请自行查找! 3. 安装ftp 建立好自己的 ftp地址 账户 密码 要使用我指定的ftp哦 Serv-U_6.3.exe ...

    冷雨夜1521源码 (VIP)

    冷雨夜半自动会员! 须安装 1. ActivePerl-5.8.8.822-MSWin32-x86-280952.msi http://jlbc.skycn.com/down/ActivePerl-5.8.8.822-MSWin32-x86-280952.zip 2. ora10client.exe 客户端程序 ... 注:也可自行查找!...

    冷雨图形江湖社区

    冷雨图形江湖社区

    冷雨浏览器

    "冷雨浏览器"是一款专为漫画爱好者设计的浏览工具,其独特之处在于它支持直接浏览已下载的漫画打包文件,省去了逐个打开图片的繁琐步骤。这款软件以便捷高效的方式,让漫画阅读体验更加流畅。 在提供的压缩包文件...

    全自动1521工具 冷雨夜全自动1521

    标题中的“全自动1521工具 冷雨夜全自动1521”可能是指一个名为“冷雨夜”的自动化工具,该工具具有1521的功能特性或版本号。描述和标签中的内容重复,暗示了这个工具的核心特征是其自动化能力和与“冷雨夜”相关的...

    最新 冷雨夜全自动1521

    【标题】"最新 冷雨夜全自动1521"所指的可能是一款软件或工具,其中"冷雨夜"可能是开发团队或者软件的名字,"全自动1521"则可能表示该软件具有自动化功能,并且是这个系列的第1521个版本。然而,由于信息有限,具体...

    听听那冷雨大学语文[宣贯].ppt

    他的《乡愁》一诗,以其独特的物象选取——邮票、船票、坟墓和海峡,形象地表达了对故乡的深情与哀愁,展现了个人经历与历史变迁的交融。邮票象征着幼年的母子分离,情感绵长;船票则代表着成年后与爱人的短暂相聚,...

    冷雨夜自动1521抓服务器

    冷雨夜自动1521 市面上买800的1521扫服务器工具~!

    高一语文听听那冷雨复习[精选].doc

    【知识点】 1. 作者简介:余光中是台湾著名诗人...9. 结尾含义:“前尘隔海,古屋不再”意味着过去的记忆如同隔海相望,那些旧时的场景已经远去,无法再回。这句话反映了作者对岁月流逝的无奈和对过往生活的深深怀念。

    WDB=冷雨飘香修改版

    【标题】"WDB=冷雨飘香修改版"是一个基于原有FEIXIN版进行功能扩展和优化的软件,特别针对论坛社区类应用进行了增强。这个版本不仅保留了FEIXIN版的基础特性,还整合了冰雨盟和QBIT等不同论坛的功能,使得用户能够在...

    冷雨夜江湖2.8江湖社区

    冷雨夜江湖2.8江湖社区

    幻想冷雨江湖

    《幻想冷雨江湖》是一款基于源代码开发的论坛社区类应用,其安全性经过了本站的改进,为用户提供了一个更安全的交互环境。本压缩包包含了该应用的核心组件和必要的资源文件,供用户下载、研究和可能的二次开发使用。...

    花的勇气教学实录-程惠萍教学实录——花的勇气.docx

    生 3:后来他惊奇是因为在冷风冷雨中,那些花儿冒了出来,让他看到了生命的顽强。生 4:作者心头怦然一动是因为他从花儿身上感受到了生命的勇气,即使在恶劣的环境下也能绽放生命的光彩。 【知识点解析】: 1. **...

    【可是,当夜冷风冷雨,接连几天时下时停阅读】冷风冷雨造句.docx

    是——士气。”这里的“居然”和“突然”二字,各自承载了不同的情感色彩和思想深度。"居然"二字透露出作者对于小花在恶劣天气中依然能坚持挺立的惊讶和震撼,它所表达的是出乎意料之外的发现;而“突然”则表明了...

    冷雨夜江湖剑侠外传2.2 商业版

    上传所有文件,注意:global.asa必须上传到网站的根目录(虚拟目录),首先到首页注册好授权站长的帐号,然后运行:http://...等级:11然后进入系统设置进行其他项目的设置!为确保安全设置好后务必将setup文件夹删除!

    听听那冷雨教学案.doc

    【标题】:“听听那冷雨教学案.doc”的教学设计探讨 【描述】:这份教学案主要围绕余光中的散文《听听那冷雨》展开,旨在引导学生深入理解文本,领略余光中的文学风格。 【标签】:文档,教学设计,文学分析 ...

    【《听听那冷雨》阅读理解答案】听听那冷雨阅读理解.docx

    【《听听那冷雨》阅读理解答案】听听那冷雨阅读理解.docx

    值500元的冷雨夜江湖剑侠外传 v2.2

    这是一个很不错的游戏源码 真的狠不错 有谁搭建好了告诉我

    冷雨江湖 v2.2

    【标题】"冷雨江湖 v2.2" 指的是一款名为《冷雨江湖》的游戏的特定版本,版本号为v2.2。在游戏领域,版本更新通常意味着修复了之前版本的bug,增加了新的功能,或者优化了用户体验。"超管名字:安安密码:aa72686 ...

Global site tag (gtag.js) - Google Analytics