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 开发的游戏:
  • Imitation Pickles — Games
AC:Galcon 创意从何而来的呢?能否向不知道这个游戏的读者简单地介绍一下这个游戏?
PH:2006年4月有一个48小时的游戏开发竞赛称为Ludum Dare。比赛主题是群体,而且我一直希望再度缔造“银河征服”风格的游戏,所以我尝试实现飞船群。游戏的原型在48个小时内做出来并赢得了比赛。后来我接受了大家的鼓励,继续开发,然后就有了 GalCon。
Phil Hassey 的相关材料:
  • The Glorious History of Galcon
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 个,那么玩家就必须正视这个新手,才能赢取比赛。
相关的网页:
  • Galcon’s Forum on Strategy
AC:我注意到这是个基于 pygame 编写的游戏。谈一下你使用这个框架的经验如何?有何特别之处?
PH:pygame 棒极了:)!我无需用到什么特别的东西,不过我想在以后使用 OpenGL。因为渲染这多么飞船耗费很多 CPU 资源。
截图3:Galcon 基于 pygame 开发。
AC:深入 mod 的脚本之后,我感叹 Galcon 的 API 竟然如此简洁和结构化。对想跟 AI 对阵的玩家,你有什么要说的?
PH:祝你玩得开心!
截图4:机器人战斗模式对测试 AI 非常有用。

相关材料:

深入 GalCon:Python、游戏开发和人工智能相关推荐

  1. 32岁学python有前途吗_Python发展前景如何?学习Python游戏开发有前途吗?

    Python发展前景如何?学习Python游戏开发有前途吗? 时间:2018-04-02 15:48:31 | 来源:千锋教育 | 作者:alents 学习Python的人都知道一句话:人生苦短,我用 ...

  2. 适合python游戏开发的库你知道几个?

    python游戏开发的库 01 PyGame 官网: https://www.pygame.org/docs/ 概述: Pygame 是一组专为编写视频游戏而设计的 Python 模块. 它在优秀的 ...

  3. Python游戏开发入门-蔡军生-专题视频课程

    Python游戏开发入门-2302人已学习 课程介绍         随着人工智能的复兴,越来越多AI的架构采用Python语言来开发,因此学会Python语言,就成为当下急需的技能.同时,Pytho ...

  4. python游戏开发的五个案例分享

    本文给大家分享了作者整理的五个python游戏开发的案例,通过具体设计思路,代码等方面详细了解python游戏开发的过程,非常的详细,希望大家能够喜欢 一.序列应用--猜单词游戏 1. 游戏介绍 猜单 ...

  5. 师傅带徒弟学:Python游戏开发引擎cocos2d-python-关东升-专题视频课程

    师傅带徒弟学:Python游戏开发引擎cocos2d-python-299人已学习 课程介绍         Python语言之所以受欢迎,很大的原因是有很多可以使用的库,Python社区也有很多游戏 ...

  6. 小学生python游戏开发pygame5--title地图调用

    小学生python游戏开发pygame5--title地图调用 前言 文件夹目录 pytmx模块安装 实现效果 代码实现 前言 文件夹目录 pytmx模块安装 实现效果 代码实现 import log ...

  7. python 游戏开发_Python游戏开发入门

    spContent=--玩游戏的最高境界是什么? --当然是设计一款属于自己的游戏! --设计游戏不是目的,从游戏看道理,从道理看人生,人生何尝不是属于自己的游戏? --"弹指之间·享受创新 ...

  8. python游戏开发的第三方库有哪些_Python 游戏开发方向的第三方库是

    Python 游戏开发方向的第三方库是 答:Pygame 内分泌器官包括( ) 答:甲状腺 松果体 甲状旁腺 垂体 我国的社会保险制度体系主要包括.医疗保险.失业保险.工伤保险.生育保险等内容 答:养 ...

  9. Python游戏开发

    Python游戏开发 目录 Python游戏开发 前言 画图库 导包画图 起别名 坐标 抬笔与落笔 画笔大小 设置背景颜色 小案例 前进 注意代码的优雅 变量 数据类型 type 字符串 三引号 双引 ...

  10. 小学生python游戏开发pygame--初始及基础知识

    #1024程序员节|用代码,改变世界# 小学生python游戏开发pygame1--基础知识 前言 知识点 1.python知识点 1.1 RGB 颜色表示 1.2 类 2.3 pygame.disp ...

最新文章

  1. 从MyEclipse到IntelliJ IDEA ——让你摆脱鼠标,全键盘操作
  2. Asp.Net Identity 深度解析 之 注册登录的扩展
  3. 登录抓包逆向分析学习笔记
  4. 深入ASP.NET数据绑定(上)
  5. 【深度学习】研究揭秘:神经网络越大、表现越好的“神秘力量”
  6. redis 持久化 + 主从复制+ 集群
  7. function函数嵌套 matlab_Matlab函数进阶:使用匿名函数和内嵌函数处理多变量传递问题...
  8. 神马搜索聚焦大数据营销 汇川广告平台 快、准、省
  9. Yii2.x 互斥锁Mutex-类图
  10. 【VBA】修改Excle的标题
  11. (转)C# Color类图示
  12. php利用ftp上传视频,PHP用FTP类上传文件视频等的简单实现方法
  13. MySql 5.7 Archive 版本安装失败 解决过程
  14. 海洋环境科学概论知识整理--1
  15. 使用BeautifulSoup爬取豆瓣电影排行榜
  16. camera raw 13.2中文版
  17. iOS工程师 - 简历
  18. B2B2C多用户商城三级分销系统建设与推广怎么做
  19. 判断两个String类型的是s1,s2是否相等?
  20. 笔记本电脑如何选购并安装内存条

热门文章

  1. pyinstaller将py文件打包成EXE文件(保姆级教程)
  2. 手机开发实战35——SIM卡应用2
  3. 1-2023年浙大MBA提面优秀资格获取心得
  4. Android 策略路由
  5. 房地产已经绑架了中国经济和全中国的人民 ——何学林中国房地产大策划之一
  6. GitFlow 代码版本管理
  7. 使用PyTorch实现目标检测与跟踪
  8. ICLR2021放榜~6篇SOTA GNN论文推荐
  9. python 制作电子相册 视频_制作电子相册时如何添加文字?用什么软件?
  10. 服务器删除系统痕迹,win10怎么清除使用痕迹_网站服务器运行维护