基于浏览器的在线游戏问题

时间:2010-05-14 21:15:20

标签: c# asp.net

我正在asp.net开发一个基于浏览器的小游戏。想象一个游戏室,其拥有22名玩家,玩家可以通过点击按钮加入房间。 (我在数据库中保存了房间里的玩家数量)当房间里的玩家数量为22时,我需要调用一种方法。问题是我不知道如何控制房间里的玩家数量。我的意思是我认为需要有一个bacground代码,它必须一直在服务器上运行,并且代码控制数量并调用函数。这是我的第一个网络项目(学校项目),我希望你们都能帮助我。

4 个答案:

答案 0 :(得分:1)

据推测,每次用户进入或离开房间时,您都会调用Web方法,对吧?因此,您可以在此时更新会议室中的用户数量(确保进行适当的锁定),如果是22,则调用您想要的任何代码(因为您已经在服务器上)。您可能还需要定期让用户ping服务器以告知您它们仍然处于活动状态,以便您可以在房间断开连接时将其从房间中移除。

答案 1 :(得分:0)

您的意思是向最终用户显示会议室中的玩家数量?您可以使用AJAX查询服务器上的文件,该文件返回在线玩家数量并使用它来更新<div>或其他内容。 jQuery可以帮助简化客户端代码。

答案 2 :(得分:0)

当用户试图加入房间时,您会检查房间是否已满。

当你开始回答谁仍然在房间里的问题时,它开始变得复杂。你是否已经知道会导致一个人离开房间的所有案件?

答案 3 :(得分:0)

让我想到的最明显的事情就是让游戏与当前游戏一致。

拥有服务器(asp.net)和客户端(可能是silverlight / flash)。

在服务器上,您可以通过将事物存储在应用程序状态或会话状态对象中来管理最新情况。

您可以使用数据库(可能是sql server)跟踪玩家在会话之间的进度。

您必须了解应用程序生命周期等内容... http://msdn.microsoft.com/en-us/library/ms178473.aspx

我建议你使用ashx(网络处理程序)或WCF来满足基于服务器的要求。

在客户端上(假设您想使用Silverlight,因为您仍然可以使用C#),然后您可以连接到您的服务器并请求数据。

这将帮助您想象(我希望)多人游戏如何在线工作。

如上所述,您可能会发现AJAX可以满足您的需求,ajax请求通常是轻量级的,但请记住您的客户端将有效地提供给每个玩家的完整源,因此您可以接受黑客攻击。

因为这是一个简单的学校项目,但我相信你会没事的。