Come minimo, un gioco OpenGL per Android ha un thread UI e un thread Renderer creati da GLSurfaceView
. Renderer.onDrawFrame()
dovrebbe fare un minimo di lavoro per ottenere il più alto FPS. La fisica, l'intelligenza artificiale, ecc. Non devono eseguire tutti i frame, quindi possiamo inserirli in un altro thread. Ora abbiamo:
- Thread di rendering - Aggiorna animazioni e disegna polis
- Thread di gioco - Aggiornamenti di logica e periodica, AI, ecc
- Thread dell'interfaccia utente - Solo interazione dell'interfaccia utente Android
Dato che non vuoi mai bloccare il thread dell'interfaccia utente, eseguo un altro thread per la logica di gioco. Forse non è necessario però? C'è mai un motivo per eseguire la logica di gioco nel thread del renderer?