Grandpa SDK 0.7发布

February 25th, 2010 zero No comments

下载Grandpa SDK 0.7

Grandpa主页

主要修改:

  • Max插件能自动保存最后一次成功导出的设置
  • 添加IVertexStream接口,顶点数据分为静态和动态两个stream
  • 完善IEventHandler接口,支持任意用户自定义动画事件
  • 添加IProperty接口,用户可以在模型,部件和材质文件中添加自定义属性
  • 添加ISkin接口,支持GPU蒙皮

详情请见更新历史

Categories: 程序/算法 Tags: ,

RTS游戏的行军算法

February 10th, 2010 zero No comments

这篇是03年写的,那时候还没有进入游戏圈,现在回想起来游戏里很多问题的处理比之前想象的要简单。

一提起游戏中的寻路,很多人就会想起A*算法. 的确,A*无疑是当前用的最多的寻路算法,在比较简单的地图上它的速度非常快,能很快找到最短路径(确切说是时间代价最小路径),而且使用A*算法可以很方便地控制搜索规模以防止程序阻塞.

关于A*算法的文章已经很多了,上google随便一搜就能找到好多,但是国内网友原创的似乎不是很多,建议英文不太差的爱好者上国外的网站查找相关资料,比如这个Amit’s Game Programming Information.

A*算法本身表述起来很简单,程序写起来也不难,两三百行轻松搞定.关键是要在代码优化上下功夫,这就很考验程序员的算法功底了.基本的思路一般都是以空间(也就是内存的占用)换取时间(搜索速度),另外还有一些地图预处理(包括人工的预处理和用程序预处理)的技术比如多级地图精度或者地图分区域搜索等等,但我今天要讨论的不是A*算法本身,关于这方面有兴趣的网友可以另外和我交流.

不管怎么优化,寻路总是一项非常费时的工作,并且工作量和地图的大小基本成线性关系(不限制搜索规模的前提下).现在的rts往往允许每方生产200个以上的移动单位,同时可能会有大量的移动物体需要寻路.如果同时选定100个单位点并向他们下达远程行军命令,假设每次寻路需要5ms(在复杂地图上,这个数值一点都不夸张,我是说在我的机器上),那么就需要0.5秒的时间在寻路上,也就是说整个游戏将因此停顿0.5秒.你受的了么?

Categories: 程序/算法 Tags:

Grandpa SDK 0.6发布

January 17th, 2010 zero 1 comment

下载Grandpa SDK 0.6

Grandpa主页

据说贴一张图能显著提高点击率 :)

主要修改:

  • 支持资源异步加载
  • 用户可定制资源管理
  • 支持动画分段播放
  • 大幅提高资源加载速度
Categories: 程序/算法 Tags: ,

opengl备忘

January 15th, 2010 zero 1 comment

以前用d3d比较多,最近的一个项目采用我不熟悉的opengl做渲染api,碰到一些问题,这里记一下

  • opengl采用列向量,所以相对于行向量的系统来说矩阵看起来是转置的
  • 相应地,opengl矩阵是右乘的,也就是说右边的矩阵变换比左边的优先
    • 依次调用glTranslate或glRotate等函数时,记住后调用的变换是先进性的
  • opengl默认采用右手系,z轴朝向屏幕外
  • glOrtho的near和far参数是其真实含义的负值!
    • 也就是说例如你给的near=-100, far=200,那么实际上你能在视口看到的z值范围是(-200,100)
    • 这个问题很隐蔽,花了我们很多时间才搞明白
Categories: 程序/算法 Tags:

新年快乐

January 1st, 2010 zero 1 comment

刚才习惯性地上水木瞅了一眼,看见十大里有一个标题是“大家跨年做了什么”,才意识到已经是2010年了。

可以很骄傲的说,我是在写代码中度过的,好像去年也是……

祝福订阅这个blog的读者,偶尔来看看的读者,以及google到spam回帖中可疑关键词不小心点过来的过客

Categories: 未分类 Tags:

Grandpa SDK 0.51发布

December 12th, 2009 zero No comments

下载Grandpa SDK 0.51

Grandpa主页

What’s new:

  1. 提供max8和max9两个导出插件(原来只支持max9)
  2. 修正了模型包围盒没有更新的bug
  3. IModel::playAnimation现在返回IAnimation*(原来返回void)
Categories: 程序/算法 Tags: ,

Stack2另类过关集锦

December 5th, 2009 zero No comments

上次推荐过一个flash游戏Stack2。这个游戏的过关条件是,用关卡提供的所有积木摆成任意造型,只要保持若干秒不坍塌即可。

玩的过程中你会感觉到每关都有一种游戏设计者“推荐”的摆法,往往从关卡名称中可以得到提示。但是好游戏的一个重要标志就是你可以充分挖掘想象力,用另类的方式来过关。

以下是一些另类摆放方式的截图。如果你碰巧也玩了这个游戏,可以交流一下:)

Read more…

Categories: 游戏 Tags:

AI game player

November 21st, 2009 zero 2 comments

刚刚从水木上得知一个星际争霸AI挑战赛的消息,久违的竞争欲望又开始弥漫……实际上我早就觉得应该有人举办这样的比赛了。想起两年前在老blog上发过的一篇文章,现在转过来:

本文说的不是“游戏里的AI”,而是“用AI来玩游戏”

曾经有一段时间对人工智能,尤其是博弈类的人工智能非常痴迷,大概是“深蓝II”打败卡斯帕罗夫的时候吧,写了一个五子棋程序,棋力很差,因为当时思路有问题,只用了一层搜索,大部分的时间都耗费在局面估价函数上了。结果是唬一唬五子棋初学者还行,下过我自己基本没戏,更不用说打败全人类了J。其实五子棋是状态空间很小的一个博弈游戏,很容易搜索到相当的深度,甚至某些开局已经被证明是必胜或必败而在正式比赛中被禁用,这也是阻碍它成为一个大的竞技项目的原因吧,相信现在最好的五子棋程序应该能轻松击败人类了。

Read more…

Categories: 程序/算法 Tags: