推荐序
这本书非常适合没有任何 AR 开发经验,甚至没有游戏开发经验的开发者,从零开始学习增强现实的开发。文章的内容从安装 Unity 引擎和配置相关环境开始,进而介绍 AR 及游戏开发中的一些基本概念等,整个讲解过程循循善诱,使初学者不用担心错过任何一个细节而止步不前。
学习软件开发的最佳方式就是学习案例,并亲自动手实现。如果像传统的教科书过多地介绍概念和理论,往往让读者读完之后仍不能独自完成一个完整的作品。这本书介绍了目前最火爆的一款 AR 游戏 Pokemon Go,并将其关键技术一一拆解,章节顺序遵循游戏开发的标准流程,使读者在学习相关的技术以外也能了解到游戏开发的工作流程。
AR 被很多人认为是一种革命性的技术,因为它并不是一个游戏专用的技术。恰恰相反,AR 被认为在未来可能会影响到每个人日常生活的方方方面。比如 AR 眼镜可以在现实世界的背景上增加虚拟的画面。当你在商场购物时,戴上它你可以看到每一样商品的详细信息。当你需要导航时,再不用担心看不懂地图,它可以在现实世界里叠加虚拟的导航路线,即使是路痴也只要跟着箭头的方向行走即可。AR 技术还可以应用在很多领域,这里不再一一阐述。
这本书介绍的核心工具是 Unity 引擎。就像 AR 技术一样,Unity 已经不仅仅是一款游戏引擎。在游戏行业以外,它已经被应用在 AR、VR、影视、建筑可视化(BIM),甚至汽车制造等领域。Unity 是全球应用最广的 VR、AR 开发平台,目前全球大部分的 VR、AR 内容都是通过 Unity 开发的。就 AR 来说,具体的技术还分很多种,比如 AR Kit、AR Core、Vuforia、Hololens、MagicLeap 等。Unity 是目前唯一一个官方支持所有 AR 技术的开发平台。可以说 Unity 是目前学习 AR 技术、开发 AR 产品的最佳工具。
就像其他所有的新兴技术一样,AR 处于发展的最初期,技术和硬件上还存在着些许不足。但是由于它拥有的巨大潜力,我相信这些困难都会很快被克服。希望有更多的开发者加入增强现实的世界,让增强现实更快进入现实。
张黎明 Unity 大中华区技术总监
2018 年 3 月 5 日
译者序1
作为一名程序员在游戏圈工作了十几年,这是第一次参与翻译工作,因为这本书的书名引起了我的兴趣:《Augmented Reality GameDevelopment》,Augmented Reality(AR) 这个词一下子就映入眼帘。最早认识到这个词应该是在 2011 年任天堂公司的 3DS 上。这台掌机自带了一款 AR 游戏,通过 3D 液晶屏可以看到各种动画形象跃然于桌子或者地面上,效果非常震撼。但是从那以后,AR 从我的视野中淡出了,直到去年 Pokemon GO 的突然走红。在这之后,国内也涌现出了许多手机端的 AR 游戏和应用,甚至过年时都流行起了 AR抢红包。而随着谷歌 Tango 手机和微软 HoloLens 眼镜等设备的推出,AR 的应用必然会更加广泛。当然,我最关心的还是能否有更好的 AR 游戏出现。本书详细介绍了一个简单的 AR 游戏的开发过程,非常适合想要一窥 AR 开发之究竟的读者。本人也是带着这样的心态来翻译的,在翻译的过程中学习和验证,获益匪浅。希望读者也能从中找到乐趣,对于翻译中的一些瑕疵请多多包涵。
感谢翻译合作者 Kai,感谢编辑的辛勤校对。另外献给我的宝贝女儿和在我翻译期间辅导女儿学习的妻子,你们给了我莫大的帮助和动力。
龚震宇
译者序2
因为一个很偶然的机会,本来已经离开游戏圈,走向万恶金融界的我,又回到了游戏相关的行业,从事 Google AR和 VR 技术在亚太国家的推广。恰好以前在 EA 的同事沙鹰在朋友圈牵线,就决定参与翻译这本书。公司有规定,不论在哪里发表观点,都必须表明我与 Google 的雇佣关系,这样读者可以假设我的观点带有偏见,请酌情考虑。
作为一个游戏人和铁杆玩家,我觉得,一个游戏最重要的还是得好玩。其次才是赚不赚钱,有没有独特的美术风格,复杂的画面渲染什么的。最典型的例子就是任天堂的游戏,过去十几年分辨率都是主机里面最低的,可它的游戏就是那么好玩。我一直以来都对任天堂致以最高的敬意,所以能够和震宇一起翻译这本书,我很欢乐。
游戏开发者一直都在探索新的人机交互,任天堂在这方面做出过很多尝试,比如很早就制作过 VR 头盔。这在 AR 领域,精灵宝可梦 GO 也实现了前所未有的成功。这本书从精灵宝可梦 GO 的功能出发,讲解怎么使用Unity,制作基于位置并利用地图,街景以及地点网络服务的 AR 游戏,对开发者来说是个很好的 AR 游戏入门教材。
那么究竟什么才是 AR。这个问题还没有确定的答案,世界上的开发者都在探索 AR 是什么,可以做什么。维基百科上有一个观点,你想象一个一维的坐标轴,左边无穷远代表完全真实,右边无穷远代表完全虚拟。那么 AR 就在坐标轴的左半边,代表负数的那个部分;相对的,VR 就在坐标轴右边,代表正数的部分。可见 AR 的定义不是绝对的,有很大的一段区域都可以叫做 AR。中间一段区间也叫做 XR 混合现实,然而这些定义有着非常模糊的边界。
实现 AR 有很多种核心技术,GPS,StreetView, SLAM,计算机图形,计算机视觉,图像处理,基于大数据的机器学习等等,都有切实的应用例子。本书讲解的基于位置的应用,微软的 HoloLens,Google 的 Tango,它们都属于 AR 的应用。任天堂的 3DS 里面就有基于卡片的 AR 玩法,那也是一种早期 AR;类似的,目前的技术已经可以做到基于卡片的 AR 不需要一直盯着卡片也能实现设备定位。
从今年的行业动态来看,接下来基于计算机视觉的 AR 将会慢慢走出实验室进入消费者领域,美国四大科技雇主公司 F.L.A.G. 里面有三个都在做:4 月份的时候 Facebook 推出了 AR Studio,5 月份 Google 在 IO 宣布基于 Tango 的 WorldSense 和 VPS视觉定位服务,6 月份苹果宣布了 iOS 11 里面的 ARKit。根据目前的信息来看,Google 的 Tango 能获得的对现实世界的描述信息最多,因为它硬件上使用了专门的深度传感器和鱼眼镜头。相比之下苹果的 ARKit 和 Facebook 的 AR Studio 只使用了一个或两个 RGB 摄像头。当然,这只是我的推测,毕竟ARKit 和 AR Studio 都还没有正式对外公开,我还没有看过它们的文档。说不定苹果和 Facebook 会拥有怎么样的黑科技呢!科技的发展早已不是线性的;十几年前在我上大学那会儿,人工智能教科书都说超级计算机也绝对没办法下围棋战胜人类;这不,5 月份 Alpha Go 单机 4 TPU 就挑战了人类冠军柯杰。
最近几年国内创业气息浓重,投资氛围也活跃,连习大大都有鼓励大家创业。希望大家紧跟时代,在 AR 这股风刚刚开始刮的时候就让自己站在风口,迎接被风吹起的感觉。
最后感谢翻译同伴震宇,感谢沙鹰牵线带来这本书,感谢编辑的提示和帮助。书中有一些句子为了通顺,采取了意译而不是直译,实属中英文的用词习惯差别太大。希望大家不要介意。
周克忠 Kai Google ARVR 技术推广工程师
2017 年 6 月 26 日新加坡
前言
在 2016 年初,世界上大多数人对增强现实和基于位置的游戏知之甚少。当然,这一切都随着那一年 Pokemon Go的发布而改变了。一夜之间,这种游戏类型就不容置疑地成为了游戏开发的发展趋势。可能你已经玩过 Pokemon Go,而且你阅读这本书正因为你对 AR 和基于位置的游戏类型产生了兴趣。
在本书中,我们将详细探讨创建像 Pokemon Go 这样的基于位置的 AR 游戏的各个方面。基于位置的 AR 游戏是代价昂贵的,需要为游戏中的一切建立很多服务,从地图映射到生成怪物。然而,我们开发的游戏将是零成本的,使用的都是可以免费获得的服务。虽然由于一些许可限制,这可能不是你可以用于商业发布的东西,但是一定能介绍给你大部分概念。而且整个过程中,你还将学习如何使用一个伟大的工具 Unity。另外还会向你介绍游戏开发的许多其他概念。
本书涵盖内容
第 1 章,准备开始,介绍了构成基于位置的 AR