Hola,
he usado mis últimos créditos de Claude para hacer una versión de Galaga para CPC, y estoy trabajando en ella para conseguir algo jugable.
Como de costumbre con todos mis proyectos de Claude, quiero que sea un proyecto de cpcteleraNext completo y funcional, de forma que pueda entenderlo y, sobre todo, hacer modificaciones.
Un pequeño adelanto mientras se realiza una reconstrucción con optimización completa.
Solo para su información, para hacer esta versión usé todos mis créditos de la nube con los 100 $ gratis que tenía (una promoción para probar la nube).
El juego funciona con 64 KB en un CPC clásico y sin cargas posteriores.
Casi todo el código está escrito en C y usa la librería cpcteleraNext, pero por problemas de velocidad y tamaño de memoria, algunas funciones específicas se escribieron en ensamblador.
En fin, es una demostración excelente de lo que se puede hacer con cpcteleraNext (y Claude.IA).
El juego está ligeramente simplificado, pero la mayoría de las características del juego original están presentes.
Mi objetivo principal era que fuera jugable.
¿Entonces tal vez eso fue lo que me olió raro en tu publicación? Esto y la estructura (secciones en markdown) hicieron que pareciera la respuesta de una IA copiada y pegada. Y siendo honesto, tras echarle un vistazo por encima a la publicación y notar ese «aire a IA», la verdad es que no la leí entera, así que pasé por alto lo de … le pedí a Claude que … Mala mía.
Pero no me malinterpretes. No estoy en contra de usar IA para investigar (yo lo hago un montón), pero en mi opinión, cuando se comparten los resultados en internet, debería señalarse claramente como tal (y no dejarlo escondido por ahí en medio del texto).
¡Guau! Se ve increíble y se agradece muchísimo, pero es evidentemente bastante lento. Si se pudiera mejorar la velocidad, ¡sería fantástico!
Acabo de probarlo en el hardware real y me surgió otro problema: los jefes Galaga de las fases 1 y 2 no lanzan el rayo. A propósito los dejo pasar para conseguir la nave doble de cara a la fase de desafío (Challenging Stage), pero no había rayo. Si quedan varios jefes Galaga, al menos uno de ellos debería lanzar el rayo. Esa es una parte fundamental del juego.
Sin duda puede ir más rápido, sobre todo las formaciones y la fase de desafío; de hecho, cuando solo quedan unos pocos personajes en pantalla, se acelera demasiado.
La verdad es que este juego impresiona bastante para ser una versión creada por IA; va un poco lento, pero se deja jugar y tiene buena pinta.
Sin embargo, ¿se me permite ser un poco negativo y decir que algo así podría desanimar a los programadores humanos a hacer una versión que funcione mejor? Parecido a como se ha acusado a las traducciones de juegos retro hechas por IA (que funcionan, pero pierden la esencia del texto original) de desanimar las traductions humanas hechas como dios manda, ya que algunas personas sienten que no tiene sentido hacerlas si ya hay una traducción precisa, aunque no sea una maravilla.
Esta nueva versión tiene cosas que hay que corregir (ojalá no pusiera la música del principio al empezar cada fase), pero ha acertado en mucho. Es demasiado lenta, por supuesto, pero se ve de maravilla. La sencilla división de colores entre amarillo y blanco funciona muy bien. Es una buena prueba de concepto. Me pregunto cuánto más rápida se podría hacer.
¿Están los sprites desplazados previamente (pre-shifted) y compilados? Si la pantalla fuera de 32x32, las rutinas de los sprites se podrían acelerar un poco. Habría unos 40 sprites en pantalla como mucho, pero lo normal serían unos 20. Se podrían dibujar todos sin máscara y podrían borrar sus propios rastros en lugar de limpiarse por completo en cada fotograma.
Otro problema… En realidad, Galaga tiene un montón de sprites. A ojo, unos 80 más o menos. Pero si cuentas las paletas alternativas, son más bien 150. Además, hay que reflejarlos en horizontal, en vertical y en ambos ejes, así que nos vamos a 600. Parece que cada nave del juego tiene 32 fotogramas de rotación. Y si además los predesplazas para el CPC, eso daría unos 2400 sprites. ¡Uf!
Aunque no se usan todos a la vez. Hay algunos que no he visto nunca, así que no sé si realmente están en el juego o solo en la hoja de sprites. Quizás se podría hacer algo ingenioso con código automodificable para crear estampados de sprites.
Creo que podrías reducirlo a 12 naves x 32 rotaciones y olvidarte de la mayoría de las paletas alternativas, con lo que se quedaría en «solo» 384. Si renuncias a los sprites compilados, puedes voltearlos en vertical de forma bastante sencilla, lo que reduce la cifra a la mitad. Y si haces que solo se muevan en horizontal en pasos de 2 píxeles, reduces los predesplazamientos a la mitad… así que volvemos a 384. Todos miden 16x16, así que 16x4 bytes = 64 bytes cada uno. Vale, ¿entonces unos 24 KB de datos de sprites para las naves…?
Tal vez también podrías reducir el número de rotaciones a 16.
¡¡Heeeeeey bienvenido, hermano!! Qué bueno tenerte de vuelta
La frase real debería ser «la IA hace un mejor trabajo que una persona de verdad que no sabe lo que hace».
Esta versión de Galaga sí que promete mucho más: es lo suficientemente buena como para justificar su propia versión, pero también tiene sus méritos aquí.
Visualmente se ve realmente bien, pero los enemigos parecen dirigirse a tu nave de forma demasiado agresiva; su único modo de ataque es «apuntar a la nave del jugador», lo que reduce bastante la jugabilidad.
Y aunque hay una ralentización cuando los alienígenas entran inicialmente en pantalla, ¡son increíblemente rápidos una vez que empiezan a bajarse hacia ti!