Quanto bene devo conoscere C# per sviluppare giochi Android e iOS in Unity?
Con una conoscenza di base di python, sarà meglio fare giochi per piattaforme desktop. Cioè per PC.
Questo perché per lo sviluppo di Android hai VERAMENTE bisogno di tenere sotto controllo l'uso delle risorse, minimizzare la generazione di spazzatura, ecc, e questo richiede più sforzo che programmare per PC desktop. Fondamentalmente, la piattaforma Android è meno indulgente.
Per esempio, il primo programma che ho cercato di portare su Android (stavo aiutando qualcuno) non è nemmeno partito, perché qualcuno ha avuto la brillante idea di contrassegnare tutte le texture come bisognose di formato ARGB32 non compresso, ed erano tutte 2k o 4k, anche per le cose più piccole. Il che significa che l'applicazione ha esaurito la memoria e si è bloccata all'avvio. Questo perché UNA texture 2048x2048 in formato ARGB32 richiede 16 megabyte di memoria.
Per esempio, c'è questa interessante guida per l'ottimizzazione mobile:
Optimizing unity games (Google IO 2014)
Quando si lavora su piattaforma PC, di solito non è necessario fare nulla del genere.
L'altro problema è la garbage generation, e C# non ha molti meccanismi per farvi fronte. Per esempio, vedi questo articolo:
C# Memory Management for Unity Developers (part 1 of 3)
C# memory and performance tips for Unity
Quindi, fondamentalmente, ci vorrà più di una "piccola conoscenza di python". Come minimo dovreste essere in grado di scavare tra pile di informazioni che spiegano questo o quel comportamento di C# quando si tratta di prestazioni.
In generale, raccomanderei di attenersi alla programmazione per piattaforme desktop, almeno all'inizio.
Articoli simili
- Unity vs Unreal 2018, Unreal è ancora significativamente migliore nelle prestazioni? O Unity può ora sviluppare giochi di livello quasi AAA/PS4?
- Confronto dei costi di sviluppo dei giochi: iOS, Android, DS, PSP. Perché è più economico sviluppare su iOS?
- Come prevenire i lag nei giochi fatti con Unity per Android e iOS
- Quale motore di gioco è superiore per sviluppare giochi VR e AR: Unreal, Unity o un altro motore di gioco?