Para un pequeño proyecto 3D, diría que Unity funcionará mejor en gráficos, porque el motor ha sido muy optimizado de forma nativa por profesionales talentosos. Si comienzas tu juego en Swift usando solo bibliotecas de Apple, deberás agregar bibliotecas gráficas adicionales que probablemente no puedan competir con las de Unity.
Para el código principal del juego, probablemente usarás C # en Unity. Su código se compilará en bytecode que será interpretado por la máquina virtual de Mono durante el tiempo de ejecución. Esto será ciertamente más lento que su código en Swift. Swift es un lenguaje moderno como C #, por lo que la calidad del código será comparable, pero el código Swift se compilará en un archivo binario nativo, su rendimiento será cercano a C. Además, Mono usa Garbage Collection, que crea picos de rendimiento desde tiempo al tiempo. Swift utiliza el conteo automático de referencias, por lo que no existe tal cosa.
No estoy seguro de si todavía es cierto para las versiones recientes de Unity, pero hubo un error en la versión de Mono enviado con Unity (hasta 4.5 al menos) que crea referencias estáticas de las variables pasadas a través de lambdas, lo que introduce fugas de memoria horribles que obviamente disminuye el rendimiento (en el mejor de los casos, o falla en el peor). Di un ejemplo de esto en mi charla en Unite Japan 2013 (ver las diapositivas “FLM en la vida real”). El GC también hace que sea una pesadilla depurar tu memoria, y tendrás que confiar en las herramientas de Unity, porque las herramientas de rendimiento de Apple solo verán una gran cantidad de memoria asignada por Mono …
- ¿Cuánto tiempo debería tomar desarrollar una aplicación similar a Yelp menos funcional para iOS?
- Cómo volver a reproducir mi Apple Music iOS 9 recientemente
- ¿Por qué Blackberry tiene menos aplicaciones que iOS o Android?
- ¿Alguien sabe alguna buena empresa de outsourcing gráfico?
- ¿Cuál es la característica más esperada de iOS 11?
Nuevamente, si está trabajando en un proyecto pequeño, la diferencia en el tamaño del archivo será bastante notable. Debido a que Unity incluirá Mono con tu juego, el binario será bastante grande. Probablemente haya muchas cosas del motor, incluidas las texturas, que probablemente no necesite, pero de todos modos también se incluirán. No solo espacio en disco, sino que el juego usará más memoria en general. De hecho, si toma una captura de fotograma de un juego vacío de Unity, verá que se cargan muchas texturas en su memoria gráfica de forma predeterminada.
Sin recursos de audio, un juego 2D típico hecho en Unity tendrá un tamaño de alrededor de 50 MB. Por el contrario, un juego creado de forma nativa con XCode tendrá alrededor de 10 MB. Creé 2 juegos 2D y 1 aplicación iOS completamente en Swift durante el año pasado y tienen menos de 15 MB.
¿Su juego necesitará gráficos modernos y limpios y no tiene los recursos para programarlos en Swift / Metal? Usa la unidad.
¿Planeas ir multiplataforma? Usa la unidad.
En cualquier otro caso, recomendaría XCode / Swift puro.