学习心得
文章平均质量分 62
天堂里的死神
3D、图形学、游戏、哲学、历史、音乐,一个都不能少。
展开
-
U3Terrain的一个BUG及修正
不知道有人遇到了没。U3的Terrain系统,在层数高于5层后,一定会出现一个BUG——6层时,当你开始对第1、2层的过渡进行涂抹时,就一定会发现,整个地形以统一的Alpha给第2层和第1层来了个过渡,无论你怎么刷,这个Alpha都不会变。跟踪资源,发现两张Weight Map都在,第一张描述了2-3、3-4、4-5、5-6四层,第二张描述了1-2。资源这里没问题,跟踪游戏流程,数据直到提交到原创 2009-05-26 08:07:00 · 1073 阅读 · 3 评论 -
WPFLinkerNode
卡片游戏的客户端表现很多地方需要用到序列式的调用,自己用数值去调当然是可以的,就是会嫌麻烦,于是就做了个这么个玩意儿,准备把卡片的一些游戏表现全都用这个来拖出来,哈哈,雪球越滚越大了,希望不要成了烂尾楼了。最近的效率真的下降了,总共弄了4天才搞定,不过在这个过程中对WPF更熟悉了一些。实现这个是基本按照了WPF本身的思路来做的,就是把逻辑和外观全部分开了,扩展的Controls目前只写了6原创 2011-06-20 10:04:00 · 1146 阅读 · 0 评论 -
WPFLinkerNode第二弹:可编辑的序列系统。
序列系统基本的概念就是绝大多数的事情是不可能瞬间完成的,必须要分步骤去完成,一个步骤结束后,紧接着下一个步骤,一步步来,直到把整件事情做完。FPS游戏剧情化的今天,序列系统的作用也凸显出来,所以Unreal2里还没有的Kismet,Unreal3就提供了。原创 2011-07-09 11:15:24 · 1179 阅读 · 7 评论 -
反思一下自己工作中的几个问题
瞬间就到了2012,时间总是过得比想象中更快。这次过年回家呆了更长的时间,现在能给自己的借口越来越多了,而实际出品的东西却越来越少,感觉自己在慢慢的退步。总结了一下去年工作和学习中的一些问题。前几年就已经铺开了一些学习和工作的计划,但是一直以来总是在落后,从未按时达成过自己的想法。前几年也曾想过,是不是自己的计划定的过于难以实现了,后来发现其实也并不是这样,很多计划定制后,按照自己原创 2012-02-10 21:58:13 · 2092 阅读 · 5 评论 -
COM新手使用中一个易混淆的问题
其实也没什么,[don box]里面也提过这个问题,但是没有继续展开。比如依照图形系统而言,一般封装时,接口可能会这么来设计:interface IRenderObject{};interface IRenderResource: public IRenderObject {};interface IRenderTexture : public IRenderResource {}原创 2012-02-21 11:07:49 · 1584 阅读 · 0 评论 -
2月22日更新《DirectX11的Shader Reflect的几个问题》
又看了看U3的实现方式,写了些新的东西:原文见:http://blog.csdn.net/noslopforever/article/details/7269353节选:2.2.1-----2012-2月22日更新----关于U3又看了看U3 CBuffer这块儿的组织,不是怪异,而是牛逼。U3因为它整个渲染引擎是具有一整套完整的体系的,而且原创 2012-02-22 10:58:57 · 1839 阅读 · 0 评论 -
DirectX11的Shader Reflect的几个问题(2012-2-22更新)
很久没有做图形系统的东西了,之前因为家中出了些事情,把精力主要放到了一些杂务和俗务上。最近回过头来看看,离京前的日记里,清楚地标明着,DX11 Shader Reflect的问题还没有解决。DX9时代带过来的习惯,因为DX9时代的Shader编撰是离不开D3DX库的,因此,感觉上总是习惯把Shader Reflect和ID3DXEffect9理解为同一个层次的东西,而且当时学习DX的时候,也是原创 2012-02-18 01:15:32 · 4545 阅读 · 2 评论 -
WPF的数据绑定笔记摘录
所谓数据绑定,其概念很简单,数据绑定决定了一个Source的改变会不会,以及怎样自动通知并改变Destination。Source可以是数据表,可以是XML,可以是一个内存数据,也可以是一个控件的某个属性值。Destination必须是一个Dependency Object的某个属性。这样的设定,使得数据的需求者(往往同时也是业务的处理者)和界面的提供者得以松绑。数据需求者仅需完成本身原创 2012-03-31 00:17:10 · 2339 阅读 · 2 评论 -
UE3的数据绑定笔记
http://blog.csdn.net/noslopforever/article/details/7413283这篇文章介绍了一下WPF的数据绑定,这是一种做法。回顾一下,数据绑定主要的几个组成部分:源数据池和源属性。目标数据池和目标属性。Binding:配置哪些源的改变,会使得哪些目标发生改变。前面也大概介绍了数据绑定基本需要解决的工作:源数据必须发布通知原创 2012-03-31 20:29:48 · 1585 阅读 · 0 评论 -
多线程……?
最近入手了几本书,大概翻看了看,好几篇讲多线程的。对于引擎而言,多线程一直是一个问题。DX9渲染多线程不能,资源多线程需要解决很多问题。OpenGL渲染多线程不能,资源加载完毕后,貌似生成GL资源好像也不能分开线程来做?DX11的渲染多线程由驱动支持,在470上还不如不开,580上感觉还凑合,不过好像跟不开多线程差别也没多大。感觉很鸡肋的东西。除非在主机平台上,可能才会去考虑最原创 2012-04-24 22:28:21 · 1276 阅读 · 2 评论 -
折腾死了,ADO.net+MySQL
1 软件就一定会有BUG,就算是Oracle写的,也不能迷信呀!2 错误不一定就是自己的,也要善于怀疑怀疑别人,特别是发现不行了要尽快查资料,要不就是钻牛角尖浪费时间了。3 软件不一定要用最新的,不过却最好订阅一下人家的更新信息,看看人家新版里面都解决了哪些问题。原创 2011-04-19 01:34:00 · 5864 阅读 · 0 评论 -
5月杂记,学习中的两个东西
最近又沉默了很久,倒不是故意的,i7有Baby了,所以转移了一些精力过去,而且可能是项目到了收尾的时候了吧,U3方面已经没有什么大的工作了,状态也一直没有起色,也没有什么太多可以拿出来分享的东西了。 整理了一下最近的一些思路,主要还是服务器方面的,都是一些实践过程中发现的问题和采用的方法。这玩意儿比预想要复杂得多,这也是必然的,要不服务器岂不是谁都可以去做了,这些心得也并不见得正确,可能还会不断修正,那句话怎么说来着?道路是曲折的……如果众位前辈发现有什么不对的地方,欢迎批评指正。 首先是服务器端的拓扑原创 2011-05-29 11:03:00 · 2765 阅读 · 5 评论 -
最近的一些感悟
随便写写,欢迎拍砖 ^_^ 作为一个编码员的基本任务就是依据设计,从既定的输入得到既定的输出。一个模块无论看起来有多么狰狞,对外界而言无非就是输入和输出,内部的操作应该是尽可能封闭的。作为一个设计师的任务则是依据需求,划分出既定而明确的模块和各模块之间的关系。------------------------分割线---------------------------------原创 2009-11-21 21:34:00 · 1212 阅读 · 1 评论 -
累了……
昨天初步测试了一下现在这个版本静态模型动态加载部分的效率,马马虎虎吧,省了70%的读取时间。剩下几个BUG,跟动态加载没什么关系了,是umbra的BUG,下周继续修理。此外还有个重挂接的效率问题,不过那个简直是没难度。 测完了,感觉很累,没觉得这么累过,今天睡了一整天觉,睡得现在超级精神。 真的很想感谢一下Unreal,无论如何,能坚持到今天,是因为Unreal,又爱又恨的Unre原创 2009-06-14 22:26:00 · 1165 阅读 · 0 评论 -
焦油坑……
记得Blooks人月神话里有一个很形象的比喻——焦油坑。又回想起了这个比喻,陷入泥潭中的史前生物——无论多么强大——无一例外地,越挣扎,陷入的越深。乐观主义的认知总是会觉得事情是可以避免的,然而不幸的是,从Blooks 70年代写下这些文字的时候,我们直到今天,也没有从根本上避免项目陷入焦油坑。我们试图用很多假设,但却一次次的碰壁,到最后,又一次次陷入恶性循环,难道人类是不长记性的么?原创 2009-06-15 23:35:00 · 1615 阅读 · 0 评论 -
WPF
最近从同事那里借了本WPF的书,看了看WPF,挺简单的,确实很简单,概念很简单,实现很简单,没有什么再简单了。这就是伟大——将复杂的事情用简单的体系去描述。做游戏开发的人或多或少可能都有点对商业软件不太重视,其实,商业软件中有很多思路是很值得我们借鉴的。软件为什么要发展?实现新的功能?——但那个是要取决于硬件的。软件的发展,我认为,第一的要务,是要帮助人类完成他们希望完成的事情。对于游原创 2009-06-21 21:31:00 · 1443 阅读 · 7 评论 -
花了三天时间,加上了动态的卸载,发文祝贺!
上周六看了看相关代码,周一编码,周二解决了几个致挂的BUG,终于把急需的动态卸载加上了,扩展一下Unreal,貌似也没预想中那么痛苦。编码极少,这点得感谢同事Aman Jiang那富有远见的Streaming,省了大事了。具体能带来多少好处,今天去测试一下,不过运行时确实比之前卡一些了 ^_^。如果能把显卡报错给彻底消除掉,卡那么一点或许也不是大事。有些人还嫌这地图小,有些人又觉得地图原创 2009-06-24 07:32:00 · 1270 阅读 · 3 评论 -
该整理一下了……
“自动”序列化今天基本上完成了,断断续续做了一个月,如果不是因为每天被迫要去考虑更多的事情的话,应该不会这么慢。总共也就才千把行的代码量……唉,什么生活啊,一直在生锈,现在的速度真的是不行了……这个系统的想法是在看U3的Serialize系统的时候偶然迸发的,U3整套Serialize系统过于麻烦了,扩展性也差,不过仔细想想,思想还是不错的,可以省一些事情吧,不过这个见仁见智,喜欢的有很多理由原创 2009-09-06 23:56:00 · 1064 阅读 · 1 评论 -
星际2的DS和Shadow学习笔记。
最近,随着外包告一段落,开始整理和重构GC了,顺手整理一下GC的MRT。之前没有认真读完的星际2的白皮书,这次至少是把MRT部分和Shadow部分读了一下。先说MRT吧:星际2的MRT大约如下配置: 具体就不解释了,看样子,为了保证精度,每个MRT应该都是64-bit的,0、2、3三个MRT保存表面颜色信息,1用来保存对于DS而言最重要的Normal Depth,还不错。关原创 2009-09-21 15:46:00 · 5545 阅读 · 3 评论 -
自动序列化,学习和实践
GC本次重构中,唯一不需要大动的或许就是自动序列化了,这个思想算是从U3借鉴过来的。U3里给我最大的感觉,就是序列化这里几乎不需要太动脑筋,只要是uc系的Object,基本上都已经处理好了自动序列化,版本更新时,数千个类却不需要合并一行序列化相关的代码。Every Thing Is Automatic。如果游戏能这么做出来该多好!当然也有人说U3这个系统设计的很烂,费效率,耽误时间,难原创 2009-09-21 17:07:00 · 1986 阅读 · 3 评论 -
《杀戮地带2》中的延迟渲染
这篇文章对延迟渲染的描述还是挺有参考意义的,其实早就说要翻译了,主要也是帮助自己加深一下印象,但是一直就抽不出时间来,今天家里有事不得不在家休息,于是也就趁机翻译了一下。翻译:http://download.csdn.net/source/1684527原文:http://www.dimension3.sk/mambo/View-document-details/Deferred-原创 2009-09-21 19:49:00 · 3493 阅读 · 3 评论 -
准备静静心,先从UI开始。
一直以来对UI的感觉就是一个拼量的东西,好和坏的唯一区别体现在编辑器强大与否上。后来,看了WPF后,才感觉对UI根本就从来没有明白过。并不仅仅只是那个数据绑定,而是整套结构,原来还可以这么来。最近想做的东西很多很多,但是却越来越难耐下心去做好一个单独的模块,Sigh!前段时间又搞了搞UI这块儿,数据绑定什么的,开了个头,就有了后面的一些新的想法。发现UI其实就是一个微缩的游戏世原创 2012-04-24 20:54:54 · 1497 阅读 · 0 评论 -
引擎不只是效果,程序不只是策划。
最近工作中,又陆续发现了Unreal的一些“隐藏的”东西。例如Test Track整合。例如UDS:脚本融入Visual Studio中。例如Sync:代码合并工具。……加上之前的Swarm和Perforce4整合。 有时候在想,我们能在效果上超越它,能在一些具体的环节上超越它,但如果真正要完成一个商业引擎,Unreal所达到的高度,其它的引原创 2012-04-30 23:25:13 · 2832 阅读 · 0 评论 -
提升您独立游戏开发的十个途径
原帖地址《10 Ways To Improve Your Indie Game Development 》 By Bratie Fanuthttp://www.gamedev.net/page/resources/_/business/production-and-management/10-ways-to-improve-your-indie-game-development-r翻译 2013-12-01 00:01:43 · 4612 阅读 · 0 评论 -
为什么游戏完成度不高?怎么解决这个问题?
原文:《Why your Games are Unfinished, and What To Do About It 》http://www.gamedev.net/page/resources/_/business/business-and-law/why-your-games-are-unfinished-and-what-to-do-about-it-r3429现在,你有一个翻译 2013-12-29 17:33:14 · 4595 阅读 · 0 评论 -
虚幻4随笔4 从工程开始
前文说到UE3开始,虚幻就使用了UnrealBuildTool(以下简称UBT)来编译和生成代码。为什么这么做而不是使用VS是很好理解的:因为VS跨平台会比较麻烦。像虚幻这样体量的工程,单为工程做一次VS配置就基本是一天的时间而且UE4还不像UE3那样就十几个工程,把所有uproject都看做工程的话,得几十了。依赖关系复杂度几何增长,用VS的工具去维护……而且要维护各个平台和配置原创 2014-04-29 21:54:15 · 10074 阅读 · 7 评论 -
DX12 is coming
在一片瞩目中,DX12来了。如大家所料的那样,DX更加馒头(mantle)化了。更Low Level,因此CPU也得到了解放,大概50%的CPU时间吧。更好的多核支持。nv的dx11显卡都能享受到。另外对手机的支持也增强了,更省电,更高效。xboxone将支持dx12。相应的,一些状态调用和资源管理的方式也有所变化。http://www.pcper.com/live/原创 2014-03-21 06:50:12 · 4660 阅读 · 0 评论 -
UE4随笔(一)准备过程
UE4从付费到下载到编译到运行的摘要。原创 2014-03-23 09:15:23 · 21407 阅读 · 10 评论 -
UE4随笔 二 第一印象
打开UE4,短暂的兴奋过后,开始大概扫一扫UE4的编辑器,整个界面比UE3更有现代气息:之前看其他人写的文章,虚幻4最重要的改动集中在下面几个方向上:跨平台:WIN和MAC平台都能使用,这就意味着必须使用两个平台都能接受的方案。界面:由于上述的原则,WPF界面虽然很酷,不支持MONO就只能跟好评无缘了(顺便吐槽一下微软,基于NET做了那么多东西,却总是虎头蛇尾)。因此虚原创 2014-03-24 10:29:55 · 11299 阅读 · 1 评论 -
关卡原型制作思路
虚幻4本次示例中,有一个关于关卡制作规范的例子LevelDesign_workflow:第一步:搭基本的、可玩的场景关卡,虚幻提供了非常强大的BSP编辑功能(Convex功能),可以用来进行关卡原型的制作。这个关卡只要可玩就好,一般由编关策划搭出来,基本都是些Box这样的基本物体,满足关卡的可玩性即可。第二步:替换一些主体模型,主体模型一般应该基于已经固化的玩法关卡来制作,原创 2014-03-25 13:11:37 · 10624 阅读 · 11 评论 -
虚幻4随笔 三 从UE3到UE4
笔者有幸参与过两个UE3项目,完全不同的使用方法,总共用了5、6年。引擎学习最好还是能参与项目,自己看的话往往容易纠结到一些细节上去,而引擎之所以是引擎,重要的恰恰是在容易被人忽视的工作流上。单从细节上看,UE3的代码很多地方并不完美,甚至有些奇怪,但是一旦做到工作流上,就会发现整个UE3工作流的强大之处。先回顾一下UE3系统的一些结构要点,权当做个记录,看看UE4在这些方面有什么不同原创 2014-03-26 13:40:57 · 15774 阅读 · 14 评论 -
虚幻4随笔6 Object和序列化
诚如之前所说,虚幻4主要的一些特性都是由UObject穿针引线在一起的,想把虚幻玩到比较深的程度,UObject是迟早要面对、回避不得的问题,所以,准备在其它主题之前,先把UObject好好弄一下。UObject主要完成了哪些工作呢?私以为: 反射系统 UObject体系构建了整个虚幻反射系统的核心,每个UObject都来自于一个UClass,这个Class可以是Un原创 2014-10-28 23:40:33 · 10845 阅读 · 4 评论 -
碎念:工程和技术
不知道别人会怎么样,在下反正经常容易陷入到技术论中,总会有些洁癖地去想问题。明明一个有可能并不占主要运行时间的函数,却总想用一个更好的方法去优化它,之类的。最近在公司做的一个系统进行到关键阶段了,有时候一些一开始不会去考虑的细节才是工程上最重要的。虽然口头上经常挂着软工那些东西,但到具体的实践过程中的时候,却又并不是那么重视前期的各种分析,或者说,只是把游戏的相关系统关系想明白了,就开始动原创 2013-11-29 21:04:53 · 3845 阅读 · 0 评论 -
AG初步整合完毕
花了几天时间,算是把AG框架整合进来了,坑不算太多,应该整合的问题都不太大。一直以来遇到的最大问题在于:Cry的Animation Set似乎是个只读的概念,这样直观上看,很难做到让一个AG打遍全职业、全技能无敌手。举个例子,无论你游戏里有多少个职业,都一定有站立和跑这两个动作,这个其实在CE里也很好办,如果是不同骨架不同职业的话,一般来说你会直接切换一个CDF,所以没有问题,每个原创 2013-10-20 09:34:45 · 3749 阅读 · 0 评论 -
事关Animation Tree的工作随笔(二)
上回说到,游戏项目中客观会遇到逻辑状态的复杂性和动画状态的单一性之间的矛盾,那么Animation Tree是如何解决这个问题的呢?这又需要引入一个定律:就是逻辑状态无论有多么复杂,但一套逻辑状态组合一定唯一对应一个具体的动画。那么具体来说,UE和CE分别是怎么处理这个问题的呢?原创 2013-09-26 09:57:03 · 2485 阅读 · 4 评论 -
概念、实现和沟通
最近在公司负责技能系统,这块儿想了很长时间了,最先还是在04年荣耀的时候就开始考虑的,因为那时欠考虑太多,被兰大一指头按死。但那之后并没有停止思考,玩了一些游戏,综合考虑了一些情况,结合当前项目的情况形成了现在的方案。从设计上,瑕疵什么必然是有的,不然我可能现在也去开飞车造火箭了。这里不想谈具体的设计问题,而是想说一些衍生出来的问题。一个模块,部署实施的时候必然会有多人共同参与,在原创 2012-04-30 23:25:39 · 1123 阅读 · 0 评论 -
强烈推荐《全景探秘游戏设计艺术》
http://baike.baidu.com/view/3962153.htm这是这个公司的老大强烈推荐给我的,主策同学也强烈推荐,于是就买了一本,一开始没当回事,看了第一章就忍不住要看第二章,看完两遍以后,我的感觉也只剩下了一个“强烈推荐”。确实很不错。对这里面的一个概念特别的赞同,就是程序应该先“做玩具”。玩具做好了,就知道游戏向哪个方向做了,玩具都没出来,说一个东西多好玩原创 2012-04-30 23:52:43 · 5230 阅读 · 4 评论 -
自醒录(一)
现在这个项目可能算是自己第一次真正意义上“带队”吧,感觉确实跟之前一个人冲锋陷阵有很大不同。到上周,项目的第一个程序版本应该已经算是结束了,有几个遗留问题,但是应该无伤大雅。龙骨本身还是优雅的,船体上的漏洞总有补上的一天。由于只是一个程序功能版本,整体看起来还很弱小,而且现在还处于保密期,所以截图什么的就先不放了,策划和美术在接下来的几个星期时间里会把它变得更好。但那跟我们已经没有关系了,原创 2012-09-02 19:58:19 · 1506 阅读 · 0 评论 -
简单的Memory leak跟踪(三) 方案2:Dbghelp
dbghelp这个方案比较复杂,速度也比较慢,不过用在Trace的场合也不算太糟糕。原理是,dbghelp.lib、dbghelp.h提供了一大堆获取当前调用栈信息(ESP、EBP),并通过这些调用栈,配合上相应模块的pdb文件,得出当前的调用模块(dll)、调用函数、调用行和指令。具体的原理就不再废话了,网上dbghelp的使用方面的文档也很多,贴几个参考:HOWTO: Dump C原创 2012-09-13 11:31:52 · 1877 阅读 · 0 评论 -
简单的Memory leak跟踪(一) DEBUG_NEW方案
前言C++编码中Memory Leak是一个很讨厌却又挥之不去的话题,最近由于引入了GC,为了验证GC是否确实正常free了内存,于是先提供了一个内存分配的Tracer。与分配器不同,分配器主要解决的是两个问题:1、性能,池式分配往往能提供比直接Virtual Allocation快得多的效能。据说这一原则在Vista后无效了,因为微软修改了VA的实现机制,只是听说,没有实际测试过。原创 2012-09-13 10:44:58 · 4709 阅读 · 0 评论