应用
我正在开发 MMO,但遇到了问题。我构建的 MMO 服务器速度很快,并且在 UDP 套接字上每隔约 50 毫秒在本地向我的游戏客户端发送消息。这是通过我当前的消息系统从服务器到客户端的消息示例:
count={2}body={[t={agt}id={42231}pos={[50.40142117456183,146.3123192153775]}rot={200.0},t={agt}id={4946}pos={[65.83051652925558, 495.25839757504866]}腐烂={187.0}}
count={2}, 2 = number of objects
[,] = array of objects
我构建了一个简单的文本解析器,代码:http ://tinypaste.com/af3fb928
我使用如下消息:
int objects = int.Parse(UTL.Parser.DecodeMessage("count", message));
string body = UTL.Parser.DecodeMessage("body", message);
for (int i = 0; i < objects; i++)
{
string objectStr = UTL.Parser.DecodeMessage("[" + i + "]", body);
// parse objecStr with UTL.Parser.DecodeMessage to extract pos & rot and apply to objects
)
问题
当我有更多对象〜60+时,性能会急剧下降。
问题
在 MMO 或实时在线游戏中,客户端和服务器之间打包和读取消息的标准方法是什么?