Ingeniería Inversa de Chasm: The Rift

Iniciado por Yamato, Julio 14, 2013, 08:08:52 PM

Tema anterior - Siguiente tema

Yamato

こんにちは

Bueno, abro este hilo por que Chasm: The Rift (para abreviar: CtR) es uno de mis juegos favoritos, por no decir ya directamente, con el que más disfruté.

He buscado por el foro acerca de este gran juego y no hay mucho la verdad. Me imagino que pocos habréis jugado tanto como yo, que incluso lo tenía original por algún lugar perdido de la casa.

Al leer algunas cosas por ahi, creo que hay alguna información errónea acerca de este juego. La verdad es que llevo ya muchos años con este juego, y he aprendido muchas cosas, que quizás a alguien le pueda resultar útil también. Siento el pedazo muro de texto, es un montón de información, pero estoy seguro que para alguien que le gustase modificar el juego, le será muy útil. Yo nunca me he animado a hacer nada, pero quizás haga algo sencillo algún día:

Se dice que es un clon del Quake 1, pero no es así. Los gráficos puede que se parezcan algo a los del Quake 1, pero el motor del juego es completamente diferente. No es un juego en 3D si no en 2.5D, como Doom. Para ser más exactos, CtR usa un engine basado en el motor de Wolfenstein 3D, pero mejorado.

No se pueden hacer edificaciones de dos pisos, osea, habitación sobre habitación, cosa que sí se puede en Quake 1, ya que en realidad en el Quake 1, el mapa entero es como un único modelo en 3D, pero en CtR el mapa es simplemente un conjunto de paredes, suelos y techos. Bueno, de ésto hablaré más tarde.

Por otro lado, al contrario que Wolfenstein 3D, las habitaciones no tienen por qué ser cuadradas. Es decir, en Wolenstein, sólo se podían hacer bloques de mapa cuadrados, mientras que CtR cada cuadrado de la cuadrícula "virtual" del mapa, está a su vez dividida en otros cuadrados más pequeños, de manera que una pared de dos vértices en el cuadrado 5,6, puede estar en diagonal ya que sus vértices pueden estar en cualquier posición, tanto en el mismo cuadrado como en otro más alejado. Por desgracia, los creadores de CtR (Action Forms, Ltd) apenas hicieron uso de esta ventaja, así que la mayor parte de los mapas parecen cuadrados, como en Wolf3D.


Los mapas: no permiten variar la altura del techo o suelo, igual que en Wolf3D. Hay habitaciones que contienen agua o ácido, y éste está a una posición más abajo que el suelo normal. a pesar de que he mirado mil veces, la única explicación que le doy es que el engine dibuja el suelo más abajo cuando hay una habitación con textura de agua. En el editor de mapas no hay manera posible de definir esta altura, por lo que tiene que ser el propio motor del juego el que lo haga posible.

Por ejemplo, fijaros en esta imagen, el cielo y el techo que se ven ahí están a la misma altura:



Pero la diferencia más notable con respecto al diseño de mapas del Wolf3D es que CtR permite un freelook con el ratón, cosa que era imposible en el Wolf3D no sólo por el propio diseño del engine (raycaster) si no también por limitaciones del hardware de aquella época, que no sería suficiente para tal efecto.

Una ventaja de un motor raycaster (wolf3d y doom por ejemplo) es que es más ligero y con menos potencia de hardware nos funcionará. Por eso hay usuarios que dicen que el CtR les funcionaba mejor que el Quake 1, y es que son dos engines diferentes.
Sin embargo, CtR está un paso más allá que Wolf3D, ya que CtR permite un cierto grado de tercera dimensión, por ejemplo, podemos hacer puertas que se abren de abajo a arriba, pero también de lado a lado, como un PolyObject del zDoom o del Hexen. Y esto no tiene nada que ver con las puertas-textura del wolf3d, que en realidad es una textura que se desplaza. En CtR los mapas son en realidad como bloques del Quake, por lo que al abrir una puerta se está desplazando todo un bloque del mapa, y no sólo una textura.

Mirad por ejemplo esta puerta de la imagen, no es solamente una textura sin grosor como ocurre en Wolf3D, es digamos un "bloque" que se desplaza:



Lo mismo ocurre con las puertas que se abren de arriba a abajo.

