Photon Unity Networking基础教程 0

简介

Photon Unity Networking(PUN)基本教程是基于Unity3D的教程。 它会告诉你使用Photon云如何开发自己的多人游戏以及怎样使用角色和动画。 我们将学习许多重要的功能、提示和技巧,以大概了解使用PUN进行基于网络开发的方法。

主要内容

  • 概述
  • Photon云
  • 开发

概述

本教程将指导您从一个空项目开始,一步步遍及整个创建过程。 一路上,将解释网络游戏中的概念,以及常见陷阱和设计注意事项。

为了不仅仅让玩家走动而不做任何事情,我们将实施一个基本的射击系统,加上玩家的健康管理,这将帮助我们支持网络中变量同步的解释。

我们还将使用基于房间中的玩家数量的自定义尺寸竞技场,竞技场的尺寸基于当前玩家的数量被调整。 这将显示关于自动同步场景的功能的几个概念,以及一些提示,这些提示是关于在加载不同的场景时候如何处理玩家的,并且在这种情况下什么可能会出错。:)

游戏目标

当游戏被启动时,用户将看到连接协议还有在UI中通知进展。 当房间被加入或创建时,玩家进入可调整大小的竞技场,其中一次可以存在多达4个玩家。 玩家可以跑,转身,以及火焰。 每个玩家发射的火光击中其他玩家时将影响他们的健康。 当你的健康是0,游戏结束离开竞技场。 然后,您再次看到介绍屏幕,让您开始加入一个新游戏。

你应该知道的

本教程仅假设使用Unity编辑器和编程的基本知识。 然而,为了专注于Photon网络新的概念介绍,最好有一些普通的非网络游戏开发经验。

示例代码用C#编写,但在Unity Script中工作类似。

Unity和Photon Cloud

创建一个新的Unity工程

确保您使用Unity 4.7或任何Unity 5版本。 创建一个新的项目,然后,一旦你吸收了概念和设计模式,就可以将它们应用到你自己的项目。

导入PUN和设置

打开资源商店并找到PUN资产并下载、安装它。 当您导入所有Pun Assets时,让Unity重新编译。

PUN设置向导可以帮助您的网络设置,并提供了一个方便的方式开始我们的多人游戏:Photon云!

云? 是的,云。 这是一个Photon服务器,我们可以用于我们的游戏。 这里要解释一下。

以“免费计划”使用云是免费的,这里可以输入申请好的AppId或者邮件地址。

Photon Unity Networking基础教程 0_第1张图片
Photon Cloud Screen Shot: Cloud Registration

那么,这个“Photon Cloud”究竟做什么?

基本上,它是一群电脑,Photon服务器运行在上面。 这个“云”的服务器是由Exit Games公司维护,并为您的多人游戏提供无忧服务。 服务器是按需添加的,因此可以处理任何数量的玩家。

即使Photon Cloud不是完全免费的,但是成本也是低的,特别是与常规主机相比。

Photon Unity Networking将为您处理Photon云,下面是内部发生的事情:

每个人都首先连接到“Name Server”。 它检查哪个应用程序您的客户端(使用AppId)和客户端要使用哪个区域。 然后将客户端转发到主服务器(Master Server)。

主服务器是一群区域服务器的中心。 它知道所有现有的游戏。 每当游戏(房间)被创建或加入时,客户端都会被转发到其他机器 - 称为“游戏服务器(Game Server)”。

PUN中的设置非常简单,您不必关心托管成本,性能或维护。

房间Rooms

Photon Cloud使用“基于房间游戏”的思想来构建,意思是每场比赛玩家有限制(比方说:小于10),与其他人分开。 在一个房间(通常),每个人都收到任何其他人发送。 在房间外面时,玩家不能沟通,所以我们总是希望他们尽快进入房间。

进入房间的最佳方法是使用随机匹配。 我们只是要求进入服务器的任何房间或具有某些属性的房间。

所有房间都有一个名称作为标识符。 除非房间已满或关闭,我们可以通过名字加入。方便起见,主服务器可以提供是我们的应用程序的房间的列表。

大厅Lobby

您的应用程序的大厅存在于主服务器上。 在我们的例子中,我们不会使用大厅,只要加入一个随机房间(如果有的话),或者创建一个新房间,如果没有现有的房间(房间可以有最大容量,所以他们可能是都满了)。

AppIDs和游戏版本

如果每个人都连接到相同的服务器,必须有一种方法来将玩家与其他人分开。

每个游戏(如在应用程序中)在Cloud中获取自己的“AppId”。 玩家只有在与具有相同的“AppId”的其他玩家遇到。

还有一个“游戏版本”,你可以用来分离玩家与老客户端与那些与较新的。

地区

Photon Cloud被组织在全球各个地区,以防止与玩家的距离太远,连接不好。 重要的是要理解这个概念,特别是当在不同地区与远程团队合作时。 因为地区划分,与您的队友测试游戏可能就不行了。 所以,确保所有测试者所在区域是相同的。

开发

下面每个部分涵盖了项目开发阶段的一个具体的部分,按顺序进行很重要。
脚本和Photon Cloud知识水平也逐渐增加。

  1. 创建基本大厅场景。
  2. 通过用户界面(UI)改善大厅场景。
  3. 创建游戏场景。
  4. 实现级别加载。
  5. 创建基本Player Prefab。
  6. 使相机跟随您的玩家。
  7. 修改Player Prefab以添加网络功能。
  8. 玩家实例化和场景切换。
  9. 玩家用户界面(UI)。

小结

好的,我们实现了一个工作系统,用户在互联网上与其他玩家互动,以基本要求实现良好的体验。

我们已经学习了如何控制PUN,如何监听PUN状态和当前上下文,以及利用直观的组件轻松使用Animator。

我们还学习了Photon的一些有趣的功能,如自动场景同步,创建原始和强大的GamePlays。

要创建一个完整的游戏还有很多事情要做,准备发布,但这只是建立在我们在这里介绍内容的基础之上。

  • 请务必阅读“开始使用”部分。
  • 请浏览文档和API参考,可以大体知道都有什么。 你可能不需要所有的东西,但当你需要或实现新功能的时候能够记起来。 你会记得一些相关的功能或属性,所以现在是时候正确地学习它们了。
  • 使用论坛,不要犹豫分享你的问题,甚至挫折:)你不会被问题困住是至关重要的。 把问题写出来让别人理解,你会把你的问题有条理的整理出来,这有助于问题的解决。 没有愚蠢的问题,这一切都取决于你的专业水平和你在学习/掌握Unity和PUN的程度。

原文地址

http://doc.photonengine.com/en-US/pun/current/tutorials/pun-basics-tutorial/intro

你可能感兴趣的:(Photon Unity Networking基础教程 0)