gpt4 book ai didi

javascript - 是否可以使用 FlatBuffers 将序列化数据流式传输到文件中?

转载 作者:行者123 更新时间:2023-12-02 22:02:41 28 4
gpt4 key购买 nike

我正在使用 node.js 制作在线游戏,并尝试在游戏服务器上保存游戏重播。我正在使用 FlatBuffers 来序列化客户端-服务器通信的数据,并且我认为将游戏的状态逐帧保存在文件中会很酷。

我在 .fbr 文件中创建了下表

table Entity {
id: ushort;
pos: Vec2;
}

table Frame {
entities: [Entity];
}

table Replay {
frames: [Frame];
}

有没有办法将所有游戏状态帧即时写入文件?我知道我可以缓冲 N 帧并将它们保存在单独的重播文件中,但我觉得应该有更好的方法。我希望我的回放是在一个文件中,否则以后使用起来会很不方便。

最佳答案

最好的方法是确保每个单独的 FlatBuffer 都是一个“大小前缀缓冲区”(它的大小比实际缓冲区提前 32 位),在 JS 中,您可以通过调用此函数而不是通常的完成功能: https://github.com/google/flatbuffers/blob/6da1cf79d90eb242e7da5318241d42279a3df3ba/js/flatbuffers.js#L715

然后将这些缓冲区一个接一个地写入一个打开的文件中。读取时,因为缓冲区都是以大小开始的,所以可以一一处理。我在 JS 中没有看到任何辅助函数,因此您可能必须自己执行此操作:读取 4 个字节以找出大小,然后读取 size 字节,重复。

关于javascript - 是否可以使用 FlatBuffers 将序列化数据流式传输到文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59825841/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com