También hay una puerta en el primer "jefe" que al abrirse primero se gira, y luego se abre en dos mitades. Bueno, pues el giro es en realidad una textura animada.


CtR tiene un archivo llamado "CHASM.INF" dentro del archivo de datos (que vendría a ser el doom.wad de CtR). Este archivo, que es simplemente texto, vienen definidas todas las características de objetos, sonidos, monstruos, armas, y todos los elementos interactivos del juego. He intentado modificar este archivo directamente, pero siempre me daba errores el juego, y creo que es por que el archivo de datos del juego (llamémosle el WAD del juego por eso de entendernos mejor), el WAD este, que es el archivo "CSM.BIN" no es en realidad un .WAD en absoluto. Es como un .PAK del Quake 1 o un .PK2 del Quake 2, en el sentido de que CSM.BIN tiene algún tipo de estructura de directorios internos, y cada archivo dentro tiene que ir necesariamente dentro de un directorio específico, como ocurre con los Quakes.

Pero hay una solución: es posible hacer TCs para CtR creando un directorio que contenga los archivos del mod, por ejemplo, MyNewMod, dentro del directorio del CtR.
Este directorio nuevo podemos copiar el CHASM.INF y modificarlo a nuestro gusto.
Para jugar a nuestra TC simplemente habría que ejecutar CtR así: chasm.exe -addon:MyNewMod. Fijaos en los ":" después de -addon.


Entonces, en este aspecto, CtR es más avanzado que Wolf3D, ya que Quake 1 también tiene una estructura de archivos dentro de los .Pak


Por otro lado, el juego usa modelos 3D para muchas cosas, no sólo enemigos y armas, también elementos de la propia construcción del mapa. Por ejemplo, creo que es en el mapa segundo o tercero, hay una gran tubería horizontal. Es en realidad un modelo 3D. Lo modelos 3D usan la extensión .3o. Según ví por interné, son modelos 3D creados con un programa llamado "Advent 3B2". Pero de éste programa apenas hay información. La única información que hay es muy escasa y ahora parece que buscar en google acerca de Advent 3B2 nos lleva a otra cosa que no tiene nada que ver con modelos en 3D. Hay rondando por internet un visor de modelos 3d para CtR, pero sólo sirve para la versión demo del juego. Según parece, los programadores del juego cambiaron algo del formato de los modelos y ya no funciona. De todas maneras es sólo un viso, no puedes modificar nada, así que lo único que sirve es para hacer sprites a partir de los modelos. He intentado abrirlos con Blender y con un par más de programas, pero no los reconocen.

También he usado un editor hexadecimal para ver qué contenían, pero no he sacado nada en limpio.

Los sonidos están en formato WAV de toda la vida. Ningún problema aquí.
Para cambiarlos en tu MOD, tienes que meterlos dentro de la carpeta de tu mod, en este caso sería MyNewMod, y ahí, dentro de otra carpeta llamada SOUND y AMB, la primera para los sonidos de armas y monstruos etc y la segunda para los sonidos de ambiente. No tiene ningún misterio.

Luego, hay otro tipo de archivos, los .ANI. Éstos son para mí todo un misterio, ya que por el nombre parece que son animaciones o algo así. Al abrirlos con un editor hexadecimal, he comprobado que no hay ningún tipo de similitud entre los ANI, no tiene ningún tipo de cabecera ni nada de nada. Con un editor de texto normal, sólo aparecen símbolos aleatorios.
Sin embargo, he visto otros archivos llamados PROCESS.xx, en donde xx es un número de mapa, por ejemplo PROCESS.01 (más adelante hablaré de estos archivos). En ellos, muchas veces se ve la algo como "startani" y "stopani". Que claramente se refiere a algo de los archivos ANI. Así que creo que los archivos ANI son en realidad donde se definen animaciones de certos objetos, por ejemplo, en el primer mapa hay una ventana que se mueve con el viento, pues dicha ventana creo que tiene que tener un archivo ANI.
Lo mismo para la lluvia del primer nivel y en general para cualquier objeto 3D que se mueva con una animación cíclica.
En el archivo PROCESS.xx parece que se indica al engine que empiece a "reproducir" dichas animaciones. Y también... (lee lo siguiente)


