【问题标题】:Coding a Game Lobby in ASP.NET在 ASP.NET 中编写游戏大厅
【发布时间】:2011-06-01 18:08:39
【问题描述】:

我有一个在线 3D 多人游戏,它使用插件将自身嵌入到网页中,我正在尝试弄清楚如何在不使用 Flash 的情况下为其制作基于网络的大厅。

这个想法是登录的玩家在页面上选择一种游戏类型,然后自动被带到一个开放的大厅,最多可以接受 x 个玩家。大厅是一个网页,用户可以在其中选择他们的皮肤和升级。当第 x 个玩家加入后,大厅应该开始倒计时,当倒计时成功完成后,会将所有用户重定向到另一个页面,该页面加载嵌入式游戏并将这些用户一起带到同一服务器.

如果用户在计时器结束之前退出大厅/页面,则需要停止倒计时并且大厅必须等待房间再次满员。我不确定如何做这部分,因为我似乎需要一些服务器端计时器对象来知道玩家何时离开。我正在考虑使用WebSync 与大厅页面中的每个用户交流关于大厅中当前有多少玩家,我假设我也可以使用它来发送命令以引导用户到一个新的计时器倒计时成功后的页面。我还想我可以使用 WebSync 或其他东西让我的服务器知道有人何时离开大厅以停止倒计时。

如何创建此服务器端计时器以及如何与之交互?我正在考虑使用Quartz.Net 来访问调度程序或其他东西,但我还不确定。

有什么想法吗?

【问题讨论】:

  • 如果您正在使用 ASP.NET,我建议您在大厅使用 HTML5 或 silverlight。当然,如果您已经在使用游戏插件,也许您也应该使用它来创建大厅?

标签: asp.net timer comet reverse-ajax


【解决方案1】:

您可以选择使用 WebSockets 吗?您将能够(或多或少立即)观察状态变化并根据事件更新客户端和服务器。

您可以在预定义的时间从服务器发送大量数据,并在客户端运行 javascript 以将用户踢到新页面/在计时器结束时执行某些操作(或者玩家离开或加入游戏。 )

(插件:我和一个朋友编写了一个 C# 库,带有一个有效的实时聊天示例,可在此处找到:https://github.com/Olivine-Labs/Alchemy-Websockets

【讨论】:

    猜你喜欢
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    相关资源
    最近更新 更多