- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试编写一个基于图 block 的小型在线游戏。我已经建立了一个游戏 - 服务器与套接字的连接,因此我可以轻松地将字符串从客户端发送到服务器,反之亦然。
我不明白的是,我应该以什么形式存储数据才能有效地传输数据?我应该使用数据对象,序列化并发送它吗?我应该将数据存储在一个长字符串中吗?还是有别的办法?
如果我要发送的数据类型很重要,那就是有关其他玩家、 map 对象等的信息。
我已经浏览了几天了,仍然没有结果(可能是因为我不确定这个问题怎么称呼)。
谢谢!
最佳答案
这里最重要的是:它是回合制游戏吗?
对于回合制游戏,您可以只使用 TCP 套接字并通过套接字传输完整的游戏状态(或基于先前游戏状态的增量)。它的编码方式并不重要。
对于实时游戏,尝试尽可能频繁地更新状态很重要。数据包是否丢失并不重要;也许另一个数据包仍在传输中,它会覆盖前一个数据包。这就是为什么您应该使用 UDP 套接字而不是 TCP。
考虑到您在谈论基于图 block 的游戏,请考虑您需要向客户传达哪些信息。也许只有玩家在移动,而其余的都是静止的?
这是一个难题,不允许单一的结论性答案。有很多设计决策需要考虑,涉及主要游戏模拟循环的设计、作弊、网络架构测试等。参见 https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking作为您面临的问题的一个小例子。
我能给你的最简单的解决方案是:
ENTITY NUMBER - NEW POSITION
。 (即两个 32 位整数)。当您需要一次传送多个更新时,请确保它们包含在同一个 TCP 数据包中,并且 TCP 发送缓冲区会立即在两端刷新。400 毫秒
及以上的客户端时将面临的所有时间问题。如果需要,您可以像这样转换数据包:ENTITY NUMBER - NEW POSITION - CURRENT SPEED VECTOR
这将允许客户端估计实体位置,包括滞后延迟。关于Java MMO游戏数据传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9374464/
我曾尝试搜索如何制作 MMO 并总是找到相同的回复,这是不可能的或需要很多钱,但从未给出如何制作的指南。 我想构建一些非常可扩展的东西,我目前关于如何构建 MMO 的想法如下: 成分: 登录服务器:客
我正在制作一款拥有 2d 世界的 MMO。 (这是一个学习项目,所以不要试图说服我放弃它 :) 我想为它试验一个新的数据存储,并且我读过关于 redis 的好东西。我已经完成了这些教程,我想我开始了解
我们正在构建一个 HTML5 MMO,它将利用对用 Python 编写的 REST API 的 AJAX 调用来执行操作(购买、出售、构建、交易、发送、攻击)。 我们这个项目的第二部分是一个 Java
我试着理解,mmo怎么了目标文件格式有效,用于 Don Knuth 的教育MMIX建筑学。我没有买MMIXware,所以大部分细节只能从汇编器和模拟器的文字源文件中猜测。 对象格式使用特殊的三元搜索树
申请 我正在开发一款 MMO,但遇到了一个问题。我构建的 MMO 服务器速度很快,并且在 UDP 套接字上每隔约 50 毫秒就在本地向我的游戏客户端发送消息。这是通过我当前的消息系统从服务器到客户端的
我正在做一个服务器项目(我想用它制作一个 MMO 服务器)。我已经创建了一些东西,但 IDK 是一个很好的系统吗?即是否有用于创建(帮助!)高性能套接字服务器 (MMO) 的 MMO 服务器教程/书籍
我在 gamedev.stackexchange.com 上问过这个问题,但一无所获。如果我做错了,请修复标签 这类游戏需要什么“东西”?我非常了解 java、c++、javascript 和 obj
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,vis
我正在开发一个在线浏览器游戏,基于谷歌地图,使用 Django 后端,我已经接近需要决定如何实现(后端)定时事件的地步 - 即 NPC 拥有数量提高(例如,城市人口的增长应基于一些变量——城市规模、应
我是游戏服务器设计的新手,现在分配了一项任务来重构我们的日志服务器。我为游戏服务器和日志服务器之间的通信创建了一个类日志。 class Log { public: void
假设您有一个服务器权威的多人在线游戏(服务器对游戏中发生的事情有最终决定权,客户端只渲染图形并接受用户输入并将其提供给服务器)。 如果您在一个区域中有 X 个玩家并且彼此相邻,在彼此可见的情况下,服务
因此,假设有一款游戏包含一个网站,以及一个您可以从该网站启动的客户端。我看了一下,一个相关的例子是 Habbo Hotel。 我要问的是,让这样的游戏运行的所有不同部分是什么:对于网站部分,我想需要一
我正在使用以下技术和语言编写 MMO 服务器:.Net Framework 4、C#、SQL Server 2008 R2、实体数据模型、LINQ。 我的问题是关于如何以及何时访问用户状态数据的永久存
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 2 年前。 Improv
因此,我将在规划阶段使用 javacript 和 HTML 在 Canvas 中创建游戏,但是我开始想知道如何处理多个用户在同一个“ Canvas ”上编辑和玩的情况 为了描述我的问题,我想告诉你一些
我正在开发一款类似于游戏的 MMO 射击游戏 Realm of the Mad God在 Python 2.7 中。 游戏的玩家数据将包括游戏中每个玩家所佩戴的装备、玩家的姓名等,这样当他们注销角色时
我正在尝试用 Java 制作在线 MMO。这将是一个简单的游戏,您可以在其中获得一个角色并可以四处移动并射击其他玩家,所有这些都是自上而下的 2D 游戏。服务器将是多线程的并且使用 Java,客户端也
我目前正在构建一个简单的 MMO 游戏,供用户聊天、玩游戏等简单的事情。 我已经使用node.js和socket.io构建了服务器,并使用Phaser.js构建了客户端,但我担心(基于之前有人告诉我我
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 7 年前。 Improve this qu
我一直在写一个 2D Flash 多人游戏和一个套接字服务器。我最初的客户端和服务器之间的移动算法计划如下: 每当这些改变时,客户端通知服务器关于玩家的移动模式(向前移动或不移动)和玩家的转向模式(不
我是一名优秀的程序员,十分优秀!