Los videojuegos y Apple

00:00 /28:52

Repasamos la historia del desarrollo de videojuegos desde el punto de vista de las librerías gráficas y cómo funcionaban los sistemas antiguos.

De esta forma, entendemos la evolución y cómo hemos llegado hasta hoy día, donde Apple intenta que el Mac sea reconocido como una máquina válida para videojuegos mientras la industria le da la espalda.

Un programa para reflexionar y entender las capacidades reales que un chip Apple Silicon tiene de cara a ser usado para videojuegos y por qué hay tan pocos juegos (comparativamente hablando con otros sistemas) si Apple nos vende que son iguales de capaces que el resto.

Convierte en un Senior iOS Developer con el Swift Full Stack Bootcamp. Encuentra toda la información aquí: IV Swift Full Stack Bootcamp 2024.

Descubre nuestro canal de Twitch en: twitch.tv/applecoding.

Descubre nuestras ofertas para oyentes:

---------------

Consigue las camisetas oficiales de Apple Coding con los logos de Swift y Apple Coding así como todo tipo de merchadising como tazas o fundas.

---------------

    Tema musical: "For the Win" de "Two Steps from Hell", compuesto por Thomas Bergensen. Usado con permisos de fair use. Escúchalo en Apple Music o Spotify.

    Transcripción


    Wanda, la comunidad de podcasts independientes en español.

    Hola, y bienvenidos a un nuevo episodio de Apple Coding Daily. Apple y los videojuegos una combinación que históricamente no ha funcionado nunca realmente bien ¿es culpa de Apple? En parte es culpa de elementos externos a la propia Apple también Lo cierto es que Apple los últimos años se ha puesto las pilas bastante para que sus sistemas también sean competitivos a nivel de videojuegos No estamos hablando de lo que es iPad o iPhone, es obvio que los juegos son uno de los elementos que más se utilizan dentro de el ecosistema iOS. De hecho, el setenta y cinco por ciento del total de las descargas de la App Store son videojuegos. Por lo tanto, tenemos que tener presente que efectivamente Apple sí funciona muy bien con los videojuegos.

    El problema es que Apple normalmente no suele darle protagonismo a este sector de tipos de aplicaciones, es decir, a este sector del entretenimiento. Cuando los videojuegos mueve mucho más dinero que la suma completa de las industrias del cine y de la música sumadas esto viene sucediendo desde hace bastantes años. Sin embargo, de vez en cuando Apple hace cosas, cosas con respecto al tema de los videojuegos entre ellas un evento que hizo estos pasados días con determinados periodistas un evento privado cerrado un briefing de periodistas donde enseñó varios videojuegos enseñó para ser exactos el Call of Duty Workstone mobile la versión móvil del Call of Duty Workstone enseñó un videojuego llamado Home Key Star Rails El Lego Star Wars: Cassawayce, el RAM, Legends y el de Medium. Juegos que muchos de ellos ya están disponibles desde hace tiempo. Pero nos enseñó en un contexto donde mostró el ecosistema completo de Apple enfocado a juegos, no solo iPhone y iPad también a bell tv y también los Mac utilizando Mc portátiles y Mac mini Mac mini con m2.

    Entonces la gran pregunta que se estarán haciendo ustedes es Realmente Apple puede ser Bueno puede ser un buen ecosistema Puede ser competitivo ¿Para juegos? Veámoslo. Tenemos que remontarnos unos cuantos años para entender la situación actual que tenemos de por qué Apple aparentemente no es competitivo en un mercado de videojuegos. Era una cálida tarde de verano en la antigua Grecia cuando los ordenadores no tenían ningún tipo de capacidad gráfica más allá que la de pintar píxeles. Antaño, un PC, un MacIntosh, tenían la capacidad de acceder a la memoria gráfica y pintar píxeles.

    Y cuanto más memoria gráfica tuvieran, más resolución podían tener. En el pasado, por ejemplo, yo tenía mi primer ordenador, PC, fue un Olivetti PCS dos ochenta y seis con una tarjeta gráfica VGA. Una tarjeta gráfica VGA no, En realidad tenía gráficos VGA, que no es lo mismo. ¿Por qué? Porque el chip gráfico de este ordenador ochenta y dos ochenta y seis se ubicaba en una dirección de memoria concreta, en la dirección c cero cero y a partir de ahí Yo podía escribir directamente en la memoria Bikes Bikes de cero a doscientos cincuenta y cinco.

    Obviamente, es el valor que guardo un Bikes. De forma que yo si colocaba un valor doscientos en el offset de memoria dirección principal c cero cero cero lo que estaba haciendo es poner un color doscientos de la paleta vga en el pixel más a la y más a la parte superior izquierda de la pantalla. Si yo ponía un valor doscientos cincuenta y cinco estaba poniendo un pixel de color blanco, si ponía uno cero estaba poniendo un pixel de color negro. Así que a partir de ahí yo podía rasterizar la pantalla, es decir, de aquí a aquí cuántas posiciones había, pues si la pantalla era de trescientos veinte por doscientos, ¿Qué sucedía? Pues que yo tenía trescientos veinte direcciones, trescientos veinte subsets para pintar cada pixel de la primera línea superior de la pantalla.

    Al llegar a la dirección trescientos veintiuno empezaba a pintar en la que había justo debajo y así cada trescientos veinte upsets de la dirección de memoria de c cero trescientos veinte por doscientos de resolución En total estaba pintando sesenta y cuatro mil pixeles sesenta y cuatro mil OPSEX desde la C000 para pintar distintos colores de cero a doscientos cincuenta y cinco, que era los colores que yo tenía en una en un chip gráfico de capacidad VGA lo que se llamaba videographics adaptador adaptador de gráficos de vídeo Con los años, los adaptadores gráficos fueron evolucionando. De pronto salen nuevos equipos que tenían gráficos Super VGA, que era seiscientos cuarenta por cuatrocientos ochenta y que podían llegar a tener muchos más colores por lo que empleaban más de un byz para cada color en cada posición de pixel dentro de la pantalla. Llegó un momento en el que todo esto fue ampliándose a tal resolución que al final el número de bice que tenía que utilizar el buffer de pantalla para pintar al ser cada vez más alto, hacia que los sistemas fueran cada vez más pesados a la hora de poder controlarlos con toda esa cantidad de colores, con toda esa cantidad de píxeles por pintar, etc.

    ¿Qué es lo que sucede entonces? Que de pronto se dan cuenta de que puede ser más práctico poner aceleración 3D. ¿Qué es una aceleración 3D? Las primeras tarjetas gráficas, no eran tarjetas gráficas independientes eran lo que se conocía como aceleradoras 3D aceleradoras 3D como de filus logic o las más famosas que eran las de 3DFX, que es una compañía que con los años Nvidia compró para quedarse con toda su propiedad intelectual con todo lo que habían creado. Estas aceleradoras eran gráficas, eran placas que funcionaban de forma complementaria, a la capacidad gráfica que ya tenía el equipo, de forma que se fueron dando capacidades de gráficos 3D a los equipos y los gráficos 3D funcionan de una forma totalmente distinta porque un gráfico 3D se dibuja en memoria para luego una vez está dibujado en memoria mostrarlo en pantalla y un gráfico 3D está basado en lectores yo pinto una imagen vectorial, yo pinto una figura geométrica, y a esa figura geométrica le aplico, si quiero, una textura que es una imagen bidimensional una imagen beat-map que lo que hace es ajustarse a esa textura de forma que puede ajustarse en manera que sea como un fail es decir que las partes que falten de dicha textura se repiten haciendo un patrón como podría ser una pared de ladrillos yo tengo una pared de ladrillos donde tengo sólo un trozo de la pared de ladrillos y esa pared de ladrillos se repite creando pues eso como un mosaico vale un tile que lo que hace es rellenar esa textura o puedo tener una textura que se adapte a lo que es el total de la geometría y se deforme de forma que se adapte en un modo estrecho.

    Esto has dicho de una forma hiper ultra básica. Pero para que entendamos la diferencia entre gráficos 2D, que es simplemente poner colores en memoria. En zonas de memoria y que se pinten colores punto a lo que es algo en 3D insisto al principio habiendo la diferencia gráficos 2D por un lado que era lo que tenían los sistemas aceleradoras 3D por otro lado. Pero de pronto empiezan a llegar Gráficas empiezan a llegar tarjetas gráficas que llevaban las dos cosas, llevaban la aceleración 3D incluida y la capacidad gráfica de por sí, por lo que se decide quitar dentro de lo que es la propia capacidad de los peces de los ordenadores la parte de gráficos y aislarla a un componente independiente. Ahí es cuando empiezan a aparecer las gráficas NVIDIA, las gráficas API, las gráficas IRRUL Logic, etcétera, etcétera, etcétera, ¿de acuerdo?

    Entonces esas gráficas ya tenían capacidad de pintar Buffer 2D y de pintar 3D acelerado. Pero ¿qué sucede? Pues que cuando cada uno hace su propia tarjeta con sus propios aceleradores de 3D ¿Qué sucede? Pues uno Que cada uno hace su propia librería para sí mismo Y además la va actualizando para que cada vez sea mejor Por lo que siguió en la época de aceleradoras 3D Tenía una 3D FX, pues resulta que los juegos estaban optimizados porque usaban las instrucciones de la 3DFX y hacía que funciona la mejor y cada tarjeta, cada fabricante quería poner Quería no. Tenía sus propias instrucciones de bajo nivel que eran las que sacaban el mejor rendimiento a nivel gráfico.

    Entonces, ¿qué sucede? Sucede que con el lanzamiento de Windows NT4 y Windows noventa y cinco Microsoft tenía la necesidad de establecer un estándar de trabajo gráfico para que en los videojuegos o cualquier tipo de aplicación que tuviera un uso gráfico intensivo tuviera una misma API Que se adaptara sea cual fuera cual fuera el fabricante Por lo que Windows noventa y cinco aparece la primera versión de direct x también con windows siete cuatro direct x es una capa intermedia entre el entre lo que es el controlador de la tarjeta y el sistema operativo de forma que yo programo directamente contra directx y el controlador de cada tarjeta se encarga de coger esas instrucciones y conectarlas a sus propias instrucciones. Para que funcionen lo mejor posible. Pero claro, DirectX es una tecnología propietaria de Microsoft, una librería que es cerrada. Pero claro, Microsoft no inventa nada.

    Microsoft lo copia, al menos en aquella época. Por lo tanto, esta idea de hacer una API de gráficos 2D y 3D como direct x no era suya Puesto que en el año mil novecientos noventa y dos fue cuando se lanzó Open GL una librería creada por Mark Segal y Kart Aklei. Una librería que pretendía poder realizar aceleración 3D y 2D y hacer justo esto. Crear una API única que los fabricantes pudieran utilizar y que conectara directamente con el hardware que cada uno tenía. Para así facilitar que cualquiera pudiera programar para esas librerías gráficas y independientemente del hardware que se usara, pudiera funcionar todos los juegos de la mejor manera en distinto hardware y no que hasta ese momento para que un juego fuera bien con un hardware, había que desarrollar específicamente para ese hardware, ¿de acuerdo?

    Que no era lo lógico. Así que en base a estas librerías, en base a este funcionamiento empieza a moverse, empieza a digamos a crearse todo ese ecosistema. Por un lado con DDRX para Windows, auspiciado por Microsoft como librería cerrada y por otro como librería abierta OpenGL. Todo esto cristaliza en el año dos mil cuando se funda el Chronos Group, un consorcio de un montón de empresas que se ponen de acuerdo para crear estándares que sean comunes de uso para todas ellas y que faciliten que A través de determinadas librerías, pues se pueda usar una única implementación que permita de una manera sencilla que todo el mundo trabaje con esas librerías y todo el hardware funcione contra esas librerías y así pues que todos nos beneficiemos de que se haga un solo desarrollo y funcione en todos lados. Perfecto.

    Chronos Group empieza a avanzar. La década de los dos mil se ve en la necesidad de crear una versión mínima de open gl mientras ellos van evolucionando la librería OpenGL Open Graphics Laboratory. Una librería abierta. Bien. Después de esta, o sea cuando empiezan a aparecer los primeros móviles, las primeras iPads de HD, los primeros nokia, que tenían una capacidad gráfica medianamente amañada en las primeras blackberry que podían hacer cositas a nivel de gráficos incluso algún jueguecitos esporádico que tenían en esos primeros años.

    El Chronos Group lanza Open GL una versión reducida del estándar de Open GL porque saben que no todo lo que es capaz de hacer un móvil lo puede hacer un escritorio por diferencia de capacidad, ¿de acuerdo? La potencia es una cosa, yo puedo ser más o menos potente, Pero la capacidad también es importante porque, por ejemplo, un M1 Max Max Studio tiene la misma potencia gráfica que una Playstation cinco. Quiere decir que el M1 Max es capaz de hacer lo mismo que una Playstation cinco. No, porque una Playstation cinco tiene componentes específicos para resolver problemas concretos de los que se dan en un ciclo de vida de un videojuego tiene una serie de capacidades de iluminación de luces, de control de texturas, de aceleraciones, etcétera, que hacen que su capacidad sea mucho mejor aunque tengan la misma potencia, por lo que no es lo mismo. Es como si yo tengo un coche que tiene la misma potencia en caballos, pero uno de los coches tiene conducción autónoma total y el otro ni siquiera tiene conducción autónoma y funciona por marchas.

    La capacidad de cada coche es distinto ¿verdad? Aunque tengan la misma potencia. Pues esa es la diferencia entre por ejemplo una Play cinco y un M uno Max aunque tengan la misma potencia. Una Play cinco siempre podrá hacer muchas más cosas y mucho mejor porque tiene más capacidad y esa capacidad le permite sacar más rendimiento a la potencia que tiene. Si partimos de esa base Open GLS era una versión reducida a nivel de capacidad.

    Porque estos nuevos móviles pues tampoco podían hacer todo lo que un gran ordenador sí podía hacer. Pero entonces aparece el iPhone. Y el iPhone para poder utilizar cualquier tipo de estandarización dentro de lo que es el sistema y dentro de posibles videojuegos, empieza a utilizar también la librería open g l e s la misma que estaba utilizando el resto de dispositivos móviles Mientras Apple estaba utilizando como librería gráfica del sistema, por cierto, OpenGL. Todo esto va en cuanto a una evolución en la que los iPhone empiezan a tener cada vez más potencia, más potencia, más potencia, el iPhone cuatro es capaz de ejecutar a Enria Legend, Enria Legend tres, es capaz de portar su librería de El IDE al iPhone. Esto que significa?

    Significa que Epi Games en el año dos mil diez consigue meter un run time de su librería de AndrialEngine dentro de un contenedor Adobe Air Propagado a partir de una Web View. Por lo tanto, consiguen poder ejecutar juegos en Unreal. Posteriormente, hizo una implementación nativa basada en OpenGL, ese para que los juegos que yo programaran un real pudieran ser ejecutados directamente en un iPhone, iPad, etcétera. Y Unity hizo lo mismo. Al igual que otros motores propietarios de distintas compañías, como Frosby de electronic gadgets, como el motor Crisis Senging, hay muchos motores que permiten realizar videojuegos.

    Y aquí viene la siguiente parte. ¿Qué es un motor de videojuegos? Pues bien, un motor de videojuegos como Unity lo que hace es tener un entorno de desarrollo con sus propias clases, con sus propios tipos, con su propio funcionamiento, con su propio todo Funcionando sobre una librería. Si yo cojo esa librería y consigo que ejecute la librería en un iPhone, en un iPad, en un Mac, en un PC, en un Android, lo que voy a conseguir es que cualquier desarrollo que yo haga para Unity como la librería funciona en cada sistema Solo tengo que coger el proyecto de Unity ejecutarlo contra la librería de cada uno de esos sistemas y el juego funcionará de una forma parecida aunque no igual porque estas librerías funcionan a bajo nivel a lo que sería un hava que tiene una máquina virtual en cada sistema y permite que una misma aplicación se ejecute en distintos sistemas. Insisto, a nivel de juegos es distinto porque funciona a bajo nivel es una máquina virtual software que está ejecutada es un código c más más que permite hacer un run time real en cada sistema y por eso yo hago un desarrollo en Unity o en Unreal y puedo ejecutar ese desarrollo en Android, en iPhone, en iPad.

    En una Nintendo Switch, en una Playstation cinco, en una Xbox, etc. Ese desarrollo dependerá también de lo que se conoce como los perfiles de configuración. Cada sistema tiene unas capacidades, incluso cada iPhone, cada modelo de iPhone tiene distintas capacidades, por lo que esos esas distintas capacidades tienen distintos perfiles de configuración que hacen que cuando yo ejecute mi juego en un iPhone catorce Pro tenga mejores capacidades mejores gráficos funcione mejor que en un iPhone trece, en un doce o en un once porque tienen distintas versiones de la librería gráfica de Apple. Librería gráfica de Apple que se presenta con el lanzamiento de los A siete Porque Apple deja de usar OpenGLS ¿Por qué? Porque Open GLS se le queda pequeña, porque las capacidades gráficas de un iPhone comienzan a ser muy grandes y Apple crea su propia librería gráfica cerrada al igual que direct x metal y que sucede con metal pues sucede que ahora todo el sistema todos lo que son los sistemas de Apple, TBOS, iOS, iPadOS, MacOS, etcétera, todos funcionan con Metal.

    ¿Por qué Apple se encargó de ir de prestando Open GL? ¿Es en los móviles? Y Open GL normal en el Mac ir avisando a los desarrolladores y y cuando lanza Big Sur Open GL desaparece del sistema operativo Mac, porque Vixur fue el salto a Apple Silicon. Open GL no tiene versión en Apple Silicon sólo funciona con metal. De hecho la lo que es la especificación de metal es exactamente la misma en intel y en papel silly con por lo que un juego o un software que emplea gráficamente los chips puede funcionar igual en Apple Silicon o en intel porque no tiene que traducir el código porque el código de metal se ejecuta exactamente igual en los dos tipos de chips aquí es donde viene el gran cambio de Apple, porque los Mac de pronto pasamos de chips integrados Intel.

    Que sólo sirven para cuatro cositas gráficas y una potencia inferior a un teraflop que prácticamente no servían para nada esas gráficas integradas de intel que tienen la mayoría de los equipos, pasan a tener una gráfica propia de Apple integrando la versión de metal directamente en el chip y ahora con mucha más potencia de forma que un M1 ya tiene dos con seis teraflos de cálculo en coma flotante de treinta y dos bits como potencia muy alta comparado con por ejemplo una steen deck tiene una potencia de uno coma ocho teraflops y es capaz de tirar en setecientos veinte p de la gran mayoría de juegos comerciales que salen a día de hoy como el hours legacy o cualquier otro de los que tenemos hoy día en el mercado. Entonces, ahí lo importante, lo que tenemos que entender, es que Apple pega un cambio muy grande cuando llega Apple Silicon y permite tener mucha más potencia gráfica Aunque su API gráfica metal no es tan capaz como direct x ni es tan capaz como bulk han que es la evolución vale open gl llegó un momento en el que por su propia raíz dejó de ser práctica, por lo que Chronos Group le vamos, recibió de préstamo por parte de Ati AMD, una librería propia creada por AMD, que se convirtió en Burkan, que es la nueva librería abierta, que normalmente se utiliza en sistemas Linux, que también es compatible.

    En sistemas Windows y que por ejemplo es la que utiliza la Steam Deck para funcionar desde Linux. Esta librería insisto es la sustituta de OpenGL. Por lo tanto ahora tenemos directx que sigue en Windows aunque también puede ejecutar cosas de Vulcan Bulcan, que es la librería abierta, que funciona en Linux y que también funciona en Android y Metal, que es la versión librería cerrada de Apple, que funcione en todos sus sistemas y que pues es también pues la forma de poder conectar directamente con el hardware. Entonces, si a esta ecuación actual le sumamos que hoy día el desarrollo de videojuegos se hace con motores como Unity, Common Real, como Frostbite, como Crisis Engine, como Infinidad de los que hay en el mercado, tanto de tanto comerciales como propietarios, ¿qué es lo que sucede? Pues que todas las compañías todas ya tienen run times, ya tienen ejecutables de esas librerías para funcionar en PC en Play cinco, en Xbox, series x o series s, incluso en la One, en Nintendo Switch, en yo que sé las gafas de oculus en iPhone, en iPad, en Mac, en Linux, en PC ¿Por qué no hay entonces juegos para Mac?

    Pues porque los desarrolladores no quieren hacerlos. Porque amá se le ha puesto el san Benito de que no es capaz cuando Ciro es. Insisto: El mismo exacto juego, en el mismo exacto hardware, en Windows y en Mac, Se va a ver mejor en Windows. Porque direct x es mejor API gráfica. Qué metal.

    Pero eso no quiere decir que metal no sea lo suficientemente buena como para dar un buen resultado y que pueda haber juegos que funcionen sin problema en este sistema Ese es el kit de la cuestión. Por lo tanto, lo que Apple está intentando es empujar a la industria para que los desarrolladores. Al igual que a día de hoy, muchos de ellos ya están teniendo en cuenta el Linux como sistema operativo de objetivo para poder ejecutar sus juegos en la Steam Deck o en Steam o S como el sistema operativo, También Apple está intentando tirar para que además de que los juegos estén empecé, en Xbox, en Nintendo Switch, en lo que sea, pues también esté para Mac. De hecho, a las pruebas me remito. Una Nintendo Switch, tiene una potencia potencia que es menos de la mitad de la que tiene un m1 normalito Y aún así, la Nintendo Switch tiene juegos triple A.

    Por lo tanto, la capacidad y la potencia de cualquier Apple Silicon, cualquiera incluso un MacBooker. Está muy por encima, viene Nintendo Switch. Sin Nintendo Switch hay juegos triple A, ¿Por qué no los hay en Mac? Pues por un motivo muy sencillo, porque la Nintendo Switch hay mercado y se venden, y en el Mac no hay mercado y no se venden. Así de simple.

    Y entonces donde no hay mercado, los desarrolladores no quieren hacer juegos. Eso es lo que Apple está intentando corregir. Convencer a los desarrolladores de que ellos apuestan por los videojuegos y que el Mac también puede servir para jugar. Y poco más. Hoy, bueno, en ocasiones para poder exponer bien un tema y que se entienda pues obviamente en fin hay que darle un contexto, un histórico, y eso pues es más tiempo espero que les haya gustado espero que hayan aprendido espero que hayan entendido pues bueno que aquí el problema está en los desarrolladores los desarrolladores, que hoy día utilizan motores de videojuegos, como Unison real, Frosbyte, Crisis bla bla bla bla, pues tienen la posibilidad de poner sus juegos en el Mac porque es que simplemente con pilar para ese elemento es que no tienen que hacer prácticamente ningún cambio, simplemente crear perfiles de configuración para cada uno de los tipos de Mac, que pueda haber, y punto, y lo tendría muy sencillo.

    Sin embargo, no quieren hacerlo porque no ven potencial, porque no ven un mercado, porque no ven que la gente Pues le puede interesar. No ven que la gente pues puede interesar el que un juego de Steam se venda más por el hecho de incluir el ejecutable del Mac. O que juegos que estén directamente el Mac App Store puedan ser interesantes a la gente para comprar y que utilice la versión del Mac para jugar. Solo con el Mac en vez de poder comprarse la versión de PC o la versión de cualquier consola. Ese es el problema.

    Es un problema de mercado. Y lo que Apple intenta es convencer a los desarrolladores de que pueden apostar por el Mac. Nada más. Si les ha gustado el programa, por favor, pues ya saben. Tenernos un like si están en youtube o una reseña donde esté un comentario en fin.

    Cada una de las plataformas son distintas igualmente si les gusta lo que hacemos pues suscríbanse tanto al podcast donde lo estén oyendo como a youtube si nos están viendo directamente y nos oímos o vemos pronto si Jobs quiere. Hasta entonces, un saludo y Google AppleCóding.

    Puedes escuchar más episodios de Applecoding en Cuanda.com, la comunidad de podcasts independientes en español.

    Episodios recientes