Los puertos para PC de los juegos de consola a menudo salen uno o dos meses después. ¿Por qué es esto?
Los juegos están escritos en idiomas que también se compilan en PC, por lo que la lógica del juego debe compilarse sin problemas. ¿Qué los detiene entonces? ¿Representa código o qué?
Respuestas:
Hay varias razones por las que un puerto de PC puede demorar un poco. (Pido disculpas si parece que me estoy repitiendo en algún lugar; esto está escrito sobre la marcha).
Adaptación de controles y jugabilidad
Cuando juegas en una consola, esto solo pone ciertas limitaciones en lo que puedes hacer, ya que todo lo que el usuario tiene es un gamepad.
Simplemente crear asignaciones 1: 1 entre las teclas del teclado y las entradas del controlador no siempre es una buena idea, si es posible, por lo que a veces lleva más tiempo encontrar una buena solución.
Abstracción de hardware / fragmentación
Cuando desarrollas, por ejemplo, para una Wii U, sabes exactamente cómo se comporta una Wii U, porque todas las Wii Us son idénticas. Esto no es cierto para las PC; tiene muchas tarjetas gráficas y CPU diferentes, y a veces algo no funciona en algunas de ellas. Se necesitan muchas pruebas para descubrir estos errores, y corregirlos también lleva tiempo.
Si nunca ha usado su motor para hacer una versión para PC, también debe codificar su abstracción de hardware en consecuencia. Algunos juegos quieren soportar múltiples versiones de DirectX y OpenGL para Linux / Mac, y todo eso lleva tiempo para escribir si no se ha hecho antes.
Contención de recursos
En las consolas, el juego no tiene que competir con un sistema operativo para obtener recursos, etc. No hay muchas cosas en segundo plano.
En una PC, tiene el sistema operativo en ejecución, tiene una gran cantidad de programas en segundo plano, y todo esto significa que no obtendrá una participación tan grande como esperaba. Esto significa que a veces necesita realizar optimizaciones adicionales, especialmente para jugadores en sistemas de gama baja
Mejora de activos
Con una consola, tienes un objetivo fijo, por lo que escribes sombreadores, etc. para que coincida con ese objetivo.
En una PC, algunas tarjetas gráficas admiten funciones más avanzadas, y tal vez desee utilizar un mejor sombreador para esas. Bueno, eso significa que tendrás que escribir ese sombreador.
Cosas específicas de la plataforma
Los SDK de consola pueden tener muchas funciones convenientes que no se asignan fácilmente a una PC; por ejemplo, pueden proporcionar acceso a temporizadores de hardware o una buena API de sonido.
Esas cosas no suelen estar disponibles en PC; necesita usar otras formas de lograr esas cosas y tal vez eso cambie la forma en que debe abstraer las diferencias de la plataforma.
fuente
Una razón simple es que una consola tiene un único conjunto de hardware que es el mismo por consola.
Su XBox, PS3 y Wii tienen el mismo hardware que sus vecinos XBox, PS3 y Wii. Sin embargo, su computadora tiene una CPU diferente, una tarjeta gráfica diferente, una cantidad diferente de RAM, de hecho, toda la configuración y la configuración del sistema operativo, los controladores instalados podrían ser una permutación completamente única que ninguna otra persona en el mundo tiene.
Esto es lo que dificulta el puerto a una PC. Debe tener en cuenta cada pieza de hardware posible dentro de los requisitos mínimos del sistema y superiores. Ese es un proceso complicado y difícil de programar y depurar. Es muy difícil para los desarrolladores conocer cada configuración para programar y casi imposible ejecutar pruebas en estas configuraciones.
Una vez que lo desarrollan para PC, los desarrolladores realizan pruebas exhaustivas en casa, pero también puede depender de las pruebas beta de los usuarios durante más de un par de semanas a algunos meses. Esta externalización de pruebas con reproductores beta antes del lanzamiento oficial del puerto para PC suele ser la razón por la que se observa la brecha en las fechas de lanzamiento entre las consolas y la PC.
fuente
Portar código a una nueva plataforma lleva tiempo. Crear un temporizador de nanosegundos para Xbox 360 (nunca lo he desarrollado en XNA) necesitará una implementación diferente que el mismo temporizador de nanosegundos en Linux, Mac o Windows. Ahora imagine que tiene cientos de estos tipos de funciones que necesitan portabilidad, miles si el motor es lo suficientemente grande.
Puede llevar un mes o dos de codificación agregar estas diferentes implementaciones para las nuevas plataformas. Además de esto, no siempre puede usar las mismas bibliotecas en Xbox 360 que en Windows, Playstation 3 o alguna otra plataforma. Esto significa que posiblemente tenga que usar una biblioteca completamente nueva para hacer lo mismo que hizo en la versión de Xbox 360.
En general, este tipo de cosas se suman en una gran cantidad de tiempo. Portar a una nueva plataforma rara vez es fácil para grandes títulos AAA.
fuente
No tiene casi nada que ver con ser difícil en muchos casos.
Simplemente no es una prioridad. Están girando para apenas salir por la puerta a tiempo. Cada minuto de diferencia lleva tiempo para dar cuenta. Si puede lanzar en algunas consolas o en la PC antes de la fecha límite, hágalo primero y luego cierre los puertos. Salga temprano, gane más dinero. En general, las consolas han funcionado mejor para los juegos en caja de esta última generación, aunque ha comenzado a cambiar, las nuevas consolas podrían cambiar eso.
Además, en algunos casos, los fabricantes de consolas otorgan beneficios a los lanzamientos exclusivos, por lo que el editor obtiene un descuento o algo similar si lanzan primero en una consola en particular y luego en otras plataformas. Nada técnico al respecto.
fuente
Inicialmente, los juegos son más difíciles de hacer en una consola que en una PC. Además, las consolas tienen especificaciones muy diferentes y hardware diferente entre nintendo, sony y microsoft, lo que no solo resulta en un rendimiento diferente, sino que también significa diferentes problemas de cuello de botella.
Por lo general, el juego solo modificará su motor para maximizar la calidad y el rendimiento en cada consola.
Al adaptarse a la PC, hay otros problemas. Las consolas son homogéneas, lo que significa que todas las consolas tienen el mismo hardware (todas las PS3 tienen el mismo rendimiento de hardware). Cuando crea su juego para PC, apunta a una especificación mínima, pero también permite al usuario aumentar la calidad para PC más potentes. Los juegos destinados a PC están menos optimizados, pero son más fáciles de hacer para los programadores.
La programación en consola tiene una ventaja: permite a los programadores maximizar el rendimiento, por lo que cualquier juego de consola siempre funcionará bien.
En una PC, es peor, porque hay mucho hardware por ahí, pero concedido, es más libertad, el mejor juego de aspecto resultante siempre estará en la PC, porque la PC siempre está a la vanguardia, a un costo.
Portar un juego de la consola a la PC puede ser complicado, porque la consola está diseñada para el rendimiento del juego, mientras que la PC no, pero en general, es mucho más fácil portar un juego de la consola a la PC que lo contrario, porque la consola tiene mucha menos memoria, algo así como 2 o 4 veces menos.
Cambiar el código para adaptarlo a esta restricción de memoria siempre significará una reprogramación completa.
No creo que sea difícil transferir un juego de la consola a la PC, es solo una cuestión de API. Las empresas y programadores que trabajan solo con consolas tendrán dificultades para portar a la PC, porque no están acostumbrados, sino también porque se adaptan constantemente a la API de la consola, por lo que su código a menudo responde a la restricción del compilador de la consola, y no necesariamente se preocupa por las API de PC.
Por supuesto, los motores se pueden programar para que se ejecuten en todas las consolas y PC, una vez hecho esto es más fácil, es mejor que decirle a sus programadores que transfieran el motor a la PC después de que se les haya dicho que nunca se planeó durante 3 o 4 años.
Las consolas TL; DR son homogéneas y la última generación de consolas, las PC son heterogéneas y el hardware y la API evolucionan constantemente. Los costos se reparten entre la programación y la construcción del hardware, que son compromisos.
Una buena cosa sería permitir que todo el hardware ejecute todo, pero los precios de las consolas se compensan porque las compañías de juegos pagan una licencia a los fabricantes de consolas, por lo que bloquean su hardware para ejecutar solo las compañías de juegos que pagan. Está desordenado.
fuente