如何在 alt:V 中设置资源依赖关系

Fel*_*x C 5 separation-of-concerns altv

我已经看到多个资源之间可能存在依赖关系。这样资源1就可以使用资源2的功能。资源之间的通信如何进行?

什么时候应该将脚本分离到不同的资源中?在整个游戏模式中坚持使用一种资源还是将其分开更好?

干杯

H3x*_*x0n 4

服务器端

每个资源都是相互隔离的。资源使用cpp-sdk进行通信。隔离取决于脚本运行时。一些运行时(例如c#)支持资源之间共享内存,而nodejs不支持在不同线程上运行的资源之间共享内存。您始终必须明确告诉运行时您想要向其他资源公开哪些函数和数据。这意味着在调用函数或访问数据时,您的运行时开销很小,因为通信数据需要序列化到非托管 cpp 内存,然后再次返回到其他资源的内存。当运行时支持共享相同的内存时,相同类型的资源之间就不会发生这种开销。当坚持使用单个资源时,您没有运行时开销,但无法单独交换资源。

客户端

它与服务器端基本相同,但目前仅存在一个不支持资源之间共享内存的 v8 javascript 模块。对于客户端来说,调用其他资源的开销很可能不像服务器端那么重要。特别是当您想要减少服务器主线程必须执行的 CPU 密集型任务时。对于客户端来说,多个资源还可以减少客户端必须下载的数据量,因为当您更改资源中的某些内容时,客户端必须重新下载整个资源。

太长了;博士

服务器端

当性能很重要时,最重要的是坚持服务器端的单一资源。当您需要不时交换资源时,请使用多个资源。

客户端

当您使用其他人的资源或想要拥有模块化资源时,请使用多个资源。将您的资产(模组、图像等)拆分为尽可能多的有意义的资源,以在发生更改时减少数据下载。