PhotonServer入门教程

一、photonserver简介

由于unity官方自带的UNET多人联机模块停止维护,并且在将来的版本将弃用,新的联机模块尚未发布,所以目前unity上做多人联机一般用第三方方案,photonserver就是一个比较流行的unity多人联机解决方案,下面主要介绍一photonserver。

photonserver分为服务端sdk和客户端sdk,客户端sdk再资源商店可以免费下载,叫PUN2,服务端sdk在官网下载

photonserver的服务器应用安装成功后,会自带一个叫(LoadBalancing)MyCloud的服务,启动这个服务,photonserver内部会启动一个master和一个gameserver服务(根据配置也可以只启动其中一个),master可以理解成大厅服务,gameserver就是具体的房间服务器,这个服务是官方给我们实现的可以通用的服务器程序,也是photonCloud服务器上运行的程序,所以实际上我们可以用photonServer程序搭建自己的photonCloud,也就是为什么这个服务要叫mycloud,我们可以按照photonserver提供的一些示例,开发自己的服务器程序,而且服务器程序的开发也是使用C#语言,客户端程序员学起来也不会特别吃力,但是目前我们使用自带的mycloud 做为服务器程序就已经能够实现基本的多人联机功能了,所以对服务器程序开发我们先掠过,直接开始介绍如何使用客户端的pun sdk与mycloud 服务来实现多人联机功能

 

photon的mycloud服务为什么能通用

因为mycloud只提供公共的功能,比如master只负责例如记录玩家信息,分配房间,匹配玩家等通用功能,gameserver只提供消息转发功能。由于不涉及任何业务逻辑,因此可以做为通用服务器,业务逻辑都由客户端自己处理,因此这种服务器架构,不能很好的处理作弊问题。值得注意的是一个gameserver并不是只对应一个房间,一个gameserver能容纳的最大玩家数量跟机器硬件性能和游戏消息大小及发送频率有关,gameserver内部通过玩家所属房间来对玩家进行分组,确定消息转发边界。

 

既然只是转发消息,为什么要使用photon服务器,而不是自己写一个消息转发服务

photon的同步方式除了一般的消息转发,还提供了RPC的方式,使用更加方便;photon实现了一个可靠的udp协议,在需要转发可靠消息时,比直接使用tcp协议更有效率;另外photon提供了负载均衡的功能,通过简单的配置,一个master服务可以对接到多台其他机器上运行的gameserver服务,玩家建立房间时会自动被转到相对空闲的gameserver服务器上,可以动态添加gameserver服务器的数量,适配不同玩家规模的需求;除此之外photon提供了unity客户端插件PUN,封装了一些常用方法和组件,很多功能的实现甚至不用写代码,极大的提高了联网模块的开发效率。

 

服务器程序部署:https://vibrantlink.com/5minsphotonserver/

一个mater对多个gameserver的配置方式:https://www.cnblogs.com/cj8988/p/11731428.html

Pun官方文档:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值