首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

MIDP 2.0 遊戲開發系列 (5):遊戲核心架構設計——調度器與任務管理

     編輯:Java 程式設計入門

遊戲與桌面程式的差異

遊戲不能靠訊息驅動 (掃雷除外),單一畫面需高速更新,必須靠時鐘驅動。大多數遊戲在時鐘驅動下定時渲染幀,且需在幀間隙處理輸入、事件、碰撞、AI 計算,高效靈活的調度器是核心。

調度器組成

  • 時鐘驅動器:提供精確虛擬時間。虛擬時間流逝遊戲運行,暫停則遊戲暫停,可調速,所有任務依賴虛擬時間且不知時鐘狀態,簡化時間運算,方便除錯。
  • 任務管理器:維護任務列表,知下一任務。三類任務:
  1. 渲染任務:每幀結束執行,更新畫面。
  2. 幀任務:每幀執行一次 (如繪製背景)。
  3. 時間任務:指定時間點/區間觸發,執行一次或多次,完成即刪除。

調度器運作流程

  1. 從時鐘取得虛擬時間。
  2. 執行時間任務。
  3. 執行幀任務。
  4. 執行渲染任務。
  5. 取得虛擬時間計算本幀耗時。
  6. 清理過期任務。

為何不用多執行緒?

  1. 遊戲任務多、生命週期短,建立/銷毀執行緒開銷大,難控制同步。
  2. OS 搶先式多任務,無法保證任務在幀內完成或不被中斷。

調度器模擬執行緒管理器:依序執行隊列任務,精確計算耗時。硬體不足時可跳過非必要任務 (如特效);硬體有餘可多執行任務 (如更多 AI),自動動態調節。平滑增刪任務,避免執行緒建銷開銷。

技術選擇

僅需少量 API,決定用 J2SE 開發核心便於除錯,測試無誤再移植 MIDP。

參考:Marshall《Game Programming Gems 3》

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved