问题标签 [real-time-multiplayer]

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 回答
448 浏览

multiplayer - 我应该使用哪个 Gamelift 实例来同时处理 100 万玩家?

我试图了解 Gamelift 的工作原理,因为我完全是游戏开发的新手。

根据 AWS 的说法,一个 Gamelift 实例每个会话最多可以处理 200 名玩家,但也可以同时托管多个会话。

首先,我想知道,例如,一个m5.large实例可以处理 200 个玩家会话吗?

其次,哪个实例提供最大的同时/同时托管多个会话的容量?

第三,Linux和Windows实例有什么区别?我知道 Windows 实例要贵得多,但有什么优势?

谢谢

0 投票
1 回答
64 浏览

php - 多人游戏使用php空文件名?

海伊

所以我想在php上做一个多人游戏,我采用了随机生成链接的方法。

例如 skribbl.io 游戏,它会在按下“创建私人房间”后,创建一个随机链接让您的朋友加入:

所以对我来说,看起来他们有一个没有名称的 php 文件,他们提供随机字符串作为参数。但我无法制作无名 php 文件。

所以我选择的是每次用户为我的游戏点击“创建私人匹配”时,一个 php 脚本将复制一个已经存在的包含服务器端工作的 php 脚本,但将其命名为 random_string.php 就像y4aHr329sJ.php玩家会写的那样在 url 中:( mygame.com/y4aHr329sJ 由于 apache .htaccess 规则而没有 .php)

但缺点是,对于每个想要“创建私人房间”的人,我会在服务器上复制更多不必要的文件。

甚至认为我有一个脚本可以在游戏过期后删除所有过期的 random_string.php 文件(在每天开始时运行脚本并删除 1 天前的文件)

我仍然认为这会适得其反。

顺便说一句,我知道做类似的事情,mygame.com/join?random_string但我并不特别喜欢它。

另外,我不喜欢 apache .htaccess自动mygame.com/random_string变成mygame.com/join?random_string,因为有些玩家喜欢从地址栏中复制链接,而不是从“共享此链接”框中复制链接。

另外,如果有一个没有 skribbl.io 使用的问号的解决方案,我会更喜欢它skribbl.io/*?*random_string

您的帮助意义重大。提前致谢!!

0 投票
1 回答
214 浏览

firebase - 在使用 Firebase Cloud Functions 时,可以使用 set-timeout 来实现基于轮流的多人游戏计时器吗?

我正在开发一个 4 人回合制多人游戏,使用 firebase 作为后端,Unity 作为前端。我想给每个玩家 20 秒的时间来移动他的回合。否则,云函数想要为该玩家移动随机移动。这就是为什么我写了一个X 函数,并在玩家的每一个动作之后用 set-timeout 调用它。

X功能:该功能会检查玩家是否移动,如果玩家没有移动,则选择随机移动。

但是firebase云功能中的问题是超时的最大值是540秒。如果某些玩家持续不动,则需要超过 540 秒。使云功能暂停。

你能推荐一种更好的方法来管理回合制玩家的计时器吗?

0 投票
0 回答
82 浏览

java - 理解 ConcurrentSkipListMap 的操作

我一直在尝试了解如何为 Java 中的多人游戏实现客户端-服务器系统。我现在处于“和解”部分,并认为使用 aConcurrentSkipListMap可能是最好的数据结构,但我从来没有搞砸过。

我正在努力理解如何有效地使用该类:什么是Big-O操作,哪些操作对于线程访问来说是最快或更安全的,等等。

例如,这里有一段摘录:

我试图找出删除所有键低于方法输入的条目的最佳方法。客户端的网络线程和 ui 渲染线程都可以同时访问这个结构(或者至少,这是我目前所想的)。

任何见解都会有所帮助。

0 投票
0 回答
27 浏览

game-center - 游戏中心“实时比赛”因无法连接而被 App Store Review 拒绝

我做了一个“实时匹配”,玩家通过苹果游戏中心提供的匹配界面进行连接。

在玩游戏之前,您显然需要通过随机分配给玩家或通过游戏中心邀请朋友来连接到另一个玩家。

Apple 一直拒绝我的元数据,因为他们无法测试游戏的功能,因为他们无法通过 Matchmaker 屏幕(即没有他们可以玩的人)。在他们发给我的屏幕截图中,他们点击了“立即播放”来随机连接,但显然(因为游戏没有上线)他们没有连接到任何人!

我已经向他们发送了一段在我的两台设备之间运行的视频并解释了这个问题,但他们仍然拒绝它,因为他们无法测试游戏。

他们仍然需要用户名和密码才能登录和玩游戏,我无法提供,因为连接由 Game Center 和用户 AppleID 处理。

我在这里是不是目光短浅?如果他们因为没有人可玩而拒绝它,您如何通过审查获得实时比赛?

0 投票
0 回答
91 浏览

swift5 - MultiPeer Connectivity 没有快速连接 5

我正在开发一个简单的Tic Tac Toe游戏。

我正在尝试MultipeerConnectivity将两个设备连接在一起,这是我的代码:

AppDelegate

MPCHandler

MainVC

Info.plist

添加Bonjour Services_TicTacToe._tcp_TicTacToe._udp

调试时,设备相互发现,但尝试连接时,连接的设备卡在Connecting状态,另一台设备没有收到批准连接的通知。

几秒钟后,它说连接被拒绝。

可能是什么问题?

0 投票
1 回答
139 浏览

socket.io - 我可以使用仅在 Google Cloud Functions 或 Run 上运行 5 分钟的 socketio 部署迷你多人游戏服务器吗?

我需要实现 nodejs socketio 多人游戏服务器。而这些游戏服务器在被触发时只运行 5 分钟。我的主要问题是:

我可以在同一个 Google Cloud Functions 或 Google Cloud Run http 端点上使用 socketio 连接多个用户吗?如果我不能使用其他服务,我可以使用它吗?

0 投票
1 回答
391 浏览

c# - 如何使用 Unity 中的 Photon 和骰子在棋盘游戏中创建回合制经理?

我遇到的问题是,当我将玩家 2 的骰子 SetActive 设置为 False 时,玩家 1 的骰子也会消失,因为 PhotonTargets 设置为 All 以使玩家令牌一起移动。下面是我尝试它的代码。我什至需要在这里编码这个逻辑还是应该在其他地方?提前致谢

0 投票
1 回答
103 浏览

android-studio - 如何在 android studio 的多个模拟器上运行多人颤振应用程序?

如何同时在 android studio 的多个模拟器中运行多人颤振游戏应用程序?

0 投票
2 回答
481 浏览

performance - 多人游戏服务器:从客户端到服务器的通信过多

我正在制作一个具有统一性和 Colyseus 后端的多人游戏(服务器/客户端)。目前后端每秒向每个客户端发送 20 次更新。我希望每个客户端每秒也向服务器发送大约 20 条消息。这是不是太多交流了?(消息非常小,一个带有 5 个字符串字段的 JSON 对象)。

我不想构建游戏并发现它不可扩展:(。所以论文:每个客户端每秒向服务器发送一条小消息 20 次太多了吗?