写点什么

游戏开发中的 LBS 和 Cocos2d-X 技术实践

2016 年 9 月 13 日

在纽约的帝国大厦,在加州的 St. Monica 海滩,在澳大利亚的歌剧院,在英国的议会街,全世界都在为 PokémonGo 小精灵们疯狂。假如,我们可以在北京的长城上,重庆的嘉陵江畔,兰州的黄河岸边,西安的钟鼓楼,来一场 LBS 游戏的话,想想是不是都觉得很炫酷?

9 月 10 号下午,由 InfoQ 与高德开放平台联合举办的高德 Inside 技术沙龙活动上,高德开放平台总经理童遥、北京指间互动 CTO 郭聪、地球入侵 CTO 钟博,以及 ERA 创始人 &CEO 徐可,介绍如何利用高德地图 SDK 与定位 SDK 解决 LBS 手游开发难题,分享游戏开发结合地图定位技术背后的经验教训与实践成果,并在现场演示已成形的 LBS 游戏开发 Demo。

LBS 技术在游戏开发中有哪些实践?

这里简述一下高德开放平台,其免费为合作伙伴提供开发工具,覆盖领域包括社交媒体、社交出行、新闻资讯等行业。高德 LBS 技术能力在游戏行业能给开发者、用户带来哪些合作机会,以及什么样的创新体验方式?针对这些问题,童遥会给出一些答案。

高德在很多方面都有数据收集,除了游戏行业,有超过 12 年的经验在做整体地图数据的研发和相关的制作工作,通过多种数据预采集、数据挖掘的形式,保证每天为用户提供的数据准确性。那么高德 LBS 技术和游戏怎样结合起来才能擦出火花呢?童遥以说,如果 PokémonGo 在中国落地的话,LBS 与游戏结合会有哪些需求及痛点呢?1. 地图底图的定制化;2. 地图上如何实现游戏场景;3. 渲染效率如何提升?从数据和 SDK 两个方面来解决这个问题,高德能够给游戏行业的三类 SDK:

  • 定位 SDK-这并不是大家普遍认为的 GPS 定位,高德自有一个定位的 SDK。
  • 地图 SDK-基于地图的游戏场景,展示给用户的无论是标准地图还是渲染地图,都属于地区 SDK 范畴。
  • 搜索 SDK-用户使用这个能力来搜索高德平台里的数据,比如在这里搜索周边的餐饮。用户也可以用这个接口去搜索自己的数据

高德 LBS 能为游戏行业量身定制什么样的解决方案呢?

  • 实现玩家位置定位:定位 SDK(移动端)、高精度 IP 定位(PC、移动浏览器);
  • 游戏场景地图化:自定义地图更改、自定义添加 Marker 样式;使用 OpenGL 接口,添加 Overlay 模型;离线地图减少游戏过程中的瓦片数据传输;筛选适合游戏场景的 POI;玩家指定坐标,计算两点地理距离。
  • 玩法多样化:给出多种路线方案,指引游戏玩家到达目的地;查找附近玩家、玩家动态及事件功能;

此外,高德地图通过绘制高度统一的虚拟现实地图,来处理特殊任务及副本触发。同 POI 一样,在 AOI 上可以将地图和游戏进行结合。比如在面向一些群体用户,如大学生群体,可以将北京大学这个 AOI 同某个特定的任务奖励链接起来,用户在进入北京大学之后,完成特定的任务,得到特殊的任务奖励。在做一些特别的游戏运营时,以某个公园作为一个特定副本,用户进入则副本触发,完成后可以得到游戏中奖励以及线下奖励。

在最后,童遥也讲到了高德地图在其他方面的一些措施,包括通过低耗电地理围栏和运动状态监测,让开发者更了解玩家,也能更好地利用玩家的碎片时间产出更多价值。利用高精智能定位,提升游戏体验。通过室内定位和室内地图,除了 WIFI 和蓝牙定位,还会有一些室内的传感器,通过这些传感器可以精准定位到几楼。

基于 Cocos2d-X 的 LBS 游戏开发实践

郭聪是北京指间互联网科技 CTO,很早就开始了手游《城市精灵》的制作开发,基于高德提供的稳定的 LBS 支持、地图的渲染和地图解析服务,帮助游戏在后期获得了很好的口碑和用户数量的提升。在演讲中,郭聪主要从游戏的技术层面介绍了 Cocos2d-X 技术。

对于技术选型有哪些思考?《城市精灵》是基于地图的模式,通过地图来获取周围 POI 信息,有一些精灵依赖于时间、依赖于天气,每个用户根据自己的位置制定不同的路线,有些用户为了抓住特定的精灵,会开发各种副本来进行 POI 搜索。Cocos2d-X 的引擎和高德地图本身自有的独立渲染引擎在合作过程中会产生很多冲突,怎么解决?不同于早期端游 GS 方式的开发,手游最早选择 CI 来进行。后来向 Lua 转变,它能够把 CI 的模块做到 Lua 里面。游戏语言选择 C++ 与 Lua 共舞模式,游戏的核心还是要用 C++ 来写,功能是 Lua 来做。

关于跨平台开发的问题,iOS 和 Android 各开发一套的成本比较高,不现实。所以选择一个非常好的跨平台开发引擎就 OK 了,《城市精灵》团队用苹果原生的支持,直接转向了 Cocos2d-X 的地图。包括像地图引擎现在是 iOS 和 Android 两套分开开发的,地图本身可能会牵扯到很多底层的渲染和定位,地图上如果能够提供非常好的跨平台地图模式,其实对很多 LBS 使用者来说会有很大的提升。