...tenemos los archivos RESOURCE.xx. En ellos se definen ciertos aspectos del mapa en cuestión, como el nombre del mapa, el cielo que se verá (y esto es una limitación del engine, ya que en cada mapa, al igual que Doom, solamente puede haber un único tipo de textura de cielo. En el editor de mapas tú sólo indicas que tal o cual casilla será cielo, y luego en RESOURCES.xx le dices qué cielo quieres que se vea).
También se definen sonidos nuevos que quieres usar y que no son los predefinidos del CtR. Por ejemplo, si quieres que tal o cual puerta suene como un pedo, tienes que definir aquí primero el sonido. Definirlo quiere decir crear una línea en este archivo en la que a dicho sonido le des un número con el que hacer referencia a él.
Y siguiendo con los archivos ANI, en RESOURCE.xx hay una parte en la que se definen objetos 3D y todas sus características dentro del juego, como el sonido que hacen, si tienen sombra o no, y algunas otras características que no sé muy bién para qué sirven.
Y una característica que se define de estos objetos es la "animation", y da la casualidad de que los objetos animados del mapa, por ejemplo la lluvia del primer mapa o la ventana que se mueve, tienen aquí una referencia a una animación. Por ejemplo, vemos que la lluvia es el objeto 3D "rain.3o" y si animación es "rain2.ani".

Pero aún así, sigo sin saber cómo o cual es el formato de los archivos ANI.

Dentro de RESOURCE.xx también se definen las texturas que se usan en el mapa. Una línea por textura en la que se indica el nombre completo de la textura así como un número de referencia. Según parece, sólo hay 120 líneas para esto, así que quizás sólo se puedan usar un máximo de 120 texturas diferentes.


Ya vamos con el archivos PROCESS.xx, que es a mi parecer, el más interesante y avanzado de todos. Se trata de una especie de script ACS, como los del Hexen o los del zDoom, pero no tan avanzado. Ofrece bastante funciones para muchas cosas, pero ni mucho menos como los de zDoom, y no sabría decir si tanto como el Hexen. Quizás sí, ya que revisando las funciones, hay algunas realmente interesantes, desde la típica de mostrar un mensaje en pantalla, hasta cambiar sonidos, encender y apagar las luces dinámicas (¡¡¡CtR tiene luces dinámicas!!!), rotar modelos 3D, o incluso mover partes del mapa, osea, puertas. Es bastante potente y relativamente sencillo. Lo malo hasta donde yo sé, es que es un script lineal. Es decir, no puedes ejecutar una función desde otra, no puedes decir "start_function 5", sólo se pueden ejecutar funciones del script desde el mapa cuando el jugador pulsa un botón o pasa por cierto sector del mapa.
La limitación de esto es clara: sólo puedes ejecutar una función por botón, así que en cada función tendrás que poner todo lo que quieras hacer.


Luego, para los que no saben ganar sin hacer trampas: tenemos los archivos tipo CHASMxx.SAV. Son las partidas guardadas. Sólo se pueden editar con un editor hexadecimal.
Al principio aparecen dos datos: el número de mapa en el que estamos y la vida del jugador. También estarán definidas las armas y munición, pero ya es casi imposible saber cómo ya que son números demasiado aleatorios.
Mas adelante está definido el estado en el que se encuentra el mapa en cuestión. Hay una representación del mapa y de todos los objetos que hay en él. Botiquines, armas y munición que hubiésemos cogido, lógicamente aquí no aparecerá. Sería posible editar esta parte, pero no lo recomiendo ya que es bastante tedioso y es fácil corromper el archivo ya que un símbolo de más o de menos lo fastidiará todo y el juego no reconocerá la partida guardada.
Al final del archivo no lo tengo del todo claro, pero creo que se definen algunas cosas extra del mapa, como botones que aún no se han pulsado, por ejemplo, para que así al cargar la partida se pueda saber qué se ha activado que qué no se ha activado todavía. Pero esto ya son suposiciones mías (basadas sobretodo en el formato del archivo de cada mapa, que es similar a los savefiles).


El último archivo es el CHASM.PIF, que no tiene nada especial ni de interés. Sólo es un archivo interno que indica al programa cómo ejecutarse en msdos y cómo usar los recursos del ordenador. Nada que sea de interés para nosotros, creo yo.


Y esto es todo. No sé si me olvido de algo, me da la sensación de que sí. Bueno, cualquier otra cosa, la iré añadiendo.


