- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
更新:如果我的问题可能不够清楚,我很抱歉。我读过命令模式,但不幸的是我自己没有使用过。我试图弄清楚如何使用它(或其他一些模式)使游戏事件足够抽象,以便服务器可以使用单个 Process() 方法处理它们。我在这里的主要问题是确保游戏事件接收到足够的信息以实际执行它们需要执行的操作(例如,登录用户并将其添加到事件用户列表、发送 map 数据、移动玩家等)。非常感谢相关示例。
我是游戏开发的新手,但我决定在业余时间开始开发(相对)简单的 2D MMORPG。我认为自己是一个非常有能力的程序员并且我有良好的技能基础,但我仍在努力处理与客户端-服务器游戏相关的一些设计。具体来说,我很难想出一种可扩展的方式来处理命令。让我提供一个功能示例:
登录请求
从客户端-服务器架构的角度来看,这是我现在正在做的事情:
[客户]
我的示例确定了发生的三个关键事件:
处理登录
验证用户提供的信息,从数据库下载玩家信息(HP、MP、最后位置等),并将玩家与 map 和连接相关联。
获取玩家信息
发回有关玩家的统计数据、装备、经验、当前 map ID 以及需要在 UI 上显示的任何其他信息。
获取 map 信息
向玩家发送有关 50 个方 block 半径内所有方 block 的信息...这应包括三层 map 的方 block 信息以及 NPC/怪物/玩家的位置和名称;当玩家移动时,将请求/更新更多 map 信息。
您可以看到,这些过程中的每一个都是不同的,需要不同的信息。在服务器端,我该怎么做:
while (ServerIsRunning)
{
foreach (Client c in clients)
{
eventQueue.AddList(c.ReceiveAll());
}
foreach(GameEvent event in eventQueue)
{
event.Process();
}
int[] keys = messageQueue.Keys;
foreach (int key in keys)
{
Client c = clients.Get(key);
foreach(NetworkMessage message in messageQueue[key])
{
c.Send(message);
}
}
}
最佳答案
当我读到您的问题时,您似乎在寻求“一种可扩展的命令处理实现方式”。
从您的措辞来看,您的请求显然指向 Command Pattern .
我不是 C# 专家,很遗憾我无法评估 Google 提供的大量建议。这是一个可以帮助您入门的方法。 http://www.c-sharpcorner.com/UploadFile/cupadhyay/CommandPatternsInCS11142005021734AM/CommandPatternsInCS.aspx
关于c# - 在 MMORPG 中实现服务器端命令处理的可扩展方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1250402/
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我打算用JAVA写一个简单的,但是在未来的MMORPG中易于开发。 我或多或少知道它应该是什么样子,但我有一些问题: 哪种数据应该有客户端?我知道,例如,服务器会通知客户端“该字段”是否空闲,但是加载
我构建了一个 MMORPG,它使用 MySQL 数据库在用户注销时存储玩家相关数据。 我们内置了一个自动保存计时器,以便每 3 小时将每个登录用户的所有数据保存到数据库中。 在这样做的过程中,我们注意
我想知道对于典型的 MMORPG,nosql 选项可以代替 rdbms 或与 rdbms 一起带来什么样的好处。特别是,我很好奇在 nosql 下如何保持数据完整性。 我将举几个例子,让我对服务器逻辑
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
这些天来,我正在尝试为我的公司设计一款新的 MMORPG 手机游戏的架构。该游戏类似于 Mafia Wars、iMobsters 或 RISK。基本思想是准备一支军队与你的对手(在线用户)作战。 虽然
我开始制作 MMORPG 来提高我的网页设计技能。我设法使用户能够通过 Javascript、PHP 和 MySQL 的组合在屏幕上移动并获取一些项目。 我想同时显示所有已登录的用户的移动情况,并向用
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我有一个 MMORPG 模拟器,这意味着它将处理大量数据包。目前,我正在为此使用指针,因为我认为如果使用得当,它们可以加快我的服务器速度,但是我有两个 friend ,一个告诉我使用指针,他认为我可以
更新:如果我的问题可能不够清楚,我很抱歉。我读过命令模式,但不幸的是我自己没有使用过。我试图弄清楚如何使用它(或其他一些模式)使游戏事件足够抽象,以便服务器可以使用单个 Process() 方法处理它
我以前设计过多人游戏,但现在我想创建一个 MMORPG 架构,用于学习/挑战目的。我想尽可能地在一台服务器上模拟数百(或几千)个并发玩家。 到目前为止一切顺利,只是现在我遇到了一个问题,要找出一种尽可
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我正在创建一个 2D MMORPG 游戏(以小程序形式),我有一个简单的问题。 我理解,出于安全目的,作为一般的反黑客技术,客户端应包含尽可能少的逻辑数据(因此它无法被操纵和利用)。 我的问题是这样的
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit th
我目前正在使用 Java 服务器端和 as3 客户端。我想知道是否有银弹可以同步它们之间的时钟。在可变延迟和可变时钟速度之间,似乎每个数据包都需要一个时间戳。 谢谢! 最佳答案 这只是我的想法,没有任
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我目前正在重写一个非常古老的 mmorpg 的服务器端,我一直在寻找一个很好的开源网络库来与 C/C++ 一起使用。 由于客户端已经存在,我不能使用任何强制执行某种数据包结构或通信的库(例如,RakN
哪种 DBMS 最适合 MMORPG 游戏服务器? 最佳答案 如果你计划有很多玩家在线,我会说你应该选择一个可以尽可能快地吞下写入的。 如果您考虑一下,您可能不想在每个小 Action 上都从数据库中
我是一名优秀的程序员,十分优秀!