这里来介绍一下 LBS 技术架构,通过 POI 服务器和用户位置服务器来服务一个游戏服务器,放弃直接定位 SDK 里面 POI 的反馈,而是通过网络爬虫来做 POI 的服务器。用户位置是另外一个服务器,它可以做非常高频的查询、插入和修改。作为一个基于 LBS 的游戏它有一个大的问题,因为用户是在全国各地的,对地理位置的要求较高,如果能把所有的游戏玩家放到一个服务器里来,不让用户感到孤单。

依据地图引擎的支持,它帮助完成地理信息服务。地理信息服务包括两个层次,第一是地图本身的显示,就是架构整个用户和游戏,和 LBS 整个核心的桥梁。最核心的就是地图解析。游戏本身不只需要手机端的引擎,还需要一些外部引擎,通过一整套的融合完成 LBS 的玩法。

那么如何将高德地图与 Cocos2d-X 融合?首先是要解决 OpenGL 冲突问题,根源在于不同的 OpenGL 渲染环境,最典型的现象就是贴图纹理冲突。郭聪说,解决方案有跨帧切换、截图伪造、动画特效、屏幕适配等等。

最后,郭聪还描述了高德地图接下来与 LBS 指间有哪些新的玩法的设想,例如地理位置的解析,就是把线上的位置和线下的位置进行关联,获得省份、城市、街道和建筑的信息都会给玩家带来不一样的体验。其次就是信息服务这一块,高德地图有一个功能,它有一些预警,对于堵车、交通事故、限行、团购等提前告知。如果能将这些信息提供给游戏玩家的话,既可以提高用户粘性,也可以打通地图和玩家之间的关系。

由于篇幅限制的原因,这里就不对现场 demo 演示的信息进行介绍了,大家可以后期观看演示视频。

2016 年 9 月 13 日 02:502522
用户头像

发布了 97 篇内容, 共 32.7 次阅读, 收获喜欢 91 次。

关注

评论

发布
暂无评论
发现更多内容

HTTP 请求流程

大导演

浏览器 HTTP 前端进阶训练营

大数据应用及其价值

andy

四万字干货 | 《高博士区块链观察18讲》文字稿,带你系统了解区块链

CECBC区块链专委会

区块链

智慧城市智能化建设,平安社区平台建设综合解决方案

t13823115967

智慧城市

28天写作挑战——坚持28天,每天500字

TGO鲲鹏会

活动专区 28天写作

惊艳!阿里人用29篇讲明白了多线程与高并发+设计模式,惊呆了!

996小迁

Java 面试 设计模式 多线程 高并发

阿里巴巴Java架构师70W年薪招聘需求,已拿Offer经验分享

Java架构追梦

Java 学习 阿里巴巴 架构 面试

云算力挖矿系统APP开发|云算力挖矿软件开发

开發I852946OIIO

系统开发

python 技术面试没过,居然是没有用 pytest 测试框架

和牛

Python 测试 测试框架 pytest

大数据指标分析思考

andy

吴桐/数字化的下一个十年,你可能不会更幸福

CECBC区块链专委会

数字化时代

泪目!美团点评APP在移动网络性能优化的实践,附赠课程+题库

欢喜学安卓

android 程序员 面试 移动开发

测开之函数进阶· 第8篇《多个装饰器装饰同一个函数,三个内置的装饰器》

清菡

测试开发

量子通信触达消费者

CECBC区块链专委会

量子通信

Openresty协程调度对比Go协程调度

行如风

高并发 协程 openresty Go scheduler

软件测试---BUG的生命周期

测试人生路

软件测试

零基础也能看得懂!Android面试心得必备技能储备详解,Android面试题及解析

欢喜学安卓

android 程序员 面试 移动开发

看完老板哭着让我留下来!带你彻底搞懂Android启动速度优化!Android篇

欢喜学安卓

android 程序员 面试 移动开发

架构师第7周作业

Geek_xq

Filebeat同步写位点文件引发的磁盘IO问题

秦宝齐

换个角度,聊聊全链路压测

老张

团队管理 性能测试 系统稳定性 全链路压测

Uniswap去中心化交易所系统开发

W13902449729

去中心化交易所系统开发 uniswap

MySQL不会丢失数据的秘密,就藏在它的 7种日志里

程序员内点事

MySQL

心酸!在小厂划水八年,婚后苦学三个月,最后京东三面成功拿到offer

Java成神之路

Java 程序员 架构 面试 编程语言

Java多线程并发控制工具CountDownLatch,实现原理及案例

码农架构

Java 并发编程 后端

掌上警务,二维码一键报警定位系统

t13823115967

二维码定位报警系统开发

腾讯高工亲授“MySQL学习方法”【思维导图+学习笔记+实战文档+面试题库】让你站在数据库领域的顶峰 笑傲江湖!

比伯

Java 编程 架构 面试 计算机

Alibaba2020年度内部全技术栈PPT总结(基础+架构+算法+大数据+手册)

Crud的程序员

Java 架构 后端 技术栈

AMD台式CPU市场份额距离英特尔还有多远?刚到四分之一

新闻科技资讯

系统高可用分析

andy

溯源反制之MySQL蜜罐研究

Java架构师迁哥

游戏开发中的LBS和Cocos2d-X技术实践-InfoQ