Actualmente estoy intentando programar un shooter de desplazamiento lateral (side-scrolling) usando el mismo motor de sprites (y su editor de sprites) que desarrollé para mi juego «Sternenschwarm».
En realidad, aquí se ejecutan 2 programas «en paralelo»: el shooter en sí y el desplazamiento del fondo. Como se trata de un desplazamiento por hardware, no puedo ralentizarlo sin que empiece a dar tirones.
Notas:
CONSEJO: No olviden cambiar los controles al teclado
Por ahora solo he implementado 4 de los 20 niveles.
De momento he vuelto a desactivar el sonido; todavía es horroroso.
Cada nivel tiene su propio diseño.
Las puntuaciones más altas (high scores) se guardan siempre que el disco tenga permisos de escritura.
Hay «power-ups» en el juego
El disquete ya está casi lleno, así que probablemente tendré que replantearme el juego en su totalidad. Además, esta vez me está costando muchísimo encontrar un equilibrio entre la dificultad y la diversión. Ahora mismo no se me ocurren ideas interesantes, aparte de más mundos temáticos.
Hola. Estás sacando un juego nuevo cada dos por tres y empieza a notarse cierta «vibra de IA». Así que, para ser francos, ¿cuánta IA se ha utilizado aquí?
Le pedí a ChatGPT el código para el desplazamiento por hardware (hardware-scrolling) y que me lo explicara. Luego lo adapté específicamente a mis necesidades (mira cómo se va redibujando continuamente el gráfico en la parte derecha. Por cada fotograma son 2 nuevas columnas de píxeles (= 1 byte, Modo 0). Consulta también mi editor de sprites publicado, que admite el almacenamiento de datos en memoria necesario para esto como formato de exportación).
La secuencia de notas de la música de fondo proviene al 100% de la IA (aunque está desactivada en la maqueta porque todavía suena espantosa).
Como reproductor utilizo el genial ArkosTracker3. Ya existe, así que no tengo que programarlo yo mismo.
Las demás herramientas (efectos de sonido, motor de sprites, manejador de interrupciones) son de mi propia cosecha. Por cierto: el manejador de interrupciones y la gestión de la pila de todos los objetos están escritos en C. Extraídos de un proyecto de microcontroladores. Siempre y en todas partes es lo mismo. Eso es lo bonito.
Mi editor de sprites (archivo HTML, publicado en otro sitio) se creó con la ayuda de la IA. Sin embargo, sirve exclusivamente para crear los gráficos. Particularidad: puede convertir cualquier imagen a sprites de CPC. Domina una estructura de almacenamiento de datos que facilita el dibujado rápido de sprites.
¿Cuánta IA hay entonces en la maqueta? Por lo tanto, muchísima. La IA es una buena profesora y genera motivación. Así es como la utilizo.
Fijaos en la maqueta actual en pequeños detalles como este: la llama del avión se mueve en función de su propio movimiento. Esto está hecho a mano. Esta es el alma de un programa. ¿Acaso una IA incluiría detalles hechos con tanto cariño? No lo sé…
Además, los gráficos van empeorando de nivel en nivel. He perdido la motivación. ¡¿Una IA habría terminado esto con un simple prompt?!
Un par de frases sobre mí:
Tengo 59 años y soy licenciado en Informática (inglés: Computer Scientist).
Mi motivación es mantener vivo un viejo pasatiempo. Ya tengo una edad en la que los retos profesionales van disminuyendo.
Cuando todavía había revistas de CPC en los quioscos, ya publiqué en ellas varias cosas sobre el CPC. Juegos, programas de copia y de disquetes… Desde entonces, mi corazón sigue apegado a este ordenador. (¡Vaya susto, de eso hace ya más de 40 años!).
También hubo y hay publicaciones mías en otros foros (antes de la pandemia) (ved Asteroids en una versión anterior); lamentablemente, esos foros ya han desaparecido.
Esto me lleva a una idea: ¿sería interesante publicar aquí una serie de artículos sobre cómo desarrollar software en un CPC usando un ensamblador cruzado? Aunque esto también lo puede explicar una IA… Hmmm… ¿así que mejor no? En YouTube también hay ya cursos…
Es verdad:
Sin la IA, esta maqueta no existiría.
Con más IA, se vería mejor y probablemente estaría terminada.
Quedan exactamente tres o cuatro temas que me interesan. Todos mis mockups y juegos anteriores apuntan precisamente en esa dirección:
Una idea de juego inspirada en Elite, pero con una simulación económica integrada, en la que cada decisión del jugador tiene un impacto directo en todo el sistema. Solo se juega en nuestro sistema solar (planetas y lunas).
Una idea de juego basada en Bard’s Tale (primera parte). Sin embargo, con un motor gráfico que visualice los giros (como en mi primer mockup). Las tareas deberían ser tan difíciles que se necesite recurrir a la vida real para investigar y poder pasarse el juego.
Un juego que incluya un desplazamiento diagonal continuo. Al estilo del clásico juego Zaxxon.
(Tal vez una versión más compleja del juego de Amiga Carrier Command. Una evolución de mi simulación económica de Elite. Pero esto todavía está solo en fase de planificación sobre papel. Tampoco he decidido aún la plataforma de destino. Quizás solo para Raspberry Pi (nativo), en general para Linux, juego de navegador, CPC 6128, según lo que más me interese en ese momento).
¿Ves? No es tan difícil. Sé valiente. Ahora, en cuanto al juego.
¿Lo has jugado? Literalmente me lo pasé solo pulsando disparo, sin mover la nave ni un solo píxel de su posición inicial. Dato curioso: si tienes el navegador en modo ventana e inicias el juego con el emulador integrado, pulsas disparo repetidamente hasta conseguir todas las mejoras, luego mantienes pulsado el botón de disparo y con el ratón haces clic fuera de la ventana del navegador de la wiki. Puedes hacer cualquier otra cosa en el PC mientras ves cómo el juego se completa solo.
Así que me parece un caso de (y esto no va dirigido a este juego en concreto, sino que es una observación más general) «el diseño del juego se dejó en manos de la IA y quien metió los prompts no tiene ni idea de lo que está pasando»; o ni siquiera le importa.
La otra cosa que me deja alucinado (de nuevo, como observación más general) es la cantidad de gente que salta a aplaudir lo genial que es un lanzamiento, cuando en realidad es una auténtica basura.
(edición: solo para aclarar, estas dos últimas frases se refieren a los lanzamientos con IA en general, no van dirigidas a este lanzamiento en particular)
Y la verdad, sus lanzamientos están empezando a hacerme cambiar de opinión sobre el uso de la IA en los videojuegos retro. Se nota claramente que están inspirados en clásicos, pero de algún modo también aportan una inspiración fresca, con gráficos nítidos y coloridos, y no son una simple copia descarada 1:1 de un arcade original.
Claro, les falta ese pulido final que transforma una prueba de concepto en un juego divertido y genial, pero viendo el juego, ya le veo potencial. Me ENCANTARÍA jugar a ese juego una vez que el diseño de niveles se ajuste manualmente para que sea un verdadero reto.
Pero sí, no con ese diseño de niveles tal como está. Aunque bueno… Me encanta el scroll, me encantan los gráficos, me encanta la sensación general que transmite; y me sorprende decir esto de un juego en el que la IA ha jugado un papel tan crucial.
Parece que no revelar el uso de IA es un tema delicado, así que supongo que esto debería tenerse en cuenta. Además, la gente solo puede comentar sobre lo que tiene a su disposición. No estoy seguro de cuál es el punto de publicar un «prototipo» si uno no busca recibir comentarios.
Publiqué este prototipo para recibir comentarios. En cualquier forma que sea. Hasta ahora, considero que el debate está siendo constructivo. Leo cada respuesta. Muchas gracias por sus opiniones e ideas.
Bueno, hago shooters (la parte gráfica), así que conozco bien el género. Y soy muy exigente cuando se trata de shooters. Lo que vas a recibir de mí es el mismo feedback que me daría a mí mismo.