本文转自Unity官方论坛:forum.china.unity3d.com
这几周《Pokémon Go》持续火爆全球,顺带着Unity的知名度也上升了一把。短期内我们还无法正常体验到这款游戏,所以本文将为大家分享游戏背后的技术点。
这款游戏上线不到两周时间,先以其独有的IP优势刮起了全球的怀旧风,然后自带健身属性带动了全民运动,再让移动平台发力较晚的任天堂股价上涨37%有余,紧接着DAU表现抢眼已突破2100万,已成为美国地区手游平台有史以来DAU峰值最高的游戏。
所以讲真,打开游戏看到Made With Unity的启动画面还是满激动人心的:
下面是《Pokémon Go》制作过程中所使用的部分工具及服务:
《Pokémon Go》使用Unity引擎构建了整个游戏核心的多人联网系统(MMO),以支撑全球大量的玩家同时在线。此外还使用Unity引擎制作了游戏中基于真实地理信息的简化版游戏世界。
Google App Engine平台为《Pokémon Go》提供移动后端,以保证全世界玩家同时在线的情况下也能得到良好的响应速度。Google App Engine是一个开发、托管网络应用程序的平台,使用Google管理的数据中心。它使用了云计算技术,且跨越多个服务器和数据中心来虚拟化应用程序。
该游戏使用Google Cloud Datastore的NoSQL数据库来存储并索引游戏数据。
利用Libgdx作为应用框架,并且用到了Java、C++及C#三种编程语言。
使用Google Analytics来分析并管理玩家在游戏中的行为表现。
除了以上工具及服务,《Pokémon Go》的制作也涉及了不少技术点。
我们前不久为大家介绍过AR增强现实技术也用到了《Pokémon Go》中,这样玩家就可以在现实世界中看到各种各样的小精灵。感兴趣的朋友可以回顾此前的文章:使用Unity制作AR应用。
此外还利用了移动设备的GPS定位技术,实时跟踪玩家的移动距离并映射到游戏世界。所以有玩家表示,玩了《Pokémon Go》才知道原来1千米是那么远。
最后要说的,就是游戏中基于真实地理信息的世界,其数据来源于谷歌地球。除此之外,Niantic(《Pokémon Go》开发商)还准备了另外的数据集,根据气候、植被、土壤或岩石类型对区域进行了分类,这为地图数据附加了更多的生态信息,使得小精灵的习性与其出现的位置匹配度更高。
好了,关于《Pokémon Go》的技术介绍就到这里,由于锁区以及服务器太拥挤的缘故,大陆地区玩家暂时无法正常享受游戏体验。实在忍不住要玩的朋友,出国就是最快最理想的方式啦。
当然,仅仅了解技术还是不够的,在目前做精品手游的大环境下,对游戏的性能优化就显得格外重要了。而Unity手游的性能优化过程更像是一门时空转换的艺术, 持续在CPU和内存之间取得一个平衡。空间不足时则需要释放一些无用数据,以获得更优的空间使用率;时间太长时就需要降低不必要的函数开销。例如在低端机上,为了节约有限的内存空间,静态加载的资源会相对较少,很大一部分资源通过动态加载和释放;而在高端机上则不用考虑空间的限制,可以一次性静态加载更多的资源,省去了不少loading和GC的工作,让游戏体验更加流畅。
目前UnityCube目前已经免费可以使用!
体验地址:http://wetest.qq.com/cube
关于测试报告的问题:http://wetest.qq.com/guide/view/?id=267
使用帮助:http://wetest.qq.com/guide/view/?id=266
常见问题:http://wetest.qq.com/guide/view/?id=268