王者荣耀实时对战服务器Photon之PUN介绍
PUN基础教程是基于Unity3D的教程。 它将向您展示如何开发由Photon Cloud提供支持的多人实时在线应用程序,以及如何使用Animator使用人物进行动画处理。 我们将随着许多重要的功能和技巧来学习使用PUN对基于网络开发。
Overview
本教程将在整个创建过程中逐步引导您,从空项目开始。 一步一步,将进行概念解释,以及网络游戏的常见名称、问题、设计以及注意事项。
我们将以一个基本的射击类游戏进行开发演示,利用这个游戏进行使用PUN知识点的讲解和介绍。
我们还将根据房间中的玩家人数使用自定义竞技场场景的尺寸,竞技场场景的大小根据当前在线的玩家人数进行调整。 这将显示几个概念,同步场景功能和技巧,如何处理播放器,当加载不同的场景,可能会出现的问题。
Goal of the game 游戏目标
当游戏启动时,用户将看到连接协议并通知UI本身的进度。 当房间加入或创建时,玩家进入一个可调整大小的竞技场,一次最多可能存在4名玩家。 玩家可以跑,转,以及释放特效火。 每个玩家射击可以攻击其他的玩家,并且影响其他玩家的HP。 当你的HP状况为0时,游戏结束,离开竞技场。 然后,您将看到介绍屏幕,如果需要再次让您开始加入一个新游戏。
What you need to know 你需要知道什么
本教程仅使用Unity编辑器和需要编程的基础知识。 然而,最好有一些unity的基础知识和一些开发经验,当然可以是单机的开发,非网络的游戏,本文将集中讲解在Photon网络开发中的新概念。
Creating a New Unity Project
确保使用Unity 4.7或任何Unity 5版本。 创建一个新的项目,这是为了统一使用编辑环境,减少产生不必要的问题。 一旦你了概念和设计模式,就将它们应用到你自己的项目中。
Importing PUN and Setup
打开Unity商店并找到PUN插件下载并且导入。 当您导入所有的Pun资产时,让Unity重新编译。
PUN安装向导可帮助您快速进行网络设置,并提供了一种方便的方式开始使用我们的多人游戏云服务器:PhotonCloud!
PhotonCloud。 这是我们可以用于我们的游戏的一堆Photon服务器。 我们稍后会解释一下。
使用云与“自由计划”是免费的,所以现在我们只是输入我们的邮件地址,就可以开启使用它。
新帐户立即获得“AppId”。 如果您的邮箱地址已被注册,系统会要求您打开该信息中心。 登录并获取“AppId”将其粘贴到输入字段中。
当AppId保存时,我们完成了这一步。
那么这个“PhotonCloud”究竟在做什么呢?
基本上,它是一堆运行在Photon Server的云服务。这个“云”的服务器由Exit Games进行维护,为您的多人游戏提供无忧的服务。服务器是按需添加的,所以可以处理任何数量的玩家。
尽管Photon Cloud并不完全免费,但成本却低,特别是与常规主机相比。详细了解这里的定价。
Photon Unity Networking
每个人都先连接到“名称服务器”。它检查您的客户端(与AppId)以及客户端要使用的区域。然后它将客户端转发到主服务器。
主服务器是一大批区域服务器的中心。它知道所有现有的游戏。任何时候,游戏(房间)被创建或加入,客户端被转发到其他机器 - 称为“游戏服务器”。
PUN中的设置是非常简单的,您不需要关心托管成本,性能或维护。这些都有专门人员进行维护,性能上可以满足你游戏的需求。
Rooms
Photon Cloud是建立在“房间游戏”,意思是每场比赛的玩家数量有限(比如说少于10个),与其他人分开。 在一个房间(通常),每个人都会收到其他玩家发送的消息。 在房间之外,玩家无法沟通,所以我们总是希望他们在房间里尽快完成游戏。
进入房间的最好方法是使用随机匹配。 我们也可以要求服务器有任何房间或具有某些特性的房间。
所有房间都有一个名称作为标识符。 除非房间满满或关闭,否则我们可以按名称加入。 非常方便。主服务器可以提供我们的应用程序的房间列表。
Lobby 大厅
您的应用程序的大厅存在于主服务器上,以列出您的游戏的房间。 在我们的例子中,我们不会使用大厅,只要有空房间可以使用随机房间,或者如果没有现有房间可以先创建房间再加入房间,可以创建一个新的房间(房间可以有最大的容量,所以它们可能是全部的 充分。
Application IDs & Game Version
如果每个人都连接到相同的服务器,那么必须有一种方法来将玩家与其他人分开。
每个游戏(如应用程序)在云中获得自己的“AppId”。 玩家总是会在其客户端中遇到与“AppId”相同的其他玩家。
还有一个“游戏版本”,您可以用来将较老的客户端的玩家与新的游戏者分开。
Regions 地区
Photon Cloud组织在全球不同的地区都架设服务器,以防止太远,连接速度太慢。 了解这个概念很重要,特别是在不同地区的远程团队传播时。 由于区域分裂,可能无法与您的队友一起测试游戏。 因此,请确保您强制该区域与所有要彼此交互的测试人员相同。
Development
每个部分涵盖了项目开发阶段的一个非常具体的部分,重要的是按顺序进行工作。
1,创建工程,脚本和熟悉Photon知识。
2,创建基本的大厅场景。
3,使用用户界面(UI)改善大厅场景。
4,创建游戏场景
5,场景加载。
6,创建基本的Player Prefab。
7,使相机跟随您的游戏主角。
8,修改游戏主角Prefab以添加网络功能。
9,玩家实例化和场景切换。
10,播放器用户界面(UI)。
Conclusion 结论
所以,我们完成这个项目,让用户可以通过PUN的云服务进行互联网相互对抗,以满足良好的体验的基本要求。
我们已经了解到PUN基础,如何监听PUN状态和当前上下文,以及充分利用直观的组件来与Animator一起使用,将在下面的课程中一一讲解。
当然我们还将要学习Photon的一些有趣的功能,如自动场景同步,以创建原创和强大的GamePlays。
创建一个完整的游戏需要做更多的准备,但这只是建立在我们这里介绍的基础之上。
不管你有关于Photon产品的问题或者是Photon价格问题或者Photon教程方面的问题或者其他问题都可以联系我们给我我们留言,我们真诚的为您服务。关注我们公众号PhotonServer获取等多新鲜资讯。