Hey everyone, I'm planning to start a casual co-op multiplayer game that requires physics and I plan to implement some mechanics in ecs, so I'm just wanting to ask a few general questions before I start actually making anything.
-
Since I plan to use unity physics, would all logic in my game need to use a local transform component instead of any monobehaviour transform? And when should I sync it, before or after the physics sim step?
-
I'm assuming the order of systems is very important for things that use physics / prediction, so if I want to modify a monobehaviour's underlying local transform would I need to queue up a position change through an entity as opposed to modifying it in something like update?
-
Would raycasts need to be performed in a system with a callback as opposed to a direct call in a monobehaviour in order to ensure proper ordering of systems like the physics sim?
-
Could I make my own netcode for gameobjects type layer over the existing networking for higher level gameplay? Would I have to, and what order should I specify the system order to process the rpcs for proper syncing?
-
Can I make most networking actions outside of things that need to be server authoritative (like anything that affects physics) client authoritative (things like player x dealt y damage to entity)?
Bit of a long post but its stuff I've been wanting to figure out before I start. Thanks in advance!