问题标签 [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.
c# - Photon Framework - 子服务器注册失败(CJR 游戏教程)
我一直在关注 Christian Richards Photon Server Framework 教程,在这里和那里修复错误。我遇到了一些甚至不会引发错误的东西,但它并没有做它应该做的事情。在教程结束时(photon 第 14 集),Christian 向我们展示了应该注册子服务器并显示在日志中。当我构建我的项目,然后用光子控件打开它时,日志会显示除此之外的所有内容。日志不会抛出任何错误,但不会显示它们应该是什么。例如,代理日志应该说它收到了一个注册请求但它没有,以及登录说“没有现有的响应处理程序”。
复杂服务器日志:
48068: 19:56:46.598 - 服务:“Photon Socket Server”开始于 48068:19:56:46.598 - 配置文件:C:\Photon\deploy\bin_Win64\PhotonServer.config 48068: 19:56:46.599 - 将在大多数:10 个故障转储 48068:19:56:46.599 - 操作:以 exe 运行 48068:19:56:46.600 - 服务器正在启动... 48068:19:56:46.600 - 滴答计数:42761421(包含:49.2153 天) 48068:19:56:46.600 - 滴答计数 64:42761421 48068:19:56:46.600 - 光子版本:3.4.8.2804 48068:19:56:46.600 - PID:45344 48068:19:56:46.600 - 配置文件: :\Photon\deploy\bin_Win64\PhotonServer.config 48068: 19:56:46.601 - 不会记录不重要的异常 48068: 19:56:46.604 - 不使用性能计数器,因为它们当前未安装。使用 /InstallCounters 运行服务以安装它们。48068:19:56:46.604 - 启用关机超时:30000 毫秒 48068:PhotonHostRuntime.PhotonDomainManager 来自 PhotonHostRuntime,Culture=neutral,PublicKeyToken=02C301B61B060C4D 48068:19:56:46.611 - CLRBaseDirectory 设置为“C:\Photon\deploy” 48068:19:56:46.612 - 为 20 个或更多对等方优化事件广播 48068: 19:56:46.612 - 开始:即将加载 CLR - 可用版本:48068: 19:56:46.612 - v2.0.50727 48068: 19:56:46.612 - v4.0.30319 48068: 19:56:46.612 - 配置中没有偏好文件,将加载最新的。48068:19:56:46.612 - 即将加载版本:“v4.0.30319” 48068:19:56:46.613 - 加载版本:“v4.0.30319” 48068:19:56:46.880 - 加载光子主机运行时 48068:19: 56:53.045 - 许可证:未找到许可证文件。从引导许可证开始。48068: 19:56:53.045 - 许可证有效。48068:19:56:53。045 - 获得 20 个并发连接的许可。48068:19:56:53.045 - ENet:每个对等方的最大可靠传输数据(等待 ACK):51200 字节 48068:19:56:53.045 - ENet:每个对等方带宽限制 48068:19:56:53.045 - ENet:传输速率限制:256 KB/秒 48068:19:56:53.045 - ENet:限制周期:200 毫秒 48068:19:56:53.045 - ENet:每个周期的限制:52428 字节 48068:19:56:53.045 - ENet:最大排队数据每个对等方的传输:512000 字节 48068:19:56:53.045 - ENet:最小重新传输超时:200 48068:19:56:53.045 - ENet:最小超时:5000 毫秒 48068:19:56:53.045 - ENet:最大超时:30000 毫秒 48068 :19:56:53.045 - ENet:每个对等方排队的最大入站可靠数据(等待重新发送早期序列号):163840 字节 48068:19:56:53.046 -即将加载应用程序:来自 ComplexServer 48068 的代理:19:56:53 .
代理日志:
2015-07-22 19:56:55,596 [1] INFO Photon.SocketServer.ApplicationBase [(null)] - 应用程序启动:AppId=Proxy;AppPath=C:\Photon\deploy\ComplexServer,类型=ComplexServer.ComplexProxyServer 2015-07-22 19:56:55,643 [15] 调试 ExitGames.Diagnostics.Counter.CounterBase [(null)] - 创建 AverageCounter: Name='' 2015-07-22 19:56:55,648 [15] 调试 ExitGames.Diagnostics.Counter.CounterBase [(null)] - 创建 NumericCounter: Name='' 2015-07-22 19:56:55,651 [15] 调试 ExitGames。 Diagnostics.Counter.CounterBase [(null)] - 创建 CountsPerSecondCounter: Name='' 2015-07-22 19:56:55,654 [15] 调试 ExitGames.Diagnostics.Counter.CounterBase [(null)] - 创建 CountsPerSecondCounter: Name= '' 2015-07-22 19:56:55,656 [15] 调试 ExitGames.Diagnostics.Counter。
登录日志:
2015-07-22 19:56:55,260 [14] 调试 Photon.SocketServer.ServerToServer.TemporaryServerPeer [(null)] - OnOutboundConnectionEstablished: 发送初始化请求 2015-07-22 19:56:55,260 [1] 调试 MMO.Photon。 Application.PhotonApplication [(null)] - 在 127.0.0.1:4520 2015-07-22 19:56:55,299 [1] 信息 Photon.SocketServer.ApplicationBase [(null)] - 应用程序启动:AppId=Login; AppPath=C:\Photon\deploy\ComplexServer, Type=LoginServer.LoginServer 2015-07-22 19:56:55,309 [14] 调试 Photon.SocketServer.ServerToServer.TemporaryServerPeer [(null)] - SentInitRequest: ConnID=2, ChannelId = 0,结果 = 确定大小 = 41 字节 2015-07-22 19:56:55,762 [15] 调试 ExitGames.Diagnostics.Counter.CounterBase [(null)] - 创建 AverageCounter: Name='' 2015-07-22 19 :56:55,765 [15] 调试 ExitGames.Diagnostics.Counter。
所以很明显,我的代码中存在这个或更多的逻辑错误,而不是语法。我已经尝试了很多东西来尝试解决这个问题,但没有任何效果。我已经重新观看了 2-3 次视频,但仍然没有。如果有人有任何想法或可以指出我正确的方向,那就太好了!
干杯,德文。
node.js - MMO 服务器崩溃 node.js 和 mongodb
所以我一直在关注这个教程系列,这个系列的人没有帮助,但是当我运行时我收到这个错误,有没有人之前有过这个错误或者知道如何解决它请帮助我
这是 mongo 日志的图片 http://i.imgur.com/ZXcBojJ.png
c# - 服务器没有从数据库中获取信息并将其传递给客户端
我试图让我的服务器从登录用户(web)那里获取 sso 并将其传递给 AS3 客户端。
如果我在客户端(如下)中设置了特定的 SSO,则服务器会从数据库中获取用户。
目前我收到错误:错误 1:您的 SSO 票证无效。请重新登录,然后重新加载。
在用户登录网站并使用 SWF 启动页面后,我得到了 ssoTicket 值,如下所示:
来自服务器的处理程序:
请求的 DBManager 类
MySQL 类
数据库类
SSO 字符串更改后的日志信息
Tcpclient 类
automation - 在 MMO 游戏中替换针对敌人的标签的功能
我正在努力想出一种方法来设计一个好的功能,如果他们不支持标签定位,它通常会在 MMO 中以敌人为目标。
所以我目前的想法是这样的:
有没有更好的办法?我的担忧: 1. 考虑到地图/边缘/位置转移的结束 2. 进入敌人的仇恨范围但在 Rng 点击期间没有点击它们,导致我自己受到伤害并浪费治疗资源。3. 在地图上四处游荡,看起来像个机器人
websocket - Firebase 的延迟是否足够低,可以用于实时 MMOG 而不是套接字?
我想知道 Firebase 的性能(延迟、吞吐量)是否足以用于在线实时 MMO 游戏。
有足够知识的人可以分享他们对此的看法吗?
可以使用 Firebase 代替套接字进行实时游戏吗?
sockets - 打包和解包消息以通过网络发送/接收消息的最佳方式是什么,就像在 mmo 游戏中一样?
发送信息消息的最佳方式是什么,例如:位置,健康到服务器,然后将它们广播给所有玩家(如何以一种好的和快速的方式“打包”和“解包”它们?)
我有一个管理结构(消息)的消息系统,例如:
现在,我需要以快速的方式“打包”这些结构(我可以将此结构更改为任何其他建议)以将它们发送到服务器(通过网络),然后在客户端“解包”它们。
我对mmo游戏如何做到这一点很感兴趣。
谢谢!
c++ - C++ 成员变量更改监听器(100 多个类)
我正在尝试为 MMO 游戏制作架构,但我无法弄清楚如何在 GameObjects 中存储尽可能多的变量,而无需在更新它们的同时进行大量调用以在线发送它们。
我现在拥有的是:
它使代码变得垃圾,难以维护、理解和扩展。所以想想一个冠军的例子:
我必须为每个变量创建很多函数。这只是对这个 Champion 的概括,每个 Champion 类型/“类”可能有 1-2 个其他成员变量。
如果我能够从 .NET 或类似的东西中获得OnPropertyChange ,那将是完美的。如果我有类似的东西,我试图猜测的架构会很好地工作:
对于惠普:当我更新它时,自动调用SendFloatOnWire("HP", hp);
对于位置:当我更新它时,自动调用SendVector3OnWire("Position", Position)
对于名称:当我更新它时,自动调用SendSOnWire("Name", Name);
究竟是什么SendFloatOnWire
, SendVector3OnWire
, SendSOnWire
? 在 char 缓冲区中序列化这些类型的函数。
或方法 2(首选),但可能很昂贵
正常更新 Hp、Position,然后每个网络线程滴答扫描服务器上的所有 GameObject 实例以查找更改的变量并发送这些变量。
这将如何在大型游戏服务器上实现,我有哪些选择?对于这种情况有什么有用的书吗?
宏会变得有用吗?我想我接触到了一些类似的源代码,我认为它使用了宏。
先感谢您。
编辑:我想我找到了一个解决方案,但我不知道它实际上有多强大。我要去试一试,然后看看我的立场。https://developer.valvesoftware.com/wiki/Networking_Entities
javascript - 将自定义对象保存到内存中的 Screeps 问题
我正在尝试将源 ID 和当前正在挖掘源的生成的 ID 保存到房间中当前生成下的内存中。保存后,我可以轻松地将矿工分配给每个来源,而无需执行 FIND_SOURCES。这样做会降低我的 CPU 使用率。
我当前的问题是它只保存源 ID 而不是我试图创建的自定义对象。任何有关纠正此问题的帮助将不胜感激。
这是我正在使用的当前代码:
javascript - Node.js + Phaser MMO
我目前正在构建一个简单的 MMO 游戏,供用户聊天、玩游戏和类似的简单事情。
我已经使用 node.js 和 socket.io 构建了服务器,使用 Phaser.js 构建了客户端,但我担心(基于之前有人告诉我我的代码在过去的项目中我的代码不好/结构不好)这个项目会变得纠结在一大堆混乱中。
我正在寻找有关如何设置服务器结构以获得最佳可扩展性的一些建议或一些有用的链接,以便将来我可以添加更多功能,而无需费时费力地寻找可能或可能的其中一部分不要弄乱整个系统
任何建议将不胜感激,如果这是一个我在该领域没有经验的广泛问题,我很抱歉。
networking - Unity UNet MMO 风格的专用服务器方法
我们正在为我们的机构创建一个 MMO 风格的虚拟校园,我需要一些关于使用 UNet 的最佳实践和实施的建议。阅读后我得出结论,我可能应该使用一个具有单独场景的项目来构建服务器。所以我设置了它,它立即运行并启动了一个专用服务器。游戏场景随后会自动连接,但即使已将其添加到网络管理器中,玩家也不会被实例化。服务器场景只是一个带有 UNet 网络管理器组件的空白场景。
我对这种情况的看法是,为了更好的用户体验,游戏场景和所有用户交互都应该发生在客户端,然后更新服务器,然后服务器更新其他客户端。(随意拍下来)。
如果上述方法正确,那么如何将服务器场景设置为幽灵而不实际处理任何信息?
编写一个将某些变量发送到服务器而不是使用 UNet 网络组件的脚本是否有益,因为我认为它们会同步整个对象?
UNet 是否允许服务器仅充当更新客户端的中介而不是游戏的完整实例的那种功能?
我想我真正得到的是,使用 UNet 创建 MMO 风格、专用、无头、网络设置的最佳方法是什么?