Se utilizzi C o C++ per sviluppare o personalizzare un motore grafico, i seguenti requisiti sono fondamentali per l'integrazione del supporto Android nel tuo motore.
- Sfrutta gli strumenti di sviluppo Android
- Costruire un'attività
- Disegna sullo schermo
- Elabora gli eventi di input
- Uscita audio
- Gestisci la memoria
- Testa e perfeziona
- Pubblica su Google Play
I requisiti descritti in questa pagina non insegnano come sviluppare un motore di gioco da zero, ma identificano piuttosto le aree in cui Android è relativamente unico rispetto ad altre piattaforme.
Sfrutta gli strumenti di sviluppo Android
Android Studio include strumenti che puoi usare per:
- Configura il progetto
- Crea, sottoponi a debug e pacchettizza il tuo gioco
- Esamina le prestazioni del gioco usando profilatori di sistema, CPU e memoria
- Controlla i contenuti del pacchetto o del bundle di applicazioni del tuo gioco
- Integra funzionalità aggiuntive dell'SDK Android e di NDK
L'ispettore grafica Android può caratterizzare le prestazioni del rendering del tuo gioco e aiutarti a esaminare i dettagli dei frame visualizzati utilizzando la profilazione dei frame.
Se usi principalmente Microsoft Visual Studio, puoi usare l'estensione Android Game Development (AGDE) per aggiungere un target Android ai progetti esistenti. AGDE supporta il debug nativo in Visual Studio e include versioni autonome di molti degli strumenti di profilazione di Android Studio.
Costruire un'attività
Il gioco deve creare e interagire con un
Activity
. Scopri di più sul ciclo di vita delle attività su Android per capire quando un'attività viene creata, avviata, ripresa, messa in pausa, arrestata ed eliminata.
Scopri di più sulla libreria GameActivity
,
che integra e soddisfa le esigenze relative a Activity
(finestra di gioco,
ciclo di vita, rendering, gestione degli eventi) dei motori di gioco nativi C o C++.
Disegna sullo schermo
Il gioco deve disegnare oggetti e sprite sullo schermo. Scopri di più su SurfaceView
per Android e su come configurare la grafica nel tuo motore grafico.
I dispositivi Android supportano diverse frequenze di aggiornamento del display. Scopri di più sul rendering nei cicli di gioco per evitare interruzioni dei frame e glitch nei buffer dei frame.
Leggi come ottenere il pacing dei frame per un rendering fluido in OpenGL e Vulkan. Ottimizza la frequenza fotogrammi con Performance Tuner.
Utilizza l'anti-aliasing multicampione (MSAA) per migliorare la qualità del rendering. L'MSAA può essere utilizzato con un overhead minimo. Per saperne di più, consulta il post del blog Multisampled Anti-aliasing For Quasi Free - On Tile-Based Rendering Hardware.
Elabora gli eventi di input
Un motore grafico riceve eventi di input da diverse origini. Per un'esperienza di gioco coinvolgente, impara a supportare diverse origini di input Android:
Uscita audio
Il tuo motore grafico deve riprodurre l'audio su diversi dispositivi e versioni di Android. Scopri di più su Oboe, la nostra libreria audio C++ open source per incorporare audio ad alte prestazioni nel tuo gioco.
Utilizza Oboe per ottenere la latenza più bassa, evitare bug audio specifici e selezionare automaticamente la migliore libreria nativa disponibile (come AAudio o OpenSL ES).
Gestisci la memoria
Sui dispositivi Android, il sistema cerca di utilizzare la quantità di memoria di sistema (RAM) possibile ed esegue varie ottimizzazioni della memoria per liberare spazio quando necessario. Scopri come gestire l'utilizzo della memoria per evitare di rallentare o uscire dal gioco.
Testa e perfeziona
Un'app per Android ha un arresto anomalo ogni volta che si verifica un'uscita imprevista causata da un indicatore o un'eccezione non gestito. Scopri come rilevare e diagnosticare gli arresti anomali, leggere le analisi dello stack, le eccezioni di memoria e networking, come utilizzare Logcat e comprendere gli errori specifici di Java e Kotlin.
Pubblica su Google Play
I giocatori scaricano il tuo gioco con vari dispositivi Android in diversi paesi, condizioni della rete e piani dati. Scopri come utilizzare Google Play per pubblicare app bundle e pacchetti di asset per giochi di grandi dimensioni con i vantaggi di una rete CDN (Content Delivery Network).