Minimal, sebuah gim Android OpenGL memiliki utas UI dan utas Renderer dibuat oleh GLSurfaceView
. Renderer.onDrawFrame()
harus melakukan pekerjaan minimum untuk mendapatkan FPS tertinggi. Fisika, AI, dll. Tidak perlu menjalankan setiap bingkai, jadi kita bisa meletakkannya di utas lain. Sekarang kita punya:
- Renderer thread - Perbarui animasi dan gambar polis
- Utas permainan - Logika & fisika periodik, AI, dll. Pembaruan
- Utas UI - Hanya interaksi Android UI
Karena Anda tidak ingin memblokir utas UI, saya menjalankan satu utas lagi untuk logika game. Mungkin itu tidak perlu? Apakah ada alasan untuk menjalankan logika game di utas renderer?
sumber