工作日志1(2006.8.15--8.31

/*************************************************************************
**
**
**************************************************************************/

1.嵌入式项目无线客户端,使用Qt开发包。
2.MFC,没事写窗口软件玩玩。
3.软件架构。
  游戏程序越写越大,上万行了,必须寻求一种更为有效的处理大量代码的方法----
  设计模式。Design pattern .

  Some patterns:
  1. Facade :
     The resuability of toolkits comes with a problem: the diverse applicability of classes in an OO subsystem may offer an oppressive variety of options. A developer who wants to use the toolkits may not know where to begin. The intent of the Facade pattern is to privide an inte***ce that makes the subsystem easier to use. Or, a facade is a configurable, resuable class with a higher-level inte***ce that makes the subsystem esier to use.
    这个阐释的很精髓了。在我的CRender中,其实一直在用.
  2. Adapter :
   A Facade simplifies an inte***ce while an Adapter converts the inte***ce into a preexisting inte***ce.--这句话把Facade and Adapter对比起来(while),间接阐述Adapter。
  
  3. Bridge:
 
  4. Abstract Factory:

 
2006.8.15:
   It's time to code some games .
   一个卷轴游戏,Magic Girl,Gameres站长sea_bug做过的小游戏,我只是想作为自己恢复2个月前编写游戏程序的能力。最终我失败了,因为轻视和骄傲,软件工程的文档,确实很重要。写游戏程序难,设计面向对象的游戏系统更难。
   popcap公司的一个休闲游戏:吞食鱼2。 用非法工具提取了里面的图片资源,但是没提取完全---每个精灵只有一幅彩色图片,然后是一大堆的alpha 通道图片。几经辗转,最终在一个Flash游戏里间接导出了我需要的图片资源。但是,当我筹划这个工程该怎么进行的时候,我发现,它有点庞大了。----一个精灵的动画图片,帧数就达到40帧,总共600多张图片,用texture保存在内存里,足够占据100M!另一方面,这个游戏还涉及到图象的旋转---因为我发觉它的图片,正如Magic Girl里提取出来的一样,精灵动画帧只有一个方向的,还有图象的缩放。如果单纯地采用图形学里的算法,这当然不可能,工业界不可能去弄这些没效率的东西,DirectX 当然提供这些操作,但是我没时间去复习那些SDK-----资料全是一大堆英文,看着没中文快。
    于是,这个想法又被扼杀!这让我郁闷。
    思考了下国内的游戏业状况,单纯的商业问题我不多谈,我谈国人的学习。在Gameres上搜索,一大堆的DEMO,一大堆的想在图象上取胜的DEMO!---这也难怪我的DemonStar会被网友说成是国内比较完整的小游戏了。不要把游戏看成是演示图象的东西。游戏,应该是集成了软件工程和艺术的东西。国内学习游戏开发的,一开始大多数人都是从图象处理入手。回忆起自己,也是这么回事。后来我懂的了些软件工程的玩意,便开始不屑于各种图象处理的东西。---结果,就是现在我的状况!
    接触了下HGE引擎,这个引擎的代码我以前看过一些。今天晚上7点过开始学习这个引擎。---我没落到用别人的游戏引擎了,学习这种SDK,总感觉在侮辱自己!当然我没意思贬低这个引擎,这个引擎,当然算作业内的顶级Game Engin。它的开源,着实让一大批游戏厂商开心不少。
    然后,这个引擎给的文档,也是英文的。没有example,只有代码,只有函数的SDK。
    稍微看了下使用例子代码,完了,还是有很多需要我去复习的东西。
    自己很早前写了个CD3D的简单Graphic Engin。--这个称号是我后来给的,当初写它,纯碎是提供给自己一个简单的Inte***ce  to code some games 。大体框架,还是参照当时的一本英文书籍里的代码写的。昨天写了分说明文档,交给Dophi用。
    还是觉得游戏软件是所有软件里最难做的东西。软件工程是前提,艺术封装是后期加工。OOP进行中,图象处理忘记中。

2006.8.16:
    这几天嵌入式项目由于我自己的进度比较快,我得以得到更多空余的时间。
    到现在为止,我已经基本掌握了HGE引擎的一部分API。目前可以轻松地实现alpha混合,图象的旋转,图象的缩放等操作。---PNG图片固然神奇,但隐藏了细节实在让人不爽。Remade吞食鱼,不是没有可能。
    20:17
    我想,Feeding Frenzy随时可以开始。HGE的particle system不错,值的学来用用----可以用来骗女孩子。
    21:40
    HGE引擎的粒子系统果然不错,以前费大力气模拟出来的物理现象,现在只需要几步就可以完成,截一幅效果图出来:
    [img]http://ol6.photo.qq.com/?file=43B88AE5D7D14450E3EFC7C0DF6176A906589B226A8ECA0AF77AF86EB915224A[/img] 
2006.8.17:
    这边的嵌入式项目老大突然要让我给PDA端加电源管理功能。我觉得搞笑,这意味着我不但负责了高层的东西,还要掌握低层的玩意。说了一大堆,最后要我去翻Linux的原代码。阅读操作系统的代码,这是头一次。读到进程线程一块,突然发现以前看的操作系统书内容全忘了。遗憾。
    这事到目前为止的发展状况是:我不用去看OS代码了,只需要了解中断编程。
    我自己的游戏项目这边,发展虽然慢,但还算顺利,写文档中....
    17:45
    HGE引擎的封装形式,给了我很大的启发,正如Qt里的封装形式一样让我深受启发。面向对象程序设计,真的是一种设计哲学。
    21:30
    Feeding Frenzy到目前为止的进度:
    基本类图,main-loop流程图,基本问题描述文档,几个类接口,鼠标控制,Z-Buffer贴图,背景渲染,精灵动画(测试了一种精灵)。
    嵌入式项目最近的任务:Linux中断编程,GUI PDA端的无线模块集成.
2006.8.19
    20:46
    Feeding Frenzy目前进度:
    以写头文件的形式来构件整个框架----也许这也是一种“针对接口编程,而不是实现编程”的体现。
    总体而言,进度不够快,我的工作效率没以前高。这次这个,确实是个大家伙,如果我不用别人的引擎,也许会更大,整个系统似乎都有点大了,这让我不知道从哪做起。
    准备写CRender的实现。
2006.8.20
    17:11
    Feeding Frenzy基本DEMO的代码已经完成大半。预计后期调试会很复杂。
    统计了下代码量,吃惊不少,5000行都不到!
    预计出个DEMO,可能需要一周的时间----我只有晚上有时间,白天在做学院里的项目。
2006.8.21
    acm培训开始了,我却没有时间参加,今年注定要在这个比赛上丢尽颜面。
    Feeding Frenzy测试了CSpriteContainer::Collision,进展虽然不快,但是还没耽搁,截张图出来:
 [img]http://olG.photo.qq.com/?file=8F97F023F3B83B0A6E8FFBF7DB40DC62358FAD16650A80DFE8B18F02341EDBAD[/img] 
2006.8.22
    嵌入式那边,触摸屏驱动问题解决了。现在QT做的GUI程序可以用触摸屏来驱动,不过成功的有点糊涂,精确度也不高。不过就这样,就足够那老师高兴的了。
2006.8.23
    Feeding Frenzy的鼠标模拟问题终于初步解决,效果和原作比起来只能说凑合。解决过程非常烦人,后来跟Dophi比赛谁先解决,事情结果是都解决了,只是我快那么一会。
2006.8.24
    Feeding Frenzy 基本的demo终于跑出来了。
2006.8.25
    HGE引擎提供了GUI界面管理,而Feeding Frenzy正需要一个Menu。但是我没有用HGE的GUI类,我觉得这个游戏的GUI不是很难,再加之于之前我就有想研究游戏GUI的想法,所以我决定自己写个CButton类。我用了2个小时来完成这个类,测试效果很不错。
    23:00的时候这个游戏已经可以在Main Menu和Game Play之间完美切换了。
    剩下要做的:完整整个Game System,加入粒子系统---没有水泡的Fish World很单调,加入一个很酷的Credits。
    然后,Dophi差不多就要回家了。
    放张Feeding Frenzy的Main Menu图:[img]http://olW.photo.qq.com/?file=28C48D386403283CE5D6CE71A40B06B24084299CD820E443EF7F74BAEAD88447[/img]
2006.8.26
     终于,值得高兴的一刻到来了。
     Feeding Frenzy 整个系统初步建立完成,初步测试完成。可以说,就demo而言,我已经完成它了。
     但是我还要加些酷点的效果,例如水泡粒子系统,怪物鱼的AI,以及,能够表现Kevin Lynx 的酷酷的Credits. 
2006.8.27
     17:00
     这个时候,Feeding Frenzy已经基本完成。我为此感到自豪。
     晚上便要开始加入Credits信息,那会很酷,那足以表现我和Dophi,以及紫月城!
2006.8.28
     2:31
     凌晨2点过,我写代码,Dophi在一旁参与讨论,我们用了6个小时做了这个Credits !这值得我自豪。
     这个Credits动画所表现的世界与这个游戏表现的世界可以说是很不一样的--中间的过度其实并不平滑。在开始构思这个Credits Idea时,我很想把<Doom 3>的Credit背景音乐加进来。但是后来的讨论改变了我的看法--这缘于异曲同工之妙的<Doom 2>过关音乐:先是很欢快的,一个详和的世界,然后音乐慢慢变化,鼓点起来,画面切换,一个Hell出现。而<Doom 3>的音乐则是:开始一直很低调,然后慢满地,响起金属声音!
     而我们这个Credit也要表达这种意思:画面淡出,阳光明媚,背景音乐用的是<Doom 2>里那首,然后画面卷动,慢慢地,整个世界通红起来,音乐也开始急促;当鼓点起来之时,具体的文字信息显示出来---这个时候,"Programming:Kevin Lynx"的字样刚好位于屏幕中央---在程序技术上,我为整个渲染加入时间的概念,然后我在《千千静听》里观察音乐的播放进度,最后把时间记录下来,用在游戏里作为判断。
     当所有信息显示完毕后,真个世界也沉浸在血红之中---我想这种风格与整个游戏的风格大为不同,事实上这个游戏只能称做DEMO,我用了7天时间,而这7天时间白天我基本都在做另一个项目。也许,我有时间的话会把它做完整,但是,那会是更酷的东西。
     我为这个游戏的完成自豪,为我和Dophi共同完成的这个Credits Animate而自豪----尽管Dophi作为程序员一句代码也没贡献过!哈哈~~
     另外,这次这个东西达到了8M之大,而我以前做的,最多2M。这也值得自豪!为了简洁,我把所有资源都打包了。
     截几张Credit的图:
    阳光明媚的海,却飘动着红色的水泡:
    [img]http://olH.photo.qq.com/?file=B8FA4F9C846A8BCB85089EBFD6279884338B41DEDC1752A6794D3ADAD811B4EC[/img]
    渐渐变红的海洋:
    [img]http://ol8.photo.qq.com/?file=6CB08F83B2F54110B2F12C0010B759C58D68CDA5A7EDA84A98676DCF94CA8280[/img]
     所有信息都显示完毕,整个世界完全沉浸在血红中:
    [img]http://olT.photo.qq.com/?file=493AAA7DF966B29F20D14926F172A719C3265D3AE60DF42A28EC673D17315A83[/img]
     预计会再测试一段时间,然后会先放到Gameres上,原代码将以邮件的形式发给向我索要的人,然后会发布到HGE网站上--国外网站,然后是发布到GameDev上。
     13:50
     上午又在弄那个嵌入式项目,中午回来,一个小时修正了 Credits 读取包资源失败的错误。现在这个游戏应该说完全完成了。预计测试一段时间后再发布。 

2006.8.31:
      游戏在Gameres上发布了:
[url]http://bbs.gameres.com/showthread.asp?page=end&threadid=62796[/url]   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值