Como se Crea un Juego?

Todo lo que no calce en las secciones anteriores.
Avatar de Usuario
fcatrin
Mensajes: 655
Registrado: Jue Ene 24, 2013 2:19 pm
Ubicación: Quilpué
Contactar:

Re: Como se Crea un Juego?

Mensaje por fcatrin » Dom Oct 13, 2013 1:22 pm

bighead escribió: precisamente eso manolo, no es C++ y es C, pero no es un C estándar. aparte quizás que herramientas privativas o bizarras ocuparon para compilarlo para DOS, quizás el código no es compatible con las herramientas para DOS mas nuevas.
por lo demás, portarlo le quita el sentido al programa ya que la gracia era el motor grafico que movia fluido en las torpes gráficas de pc de ese entonces. lo mejor sería un programa en alguna biblioteca actual que leyera los "paquetes", recordando que las librerías actuales, harían casi todo el trabajo.
En esos tiempos se ocupaban compiladores comunes. Es probable que CK haya sido compilado con Turbo C de Borland + Turbo ASM a menos que el código ASM venga como inline. CK es 16-bit, funciona en un 286 y las herramientas de Borland recién se dejaron de usar cuando comenzaron a programar para 32-bit (386 / Watcom C/C++)

Dándole más vueltas, el motor de CK en lo que respecta a la parte gráfica sólo va a servir para DOS, y en otras plataformas tendrán que reimplementarlo. Eso es porque hay dos dependencias fuertes de EGA que son demasiado específicas para que existan en otras plataformas:

* La representación de los pixeles: En el 99.99999% de los sistemas gráficos los pixeles se organizan de forma lineal, en memoria un pixel se almacena al lado del siguiente pixel, y toda la información para reconstruir el pixel se encuentra en el mismo lugar, ocupando uno, dos, tres o cuatro bytes consecutivos (8-bit, 16-bit, 24-bit/RGB, 32-bit/RGBA). En cambio en EGA... afírmense que vienen curvas... se usaba un sistema de "memoria planar" en donde cada byte representaba 8 pixeles, y por lo tanto cada bit de ese byte representaba un componente de color para cada uno de los 8 pixeles. Por ejemplo los primeros 8 pixeles de la pantalla necesitaban 4 bytes NO CONSECUTIVOS donde el primer bit de cada byte representaba los 4 bits que definían el color de ese pixel (4bit = 16 colores), el segundo bit de cada byte representaba los 4 bits que definían el color del siguiente pixel, etc.

Esa representación torcida hacia que si se quería modificar sólo un pixel, había que leer 4 bytes de vram, aplicar un AND para borrar el pixel que se iba a modificar, y luego aplicar un OR para modificiar el bit que interesaba. Finalmente volver a escribir los 4 bytes. En otras palabras, era increiblemente engorroso crear animaciones en pantalla, aunque hay que considerar que la forma que describo es bien carretera.

* Dicho lo anterior, y si aún siguen leyendo, hacer scroll era todo un desafío, ya que si se requería hacer pixel a pixel requería modificar todos los bytes de vram sólo para rotarlos un bit hacia el lado, y a eso había que agregar el mover el bit sobrante al siguiente byte. Por eso los programadores simplemente movían la pantalla en bloques de 8 pixeles para no tener que rotar nada y simplemente hacer un "copy" de la vram a una posición más alla. Y no era por flojera en todo caso, el acceso a memoria era tan lento que hacer una rotación de ese tipo no era suficiente rápida para un videjuego.

Commander Keen sin embargo tenía scroll pixel a pixel. Cómo lo hacían? Detrás de esto está John Carmack y Michael Abrash, el primero creador de toda la saga Wolfestein/Doom/Quake y por lo tanto del género FPS, y el segundo un gran investigador de los sistemas de video de PC (EGA/VGA). Commander Keen usaba - se supone, ya lo veremos en el fuente - un registro especial de video que permitía cambiar el bit que era considerado como primer pixel. Por lo tanto para hacer un scrolling suave se usaba este registro para los primeros 7 desplazamientos y en el octavo se hacía un copy tradicional, volviendo el registro a cero. Ahora suena obvio, pero en esos tiempos fue toda una revolución que hizo famosos a lo creadores de Commander Keen.

Esas dos características ya no existen en sistemas modernos, por lo que todo ese código perderá sentido. Es muy probable que por la organización de la memoria, los datos de los gráficos vengan organizados en planos y habrá que dejarlos lineales... espero que publiquen el código!

Saludos

Avatar de Usuario
Manuelink64
Mensajes: 1152
Registrado: Jue Ene 24, 2013 6:09 pm
Ubicación: Neo Kobe City

