深入 GalCon:Python、游戏开发和人工智能

25 篇文章 2 订阅
23 篇文章 0 订阅

Alex. J. Champandard

赖勇浩(http://laiyonghao.com) 译

原文地址:http://aigamedev.com/open/interviews/inside-galcon-python-ai/

AiGameDev.com在这个周一的 pratical insights 是对Phil Hassey采访。 Phil 是一个独立游戏开发者,也是游戏产业社区的活跃分子。 他曾赢得2006年4月的 Ludum Dare 比赛(这个比赛关注群体行为),结果就是产生了名为 GalCon 的非常流行的游戏——上世纪 80 年代叫 Galactic Conquest 的游戏的复刻版。 我最近经常跟 Phil 通 email,问他很多关于 Galcon 的问题,比如人工智能、用 Python 开发游戏等。 你可以在访问他的网站或 GalCon 的网站找到关于他的项目的更多的信息。 此外,还可以下载游戏的demo
截图1:Ludum Dare 比赛的参赛作品。
Alex Champandard:您好,Phil,感谢您抽出时间来回答这些问题! 您能否简要地介绍自己,以及关于成为游戏开发者的背景呢?
Phil Hassey:我自 10 岁以来就一直在制作游戏。 我想大概是因为我没有其它事情可做 :),我最喜爱的语言是Python,所有的游戏都是用它开发的。 当然我也用 C 写性能敏感的东西,也基于 PHP 来开发 Web 项目。 我的游戏大部分都是开源的,我写了不少适用于游戏开发的开源工具/库。
Phil Hassey 开发的游戏:
AC:Galcon 创意从何而来的呢? 能否向不知道这个游戏的读者简单地介绍一下这个游戏?
PH:2006年4月有一个48小时的游戏开发竞赛称为Ludum Dare。 比赛主题是群体,而且我一直希望再度缔造“银河征服”风格的游戏,所以我尝试实现飞船群。 游戏的原型在48个小时内做出来并赢得了比赛。后来我接受了大家的鼓励,继续开发,然后就有了 GalCon。
Phil Hassey 的相关材料:
AC :这些飞船是游戏的重要组成部分,我很好奇你如何实现它们的。 是否基于 Craig Reynold 的操控行为理论? 需要实现很多特定的算法吗?
PH:其实算法很简单-给所有的飞船指定目的地即可。 然后执行碰撞检测,让它们腾出地方。
AC :模拟这么多的飞船,你遇到性能问题了吗? 如果是遇到过,又是如何解决这些问题的呢?
PH:当然遇过。 以前的版本一屏上最多能有 4096 个元素,而我用的又是蛮力碰撞检测。 所以在某些情况下,速度就变得相当慢了。当前版本的最大值是2048,并且使用了网格细分屏幕的碰撞检测算法。 在把飞船放到屏幕上的时候,我也用来些心思来初始化它们的显示,以避免太多的碰撞。 在原始版本中我把它们都放在一个中心点(行星的圆心),然后让它们慢慢地扩散,这产生了非常昂贵的检测代价。
截图2:在 GalCon 的完整版本中可以选择多个 Missions 和多种 AI 机器人。
AC:请问你是如何实现机器的 AI 的? 你是先构建了游戏的大部分,还是迭代改进的?
PH:在那 48 个小时里,我把大部分时间花在如何让数学和图形整合在一起的事情上。 AI 是最后几个小时里实现的。
AC :在开发过程中,你觉得 AI 有用吗? 例如,用来调整参数?
PH:并非如此。 来自玩家真实体验的反馈更加有用。
AC :Galcon 的玩法看似相当简单,但要找到一个最佳的策略并不容易! 在实现 AI 的时候你用到了哪些游戏理论?
“尝试实现神经网络有助于认清确定决策所需的信息。”
PH:制作最终版本的时候我在 AI 上花了相当长的时间。 无数简单的更改自不待言,我甚至还花了一个星期来弄神经网络, 但没有任何进展。 不过尝试实现神经网络帮助我理清了实现 AI 决策的所需的信息。 我在游戏中的机器人上使用了许多新学到的东西。 我仍然在开发一些新的机器人,并发现阅读 Galcon 攻略极其有用。 我已经实施了一些战略,也创造了一些非常具有挑战性的机器人。 有些策略看上去似乎有反直觉,但他们的工作非常好。 在某些场景中体验某种特定的 AI 非常有趣, 比如多人游戏中加入一个新手级的机器人, 这种机器人在公平的比赛中非常容易击败它,但如果给机器人 30 个星球,你只有 2 个, 那么玩家就必须正视这个新手,才能赢取比赛。
相关的网页:
AC:我注意到这是个基于 pygame 编写的游戏。 谈一下你使用这个框架的经验如何? 有何特别之处?
PH:pygame 棒极了:)!我无需用到什么特别的东西,不过我想在以后使用 OpenGL。 因为渲染这多么飞船耗费很多 CPU 资源。
截图3:Galcon 基于 pygame 开发。
AC:深入 mod 的脚本之后,我感叹 Galcon 的 API 竟然如此简洁和结构化。 对想跟 AI 对阵的玩家,你有什么要说的?
PH:祝你玩得开心!
截图4:机器人战斗模式对测试 AI 非常有用。
相关材料:
AC:接下来你有什么计划? 是否有项目正在进行?
PH:我正在做一个Galcon增强版。 希望它几个月后就能够发布出来。:)
AC :感谢 Phil 抽出宝贵时间回答这些问题,也祝你的项目好运。 如果大家喜欢 demo,请大家去购买完整版
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值