月记200712
2007年12月日志
20071201
嘛,近来越来越是进入PC网络游戏这边了啊
之前的手游程序,游戏策划,动漫绘画,小说,3D美术的东西在博客里已经大多绝迹了,圈子越来越小,人也越来越专业了,会是正确的吧。
在学习新知识的时候,总舍不得之前的东西。硬盘里几个G的美术资源,几个G的策划资料,几个G的手游代码和书籍依旧舍不得删除,占的满满的。
啊,当时也是那么热血的把这些东西下载下来,看啊看的,终究还是放弃掉了。回头看看,总有许多不舍
游戏策划的东西也写过一组8篇,托66RPG的福现在还保留着,而 3D游戏编程入门也写过一组,21篇全都不见了T T虽然很基础,却也花费了不少的时间呢…
苍天啊,给某志一天48小时吧,这无疑是最大的恩惠了
另外统计下最近几天的任务执行情况:
时间上基本达成了,日语视频教材已拿到手,程序书下周一到手,进度也没有大的问题,整体来说还可以,仍需要加强,另外计划的时间根据实际情况进行了轻度调整,但总时间并没有减少。之后程序QQ群交由管理员负责,我就减少上网时间了。啊,公司的工作也好紧,不过年前就紧张点好了,我忍了。过年时候好好玩一星期,呵呵。
20071205
最近有点不爽。原因大致有以下几个吧:
1:FK_2D引擎重构受阻。算过来,也有5个月没有弄自己的引擎了,前天重新回顾一下自己的代码,却发现有点找不到之前的思路了,果然没有明细的文档是不行啊。另外,之前的代码没有特别明确的定位,原设计是为 单机 2D AVG + SLG 形式的游戏设计的引擎,却牵扯到了许多不必要的模块,什么连NetWork都写了- -,另外现在看来,当时的代码一部分结构还是很有问题,扩展性结构性都比较差,看来这五个月还是有一定进步的。不过,之后可能要花更多时间在这上了吧,啊,时间。
2:今天和服务器主程聊了下,似乎他对我上班时间弄Irr有些不满。啊,郁闷。我最怕就是这个了,当你能按时按量把工作完成之后,还不允许弄弄自己的东西么?我技术熟练了对工作难道不是个好事- -,非要弄完代码后发呆?聊天?或是象小孩子一小时不翻一页那样假惺惺的看课本?这点我会继续观望,若公司大部分都支持这样做法,那我真要考虑其他出路了,我可不想浪费时间又浪费心情。嘛,话说回来,公司的引擎实在是。。无话可说。某志看起来相当郁闷,思路头绪完全不符,若是很优秀的引擎,某志又何必来啃没中文文档的Irr呢?以后进公司前一定要问清楚是什么样的引擎,不然真是..郁闷之极。
就这两件事,也够烦了,嘛,最近好久没看动漫了,下的那些连载动画都集了几个G,XX的,还要花时间去开会,我真是吃多的
20071209
前天晚上某志被喜欢的MM忽悠了。在我给予了足够的信任,足够的关怀理解,投入足够的感情之后告诉俺,她还是喜欢以前的男朋友,说完就消失了。很好,很强大。
昨天下午和公司推广部的兄弟们出去举办一个活动,下午两点到晚上九点这七个小时内,某志真切的了解了什么叫泡妞高手,根据回忆描述下看看:
昨天晚上七点推广部要去一个网吧举办梦幻玩家冲级大赛活动,其中A君跟某志关系比较不错,上午看到我似乎心情不好,于是叫我一起去参加他们的活动,并声称会有大量美女参与,总之没有学习劲头,便一同去了。
两点准时到达该网吧,但是网吧里基本都是玩传奇和CS的30多岁热血大汉,和梦幻西游基本扯不上什么边,A君和推广部弟兄商量,这样的话活动一定办砸,于是决定去拉些人气。
大约3点钟到了另外一个网吧,里面坐无虚席,女孩子不少,然而大部分在视频聊天和看电影,看来也没什么很好的梦幻西游群众基础,某志正在想该怎么办呢,听到一声“B,那俩MM是你的了,C,你去那边把刚走过的那个MM搞定,我负责这边的..”A君一声令下,推广部几个家伙就分头出去了。一切就这么迅速简单有默契,强悍之极!佩服到家!
因为某志不好意思也没那脸皮实力和MM搭讪,于是坐在原地看着电脑发发呆,抽空看看B君的进展速度,那是相当牛X的技术- -!开始俩MM在看一个什么电影,B就站在后面一起看,人家回头看了看他,见不认识,没说话继续看片子。过了一小会,见B君就和俩MM谈论电影的情节,谈笑风声,再过一小会,A君,B君都回来了,“OK了,那俩MM的QQ号手机号要到了,晚上她们能去参加活动。”“我那边也搞定了一个,这样算来3个了,加上C的两个,这就五个人了,咱还要去另一个网吧看看,另外,给自己的熟人打打电话,再叫点美女来..”
当时某志还真的很纳闷,做梦幻的推广活动,居然打电话叫自己熟人来参加,这还能达到推广的效果吗?一会,某志就明白了,所谓的“熟人”,全都是女孩子,而且很强悍的是,当某志一问起来,这些MM是怎么认识的,什么关系的时候,这几个家伙异口同声笑着说“表妹”。。。无语了。
之后不说了,依旧是去其他网吧进行一些活动宣传以及泡MM。不过,A君那句话我还是记得很深刻的“我们是为了工作泡MM”。
无论他们是真的是为了工作泡MM,还是玩笑话。总之托他们的福,活动办的不错,比想象中的强多了,网吧老板也相当高兴。活动细节不说了,总之一句话,他们几个负责MM的问题和新手指导,我负责男的。
最后活动完结了去吃饭还发生个有意思的事情,A君B君因为争论一个MM到底是谁拉到的而吵了起来,最后协调结果是,谁能三分钟内把另一个MM的电话要到就算谁赢。A出去了,三分钟后回来,电话到手。
现在说说某志我的感受:
虽然我现在说不想在女孩身上花太多时间,还是想静心学学习,所以努力不想计较男女感情的东西,但是我真的很不爽了。没错,我心里不平衡了。辛辛苦苦的付出,努力去理解感受对方,真心的去喜欢她,一心一意,结果—–被忽悠。那些哥们抱着一个玩玩的心态,MM却一大把。我想,是个正常男人心里就不会能平衡的起来。
我在找自己的错误,论相貌,身高,薪资,以后发展前途,人品素质,我真的不觉得我比B君C君哪点差,(A君确实比较帅,这点比不了),缺乏的是主动,勇气,放下面子,甜言蜜语。不然我还能说出些什么呢?
啊。世界上需要这样的人存在的,女孩们喜欢这样的人。
世界在改变,我却封建的很,希望一生只有一个女孩。结婚并负起责任。愚蠢啊,我真他吗的愚蠢。既然世界已经改变到这种不需要我这种呆子的时候,那我只有改变了,不对吗?
不要以为我真的学不会甜言蜜语说好听的话,不要以为我真的不会穿着时尚故做高雅,愚蠢的女人们,告诉你们,这些不会比我所学的程序难的。嘛,你们需要短暂的快乐刺激,你们不需要呆板的老实蛋,那么OK,满足你们。学好不容易,学坏学花心我觉得还不会太难。
哈,我想说到这里,一定会有看到这日志的女孩要反驳了吧,说我偏激,说我过分。然而很遗憾,我上文所提到的女孩没有一个是看起来就风华雪月的那种,一个个看起来都文静淑雅,那么我该如何去相信女人?如何去判定女人?
接下来,也让我虚伪放纵一下,也来满足一下欺骗别人感情的快乐吧。不弄碎几个女孩的心,我是不会舒服的。我他吗的不是圣人,我没有足够的气量去长期忍受以德报怨。总努力去相信世界是美好滴,女孩们是纯洁滴无辜滴,结果就是自己被她忽悠,接着看她被别的家伙忽悠,非要等到知道被骗了才明白回头,但,很遗憾,我这里不是收容所避难所,我没有理由为你们犯下的错误而负责,世界上男人那么多,好的坏的都有,为什么只喜欢甜言蜜语的?为什么只喜欢瞎侃瞎掰的?为什么只喜欢有钱花心的?目光短浅,爱慕虚荣的女人啊,谢谢你们教我长大。我也知道该怎么做了。
投入感情必定是输的一败涂地,那么我不投入感情就好了,陪你们玩玩,互相开心好了。不需要真实,那么我就隐藏真实好了,几年的孤寂等待也忍了,难道不投入感情泡MM就真做不到么,不要小看我哦。嘛,一个时尚,幽默,懂得浪漫享受的花花公子就诞生了~来,大家一起鼓掌~(哗。。哗。。哗)
哈哈哈哈哈,很好不是吗?很强大不是吗?但一切都是被逼的!
之后,除程序时间之外,全时间泡MM玩女人。以此感谢各位教我长大的女性。m(_ _)m
20071210
被點到名字的要在自己 的博客裏寫下自己的答案,然後去掉5個問題,再加上5問題,仍然組成5個問題傳給其他10個人。列出10個需要回答問題的人的名字,還要到這10個人 的博客裏留言通知對方——你被點名了。被點名者不得拒絕回答問題。完成遊戲的人將會永遠得到大家的祝福。 2.這10個人要在自己的博客裏注明是從哪里接到題的,並且再想一個題目傳給其他10個人,讓遊戲繼續傳下去。不得回傳。被點到名字的人將得到大家的祝福,並且所有的美麗願望都會在不久的以後實現 3.記得不要回傳給我了,不許犯規啊。 被点名网址:(http://hi.baidu.com/%BA%A3%D7%CF7)
我的问题
1.喜欢动漫吗?
喜欢。
2.最喜欢的一部动漫?
罗德斯岛战记。
3最喜欢看什么动漫?
热血的,现实的,悲剧的。
4你喜欢什么季节?
冬天。
5你会喜欢什么动物?
狼。
不过,常来某志这博客的朋友还不足10位,又不喜欢强推自己意见给他人,所以我这里就不再点名了,有兴趣的朋友自己回答,娱乐一下吧。
20071211
最近几天没有整理Irr的东西,因为我在给自己的FK_2D引擎增加一些东西,关于音频播放,某志还是决定选择简单的DirectSound/Music库,OpenAL是坚决抵制了,FMOD还是在FK_3D库里去用吧,反正也没什么难度。
在写AudioManager的时候出现了不少问题,因为引擎原本是使用STL的数据结构,某志现在想避免使用第三方库,所以自己写了些数据结构,结果就出现问题,DEBUG了一个晚上,居然发现错误是在一个单词拼写错误,prev写成了prec - -手滑了一下,满天报错,郁闷死了。另外AudioObj的管理,某志用了个很巧妙的方法进行了管理,实在自觉的都很有创意,应该会是对引擎的一点点优化吧。
因为和之前设计思路不同,FK_2D引擎灾难重重,和重新编写没有什么区别了,时间实在紧张。关于女人的那些事情,就让她们随风去吧。总之,能不理就不理好了。
啊,为什么要有女人?为什么男人一定要有女人?哪个真主上帝的白痴设定!
嘛,不牢骚了,继续忙。
20071212
以后一有时间就看公司引擎代码,直到看烂熟烂,即使发呆发傻也不得看其他引擎代码。 多开会,勤开会,严肃认真开会,该发言时少发言,少说话不会减工资,多说话就未必了。 BOSS命令意见绝对服从。 严格按照时间表完成任务,绝不提前或拖后。 事不关己,少管别处理,说不定最后的问题就出于我自己。 任何美术资源,不要总把别人当白痴似的提示,人家也需要自由和自尊的,只要最后东西能用就行,不能用的话,也不用客气,驳回,等待资源,申请制作时间。 不与任何人冲突,我们是团结的大家庭,和谐比工作重要。 认真遵守,严格执行。
20071213
在蓝猫三千问问了几年的中国动漫奖之后,本土终于还是出了点东西,具体的不说了,《秦时明月》,自己去看吧。
http://www.youku.com/playlist_show/id_694045.html
20071221
最近有些累。因为我有点不知道该如何去做。中国社会需要的人和我所追求的理想是非常不同的,颇有些天下虽大,却无我容身之地的味道。
国家希望老百姓愚钝,只需要懂得安心劳动就可以了,国家就会发展,这,没有错误。于是紧扼新闻要喉,我却又看的不爽。公司希望同事团结工作,创造利润就可以了,这,依旧没有错误。而我却难以被融合进去,总认为私下不学些东西是很危险的事情。
于是,矛盾就产生了。而聪明的人懂得如何去适应这一切,就象优胜劣汰的生存法则一样,我在社交这方面落后,被淘汰了。但是,就象非洲兔子一样,有的是变化了皮肤毛色以适应环境,有些是跑的更快来适应环境,我决定走另一条路,那就是专攻技术,要强!要强大!强悍的人生不需要解释。
当然,我选择了实力这条路,而现如今实力又不足,于是造成了现在的囧境,不爽,却又无奈。
所以,现在的我,应当一切都低调忍耐,金麟本非池中物,总有一日要遇风云化龙的。一切只等那一天。
呼,自我鼓励心态调整完毕。接下来看下最近自习情况,虽然基本完全没有按计划走,但是进度上没有什么拖延的,Irrchlit引擎依旧在按计划分析中,另外自己FK引擎也在修补,还是在慢慢进步的,公司的代码也比原来熟悉了一些,起码不会总郁闷的想吵架了。嘛,就这样一步一步走下去吧。牛人? - -有朝一日我也要做牛人。
另外,看来看去,还是觉得OTAKU适合我的定位,为什么不OTAKU呢?对一件事物的忠诚,哪儿有错了,非要没事就出门象个蝴蝶一样漫天飞才是正确?我完全不觉得OTAKU是个贬义词。游戏程序,日语,动漫,有理由让我对其热爱和忠诚。
最后一句,关于女朋友方面,还是忘记吧- -女生太不好对付了。m(_ _)m 我服。
20071227
整理一下某志近來編寫引擎的一些問題和技巧,為避免以后走彎路而記錄。
1:首先,應先設計好引擎的定位。到底是個什么樣的引擎,甚至于,準備針對什么樣的游戲?
在北京的時候就犯過這樣的錯誤,原本為AVG游戲準備的引擎,卻設計了自由攝像機類,導致來深圳后連自己的設計意圖都無法理解,于是,只得完全放棄之前的設計,僅采用了其中的一些基礎設計。結果這個錯誤在這個引擎設計時再次重新犯了,開始的時候設計FKPos2類時依舊加了深度概念,不僅浪費了時間,還影響了效率,最后終于還是舍棄掉了。
2:設計好引擎的結構模塊,這點還包括設計引擎代碼的安放結構。
到底引擎支持2D還是3D?是否有網絡層?這些第一步的需求直接影響了第二部的設計。在明確了需求之后,我們開始分大模塊設計,如:音頻模塊,GUI模塊,消息處理模塊,App主進程模塊,網絡消息通訊模塊,AI模塊,2D/3D圖形渲染底層模塊,場景管理模塊,對象系統管理模塊,物理模擬模塊,腳本處理模塊等。
對引擎代碼的安防結構處理則包括,每個模塊是分lib處理的么?那么每個模塊是否應當放置于一個文件夾下?或是按頭文件,內聯文件,源文件來放置?配置文件,BIN文件,項目工程文件,資源文件,例子文件,說明文檔文件是否分目錄存放?這些文件夾的設置也是需要先計劃好的。
3:根據模塊提出相關庫需求。
我們的引擎是否希望跨平臺?音頻播放是否需要使用FMOD或OpenAl?支持的圖片格式是否有jpeg,png或者其他?是否支持高級AI,碰撞模擬?是否支持某些腳本?將我們所需要的第三方庫整理好,熟練他們的用法,建議做雞個簡單的小Demo以測試第三方庫的完整性和功能。
4:熟悉第三方庫。
想了一想,這步驟還是需要單立一項進行說明的。因為個人引擎所使用的第三方庫比較多。實際上,若引用第三方庫比較多的話,會一定程度上影響引擎的效率,特別是,當我們不能完全的理解和使用第三方庫的功能時,盡可能避免使用過多的第三方庫。例如,我們游戲中音頻幾乎沒有必要使用ogg格式,那么我們就沒有必要對其進行解析,特別是當這個解析庫有效率損耗時。在確定了第三方庫后,請閱讀相關文檔并做一些Demo來熟悉該庫的使用,并注意庫的使用權限。實際上完全Free的并不多。
5:設計每個模塊間的交互,降低耦合度
這里建議畫一張圖,會比文字更直觀易閱讀。實際上,引擎中很多高層的模塊也是有很高的耦合性的,即使我們努力的去降低其耦合度,很多時候也是不可避免的,所以前期應當設置好。例如,音頻會在GUI,特效模塊出現,若因需求需要的話,甚至可能出現在場景管理,對象系統中出現,當然這不是我們所期望看到的。
6:根據整體需求對高層模塊進行詳細的設計,記錄模塊需求。
例如,我們設計音頻管理系統,由一個AudioManager對所有的AudioObj進行管理,我們的需求是每個場景有一定的AudioObj,每個動態怪物對象有固定的一種AudioObj,每個技能對應一種AudioObj,那么我們AudioManager中將保存有幾個AudioList的指針,通過這些AudioList對每個AudioObj進行管理。此時,我們的需求就出來了,首先,我們需要一個AudioObj,它應該有播放,暫停,關閉等功能,AudioObj應該有查找,刪除,增加AudioObj的功能,AudioManager本身則應當由音量調節,音頻設備管理,濾波,3D音效開關,設置播放位接受位這些功能。我們的代碼基本清楚了。
7:根據高層需求編寫底層。
這里我想很多人會反對,認為沒有底層就先設計高層是不對的,而我從自己的開發流程看來,高層決定底層實在更適合不過了。繼續上例,AudioObj是一個對象,那么我們底層就可以設計一個Iobj讓所有的對象進行繼承,他們可以都集成IUnkown來進行引用計數的自動調節。這將是個很舒服的管理。因為上層需要AudioList,那么我們才需要一個List給其繼承,可能我們并不需要一個Array或者BinTree,而低層決定高層時候你常常會發現你做了很多多余的東西,而有些高層的需要是你沒有想象到的,這時候你又需要返回去修改底層,此時可能又影響了其他模塊的運作,結果將是- -相當的囧。
8:進一步細化高層模塊,加以高層技術
到這里你的引擎體系應該有完整的模型在頭腦中了,該進行具體的細化編碼了。我們看一下3D渲染部分吧,細化之后可能包括渲染器,渲染狀態組鏈表,渲染腳本的設定讀取,其中的技巧又包括BSP揀選,ViewPort揀選,多重紋理,凹凸映射等,這樣需要比較多的專業知識在其中了。其他模塊則包括骨骼混合,反向動力,地形LOD,八叉樹分割等技巧,根據需求,該加入的就加入吧。
9:編寫一些周邊工具,文檔,例子等。
經過一系列的Debug,你的引擎應該OK了,大功告成?開源發布?NO,我們還需要針對它設計一些周邊,包括相關的工具,文檔,例子等,使別人更容易的理解和使用你的引擎。如果想偷懶的話,工具可以不做了。不過,我還是更喜歡自己定義的格式啊,所以格式轉換工具,文字生成工具,音頻處理工具,地圖編輯器,模型查看器這些東西一個都少不了。
那么就寫到這里了,寫一個引擎其目的不僅僅是商業使用,對游戲程序員來說,也是提高自身能力的一個重要方式。如同John Carmack所说,底层编程对程序员的灵魂有好处
注:以上說明均沒有考慮編輯器本身以及編譯環境,Debug工具的選擇和設定。假想這一切都已沒有問題。