有什么介绍制作棋类游戏AI的书籍值得推荐?
棋类游戏AI的范围还是挺广的,这里推荐一本讲解象棋和五子棋游戏的书籍《PC游戏编程》,这是王小春著作的一本书,里面讲的基本上是中国象棋人机博弈和五子棋人机博弈方面的内容,里面的算法结构相当经典,你可以仔细研究研究。
Unity3D游戏引擎支持的平台:PC, Mac OS, Web, iOS, Android, XBOX360, PS3, Wii。这种跨平台能力,让人很难再挑剔了。特别要关注的是Web,iOS和Android平台,这几个平台的重要性不用多说了。
全新的授权、盈利模式
过去的游戏引擎都是通过卖license赚钱的,现在Unity3D打
破了这一常规,除了收费的license还提供了完全免费的简化版本,而且另外提供了Union和Asset
Store销售平台,任何游戏制作者都可以把自己的游戏放到Union平台销售,赚到的钱二八分成。Asset
Store更是为单个的美术资源提供了一个销售平台,一个模型或一个骨骼动画都可以拿到这里销售,为游戏开发者提供了一站式的销售、开发平台。
免费的license一方面扩大了用户群,另一方面也可以通过Union平台来为Unity3D带来额外的收入,可以说是一石二鸟。
开发:
脚本语言在Unit3D游戏开发中占据了主角的位置。Unity3D提供了三种脚本语言的支持:Javascript、C#、Boo,Boo是
Python在Net上的实现。值得注意的是Unity3D通过Mono实现了Net代码的跨平台。这样对数据库、xml、正则表达式等技术的支持都
因为采用了Net而得到完美的解决。
脚本语言的动态特性让我们可以方便的通过名称、层次结构、tags等方式访问所有的对象。当然更大的好处是脚本语言的跨平台性,绝大部分平台相关的代码都放到了引擎的内部,而游戏内容相关的代码都可以跨平台执行。游戏开发者终于可以不再为跨平台头疼了。
渲染:
支持100多种光照材质shader,20多种后期处理效果。Unity3D的surface
shader还是比较灵活的,可以非常自由的定制。不过不清楚后期处理有没有提供这么灵活的扩展能力。当然Unity3D提供的各种后期处理效果已经非常
优秀了,扩展能力更多的是体现架构的可扩展性。
Unity3D的渲染性能优化也是比较有自己的特色的。
其他:
Unity3D对网络通信的支持比较全面,不过开发MMO的话还是不能满足需求的。因此Unity3D推荐了几个MMO的服务器平台可以配合使用,
包括Electrotank Universe Platform, Photon Socket Server, Smartfox
Server。另外Unity3D可以直接运行在浏览器页面内也是未来的一个趋势。
Unity3D提供的Unit Asset Server方便了对游戏资源的管理和版本控制。
Unity3D提供了包括编辑器、beast渲染器、tree creator等大量的辅助工具。
只有阿凡达和丁丁历险记,其他都是光栅化技术
目前游戏没有真正的光线追踪技术,只有伪技术,通过多光源系统来代替第一次,第二次(更多次就没办法了)光反射形成的亮区,即把比如被阳光照到的室内的墙壁当成光源,照射室内其他物体比如靠近被阳光照到的墙壁的地板会更亮一点点并且逐渐变暗,这样已经十分逼真了
第一次看到DOOM III中卫生间摇曳灯光下怪物满屋拖动的阴影时,你是否有一种惊为天人的震撼?这就是赋予阴影正确数学关系之后的结果。shadow volume通过计算光源与物体之间的放射角度来构筑阴影的形状,因为考虑了Occlusion的关系,shadow volume第一次在数学层面上还原了主光线-物体-阴影三者正确的位置和交互关系。通过数学关系的对应,光源的移动可以被直接反映到阴影上。
但问题是真实影子也绝对不可能像切蛋糕那样把光亮的区域以及黑暗的区域一分为二。透过物体的边缘,应该会有更多的光线进入阴影边缘才对。即我们需要阴影边缘柔和(soft shadow)
于是程序员们开始引入各种看上去精美和谐的算法来处理soft shadow的问题。傅里叶级数、非线性函数逼近、卷积定理、切比雪夫不等式……这些一般用户一辈子绝对不可能看到3次以上的名字开始浸入到阴影处理的各个环节。他们每一个都有着华美的外表以及优美的内涵,在解决阴影边缘单个像素的比较和颜色问题时显得极其精巧和谐。
但待处理的像素显然不止一个,对于每一个阴影边缘的像素,上面那些过程都要被重复最少一次,有些像素还可能会被重复很多次直到结果正确为止。于是在这些算法身上,数学最简单的暴力堆积效果被放大到了无法被忽视的高度。
实现了soft shadow的阴影依旧是不正确的,阴影的边缘虽然因为更多的光线流入而显得更加柔和,但这些光线依旧仅出自同一个光源而已。真实的场景中光源显然不止一个,任何场景内物体表面的反射和漫散射都可以成为一个新的光源,这些经过反射和散射的光不可能不对阴影产生影响。
不同场景、不同视角中次生光源产生的光照根本就不可能在事先被全部估计到,因此透过预先设计纹理事先阴影的效果的手段自然也就全无成功的可能了。
既然不能预先设计,那我们就把处理的过程放进实时的游戏中吧。于是,程序员们再次开始了对全局间接光照特效的数学关系研究。先后出现的GI和Photon Mapping等操作方式硬件计算能力的消耗都过于巨大或者效果不佳,直到crytek公司在SGI2007会议上递交了一篇名为《Finding Next Gen – CryEngine 2》的论文,全局间接光照的实用化才拉开了帷幕,这篇论文中crytek提出了一个全新的处理方式——Screen-Space Ambient Occlusion,简称SSAO。这个操作的难度和复杂性应该是个人都可以想象出来了。
数学终于褪去了她美丽的伪装,彻底显露出了他丑陋野蛮人的本来面目。方程组是美丽的,但美丽的数学方程组如果从1个变成1000个,你还会觉得她很美丽很精巧么?变成10000个呢?100000个呢?2304000个呢?当然,在未来的路上还有光线追踪再等待着我们。也许随着未来光线追踪的引入,那么就会有更可怕的数学运算量,硬件根本无法接受,
阿凡达就是因为光线问题让大型计算机组计算了数百万个小时才得到了两个半小时的**,比如变形金刚3也是如此,上万片机器人零件,需要不同角度的光线,阴影渲染然后拼成骨架再次渲染完全是可怕的数学运算
比如《阿凡达》和NVIDIA有关,只不过主角换成了Tesla GPU计算服务器和一个专门新开发的光线追踪引擎。为《阿凡达》负责视觉特效的是来自新西兰惠灵顿、著名导演彼得·杰克逊创建的Weta Digital(威塔数字),片中800多个细节惊人的CG人物和大量逼真场景正是他们制作出来的,而且他们还是NVIDIA的长期客户。
2009年3月,Weta首席技术官Paul Ryan、渲染调研负责人Luca Fascione和NVIDIA Research高级架构师Jacopo Pantaleoni走到了一起,探讨《阿凡达》的特效制作问题。Paul Ryan指出,在整个CG视觉特效历史上,《阿凡达》第一次把需要的三角形数量从百万级别提高到了十亿级别,他们也对光线效果有自己独到的看法,因此需要一个全新的、灵活的光线追踪渲染方案。
Jacopo Pantaleoni之后便在Weta公司的新西兰总部驻扎了几个月,帮助他们开发了一个预行计算光线追踪引擎,处理《阿凡达》的几十亿个三角形。他们为其取名“PantaRay”,源自希腊格言“panta rhei”(万物流动)。从非专业语言解释,这个引擎大大加速了CG制作和渲染过程,让Weta可以使用更少的时间创建更加复杂的场景。比如**中有一个场景,从直升机上看到大群紫色的外星人飞跃水面,背景是森林覆盖的群山,使用PantaRay只花了一天半的时间就预行计算完成了,而此前的渲染方法会耗时长达一周。
0条评论