【发布时间】:2011-12-04 16:50:06
【问题描述】:
我需要通过网络(多人游戏)传输 .NET 对象(具有层次结构)。为了节省带宽,我想只传输更改的字段(和/或属性),因此不会更改的字段不会传输。
我还需要一些机制来匹配另一客户端上的正确对象(全局对象标识符......像对象 ID 之类的东西?)
我需要一些建议。
你会使用反射吗? (性能至关重要)
我还需要传输 IList 增量(添加对象、删除对象)的机制。
MMO 网络是如何完成的,它们会传输整个对象吗?
(也许我对每个字段转移的想法很愚蠢)
编辑:
说清楚:我已经有了跟踪更改的机制(假设每个字段都有属性,setter 将字段添加到某种列表或字典中,其中包含更改 - 结构现在不是最终的)。
我不知道如何序列化这个列表,然后在其他客户端反序列化它。主要是如何有效地做到这一点以及如何更新适当的对象。
大约有一百个对象,所以我试图避免为每个对象编写特殊函数的情况。用属性装饰字段或属性是可以的(例如指定序列化程序、字段 id 或类似的东西)。
关于对象的更多信息:每个对象平均有 5 个字段。一些对象是从其他对象继承而来的。
谢谢大家的回答。
【问题讨论】:
标签: c# .net networking serialization multiplayer