Unity多人游戏示例《Boss Room》,为开发者提供完美学习资料
2022-05-10 16:24:58 小编:初瑶 我要评论
《Boss Room》于2021年4月发布了抢先体验版,是Unity给开发者鲜活的项目示例,而现在应用了更多的Unity Gaming Services(UGS)元素的《Boss Room》更加适用于多人游戏开发上手学习。
作为多人游戏的示例项目,《Boss Room》在一个可用于实际生产的环境中展示了各种UGS功能,为多人游戏的开发提供学习资源。
《Boss Room》有两个主要用途:
其一是作为一个示范性样例供社区用作项目基础,或作为零部件用在开发者自己的Unity游戏中。
这也让开发者们有机会亲自尝试自己的解决方案,与UGS团队携手合作,使用Unity提供的SDK来创建并维护一个具备所有常见功能的多人游戏。随着Unity不断加入新的工具和功能,《Boss Room》也在不断发展、其功能也越来越多。
就在上个月,《Boss Room》更新了v1.1.0-pre版本,为多人游戏服务端的开发者带来了一套全新的功能集。
让玩家联手勇闯《Boss Room》
作为一款多人游戏,《Boss Room》必须得有一个搜索和加入游戏的方式。
目前,玩家有两种方法来搜索并连接到游戏。
IP直连允许玩家使用公开的IP地址相互连接。不过,一台电脑的网络通常要经由NAT(网络地址转换设备)和路由器转接,因此直接连接到别人的电脑并没有想象得那么简单。
端口转发(Port forwarding)技术能让直连成为可能,但是主机方还是需要做一些额外设置才能让其他玩家连接。此种解决方案也不具备搜索游戏比赛的功能,玩家必须通过游戏外的信息分享渠道传递相关加入信息才行。而它的好处是可以使用局域网运行,不需要互联网连接。
像《Boss Room》这种多人游戏必须要能在互联网上游玩、游戏房间必须能被轻松搜索到,不可以强行让玩家自己完成端口转发。
那么这时Unity Gaming Services就有用了——Authentication、Lobby加Relay的组合技可以让玩家轻松地创建或加入联网游戏,不必再依靠端口转发或游戏外的协调。
在Authentication、Lobby和Relay服务整合到《Boss Room》之后,游戏的创建和加入会变得更加简单,让端口转发和分享游戏信息显得多余。
总的来说,游戏现在的联网体验更加顺畅和迅速,这一点对样例项目来说是加分项,对真正的游戏来说是必须项。
接下来再来看看我们从项目制作中总结出来的经验吧!
《Boss Room》开发流程概览
从游戏体验来看,《Boss Room》是一个功能齐全、主机托管的PVE多人合作游戏RPG,支持最多8名玩家——详细的游戏功能和玩法可以在此处了解。
第一步:Authentication、UGS及本地迭代的流程
玩家要想使用其他的Unity Gaming Services服务,就必须经过身份验证,所以游戏在启动并加载完主菜单之后便会启动Authentication。
Authentication支持匿名登录,玩家不需要输入额外的信息即可开始游戏。
Authentication API默认不会区分同一台设备的多个游戏实例,即便玩家打开了多个游戏进程,游戏登陆的仍是同一个账户。这点给本地的游戏测试带来了困难——ParrelSync克隆出来的和实际的游戏都受到了影响。
幸而这里有一个简单的解决方案:Authentication支持Profiles玩家档案,它正是解决问题的关键所在。Profiles可以有效地让多名玩家同时在一台设备上进行游戏。要在本地进行测试,我们需要让正式版和编辑器版能在多个Profile间自由切换。
如果要创建玩家档案,你需要根据ProfileManager类来决定使用哪一类Profile。在正式版里我们使用的是`-AuthProfile`命令行参数来指定新档ID。在编辑器中迭代时,我们用到了ParrelSync,ProfileManager类同样支持用ParrelSync的`CloneManager`自定义参数来指定玩家档案的类型。
我们还使用了`ProfileManager.Profile`来生成自定义的`InitializationOptions`。
在上述任务完成后,我们就可以启动其他服务了,并且我们用了某种方法自动化了ParrelSync和Profile的本地迭代流程。在《Boss Room》中已经把这一点改为基于dataPath,以减少对工具的束缚,但上述解决方案对ParrelSync用户仍然有效。
创建房间:建立主机的流程
玩家若想创建主机,可以输入游戏房间的名称、设定开放或加密房间,然后点击“create”按钮。