現在游戲中的數字往往非常大,幾億,幾兆屢見不鮮。而游戲的傷害壓縮往往僅在顯示層面,如一萬億的數字顯示為一億,那么底層仍然要計算如此龐大的數。據我所知,一些游戲已經出現過數字溢出的問題,如DNF曾經在90版本出現過附加傷害溢出問題(21ebug):當附加傷害傷害超過約21e時,總傷害反而大幅減少。推測原因是附加傷害使用int32類型存儲,數據范圍是-2,147,483,648~+2,147,483,647。據我所知,大多數編程語言提供的標準數據類型,最大整型是int64與unsignedint64,uint64最大表示整數是3.402823669209385e+38。而linux環境gcc提供了int128等,c#,rust等也提供了int128。而int256,或是BigInteger的實現往往依賴于高精度算法,處理速度較慢。我想知道對于那些使用天文數字的游戲,數據類型是如何選擇的。
網站導航
- zblogPHP模板zbpkf
- zblog免費模板zblogfree
- zblog模板學習zblogxuexi
- zblogPHP仿站zbpfang