कम से कम, एक OpenGL Android गेम में UI थ्रेड और एक रेंडरर थ्रेड होता है GLSurfaceView
। Renderer.onDrawFrame()
Higest FPS प्राप्त करने के लिए न्यूनतम कार्य करना चाहिए। भौतिक विज्ञान, एआई आदि को हर फ्रेम को चलाने की आवश्यकता नहीं है, इसलिए हम उन्हें दूसरे धागे में रख सकते हैं। अब हमारे पास है:
- रेंडरर थ्रेड - एनिमेशन को अपडेट करें और पोल ड्रा करें
- गेम थ्रेड - तर्क और आवधिक भौतिकी, एआई, आदि अपडेट
- UI थ्रेड - केवल Android UI इंटरैक्शन
चूंकि आप कभी यूआई थ्रेड को ब्लॉक नहीं करना चाहते हैं, इसलिए मैं गेम लॉजिक के लिए एक और थ्रेड चलाता हूं। शायद यह आवश्यक नहीं है, हालांकि? क्या रेंडरर थ्रेड में गेम लॉजिक चलाने का कोई कारण है?