Hi,
I’m currently developing a high quality cloth/hair physics system for massive multiplayer games. My initial thought was that if I could create really small abstracted hair/cloth datatypes and ensure all clients have a good ping, then I could just have the client calculate their own cloth/hair physics and then send it to both the server and directly to all peers (to avoid unnecessary lags), without using a server in between. That way each client only calculates their own character’s physics (and downloads the physics results for all other characters around him). That way the game could feature dynamic clothes and hair on a detail and scale that would never be possible in single player games. My early tests are looking good, eg with characters being able to use realtime skinnedMesh vs hair collisions and sending them via less than 1kbit/s. (theoretical data transfer, might be slightly more in a reality due to networking errors etc)
I want to ensure no one hacks the system. I do this by randomly doublechecking physics calculations on the server. If the server calculates a different result than the client, or if the result the client has sent to his peers is different than the result the client has sent to the server, the client is kicked from the server. However, since the client always sends his results to the server, it can never know when the server checks the result or not.
Now I’m not the brightest person in the universe and I’m well aware of that . So I thought I’d show off my idea here before actually working on all the details this project would need. As far as I know it this has not been done before, and I don’t understand why. Do you have any ideas what could / should go wrong? Any suggestions or comments? If I finalize this project I want to make it a portfolio project and I don’t want to spend weeks or months on something that has obvious logical fallacies just because I didn’t want to ask for help here ![]()
Cheers,
kiriri