Sobre la dificultad de portar juegos

Comentario Original:

Resumiendo ¿Los multiplataforma entre PS3/PS4 y PSVita son más complejos de llevar a cabo de lo que se creía? Porque tal y como se pinta en tu entrada casi parece un casi Wii U – 3DS en lo que a diferencias se refiere.

No son más complejos de llevar a cabo en el caso de las consolas de Sony.

ps3vita1

PS Vita utiliza una API llamada GXM/libgxm yque es CASI IDÉNTICA a la API GCM/libgcm utilizada en PlayStation 3 a excepción del hecho de que el GCM/libgcm tiene una serie de de llamadas al CBEA, pieza de hardware que no se encuentra en PS Vita.

Ahora bien, si miramos el catálogo de PS Vita tenemos:

  • Juegos indie multiplataforma, los cuales no están pensados para utilizar el CBEA.
  • Ports de juegos de PS2, los cuales no están pensados para utilizar el CBEA.
  • Los juegos nuevos y exclusivos de la consola, los cuales obviamente no están pensados para utilizar un procesador que no se encuentra en la consola.

No podemos olvidar que la API gráfica es lo que comunica la aplicación con el hardware gráfico, desde el momento en que el PowerVR SGX 543MP4+ y el Nvidia G71/RSX son chips que soportan tanto el D3D 9.3 por un lado como el OGL 2.0 por otro se puede deducir que soportarán una API de bajo nivel casi idéntica. Obviamente habrá una serie de funciones de los PowerVR  que se encontraran mapeadas en el GXM, pero lo que es el conjunto global de funciones es casi idéntico, esto ayuda a que se puedan hacer juegos entre las dos plataformas pero no se puede plantear un juego de PS3 utilizando el CBEA en PS Vita porque ahí ya entra un elemento adicional que distancia aún más el código.

En el caso de PS4 la librería GXM se encuentra dentro de la GNM, por lo que Sony actualmente en lo que PS Vita/PS3/PS4 se refiere a nivel de desarrollo tiene sus plataformas unificadas, aunque otra cosa distinta es permitir que se puedan realizar ports porque ahí ya entra un tema que es la diferencia de potencia entre plataformas.

¿Y que ocurre con Nintendo? Hemos visto como para hacer ports de Wii a 3DS los desarrolladores se han estado más tiempo de lo normal en un port, el más reciente Xenoblade.

xenoblade2_2

¿El motivo? El hardware gráfico de 3DS y el de Wii es tan dispar entre si que es imposible que tengan la misma API… ¿motivos? Uno esta invertido respecto al otro.

  • Wii carece de Vertex Shaders, tiene una unidad de función fija y para modificar los vertices hace falta que la CPU PowerPC actual.
  • 3DS tiene Vertex Shaders, 4 unidades para ser más exactos y a 268Mz.
  • Wii tiene un Color Combiner/Pixel Shader llamado TEV (Texture Environment), en el caso del PICA200 de 3DS no existe un Pixel Shader.
  • 3DS tiene una serie de unidades de función fija que permiten hacer ciertos efectos especiales que no pueden ser mapeados en Wii.

Es decir, tu no puedes coger el mismo código Wii y ejecutarlo en 3DS… tienes que cambiar todo el código al completo ya que existe una enorme disparidad entre los dos hardware y precisamente una de las cosas que quiere resolver Nintendo en NX es dicha disparidad de la forma más efectiva posible, haciendo que a nivel de desarrollo ambas consolas sean una misma plataforma y quien sabe si a nivel de catálogo también.

En cuanto a la conversión Wii U – 3DS… es el mismo problema que existía con la conversiones PS3/360 a Wii, la disparidad del hardware provoca una disparidad en la API gráfica que hace que el juego tenga que re-escribirse de nuevo y esto es un tiempo de desarrollo más largo y costes más largos.

Espero que con esto haya resuelto tus dudas.

Anuncios