[=;275747]
And this also means it’s not really possible, even for AAA developers, to implement this in UE4.
…
I find most interesting that he said option 2 would not require “any major engine modifications” while it would be “completely deterministic”. This is virtually the opposit of what you said, . Who is right now? Well, you are the “Master of UE4” so you are probably right, but I just want to have some hope
[/]
You can do it in UE4, just like with Unity’s original network version I created a similar implementation back in 2008-2009. The problem here isn’t that much sending the data, the problem is keeping things deterministic (which I guess was 's point).
Having something be deterministic means that input A will always return output B (e.g. a path a unit chooses to follow, or how much damage you do, you can’t rely on floats), no matter the platform. In order to achieve this in our project back then we had to create a fixed point math (based on integers) that we’d use for everything in the game.
If you’re interested in following this path, I advise you to read these 2:
- 1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond - how to do fixed step network
- Q (number format) - Wikipedia - fixed point numbers (we used Q24.7)
Also, in case you’re interested, here’s some of our stuff from back then:
- A doc overviewing our network: Dropbox - Game Network April 24.pdf - Simplify your life
- A representation of Q24.7: Dropbox - Q Bit Layout.png - Simplify your life
- Our Q24.7 implementation: Dropbox - Q.cs - Simplify your life (keep in mind that then we’d also have QVec, QRect, QMath)
BTW, as a side note, in the end this project morphed to something else. At the time doing the whole thing (without debugger, mind you, and for the browser plugin) was an insane task. We had our own network system (supported both mac & win, and back then that meant handle byte ordering when compacting data), math system (with some limitations), pathfinding system (based on Warcraft 3 iirc, can’t find any docs on it, sorry), and ai. At the time the project changed, we had the clients always in sync, what was biting in the *** was deadlocks when “large crowds” collided. Given that all this was done by 2 guys (shout out to Ramon Axelrod, without his guidance none of it would have happened), I was pretty amazed of how far we got.
Good luck with your endeavours!
Regards,
Nuno Afonso