Nakama + Unity ECS

I’m using more and more ECS in my projects but I was wondering if it’s possible to use ECS with Nakama, i.e. multi threaded network code, I’m not sure it’s worth it since client to server is already async ? Then maybe it can be beneficial for server to client, I’m not really sure because I think it’s IO-bound anyway ?
Network use a single CPU anyway if I’m not wrong by default https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/performance_tuning_guide/network-rss.

Well I guess network events could be received on a classic MonoBehaviour and then computing according to these events can be done by a System I suppose.
Or for example a System that would basically sync all Entity with Translation.

Thanks for clarification !

1 Like

Nice! I went to type this question and I found it instead.

I haven’t looked into it too much, but this is what I found: https://docs.unity3d.com/Packages/com.unity.entities@0.16/manual/dynamic_buffers.html

@louis030195 I would agree with the initial conclusion you reached as you wrote your post. There’s little or no benefit to trying to move the client SDK operations into the ECS model as far as I can see. The operations will always be dominated by network IO time rather than some CPU access time.

Perhaps there’s a way to make the SDK more effortless to use with the new Unity ECS approach but that would be a quality of life improvement if at all rather than a performance-based improvement to make. If you have any experiments that make the integration with Unity ECS nicer do share them and we can take a look at whether they could be upstreamed into the client SDK.

2 Likes