Hero (WIP)

Bueno, estoy de vuelta con el juego de plataformas exclusivo para 128k* (o más), inspirado en los gráficos de nuestro compañero @TITAN y en la disparatada trama ambientada en la Antigua Grecia. Lo estoy desarrollando con la excelente CPCTeleraNext del querido @Arnaud6128.

He renunciado a intentar que el scroll fluido a pantalla completa basado en CRTC/memoria funcione tan suave y sencillo como yo quiero en una máquina que no sea Plus; incluso tras analizar los tiempos manualmente y darle rienda suelta a una LLM con ello. Así que he cambiado el sistema a Flick Screen (pantalla a pantalla) para poder terminar esta dichosa criatura y sacarla de una vez.

Pero esto significa que ahora puedo concentrarme en hacer que el movimiento del sprite del jugador se acerque lo máximo posible a lo que hacen los juegos de consola como SMB, etc. Sí, estoy fusilando la física y el modelo de control/movimiento de Mario porque ¿por qué no?:

Aquí tenéis algunas capturas de pantalla, y sí, la demo del menú/introducción está en overscan. Actualmente hay TRES melodías distintas cortesía de nuestro @Targhan, y habrá soporte para varios idiomas (por ahora tengo planeados inglés, español, francés, alemán y, por supuesto, griego para el Gran Poohbah de nuestro foro).

Lo siguiente es el movimiento en escaleras, la gestión de muertes por pinchos o viscosidades, y los enemigos.

El juego de baldosas/gráficos proviene de aquí: AmstradMuseum TITAN : Devilry III

Estoy usando Tiled para los niveles. Y sí, estoy usando una LLM (ChatGPT) como consultor y asistente de código para escribir herramientas, optimizar código, hacer el trabajo pesado, etc. Porque llevo siendo desarrollador de software profesional desde hace unos 30 años y estoy completamente aburrido de reinventar la rueda con los ordenadores a estas alturas. Dicho esto, llevo escribiendo C de forma intermitente desde 1997, así que sí, sé lo que me hago.

Por favor, dirigid todas las quejas al hilo gigante sobre IA. ¡Pero todo el apartado artístico y la música han sido creados por humanos!

Usaré este hilo para manteneros a todos al tanto de los avances.

* No, no funcionará en 64K, necesitaréis 128K (al menos) y una unidad de disco. Sí, es intencionado. En su día me quedé estancado con un 464 sin ampliar, y el 6128 sigue siendo la máquina de mis sueños.

8 Me gusta

¡Esto tiene una pinta increíble! La capacidad de salto del personaje parece un poco… exagerada… por ahora quizás, ¡pero me encantan los gráficos, la ambientación y las demás pantallas!

1 me gusta

Llevaba tiempo esperando esto y, efectivamente, se ve fantástico.

1 me gusta

¿El movimiento horizontal del sprite es píxel por píxel o byte por byte? Es difícil decirlo sin jugarlo, por supuesto, pero al ver el video parece que le vendría bien un poco de inercia horizontal y, supongo, una precisión de coordenadas de 2 bytes para acompañarla, si de verdad buscas esa sensación a lo Mario.

1 me gusta

Sí, es un movimiento horizontal por bytes. Ni me atrevo a pensar en el movimiento basado en píxeles, aunque sé que realmente se puede hacer.

Los valores de gravedad/caída/aceleración del personaje son los que puse al principio cuando me estaba inspirando en los diferentes desgloses de los sistemas de control de SMB que hay en internet, pero claro, con una pantalla estática con cambio automático (flick screen) de CPC, son, como comentaba arriba, un poco demasiado bruscos.

Para ser sincero, ya estaba más que contento con conseguir que esta maldita cosa se moviera vagamente como un juego de consola. Lo que no ayuda ahora mismo es que los niveles están hechos a mano. Solo tengo memoria libre suficiente para que cada nivel (se carga de 1 en 1) tenga 8 pantallas de ancho, ¡incluso con 128k! Y, por tanto, con la configuración de movimiento actual, se pueden sentir algo claustrofóbicos.

Igual acabo cambiando a niveles construidos con módulos mucho más grandes. O incluso generación procedimental. Vi en YouTube un desglose brutal sobre cómo se hizo esto en un juego de la BBC:

Pero el problema con este tipo de cosas es que los niveles acaban siendo todos muy parecidos. Por otro lado, podría hacer lo mismo que hice con Reginald y mantener cada pantalla comprimida hasta que se necesite, y guardar solo los sprites de los enemigos que persistan. De esa forma solo se guarda la pantalla actual (40 x 22 tiles). Y eso es fácil de hacer con Flick Screen, a diferencia de los inventos de Scroll que estaba usando antes.

La verdad es que no tengo nada decidido. Parte de la razón para publicar esto aquí era precisamente escuchar opiniones sobre todas estas ideas.

El plan actual es que, en cuanto tenga un nivel jugable, lanzarlo en un formato que se pueda jugar directamente (es decir, sin menú, ni intro, ni nada de eso) para recibir feedback sobre los controles y la jugabilidad, y con suerte ir haciendo mejoras iterativas.

