<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog | 光子引擎photonengine中文站</title>
	<atom:link href="https://vibrantlink.com/category/blog/feed/" rel="self" type="application/rss+xml" />
	<link>https://vibrantlink.com</link>
	<description>成都动联无限科技有限公司</description>
	<lastBuildDate>Thu, 28 Nov 2024 12:19:17 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>

<image>
	<url>https://vibrantlink.com/wp-content/uploads/2017/03/cropped-VL-text-dong-32x32.png</url>
	<title>Blog | 光子引擎photonengine中文站</title>
	<link>https://vibrantlink.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">125330554</site>	<item>
		<title>PUN的设置与连接</title>
		<link>https://vibrantlink.com/punsetting/</link>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Fri, 30 Jul 2021 07:01:55 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<guid isPermaLink="false">https://vibrantlink.com/?p=643</guid>

					<description><![CDATA[<p>Photon Unity Networking（PUN）的设置非常简单。把PUN导入到一个新的项目中，PUN向 [&#8230;]</p>
The post <a href="https://vibrantlink.com/punsetting/">PUN的设置与连接</a> first appeared on <a href="https://vibrantlink.com">光子引擎photonengine中文站</a>.]]></description>
										<content:encoded><![CDATA[<p>Photon Unity Networking（PUN）的设置非常简单。把PUN导入到一个新的项目中，PUN向导（PUN Wizard）就会弹出来。也可以从菜单中访问，路径是Window-Photon Unity Networking。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img fetchpriority="high" decoding="async" width="366" height="267" src="https://vibrantlink.com/wp-content/uploads/2021/07/image003.png" alt="PUN Wizard界面" class="wp-image-644" srcset="https://vibrantlink.com/wp-content/uploads/2021/07/image003.png 366w, https://vibrantlink.com/wp-content/uploads/2021/07/image003-300x219.png 300w" sizes="(max-width: 366px) 100vw, 366px" /><figcaption>PUN Wizard 界面</figcaption></figure></div>



<p>通过免费注册一个新的Photon账户，或从您的仪表板上复制和粘贴现有的AppId，则可完成设置。</p>



<p>如果你想使用自托管的服务器（PhotonServer），请在这里点击 &#8220;跳过｜Skip&#8221;并编辑<code>PhotonServerSettings</code>，如下面所描述。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>您只需要在代码中调用<code>PhotonNetwork.ConnectUsingSettings()</code>来进行连接。</p></blockquote>



<h2 class="wp-block-heading">PhotonServerSettings文件</h2>



<p>设置向导在你的项目中添加了一个<code>PhotonServerSettings</code>文件来存储配置，该文件主要由<code>ConnectUsingSettings</code>使用。你可以设置其连接到光子云PhotonCloud或自我托管的服务器Photon Server，并改变其他常用的设置。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="559" height="570" src="https://vibrantlink.com/wp-content/uploads/2021/07/pun2-photonserversettings.png" alt="在inspector中显示的PhotonServerSettings" class="wp-image-645" srcset="https://vibrantlink.com/wp-content/uploads/2021/07/pun2-photonserversettings.png 559w, https://vibrantlink.com/wp-content/uploads/2021/07/pun2-photonserversettings-294x300.png 294w" sizes="(max-width: 559px) 100vw, 559px" /><figcaption>在inspector中显示的PhotonServerSettings</figcaption></figure></div>



<p>你可以设置AppId、光子云区域｜Photon Cloud Region、游戏版本等。在大多数情况下，可以保留默认设置。</p>



<h3 class="wp-block-heading">设定值说明</h3>



<h5 class="wp-block-heading">AppId Realtime, Chat and Voice</h5>



<p>AppId被光子云｜Photon Cloud用来识别每个项目。PUN使用一个光子Realtime的AppId进行连接。它还能与Photon Chat和Voice很好地配合，不过如果你使用相应功能，其需要各自的AppId。</p>



<h5 class="wp-block-heading"><strong>App Version</strong></h5>



<p>在PUN中，App Version|应用程序版本是Game Version|游戏版本的一部分。具有不同游戏版本值的客户端，是相互分离的。PUN将其自己的PunVersion字符串添加到这个值中，以减少不同PUN版本之间潜在的不兼容情况。</p>



<h5 class="wp-block-heading">Use Name Server</h5>



<p>当连接到Photon Server v4服务器时，客户端会直接连接到主服务器，而不是Name Server|名称服务器。只有当你自己托管光子服务器PhotonServer时，才可以不勾选此项。更多细节请看下面<a href="#Photonserver-v4">Photon Server V4</a>段落。</p>



<h5 class="wp-block-heading">Dev Region</h5>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="672" height="285" src="https://vibrantlink.com/wp-content/uploads/2021/07/DevRegionPhotonServerSettings.png" alt="" class="wp-image-646" srcset="https://vibrantlink.com/wp-content/uploads/2021/07/DevRegionPhotonServerSettings.png 672w, https://vibrantlink.com/wp-content/uploads/2021/07/DevRegionPhotonServerSettings-300x127.png 300w" sizes="(max-width: 672px) 100vw, 672px" /><figcaption>&#8220;Dev Region&#8221; 部分在PhotonServerSettings中</figcaption></figure></div>



<p>从PUN v2.17开始，当使用<code>PhotonNetwork.ConnectUsingSettings()</code>进行连接时，<code>Dev Region</code>只在Unity Editor和Development Build中使用。你可以简单的通过删除该值，从而在Unity Editor和Development Build中禁用Dev Region。在<a href="/chinacloudpun" target="_blank" rel="noreferrer noopener">这里</a>阅读更多信息。</p>



<h5 class="wp-block-heading"><strong>Fixed Region</strong></h5>



<p>当连接到光子云时，PUN将默认选择最佳区域。如果你想连接到一个特定的地区，在这里输入一个地区代码，此情况下最佳地区选择将被关闭。</p>



<h5 class="wp-block-heading"><strong>Server</strong></h5>



<p>这个选项用于托管你自己的光子服务器PhotonServer时适用。请查看5分钟启动光子服务器或者下载Photon Server SDK。</p>



<p>确保这里填写客户端可以访问的地址。它可以是一个公共的、静态的IP、主机名或网络中的任何地址。</p>



<p>如果您为iOS开发游戏，可以考虑阅读<a href="https://doc.photonengine.com/en-us/pun/current/connection-and-authentication/ipv6" target="_blank" rel="noreferrer noopener">PUN和IPv6</a>以及<a href="https://doc.photonengine.com/en-us/server/current/operations/ipv6" target="_blank" rel="noreferrer noopener">如何为IPv6设置Photon服务器</a>。</p>



<p>当所有设置正确后，你可以在你的代码中调用<code>PhotonNetwork.ConnectUsingSettings()</code>。</p>



<h5 class="wp-block-heading">Port and Protocol</h5>



<p>Photon是为在一个Session|会话中使用多个服务器而设计的。这里输入的端口是第一个要连接的服务器的端口。这可能是一个主服务器或名称服务器。该端口也取决于所选择的协议。</p>



<p>如果你连接到光子云Photon Cloud，请将此值设为0。否则，请查询Photon使用的标准端口。</p>



<p>协议的默认值是（可靠的）UDP，但Photon同样也支持TCP和WebSockets。PUN客户端会在WebGL输出中自动使用安全WebSockets。</p>



<p>一般情况下建议使用UDP。</p>



<h5 class="wp-block-heading">Enable Lobby Statistics</h5>



<p>要从服务器上获得大厅统计信息，应该勾选这个选项。更多信息见<a href="https://doc.photonengine.com/en-us/pun/current/lobby-and-matchmaking/appandlobbystats#lobby_statistics" target="_blank" rel="noreferrer noopener">应用程序和大厅统计</a>页面。</p>



<h5 class="wp-block-heading">Network Logging</h5>



<p>这可以控制低级别的Photon代码的log记录。除非有必要，否则一般情况下应使用<code>Error</code>设置。</p>



<h5 class="wp-block-heading">Enable Support Logger</h5>



<p>当你需要追踪在连接、匹配或房间中发生的事件时，这是一个有用的设置。勾选后，我们的脚本将注册回调并记录重要信息，以帮助调试你的游戏。</p>



<h5 class="wp-block-heading">Run in Background</h5>



<p>这设置了同名的Unity设置。更多信息在<a href="https://docs.unity3d.com/ScriptReference/Application-runInBackground.html" target="_blank" rel="noreferrer noopener">这里</a></p>



<h5 class="wp-block-heading">RPC List</h5>



<p>&#8220;<code>Remote Procedure Calls</code>&#8220;使你能够在一个房间里的其他客户端上调用一个方法。PUN在<code>PhotonServerSettings</code>中保留了这些方法的列表，在调用RPC时使用每个名称的缩写作为索引。</p>



<p>请查看<a href="https://doc.photonengine.com/en-us/pun/current/gameplay/rpcsandraiseevent" target="_blank" rel="noreferrer noopener">远程调用PRC</a></p>



<h2 class="wp-block-heading">自我托管的光子服务器配置</h2>



<p>我们建议使用<code>PhotonNetwork.ConnectUsingSettings</code>方法进行连接，并在连接前对<code>PhotonServerSettings</code>进行相应的调整，可以在编译时在Unity编辑器中进行，也可以在运行时通过代码进行（改变<code>PhotonNetwork.PhotonServerSettings.AppSettings</code>）。我们推荐使用<a href="/photon5" target="_blank" rel="noreferrer noopener">Photon Server v5</a>。</p>



<h3 class="wp-block-heading">Photon Server V5</h3>



<p>清除或设置<code>NameServer.json</code>中配置的固定区域。将 &#8220;Server&#8221;设置为您的光子服务器的IP或主机名，其必须是在你的客户端可以访问的网络中。使用&#8221;localhost&#8221;或127.0.0.1来访问本机也是可以的。使用5058为默认的UDP端口（如果你在<code>PhotonServer.config</code>中改变了NameServer应用程序的自定义端口，则此处也应改变为该端口）。请参阅这里的<a href="https://doc.photonengine.com/en-us/pun/current/connection-and-authentication/tcp-and-udp-port-numbers" target="_blank" rel="noreferrer noopener">每个协议和服务器的默认端口列表</a>。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="708" height="381" src="https://vibrantlink.com/wp-content/uploads/2021/07/pun2-photonserversettings-server-v5.jpg" alt="" class="wp-image-650" srcset="https://vibrantlink.com/wp-content/uploads/2021/07/pun2-photonserversettings-server-v5.jpg 708w, https://vibrantlink.com/wp-content/uploads/2021/07/pun2-photonserversettings-server-v5-300x161.jpg 300w" sizes="auto, (max-width: 708px) 100vw, 708px" /><figcaption>光子服务器V5 设置范例</figcaption></figure></div>



<p>在使用光子服务器（OnPremises）时，您需要知道其与光子云有一些细微的使用区别。<a href="/cloudorserver" target="_blank" rel="noreferrer noopener">这里</a>列出了这些区别。</p>



<h4 class="wp-block-heading" id="Photonserver-v4">Photon Server V4</h4>



<p>请取消对 &#8220;<code>Use Name Server</code>&#8220;的勾选，因为Photon Server v4 SDKs不包括这项服务。清除固定区域。将 &#8220;Server &#8220;设置为您的光子服务器的IP或主机名。同样，其必须是在你的客户端可以访问的网络中。使用 &#8220;localhost &#8220;或127.0.0.1来访问本机是可以的，如果您使用在同一台机器上的独立构建。输入端口5055为默认的UDP协议（如果你在<code>PhotonServer.config</code>中改变了MasterServer应用程序的自定义端口，则为该端口）。请参阅这里的<a href="https://doc.photonengine.com/en-us/pun/current/connection-and-authentication/tcp-and-udp-port-numbers" target="_blank" rel="noreferrer noopener">每个协议和服务器的默认端口列表</a>。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="645" height="308" src="https://vibrantlink.com/wp-content/uploads/2021/07/pun2-photonserversettings-server.png" alt="" class="wp-image-651" srcset="https://vibrantlink.com/wp-content/uploads/2021/07/pun2-photonserversettings-server.png 645w, https://vibrantlink.com/wp-content/uploads/2021/07/pun2-photonserversettings-server-300x143.png 300w" sizes="auto, (max-width: 645px) 100vw, 645px" /><figcaption>光子服务器V4 设置范例</figcaption></figure></div>



<p>当使用光子服务器（OnPremises）时，需要做一些调整：</p>



<ul class="wp-block-list"><li>如果你连接到Photon Server v4，请在在连接之前将序列化协议设置为1.6版本（因为1.8版本与该服务器版本不兼容）。</li></ul>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">PhotonNetwork.NetworkingClient.SerializationProtocol = SerializationProtocol.GpBinaryV16;</pre>



<ul class="wp-block-list"><li>客户端需要设置一个唯一的<code>UserId</code>，即使你不对用户进行认证。例如，为每个设备生成并保存一个GUID。</li><li><code>GameVersion</code> / <code>AppVersion</code>不用于创建单独的虚拟AppId。</li></ul>



<p>要获得Photon Server v4和Photon Cloud之间的完整差异列表以及Photon Server v4的已知问题，请访问此<a href="/cloudorserver/" target="_blank" rel="noreferrer noopener">页面</a>。</p>The post <a href="https://vibrantlink.com/punsetting/">PUN的设置与连接</a> first appeared on <a href="https://vibrantlink.com">光子引擎photonengine中文站</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">643</post-id>	</item>
		<item>
		<title>Photon 5 更新与改变</title>
		<link>https://vibrantlink.com/photon5/</link>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Thu, 20 May 2021 07:15:53 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<guid isPermaLink="false">https://vibrantlink.com/?p=634</guid>

					<description><![CDATA[<p>主要变化 名称服务器/NameServer NameServer在光子云PhotonCloud上已经存在了一段 [&#8230;]</p>
The post <a href="https://vibrantlink.com/photon5/">Photon 5 更新与改变</a> first appeared on <a href="https://vibrantlink.com">光子引擎photonengine中文站</a>.]]></description>
										<content:encoded><![CDATA[<h2 class="has-vivid-cyan-blue-color has-text-color has-large-font-size wp-block-heading">主要变化</h2>



<p class="has-vivid-cyan-blue-color has-text-color has-large-font-size">名称服务器/NameServer</p>



<p>NameServer在光子云PhotonCloud上已经存在了一段时间，我们决定在v5中把它带到独立的Photon服务器上。使用NameServer作为LoadBalancing实例的默认应用，在切换到MasterServer之前，客户应首先连接到NameServer，这是现在部署Photon的首选方式。</p>



<p>NameServer对于配置不同的部署区域或集群非常有用。因此，负载平衡是在另一个层面上完成的。这一方式已经被我们的企业客户使用，且反响很好。</p>



<p class="has-vivid-cyan-blue-color has-text-color has-large-font-size">内置的验证提供者</p>



<p>NameServer上的自定义验证功能带来了四个开箱即用的验证提供者，这些功能以前只在光子云PhotonCloud上可用，他们包括：Facebook、Steam、Oculus和Vive。这也是广受我们企业客户好评和使用的另一项功能。</p>



<p class="has-vivid-cyan-blue-color has-text-color has-large-font-size">PhotonSocketServer</p>



<p class="has-vivid-cyan-blue-color has-text-color has-medium-font-size">配置全面更新</p>



<p>配置系统已经完全改变。它现在依靠.NET Core的配置提供者来加载、解析和绑定。服务器应用程序现在需要<code>Microsoft.Extensions.Configuration.Abstractions</code> NuGet包，以便使用<code>Microsoft.Extensions.Configuration.IConfiguration</code>接口，该接口将通过一个新的构造函数注入到应用程序中。</p>



<p><code>PhotonServer.config</code>文件现在在服务器启动时也具有XML模式验证功能。</p>



<p class="has-vivid-cyan-blue-color has-text-color has-medium-font-size">一些新的限制</p>



<p>我们一直都有本地设置（通过<code>PhotonServer.config</code>配置）来设置数据传输限制（消息大小，缓冲区大小，数据传输率）。</p>



<p>因此，为了给Photon服务器增加一层保护，我们引入了新的设置，您可以通过微调来定义这些使用限制。</p>



<ul class="wp-block-list"><li><code>MessageRate:</code> 每个对等体每秒允许的最大传入信息数量。默认值为5000。</li><li><code>MessageDataRate</code>: 允许每个peer每秒缓冲传入数据的最大尺寸。默认为2147483647（<code>int.MaxValue</code>）。</li><li><code>MaxMessageSize</code>: 允许传入的消息的最大尺寸。默认值为512000。</li></ul>



<p>阅读更多关于如何在 &#8220;<a href="https://doc.photonengine.com/en-us/server/v5/operations/server-config#managed_socketserver_settings" title="https://doc.photonengine.com/en-us/server/v5/operations/server-config#managed_socketserver_settings" target="_blank" rel="noreferrer noopener">管理的SocketServer设置</a> &#8220;配置（英文官网）。</p>



<p class="has-vivid-cyan-blue-color has-text-color has-medium-font-size">序列化协议 V1.8</p>



<p>服务器现在支持1.8版本的序列化协议，这也是最新客户端SDK的默认状态。新的协议为大多数常用的类型，带来了新的优化和紧凑的数据传输技术。</p>



<p class="has-vivid-cyan-blue-color has-text-color has-medium-font-size">安全证书/验证设置</p>



<p>在安全连接的验证格式和配置的方面，我们已经从安全通道（Schannel）转换为OpenSSL。你可以在<a href="https://doc.photonengine.com/en-us/server/v5/operations/certificate-setup" title="https://doc.photonengine.com/en-us/server/v5/operations/certificate-setup" target="_blank" rel="noreferrer noopener">这里</a>（英文官网）找到设置证书的新方法。</p>



<p>Photon Server v5现在也支持TLS 1.2和TLS 1.3。</p>



<p class="has-vivid-cyan-blue-color has-text-color has-medium-font-size">定时断开连接</p>



<p>在v5中，我们增加了一种定时或延迟断开连接的方法，将客户端的<code>ConnectionState</code>设置为<code>ScheduledForDisconnect</code>，并让服务器能够在断开连接前向客户端发送<code>DisconnectMessage</code>。默认的延迟是5000毫秒。同时服务器有更多的理由断开服务器的连接，断开原因可能是一个错误。</p>



<p>当一个peer被安排断开连接时，服务器将丢弃从该peer传入的任何数据。</p>



<p class="has-vivid-cyan-blue-color has-text-color has-medium-font-size">32位的支持终止</p>



<p>PhotonSocketServer现在只有64位的版本。&#8221;deploy\bin_Win32 &#8220;目录已经不在保留。</p>



<p class="has-vivid-cyan-blue-color has-text-color has-large-font-size">负载平衡</p>



<p class="has-vivid-cyan-blue-color has-text-color has-medium-font-size">配置全面更新</p>



<p>配置文件已被改变，因此每个应用程序都有自己的文件，并有一个简化的新结构。插件的配置也移到了它自己单独的配置文件中。此外，<code>HttpQueueSettings</code>现在有自己单独的部分，并且可以在使用<code>HttpQueue</code>的部分中进行配置。</p>



<p class="has-vivid-cyan-blue-color has-text-color has-medium-font-size">新的限制选项</p>



<p>对于LoadBalancing服务器应用程序，我们之前总是有各种可配置限制。但这似乎并不足以保护Photon服务器免受恶意客户或黑客的攻击或滥用。</p>



<p class="has-vivid-cyan-blue-color has-text-color"><strong>操作限制</strong></p>



<p class="has-vivid-cyan-blue-color has-text-color">通用：</p>



<p>我们为每个操作代码增加了操作请求和参数限制。</p>



<p class="has-vivid-cyan-blue-color has-text-color">特定：</p>



<p>对于最常用的操作同样也有一些限制：加入、创建和<code>SetProperties</code>。</p>



<p class="has-vivid-cyan-blue-color has-text-color">游戏服务器/GameServer：</p>



<ul class="wp-block-list"><li><code>JoinGameRate</code>：每个peer每秒的最大Join请求数。</li><li><code>CreateGameRate</code>：每个peer每秒最大的创建请求数。</li><li><code>SetPropertiesRate</code>：每个peer每秒最大的SetProperties请求数。</li></ul>



<p class="has-vivid-cyan-blue-color has-text-color">主服务器/MasterServer：</p>



<ul class="wp-block-list"><li><code>MaxConcurrentJoinRequests</code>：每个peer的待处理（排队的未处理请求）的最大联合操作数量。</li><li><code>MaxTotalJoinRequests</code>：每个peer的最大联合操作总数。</li><li><code>MaxJoinedGames</code>：同一个peer同时加入的房间的最大数量。</li></ul>



<p class="has-vivid-cyan-blue-color has-text-color">HTTP限制</p>



<p>除了 &#8220;常规 &#8220;的HTTP队列设置外，你可以通过<code>LimitHttpResponseMaxSize</code>来限制传入的HTTP响应的有效载荷大小。这可以应用于自定义认证、WebRPCs或自定义插件（包括Webhooks）。</p>



<p class="has-vivid-cyan-blue-color has-text-color">事件缓存的限制</p>



<ul class="wp-block-list"><li><code>SlicesCount</code>：每个房间的事件缓存slices的最大数量。</li><li><code>EventsCount</code>：每个房间的最大缓存事件数（所有角色和全局缓存）。</li><li><code>ActorEventsCount</code>：每个房间每个角色的最大缓存事件数。</li></ul>



<p class="has-vivid-cyan-blue-color has-text-color"><strong>属性限制</strong></p>



<p class="has-vivid-cyan-blue-color has-text-color">游戏服务器/GameServer：</p>



<ul class="wp-block-list"><li><code>MaxUniqPropertyKeysPerPeer</code>：每个角色在每个房间内的不同属性键的最大数量。</li><li><code>MaxPropertiesPerRequest</code>：每个SetProperties请求的最大不同属性数量。</li><li><code>MaxPropertiesSizePerGame</code>：每个房间所有属性的最大总数/总和。</li><li><code>MaxPropertiesSizePerRequest</code>：每个SetProperties请求的任何单一属性的最大尺寸。</li></ul>



<p class="has-vivid-cyan-blue-color has-text-color">大厅限制</p>



<ul class="wp-block-list"><li><code>MaxGamesOnJoin</code>：当客户端加入大厅时，在<code>GameList</code>事件中发送的房间列表条目的最大数量。</li><li><code>MaxGamesInUpdates</code>：在<code>GameListUpdate</code>事件中发送的房间列表条目的最大数量。</li><li><code>MaxGamesInGetGamesListResponse</code>：作为<code>GetGameList</code>请求的结果，SQL房间列表条目的最大数量。</li><li><code>Total</code>：每个应用程序的大厅的最大数量。</li></ul>



<p class="has-vivid-cyan-blue-color has-text-color has-medium-font-size">.NET目标</p>



<p>为了准备完全支持.NET核心的v6版本，服务器源代码的.NET项目风格在v5中发生了变化，我们增加了构建文件来准备。</p>



<p>构建目标配置（还有目标构建输出文件夹等）是通过MSBuild文件（csproj，csproj.includes）和自定义定义和宏来处理的。参见 &#8220;build/include &#8220;文件夹。构建流程和部署过程主要通过 &#8220;dotnet &#8220;命令完成。这就是为什么你需要安装.NET Core运行库才能构建和部署，尽管.NET Core还不是一个支持的构建目标。</p>



<p>除此之外，目标的.NET框架版本从4.0更新到4.6.1。但你也用高于4.6.1的.NET框架版本进行构建。</p>



<p class="has-vivid-cyan-blue-color has-text-color has-medium-font-size">本地NuGet资源库</p>



<p>在v5 SDK中，用于服务器应用程序开发的主要库现在可以作为本地NuGet包使用。</p>



<ul class="wp-block-list"><li>ExitGamesLibs (ExitGamesLibs.dll)</li><li>ExitGames.PhotonHostRuntimes (PhotonHostRuntimesInterfaces.dll)</li><li>ExitGames.Logging (ExitGames.Logging.dll)</li><li>ExitGames.Logging.Log4Net (ExitGames.Logging.Log4Net.dll)</li></ul>



<p>这通过 &#8220;<code>nuget.config</code> &#8220;和SDK文件夹根部的Nuget包完成。如果你的解决方案没有自动完成，也可以从 &#8220;<code>nuget.config</code>&#8220;文件中手动添加包源 &#8220;<code>WorkspaceNuget</code>&#8220;。</p>



<p class="has-vivid-cyan-blue-color has-text-color has-medium-font-size">改进的反馈控制系统（LoadBalancer</p>



<p>LoadBalancer使用的反馈控制系统得到了增强。它现在包含双倍反馈级别（过去是5级，现在是10级）。我们还引入了优先权/Priorities和储备/Reserve。</p>



<p class="has-vivid-cyan-blue-color has-text-color has-medium-font-size">新的服务器错误代码</p>



<ul class="wp-block-list"><li><code>HttpLimitReached</code>: 32745，这意味着HTTP请求失败，因为已经达到了一个限制。</li><li><code>ExternalHttpCallFailed</code>: 32744，这意味着HTTP请求由于与目标Web服务有关的问题而失败。</li><li><code>OperationLimitReached</code>: 32743，这意味着操作被阻止了，因为已经达到了一个限制。</li><li><code>SlotError</code>：32742，这意味着更新预期用户时出现了错误。</li><li><code>SecureConnectionRequired</code>：32740，这意味着peer被断开，因为服务器要求安全连接，而此安全连接是通过LoadBalancing部分的 &#8220;<code>RequireSecureConnection</code>&#8220;设置启用的。</li><li><code>EventCacheExceeded</code>: 32739，这意味着事件缓存被取消了，因为已经达到了一个限制。</li><li><code>ExpectedGSCheckFailure</code>：32738，这意味着加入操作失败，因为客户端没有连接到由主服务器提供并在授权令牌中加密的正确游戏服务器。这需要游戏服务器设置 &#8220;<code>TokenCheckExpectedHostAndGame</code>&#8220;生效。</li><li><code>ExpectedGameCheckFailure</code>：32737，这意味着加入操作失败，因为客户端没有提供正确的预期<code>GameId/RoomName</code>，其由<code>MasterServer</code>提供并在<code>auth token</code>中加密。这需要游戏服务器设置 &#8220;<code>TokenCheckExpectedHostAndGame</code>&#8220;设置启用。</li><li><code>AuthRequestWaitTimeout</code>：32736，一个断开连接的原因，而不是一个错误代码。这意味着peer被断开连接，因为它在服务器上待的太久却并没有认证。此只发生在主服务器上。超时时间可以在主服务器设置 &#8220;<code>AuthTimeout</code>&#8220;中设置。默认是1200000毫秒（20分钟）。</li><li><code>ConnectionSwitch</code>: 32735，一个断开原因，而不是一个错误代码。它意味着断线的peer快速重联（使用相同的会话令牌）重新联入房间里的活动角色。</li><li><code>ActorRemoved</code>：32734，一个断开的原因而不是错误代码。它意味着peer因为相应的角色被从房间中移除而断开。</li></ul>



<p class="has-vivid-cyan-blue-color has-text-color has-large-font-size">其他变化</p>



<p class="has-vivid-cyan-blue-color has-text-color has-medium-font-size">修正部分</p>



<ul class="wp-block-list"><li>服务器现在按照预期，在所有情况下作为认证操作的结果而返回<code>UserId</code>。如果客户端或认证提供者没有设置<code>UserId</code>，将返回服务器上生成的<code>GUID</code>。在v4中，服务器在这种情况下不返回<code>UserId</code>。</li><li>另外，在认证过程中，如果认证提供者没有设置<code>Nickname</code>，则服务器将不会返回任何值。在v4中，服务器在这种情况下会返回一个空的<code>Nickname</code>。</li><li>服务器现在不允许同一个角色多次被添加到同一个兴趣小组/interest group中。在v4中，这操作是有可能的，它导致了多次收到该角色发送到该兴趣小组的相同事件。</li><li>服务器现在支持session tokens，因此，快速重联的功能可以按预期工作。</li><li>可以通过广泛房间属性创建房间后设置预期用户/Setting Expected Users。</li></ul>



<p class="has-vivid-cyan-blue-color has-text-color has-medium-font-size">新增功能</p>



<ul class="wp-block-list"><li>PlayerTTL和EmptyRoomTTL被添加为广泛房间属性，可以在房间创建后设置（或更改）。</li><li>房间标志/Room flags在房间创建时被添加。<ul><li>&#8220;<code>Delete Null Properties</code>&#8220;：为空值的属性将在服务器上被删除。</li></ul><ul><li>&#8220;<code>Broadcast Properties Change</code>&#8220;：调用<code>SetProperties</code>的客户端也将收到<code>PropertiesChanged</code>事件。</li><li>&#8220;<code>SuppressPlayerInfo</code>&#8220;：在加入过程中，我们将抑制获取任何有关已加入用户的信息的操作，但仍有可以通过<code>GetProperties</code>操作获得这些信息，这个标志覆盖了<code>SuppressRoomEvents</code>标志的值。</li><li>&#8220;<code>CheckUserOnJoin</code>&#8220;, &#8220;<code>SuppressRoomEvents</code>&#8220;, &#8220;<code>PublishUserId</code>&#8221; 和 &#8220;<code>DeleteCacheOnLeave</code>&#8221; (也叫 &#8220;<code>CleanupCacheOnLeave</code>&#8220;) 现在都是房间标志/room flags。用来请求参数或广泛房间属性。</li></ul></li><li>为<code>SQL</code>大厅新增 &#8220;<code>GetGameList</code>&#8220;操作。</li><li>通过保护匹配过滤器（SQL查询）免受SQL注入，为SQL大厅提供额外的安全性。</li><li>更多的性能计数器。在<a href="https://doc.photonengine.com/en-us/server/v5/performance/photon-counters-list" title="https://doc.photonengine.com/en-us/server/v5/performance/photon-counters-list" target="_blank" rel="noreferrer noopener">这里</a>查看完整列表。</li><li><code>JoinRandomRoom</code>允许你有多个 &#8220;连接的 &#8220;逗号分隔的SQL过滤器（最多三个）。</li><li><code>JoinRandomRoom</code>允许你在没有找到匹配的情况下创建一个房间。</li></ul>



<p class="has-vivid-cyan-blue-color has-text-color has-medium-font-size">功能改变</p>



<p>v5中的认证应该在NameServer上完成，而不再是在MasterServer上。虽然目前在MasterServer上仍然可用，但我们将在未来将其废弃。有了Steam、Facebook、Oculus和Vive作为NameServer上内置的认证供应商，你就有了另一个理由把它移到那里。</p>



<p class="has-vivid-cyan-blue-color has-text-color has-large-font-size"><strong>其他调整</strong></p>



<p class="has-vivid-cyan-blue-color has-text-color has-medium-font-size">终止部分</p>



<ul class="wp-block-list"><li>CounterPublisher已经停用。其相关的源代码和二进制文件（文件和配置）已从SDK中删除。你可以使用Telegraf或Windows PerfMon代替。</li><li>MMO项目。</li><li>StarDust测试控制台客户端。</li></ul>



<p class="has-vivid-cyan-blue-color has-text-color has-medium-font-size">光子控制的变化</p>



<ul class="wp-block-list"><li>&#8220;MMO演示 &#8220;实例子菜单移除。</li><li>&#8220;运行TestClient（LoadBalancing）&#8221;从 &#8220;LoadBalancing（MyCloud）&#8221;子菜单中删除。</li><li>添加了 &#8220;编辑 Nameserver.json &#8220;快捷方式。</li></ul>



<p class="has-vivid-cyan-blue-color has-text-color has-medium-font-size">相关资源</p>



<p><a href="https://www.photonengine.com/en-US/sdks#server-sdkserverserver" target="_blank" rel="noreferrer noopener" title="https://www.photonengine.com/en-US/sdks#server-sdkserverserver">Photon v5 SDK 下载</a></p>The post <a href="https://vibrantlink.com/photon5/">Photon 5 更新与改变</a> first appeared on <a href="https://vibrantlink.com">光子引擎photonengine中文站</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">634</post-id>	</item>
		<item>
		<title>光子引擎中文网站使用条款</title>
		<link>https://vibrantlink.com/term/</link>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Wed, 05 Aug 2020 10:16:10 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<guid isPermaLink="false">https://vibrantlink.com/?p=598</guid>

					<description><![CDATA[<p>光子引擎中文网站使用条款&#160; 欢迎使用光子引擎中文网站（“以下简称网站”）。除其他事项外，本网站旨在（ [&#8230;]</p>
The post <a href="https://vibrantlink.com/term/">光子引擎中文网站使用条款</a> first appeared on <a href="https://vibrantlink.com">光子引擎photonengine中文站</a>.]]></description>
										<content:encoded><![CDATA[<p class="has-text-align-center">光子引擎中文网站使用条款&nbsp;</p>



<p>欢迎使用光子引擎中文网站（“以下简称网站”）。除其他事项外，本网站旨在（a）向您提供有关光子及其产品和服务的信息，（b）提供内部或外部连接允许访问许可下载，相关资料，介绍和其他内容，（c）为您提供直接与我们联系的机会和方式。</p>



<p>我们希望您能享受访问我们网站的体验，但是我们也希望您了解访问网站时所同意的条款。本文中对“我们”或“VL”或“动联无限”的引用是指成都动联无限无限科技有限公司以及我们认为适当的我们的关联公司，子公司，服务提供商和指定人员。如果您或您的组织根据单独的协议（例如，光子系列软件或服务的许可协议等）获得相关的产品或服务，则您对此类产品和服务的使用将受该其他协议而非本网站条款的约束。本网站使用条款仅适用于您对网站的访问和使用，以及对于我们所列出，或提供的各类软件，资料，内部或外部链接，许可或服务（以下简称“相关服务”）的测试，试用或使用（以下简称“使用”）。通过任何网络方式，访问，或使用我们相关服务的任何个人，法人，机构或者团体，以下简称为“用户”或/及“访问者”。</p>



<p>1.0 遵守条款和资格</p>



<p>访问本网站或使用本网站相关服务，即表示您同意本网站的使用条款以及本网站上的所列出的相关产品或服务的其他法律声明，条款和政策（以下统称为“条款”）。</p>



<p>您同意仅按照条款使用本网站及我们列出或提供链接的相关服务。如果您不同意本条款，请不要使用本网站或其任何功能，及所涉及的任何内部及外部资料，或者我们所提供或列出的任何免费，付费，包括但不限于有其他任何条件下所提供的任何软件，许可，服务或资料（以下简称“服务”）。</p>



<p>2.0 修正</p>



<p>我们可以随时修改或终止任何条款，并且这些修改将于我们在网站上发布修订后的条款时生效。每次您使用本网站时，都应访问并阅读本网站的现行条款。在我们发布修订后的条款后，您继续使用本网站即表示您接受此类修订后的条款。如果您对本网站，其内容或任何条款（包括经修改的内容）不满意，则表示您同意唯一的专属的补救办法是停止使用本网站。本条款是您与我们之间就您使用本网站及我们所提供的相关软件，许可和服务所达成的全部协议；同意和遵守本条款其是您下载和使用我们所列或所提供的相关产品和服务的前提和必要条件。</p>



<p>3.0 有效期</p>



<p>本条款（我们可能会不时修改）在您使用本网站或相关服务期间将保持全部效力。您可以出于任何原因随时通过与我们联系并通知我们您希望终止注册的方式终止使用相关服务。我们可以随时以任何理由或没有理由终止您的相关服务，无论有无事先通知或解释，并且不承担任何责任。即使在相关服务使用终止后，本条款仍然有效，并且您将受其约束，但您作为相关服务使用者的权利将终止。</p>



<p>4.0 专有权</p>



<p>我们对您在本网站上发布的文本，文件，图像或任何其他材料（统称“内容”）（如果适用）不主张任何所有权。将您的内容发布到网站后，您将继续保留您在内容中可能拥有的任何此类权利，但须遵守此处的许可。</p>



<p>通过在网站上显示，发布或上载内容，或以其他方式向我们提交内容（统称为“发布”），您特此授予我们及其附属公司不可撤销的，永久的，全球性的，免版税的非专有许可，以出于任何原因并在网站上或通过网站使用，修改，删除，添加，创建，公开执行，公开展示，复制和分发（并通过多级被许可方再许可前述权利）此类内容的衍生作品通过广告和促销网站（包括通过截屏和博客）和/或我们产品的任何媒体格式和通过现在现有或将来开发的任何媒体渠道进行宣传。我们可能会不时地永久或暂时地从网站上删除内容，但前提是即使我们确实从网站上删除了该内容，我们也没有义务停止上述内容的其他使用。 我们也可能出于任何或没有理由（包括但不限于）而拒绝，拒绝发布或删除任何内容。</p>



<p>您声明并保证：（i）您拥有您在网站上或通过网站发布的内容，或有权授予上述许可，并且（ii）您在网站上或通过网站发布的内容不具有侵犯任何个人或实体的隐私权，公开权，合同权，知识产权或任何其他权利。您同意对由于您发布的任何内容而欠任何个人或实体的任何和所有特许权使用费，费用以及任何其他款项承担全部责任。</p>



<p>本网站可能包含我们提供的内容（包括我们发布或显示的而非由访问者发布或显示的第三方内容），包括但不限于文本，图像和徽标。我们内容受版权，商标，专利，商业秘密和其他法律的保护，并且在您与我们之间，我们拥有并保留我们相关内容以及本网站功能的所有权利。特此声明，我们授予您有限的，可撤销的，不可再许可的许可，用于复制和显示我们的相关内容（不包括任何软件代码），仅供您个人查看网站时使用。除非本条款中有规定，否则您不得复制，修改，翻译，发布，广播，传输，分发，执行，显示，转让，租赁，分许可，营销或出售本网站或其功能，或出现在网站上的任何内容的任何部分。</p>



<p>5.0免责声明</p>



<p>我们对本网站上的任何内容概不负责，也不作任何明示或暗示的保证，包括但不限于我们内容，访问者提交内容或通过以下方式发布的其他内容的准确性和可靠性：网站，无论是由我们，访问者或与网站相关，或由其使用的任何设备或程序造成的，还是由于其他原因产生的。访问者的内容不一定反映我们的观点或政策。在本网站上包含任何链接的网站并不意味着我们会批准或认可该链接的网站。访问这些第三方站点时，后果自负。 我们对在本网站上或通过本网站发布的第三方广告或第三方应用程序不承担任何责任，也不对其提供的商品或服务承担任何责任。 我们对网站的任何访问者的行为（在线或离线）概不负责，包括但不限于任何访问者发布的任何内容。我们对任何错误，遗漏，中断，删除，缺陷，操作或传输延迟，通信线路故障，盗窃或破坏或未授权访问或更改任何访问者通信皆概不负责。对于任何网络或线路，计算机在线系统，服务器或提供商，设备，软件，其由于技术问题或互联网或任何网络上的流量拥堵，线路波动而导致的任何软件或者硬件故障，我们概不负责，包括访问网站的部分内容或其组合，包括与参与或下载与网站相关的材料有关的内容，或导致的对访问者或任何人的包括计算机在内的任何设备的任何伤害或损害。在任何情况下，我们对因使用本网站，参加我们活动，由于在网站上或通过本网站发布的任何访问者内容而引起的任何损失或损害，包括人身伤害或死亡，概不负责，包括任何访问者，无论在线还是离线。此外，我们对任何病毒或我们无法控制的任何内容概不负责。我们不对您使用本网站对您软件，调制解调器，包括计算机在内的任何设备，电话或其他财产造成的任何损害负责。如果您无法通过本网站访问内容或其他材料，我们将对您不承担任何责任。</p>



<p>我们的网站和网站所列或所提供的相关服务按“现状”提供，因此，我们不包含其他保证，包括但不限于对特定目的的适用性，不侵权，准确性，或其他任何特质描述，所有权和娱乐性的保证。我们无法保证，也不保证因使用本网站和网站所列或所提供的相关服务而产生任何特定结果。</p>



<p>6.0我们的责任范围</p>



<p>在任何情况下，我们对您造成的任何损害，索赔或损失概不负责，包括但不限于补偿性，偶发性，直接，间接，特殊，后果性或特殊性损害，对我们已被告知或已知的任何不当性，是否知道这种损坏的可能性。此限制适用于所有诉讼原因，包括但不限于违反合同，违反保修，诽谤，疏忽大意，责任，错误陈述，其他侵权行为以及第三方索赔。如果本使用协议中规定的担保排除或责任限制是由于任何无法实行或不适用的原因引起的，则您同意我们的总赔偿责任不得超过五百圆人民币。</p>



<p>7.0赔偿</p>



<p>您同意赔偿并使我们、其子公司和关联公司及其各自的高级职员、代理人、合作伙伴和雇员免受任何损失、责任、成本、费用、索赔或要求（包括但不限于合理的律师费），这些损失、责任、成本、费用、索赔或要求是由于您违反使用条款使用网站和/或使用我们所列或所提供的相关服务的违反条款和/或违反条款中规定的您的陈述和保证和/或您张贴的任何内容而引起的。</p>



<p>8.0 数据保护&nbsp;</p>



<p>我们通过使用业界公认的安全保障措施（如防火墙）和精心制定的安全程序来保护您的个人信息的保密性和安全性，以防止您的信息丢失、滥用或未经授权的更改。</p>



<p>我们要求我们的员工保护您的信息，并使用物理、电子和程序保障措施，我们限制员工仅出于业务目的访问个人信息。</p>



<p>9.0 您个人信息的使用。</p>



<p>当我们要求您提供个人信息时，我们会告诉您或明确告诉您，我们需要什么来满足您的要求，以及我们将如何使用这些个人信息。我们不会将您的个人信息出售或出租给任何人。我们不会将您的个人信息与第三方分享，供其宣传使用。</p>



<p>9.1 与第三方共享个人信息。</p>



<p>有时，我们会与第三方签订合同，以便他们能够以其品牌标签提供我们的服务。在这样的合同中，我们有时会向对方公司提供最低限度的必要信息，以便他们能够就所提供的服务开出账单。合同禁止他们将您的任何个人信息用于他们自己的目的，并要求他们对我们提供给他们的信息进行保密。在有限的情况下，当我们真诚地相信根据适用法律需要披露个人信息时，我们可能会披露或报告这些信息。例如，我们可能被要求披露个人信息，以与监管机构或执法机关合作，遵守法律程序，如法院命令、传票、搜查令或执法要求。</p>



<p>9.2&nbsp;&nbsp;&nbsp;&nbsp;客户资料</p>



<p>访问者向VL授予非排他性、不可转让、不得再授权且买断之有限授权，以储存和使用经授权产品处理过之客户或其终端用户资料，包括任何数据、资讯、影像、文字、媒体和内容（以下称“客户资料”），仅供（a）在法律上且必要时履行VL之义务，并行使其根据本协议之权利，或（b）回应访问者使用授权产品时之服务或技术问题，访问者应对访问者或其终端用户提供之内容和所有资料负责。提供访问者资料时，访问者及其终端用户均不会上传以下任一类型资料，且VL对此类资料不承担任何责任：（a）受相关隐私或安全法规保护之资讯，根据为包括并不限于中华人民共和国个人信息保护法，中华人民共和国数据安全法，以及（b）可识别个人身份之资讯，包括（i）驾驶执照号码，（ii）护照/身份证号码或（iii）社会保险、税号或类似资料。访问者及其所有终端用户将根据适用法律，并以不违反或侵犯任何第三方任何权利之方式使用授权服务。当第三方提起诉讼（包括但不限于任何政府调查、投诉和诉讼），且内容与访问者资料（包括但不限于侵犯或盗用任何第三方智慧财产或违反适用法律）有关时，访问者将自行承担赔偿、辩护，并使VL/或其附随组织、主管、董事、员工、顾问和/或代理商免责。访问者将支付在明确可归因于此索赔诉讼中最终判决VL应支付之诉讼费和损失赔偿金，或因合同金钱和解而需支付之诉讼费和损失赔偿金。</p>



<p>10 营销政策</p>



<p>在任何时候，您都可以让我们知道您是否希望收到我们关于产品或服务的宣传材料。我们只想为您提供您想要的信息。如果您不希望收到此类材料，您可以在收集信息的过程中指定您的偏好，或通过网站表单向我们发送信息。</p>



<p>11.0 我们使用的网络技术</p>



<p>我们可能在网站上使用各种技术。其中包括cookies；当您访问我们的网站时，我们的网站可能会向您的浏览器提供一条信息。Cookies使我们能够跟踪网站的整体使用情况，并确定访问者喜欢的区域。Cookies还使我们能够在您再次访问我们的网站时识别您的身份，从而使您更容易访问我们的网站，并帮助为您提供个性化的体验。您可以通过您的浏览器设置在我们的网站上自由选择拒绝cookies，这不会限制您访问本网站的能力。大多数浏览器默认接受并保留cookies。请查看您所使用的浏览器的 &#8220;帮助 “菜单，了解如何更改您的cookie偏好。</p>



<p>我们或者我们所使用的工具可能会还分析我们网站上的活动。我们收集的信息包括IP地址、浏览器类型和版本以及您浏览的网页。我们也可能会跟踪您如何进入我们的网站，以及您在离开我们网站时点击的任何链接。一旦您离开我们的网站，我们不会再分析您的信息。我们使用您的网站活动可能会协助我们为您提供个性化的网络体验，协助我们了解您关注的服务并，为您量身定制我们的产品。</p>The post <a href="https://vibrantlink.com/term/">光子引擎中文网站使用条款</a> first appeared on <a href="https://vibrantlink.com">光子引擎photonengine中文站</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">598</post-id>	</item>
		<item>
		<title>Photon光子引擎 2020</title>
		<link>https://vibrantlink.com/photon-2020/</link>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Tue, 31 Dec 2019 07:59:11 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<guid isPermaLink="false">https://vibrantlink.com/?p=566</guid>

					<description><![CDATA[<p>自2003年开始建立的Photon Engine光子引擎，到目前已经16年了，在此期间光子引擎和服务在市面上最 [&#8230;]</p>
The post <a href="https://vibrantlink.com/photon-2020/">Photon光子引擎 2020</a> first appeared on <a href="https://vibrantlink.com">光子引擎photonengine中文站</a>.]]></description>
										<content:encoded><![CDATA[<p>自2003年开始建立的Photon Engine光子引擎，到目前已经16年了，在此期间光子引擎和服务在市面上最猛烈的技术和市场浪潮中完善成长，到今天已经成为了世界范围内最主流的多人游戏引擎之一。</p>



<p>Photon光子引擎系列产品涵盖了制作一个优秀多人游戏的各个核心方面：</p>



<ul class="wp-block-list"><li>全球接近400000名光子引擎的开发者，其中包括一些最知名的工作室和公司</li><li>每月近4亿玩家使用光子提供的服务</li><li>在全球16个区域传输超过4PB数据</li><li>赢得2019年的最佳GaaS工具奖</li><li>最新的产品量子引擎Quantum是一个全新且是颠覆性的游戏引擎</li><li>大量的客户在使用Photon光子引擎所提供的培训，会议，教育和远程工程服务，并大幅提供其开发工作的效率</li></ul>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="600" height="220" src="https://vibrantlink.com/wp-content/uploads/2019/12/3da92c0e0ea6f54d096a710564ed595f5e7ee48f1ea49ba108863e2849bf46bce5dae49d008aedb82073c4907ec198b9967391fd14a8cc6ea6e249d528fe8f9b.jpg" alt="" class="wp-image-567" srcset="https://vibrantlink.com/wp-content/uploads/2019/12/3da92c0e0ea6f54d096a710564ed595f5e7ee48f1ea49ba108863e2849bf46bce5dae49d008aedb82073c4907ec198b9967391fd14a8cc6ea6e249d528fe8f9b.jpg 600w, https://vibrantlink.com/wp-content/uploads/2019/12/3da92c0e0ea6f54d096a710564ed595f5e7ee48f1ea49ba108863e2849bf46bce5dae49d008aedb82073c4907ec198b9967391fd14a8cc6ea6e249d528fe8f9b-300x110.jpg 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></figure></div>



<p>Photon Server的主要更新</p>



<p>Photon Server多年来一直坚如磐石，我们将继续通过新功能对其进行增强。 我们准备在2020年推出主要更新如下：<br> &nbsp;<br> 2020年1月发布的Photon Server版本5（候选版本）：<br> 新内核（将在v6中支持win / linux / mac）<br> 增强的自定义身份验证，配对和新的房间创建方法<br> 最先进的安全性：TCP / TLS支持，UDP数据报加密和Open SSL（支持TLS 1.3）<br> 提高性能的新序列化<br> 新内核具有.NET Core支持和跨平台异步I / O功能。 </p>



<p>我们的下一个大升级将是版本6，该版本将在Windows / Linux上运行，并计划于2020年中期发布。</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="600" height="220" src="https://vibrantlink.com/wp-content/uploads/2019/12/60aba6e56c4df1437587c86dc75bdccabf6abd53da26f49d041d76a91f7aa0beafba834cc29d58040f6ed5af8bd23ce4a0f330c002be0c62e1ee5c486d2130d4.jpg" alt="" class="wp-image-568" srcset="https://vibrantlink.com/wp-content/uploads/2019/12/60aba6e56c4df1437587c86dc75bdccabf6abd53da26f49d041d76a91f7aa0beafba834cc29d58040f6ed5af8bd23ce4a0f330c002be0c62e1ee5c486d2130d4.jpg 600w, https://vibrantlink.com/wp-content/uploads/2019/12/60aba6e56c4df1437587c86dc75bdccabf6abd53da26f49d041d76a91f7aa0beafba834cc29d58040f6ed5af8bd23ce4a0f330c002be0c62e1ee5c486d2130d4-300x110.jpg 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></figure></div>



<p>Quantum量子引擎被我们设定为多人游戏开发方式的颠覆者，其在许多方面超出了我们的预期。</p>



<ul class="wp-block-list"><li>Quantum量子引擎是Unity3D引擎上唯一的确定性游戏引擎（deterministic predict-rollback game engine），并且发展迅速。使用Quantum的客户令人震惊：Square Enix蒙特利尔，伦敦的Future Games，Ubisoft，Futureplay Games，Everywear Games，TT Games，Moon Studios或Outfit7等（不包括保密协议限定不能透露的许多国内厂商）。</li><li> &nbsp;</li><li>我们获取了压倒性的正面反馈并让我们坚定的推动这个强有力的技术变革。自从Quantum量子引擎上线以来，已经推出了许多出色的游戏，但这仅仅是开始。Quantum量子引擎现在甚至还支持回合制游戏，我们的第一批客户成功开发了3D和VR / AR磁贴/应用程序。我们很高兴Photon Quantum获得了2020年Pocket Gamer的最佳GaaS和工具奖。</li></ul>



<p> 我们的团队正在努力开发Quantum量子引擎的下一个版本：2，计划于2020年第一季度发布Alpha。我们将继续创新，并将取得重大改进：</p>



<ul class="wp-block-list"><li> 重构的ECS</li><li> 动态实体分配和对Native Lists&lt;T&gt;和字典&lt;K,T&gt;的支持</li><li> 并行任务系统和任务分析器</li><li> 新的2D物理引擎（性能提高多达5倍）</li><li> 以及更多 …</li></ul>



<p> 欢迎拥有出色战绩的游戏工作室和才华横溢的独立团队参加免费的<a href="/photonquantum" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Quantum量子引擎</a>试用。</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="600" height="220" src="https://vibrantlink.com/wp-content/uploads/2019/12/af314b412232573e76d6f1c855f228cf8c776572b9b0232936577dbbae4e11dcc3d7c73d9c7316a041752e477ffd984147871d1b3e59549e20789dae9e41093d.jpg" alt="" class="wp-image-569" srcset="https://vibrantlink.com/wp-content/uploads/2019/12/af314b412232573e76d6f1c855f228cf8c776572b9b0232936577dbbae4e11dcc3d7c73d9c7316a041752e477ffd984147871d1b3e59549e20789dae9e41093d.jpg 600w, https://vibrantlink.com/wp-content/uploads/2019/12/af314b412232573e76d6f1c855f228cf8c776572b9b0232936577dbbae4e11dcc3d7c73d9c7316a041752e477ffd984147871d1b3e59549e20789dae9e41093d-300x110.jpg 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></figure></div>



<p>像整个游戏行业一样，我们对Apple Arcade感到兴奋，并且为“ Lego Brawls”（主要游戏之一）由Photon提供支持而感到自豪。<br> Red Games的Lego Brawls充满了超流畅的动画和高速的多人游戏动作。 </p>



<p>祝您玩得开心！</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="600" height="220" src="https://vibrantlink.com/wp-content/uploads/2019/12/70e40b0cf4792915d8198866698a41d4eb0af4ae734a1201fbe4034423a5cf3b4c7380a48258947628f7b3950c58585bb1f10ce7a82d75c773897447d8c9c3cc.jpg" alt="" class="wp-image-570" srcset="https://vibrantlink.com/wp-content/uploads/2019/12/70e40b0cf4792915d8198866698a41d4eb0af4ae734a1201fbe4034423a5cf3b4c7380a48258947628f7b3950c58585bb1f10ce7a82d75c773897447d8c9c3cc.jpg 600w, https://vibrantlink.com/wp-content/uploads/2019/12/70e40b0cf4792915d8198866698a41d4eb0af4ae734a1201fbe4034423a5cf3b4c7380a48258947628f7b3950c58585bb1f10ce7a82d75c773897447d8c9c3cc-300x110.jpg 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></figure></div>



<p>工业光子-SpaceHub</p>



<p>SpaceHub是用于虚拟会议，协作，课堂培训或任何自定义沉浸式场景的协作平台和框架。<br> &nbsp;<br>该框架在C＃/ Unity中构建，并且可以完全自定义。 内置具有手控，虚拟语音，网络物理等功能的虚拟现实实现和其他功能，可为您自己的沉浸式项目提供快速入门。<br> </p>The post <a href="https://vibrantlink.com/photon-2020/">Photon光子引擎 2020</a> first appeared on <a href="https://vibrantlink.com">光子引擎photonengine中文站</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">566</post-id>	</item>
		<item>
		<title>如何在PUN中设置中国区域</title>
		<link>https://vibrantlink.com/chinacloudpun/</link>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Sun, 11 Feb 2018 04:10:56 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<guid isPermaLink="false">https://vibrantlink.com/?p=366</guid>

					<description><![CDATA[<p>此说明适用于PUN V2版本，如希望使用V1 版本，请查看这里。 关于如何从PUN V1转移到V2，可以查阅这 [&#8230;]</p>
The post <a href="https://vibrantlink.com/chinacloudpun/">如何在PUN中设置中国区域</a> first appeared on <a href="https://vibrantlink.com">光子引擎photonengine中文站</a>.]]></description>
										<content:encoded><![CDATA[<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>此说明适用于PUN V2版本，如希望使用V1 版本，请查看<a href="#punv1">这里</a>。</p><p>关于如何从PUN V1转移到V2，可以查阅<a href="https://doc.photonengine.com/en-us/pun/v2/getting-started/migration-notes" target="_blank" rel="noreferrer noopener">这篇文档</a>。</p></blockquote>



<p></p>



<h2 class="wp-block-heading">光子云区域</h2>



<p><span class="notranslate">Photon Cloud光子云为您提供全球链路，让全球的低延迟游戏成为可能。</span></p>



<p>客户端的初始连接转到Photon名称服务器，该服务器提供可用区域的列表。 通常，客户端在启用“最佳区域”（Best Region）选择的情况下进行连接，这个选项将检测具有最低ping的区域并连接到该区域（请参见下文）。 </p>



<p>每个区域完全彼此分开，并由一个<strong>主服务器</strong>（用于配对）和<strong>游戏服务器</strong>（支持房间）组成。</p>



<div class="wp-block-image wp-image-367 size-full"><figure class="aligncenter"><img loading="lazy" decoding="async" width="660" height="289" src="https://vibrantlink.com/wp-content/uploads/2018/02/photon-cloud-connect-name-server.png" alt="连接到光子云区域" class="wp-image-367" srcset="https://vibrantlink.com/wp-content/uploads/2018/02/photon-cloud-connect-name-server.png 660w, https://vibrantlink.com/wp-content/uploads/2018/02/photon-cloud-connect-name-server-300x131.png 300w" sizes="auto, (max-width: 660px) 100vw, 660px" /><figcaption>连接到光子云区域</figcaption></figure></div>



<p>可用区域的完整列表<a href="#regions">如下</a>。 在您账号的<a href="https://dashboard.photonengine.com/zh-CN" target="_blank" rel="noreferrer noopener">仪表板</a>中，您可以定义客户端可以使用的区域。</p>



<h2 class="wp-block-heading">&nbsp;最佳区域的选择</h2>



<p>PUN和Photon Voice依靠Realtime API层来选择最佳区域。</p>



<h3 class="wp-block-heading">C# Realtime API</h3>



<p>Photon Realtime可以检测出最佳连接区域，并使您能够持续使用该区域。</p>



<p>为了做到这一点，客户端总是在连接时从名称服务器（Name Server）上获取可用区域的列表。这是用来获取最新的区域列表，并检查之前保存的最佳区域（如果有的话）是否仍然可用。</p>



<p>ping服务器后，结果被总结为一个字符串，应保存在设备上供以后使用。该字符串包括当前的最佳区域、其ping值和当前的区域列表。</p>



<p>如果没有以前的结果，所有区域都会被ping，这需要多花一些时间。如果有以前的结果，客户端将检查。</p>



<ul class="wp-block-list"><li>1. 区域列表是否改变（包括 &#8220;以前保存的最佳区域 &#8220;仍然可用的情况）。</li><li>2. 如果ping返回值不再是可接受的（&gt;=1.5倍于先前保存的参考值的速度）。</li></ul>



<p>如果这两种情况发生，则所有地区都会被ping，并挑选出一个新的结果。</p>



<p>这种方式与控制面板中的<strong>服务器端区域过滤器</strong>配合得良好。它使你能够根据需要改变玩家可用的地区列表。</p>



<p>要访问地区列表或覆盖以前的结果，请参考区域相关API。</p>



<h3 class="wp-block-heading">PUN</h3>



<p>当你使用<code>PhotonNetwork.ConnectUsingSettings()</code>时，&#8221;最佳区域 &#8220;选择是默认进行的。</p>



<p>除了自动将结果保存在玩家的首选项中，此工作流程与实时API中的相同。</p>



<p>最佳区域是 &#8220;粘性 &#8220;的。这意味着客户端通常会在较长的时间内使用一个区域。在随后的启动中，它将再次ping这个区域。PUN使用Unity的PlayerPrefs自动存储最佳区域的摘要。</p>



<p>为了方便和调试的需要，当前的 &#8220;最佳区域 &#8220;和它的ping值被暴露在Unity编辑器的PhotonServerSettings中。然而，这只对Unity编辑器的Play模式有效，所以与Unity Editor运行在同一台机器上的的Build可能会有<strong>不同</strong>的最佳区域。</p>



<h3 class="wp-block-heading">最佳区域的考量</h3>



<p>&#8220;最佳区域 &#8220;选项<strong>并不是</strong>决定性的。由于小的变化或完全相同的ping值，有时它可能是 &#8220;随机 &#8220;的。</p>



<p>理论上说，你可能遇到：</p>



<ul class="wp-block-list"><li>从同一台设备上对多个区域有完全相同的ping值。所以最佳区域结果是随机的，就算网络情况未改变，但连接到了不同的区域。</li><li>连接到同一网络的不同设备（或同一设备的不同次重试）对同一地区产生了不同的ping值。</li></ul>



<p>例如，在 &#8220;us &#8220;和 &#8220;usw&#8221;（或 &#8220;ru &#8220;和 &#8220;rue&#8221;）的情况下，你可以利用<strong>在线区域白名单</strong>来选择你想要的区域并放弃其他区域，或者直接连接到一个明确的区域。</p>



<h3 class="wp-block-heading">开发区域（Development Region)</h3>



<p>从PUN v2.17开始，增加了一个新的功能，叫做 &#8220;开发区域&#8221;。这是PhotonServerSettings中的一个新设置。有了这个设置，所有的开发构建(Builds)将使用相同的区域，避免了 &#8220;最佳区域 &#8220;选择带来的初始匹配问题。当PhotonServerSettings被创建，并且当Unity Editor中的(PlayMode)首次运行中“Dev Region&#8221;被设置，&#8221;开发构建 &#8220;会自动启用。</p>



<p>当你使用<code>PhotonNetwork.ConnectUsingSettings()</code>进行连接时，&#8221;开发区域 &#8220;只在Unity Editor和 &#8220;开发(Development)&#8221;构建中被使用。你也可以通过删除该值，在Unity编辑器和 &#8220;Development Build &#8220;中禁用&#8221;Dev Region&#8221;。</p>



<p>所以为了避免开发阶段的最佳区域选择问题，请确保更新到最新的PUN 2版本。在Unity编辑器中运行一次（进入PlayMode并连接）。你可以通过任何一个演示场景中这样做。这个来自Unity编辑器的第一次连接将设置 &#8220;开发区域&#8221;，此设置可以从PhotonServerSettings检查器中看到。一旦完成，你就可以从设备上进行构建(Build)和测试，只需运行一次，就可以保留设置进行新的构建。</p>



<p>同时，你会注意到 &#8220;Development Build &#8220;现在已经在Build Settings中启用，建议在开发期间保持这个选项。这样，所有的客户端（Unity编辑器和构建Builds）将连接到同一个 &#8220;开发区域&#8221;。</p>



<p>请留意在进入生产阶段之前，不要忘记<strong>禁用</strong>开发构建。</p>



<p>注意：如果一个客户端从开发构建或从Unity编辑器连接，另一个从非开发构建连接，他们可能连接到两个<strong>不同的区域</strong>。</p>



<h2 class="wp-block-heading" id="regions">可用区域</h2>



<p>Photon Cloud在多个国家及地区都有服务器，分布在全球多个托管中心。</p>



<p>每个Photon Cloud区域由“region token”标识。</p>



<p>要连接到特定区域，请在AppSettings下PhotonServerSettings中，将其代码设置为“Fixed Region”。 如果要使用<code>PhotonNetwork.ConnectToRegion</code>，则需要手动配置网络客户端（主要是AppId和AppVersion），在这种情况下将不使用PhotonServerSettings。</p>



<p class="has-pale-cyan-blue-background-color has-text-color has-background" style="color:#025688">区域标记（或代码）的字符串不区分大小写。 比如：“ EU”或“ eu”都被接受并且指的是同一欧洲地区。</p>



<p>可用区域和标记列表：</p>



<figure class="wp-block-table is-style-stripes"><table><thead><tr><th>区域</th><th>位置</th><th>Token</th></tr></thead><tbody><tr><td>亚洲</td><td>Singapore</td><td>asia</td></tr><tr><td>澳大利亚</td><td>Melbourne</td><td>au</td></tr><tr><td>加拿大，东</td><td>Montreal</td><td>cae</td></tr><tr><td>中国<sup>1</sup>&nbsp;</td><td>Shanghai</td><td>cn</td></tr><tr><td>欧洲</td><td>Amsterdam</td><td>eu</td></tr><tr><td>印度</td><td>Chennai</td><td>in</td></tr><tr><td>日本</td><td>Tokyo</td><td>jp</td></tr><tr><td>俄罗斯</td><td>Moscow</td><td>ru</td></tr><tr><td>俄罗斯，东</td><td>Khabarovsk</td><td>rue</td></tr><tr><td>南非</td><td>Johannesburg</td><td>za</td></tr><tr><td>南美</td><td>Sao Paulo</td><td>sa</td></tr><tr><td>韩国</td><td>Seoul</td><td>kr</td></tr><tr><td>土耳其</td><td>Istanbul</td><td>tr</td></tr><tr><td>美国，东</td><td>Washington D.C.</td><td>us</td></tr><tr><td>美国，西</td><td>San José</td><td>usw</td></tr></tbody></table><figcaption><sup>1</sup>:中国区域需要单独的AppId和订阅。</figcaption></figure>



<p></p>



<h3 class="wp-block-heading" id="dashboard_regions_filtering"><span class="notranslate">仪表板区域过滤</span></h3>



<p><span class="notranslate">您可以运行情况下直接从仪表板（Dashboard）过滤每个应用程序的可用Photon Cloud区域列表。</span></p>



<div class="wp-block-image size-full wp-image-368"><figure class="aligncenter"><img loading="lazy" decoding="async" width="724" height="459" src="https://vibrantlink.com/wp-content/uploads/2018/02/regions_dashboard_filtering.png" alt="过滤光子云区域" class="wp-image-368" srcset="https://vibrantlink.com/wp-content/uploads/2018/02/regions_dashboard_filtering.png 724w, https://vibrantlink.com/wp-content/uploads/2018/02/regions_dashboard_filtering-300x190.png 300w" sizes="auto, (max-width: 724px) 100vw, 724px" /><figcaption>过滤光子云区域</figcaption></figure></div>



<p><span class="notranslate">转到仪表板，然后单击“管理”选定的应用程序，然后单击“编辑”。</span>&nbsp;<span class="notranslate">您将会看到一个输入字段，您可以在其中输入白名单区域列表，如下所示：</span></p>



<ul class="wp-block-list"><li><span class="notranslate">允许的列表应该是由分号分隔的区域令牌的字符串。</span>&nbsp;<span class="notranslate">例如“eu; us”。</span></li><li><span class="notranslate">区域令牌不区分大小写，并在此文上方所定义。</span></li><li><span class="notranslate">未定义或无法识别的区域标记将从列表中被忽略。</span></li><li><span class="notranslate">空（“”）或格式不正确的字符串（例如“;;;”）表示空列表。</span></li><li><span class="notranslate">空列表意味着所有可用区域都是允许的。</span></li></ul>



<p><span class="notranslate">一旦确认并保存，操作<code>GetRegions</code>将只返回已过滤的区域列表。</span>&nbsp;<span class="notranslate">因此，客户端应该从列表中选择。</span>&nbsp;请注意<span class="notranslate">考虑仪表板更新可能需要10分钟或以上。</span></p>



<h2 class="wp-block-heading" id="howtochoose">怎样选择一个区域</h2>



<p>一般来说，如果连接到光子云某个地区，当地区域的用户拥有最低的延时。</p>



<p>但是如果你有来自<strong>世界各地</strong>的用户呢？</p>



<p>你可以：</p>



<ul class="wp-block-list"><li>a) 让游戏客户端对不同的光子云区域进行ping，并预先选择一个有最佳ping返回的区域，请使用本文所提到的方法。</li><li>b) 将客户端的构建(Builds)分配给一个地区，让不同地区的用户连接到不同的光子云地区，或：</li><li>c) 让用户自行在你的游戏界面中选择一个匹配的区域。</li></ul>



<p>另外，如果你的游戏可以接受较高的延迟，你可以让所有用户连接到同一个区域，例如任何 &#8220;非实时&#8221;类型游戏。</p>



<p>所有的Photon Cloud应用程序都可以在所有可用的地区工作，不需要任何额外的费用。但不同区域可能价格不同，国内区域的价格请查看<a href="https://vibrantlink.com/photoncloud/" target="_blank" rel="noreferrer noopener">这里</a>。</p>



<p>通过Photon Cloud的仪表盘，您可以监控您的游戏在各个地区的使用情况。如果要升级或降级您的订阅计划，请<a href="https://vibrantlink.com/contact/" target="_blank" rel="noreferrer noopener">联系我们</a>。</p>



<h2 class="wp-block-heading" id="using_the_chinese_mainland_region"><span class="notranslate">使用中国地区</span></h2>



<p class="has-pale-cyan-blue-background-color has-text-color has-background" style="color:#025688">首先，您需要一个<strong>不同与</strong>其他区域的appID，然后通过我们的<a href="https://vibrantlink.com/chinacloudapply/" target="_blank" rel="noreferrer noopener">在线表单</a>提交您的信息，以便我们可以为您的AppID解锁国内区域。</p>



<p class="has-pale-cyan-blue-background-color has-text-color has-background" style="color:#025688">其次，国内区域的appid将无法直接从仪表盘（dashboard）中进行进行直接的进行付费升级，如果您需要升级您的国内区域AppID，请通过<a href="https://vibrantlink.com/contact/" target="_blank" rel="noreferrer noopener">联系我们</a>页面联系客服为您处理。</p>



<p><span class="notranslate">为了稳定和可靠的链接，名称服务器(NameServer)架设在本地，否则连接很可能无法稳定。</span>&nbsp;国内的NameServer<span class="notranslate">是“ns.photonengine.cn”。</span></p>



<p><span class="notranslate">与来自中国大陆以外的客户端通讯很可能不会产生好的结果。</span>&nbsp;<span class="notranslate">此外，从光子服务器连接到中国大陆以外的服务器（例如，自定义身份验证，WebHooks，WebRPC）可能并不可靠。</span></p>



<p class="has-luminous-vivid-amber-background-color has-text-color has-background" style="color:#5e4500">重要提示：在目前阶段，您通过信息中心对应用进行的更改不会自动反映在中国的应用缓存中。如果您有更新请求，请通过<a href="mailto:developer@photonengine.com" target="_blank" rel="noreferrer noopener">电子邮件</a>通知我们。</p>



<p><span class="notranslate">同样出于法律原因，您需要为中国单独构建AppId，我们建议使用单独的AppId。</span>&nbsp;<span class="notranslate">例如，使用条件编译（您选择的）来根据根据条件更改您所需要的AppId和Photon NameServer。</span></p>



<p><span class="notranslate">按照这些说明为中国市场打造特别版本：</span></p>



<h3 class="wp-block-heading">PUN V2</h3>



<h4 class="wp-block-heading">使用 PhotonServerSettings</h4>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="777" height="642" src="https://vibrantlink.com/wp-content/uploads/2022/01/ChinaRegionInstructions.jpg" alt="" class="wp-image-671" srcset="https://vibrantlink.com/wp-content/uploads/2022/01/ChinaRegionInstructions.jpg 777w, https://vibrantlink.com/wp-content/uploads/2022/01/ChinaRegionInstructions-300x248.jpg 300w, https://vibrantlink.com/wp-content/uploads/2022/01/ChinaRegionInstructions-768x635.jpg 768w" sizes="auto, (max-width: 777px) 100vw, 777px" /></figure></div>



<h4 class="wp-block-heading">使用代码</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="dracula" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">void ConnectToChina()
{
    PhotonNetwork.PhotonServerSettings.AppSettings.FixedRegion = "cn";
    PhotonNetwork.PhotonServerSettings.AppSettings.UseNameServer = true;
    PhotonNetwork.PhotonServerSettings.AppSettings.AppIdRealtime = "ChinaPUNAppId"; // 替换为您自己的国内区appID
    PhotonNetwork.PhotonServerSettings.AppSettings.Server = "ns.photonengine.cn";
    PhotonNetwork.ConnectUsingSettings();
}</pre>



<h3 class="wp-block-heading" id="punv1">PUN V1</h3>



<p class="has-luminous-vivid-amber-background-color has-text-color has-background" style="color:#5e4500">PUN Classic（也叫PUN1）是PUN的最初和第一个主要版本。它现在已经被PUN2所取代，PUN2经过了重构和增强。我们强烈建议用PUN2开始新的项目，如果可能的话，按照我们的 &#8220;迁移说明&#8221;将现有项目从PUN1迁移到PUN2。PUN Classic将在未来几个月内得到维护。我们将修复重要的错误并支持新的Unity版本，但新的功能将只添加到PUN2。</p>



<h4 class="wp-block-heading">设置区域</h4>



<p class="has-pale-cyan-blue-background-color has-text-color has-background" style="color:#025688"><code>ConnectToBestCloudServer(string gameVersion) </code>将你的客户端连接到ping值最低的主服务器。ping所有光子云主服务器的结果会保存在PlayerPrefs中。</p>



<p class="has-pale-cyan-blue-background-color has-text-color has-background" style="color:#025688">使用<code>OverrideBestCloudServer(CloudRegionCode region)</code>来明确设置另一个区域为 &#8220;最佳 &#8220;区域。</p>



<p>你可以在编辑PhotonServerSettings的过程中设置该区域。连接到一个区域就像调用<code>PhotonNetwork.ConnectUsingSettings()</code>一样容易。</p>



<p>关于使用PUN的其他设置信息，请参考初始设置文档。</p>



<h3 class="wp-block-heading">可用区域</h3>



<p>要在客户端的 &#8220;连接&#8221;方法中传递区域令牌，请调用<code>PhotonNetwork.ConnectToRegionMaster(regionCode, gameVersion)</code>。</p>



<p>区域选项请参阅<a href="#regions">区域列表</a>。</p>



<h3 class="wp-block-heading">仪表板区域过滤</h3>



<p>请参阅<a href="#dashboard_regions_filtering">上文</a>。</p>



<p>同时请参考<a href="#howtochoose">如何选择区域</a>，选择<a href="#using_the_chinese_mainland_region">国内区域</a>。</p>



<h3 class="wp-block-heading">PUN Classic</h3>



<ul class="wp-block-list"><li>将AppId设置为已解锁中国地区的应用程序。如果你想使用同一个项目并有不同的构建(Builds)，你可以这样做:</li></ul>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="dracula" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">void Awake()
{
//  请根据实际情况进行修改
#if CHINA
    PhotonNetwork.PhotonServerSettings.AppID = "ChinaPUNAppId"; // TODO: replace with your own AppId
#else
    PhotonNetwork.PhotonServerSettings.AppID = "nonChinaPUNAppId"; // TODO: replace with your own AppId
#endif
}</pre>



<ul class="wp-block-list"><li>打开 &#8220;NetworkingPeer.cs&#8221;文件，设置<code>NameServerHost</code>为 &#8220;ns.photonengine.cn&#8221;。</li></ul>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="dracula" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">// 请根据实际情况进行修改
#if CHINA
    public const string NameServerHost = "ns.photonengine.cn";
#else
    public const string NameServerHost = "ns.exitgames.com";
#endif</pre>



<ul class="wp-block-list"><li>更新<code>CloudRegionCode</code>和<code>CloudRegionFlag</code>枚举，增加新的 &#8220;CN&#8221;（或 &#8220;cn&#8221;）区域标记，如下所示:</li></ul>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="dracula" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">public enum CloudRegionCode
{
    // ...
// 请根据实际情况进行修改
#if CHINA
    ///&lt;summary>Chinese Mainland, Guang Dong area, cn&lt;/summary>
    cn = 13,
#endif
};
[Flags]
public enum CloudRegionFlag
{
    // ...
// 请根据实际情况进行修改
#if CHINA
    cn = 1 &lt;&lt; 12,
#endif
};</pre>



<ul class="wp-block-list"><li>使用<code>PhotonNetwork.ConnectToRegion(CloudRegionCode.cn, gameVersion)</code>连接到中国区域。</li></ul>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="dracula" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">// 请根据实际情况进行修改
#if CHINA
    PhotonNetwork.ConnectToRegion(CloudRegionCode.cn, gameVersion);
#else
    // 请根据实际情况进行修改
#endif</pre>



<p>如需了解光子中国区云服务，请查看<a href="https://vibrantlink.com/photoncloud/" target="_blank" rel="noopener noreferrer">国内光子云介绍</a>。</p>The post <a href="https://vibrantlink.com/chinacloudpun/">如何在PUN中设置中国区域</a> first appeared on <a href="https://vibrantlink.com">光子引擎photonengine中文站</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">366</post-id>	</item>
		<item>
		<title>光子云还是光子服务器？</title>
		<link>https://vibrantlink.com/cloudorserver/</link>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Fri, 05 Jan 2018 03:00:59 +0000</pubDate>
				<category><![CDATA[5min]]></category>
		<category><![CDATA[Blog]]></category>
		<guid isPermaLink="false">http://vibrantlink.com/?p=355</guid>

					<description><![CDATA[<p>Photon Cloud是一个完全托管的软件即服务（SaaS）解决方案。 您可以完全专注于您的应用程序客户端， [&#8230;]</p>
The post <a href="https://vibrantlink.com/cloudorserver/">光子云还是光子服务器？</a> first appeared on <a href="https://vibrantlink.com">光子引擎photonengine中文站</a>.]]></description>
										<content:encoded><![CDATA[<p><strong>Photon Cloud</strong>是一个完全托管的软件即服务（SaaS）解决方案。 您可以完全专注于您的应用程序客户端，而机房托管，服务器操作和调整都由光子公司负责。</p>
<p><strong>Photon Server</strong>是一个您自己运行和维护的本地服务器应用程序，您可以在您选择的机器（包括各类云服务器和虚拟机）上运行和托管。 所以其是您完全可定制的，且完整的用户认证机制能让你的自由配置和设置你自己的多人游戏服务器端。</p>
<p><strong>Photon Cloud</strong>是在运行在<strong>Photon Server</strong>上的。</p>
<p><figure id="attachment_622" aria-describedby="caption-attachment-622" style="width: 580px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-622" src="https://vibrantlink.com/wp-content/uploads/2018/01/photon-product-software-layers_new.jpg" alt="光子服务器光子云构架" width="580" height="426" srcset="https://vibrantlink.com/wp-content/uploads/2018/01/photon-product-software-layers_new.jpg 580w, https://vibrantlink.com/wp-content/uploads/2018/01/photon-product-software-layers_new-300x220.jpg 300w" sizes="auto, (max-width: 580px) 100vw, 580px" /><figcaption id="caption-attachment-622" class="wp-caption-text">光子服务器光子云构架</figcaption></figure></p>
<p>&nbsp;</p>
<p>光子云(Photon Cloud)运行在光子服务器(Photon Server)上。<br />
Photon Realtime，Photon Chat都是在光子云(Photon Cloud)中运行的应用程序。<br />
Photon Unity Networking（又名PUN）是Unity 3D客户端插件，与Unity Networking兼容的API，连接Photon Realtime。</p>
<table class="table table-striped">
<thead>
<tr>
<th width="16%"></th>
<th style="text-align: center;" width="42%"><span class="notranslate">光子云</span></th>
<th style="text-align: center;" width="42%"><span class="notranslate">光子服务器</span></th>
</tr>
</thead>
<tbody>
<tr>
<td class="strong"><span class="notranslate">服务器管理</span></td>
<td>再没有管理服务器的杂乱，您只需专注于游戏性和创意<span class="notranslate">，而我们的专家负责顺畅运行服务器的问题。</span></td>
<td><span class="notranslate">您可以获得为应用程序运行Photon的全部权限。在</span><span class="notranslate">自己的服务器或租用的服务器或云上运行，需确保它们是状态良好的。</span></p>
<p><span class="notranslate">Photon的日志和性能计数器提供关于性能和稳定性的所有必要信息。</span></td>
</tr>
<tr>
<td class="strong"><span class="notranslate">可扩展性</span></td>
<td><span class="notranslate">Photon Cloud会自动扩展以适应您的用户。</span><br />
<span class="notranslate">使用我们的SDK，您的客户端应用程序将获得高效的负载平衡工作流。</span></td>
<td><span class="notranslate">启用我们在源码中的负载平衡，</span><span class="notranslate">它是您中大型应用跨多个服务器扩展的坚实基础。</span><br />
<span class="notranslate">需要留意的是为您正扩展的客户数量而添加正确数量的服务器。</span></td>
</tr>
<tr>
<td class="strong"><span class="notranslate">游戏逻辑</span></td>
<td><span class="notranslate">通过Photon Realtime ， Photon Chat和PUN，您将获得目前所有多人游戏类型的解决方案。</span> <span class="notranslate">每个<a href="http://vibrantlink.com/resource-links/" target="_blank" rel="noopener">可供免费下载的客户端SDK</a>包含多个源代码示例，让您开始真正快速地将Photons API用于同步和异步游戏，及应用程序中。</span></td>
<td><span class="notranslate">服务器的逻辑可以在C＃中完全自定义。</span> <span class="notranslate">在<a href="http://vibrantlink.com/5minsphotonserver/">免费的服务器SDK中</a>提供了多个演示应用程序的源代码，并为您的应用程序提供了高性能的现成框架。</span> <span class="notranslate">受益于我们的协议和抽象的低级功能，您不会错过任何重要功能。</span></td>
</tr>
<tr>
<td class="strong"><span class="notranslate">立即开始</span></td>
<td><span class="notranslate">Photon Cloud让您注册并立即运行您的应用程序。</span><span class="notranslate">无需设置。无需使用自己的</span><span class="notranslate">服务器。</span></td>
<td><span class="notranslate">下载后， <a href="/5minsphotonserver" target="_blank" rel="noopener">在5分钟内启动您的Photon服务器</a> 。</span><span class="notranslate">Photon非常容易设置，并在本地和远程部署都运行良好。</span></td>
</tr>
<tr>
<td class="strong"><span class="notranslate">许可</span></td>
<td><span class="notranslate">选择各种订阅方案，匹配您的每月活跃用户数量。</span><br />
<span class="notranslate">无论您是独立，创业或AAA工作室，您都会找到一个匹配的计划。</span> <span class="notranslate"><a href="http://vibrantlink.com/photoncloud/" target="_blank" rel="noopener">Photon Realtime拥有最多20 CCU的免费计划。</a></span></td>
<td><span class="notranslate">许可作为一次性购买或订阅提供，并作为下载提供。</span><br />
<span class="notranslate">使用企业许可证可托管任意数量的服务器和应用程序。</span> <span class="notranslate"><a href="http://vibrantlink.com/photonserver/" target="_blank" rel="noopener">Photon Server需要有效的许可证才能运行。</a></span></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h3>光子服务器PhotonServer v5</h3>
<table class="table table-centered">
<thead>
<tr>
<th class="empty"></th>
<th>Photon Cloud 光子云</th>
<th>Photon Server 光子服务器</th>
</tr>
</thead>
<tbody>
<tr>
<th class="crossheading" style="text-align: center;" colspan="3">特征</th>
</tr>
<tr>
<th>虚拟应用</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">X</td>
</tr>
<tr>
<th>Name Server</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">O</td>
</tr>
<tr>
<th class="crossheading" colspan="3">支持的光子产品</th>
</tr>
<tr>
<th>Realtime</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">O</td>
</tr>
<tr>
<th>PUN</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">O</td>
</tr>
<tr>
<th>Chat</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">X</td>
</tr>
<tr>
<th>Voice</th>
<td style="text-align: center;">O(非cn区域)</td>
<td style="text-align: center;">O</td>
</tr>
<tr>
<th style="text-align: center;">Bolt</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">X</td>
</tr>
<tr>
<th class="crossheading" style="text-align: center;" colspan="3">验证方式</th>
</tr>
<tr>
<th>自定义</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">O</td>
</tr>
<tr>
<th>Facebook</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">O</td>
</tr>
<tr>
<th>Oculus</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">X</td>
</tr>
<tr>
<th>Steam</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">O</td>
</tr>
<tr>
<th>Xbox</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">X</td>
</tr>
<tr>
<th>PlayStation</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">X</td>
</tr>
<tr>
<th>Nintendo</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">X</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h3>光子服务器PhotonServer v4</h3>
<table class="table table-centered">
<thead>
<tr>
<th class="empty"></th>
<th>Photon Cloud 光子云</th>
<th>Photon Server 光子服务器</th>
</tr>
</thead>
<tbody>
<tr>
<th class="crossheading" style="text-align: center;" colspan="3">特征</th>
</tr>
<tr>
<th>虚拟应用</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">X</td>
</tr>
<tr>
<th>Name Server</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">X</td>
</tr>
<tr>
<th class="crossheading" colspan="3">支持的光子产品</th>
</tr>
<tr>
<th>Realtime</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">O</td>
</tr>
<tr>
<th>PUN</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">O</td>
</tr>
<tr>
<th>Chat</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">X</td>
</tr>
<tr>
<th>Voice</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">O</td>
</tr>
<tr>
<th style="text-align: left;">Bolt</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">X</td>
</tr>
<tr>
<th class="crossheading" style="text-align: center;" colspan="3">验证方式</th>
</tr>
<tr>
<th>自定义</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">O</td>
</tr>
<tr>
<th>Facebook</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">X</td>
</tr>
<tr>
<th>Oculus</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">X</td>
</tr>
<tr>
<th>Steam</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">X</td>
</tr>
<tr>
<th>Xbox</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">X</td>
</tr>
<tr>
<th>PlayStation</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">X</td>
</tr>
<tr>
<th>Nintendo</th>
<td style="text-align: center;">O</td>
<td style="text-align: center;">X</td>
</tr>
</tbody>
</table>
<h4><span class="">自V4.0.29.11263起的重要更改</span></h4>
<p>Photon Cloud会不断更新，包括修补程序，增强功能或新功能。尽管我们尝试发布Photon Server SDK的新版本以赶上Photon Cloud，但两者无法始终保持同步。</p>
<p>在这里，我们列出了自Photon Server SDK的最新公共版本v4.0.29.11263以来Photon Cloud中的重要更改。此外，如果您同时定位在Photon Cloud和Photon Server环境同时开发，或者准备从一个环境切换到另一个环境，此列表将列出一些功能之不同，其在另外的环境中无法正常运行。同时，您可能还会找到响应的解决方法或建议。</p>
<h4><span class="">V4.0.29.11263中缺少的光子云功能</span></h4>
<ul>
<li>创建房间后，便无法更改PlayerTTL和EmptyRoomTTL。它们后来被添加为众所周知的房间属性。</li>
<li>“Delete Null Properties”选项不可用. (<code>RoomOptions.DeleteNullProperties</code>).具有空值的属性将不会被服务器删除。</li>
<li>“Broadcast Properties Change”选项不可用（<code>RoomOptions.BroadcastPropsChangeToAll</code>）。除非使用CAS，否则调用SetProperties的客户端将不会收到PropertiesChange事件。CAS是可以在Photon Cloud和Photon Server之间具有一致的行为一种解决方案。</li>
<li>SQL Lobby中的GetGameList操作（也称为“ GetCustomRoomList”或“ GetRoomList”，不要与<a href="https://doc.photonengine.com/en-us/realtime/current/gameplay/web-extensions/webrpc#getgamelist" target="_blank" rel="noopener">GetGameList WebRPC</a>或<a href="https://doc-api.photonengine.com/en/pun/v1/class_photon_network.html#aeef2085375accb7d4bc88e60cbe15eb9" target="_blank" rel="noopener">PUN Classic的GetRoomList</a>混淆）不可用。</li>
</ul>
<h4>V4.0.29.11263中的已知问题</h4>
<ul>
<li>如果客户端或身份验证未设置，则服务器不会返回UserId。该值将是在服务器上生成的GUID。这可能导致玩家无法加入房间，并产生错误代码-2（错误消息：&#8221;Join failed: UserId is not set, checkUserIdOnJoin=true expects a UserId.&#8221;）。作为解决方法，如果用户未明确设置，客户端C＃SDK现在会将GUID发送为UserId。</li>
<li>另外，在身份验证期间，如果身份验证提供方未设置昵称，则服务器将返回空昵称，该昵称将覆盖客户端上以前设置的任意值。作为解决方法，您可以在连接后设置一个昵称。此值将在房间内使用，且以后可以更改（包括同步）。</li>
<li>服务器不支持序列化协议版本1.8。如果尝试从客户端SDK的相对较新版本（其默认为1.8）连接到自托管的Photon Server，则连接将失败。在C＃SDK中，客户端将与断开连接<code>DisconnectByServerReasonUnknown</code>。一种解决方案是在连接之前将版本设置为1.6。设置<code>loadBalancingClient.LoadBalancingPeer.SerializationProtocolType</code>到<code>SerializationProtocol.GpBinaryV16</code>。在PUN2中，它应该是<code>PhotonNetwork.NetworkingClient.LoadBalancingPeer.SerializationProtocolType</code>。除非您使用不同于<code>PhotonNetwork.ConnectUsingSettings()</code>的方法进行连接，否则在PUN2中不需要。</li>
<li>服务器允许将同一actor添加到同一interest group多次，从而导致同一事件被actor多次发送到同一interest gruop。</li>
<li>此服务器未完全支持快速重新加入功能（<code>ReconnectAndRejoin</code>），因为其未实现会话令牌。</li>
</ul>The post <a href="https://vibrantlink.com/cloudorserver/">光子云还是光子服务器？</a> first appeared on <a href="https://vibrantlink.com">光子引擎photonengine中文站</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">355</post-id>	</item>
	</channel>
</rss>
