问题标签 [mmo]
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.
networking - 网络流量、MMO塔防
我正在编写 MMO 塔防游戏(客户端服务器架构)。因为作弊保护,服务器需要有逻辑。但我有真正的设计问题。当假设 10 个人互相进行死亡竞赛时,每个塔射击都需要计算并发送给玩家。当许多塔被建造时。(比如 10 个玩家 * 10 塔 = 100 塔)流量非常高。(一个玩家每秒会引起很多消息)我该如何解决这个问题?
服务器用 Java 编写(Smartfox 2x) 客户端用 C# 编写(Unity 3d)
提前致谢。
c# - ConcurrentDict 不会阻止项目在循环内为空
带支票的代码:
编辑:
Do() 中的任何内容都不会导致它为空,因为它甚至无法执行 Do(),因为 Charr 为空。
这就是我的循环的样子。我已经尝试过进行 if != null 检查,但它仍然超出了检查范围并引发了 nullref 异常。
我怎样才能防止这种情况?我使用并发字典和高度多线程的服务器架构。
c# - 返回一个字符串数组?
所以在我的游戏服务器上,我们有服务器端命令。我想知道是否可以转这个
变成这样的东西
这是命令接口代码
这是命令处理程序的代码
第 1 部分:
第2部分:
android - 如何最好地处理 Android 的 MMO
我正在寻找在 android 中创建一个简单的 MMO。我想知道在发送/接收数据方面最好的做法是什么。不会有图形的渲染,它都是基于文本的。我将如何发送/接收数据?
我会不会每秒都有一个常数(如果有很多老用户,它可以等待,但新用户会收集一堆事件)上传一个用户的当前状态并下载其他用户的当前状态?
我会使用类似于 API 的系统来处理 JSON/XML 形式的 GET/POST 请求吗?如果我有 100 个用户,每个用户每天记录大约 2000 个字符,即 2000 字节,加上一些开销,所以我们会说 3000。那将是 300,000 字节,或 3mb 的总数据,相当于一天的价值。不多,但是当它崩溃并不断发出请求时,它会架起来,不是吗?地狱,这可能是对将发送多少数据的严重低估。
本质上,我要说的是,我不知道如何实现它。我已经对核心游戏机制进行了相对完整的编码,但除非与其他玩家进行比较,否则它并不是很有趣,最好是实时比较。
javascript - MMO 中的喊话框制作新按钮和计时器以限制喊叫声
我想知道如何在 mmo 中的喊话框菜单中编写新按钮,以便可以关闭某些喊叫
这是聊天系统的列表
一般
一般聊天是白色的。它有时也被称为白聊天。这是用于与您所在地区的人公开交谈的最简单的聊天。要使用常规聊天,请按 Enter 并键入,然后按 Enter 发送。这可以通过阻止常规来阻止。
耳语
耳语聊天用于与另一个人私下交谈。要使用耳语聊天,您可以按 Enter,然后输入“/w Player name text”。此聊天显示为粉红色。这可以通过阻止耳语来阻止。
喊叫
喊叫用于与区域内的所有玩家交谈。如Tullan、Delfaras、Limelight、Silncium等。呼喊的默认颜色为蓝色,但可以编辑为不同的颜色。要进行基本的喊叫,命令是“/s”。要更改喊叫的颜色,您可以使用诸如“/s <;HHFF0000>”之类的代码将其变为红色。这些可以通过阻止喊叫来阻止。
聚会
聚会聊天用于在地图上的任何地方与您聚会中的人进行专门交谈。它显示为绿色,命令为“/p”。这可以通过阻止聚会聊天来阻止。
公会
公会聊天允许您与公会中的任何人交谈,并且您的整个公会都可以阅读它。要使用此聊天,请使用命令“/g”。此聊天是橙色的。这可以通过阻止公会聊天来阻止。
工会
如果您的公会有一个或多个工会公会(一个工会最多 3 个),您可以使用命令“/u”与工会中的每个人聊天。这是唯一不能被阻止的聊天。这个聊天是黄绿色的。
种族小号
种族小号被您种族中的每个人看到并显示为粉红色。命令是“/race”</p>
元素的呐喊
这些是特殊的 WC 呐喊,服务器上的每个人都可以阅读。它们以黄色显示,但颜色可以像普通喊叫一样改变。这可以通过阻止喊叫来阻止
Ashtal 的警告
另一个特殊的 WC 通信,Ashtal 的警告,游戏中的每个人都可以在每个服务器上看到。这些以红色显示。这可以通过阻止喊叫来阻止。
问题是只有一些按钮和控件,而不是全部如下所示
EG:[正常] [耳语] [聚会] [公会] [喊]
我想为所有人提供按钮,以便人们可以更好地控制他们的游戏。
EG:[正常] [耳语] [派对] [公会] [工会] [呼喊] [尖叫] [阿什塔尔] [种族]
我还想控制某人可以与反垃圾邮件过滤器一起使用的时间范围,这样如果说同样的话或厌倦了输入,它将不会被输入或阻止一段时间
“种族小号”
“元素的呐喊”
“阿斯塔尔的警告”
“常规呐喊”
有谁知道这样做的方法?
python - python中的胫骨机器人
我正在尝试为 7.6 tibia 私人服务器编写一个简单的机器人。我的问题是我不知道如何获取负责某些操作的数据包,如果我有一个数据包,我不知道如何将其发送到服务器。
你能给我一些建议吗?
node.js - 确保我正在更新 mongodb 中的最新文档
我正在创建一个基于动作的 rpg(不是真正的实时),玩家可以在其中建造自己的城市并在瓷砖地图上移动他的英雄。
背景:
我有这样的收藏:
- 地图瓦片(每个瓦片都有自己的文档),
- 英雄(包含统计数据+地图图块参考 - 将其放置在地图上)
- 城市(每个玩家都有自己的城市,我们存放玩家金币的地方)。
设想:
要移动英雄,我应该:
- 从集合中获取目标地图图块,以检查它是否被占用
- 从收藏中获取英雄并检查他是否已经在目的地地图图块
- 从收藏中获取城市并检查玩家是否有足够的金币移动
然后:
- 减去运动所需的金币并保存城市文件
- 使用新地图块更新英雄并保存英雄文档
问题:
我对整个过程的主要关注是,在找到金币之后和减去金币之前的城市可以通过另一个动作来改变(即认领金币动作,它只是通过在城市文件上的原子 $add 在城市中添加金币)。
当然,一些请求阻塞是在前端完成的,但游戏服务器只是 api,所以每个人都可以同时触发 20 个相同的请求,并导致数据不同步。有什么可以做的还是我超级敏感?
附言。在处理一个文档的任何地方,我们都使用 update 或 findOneAndUpdate(使用 $set、$add 等)来省略查找、更改回调中的记录然后保存。
java - MMO连接问题
我的问题是以下我为我的 mmorpg 设计的
客户端 -> 认证服务器 -> 游戏世界 -> 客户端 -> 认证服务器....等等
客户端使用 IO 进行连接,认证服务器使用 netty,所以问题来了,每个世界连接(一个简单的套接字)都存储在认证服务器中,用于将数据传输到相应的世界,例如玩家 a 从客户端,这将被定向到身份验证服务器,然后身份验证服务器获取用户世界 ID,然后身份验证服务器联系世界,现在世界将如何使用相同的套接字将响应写回用户(客户端) ?
artificial-intelligence - MMORTS 游戏的 AI
我不确定这是否是问这个问题的正确地方,但这里是。
我已经做了大约 12 年的程序员,在 php、java、c#、vb.net 和 asp 方面有经验。我一直对人工智能很感兴趣。我认为这确实是任何开发人员的终极挑战。
我已经编写了许多简单的脚本来玩游戏,但与我接下来想做的相比没有任何意义。我想编写一个 AI 程序来玩 MMORTSG(大型多人在线实时战略游戏)。我一直在搜索许多 AI 技术,但似乎没有一个能解决我知道我将面临的问题:
我可以预见的问题:
- 游戏没有“胜势”,相反,最好的策略是与其他玩家相比增长最大的策略。增长由三个因素决定,经济、军事和研究。
- 部分游戏状态是不可预测的。其他玩家可以随意攻击我。
- 游戏是基于时间的,行动需要时间。IE。建造一座新建筑需要几个小时。在建造该建筑物时,无法建造其他建筑物。
我研究过的所有人工智能系统都需要某种“获胜功能”来测试人工智能是否找到了终点。在我的情况下,它更有可能是“我有 X、Y、Z 选项,最好的选项是 X”。
附言。示例代码会很棒。即使是Psuedo也会很棒。
android - 使用 Unity3d 和 Node.js 为 android MMO 创建 websocket
我正在开发一款免费版 Unity 中的 android MMO android 游戏。我的电脑上安装了 node.js。我应该使用以下服务器客户端代码吗,因为当我尝试测试它时,我可以让服务器端脚本运行,但无法确定客户端是否正在连接。此外,当我尝试构建 apk 时,unity 会出现错误提示“使用 System.Net.Sockets 需要专业版的 unity”。请帮忙!!
服务器端 (在 node.js 上)
客户端(在统一 c# 脚本中)