Ah si, sólo queda alguien que intente descompilar el juego. Yo ya lo intenté con varios programas y no lo conseguí. ¿Alguien se anima?

Mi web || ¿Buscas ordenadores, consolas, juegos u otras cosas de Japón? ¡Mándame Mensaje!

[Lukasxd]

Te seré sincero, el juego me encanta. Tiene ese estilo sucio del quake y en los niveles extraterrestres me recuerdan mucho a pelis como Aliens o algunos niveles del Duke, lo que no me engancho tanto es el gameplay.

Me encantaría qué alguien pudiera hacer un port, o algún editor flexible como DooM Builder o Worldcraft.

:O -> https://sh33p.neocities.org/<-
Cualquier comentario(mío) generado en este sitio es pura ficción y no representa mi punto de vista.

GranJuegos

#2
Ni me dado cuenta de eso, pensaba que usaba un motor como quake 1.
Encontre un video de un mod de chasm:
http://www.youtube.com/watch?v=HOMgq52pxJM
EL motor del juego tiene buena iluminación.
ಠ_ಠ

Yamato

#3
Cita de: [Lukasxd] en Julio 14, 2013, 09:43:58 PM
Te seré sincero, el juego me encanta. Tiene ese estilo sucio del quake y en los niveles extraterrestres me recuerdan mucho a pelis como Aliens o algunos niveles del Duke, lo que no me engancho tanto es el gameplay.

Creo que el problema podría ser el diseño de mapas. Hasta donde yo he visto, los diseñadores de mapas del CtR no exprimieron el motor del juego lo suficiente. Hay muchas cosas que se pueden hacer con el motor y que apenas sí las usaron un par de veces, como por ejemplo el hecho de poder hacer habitaciones redondas o en general paredes que no sean sólo cuadradas. La mayor parte de los mapas son casi todas las habitaciones cuadradas o rectangulares.

Por otro lado, está el agua: una habitación definida como "agua" aparece más baja que el suelo normal en el juego.
Quizás eso no te diga nada pero me acuerdo que hace ya tiempo hice unos experimentos con eso mismo, intentando simular un efecto de habitación sobre habitación. La cosa era hacer un mapa definido todo como "agua", pero la textura de agua en vez de ser agua era piedra o lo que sea. Luego teóricamente tenía que colocar un modelo 3D a cierta altura sobre el suelo, y ese modelo sería el techo de la habitación de abajo y el suelo de la de arriba.

Al final no llegué a concluir el experimento por que no sé cuál es el formato exacto de los modelos 3D del juego, así que ahí me quedé.


Cita de: [Lukasxd] en Julio 14, 2013, 09:43:58 PM
Me encantaría qué alguien pudiera hacer un port, o algún editor flexible como DooM Builder o Worldcraft.

Bueno, el editor de mapas no es difícil de usar. Tiene algunos problemillas fáciles de solucionar, pero funcionar funciona bién.
No sería muy difícil hacer un editor de mapas nuevo, ya que el formato de los mapas es bastante sencillo, lo único es que hay varias partes dentro del fichero de mapas: la que define las paredes, el suelo, el techo, los objetos, etc... paredes, suelo y techo es fácil de crear un editor para ello, pero los objetos es más difícil ya que al mirar el archivo del mapa en esa zona aparecen como símbolos números y letras aleatorios.

Un source port sólo podría ser posible si alguien es capaz de encontrar el código fuente del juego, lo cual ya no creo que se pueda, salvo que alguien se ponga en contacto con los programadores de CtR y se lo pida. No creo que tengan mucho problema en hacerlo.

Otra cosa podría ser descompilar el programa y ver cómo funciona, para poder hacer así un source port basado en él.
El problema es que no sé si el programa tiene algún sistema de protección para evitar ser descompilado, por que yo ya lo he intentado de mil maneras y no lo he conseguido.




Cita de: GranJuegos en Julio 14, 2013, 10:22:42 PM
Ni me dado cuenta de eso, pensaba que usaba un motor como quake 1.
Encontre un video de un mod de chasm:
http://www.youtube.com/watch?v=HOMgq52pxJM
EL motor del juego tiene buena iluminación.

Sí, es que los modelos 3D del juego como las barandillas y otros detalles hacen que parezca realmente un juego 3D, por eso digo que los creadores de mapas del juego original no explotaron el motor del juego todo lo posible. Seguro que haciendo uso de ciertas características pudieron haber hecho algo todavía más interesante.

