王者荣耀实时对战服务器Photon之PUN介绍

发表于2017-11-18
评论0 3.4k浏览

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获取等多新鲜资讯。


关注我们公众号PhotonServer 获取最新教程资源。

王者荣耀实时对战服务器Photon之Pun应用系列文章 如果你喜欢请关注我公众号,并推荐给你你的小伙伴,谢谢。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引