问题标签 [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 投票
2 回答
5463 浏览

security - HTML5 多人游戏安全解决方案

既然已经有几个 HTML5 中经典平台甚至 3D fps 游戏的简洁画布演示,下一步可能是尝试开发多人 HTML5 游戏。HTML5 套接字支持使得这一点相对简单,但是任何人都可以在浏览器中查看客户端源代码,对于 HTML5 前端多用户游戏的基本游戏安全功能有哪些解决方案-例如能够防止伪造高分提交

0 投票
2 回答
100 浏览

architecture - 我的应用程序的最佳网络实现是什么?

我正在为自己规划一个项目,它是一款单人和多人纸牌游戏。我想跟踪每个人的统计数据,例如世界排名等...

我的问题是我不知道客户端的最佳方法 - 服务器架构和编程。我最初的目标是用 C# 编写所有东西,因为我想精通这种语言。我最初的想法是在互联网上的某种主机上运行一个后端数据库和一个后端服务器,但是对于这样一个可能会也可能不会赚钱的小项目来说,这似乎很昂贵。

我曾尝试研究云服务,但我不熟悉这项技术,我不确定我能否让它们满足我的需求,特别是因为大多数像谷歌的云一样希望你使用我所理解的编码架构。

最后我的最后一个问题是我想要一个可以用于不同语言的架构,以便我可以将它从 PC 移植到 iPhone、Xbox 等......

那么有人对最好的架构和语言有什么建议吗?

我是否非常担心架构和后端成本,是否应该专注于让游戏以任何方式运行?

0 投票
4 回答
18016 浏览

javascript - 带有 JavaScript 后端和前端的多人游戏。最佳实践是什么?

我正在考虑在Node.js中创建一个网络多人游戏。这意味着我将在后端和前端使用相同的语言。这将是实时的,每个“房间”最多可容纳 20 人,所以我有一些想法:

  1. 如何补偿所有用户之间的延迟,以便每个人同时看到相同的东西?我正在考虑跟踪每个玩家的平均 ping 时间,找到最慢的一个,并通知其他客户端他们必须延迟每个人的时间(以毫秒为单位),以便每个人尽可能同步。

  2. 我正在考虑在后端和前端运行游戏代码(因为两端都是 JavaScript),并且只有一个纠错机制来与后端的“真实游戏”同步。这样,游戏应该在前端流畅运行,并且在同步发生时只有很少的故障。这也将最大限度地减少前端 JavaScript 黑客攻击,因为作弊者将同步到后端游戏。

  3. 我是否应该通过套接字(按键)接收玩家动作,通知所有其他客户端其他玩家的动作,同时在后端“玩”游戏,并每隔一次向整个游戏状态的每个人发送同步信息同时同步它们?

你怎么看?还有更多我应该考虑或注意的事情吗?

请发布任何想法或链接到有关多人游戏的文档或文章。


编辑:这些很有用:

0 投票
2 回答
1029 浏览

iphone - iPhone 中的多人游戏 - 概念、策略、设计?

我想为 iphone 开发一个在线多人游戏。

我开发了两个 iphone 应用程序,但它们不是游戏。

所以这是我的第一场比赛。

所以基本上我对在线多人游戏如何在 iphone 上运行一无所知。

我只是想知道有助于我理解iphone多人游戏的策略、初学者的注意事项和其他设计元素。

例如:如果有一个在线赌场游戏(不是蓝牙),所有玩家之间的连接和会话如何工作。他们如何管理回合,结果。

编辑 我也按照 Brad Larson 和 ChrisF 的建议分别提出了这些问题:

游戏将如何搜索其他在线用户并显示所有用户列表?

如何请求某人加入游戏然后对其他用户可见?

桌子的玩家之间的连接和会话将如何工作?(插座?)

作为服务器和客户端的一部分,需要什么样的网络编程?

请告诉我所有这些是如何工作的?(只是概念)

谢谢 。

0 投票
2 回答
1668 浏览

time - 将客户端时间同步到服务器时间,即使客户端应用程序独立于本地计算机时间

好的,所以情况如下。

我有一个为游戏提供服务的服务器,来自服务器的特定命令会发送一个时间戳,说明下一轮游戏应该何时开始。为了在所有连接的客户端上完美同步,我还有一个 webbservice,它返回服务器当前时间的时间戳。

我所知道的:发送请求和收到答复之间的时间。我不知道:延迟在哪里,在客户端处理或服务器处理或带宽问题上。

在这里获得合理结果的最佳做法是什么。我想 GPS 一定以某种方式解决了这个问题,但我一直无法找到一个好的模式。

我现在所做的是将请求延迟的一半添加到服务器时间戳中,但这还不够好。这可能是因为发送和接收之间的时间可能高达 11 秒。

建议?

0 投票
2 回答
6262 浏览

iphone - Web 服务器和游戏服务器有什么区别?

我想构建一个基于回合制的多人 iPhone 游戏,它需要一个游戏服务器来连接玩家并输出世界状态数据。我试图了解游戏服务器将如何工作,以便我可以开始设计和构建它。到目前为止,我只有构建 Web 应用程序的经验,所以我很自然地想设计游戏服务器以与 Web 服务器类似的方式工作,但可以吗?

我过去使用的 ASP.NET MVC Web 服务器通过客户端向服务器发送对某些网页数据的请求,服务器生成 HTML 或 XML 或 JSON 并将其以 HTTP 数据包的形式返回给客户端。对于多人游戏来说,这个过程听起来完全一样,除了客户端可能不会请求 HTML,但请求 XML 或 JSON 数据是有意义的,对吧?

所以我的问题是...

  1. 可以使用 ASP.NET MVC 编写游戏服务器并使用我设计的 RESTful API 与 Web 服务器一样工作吗?
  2. 有没有比使用包含 XML 或 JSON 数据的 HTTP 数据包更好的方法来请求和接收游戏数据?从游戏服务器返回的数据会很小。
  3. 使用 RESTful API 从 Web 服务器访问数据很有意义,但使用 RESTful API 从游戏服务器请求游戏数据没有意义,事实上,这听起来可能会导致安全问题,您的想法?
  4. 最后,谁能推荐任何好的游戏书籍,展示如何构建一个像样的游戏服务器的例子?

非常感谢您的帮助!

0 投票
1 回答
460 浏览

java - java - 多人连接

好的,所以我不是 Java 专家,但我只是为了测试我的技能而编写这个 Java 小程序游戏。到目前为止,最困难的部分是被封锁的瓷砖和进出新地图。无论如何,我目前的游戏位于http://mystikrpg.com/jrpg我知道,设计非常简单和乏味,但我计划稍后更改。它们是占位符图形。

无论如何,我想把它带到多人游戏的水平。我希望用户能够打开该浏览器并连接并查看游戏中的其他玩家,如果他们移动,地图就会更新。

我该从哪里开始学习如何做到这一点?:)

