在多人遊戲我開發,我們有一個是浮點數幾個值。後端(在PHP中)和前端(在Flash中)偶爾會對這些數字執行相同的計算,以儘量減少通信。我可以假設Flash和PHP會生成相同的浮點數嗎?
我目前正在確保雙方都使用64位雙打,但我可以安全地假設所有的計算都是一樣的嗎?
例如,字符串到浮點轉換怎麼樣 - 我應該擔心Flash具有可能與PHP不同的實現嗎? (如果發生這種情況,我們的遊戲將失去同步 - 客戶端會認爲它處於一種狀態,而服務器處於另一種狀態)
隨着一些測試,它出現是相同的,但我只是不確定。有人能爲我澄清這一點嗎?
你存儲在一個64位浮點遊戲狀態?你可以使用一個64位整數嗎?花車是因爲,比方說,IE 6 – 2010-05-17 18:16:12
最邪惡的事情,我想補充閃光的數學不好,當涉及到精密像這樣。你可以在這裏閱讀更多 - http://www.rogue-development.com/blog2/2009/05/reminder-floats-are-not-precise/ – Glycerine 2010-05-17 18:20:29
你說得對,你在你的評論說。您可以從平臺之間測試這種邊緣案例開始,以檢查不一致性。 – luvieere 2010-05-17 18:37:47