Як мінімум, у грі OpenGL для Android є нитка інтерфейсу користувача та нитка Renderer, створена компанією GLSurfaceView
. Renderer.onDrawFrame()
повинні робити мінімум роботи, щоб отримати найвищий FPS. Фізика, AI тощо не потрібно запускати кожен кадр, тому ми можемо помістити їх в інший потік. Тепер ми маємо:
- Нитка рендерера - оновіть анімації та намалюйте поліси
- Ігровий потік - логіка та періодичні оновлення фізики, AI тощо
- Потік інтерфейсу користувача - лише взаємодія з інтерфейсом інтерфейсу Android
Оскільки ви ніколи не хочете блокувати потік інтерфейсу, я запускаю ще одну нитку для логіки гри. Можливо, це не обов’язково? Чи коли-небудь є причина запускати логіку гри в потоці візуалізації?