La iluminación es similar a la del Quake 1, volumétrica y esférica. En el editor de mapas puedes especificar el tamaño y brillo de cada una de las fuentes de luz.


Lo que ves en el vídeo no parece un Mod, solamente un mapa con texturas nuevas.

Mi web || ¿Buscas ordenadores, consolas, juegos u otras cosas de Japón? ¡Mándame Mensaje!

[Lukasxd]

#4
Test:
http://www.angelfire.com/games6/chasm/transformers_chasm.htm
Humm, voy a echarle una probada al editor.  ;D
:O -> https://sh33p.neocities.org/<-
Cualquier comentario(mío) generado en este sitio es pura ficción y no representa mi punto de vista.

GranJuegos

Probé el editor y no parece tan difícil de usar ¿pero como hago para ejecutar los mapas en el juego?
ಠ_ಠ

[Lukasxd]

#6
El editor esta bien, lo mas bonito es llevarse toda la tarde boludiando con el editor, poner un par de enemigos, y "iniciar el mapa" para que me de un putero error de "DR_BACK.WAV no se pudo iniciar CSM.BIN".

Bravo.

:O -> https://sh33p.neocities.org/<-
Cualquier comentario(mío) generado en este sitio es pura ficción y no representa mi punto de vista.

Yamato

Cita de: [Lukasxd] en Julio 15, 2013, 06:19:32 AM
El editor esta bien, lo mas bonito es llevarse toda la tarde boludiando con el editor, poner un par de enemigos, y "iniciar el mapa" para que me de un putero error de "DR_BACK.WAV no se pudo iniciar CSM.BIN".

Bravo.



Sí, es fácil de solucionar.

Tienes que ir a la carpeta de tu mapa, seguramente "USERMAP". Luego vas a LEVEL01 y luego a SOUND. Allí verás varios archivos de sonido. Hay uno que se llama DR_BAC01 .wav. Tienes que cambiarle el nombre a "DR_BACK.WAV".

Y ya te funcionará.


Cita de: GranJuegos en Julio 15, 2013, 05:52:51 AM
Probé el editor y no parece tan difícil de usar ¿pero como hago para ejecutar los mapas en el juego?

Ejecutas chasm de la siguiente manera:

chasm.exe -addon:USERMAP

Para ir a cualquier mapa, abres la consola (tecla BORRAR) y escribes GO xx, donde xx es el número de mapa.

Mi web || ¿Buscas ordenadores, consolas, juegos u otras cosas de Japón? ¡Mándame Mensaje!

Eye del Cul

#8
Yo no sé mucho de compiladores y demás, pero el de Chasm es un ejecutable de MS-DOS, y sospecho que tendrías que decompilarlo con un programa compatible. Un Windows moderno no tiene nada qué ver con aquello en cuestión de drivers, librerías y demás.

Por ejemplo, en esta discusión de un foro dan algunas sugerencias, hacia el final:
http://www.rohitab.com/discuss/topic/14078-reverse-engineering-dos-executables/

Entender algo del código resultante después de decompilar es otra cosa...
«Porque buscar a alguien patético en Internet es como buscar caballos en un establo: encontrarás alguno, seguramente» -- Phobos Anomaly

[Lukasxd]

Perfecto perfecto,  ¿sabes como hacer las puertesitas? Deben ser modelos pero no los encuentro...
:O -> https://sh33p.neocities.org/<-
Cualquier comentario(mío) generado en este sitio es pura ficción y no representa mi punto de vista.

Yamato

He creado una web "copia" de la original de Chasm the rift, que es la que aparecía en wayback machine.
Podéis acceder a ella desde el link de mi firma.


Cita de: Eye del Cul en Julio 15, 2013, 01:31:36 PM
Yo no sé mucho de compiladores y demás, pero el de Chasm es un ejecutable de MS-DOS, y sospecho que tendrías que decompilarlo con un programa compatible. Un Windows moderno no tiene nada qué ver con aquello en cuestión de drivers, librerías y demás.

Por ejemplo, en esta discusión de un foro dan algunas sugerencias, hacia el final:
http://www.rohitab.com/discuss/topic/14078-reverse-engineering-dos-executables/

