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

sockets - 实现实时多人游戏存在哪些问题

我有一些使用套接字制作多人回合制游戏的经验,但我从未尝试过实时动作游戏。我需要处理哪些额外的问题?我是否需要保留玩家行为的历史记录,以防落后玩家过去做某事?我真的需要使用 UDP 数据包还是 TCP 就足够了?还有什么?

我还没有真正决定要制作什么,但出于这个问题的目的,您可以考虑一个 10 人 2D 游戏与 XY 运动。

0 投票
6 回答
4015 浏览

networking - 实时多人游戏(概念题)

我一直在阅读Valve 的这篇文章,该文章似乎解释了他们的多人游戏系统的架构。似乎他们在客户端延迟渲染几个滴答,以便他们可以处理丢弃的数据包,但他们也将数据包作为“增量快照”(两个相邻状态之间的差异)发送。

假设我们有时间 A、B、C,并且客户端在时间 A 是正确的,但在 B 丢包,然后在 C 接收包。它如何正确推断 C 时间的状态?C 的数据包只告诉(我认为)状态 B 和 C 之间的增量,而客户端只知道 A 的状态。我在这里缺少什么?

0 投票
6 回答
7283 浏览

ajax - 是否有不需要在服务器端修改的情况下轮询的 ajax 替代方案?

我正在尝试创建一个小型且基本的基于“ajax”的多人游戏。对象的坐标由 PHP“处理程序”给出。使用 ajax 每 200 毫秒轮询一次这个 handler.php 文件。

由于没有任何事情发生时不需要轮询,我想知道,有没有什么东西可以在没有频繁轮询的情况下做同样的事情?例如。Comet,虽然我听说您需要为 Comet 配置服务器端应用程序。这是一个共享的网络服务器,所以我不能这样做。

如果客户端不需要更改任何内容,可能会阻止 handler.php 文件甚至返回响应,这可能吗?然后,即使某些事情还没有改变,您仍然会让客户无用地要求响应。基本上,它应该只在需要告诉客户某些事情时才使用带宽和服务器资源,例如。物体坐标的变化。

0 投票
2 回答
533 浏览

flash - 在规划多层闪存服务器时使用什么样的方法进行通信

我计划构建 Flash 多层服务器(在 C++ 或 Java 中)我不是来自 Flash 领域。但是从我读Flash的内容来看,它确实支持套接字,但这不是我的情况,我需要能够支持浏览器Flash游戏,所以它给我留下了带有http的80端口。但是我怎样才能用http实现良好的通信架构(休息?) flash播放器支持谢谢

0 投票
3 回答
19082 浏览

java - 多人游戏的服务器架构?

我正计划构建一个小型多人游戏,可以在 Web 浏览器中作为 Java 小程序或 Flash 文件运行。我以前没有做过任何服务器编程,所以我想知道我应该拥有什么样的服务器架构。

我很容易在服务器上创建 perl/php 文件,java/flash 代码会联系这些文件以更新玩家位置/动作等。但我正在考虑是否应该获得一个专用的网络主机,哪个操作系统使用哪个数据库等。此外,使用的带宽量和可扩展性也是一个考虑因素。

另一种选择可能是使用云托管系统(而不是专用服务器),因此他们会随着游戏的发展增加额外的机器。只要每台服务器都运行核心 perl/php 文件来更新数据库,它就可以正常工作。

另一种选择可能是使用谷歌应用引擎。

关于服务器架构、操作系统/数据库选择以及我使用 perl/php/python 脚本进行服务器端编程的方法是否是好的方法,我们将不胜感激!

0 投票
3 回答
5133 浏览

.net - 社交多人浏览器游戏的架构(后端选择 + 前端选择 [flash/silverlight])

我正在考虑开发在线多人社交游戏。世界的共享状态需要在后端有一些快速的东西,所以潜在的解决方案似乎是:

  1. 服务器上的快速游戏引擎(例如 c++)和一些前端语言(php/python/ruby)+ flash

  2. python中的整个堆栈(使用扭曲或无堆栈python)+ flash

  3. .NET(asp.net 或 asp.net mvc)+ 闪存

  4. .NET + 银光

从生产力的角度来看,第一个可能是过度杀伤(3 个异构层)

编号。4 可能是程序员的天堂(所有层的公共环境),但是:

  • 从来没有用 Silverlight 构建过这样的东西,也许在拐角处隐藏着一些令人兴奋的东西
  • 可能很难找到 Silverlight 设计师
  • 尽管 Flash 电影/剪辑模型与 SL 完整 OO 架构相比受到批评,但在外部设计师设计虚拟世界的额外部分时,它不是一个优势吗?他们可以用例如准备.swf。4 帧上的 4 个项目的视角 - 使用 SL 会不会更难?
  • Silvelight 显然缺乏一些游戏功能(如碰撞检测)

你怎么看?

[编辑] 游戏本身将成为更大门户的一部分 - 因此将引擎与一些 Web 框架集成会很好。

0 投票
2 回答
556 浏览

javascript - Multiplayer game to demo Wi-fi

So in Germany we have built up a huge Wi-fi system and usually you have to login to the system to surf the web. As a gimik we want to add a multiplayer game so without having to pay for usual internet they can play a webbased multiplayer game. What multiplayer games do you know. It just has to be 2 player really. I would want to program it with JavaScript since I am uncapable of doing Flash.

Any good ideas? Maybe even a finished game I could use?

I would want it to be an instant game so no browser game where you would have to check back every 5 hours or so.

0 投票
1 回答
1689 浏览

.net - 多人回合制 Silverlight 游戏的服务器端

我目前正处于使用 silverlight 设计基于浏览器的游戏的早期阶段。游戏将有许多 2-4 名玩家(甚至可能多达 8 人)的比赛,并且将基于回合制。

前端是 Silverlight 3.0,因为我在那里有一些经验。我试图弄清楚后端应该是什么。由于游戏是回合制的,因此不需要像实时游戏那样频繁地轮询服务器。服务器端将包括某种在客户端和后端之间进行通信的中间层。后端将是基于 ac# 的 Windows 服务,它根据用户操作(攻击、防御、移动、技能、练级等)执行验证和计算。

Silverlight 3.0 客户端和服务器上的 c# windows 服务之间的中间通信层的优缺点是什么。

  1. 插座
  2. WCF/WCF 双工服务
  3. .Net RIA 服务

目前我对上述三个选项一无所知,但是我过去创建过 ASP.Net Web 服务,在大学里我做过一些我几乎忘记的套接字编程。

0 投票
4 回答
793 浏览

javascript - Ajax 高分安全

我正在用 javascript 创建一个塔防游戏,并希望获得高分和其他多人互动。可能有几个玩家同时开始游戏,并告诉他们其他人的速度有多快等等。

我不知道 Flash 游戏如何发送他们的分数或事件以确保每个客户发送的信息实际上是正确的,而不仅仅是发送令人难以置信的分数的人。我记得几年前,当 Flash 游戏开始获得高分时,看到不真实(被黑)的分数很常见,而且……这很奇怪。那么这里的秘密是什么?

0 投票
1 回答
2001 浏览

iphone - 如何使用 GameKit 在 iPhone 蓝牙中从客户端告诉主机

我使用 GameKit 框架制作了一个多人游戏,其中 2 个 iPhone/iPod 可以通过蓝牙相互连接并播放。

我正在考虑一种方法来选择可以首先播放的设备。所以合乎逻辑的解决方案是选择连接的主机。GKSession 中甚至有服务器和客户端吗?他们都是同龄人吗?我应该采取哪条路线来实现我所需要的?