当前位置: 首页 > 编程日记 > 正文

简评游戏人工智能相关的中文书(下)

赖勇浩(http://laiyonghao.com

游戏开发中的人工智能

2006  9 月第一版

AI for Game Develpoers 应该算得上一本质量在中等偏上的书,可惜的是即使中文版是由 O’Reilly Taiwan 公司编译,中文版的质量依然差强人意。小的翻译错误就不提了,只让你猜一下“描述式AI及描述引擎”是什么?纠结吧,告诉你,是“脚本化AI和脚本引擎”。里面关于脚本的翻译全部错了。

这本书基本上按操控、寻路、脚本、状态机、模糊逻辑,然后讲到ANN  GA 的套路来写的,比较出彩之处是补充了一章概率,使得在介绍贝叶斯技术的时候平缓了学习曲线,里面介绍规则式 AI 的部分也颇能为有经验的 Game AI 人士一些参考,特别是想重构之前的 AI 引擎的话。

第一作者 David 也是《游戏开发中的物理学》一书的作者。这两本书现在都由东南大学出版社出了影印版和中文版,据我看这本中文的经验,我觉得有兴趣的还是去买影印版来看吧,用来入门还是颇为不错的。

推荐度:中文版,三星;英文版,三星半

游戏人工智能——计算机游戏中的人工智能

2007  6 月第一版

这本小册子很有意思,但有意思的不是它本身的技术与知识,而是关于作者、校对和译者的八卦。这本书的作者署了个中文名:方约翰,然后才用小括号包起一个英文名,之所以会这样,是因为他是校对者涂晓媛的丈夫,作为中国人的女婿,有个中文名很正常了。这个涂晓媛女士,google 一下的话会知道她相当有份量,在1996年获国际计算学会acm最佳博士论文奖,她的获奖论文题目就是“人工动物的计算机动画”(artificial animals for computer animation: biomechanics , locomotion, perception and behavior)。据说涂晓媛是第一位也是迄今唯一一位获此殊荣的中国学者,她有一个主页:http://www.dgp.toronto.edu/~tu/,有兴趣的可以去看看。后来离开学术界之后,她和丈夫创建了 AiLive 这家公司,关注 Game AI 等领域。她的父亲是中国人工智能学会理事长、北京科技大学涂序彦教授,所以像这样一本书也在国内有人翻译出版颇让人寻味了。

除了这本书,另一本方博士的博士论文也在国内出了中文版,那本书我曾在图书馆打过照面,薄薄一本,已经不记得说些什么,就不多言了。但这本书我手上却有一本,也读过了,倒是可以多说两句。本书的英文版名为:Artificial Intelligence For Computer Games: An Introduction,我觉得还是相当得当的,就是不知道北京邮电大学的老师李睿凡、郭燕慧是不是年纪太大,老眼昏花,硬是能把 Introduction 视而不见,弄出一个如此可笑的译名。这本书在内容上可以说是开卷有益,介绍了一个游戏 AI 引擎的基本架构,其仿真器、控制器和渲染器的架构是很为灵活的。如果是从头开始规划一个 AI 引擎,这种设计有借鉴意义,如果是在已经开发的游戏引擎上做一些 AI 功能,你又照本宣科,就只怕给自己招麻烦了。

另外照例说说翻译的情况,因为书是由在校师生翻译的,所以一些经典的游戏名称、一些游戏界的术语都译错了,关于技术方面的译法倒还算可以接受。最让人受不了的是这本书顶了个“智能科学与技术本科专业系列教材”,这样一本小册子成了一本教材,联想到作者的泰山大人的地位,不禁让人对国内学术腐败浮想联翩。

推荐度:中文版,两星半;英文版,没读过,不评价

AI游戏引擎程序设计

2007  11 月第一版

据封底介绍,作者 Brian Schwab 有十几年的开发经验,曾在 DreamWroks 做过 AI 程序设计,现在是 Sony娱乐公司的资深 AI 程序员,从作者看,书的技术含量应该不错。书中的第一部分是对 AI 的一个介绍,还引入了自己的 AI 实验平台,因为这个平台的存在,所以很多代码都可以让读者自己动手实践,还是不错的。第二部分花了一百多页来介绍各种类型的游戏中的 AI 实现,作者的确是见多识广,里面包含了不少经典游戏关于 AI 的代码片段,如果有耐心读完,应该有一些收获。从第三部分起,终于开始介绍常用的 AI 技术,比如状态机、模糊状态机、消息系统、脚本等。第四部分仍然落入俗套,介绍 ANN  GA,还扯了一下人工生命这种高端话题。第五部分终于进入了所谓的实践开发,但不知道仅占全书篇幅 10% 的“实践”内容能让读者有多少东西可以动手,或者说能够动得起手来?

从书来看,作者的见识是无需怀疑的,但全书的内容基本上停留在介绍的层面,没有深入的理论,也没有发挥自带实验平台的优势,让读者能够多多动手。在翻译上,也没有出彩之处,小的翻译错误仍然随处可见,还好,不置于太影响阅读。

推荐度:中文版,三星半,英文版,没读过,不评价

人工智能游戏编程案例精粹

2008  6 月第一版

哈哈,又一本 Mat Buckland 的书,就像我在书评(上)篇(http://blog.laiyonghao.com/2009/09/book-reviews/374)中介绍的一样,Mat 的书写得非常平实,行为简单,但技术含量充足,而且学习曲线非常平缓,动手的机会也相当多。在 2005 年我初见这本书的英文版《Programming Game AI by Example》时,我就深信这本书是我一直在寻找的书。如果你也是一个想进入 Game AI 开发领域的朋友,那么这本书绝对不容错失;古人说半部论语治天下,这本书虽然达不到这样的高度,但读完之后,绝对能够胜任大部分 AI 开发工作,如果再把《AI Game Programming Wisdom》四册啃掉,我觉得绝对可以搞定遇到的所有难题吧。

书中首先介绍游戏角色的基本属性(包括速度、质量等物理属性)及常用数学方法。接着,深入探讨游戏智能体状态机的实现。通过简单足球游戏实例,本书给出用状态机实现游戏AI的例子。在图论部分,本书详细介绍图在游戏中的用途及各种不同的图搜索算法,并用一章的篇幅讨论了游戏中路径规划是如何完成的。此外,本书还对目标驱动的智能体的实现、触发器与模糊逻辑在游戏中的运用进行了讨论。为使智能体行为更加丰富、灵活、易于实现,本书还介绍了游戏脚本语言的优点,并以Lua脚本语言为例进行了说明。

这本书的内容如此之好,所以我曾经在中文版还没有出版的时候,自己去作者的个人网站 ai-junkie.com 把他用来宣传本书的关于有限状态机的章节翻译出来放到自己的博客里(http://blog.csdn.net/lanphaday/archive/2007/06/24/1664369.aspx),现在成为了我的博客访问量最大的一个专题。

这本书读起来相当容易的,译者罗岱也译得比较用心,至少我没有发现多少让我忍受不了的错误,这是我目前看过的关于 AI 的最好的一本书。除了对 Game AI 的内容让人大感受用之外,如何设计正交的系统、如何编写更加面向对象的架构,这本书也能给大家意想不到的收获。

推荐度:中文版,四星半;英文版,四星半


嗯,好了,与游戏人工智能相关的中文书七本,就评价完了。在写这篇博客的过程中,我又想起了一些跟游戏人工智能有关的书,但又不是这方面的专注的,我将另写一篇博客介绍之,敬请期待。

转载于:https://www.cnblogs.com/aiwz/archive/2009/09/16/6154398.html

相关文章:

化敌为友 运营商组团拥抱OTT为哪般

2月15日,全球9大电信运营商宣布,成立“合作运营联盟”(Partnering Operator Alliance),协力挖掘互联网企业为电信业带来的增长潜力。从几年前的抵御OTT进攻到如今的“合作运营”,这个180度的态度转变后面有…

【机器学习】基于自适应变异粒子群算法的非线性函数寻优

本微信图文详细介绍了自适应变异粒子群算法的基本原理以及在非线性函数寻优中的应用。 —————————–华丽分割线—————————— 我们免费提供本文介绍方法的源码,你可以私信我们领取,如果你在领取源码后觉得有帮助,希望能够转…

php fastcgi配置_IIS7.5配置php(FastCGI)- 自动配置

操作系统是 Windows 2008 R2(Windows7),IIS版本是7.5,php版本是 php-5.3.2-Win32-VC9-x86(安装包),数据库是 mysql-5.5.12-win32。具体配置步骤如下:1、安装IIS7.51)Windows 2008(R2)安装步骤:桌面左下角“服务器管理器…

silverlight之How To:设置ComboBox控件的数据源当ComboBox用来作为DataGrid的某列的编辑控件时...

DataGrid是个可编辑的列表控件,而且可以用已有的输入控件来作为某一列的编辑控件,比如用ComboBox控件来作为某列的编辑控件供用户选择数据,这个时候就要先设置好ComboBox控件的下拉列表项了,在silverlight里怎么做呢? …

【Matlab与线性代数】Matlab中对数组元素引用方法总结

本微信图文主要介绍了Matlab中三种对数组元素的引用方法–下标法、索引法和布尔法。

预计2020年传感器需求超一万亿个

据勒克斯研究报告,移动设备的激增,可穿戴设备的日益流行以及连接式物联网的出现促使对传感器的预期需求向一万亿推进。然而,为了充分发挥这些或其他产品的潜能,仍需对传感器进行创新,以满足功率消耗、敏感度、外形因素…

php文本分割成csv,怎么在php中将文本文件转换为csv文件并输出

怎么在php中将文本文件转换为csv文件并输出发布时间:2021-02-19 17:30:27来源:亿速云阅读:88作者:Leah本篇文章给大家分享的是有关怎么在php中将文本文件转换为csv文件并输出,小编觉得挺实用的,因此分享给大…

一些技术图书编写、推荐、出版人员需要自重

最近在互联网上出现了一个让我比较气愤的技术图书相关的事件,事情由《JavaScript征途》一书在51JS上的贴子引起,有人提出这本书的样张里出现了太多错误,但是慢慢的由于作者(即css8)的“死撑”,“事态慢慢升…

【机器学习】基于人工鱼群算法的多元非线性函数寻优

基于人工鱼群算法的多元非线性函数寻优

媲美光纤!WiFi传输速度已可达100Gbps

当前WiFi的最高传输速率是多少?是11ac技术标准的三频5300Mbps?还是11ad的7Gbps?亦或是11ax的10Gbps?答案是100Gbps!没错,这一足以媲美光纤的传输速度,近日在日本研究人员的努力下成为现实&#…

php sharepoint,如何使用php连接sharepoint

试试这个API在SharePoint中下载WSDL.通常位于以下位置&#xff1a;< sharepoint.url> /subsite/_vti_bin/Lists.asmx?WSDL下载API确保同时保存SoapClientAuth.php和SharePointAPI.php在PHP中// 0: include api in your php script.require_once(SharePointAPI.php);// 1…

使用微波炉的十大忌讳

一、忌超时加热&#xff1a;食品放入微波炉解冻或加热&#xff0c;若忘记取出&#xff0c;如果时间超过2小时&#xff0c;则应丢掉不要&#xff0c;以免引起食物中毒。 二、忌将普通塑料容器放入微波炉加热&#xff1a;一是热的食物会使容器变形&#xff0c;二是普通塑料会放出…

匿名黑客Anonymous实施的8次最强攻击

有 研究证明&#xff0c;Anonymous黑客团体的规模比人们的预期要大的多&#xff0c;并且正在成为全世界范围内最流行一群人。关于他们存在这一事实的新闻首先在社交媒体上 公布于众&#xff0c;上面显示了成员之一盖伊福克斯&#xff08;Guy Fawkes&#xff09;炫耀他们的面具。…

【怎样写代码】参数化类型 -- 泛型(一):泛型概述

如果喜欢这里的内容&#xff0c;你能够给我最大的帮助就是转发&#xff0c;告诉你的朋友&#xff0c;鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn togethe.

php redis set集合操作,php对redis的set(集合)操作

<?phprequire (redistest.php);/*** Class setcache*集合类型的常用操作是向集合中加入或删除元素、判断某个元素是否存在等&#xff0c;由于集合类型在Redis内部是使用值为空的散列表(hash table)实现的&#xff0c;所以这些操作的时间复杂度都是0(1)。*/classsetcacheext…

ASP.NET MVC 重点教程一周年版 第九回 HtmlHelper 【转】

许多时候我们会遇到如下场景 在写一个编辑数据的页面时&#xff0c;我们通常会写如下代码 1: <input type"text" value<%ViewData["title"] %> name"title" />由前篇我们所讲的Helper演化&#xff0c;我们思考&#xff0c;对于这种代…

最佳DevOps工具获奖者:CloudBees Jenkins平台

最新一期《IT新架构》宣布了第三届影响力奖的最终结果。这些获奖的产品和技术由我们读者、行业专家和编辑人员参与投票评选&#xff0c;并且预计将对2016年的IT运营产生显著影响。首先向所有的获胜者表示祝贺。 最佳DevOps工具 获奖者&#xff1a;CloudBees Jenkins平台 开源Je…

【怎样写代码】参数化类型 -- 泛型(二):泛型的优点

如果喜欢这里的内容&#xff0c;你能够给我最大的帮助就是转发&#xff0c;告诉你的朋友&#xff0c;鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

php 对象json中文乱码,解决php json中文乱码问题

php json中文乱码的解决办法&#xff1a;首先将类中的中文字段进行url编码&#xff1b;然后再将对象进行json编码&#xff1b;最后进行url解码即可解决乱码问题。PHP中json中文乱码问题解决问题&#xff1a;众所周知使用json_encode可以方便快捷地将对象进行json编码&#xff0…

前两天去A公司面试,面试管问的题目一下子闷了。很郁闷。重新答题。在这里分享一下...

前两天去A公司面试&#xff0c;面试管问的题目一下子闷了。很郁闷。重新答题。在这里分享一下。 1&#xff09; 问&#xff1a;请问你最近做过什么项目&#xff0c;介绍一下大致的情况&#xff1f; 答&#xff1a;做了http://www.chinatravel.net,由2个人一起开发&#xff0c;其…

数据挖掘公司D square nv 完成500万欧元B轮融资

D square nv日前完成 500 万欧元 B 轮融资&#xff0c;融资方为 Gemma Frisius Fonds, Jrgen Ingels, Limburgse Reconversie Maatschappij, Fortino Capital。 D square nv 成立于 2007年12月&#xff0c;总部位于比利时哈瑟尔特。当时由创始团队自掏腰包 13.5 万欧元作为种子…

【怎样写代码】参数化类型 -- 泛型(三):泛型之类型参数

如果喜欢这里的内容&#xff0c;你能够给我最大的帮助就是转发&#xff0c;告诉你的朋友&#xff0c;鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

java 获取init参数,Java如何读取servlet init参数?

在web.xml文件中配置servlet时&#xff0c;我们可以在servlet配置部分中定义一些初始化参数。此init参数可用于定义应用程序配置文件的存储位置。下面的这个简单的servlet展示了如何获取这些init参数值。package org.nhooo.example.servlet;import javax.servlet.ServletExcept…

C#实现一个用于开机启动其他程序的Windows服务

今天决定写写博客&#xff0c;不为别的&#xff0c;只当自己的积累&#xff0c;如果与此同时能不误导他人甚至给了朋友们一些启发&#xff0c;那真是更好了&#xff01; 程序的目的和用途&#xff1a; 很多开机启动程序仅仅加在启动项里面&#xff0c;只有登陆后才真正启动。wi…

Mythic推出“万能”芯片,任何设备都能一秒变身智能产品

我们身边已经出现了一些能够实现语音控制的设备。不过&#xff0c;无论是智能手机还是智能扬声器&#xff0c;都必须先连接到云端&#xff0c;才能实现语音控制。现在&#xff0c;一家叫做Mythic的初创公司推出的新型的芯片和软件将改变这一情况。它无需通过云端就能在本地设备…

【怎样写代码】参数化类型 -- 泛型(四):泛型之类型参数约束

如果喜欢这里的内容&#xff0c;你能够给我最大的帮助就是转发&#xff0c;告诉你的朋友&#xff0c;鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

matlab实验是啥,matlab实验心得体会

matlab实验心得体会这个就是我自己做出来的&#xff0c;发现用soundsc听出来还行&#xff0c;但是用wavwrite就变的很难听。后来发现PB写的很好&#xff0c;而且还能够把前面一段没有噪音的部分给保存下来&#xff0c;我就看了他的代码&#xff0c;有几点体会&#xff1a;1.将代…

Silverlight中文件的生成操作与其对应的获取方法

文件生成操作&#xff1a;Silverlight里的资源文件(图片、视频、字体、XML、XAML等) 生成操作属性选择不同选项时&#xff0c;文件的生成方式和存储位置会有相应变化&#xff0c;下面说一下几个常用的选项&#xff1a;1、 Page&#xff1a;一般xaml文件都用这个。2、 Compile&a…

2017SDN市场一片繁荣,全球企业纷纷“亮剑“

据国外媒体报道&#xff0c;爱尔兰市场研究机构Research and Markets发布的数据显示&#xff0c;到2023年&#xff0c;全球运营商软件定义网络市场预计将达到95亿美元。预计运营商软件定义网络将在未来六年中以42.3%的年复合率增长。强大的市场前景&#xff0c;使得全球各大运营…

【怎样写代码】参数化类型 -- 泛型(五):泛型类

如果喜欢这里的内容&#xff0c;你能够给我最大的帮助就是转发&#xff0c;告诉你的朋友&#xff0c;鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.