Optimizaciones
Métodos Gráficos

Guía Práctica para la Optimización en Móviles

Esta guía es para desarrolladores nuevos al desarrollo de juegos móviles, quienes están sintiéndose probablemente abrumados, y ya estén planeando, y creando un prototipo de un nuevo juego móvil o portando de un proyecto existente para correr suave en dispositivos móviles. También debe ser útil como una referencia a cualquiera que esté haciendo juegos móviles o juegos del navegador que tiene como objetivos PCs viejos y netbooks.

La optimización es un tema amplio, y cómo usted lo haga depende mucho en su juego, entonces está guía es una para leer como una introducción o referencia en vez de una guía de paso-a-paso que garantiza un producto suave.

Todos los dispositivos móviles no son creados igual

La información acá asume el harware alrededor del nivel del conjunto de chips de Aplle A4, el cual es utilizado en el iPad original, el iPhone 3GS, y la 3ra generación del iPod Touch. En el lado de Android, esto significaría un celular Android como el Nexus One, o la mayoría de celulares que corren en Android 2.3 Gingerbread. En promedio, estos dispositivos fueron sacados temprano en el 2010. Afuera del mercado hambriento de aplicaciones, estos dispositivos son los más viejos, y la porción pequeña. No obstante, deberían ser soportadas, ya que estos representan una grande porción del mercado.

También hay celulares más lentos, y mucho más rápidos afuera también. La capacidad computacional de los dispositivos móviles está aumentando en una tasa alarmante. No se escucha de una nueva generación de una GPU móvil que sea cinco veces más rápida que su predecesor. Esto es rápido, cuando se compare a la industria PC.

Para una visión general de los spects técnicos de dispositivos móviles Apple, ver la página Hardware.

Si usted quiere desarrollar para dispositivos móviles que serán populares en el futuro, o exclusivamente para dispositivos de alta gama ahorita, usted será capaz de salirse con la suya haciendo más. Ver Futuros dispositivos móviles.

Los de baja gama, como el iPhone 3G y la primera y segunda generación de iPod touches, son limitadas extremadamente y un cuidado mayor se debe realizar al optimizarlos. Sin embargo, hay una pregunta acerca si los consumidores no han actualizado su dispositivo comprarán apps. Entonces al menos de que usted esté haciendo una app gratis, no sería bueno soportar el hardware viejo.

Hace de la optimización una consideración de diseño, no un paso final

El científico de la computación británico Michael A. Jackson a menudo es citado por sus Reglas de Optimización de un Programa:

La primera regla de la optimización de un programa: No lo haga. La segunda regla de la optimización de un programa (para expertos solamente): No lo haga aún.

Su razón fue que, considerando qué tan rápido los computadores son, y cómo su velocidad está aumentado, hay un buen chance que si usted programa algo, esto correrá lo suficiente rápido. Además de esto, si usted intenta optimizar de manera muy pesado, usted podría sobre complicarse las cosas, se limite, o cree una tonelada de bugs.

No obstante, si usted está desarrollando juegos móviles, hay otra consideración: El hardware que está en el mercado ahorita es muy limitado comparado a otros computadores que nosotros estamos acostumbrados a trabajar, por lo que riesgo de crear algo que simplemente no va a correr en el dispositivo se balancea con el riesgo de sobre complicarse que viene con la optimización al principio.

A través de esta guía nosotros vamos a intentar apuntar a situaciones dónde la optimización puede ayudar mucho, contra las situaciones dónde sería un desgaste.

Optimizaciones: No es solamente para los programadores

Los artistas también necesitan saber las limitaciones de la plataforma y los métodos el cual usualmente les permite movilizarse, para que puedan realizar decisiones creativas que dan fruto, y no tengan que re-hacer el trabajo.

  • Hay más responsabilidad que puede caer en los artistas si el diseño del juego llama para que se dibuje una atmósfera e iluminación en las texturas en vez de ser baked.
  • Donde cualquier cosa puede ser baked, los artistas pueden producir contenido para el baking, en vez de un renderizado en tiempo real. Esto le permite a ellos ignorar las limitaciones técnicas y trabajar libremente.

Diseñe su juego para que haya un tiempo de ejecución suave en sus manos

Estas dos páginas dan un detalle en general acerca de las tendencias en el rendimiento del juego, y le explicarán a usted acerca de cómo mejor diseñar la optimización de su juego, o cómo usted puede de manera intuitiva averiguar qué cosas necesitan ser optimizados si usted ya se fue a la producción.

Profile (perfile) antes y a menudo

El profiling (perfilamiento) es importante ya que le ayuda a usted discernir qué optimizaciones darán fruto con un aumento de rendimiento grande y cuáles son una perdida de tiempo. Debido a la manera en cómo el renderizado se maneja en un chip separado (GPU), el tiempo que toma renderizar un frame no es el tiempo que el CPU toma más el tiempo que toma el GPU, en vez es el mayor de los dos. Esto significa que si el CPU está disminuyendo las cosas, optimizar sus shaders no va a aumentar la velocidad de frame para nada, y si el GPU está disminuyendo las cosas, optimizar la física y los scripts no va a ayudar en absoluto.

A veces diferentes partes del juego y diferentes situaciones se realizan de manera diferente, por lo que una parte del juego puede causar 100 frames de milisegundos debido a un script, y otra parte del juego puede causar la misma disminución, pero por algo que está siendo renderizado. Por lo que, por lo menos, usted necesita saber dónde están todos los cuellos de botella si usted va a optimizar su juego.

Perfilador de Unity

El Profiler (perfilador) principal en Unity puede ser utilizado cuando se apunte a iOS, Android o Tizen. Ver la guía del Profiler para unas instrucciones básicas acerca de cómo utilizarlo.

Profiler Interno

El profiler (perfilador) interno arroja texto cada 30 grames. Puede ayudarlo a averiguar qué aspectos de su juego están disminuyendo las cosas, sea física, scripts, o el renderizado, pero no va en más detalles, por ejemplo, no dice cuál script o cuál renderizador es el culpable.

Ver la página Internal Profiler para más detalles acerca de cómo funciona y cómo prenderlo.

El Profiler indica que la mayoría del tiempo se gasta en la renderización

El Profiler indica que la mayoría de tiempo se gasta afuera del renderizado

Tabla de contenidos

Optimizaciones
Métodos Gráficos