多人游戏2人游戏

问题描述 投票:0回答:2

我想创建一个国际象棋多人游戏,1player vs 1player。

我将使用Flash制作动画和客户端,并使用服务器端语言检查动作是否正确,将每个玩家的动作记录到数据库中,确定获胜者,并为获胜者加分。

我的主要编程语言是PHP,我将根据我的指示让某人进行Flash工作。

我想知道以前是否有人尝试这样做,或者您是否有任何教程,指南,开发p2p游戏时要遵循的步骤? 我想有效地做到这一点,并且能够在具有512 RAM的VDS上支持至少100个播放器。

我正计划像这样进行游戏:

1)从php检索变量后,在Flash客户端中初始化变量(如功劳,玩家名称)

2)开始游戏

3)如果我是player2,而player1正在考虑一个决定,则flash客户端将向PHP文件发送请求,以检查player1是否做出了任何决定。 如果是这样,该轮到我做决定了

4)轮到我时,不再有任何请求发送到PHP,直到我想移动一个。 当我尝试执行此操作时,它将发送一个请求,PHP将检查我的移动是否有效,并返回一些Flash用来显示错误或将指针移回player1的变量。

游戏还将有一个与PHP同步的计时器。 每个玩家都可以考虑20秒进行一次移动。

1)对我的实施有何建议?我正在寻找的建议是提高效率并减少服务器负载,如果有人曾经从事过类似项目,他们是怎么做的,或者他们将如何做?

2)我对定期HTTP请求的实现不是一个好主意,因为我知道服务器可能会变得超载,所以我想知道是否有人可以建议任何其他选择,但可以选择安全选项。 同时100个用户意味着每秒大约100个HTTP请求。 这是VDS可以处理几天的数字吗?


以后编辑:

在我获得了这篇文章的回复之后,我得出的结论是,在等待对方玩家移动时,每秒使用套接字而不是HTTP请求将是最好的主意。

我的游戏将为玩家提供100张桌子,其中1个用于通信的插座,每个桌子1个端口。 所以1个插座有100个端口。 当游戏开始并发送初始化变量时,PHP将进行通信以刷新表的套接字和端口。

我计划使用Flash来监听套接字服务器,看看当对方玩家必须移动时会发生什么。

当我移动时,flash将从其侧面检查移动是否有效,然后将数据发送到PHP。 PHP将返回OK或NOT,并且还将更新套接字端口上的数据。

关于套接字,我不确定javascript会是一个不错的选择,因此我正在考虑PHP套接字或JAVA套接字。

由于对语言的熟悉,PHP套接字似乎是我的首选。 我的第二个是租一个smartfoxserver,第三个是使用Player.IO的服务。 我打算创建一个很好的游戏并将其出售。 图形已经完成,看起来很棒。 最困难的部分是高效且易于安装。


感谢您的时间 ! 问候

php flash multiplayer
2个回答
2
投票

此类游戏的服务器负载应确实很小。 如果您使用的是Flash,则可以利用套接字对象,而只需打开服务器的套接字即可,这样就不必担心发生了什么变化,而不必担心它...它将在//如果有值得注意的事情。 否则,您的计划是一个不错的计划,因此,您可能不得不问一些有关困扰的问题。

如果您真的想减少服务器负载,请在Flash客户端中编写国际象棋逻辑,然后让IT决定(玩家)尝试的举动是否非法,或者玩家是否输了钱...严格使用服务器发送消息中继和数据存储。


2
投票

围绕现有资源设计项目有时是错误的,例如PHP知识和对具有512 MB RAM的服务器的访问。 在很多项目中,您应该首先考虑您的资源,但是独立的首次游戏项目并不是其中之一。

即使您的主要语言是PHP,也不应自己限制自己处理Flash部分。 而且,将Web服务器和数据库用作多人游戏的通信方法将导致某些非常笨拙的行为。

您也不受VDS的限制。 您可以免费Amazon EC2上使用微型实例一年。 如果从头开始设置EC2服务器似乎令人生畏,那么互联网上的所有教程都将带您从头到尾。

您可以使用Javascript或Flash AS3编写游戏的前端。 两者都有很多游戏开发库。 FlixelFlashpunkPushButton是免费的AS3游戏库。 MelonJS是一个Javascript / HTML5游戏库。 他们都有丰富的文档和良好的社区。

您可以使用node.js编写服务器后端,并使用socket.io来处理游戏通信,即使您对数据包一无所知-如果您想花点钱,也可以使用Player.IO之类的东西。并为此提供外部服务。

如果您正确地编写了后端,那么对于您的服务器而言,一百个用户将不是问题。 成千上万的客户需要开始考虑新硬件。

并且,由于您正在寻找一般的游戏制作建议,因此请开始阅读#AltDevBlogADay之类的博客上的文章。 您会从对游戏充满热情的其他人那里获得很多关于设计的见解。

© www.soinside.com 2019 - 2024. All rights reserved.