小游戏开发
zierben
n年工作,一直没有变的是对软件灵魂的挚爱,对于工作的一份冲劲。
展开
-
写了一个C#的俄罗斯方块的游戏,包含人工智能部分,源码可下载
用C#写了个俄罗斯方块的游戏,操作还可以,个人认为比较方便,其中包含几种不同的模式,下降的时候可以选择快速下降到底和加快下落模式游戏的过程可以选择都可以穿越的模式包含人工智能部分,可以与电脑玩,如果把两个控制器全部设置成iscomputer,也可以看他们互相pk智能算法中并没有太做处理,准备这两天集中处理一下,让他更厉害!代码现在还有很多问题,分层分得有问题,但是开发周期太短,并没有修改,正在处理中由于没有网络空间,我就放在qq的空间里,但是不知道是否一直可以用,好在7天内版本肯定升级了http://1.d原创 2010-07-19 16:18:00 · 3484 阅读 · 1 评论 -
通过俄罗斯方块浅谈游戏中的AI(六)A*算法
开场:A*这个经典的最短路径搜索算法--很多人都用过它快速计算迷宫出路,也有人用来进行2d游戏的路径搜索。总之在搜索路径时大都第首先想到它。备注:我之前对A*算法的执行顺序上有认识上的误区,我是广度优先查找的,实际A*是类似深度优先方式查找的,在一定程度上,降低了遍历的次数,现在对本文进行进一步纠正.简述A*最短路径算法的方法:目标:从当前位置A到目标位置B找到一条最短的行走路径。方法:结构_路径点(MapPoint){当前位置坐标,到达当前位置的最小距离数 ,到达目标的理论最小距离数 ,理论到达最小值 =原创 2010-11-25 15:41:00 · 2661 阅读 · 0 评论 -
通过俄罗斯方块浅谈小游戏制作(序)
<br />“通过俄罗斯方块浅谈游戏中的AI”系列 从开始写,到现在也有一段时间了。随着一篇一篇文章的完成,俄罗斯方块小游戏的智能一点点提高,走到今天,它的表现已经很令我满意了,至少不枉做一次开篇作。<br />然而俄罗斯小游戏的开发却还欠缺很多内容,依然不能称之为一个完整的产品。<br />我认为一个游戏应该有一些常见的元素才可谓完整:保存功能、成绩记录、一定情节、一定的延续性。<br />为了不让这些欠缺一直延续,我准备再写一个新的系列,作为我完成其它部分功能的一个见证,也作为我不务正业的一份铁证。<原创 2010-08-12 20:52:00 · 1011 阅读 · 1 评论 -
通过俄罗斯方块浅谈游戏中的AI(八)发现
通过俄罗斯方块浅谈游戏中的AI(七)提升 一节并不是很好实施,在我还没有得到更好的可执行方案的情况下,我对于当前的评价体系部分有了新的发现。 话说最早的时候代码中有个bug,在判断连续两个方块下落的分数时,我使用总score=方块1引起的局势得到的score + 方块12联合引起的局势得到的score;很显然这是有问题的,12联合引起的局势是最终局势,仅方块1引起的局势无论如何都不影响总score。所以我改了这个bug =》总score= 方块12联合引起的局势得到的score;好像这样就解决了似的,但是这原创 2010-08-10 20:35:00 · 1978 阅读 · 5 评论 -
通过俄罗斯方块浅谈游戏中的AI(七)提升
开场随着前面我相对还比较会的技术渐渐用光,我一段时间非常满足,紧接着一段时间非常无力。本来我每天喜欢看几次电脑中间PK,看看电脑如何使用我不会用的招数,感觉到很满足;我再给同学玩,同时自己也挑战几把电脑,发现确实很难赢它,我又很满足;后来同学及自己均发现了一些评价上的不足,挑整后,感觉明显屏蔽了原来的问题了,又感觉很满足;电脑曾经玩出了11w多的高分,突破了速度9一万分,我满足的不得了......一切都好像很美好,总认为仅需要在评价这里挑战一下参数,整个水平就会提高不少......可是一切的美好在昨天凝滞了原创 2010-08-10 07:02:00 · 2094 阅读 · 2 评论 -
通过俄罗斯方块浅谈游戏中的AI(六)变化的A*算法
开场:A*这个经典的最短路径搜索算法--很多人都用过它快速计算迷宫出路,也有人用来进行2d游戏的路径搜索。总之在搜索路径时大都第首先想到它。------------------------------------------简述A*最短路径算法的方法:目标:从当前位置A到目标位置B找到一条最短的行走路径。方法:从A点开始,遍历所有的可走路径,记录到一个结构中,记录内容为(位置点,最小步数) 当任何第二次走到一个点的时候,判断最小步骤是否小于记录的内容,如果是,则更新掉原最小步数,一直到所有的原创 2010-08-05 22:01:00 · 8065 阅读 · 1 评论 -
通过俄罗斯方块浅谈游戏中的AI(五)疯狂提速之位运算
[写在最前]位运算曾经从C语言学习阶段,老师就一再强调:通过位运算可以提高CPU计算的速度。但是大多数学生依然不敢去使用这个看似很高级的技术,我就是其中一个。知道写好这个程序,才算我大规模使用位运算的第一个程序。 [位运算之我见]--高手赶紧跳过这节位运算之所以计算快,我的理解是它不需要进行值拷贝,可以完全在某个寄存器中一次把结果算完。比如 int i = 0x0345;i = i * 16; 和 i = i 第一种(0x0345 * 16)假设 '0x0345 ' 首先存储在 c寄存器 存储0x00000原创 2010-08-05 07:27:00 · 3406 阅读 · 0 评论 -
通过俄罗斯方块浅谈游戏中的AI(四)路点
前述:谈到“路点”大家想到的应该是cs中的bot waypoint,有waypoint的map可以使用bot,没有waypoint的map就不行。于是大家都去下载每个地图的“路点(WayPoint)”其实这两个游戏的路点虽然从规模上有较大差距,但从思想上还真差不多。我认为cs的路点实现:1、cs的路点并不会存储让bot如何瞄准,而只会记录当前位置和下一个可选位置的关系,以及按照什么路线走过去。好的路点文件可以让bot走的路线很不容易被人看到,一般的路点就会沿着大道中间走;2、bot在某个点上做某些动作的真正原创 2010-07-31 10:19:00 · 2948 阅读 · 0 评论 -
通过俄罗斯方块浅谈游戏中的AI(三)AI实现代码框架
长驱直入,本节介绍这个非常容易,但是也算是五脏俱全的小AI的组成框架,并会加入重要的实现代码本AI部分的程序体共包含了4个部分 评价参数定义部分:定义相关评价参数的数值,参数数值定义的越合乎逻辑,AI技术的效果越好评价函数实现部分:实现各种维度的评价,此处注意要使用定义参数的值,不能使用内部值,否则不易于以后微调。AI调用之前的处理部分:判断是否需要进入AI,以及AI前的一些处理变量的清理工作。AI实现部分:形成一个递归算法(本例可以不用递归,因为最多就两层)更好的AI程序框架 标准评价函数部分:定义几种标原创 2010-07-30 20:19:00 · 6088 阅读 · 2 评论 -
通过俄罗斯方块浅谈游戏中的AI(一)我眼中的小游戏AI
主题之前:我对于AI的认识不像很多科班出身的专家,各种理论一大套,我是本科毕业就离开了科班,很多知识还没有补充完备就离开了学校.而且很遗憾,我也不是个成功的学生,离开的时候甚至我没有带出我必须带出来的学位证.....残念.戴思达......我喜欢AI是因为它让人感觉神秘,好像真的有智能;我学习AI也是稍微看了点书,关键是练习;真正的练习我想才刚刚开始.进入主题:我眼中的小游戏AI 小游戏的AI和大型游戏的AI可能是相似的,理论基础上也是一致的,可惜我只能从更通俗的角度去说明它.我认为小游戏的AI分为3类:原创 2010-07-27 22:20:00 · 5569 阅读 · 0 评论 -
通过俄罗斯方块浅谈游戏中的AI(二)AI策略
本节具体谈我写俄罗斯方块AI的时候使用的策略,注重策略讲解,下一章节开始注重实现。上一节已经说过了,俄罗斯方块游戏的AI由于无法深层次递归,必须重单步策略,我列了一下几个考虑点进行问题展开 洞的维度:(越少越好)实洞:无论如何都无法通过任何移动消除的洞虚洞:可以通过左右移动消除,但是如果纯下落无法消除的洞高低关系的维度:是否有平台:连续2个以上一样高的为平台,越多越好;是否有1个高度差的高低台:左高右,右高左,至少各有一个,否则略微不好;是否有2个高度差的高低台:左高右,右高左,可以各有一个,再多了就不好了原创 2010-07-28 07:21:00 · 6359 阅读 · 1 评论 -
通过俄罗斯方块浅谈游戏中的AI(序)
近期写了一个带简单AI的俄罗斯方块小游戏,由于本人对AI方面的研究尚浅,希望通过一系列带AI的小游戏的开发,对AI设计进行一下简单汇总,起到交流和总结的作用.源代码本人一直在更新,也可以在俄罗斯方块那个文章中看到最新的下载位置.准备分几个小章节来说明这件事情,不过由于本人实战多于理论,可能与书本知识有些出入,希望学术派的大拿们可以给予指正.也希望跟读者们一起提高.原创 2010-07-25 22:06:00 · 4642 阅读 · 7 评论