Re: Como se Crea un Juego?

Mensaje por Manuelink64 » Dom Oct 13, 2013 10:10 pm

quede..

Imagen

Algún dia, me daré el lujo de imprimir y leer tranquilamente el libro del Guru Abrash.

Saludos!

PD: ¿recuerdan el caso del tipo que creo el motor gráfico del Wacky Wheels y le "robaron" (se le quedó) el código fuente e hicieron el famosísimo Skunny Kart (emularon el Mode7 del SNES en VGA)?

Avatar de Usuario
fcatrin
Mensajes: 655
Registrado: Jue Ene 24, 2013 2:19 pm
Ubicación: Quilpué
Contactar:

Re: Como se Crea un Juego?

Mensaje por fcatrin » Lun Oct 14, 2013 11:52 am

Manuelink64 escribió:
Algún dia, me daré el lujo de imprimir y leer tranquilamente el libro del Guru Abrash.

Saludos!

PD: ¿recuerdan el caso del tipo que creo el motor gráfico del Wacky Wheels y le "robaron" (se le quedó) el código fuente e hicieron el famosísimo Skunny Kart (emularon el Mode7 del SNES en VGA)?
En Amazon venden impreso el libro de Abrash :-) Some day... somewhere....
He leido algunos artículos y es fascinante, aunque tenga muchas cosas añejas creo que todo sirve para entender a fondo la forma en que funcionan los computadores (y consolas).

Cuando chico leí los artículos respecto al Modo X y otros detalles de la VGA, pero desconocía la parte de optimización que publicó. Esos articulos eran copias a mano desde Dr Dobb's Journal.

Altamente recomendado para quienes les interese el "bajo nivel".

Sobre lo del Wacky Wheels no lo sabía, de esa época sólo recuerdo en ese estilo un juego menos caricaturezco pero que se podía juga en linea, no recuerdo el nombre eso sí. :-(

Avatar de Usuario
Manuelink64
Mensajes: 1152
Registrado: Jue Ene 24, 2013 6:09 pm
Ubicación: Neo Kobe City

Re: Como se Crea un Juego?

Mensaje por Manuelink64 » Lun Oct 14, 2013 9:59 pm

Sorry por el offtopic, pero la historia completa sobre el Skunny Kart y su pelea legal contra Apogee
Skunny Kart was a kart racing game done by Copysoft in 1993. It was quite similar to the better known Wacky Wheels, because they both based on an early prototype called Wacky Kart. The whole story:

Andy Edwardson, usually working on low budget stuff for Copysoft, wanted to develop something similar to Nintendo's Super Mario Kart, so he tried to figure out how the three-dimensional texture mapping stuff worked. On the Super Nintendo, a special DSP chip was used to perform high speed graphics. Unfortunately, the PC didn't offer anything similar to do such stuff in realtime. But he didn't give up and he studied thousands of VGA registers to find a solution. He finally did it and he called his method "VGA7" (named after the equivalent MODE7 on the Super Nintendo).

He developed a prototype and showed it to the Copysoft crew. They were quite excited but they didn't make a commercial agreement. So, Andy Edwardson wasn't sure if they get the game. He came across Apogee and they fought with Copysoft over royalties ending up Apogee distributing the game. Edwardson just made a mistake: He left the source code on the demo disk.

At the end, Skunny Kart was released before Wacky Wheels.
Un video, que no le hace justicia, porque el juego corre a una suavidad increible (60FPS) y tenia hasta soporte para SVGA.

Lastima que jamas tuve el juego completo, creo que aun se vende, junto al pack completo de los otros Skunny.

Mencion a parte, si este juego es copia o no, la musica es soberbia, puro Eurodance del gueno!



OST completo
http://www.youtube.com/watch?v=O14VuRKC ... F039936281

Avatar de Usuario
Suppawer
Mensajes: 96
Registrado: Vie Abr 26, 2013 10:02 pm

Re: Como se Crea un Juego?

Mensaje por Suppawer » Mar Mar 11, 2014 5:59 pm

Preparen sus "pogos". La comunidad Keen en el mundo espera prontas novedades:
Spoiler: MOSTRAR
Imagen

Avatar de Usuario
Manuelink64
Mensajes: 1152
Registrado: Jue Ene 24, 2013 6:09 pm
Ubicación: Neo Kobe City

Re: Como se Crea un Juego?

Mensaje por Manuelink64 » Mié Mar 12, 2014 12:35 am

ahora existirán miles de clones... :roll:
mis favoritos siempre fueron el 4 y 5, el 6 jamás me gusto y el Keen Dreams fue raro, pero disfrutable.

Saludos!

Responder