Tối thiểu, một trò chơi Android OpenGL có một luồng UI và một luồng kết xuất được tạo bởi GLSurfaceView
. Renderer.onDrawFrame()
nên làm việc tối thiểu để có được FPS cao nhất. Vật lý, AI, v.v. không cần phải chạy mọi khung hình, vì vậy chúng ta có thể đặt chúng vào một luồng khác. Bây giờ chúng tôi có:
- Chủ đề kết xuất - Cập nhật hình động và vẽ polys
- Chủ đề trò chơi - Logic & vật lý định kỳ, cập nhật AI, v.v.
- Giao diện người dùng - Chỉ tương tác với giao diện người dùng Android
Vì bạn không bao giờ muốn chặn luồng UI, tôi chạy thêm một luồng cho logic trò chơi. Có lẽ điều đó không cần thiết mặc dù? Có bao giờ một lý do để chạy logic trò chơi trong luồng kết xuất không?