发表于2024-12-19
基于位置的 AR 游戏类型带来了新的平台和技术难点。不过这本书会帮你简化这些难点,展示如何*大化受众。本书将带你经历制作基于位置的 AR 游戏的过程,涵盖的核心技术概念有: GIS 基础概念、移动设备上的 GPS、地理映射、在 Unity 里映射贴图、移动设备上的相机、在 Unity 里的相机贴图、访问基于位置的服务,以及其他有用的 Unity 窍门。技术分析部分进一步讨论制作一个多人版本游戏的必需组件。最后,分享一个疑难解答章节,以防你遇到困难时需要一点点帮助。
你会学到:
√ 制作一个基于位置的增强现实游戏 Foody Go
√ 在地图上让玩家角色运动起来
√ 使用相机作为游戏背景
√ 使用 SQLLite4Unity3D 实现数据库持久化,以跨会话保存库存物品
√ 创建基础 UI 元素,包括游戏界面、库存、菜单和设置
√ 用 Google Places API 执行定位和内容搜索
√ 添加图像着色器效果来改进游戏气氛
√ 添加多人网络或者别的增强模块来扩展游戏
基于地理位置虚拟现实游戏已经有几年了,"口袋妖怪GO”的发布是游戏史上的变迁,催化市场发展,引导了大波的需求。是时候让新手和有经验的人把他们的点子投入增强现实的移动端游戏,满足市场需求了。如果你想使用*新的Unity 5 toolkit来开发游戏,那这本书就是为你准备的。这种类型的基于地理位置的增强现实游戏给我们介绍了一个新平台同时带来技术上的挑战,但是这本书会简化这些难题,告诉你怎么*大程度吸引游戏受众。它能带你体验塑造这种游戏来表现技术概念的这段旅程:GIS的基本原理,移动设备卫星定位,映射,Unity中的地图映射,移动拍照设备,Unity中摄影映射,访问基于位置的服务,和其他有用的建议。这种技术物质探讨了对于长远开发多玩家版本游戏来说哪些是必要的。*后,书会教你故障排除技术以防你遇到麻烦需要一些帮助。
Micheal Lanham 是为petroWEB工作的一位解决方案架构师,目前居住在加拿大阿尔伯塔省的卡尔加里(Calgary, Alberta)。他目前的职责之一是开发具有先进空间搜索能力的综合GIS应用。他曾担任专业和业余游戏开发人员,制作桌面和手机游戏超过15年。2007年,Micheal接触到Unity 3D,从此以后就一直是Unity 3D狂热的粉丝和开发者。
龚震宇是一位资深的游戏开发工程工程师,有十余年从事游戏开发的工作经验。曾在富士通从事编程工作,之后一直在神游科技从事游戏开发工作。周克忠是一位谷歌专业AR开发工程师,长期从事增强现实相关研究和实践。
这本书非常适合没有任何 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 章 准备开始 1
现实世界冒险游戏 1
基于位置 2
增强现实 3
冒险游戏 3
使用 Unity 进行移动开发 4
下载和安装 Unity 5
设置 Android 开发环境 6
设置 iOS 开发环境 10
Unity 入门 10
创建游戏项目 10
生成和部署游戏 14
总结 17
第 2 章 映射玩家位置 18
GIS 基础知识 18
映射 19
GPS 基础知识 22
Google 地图 23
添加地图 25
设置服务 37
总结 42
第 3 章 制作游戏角色 43
导入标准 Unity 资源 44
添加一个角色 45
替换摄像机 46
跨平台输入 48
修正输入 49
替换角色 66
总结 68
第 4 章 生成猎物 69
创建一个新的 “怪物服务” 70
理解地图映射的距离 72
GPS 精度 78
检查怪物 81
投影坐标到 3D 空间 84
在地图上添加怪物 85
在 UI 中追踪怪物 93
总结 96
第 5 章 在 AR 中捕捉猎物 97
场景管理 98
引入游戏管理器 100
加载场景 102
更新触控输入 103
碰撞体和刚体物理 106
构建 AR 捕捉场景 110
使用相机作为场景背景 112
添加捕捉球 116
投掷球 117
检查碰撞 121
粒子效果反馈 125
捕获怪物 126
总结 130
第 6 章 保存猎物 132
库存(Inventory)系统 133
保存游戏状态 135
搭建服务 137
代码审查 139
怪物的 CRUD (创建,读取,更新,删除)操作 144
更新 Catch 场景 146
制作 Inventory(库存)场景 152
添加菜单按钮 158
合成游戏 160
移动开发中的痛 161
总结 162
第 7 章 创建 AR 世界 163
回到地图 164
单件模式 165
Google Place API 入门 167
使用 JSON 169
配置 Google Place API 服务 172
产生标记 173
优化搜索 176
总结 180
第 8 章 与 AR 世界交互 181
Places 场景 182
用谷歌街景作为背景 184
Google Place API 照片幻灯片 186
增加卖出的 UI 交互 192
卖出的游戏机制 198
更新数据库 200
把片段拼接起来 204
总结 208
第 9 章 完成游戏 209
未完成的开发任务 209
缺少的开发技能 214
清理资源 216
发行游戏 219
开发基于位置游戏的一些问题 220
基于位置的多人游戏 221
使用 Firebase 作为多人开发平台 225
其他一些基于位置的点子 229
这个种类的未来 230
总结 231
第 10 章 疑难解答 232
Console 窗口 232
编译错误和警告 234
调试 235
远程调试 237
高级调试 239
记录日志 240
CUDLR 244
Unity Analytics 246
每章的问题和解决方案 249
总结 251
译者序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 在 I/O 宣布基于 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 AR/VR 技术推广工程师
2017 年 6 月 26 日新加坡
前言
在 2016 年初,世界上大多数人对增强现实和基于位置的游戏知之甚少。当然,这一切都随着那一年 Pokemon Go的发布而改变了。一夜之间,这种游戏类型就不容置疑地成为了游戏开发的发展趋势。可能你已经玩过 Pokemon Go,而且你阅读这本书正因为你对 AR 和基于位置的游戏类型产生了兴趣。
在本书中,我们将详细探讨创建像 Pokemon Go 这样的基于位置的 AR 游戏的各个方面。基于位置的 AR 游戏是代价昂贵的,需要为游戏中的一切建立很多服务,从地图映射到生成怪物。然而,我们开发的游戏将是零成本的,使用的都是可以免费获得的服务。虽然由于一些许可限制,这可能不是你可以用于商业发布的东西,但是一定能介绍给你大部分概念。而且整个过程中,你还将学习如何使用一个伟大的工具 Unity。另外还会向你介绍游戏开发的许多其他概念。
在本书中,我们将详细探讨创建像 Pokemon Go 这样的基于位置的 AR 游戏的各个方面。基于位置的 AR 游戏是代价昂贵的,需要为游戏中的一切建立很多服务,从地图映射到生成怪物。然而,我们开发的游戏将是零成本的,使用的都是可以免费获得的服务。虽然由于一些许可限制,这可能不是你可以用于商业发布的东西,但是一定能介绍给你大部分概念。而且整个过程中,你还将学习如何使用一个伟大的工具 Unity。另外还会向你介绍游戏开发的许多其他概念。
本书涵盖内容
第 1 章,准备开始,介绍了构成基于位置的 AR 游戏类型和我们的虚构游戏 Foody Go 的概念。随后是下载所有必需软件,并使用 Unity 设置移动开发环境的所有步骤。
第 2 章,映射玩家位置,首先介绍 GIS、GPS 和地图映射的基本概念。然后说明如何应用这些概念,来生成实时地图并绘制玩家在游戏中的位置。
第 3 章,制作游戏角色,在前一章的基础构建,把我们简单的位置标识转换成一个移动的动画角色。这样,玩家在携带着移动设备走动时,可以看到他们的游戏角色在地图上四处走动。
第 4 章,生成猎物,解释了 Foody Go 的假设背景是关于捕捉实验怪物。在本章中,我们学习了如何在玩家的周围生成怪物到地图上。
第 5 章,在 AR 中捕捉猎物,内容更加密集:通过访问设备相机引入游戏的集成 AR 部分;引入用于投掷球的物理;追踪玩家的划动输入;使用了生物的反应;并且使用新的游戏场景。
第 6 章,保存猎物,致力于开发玩家的装备包,用于保存抓获的所有 Foody 生物,以及其他有用的道具。在这里,我们让读者对于添加永久的存储和添加一个简单的库存场景有大致的了解。
第 7 章,创建 AR 世界,基于一个实时的数据服务,在玩家周围添加兴趣点。
第 8 章,与 AR 世界交互,让玩家与兴趣点进行互动。在我们这个简单的游戏中,玩家将能够出售他们捕获的怪物。
第 9 章,完成游戏,告诉读者如何完成游戏,或者更好地编写自己的基于位置的 AR 游戏。为了本书,我们将只开发 Foody Go 这个示例游戏。
第 10 章,疑难解答,涵盖了一些故障排除建议和技巧,以克服这些开发障碍。与所有的软件开发练习一样,都可能会遇到问题。
阅读前的准备
为了跟着本书的内容练习,你至少需要一台能够运行 Unity 5.4+ 的计算机,以及一部可以运行 Unity 游戏并配备 GPS 的 iOS 或 Android 设备。
更多关于 Unity 的系统需求请参考:https://unity3d.com/unity/system-requirements
本书的目标读者
本书适用于任何有兴趣开发自己的 Pokemon Go,基于位置的 AR 游戏的读者。虽然本书假定你以前没有游戏开发技巧或 Unity 开发经验,但你需要对 C# 或类似的(C、C++、Java 或 JavaScript)语言有基本了解。
AR游戏:基于Unity 5的增强现实开发 下载 mobi pdf epub txt 电子书 格式 2024
AR游戏:基于Unity 5的增强现实开发 下载 mobi epub pdf 电子书AR游戏:基于Unity 5的增强现实开发 mobi epub pdf txt 电子书 格式下载 2024