Y por supuesto, todo mi código se publicará bajo la licencia GPL2 en GitHub cuando esté terminado.

2 Me gusta

¿Tus (hermosas) pantallas se están construyendo a partir de teselas?

Parece que hay mucha reutilización de teselas, y eso es algo bueno, porque significa que las pantallas se pueden definir con una cantidad bastante pequeña de datos.

Mejor aún, puedes definir objetos más grandes («superteselas»), como columnas.

La definición de tu pantalla puede incluir datos que digan «en la posición (x,y) hay una columna», lo cual se puede hacer en 3 bytes. El código que construye tu pantalla puede reconocer entonces que hay que dibujar una columna e ir a una tabla independiente que contiene la información de las teselas para esa columna.

Digamos que una columna consta de una tesela superior, una serie de teselas intermedias idénticas y una tesela inferior.
La definición de la columna se puede componer de varias maneras.

Podría ser simplemente una lista de números de tesela, o podría ser un número de tesela seguido de la cantidad de veces que se usa. Y luego necesitarías tener un sistema para determinar si las teselas se almacenan en orden vertical, o de izquierda a derecha y luego de arriba a abajo, etc.

1 me gusta

Actualmente están hechas a mano, casilla por casilla, ¡y es un auténtico dolor de cabeza crearlas!

Llevo siguiendo el juego desde el principio y es un proyecto muy chulo, este es el típico juego que podría haber salido en la época dorada del CPC , anunciado en navidades, con una portada fabulosa, en la revista que siempre adquiría en el kiosko yo, la Micromania en mi caso y me hubiese comprado seguro.

1 me gusta

Un trabajo interesante hasta ahora. Viendo los gráficos del juego, les sugeriría que replanteen los contornos negros que hacen que casi todos los objetos se vean más o menos rígidos y acartonados, sobre todo teniendo en cuenta que eligieron un fondo más claro que el primer plano.

Además, ¿quién es el tipo de la primera captura de pantalla en relación con el de la última?

1 me gusta

¿Te refieres a Zeus follándose a todo lo que se mueve?

¡Esto tiene una pinta increíble!

Por cierto, lo voy a mover a la categoría Juegos.

2 Me gusta

Ese es nuestro héroe, Helios. Quien se ha portado un poco mal y los Dioses lo están castigando, obligándolo a ser un Divino Recadero.

Los gráficos… no soy para nada un artista, así que le cederé la palabra a mi excelentísimo amigo @TITAN@Titan. Yo solo intento hacer que los píxeles hagan vroom.

Créeme, puedes vincular su historia con el sexo de cualquier forma imaginable. Tal vez le echó el ojo a alguna pobre mortal, así que Zeus lo condenó a ser una tortuga o algo así, pero Hera intervino y lo transformó antes de que Zeus pudiera encontrarlo, por lo que ahora es irreconocible; pero ella también lo acogió bajo su protección, así que ahora vive entre el Olimpo y el mundo normal haciendo recados.

Solo digo.

1 me gusta

Bueno, viendo lo completamente diferente que se ve Helios entre las dos imágenes (en la primera ni siquiera lleva algo remotamente parecido a una armadura griega, y el arte de la antigua Grecia fue parte de mis estudios), sospecho que esas imágenes probablemente fueron «prestadas» de otras fuentes y adaptadas/recoloreadas para el CPC. De hecho, el estilo de la que aparece en la pantalla de título hasta me resulta demasiado familiar, pero no logro recordar dónde he visto una ilustración similar.

La razón por la que no sospecho de la IA en este caso es que, hoy en día, puedes pedirle a una IA que redibuje la misma figura en diferentes posiciones y hace un trabajo bastante bueno sin alucinar demasiado.

Al opinar sobre los gráficos, suelo tener una actitud algo negativa hacia las imágenes que son copias sin mencionar a los autores originales, y Titan ha estado etiquetando muchas imágenes que no son suyas con su firma. Por eso, supongo que la solución más sencilla sería ser valiente, revelarlo y seguir adelante. No es ningún pecado tomar prestadas cosas o usar IA, siempre y cuando se sea honesto al respecto; mucha gente ha estado haciendo esto en el CPC (aunque, al mismo tiempo, otros no lo hacen; incluso algunos muy famosos, lo cual me parece lamentable y poco ético a la vez).

Yo solo soy el programador, jefe. Esa clase de discusiones se la dejo a ustedes, los artistas. :joy:

¿Qué tipo de niveles te gustaría ver en Hero?
  • Niveles más pequeños diseñados a mano
  • Niveles más grandes basados en módulos de construcción
  • Niveles masivos generados procedimentalmente
0 voters

No me parece que ‘jefe’ encaje, pero si quieres puedes llamarme dios.

Sí, mi Gran Poobah

1 me gusta

Mejor. Sigue así.

1 me gusta

Un juego rápido de entrar y jugar, por favor. Si es posible, con guardado de progreso.

1 me gusta

Sí. La idea es tener, en la segunda cara del FSK, una versión que te lance directamente al juego, sin menú, sin intro, sin pantalla de título, nada. Solo la partida.

Y tengo pensado usar códigos de acceso para permitir que el progreso se pueda «guardar», por así decirlo.

2 Me gusta