看板 GameDesign 關於我們 聯絡資訊
※ 引述《yoll522 (522)》之銘言: : 我遊戲的主迴圈大概如下 : while(quit!=ture){ 我不懂 SDL. 但我建議你用 timer 回圈, 而不要用 while loop, 因為這東西 代表將你的所有系統機能吸盡. 這會產生兩個壞處: 1. 在不同的電腦上, 效能會不一樣 2. 一 frame 裡的動作沒必要地精細 後者的問題就是, 你一秒到底檢查過多少次輸入, 以及做過多少 次輸出? 我認為你是過多了. 人類來說, 25 fps 已經去到很流 暢的效果, 也就是說, 一秒只需要執行 25 次. 而 60 fps 再上 去就沒有意義了. 從你寫的看, 我懷疑你執行了超過 60 次, 那就是效能上的浪費 . 另外更新顯示(輸入輸出)和遊戲邏輯運作, 應該使用不同的迴 圈. 盡可能將遊戲邏輯和系統邏輯分離, 方便移植. : 當然也有可能是我那些函式的內容設計的不夠好才會造成延遲 @@ : 不好意思麻煩各位高手給點意見,謝謝 -- 戰略遊戲版 SLG (C)lass > 8 戰略高手 > 11 GameTopics > 28 SLG 絕望人民共和國官方網站... http://chinesepeking.wordpress.com/ --
VVll:用while當然也是可以 但必須加個sleep避免 系統資源 被綁架 12/26 23:49
yoll522:請問什麼是timer loop? 12/27 00:30
yoll522:感謝大大的提醒,難怪我之前再用執行緒時如果while 12/27 00:30
yoll522:沒有delay一下,程式一直行瞬間當掉,大概就是因為 12/27 00:31
yoll522:我執行緒的while把所有效能全部吃光了 12/27 00:31
yoll522:另外你說的遊戲邏輯跟系統邏輯我之前也沒想到,感謝你 12/27 00:33
yoll522:等之後有時間的話我想再重寫一次整個遊戲架構,不然好爛 12/27 00:34
fasthall:可參考看看MVC pattern 找些開源的遊戲來看看source code 12/27 01:34
juicefish:25fps是指人眼普遍的最高視覺頻率 在指令鍵簡單的可以 12/27 03:16
juicefish:60fps甚至120fps那種比較是格鬥或動作遊戲比較需要用到 12/27 03:16
juicefish:指令輸入的順暢感會有差異 12/27 03:17
yoll522:瞭解了,感謝你們的幫忙 12/27 07:39
BSpowerx:就算用delta time去控制速度,也要設一個sleep把fps控制 12/27 09:29
BSpowerx:在60,畢竟超過60基本上沒什麼意義 12/27 09:29
yoll522:原來如此,我那時候以為既然有delta time的話就不需要限制 12/27 09:43
yoll522:fps了,結果卻造成系統浪費效能,感謝你們的幫忙與提醒 12/27 09:44
yoll522:之前沒限制的時候我fps時cpu跑25,限制fps60後cpu是2 12/27 09:47
yoll522:之前沒限制fps的時候我cpu是25『上一行打錯』 12/27 09:47
LayerZ:fps要看遊戲說,對FPS這種類遊戲100fps跟120fps其實還是有 12/27 10:07
LayerZ:差別..會影響到一瞬間甩槍的精準度 12/27 10:07
LayerZ:我甚至覺得只要能自由調整視角的都要維持60..不過這好像比 12/27 10:09
LayerZ:較難辦到 如果視角固定,又沒有太多瞬間的動作 30fps還ok 12/27 10:10
azureblaze:視角會動的低於45我就分得出來 12/27 10:18
azureblaze:高於60一般沒意義,因為顯示器通常是60Hz 12/27 10:18
LayerZ:給樓上,我以前也是這樣覺得,現在似乎不只了.. 12/27 10:20
VVll:玩第一人稱射擊 FPS 30跟60就很明顯 12/27 21:32
實話說, 我一向都是用 10 fps. ※ 編輯: chenglap 來自: 61.18.51.146 (12/27 21:34)
Bencrie:開 vsync 就會自己鎖 fps 了,省效能又可以消除 tearing 12/28 00:47