NetDynamics 是一个面向数据的网络游乐场,用于可靠的 UDP 传输。该应用程序是为压力测试和调试专有网络库而创建的,但它也支持 ENet 作为开源替代方案。
NetDynamics 允许生成多达 100,000 个动态实体、高效处理数据并使用绘图调用批处理渲染图形。该应用程序生成大量数据,以便使用支持顺序可靠/不可靠消息传递的 UDP 传输通过网络或环回传输。主要目标是确定网络传输中的问题点、瓶颈或错误并实时可视化。
整体方法基于实体组件系统,其中实体只是与数据和逻辑解耦的标识符。 NetDynamics 是一个客户端-服务器应用程序,可跨连接同步实体的视觉表示。服务器正在序列化并向客户端传输大批量的组件,这些组件本质上是实体的数据。该系统用于指定实体的逻辑和处理组件。
服务器对所有实体拥有完全的权限,客户端只能通过发送适当的消息来参与世界的人口活动。服务器也可以生成实体,也可以在本地销毁它们,并在客户端之间进一步同步。服务器以固定间隔(默认情况下每秒 20 次更新)发送实体的状态更新。客户端使用插值来根据位置和速度分量复制状态更新之间实体的流畅移动。未实施外推,因此数据包丢失将会很明显。
该应用程序旨在通过数十万条网络消息以指数方式生成流量。当网络传输处于高负载时,多线程并不是故意注意到主线程的性能下降,因此单线程传输将始终以更高的延迟执行,具体取决于应用程序的帧速率。将传输逻辑移至单独的专用线程或以任何其他方式使其与帧速率无关将解决此问题,但这超出了 NetDynamics 的目的。
下载应用程序并在settings.ini
文件中设置所需的参数。运行应用程序,在服务器或客户端上使用鼠标左键生成实体,在服务器上使用鼠标右键销毁实体。
为了测试初始应用程序的渲染和处理性能,以通过网络逻辑获得帧时间消耗的视觉差异,您可以简单地在服务器上生成实体,而无需任何连接。