问题标签 [photon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6150 浏览

c# - 光子服务器新手问题

我在 Photon Server 官方论坛上问过这个问题,但它没有这个网站那么活跃,所以可能会有人明白我在说什么,所以如果你有时间和知识,请分享一下。谢谢!

来了...

所以,我在 Photon 上有一个非常好的服务器原型和一个与服务器对话的基本 Unity3D 客户端。它是根据 cjrgaming 上的示例构建的。

客户端可以:连接,发送请求,建立和发送加密请求服务器可以:创建peer,接收操作请求,发送操作响应或事件给客户端,还有,我的小补充是:如果一个游戏有很多操作,您不必使用巨大的 switch case 语句,而是将操作划分为类别(类),并使用委托和字典来调用它们。

当我觉得它已经准备好发布时,我将发布它的工作示例,但现在,对于我的实际问题..(对不起,长篇文章,我不得不解释我所知道的以及到目前为止我所拥有的):

从客户端发送到服务器的实际操作是什么?还是服务器向客户端引发的事件(一次所有客户端?)?

起初,我认为每个操作都是游戏中特定的用户流。例如,操作码“1”,表示玩家X想射杀玩家Y,做某事。但是后来,我意识到,根据字节限制,您不能将所有游戏逻辑仅放在 255 次操作中,而不将其扩展到 short int 或其他内容。

然后我发现还有一个channelID,它在同一个操作码请求上可以不同......这对我来说意味着操作码不是用户流,而是客户端之间相同/相似动作的数据流和服务器,channelID 可用于区分要在服务器上计算的请求操作。

然后...!我意识到(哦,傻瓜),有参数从客户端发送到服务器,反之亦然在字典中,这增加了另一层可能的用户流。

所以..现在我想了解一些事情,但他们让我更加困惑。

谁能简要解释一下操作/事件/通道ID的目的?例如,如果您做一个小型多人游戏,您将使用什么来制作用户(游戏)流程,例如 -> 玩家击中目标,玩家在世界上捡起物品,玩家发送消息。您会为每个流使用唯一的操作代码,还是按含义对操作进行分组并使用通道来区分请求,或者甚至在这里,您对许多用户流使用相同的 channelID 并通过参数内部的一些 ID 来区分它们?

希望我有任何意义。

非常感谢大家,至少,如果有的话,请帮忙!

0 投票
3 回答
10756 浏览

cross-platform - Photon Server 和 Photon Cloud 有什么区别?

Photon Server 和 Photon Cloud 产品有什么区别?

0 投票
1 回答
1640 浏览

c++ - 在 Photon Cloud 上使用 Hashtable 发送数据

我正在尝试在光子云上使用 Hashtable 发送数据,我确实收到了带有正确 eventCode 的数据,但是键值对返回了一些随机数。我的代码在发送数据时是这样的:-

在接收数据时,代码是这样的:-

我在控制台上打印的是一些随机值或 int,而它应该是 21。我在这里做错了什么?

编辑:
customEventAction()我使用以下语句时:

我得到以下输出:

我搜索并发现它'i'的值EG_INTEGER意味着我发送的值被正确接收。我只是无法将其转换回int. 为什么事件代码是这样的'd'

0 投票
1 回答
777 浏览

networking - 子弹不会为其他玩家碰撞

我一直在研究火焰喷射器作为我的武器之一。它是一款平台多人在线游戏。它也与光子一起工作。我遇到了火焰问题(以及其他步枪子弹)。

火焰喷射器发射的火焰正在使用 PhotonNetwork.Instantiate 进行实例化。它们确实会与实例化它们的玩家发生碰撞,而其他玩家能够看到实例化它们和它们的运动。但是由于某种原因,实例化它们的玩家会看到他们与谁相撞并看到他们相撞,但被射击的另一个玩家不会看到火焰与自己或墙壁相撞。火焰拥有它们的碰撞和运动脚本以及一个 photonView 组件。

我该怎么做才能解决这个问题?

0 投票
1 回答
2848 浏览

network-programming - Unity 中的 AI 角色与 Photon View

我正在使用 Photon 多人游戏代码和 Rain Indy AI 在 Unity 中构建一个小游戏。在添加 AI 之前,所有游戏对象都是同步的,但新的 AI 角色似乎由每个游戏实例单独控制。

我遇到了一些与子弹类似的问题,但在这里我只是打开和关闭预制件的拍摄脚本,以实例化玩家。

让舒尔只运行一个 AI 代码实例的最佳方法是什么?我是否也需要将 AI 字符转换为预制件?

0 投票
1 回答
290 浏览

java - Actionscript Mobile 项目中的 Photon Cloud 获取 Java 编译错误


我在 Mac OSX Moutain Lion 上使用 Photon-Flash_v3-2-0-1-Beta_Cloud_SDK.zip http://doc.exitgames.com/photon-cloud/SDKflash/在 Flash Builder 4.7 和 adobe air 3.7 中构建了一个迷你游戏
完美编译:
* android 设备 (2.3 +)
* android 模拟器
* ios 模拟器 (iOS sdk 6)
* 空气模拟器

当尝试在 iPhone (3GS iOS 6.1.3) 中编译我的游戏时,我收到了这个错误:

安装的java版本可能有问题吗?还是 sdk flash photon cloud 中的 bug?

打包应用程序时出错:

打印

0 投票
1 回答
2308 浏览

c# - 在 foreach 循环中抛出 IndexOutOfRangeException

我正在使用 Photon 服务器运行多人游戏,每 100 多场游戏中一次,服务器停止响应输入 - 查看日志文件我收到以下异常:

2013-07-30 12:31:24,918 [11] ERROR Lite.Room [(null)] - System.IndexOutOfRangeException:索引超出了数组的范围。在 C:\Program Files (x86)\Photon\Photon src-server\STSServer\STSLib\Engine.cs:line 130 中的 STSLib.Engine.handleInput(Hashtable 输入,Int32 playerId)

查看我的代码,我的引擎类的第 130 行是一个 foreach 循环:

其中 player 是我用来代表(你猜对了!)游戏玩家的一个类,而 player 是一个 Player 数组。returntable,是我发送给客户端的其他数据的哈希表队列的哈希表,我只是用一个空队列实例化每个键。

在这种情况下,foreach 循环被调用,并在游戏被破坏之前多次运行——也就是说,这个异常在游戏过程中开始被抛出。

谁能解释一下 foreach 循环如何抛出索引越界异常?

0 投票
1 回答
844 浏览

windows-phone-8 - PhotonView.Get(this) 返回 null

我将 PUN 1.22 集成到我的 Unity3d wp8 项目中。它构建正确,但 PhotonView.Get(this) 返回 null。会是什么?

0 投票
1 回答
481 浏览

ios - IOS Photon Cloud SDK getRoomList 功能不起作用

我正在开发具有在线游戏模式的 cocos2d-x 游戏。Photon Cloud SDK(http://www.exitgames.com)设计和实现的在线游戏。我只实现了ios版本,但它不起作用。我实现的代码很糟糕。

无效网络逻辑::opJoinRandomRoom() {

}

无效的 NetworkLogic::update(float dt) {

}

无效网络逻辑::运行(无效){

首先我运行一个应用程序,然后 getRoomList 函数返回 0 个值。同样在创建第一个房间并运行第二个应用程序后,它也返回 getRoomList 函数 0。请帮助我。

0 投票
2 回答
227 浏览

encryption - 在光子服务器上强制加密

光子文档指出

在我们提供的应用程序框架(Lite、LoadBalancing 等)中,如果操作是加密发送的,服务器会自动响应加密。这使得通过打开加密的简单请求来获取关键数据是安全的。

可以在服务器端强制执行吗?如果调用或接收未加密的操作,那么 Photon 不会处理某些事件?