谢谢你。

0 投票
1 回答
1441 浏览

c++ - C++多人网络游戏中的OpenID认证

我计划在多人网络 C++ 游戏中使用 OpenID 客户端。托管商可以选择只允许可以通过 OpenID 进行身份验证的人登录。我也想让它只允许某些人登录。

我们的代码中已经有一些简单的 HTML 查看器(我们计划迁移到 WebKit),因此显示 HTML(用于 OpenID 端点登录)并不是真正的问题。

我们也有 HTTP 请求的代码(我们已经迁移到 libcurl 这里)。

我还没有找到任何 C++ 代码来完成其余的工作(实际的 OpenID 端点握手)。有这方面的 C++ 代码吗?

如果没有,从哪里开始是一个好点?我对 OpenID 内部结构并没有太多想法。自己编写代码复杂吗?

有可能这样吗?我想我已经看到我必须将一些身份验证站点 URL 左右放置到 OpenID 端点,如果登录成功,它将返回到该端点。在这种情况下,没有您通过 OpenID 登录的站点,它是一个游戏服务器。

如果这样做真的有问题,我们也有自己的网络服务器(一个用于我们的论坛,我们有一个 SourceForge),所以我们也可以在那里做所有的事情。然而,这有一个巨大的缺点,即游戏依赖于某些网站进行 OpenID 登录,这是非常糟糕的——OpenID 的优点之一已经消失。

0 投票
1 回答
1715 浏览

google-app-engine - 在 Google App Engine 上使用 XMPP 的实时多人游戏?

从理论上讲,这样的事情可能吗?

我知道 Google App Engine 无法建立套接字连接,所以我认为使用 XMPP 向客户端发送消息会起作用。Google App 引擎上的 XMPP 是否足够低延迟以适用于实时游戏?

我正在研究像 Smartfox 之类的多人游戏服务器,但我认为软件的成本加上在我自己的服务器上运行它太麻烦了,所以我认为在谷歌的硬件上运行它会是一个好主意。

如果您对实时多人游戏服务器有任何其他建议,我很想听听。

0 投票
2 回答
1399 浏览

android - Android 上 Flash 应用程序中的 Ad-hoc(WiFi 或蓝牙)

是否可以在 Flash 应用程序中在两部或多部手机之间创建临时多人连接(近距离)?