关于android:如何用Nearby-Service让你的游戏实现近距离联机

44次阅读

共计 1817 个字符,预计需要花费 5 分钟才能阅读完成。

  简单的自组网,偶发的长尾时延,无奈连贯网络的场景,这些问题是否制约你的游戏盈利? HMS Nearby Service(近距离通信服务)提供了便捷的近距离 P2P 直连通信,可为你的游戏带来:

  Nearby Service 在游戏场景下具备如下技术劣势:

  • 综合应用蓝牙、Wi-Fi 进行节点发现。你的游戏集成之后,能够主动搜寻左近关上游戏的用户,无需用户手动关上热点进行连贯。
  • 主动抉择最优的组网和传输方式。反对点对点、星型、网状多种拓扑,反对 Wi-Fi P2P, 无需连贯到同一个 AP。
  • 应用华为自研传输协定,高带宽,低延时,稳固牢靠。

利用开发

  咱们在 GitHub 上找到一款名为《Snake Land》的开源贪食蛇游戏,以此款游戏为例子,集成 Nearby Service 作为游戏的网络通信管道,实现联机对战性能。《Snake Land》原先应用开源框架 Kryonet 实现网络通信层。Kryonet 只反对连贯同一路由器的手机设施之间互联。集成 Nearby Service 后,手机连贯不同 Wi-Fi、不连贯 Wi-Fi、或者在没有网络等场景下,都能够与左近的手机联机,实现真正的“凑近即连”。

开发筹备

  集成 Nearby Service 之前,须要实现以下筹备工作

  • 配置 AppGallery Connect
  • 开明近距离通信服务
  • 集成 SDK
  • 配置混同脚本

  详细信息请参考开发筹备。

如何应用 Nearby Service

  咱们首先来看一下 Kryonet 与 Nearby Service 的接口比照:

Kryonet
开始播送 bind
开始扫描 discoverHost
申请连贯 connect
连贯胜利 connected
连贯断开 disconnected
收到数据 received
发送数据 Send

  Nearby Service 和 Kryonet 的接口是统一的,将 Kryonet 的接口替换为 Nearby Service 的接口,并依据参数类型的差别进行一些参数转换工作。

权限申请

  因为 Nearby Service 会用到蓝牙发现,WIFI 热点创立等操作,因而须要向用户显示申请一些权限。代码如下:

    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

编译、加载、调试

  实现上述业务代码的补全之后,能够进行编译,生成 apk,装置到两台 Android 8 以上的安卓手机并运行。具体开发步骤请参考 Codelab。

成绩展现


  一方点击“Creat a Game”,另一方点击“Join a Game”,即开始相互发现。发现胜利后,主机点击“GO!”按钮开始游戏。滑动屏幕管制绿色小蛇转向,获取更多食物,小蛇头部撞到阻碍即失败。

  如果你对实现形式感兴趣,能够在 Github 上下载源码:
https://github.com/HMS-Core/hms-nearby-demo/tree/master/NearbyGameSnake。

结后语

  基于 Nearby Connection, 能够给你的 APP 实现如下相干性能:

  1. 本地多人游戏:自组网,提供低延时(小于 50ms)、稳固牢靠的传输体验。
  2. 离线文件传输:无需流量,可达 80MB/ S 的传输速度。

更具体的开发指南参考华为开发者联盟官网:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/introduction-0000001050040566


原文链接:https://developer.huawei.com/…
原作者:赵照

正文完
 0