desarrollo de videojuegos para consolas

¿Cómo es desarrollar para las diferentes consolas?

desarrollo de videojuegos para consolas

Corey Bloyd, un experimentado desarrollador de videojuegos trabajando actualmente para Munkeyfun ha decidido reponder esa respuesta, exponiendo sus vivencias al trabajar con una gran cantidad de consolas que van desde el PS1 hasta el Xbox 360.

Bloyd utiliza algunos términos especializados, pero la descripción de sus peripecias con los diferentes aparatos permiten entender los dolores de cabeza que cada uno le dio y los cuales nos explica a continuación:

PlayStation

Todo es sencillo y al punto. Con algunos años de dedicación uno podía entender todo el PS1 hasta el nivel bit. Comparado con lo que podías hacer con las PCs en aquel tiempo, era sorprendente. Pero cada paso del camino decías "¿en serio? ¿tengo que hacerlo así? Diablos. Ok, supongo... dame un par de semanas". Efectivamente no había debugger. Corrías lo que habías hecho y veías que sucedía.

Nintendo 64

Todo más o menos funciona. En su mayoría era rápido y flexible. Nunca sentías que lo estabas usando bien. Pero esta bien porque tus resultados medio mal hechos usualmente se veían mejor que con la mayoría de los juegos de PS1. Cada megabyte en el cartucho costaba mucho dinero. Había un debugger pero el debugger tenía a veces bugs completamente al azar [...].

Dreamcast

El procesador era raro (Hitatchi sH-4). El procesador de gráficos era raro (un predecesor de los chips PowerVR en los iPhones modernos). Había un montón de características que no sabías como usar. Microsoft como que quiso configurarlo como un DirectX box tipo PC pero no siguió adelante. Eso no hubiera funcionado de todos modos. parecía que podría haber sido muy 'cool'. ¡Pero el PS2 iba a ser mucho mejor!

PlayStation 2

Te dan un montón de manuales de 10 pulgadas de grueso escritos por ingenieros de hardware japoneses. La primera vez que lo lees nada tiene sentido. La segunda vez, el tercer libro tiene un poco más de sentido por lo que aprendiste del octavo libro. La máquina tiene diez procesadores diferentes (IOP, SPU1&2, MDEC, R5900, VU0&1, GIF, VIF, GS) y seis espacios de memoria diferentes (IOP, SPU, CPU, GS, VU0&1) y todos trabajan en formas completamente diferentes.

Hay tantas cosas increíbles que puedes hacer, pero todas requieren giros hacia atrás a través de cuchillas invisibles de violaciones de acceso (segfault) [una forma de decir circo maroma y teatro]. Lograr que el primer triángulo apareciera en la pantalla le llevó al equipo un mes porque incluía enrutear comandos a través de rarezas como R5900->VIF->VU1->GIF->GS sin feedback sobre qué estabas haciendo mal hasta que lograbas que cada paso estuviera correcto.

Si estabas dispuesto a modificar tu juego para acoplarse a la máquina, podías obtener resultados asombrosos. Había un debugger para el procesados central (R5900). Trabajaba bastante bien. Para el resto de los procesadores simplemente tenías que escribir código sin bugs.

Gamecube

No trabajé con el GC mucho. Parece realmente flexible. Como que podías hacer cualquier cosa pero nada sería terriblemente malo o grandioso. El procesador no era muy rápido pero sus características fueron trágicamente sub-utilizadas en comparación al Xbox.

El CPU tenía una latencia RAM increíblemente baja. Cualquier estructura de datos complicada o desordenada debería estar bien (en teoría). Sólo hazlo. Pero más de la mitad del RAM estaba dividida detrás de una barriera de latencia asombrosamente alta. Así que tenías que organizar tus datos manualmente en Active vs Bulk. Tenía un SIMD [procesador con capacidad de procesamiento en paralelo] que trabajaba a medias y que sólo hacía 2 operaciones con flotantes al mismo tiempo, en lugar de 1 o 4.

PlayStation Portable

Tampoco hice mucho aquí. Se presentó como un PS2 más sencillo pero por dentro se sentía más como un PS1 atiborrado. Trataron de mejorar algunas partes para que fuera menos difícil trabajar con él, pero esas partes se sentían torpes comparadas al diseño original. Casi teniendo la velocidad de rasterización del PS2 en una resolución más pequeña significaba que no te tenías que preocupar por pixeles mezclándose.

Xbox

Huele como una PC. Habían algunos trucos que podías excavar para sacar más de la máquina. Pero en su mayoría era una bendición suficiente tener una especialización única y consistente de PC contra la cual desarrollar. ¡El debbuger funcionaba! ¡De verdad, de verdad funcionaba! PIX fue entregado a mano por ángeles.

Xbox 360

[...] de verdad huele a PC -hasta que la exploras- El GPU es genial - excepto que el EDRAM limitado significa que tienes que pensarlo dos veces antes de usar el requerimiento antialiasing ¡WTF! ¡santa mierda hay muchos registros de SIMDs! ¡4 flotantes x 128 registros x 6 bancos de registros = 12k registros!

Te dan un Dx9 y todo funciona, pero si exploras más encuentras mejores formas de hacer las cosas, más y más. Eventualmente tu código no se ve nada como PC-DX9 ¡y funciona muuucho mejor que antes! ¡El debugger es asombroso! ¡PIX, PIX! ¡Te beso!

PlayStation 3

Una caja de 95 libras aparece en tu escritorio junto a un impreso con instrucciones de 24 pasos de cómo encenderlo la primera vez. Todos lo intentan, la mayoría falla al intentar prenderla. Eventualmente uno lo logra y se pone a configurar la máquina de todos los demás. Sólo hay un procesador. Parece que es capaz de hacer todo, pero no puede.

El procesador de sonido (SPU) parece que debería ser realmente asombroso pero no para nada que tú o nadie más esté haciendo. El debbuger del procesador funciona bastante bien pero no hay debugger para el SPU. No había nada como PIX al inicio. Eventualmente algún desarrollador de Sony se cansó e hizo su propio debugger tipo PIX.

El procesador de gráficos es muy, muy decepcionante... la mayoría trata de trabajar con el procesador central, pero éste no puede manejar la carga de trabajo. Algunos buscan más a fondo en el procesador de sonido ¡y por dios, son rápidos! Desafortunadamente se dan cuenta que el SPU necesita estar dedicado casi todo el tiempo en compensar las debilidades del procesador de gráficos.


¿Qué les parece? Creo que seré un poco menos recalcitrante la próxima vez que encuentre un bug o me queje porque el juego que me muero por tener tarda mucho en publicarse para mi consola de elección.