Entender algo del código resultante después de decompilar es otra cosa...

Es que creo que me expliqué mal.

La cuestión no es descompilarlo, en sí, cosa que es bastante sencilla. El problema es que tras descompilarlo obtienes el archivo fuente para ensamblador, y necesitarás desensamblarlo, pero no he encontrado ningún programa que convierta el ASM to c++.

Es posible ir leyendo el código en ensamblador línea a línea e ir escribiéndolo en lenguaje C, pero a parte de que yo no tengo ni idea de ASM, estoy seguro de que eso sería un trabajo de chinos.

Para que te hagas una idea, el ASM son unas 12000 y pico líneas todas ellas de este tipo:

0000 4D             dec     bp                 
0001 5A             pop     dx                 
0002 50             push    ax                 
0003 0117           add     [bx],dx             
0005 008C0025       add     [si+02500h],cl     
0009 00E4           add     ah,ah               
000B 06             push    es                 
000C E406           in      al,006h             
000E 2D0568         sub     ax,06805h           
0011 46             inc     si                 
0012 0000           add     [bx+si],al         
0014 6E             outsb                       
0015 0D0000         or      ax,00000h           
0018 1C00           sbb     al,000h             
001A 0000           add     [bx+si],al 



No digo que alguien que sepa ensamblador podría echarle un vistazo. Sólo hace falta encontrar a esa persona.
12000 líneas no es que sea excesivamente largo, he visto programas de astronomía infinitamente más largos, pero el problema es que para leer y traducir todo eso será un infierno.

También me puse en contacto con algunos miembros del staff de Chasm hace un tiempo pero no me han respondido, supongo que esas direcciones de email antiguas ya quizás ni las usen.

Sé que algunos de ellos han creado una compañía de juegos para iOS, osea, iPhone, llamada Tatem Games, es posible enviarles un mensaje, lo cual no he hecho por vagancia, quizás un día lo haga y a ver qué me dicen.

Sería genial obtener el código fuente, seguro que alguien de Doomworld estaría dispuesto ha hacer algún port o algo.





Cita de: [Lukasxd] en Julio 15, 2013, 02:22:45 PM
Perfecto perfecto,  ¿sabes como hacer las puertesitas? Deben ser modelos pero no los encuentro...


La verdad ahora mismo no me acuerdo, hace muchísimo tiempo que no hago un mapa. Si no consigues averiguarlo, miraré cómo se hace.

De todas maneras, aquí te dejo el primer mapa original del Chasm, quizás puedas usarlo para aprender:

ftp://chasmtherift_zzl@chasmtherift.zzl.org/downloads/Mapa01.zip


Por cierto, una cosa importante: antes de descomprimirlo, cambia el nombre de la carpeta de tu mapa, cambia de USERMAP a cualquier otra cosa, ya que si no lo haces al descomprimir este otro, te lo va a sobreescribir todo.

Mi web || ¿Buscas ordenadores, consolas, juegos u otras cosas de Japón? ¡Mándame Mensaje!

[Lukasxd]

:O -> https://sh33p.neocities.org/<-
Cualquier comentario(mío) generado en este sitio es pura ficción y no representa mi punto de vista.

Yamato

Cita de: [Lukasxd] en Julio 15, 2013, 05:44:09 PM
I LIVE AGAIN



Enhorabuena.
Me imagino que ya habrás notado las limitaciones del editor  :P


¿Has averiguado cómo hacer puertas?

Y recuerda que puedes mover los vértices de cada línea para hacer habitaciones no cuadradas.


Mi web || ¿Buscas ordenadores, consolas, juegos u otras cosas de Japón? ¡Mándame Mensaje!

[Lukasxd]

Estimado yamato!, he que me esta molando esto...
Pero tengo un problema, ya tengo un cuarto iluminado, entonces puse otra luz en el otro cuarto, pero esta no hace presencia.

¿Que hago?
:O -> https://sh33p.neocities.org/<-
Cualquier comentario(mío) generado en este sitio es pura ficción y no representa mi punto de vista.

[Lukasxd]

Doble post tal vez innecesario.
Pero ya supe colocar luceitas mononas y sonidos de ambiente, además de modelos y enemigos.
:O -> https://sh33p.neocities.org/<-
Cualquier comentario(mío) generado en este sitio es pura ficción y no representa mi punto de vista.