一個長久以來的疑問: 遊戲加速器的原理是什麼

玩網路遊戲時都會有加速器
請問:

1) 加速器是什麼原理, 會讓動作變快
2) 另外是哪部分硬體例如CPU, 記憶體, 還是硬碟負責這種機制呢
3) 網路的連線品質是影響加速器最主要的因素嗎
2010-06-19 11:53 發佈
Jonathan19820803 wrote:
玩網路遊戲時都會有加...(恕刪)

是說人物會不合遊戲規則的移動變快嗎?
我覺得那個都是修改網路封包, 讓伺服器誤判, 做出一些讓角色移動很快的決定,
可以說網路封包規律被破解了, 就會被惡搞
我是誰? 鼻孔癢!
1. 遊戲本身吃windows message的 WM_TIMER 用來作定時的一些更新, 所以如果有外部程式 狂丟 WM_TIMER message 給遊戲,就會使遊戲跑起來變快
(以世紀帝國為例, 因為採用 WM_TIMER , 而 WM_TIMER 本身的 priority 比較低, 所以造成只要有滑鼠一直在那邊移動, 遊戲就會跑得比較快的怪現象, 所以現在很少遊戲會採用 WM_TIMER 作 timing)

2. 遊戲本身有 timer thread, 透過修改系統的時間「可能」可以造成遊戲誤判時間經過多久

2.5 有些 工具可以把 GetTickCount 函式替換成自己的函式, 用來騙大部分的程式, 達到加減速的效果

3. 遊戲透過封包與伺服器 sync 動作, 譬如說 玩家移動一步 就送一個封包給伺服器, 如果封包沒編碼、沒有檢查序號、查核等,只要有程式側錄 反覆播放 就可能造成加速

4. 類似 3, 但是用戶端送出的封包是座標, 而不是動作, 所以只要送出想要去的座標, 就變成瞬移

5. 遊戲透過 QueryHighPerformanceCounter 但是玩家在中途改變 CPU 頻率, 造成加速的效果

6. 其他更笨而且沒作保護的 protocol ...
樓上程式高手阿
我也以為只有改網路封包
三樓回答的完整!! 鼓鼓掌

通俗一點講法,等於是有人在偷偷把你的手錶轉快的感覺,你早上起來發現
時間來不及了,動作會加快!!

所以很多以時間為依據(例如一秒鐘可以走多少公尺)的動作都會被加速.
重覆多送封包的方法也是有的,例如我走一步,可是在走一步的時候, 加速器
多會塞一個"走一步"的訊息. 結果server收到的是兩個"走一步"的訊息.
每個遊戲設計的方法不一樣, 不過大部份加速程式是以把client的時間調快
為主.

其實要防加速程式一點也不難, 一切動作給server去判斷就可以了, 只是
有沒有要做而已....
與失敗為伍者,天天靠盃都是別人的錯。 與成功為伍者,天天跟失敗切磋直到不再出錯。
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?