publicVariable – Talk

From Bohemia Interactive Community
Revision as of 16:08, 1 September 2006 by CrashDome (talk | contribs)
Jump to navigation Jump to search

"No guarantee" isn't quite right. PV sends stuff out on via TCP, which uses a "guaranteed delivery" packets (as opposed to UDP, which is what most of the MP traffic uses).
The complaints that "it doesn't always work" in multiplayer usually arise from improper or abusive MP coding.
In OFP, mission start is the synchronisation point for MP games. So PVs before mission start are not guaranteed to reach all clients. After that, the clients try to stay synchronized, and that means they make sure they receive the TCP packets in order. Any flood of TCP packets (such as a flurry of PVs, or a bunch of createvehicles) will likely cause Desync (=Backlog of TCP) in an internet environment and hence trouble. Finally, someone with a crappy connection can also cause desynchronization and weird MP effects. But if PublicVariable isn't working in these cases, you have bigger problems than just the variable puking.Dinger 13:09, 1 September 2006 (CEST)

I agree "No guarantee" isn't right. The explanation is however not quite correct. No TCP protocol is used, "reliability" is implemented purelt in UDP using handshaking. Other than that, the explanation of what happens when publicVariable is abuse is roughly correct, just disregard the TCP and imagine "guranteed message send using UDP" instead. --Suma 14:46, 1 September 2006 (CEST)
Come on now. There is no TCP involved OFP: Res. I suppose it's possible they're sent with the guarantee system, they are however OFTEN getting lost. But this is most likely due to the at times poor performance of the guaranteed delivery system. Especially during packetloss. I believe using 'reliable' in the same sentence as pV is very misleading. --Salisan 15:15, 1 September 2006 (CEST)
It has never been my intention to drag OFP through the mud with this pV thing. So please forgive me if I come off as doing so. However, I don't think of myself as an 'abusive' coder nor do I have unreliable equipment. I have at most time used pV for simple tasks and I believe that the UDP handshake works well in most situations. However, I would have to argue that the term "guaranteed" is loose and in some cases misleading itself. CoC_NS was closest to guaranteed as possible. However, it was basically a top-level net-code management system which was designed to ensure another layer of guaranteed delivery. That, IMO is a true "guaranteed" system. I thought pV was fine as is. As I said, it worked for most things and in some situations but 'guaranteed? ... I don't know about that. Did this handshake system envision the amount of boundaries we'd be pushing this engine to? --CrashDome 16:08, 1 September 2006 (CEST)