#Stripped down server build

1 messages · Page 1 of 1 (latest)

tropic sigil
#

I have a game who's server could run nearly entirely in a native c# application. The physics, scene handling, input, networking, update loop, etc. are all independent, except for one single thing; I'm relying on Burst, Unity.Jobs, Unity.Collections & Unity.Mathematics. Nothing else. (Even the assets can be stored and loaded from pure c# objects and systems)

When making a server/headless build (I've only tried Windows server builds for now, but ideally in the future I'll try Linux), there still seems to be some overhead cost I'd like to reduce. How should I go about it?

I could make some kind of dummy library that would replace the a subset of the methods/structs I'm using from Unity libraries, but that would take a lot of time and my hot code would be pretty slow.

I was wondering if anyone had an idea of how to heavily strip the engine completely.

round kiln
#

Hello! I'm actually developing a native .NET dedicated server for unity games, complete with a really, REALLY, minimalistic version of unity (For parity). If you are interested I can share more! Right now it's not finished, but I could open source it if you are down to contribute.

https://github.com/ModelStudioDev/com.modelstudio.netmodel

As I said, it's not finished. I'm pretty sure the current version isn't even working atm (This is like the 3rd re-write btw). I'm developing it as a unity package so that the development is easier, but separating the code in assemblies to diferenciate between client and server code.

Now the API is really similat to that of netcode, with RPC calls, NetworkObjects and so on. Take a look and feel free to DM me for any questions!

GitHub

The NetModel repository. Contribute to ModelStudioDev/com.modelstudio.netmodel development by creating an account on GitHub.

#

Also, no I don't think "stripping" the engine is at all possible, creating dummy libraries could work, but you'd likely overwrite something that you didn't know was needed/used by unity internally

#

I must add that with this solution there are NO Unity packages, not a single one. I use DTOs (Data transfer objects) to basically transform Unity's vectors and stuff to system numeric ones without importing UnityEngine