Commodore manía
Commodore 64 => Desarrollo => Mensaje iniciado por: SkyBerron en Julio 03, 2024, 00:19:58
-
Muy buenas. Abro hilo con este mi primer prototipo de minijuego en desarrollo para 2024 Reset64 4KB CRAPTASTIC Game Competition:
#1 Crap Revovery (preview)
Mi primer intento. Juego sencillo adecuado para 4kbytes, con la típica mecánica de caer cosas del cielo, unas te matan y otras no. Curiosidades:
Juego en una sola pantalla fija, sin scroll ni gaitas.
Llevas un helicóptero que tiene una inercia brutal y tiende a caer.
Las cosas caen en oleadas y tienen aceleración por gravedad, aunque la verdad es que se nota poco.
Las rocas matan, las cajas dan puntos.
Tienes que evitar caer al mar, pero puedes aterrizar en una plataforma.
El fuel se acaba. Aterriza sobre la plataforma para recargar fuel.
El fondo es una imagen en Paint hecha en 5 minutos y convertida a PETSCII. Comprime bien, pero seguramente la cambie.
No hay aún efectos de sonido ni melodías, pero algo habrá que hacer.
De los 4096 bytes permitidos, el PRG tras pasar por Exomizer ya me ocupa 3832 bytes.
No puedo publicar el binario porque las normas del concurso lo impiden. Pero sí me permiten poner vídeos y capturas de pantalla:
https://www.youtube.com/watch?v=thLu-SBJgpE (https://www.youtube.com/watch?v=thLu-SBJgpE)
(https://i.imgur.com/VoUqsIC.png)
(https://i.imgur.com/plrvGz4.png)
-
Muy buena pinta!
Llevas un helicóptero que tiene una inercia brutal y tiende a caer.
Si, se nota lo de la inercia...
-
Pues parece divertido. Habrá que esperar al final de agosto para probarlo.
https://ausretrogamer.com/2024-reset64-4kb-craptastic-game-competition/
-
Pues parece divertido. Habrá que esperar al final de agosto para probarlo.
https://ausretrogamer.com/2024-reset64-4kb-craptastic-game-competition/
¡Gracias! En términos de acabado, deja mucho que desear. Pero he tratado de ajustarlo para que sea entretenido y desafiante al menos para sesiones cortas de juego. Aunque es inevitable que al final resulte un poco monótono y repetitivo.
Estoy todavía en fase de familiarizarme con la máquina, sus posibilidades y calibrar lo que se puede hacer en 4 kbytes. Para hacer este juego he necesitado 5 sesiones de 2 horas, lo cual es demasiado para mis estándares. Necesito mucho más training.
-
Pinta muy bien, ¡mis dieses y mucha suerte!
-
Para hacer este juego he necesitado 5 sesiones de 2 horas, lo cual es demasiado para mis estándares. Necesito mucho más training.
Ya tienes toda mi envidia por hacerlo en tan poco tiempo.
-
Ya tienes toda mi envidia por hacerlo en tan poco tiempo.
Si tuviera que hacerlo en ensamblador, y suponiendo que supiera algo de ensamblador del 6510, sin duda tardaría 10 veces más en lograr algo similar. Reconozco que tengo cierta práctica con el lenguaje C en este tipo de programas cortos, por lo que todavía veo margen de mejora cuando conozca mejor la máquina y tenga el código con el que inicio nuevos juegos más optimizado. Aún así, me ha sorprendido muy gratamente el compilador Oscar64 y en mi opinión es totalmente recomendable. No sé por qué no se usa mucho más y desplaza al ensamblador.
-
Pinta muy bien, ¡mis dieses y mucha suerte!
¡Muchas gracias! Espero coger ritmo, poder plasmar algunas ideas más en próximos desarrollos e incluso atreverme con el scroll.
Por cierto, en algún momento debería probar en máquina real y tener feedback, no me fío del emulador.
-
Tener y probar tus producciones en máquina real es algo que deberías hacer, tarde o temprano. Las sensaciones son muy diferentes.
-
Si tuviera que hacerlo en ensamblador, y suponiendo que supiera algo de ensamblador del 6510, sin duda tardaría 10 veces más en lograr algo similar. Reconozco que tengo cierta práctica con el lenguaje C en este tipo de programas cortos, por lo que todavía veo margen de mejora cuando conozca mejor la máquina y tenga el código con el que inicio nuevos juegos más optimizado. Aún así, me ha sorprendido muy gratamente el compilador Oscar64 y en mi opinión es totalmente recomendable. No sé por qué no se usa mucho más y desplaza al ensamblador.
Por aquí fue @Dozznar el que empezó con Oscar64, sus primeros juegos fueron con CC65, yo también llegué a probarlo. Pero como nunca llegué a programar en C, siempre me quedo a medias.
Ultimamente estuve probando Turbo Rascal, porque en otros tiempos sí que llegué a programar mucho en Turbo Pascal, igualmente ahora creo que C estaría mas cerca de lo que programo... pero me tira la nostalgia asi que tengo ganas de hacer algo con Turbo Rascal.
Al final supongo que la gente va usando lo que le apetece, ya sea por nostalgia o comodidad.
Una vez se tiene una base hecha ya luego se puede ir escalando, asi que seguro veremos nuevas creaciones tuyas.
No recuerdo si en tu presentación dijiste si tenías 64 real, creo que si.
-
#2 Space Shooter con título aún por decidir
Bueno, llevo muy poco trabajando en este juego: unas 6 horas, la mayor parte del tiempo probando técnicas de generación de trayectorias que en el test no se usan. Por lo que no mucho se puede decir:
Hay una nave que se mueve y dispara
Aparecen oleadas de enemigos que siguen una trayectoria predefinida
Los disparos acaban con los enemigos en 2 impactos, pero aún no hay explosiones
Los enemigos no disparan aún pero el contacto con ellos es fatal
Para el test he activado el multiplexor de sprites, pero eso me ha dejado prácticamente al límite de los 4 kbytes (y faltan muchas cosas aún :( ).
(https://i.imgur.com/6iSik8N.png)
(https://i.imgur.com/RzGJB4Y.png)
https://www.youtube.com/watch?v=ZdYTJaGlxmw (https://www.youtube.com/watch?v=ZdYTJaGlxmw)
-
Se mueve muy fluido, ¿cómo has generado la trayectoria??
-
Utilizo posiciones e incrementos de posiciones en coma fija sobre entero de 16 bits con signo (usualmente 10.6 ó 11.5, es sólo cambiar un #define en el código). Para traducir ángulos en desplazamientos utilizo una tabla de valores de función sin() en coma fija de 16 bits. Para este juego me basta con 16 ángulos posibles de movimiento, así que la tabla precalculada es de 16*2 bytes.
-
Todos esos calculos no son baratos para el 64, los tienes ya guardados o los precalculas al inicio del juego??
-
Tablas precalculada, por supuesto. En mi caso, una única tabla de 16 enteros de 16 bits para la función trigonométrica seno basta. Siempre lo he hecho así. Luego todo son sumas, restas y bitshifts de 16 bits, nada de multiplicaciones ni divisiones. ¿Nadie ha utilizado nunca coma fija de 16 bits? ¿Cómo hacéis entonces desplazamientos fraccionarios (no enteros)? Bueno, también he visto utilizar coma fija sobre 24 bits en micros de 8 bits, por aquello de utilizar 16.8 y evitar los bitshifts que son algo pesados en estos micros, pero eso en C no sabría hacerlo.
-
Tablas precalculada, por supuesto. En mi caso, una única tabla de 16 enteros de 16 bits para la función trigonométrica seno basta. Siempre lo he hecho así.
Supongo que es la forma mas óptima.
¿Nadie ha utilizado nunca coma fija de 16 bits? ¿Cómo hacéis entonces desplazamientos fraccionarios (no enteros)? Bueno, también he visto utilizar coma fija sobre 24 bits en micros de 8 bits, por aquello de utilizar 16.8 y evitar los bitshifts que son algo pesados en estos micros, pero eso en C no sabría hacerlo.
Yo en el tema desarrollo para C64 soy un metido, conozco del tema pero de forma bastante superficial y me falta meterme a hacer algo de verdad.
Por aquí pueden estar @Laddh @Dozznar @Zub @riq @Jeff @Iapetus (siempre serás woodmaster) y algunos más que seguramente algo más saben.
-
Aún así, me ha sorprendido muy gratamente el compilador Oscar64 y en mi opinión es totalmente recomendable. No sé por qué no se usa mucho más y desplaza al ensamblador.
Sacrílego! ;D ..., pero en realidad tú mismo te contestas mas abajo..
#2 Space Shooter con título aún por decidir
Para el test he activado el multiplexor de sprites, pero eso me ha dejado prácticamente al límite de los 4 kbytes (y faltan muchas cosas aún :( )
El codigo objeto que te generan estos compiladores siempre es más grande que si lo programas directo en ensamblador y así no gastas ni un byte de más, necesario si te metes en un proyecto de 4K, además, utilizando funciones ya creadas no aprendes realmente como funciona. Estos compiladores están bien para iniciarse porque a bote pronto consigues cosas, pero si quieres saber como funciona la máquina por dentro hay que llegar al ensamblador.
¿Nadie ha utilizado nunca coma fija de 16 bits? ¿Cómo hacéis entonces desplazamientos fraccionarios (no enteros)?
Ni idea, supongo que son expresiones del lenguaje C y no se a que se refieren.
Con esto solo expreso mi opinión y no voy en contra de nada ni de nadie, cualquier creación para el C64 tiene mi voto a favor, por supuesto. (menos seuck y similares)
-
Respecto a la utilización de coma fija en la programación de juegos para C64, he encontrado un ejemplo muy interesante en el código fuente de una eminencia en la programación de juegos en ensamblador para Commodore 64. Se trata de Shallan y el código fuente creo que pertenece a su juego Pik'n'Mix:
https://github.com/smnjameson/LetsMakeAC64Game/blob/master/src/player/player.asm (https://github.com/smnjameson/LetsMakeAC64Game/blob/master/src/player/player.asm)
Aquí se declara la coordenada X del jugador como 3 bytes, con 2 bytes para la parte entera y 1 byte para la parte fraccionaria, lo que equivale a coma fija formato 16.8:
Player1_X:
// Fractional / LSB / MSB
.byte $00, $88, $00 // 1/256th pixel accuracy
Sin embargo, para la coordenada Y, utiliza sólo un entero de un byte:
Player1_Y:
.byte $c0 // 1 pixel accuracy
Aquí se declara el desplazamiento a aplicar cuando el personaje se mueve a derecha o izquierda con formato coma fija 8.8:
Player1_WalkSpeed:
.byte $80, $01
Y así es como se aplica el desplazamiento hacia la izquierda:
sec
lda Player1_X
sbc Player1_WalkSpeed
sta Player1_X
lda Player1_X + 1
sbc Player1_WalkSpeed + 1
sta Player1_X + 1
lda Player1_X + 2
sbc #$00
sta Player1_X + 2
Y el desplazamiento a la derecha:
clc
lda Player1_X
adc Player1_WalkSpeed
sta Player1_X
lda Player1_X + 1
adc Player1_WalkSpeed + 1
sta Player1_X + 1
lda Player1_X + 2
adc #$00
sta Player1_X + 2
El mismo fichero también tiene el código para comprobar colisiones, límites de pantalla, actualizar sprite, etc.
Desgraciadamente, en lenguaje C esto no creo que sea posible de hacer fácilmente ya que no hay soporte para números en 24 bits, así que por ahora seguiré utilizando coma fija sobre entero de 16 bits.
-
Sacrílego! ;D
Jajaja, ¡gracias!
El codigo objeto que te generan estos compiladores siempre es más grande que si lo programas directo en ensamblador y así no gastas ni un byte de más, necesario si te metes en un proyecto de 4K, además, utilizando funciones ya creadas no aprendes realmente como funciona. Estos compiladores están bien para iniciarse porque a bote pronto consigues cosas, pero si quieres saber como funciona la máquina por dentro hay que llegar al ensamblador.
Totalmente de acuerdo. El desafío que me he marcado es participar en el concurso con juegos programados en C que cumplan con el requisito de tamaño. Si para eso tengo que adaptar y retorcer mi código en C para que sea más eficiente y quepa en 4k, lo haré. Incluso no renuncio a mezclar un poco de código asm en mi código C para supervitaminarlo. Lo de aprender cómo funcionan las cajas negras no es mi prioridad, lo dejo para otra ocasión.
Con esto solo expreso mi opinión y no voy en contra de nada ni de nadie, cualquier creación para el C64 tiene mi voto a favor, por supuesto. (menos seuck y similares)
No faltaba más. Veo que tú también programas juegos para la máquina. ¿Te animas a participar en el concurso?
-
Venga Laddh, participa!
-
No faltaba más. Veo que tú también programas juegos para la máquina. ¿Te animas a participar en el concurso?
Uuff! no vería como..., lo mío con el código ya es droga dura, cuanto más se, mas cosas quiero hacer y se me quedan cortos los 40 y pico kb de ram libres, intentar meterlo solo en 4 k ya me parece un ejercicio de masoquismo puro 8), luego eso sí, flipo con las joyas que consiguen.
-
Uuff! no vería como..., lo mío con el código ya es droga dura, cuanto más se, mas cosas quiero hacer y se me quedan cortos los 40 y pico kb de ram libres, intentar meterlo solo en 4 k ya me parece un ejercicio de masoquismo puro 8), luego eso sí, flipo con las joyas que consiguen.
Con estas restricciones, acertar con el diseño conceptual del juego es fundamental. No sirve cualquier idea, hay que pensar en las mecánicas, cuántas entidades con comportamiento diferente hay, cuántos datos precalculados se van a necesitar, cuántos sprites diferentes y caracteres definidos se van a incluir. Para mí, es difícil calibrar ahora que tengo poca experiencia con la máquina y el compilador, pero andando se hace camino. Y no es masoquismo, te aseguro que se disfruta mucho con el desarrollo y la satisfacción que da obtener un resultado jugable con tanta restricción.
Y una pregunta para los muy cafeteros: Hacerlo en lenguaje C debería ser más difícil porque se consumen más bytes por la ineficiente generación de código del compilador. ¿O no? Esa es la cuestión.
-
Con estas restricciones, acertar con el diseño conceptual del juego es fundamental. No sirve cualquier idea, hay que pensar en las mecánicas, cuántas entidades con comportamiento diferente hay, cuántos datos precalculados se van a necesitar, cuántos sprites diferentes y caracteres definidos se van a incluir. Para mí, es difícil calibrar ahora que tengo poca experiencia con la máquina y el compilador, pero andando se hace camino. Y no es masoquismo, te aseguro que se disfruta mucho con el desarrollo y la satisfacción que da obtener un resultado jugable con tanta restricción.
Es un desafío dentro del desafío de crear con las restricciones del 64, un doble desafío y que permite hacer algo sin buscar que sea una genialidad.
Ya me estás picando... a ver si el año que viene o la próxima edición.-
Y una pregunta para los muy cafeteros: Hacerlo en lenguaje C debería ser más difícil porque se consumen más bytes por la ineficiente generación de código del compilador. ¿O no? Esa es la cuestión.
Ganas por un lado y pierdes por otro... me parece que en C hay que saber usar el lenguaje para no inflar el código. Pero al final, en ambos casos hay que saber optimizar porque hacerlo en ensamblador tampoco es garantía que quede mas pequeño si no se tiene un buen manejo.
-
#2 Craptastic Space Wars
He llevado este desarrollo hasta un punto en el que la lógica del juego está prácticamente completa. Las mejoras respecto al test anterior son:
- Se ha prescindido del multiplexor de sprites. No era realista mantenerlo y poder cumplir con el límite de 4 kbytes. Al desactivarlo se ahorra casi 1 kbyte, espacio que es imprescindible para implementar las funciones básicas. Por tanto, el número de enemigos en pantalla se limita a 7.
- Se ha dado soporte a múltiples trayectorias de enemigos y se pueden incluir en la misma oleada varias trayectorias con un número variable de enemigos siempre que el total de enemigos no sume más de 7.
- Hay un número de trayectorias preconfiguradas y una secuencia prefijada de oleadas.
- El ataque de los enemigos consiste en que cada cierto tiempo uno de ellos, elegido de modo aleatorio, se sale de la formación y se dirige a doble velocidad en línea recta hacia la nave del jugador. Sólo hay 16 ángulos posibles de movimiento de los enemigos, así que la mayoría de las veces el ataque no acierta con una trayectoria de colisión correcta. Podría añadir soporte para una trayectoria curva, pero necesitaría disponer de más espacio para código.
- Se disponen de 5 vidas, cada contacto con un enemigo resta una vida. Tras perder una vida, hay un pequeño tiempo de inmunidad para poder reaccionar y llegar a un punto seguro.
- Los enemigos tienen más de un punto de vida. Cuando un enemigo pierde todos los puntos de vida se destruye con una animación de explosión de partículas. Para no tener que incluir los datos de animación de los sprites, esta animación se genera con un sistema de partículas implementado en el código que escribe directamente sobre los sprites.
- Aunque actualmente el juego se encuentra bajo el límite de 4096 bytes, no hay más espacio para ampliar el catálogo de oleadas y poder añadir efectos de sonido. He observado que la codificación de trayectorias y oleadas actual no facilita a Exomizer alcanzar un buen ratio de compresión, por lo que más adelante probaré otros esquemas.
(https://i.imgur.com/RN1SkBc.png)
(https://i.imgur.com/9HZGflR.png)
https://www.youtube.com/watch?v=uu6sxOqEId8 (https://www.youtube.com/watch?v=uu6sxOqEId8)
Reconozco que llevar el desarrollo a este punto me ha costado más trabajo del que esperaba y ya estaba empezando a impacientarme. En parte, esto ha sido debido a que he tenido que desarrollar herramientas adicionales para visualizar y codificar las trayectorias y la secuencia de oleadas, pero espero que este trabajo me sirva también para otros juegos.
En este punto ya puedo pasar página y empezar con el desarrollo de otro juego. Tengo muchas ideas en la cabeza de juegos sencillos que podrían funcionar y encajar en menos de 4 kbytes.
-
Esta semana he estado desarrollando dos juegos más en paralelo y pronto añadiré otro más a la lista de desarrollos:
#3 Juego de recorrer un laberinto, ya le buscaré un nombre exótico cuando tenga claro de qué va a ir el juego
Ahora mismo, tengo funcionando la generación procedural aleatoria de un laberinto bastante sencillo y la lógica de movimiento por el mismo muy similar a la de un comecocos. Falta por añadir sprites presentables, enemigos, recarga de energía, movimiento de ataque tipo dash, concretar el objetivo del juego (eliminar enemigos, recargar energía, llegar al punto de salida), y diseñar el aumento progresivo de dificultad.
Espero que con los 700 bytes que ahora mismo tengo de margen hasta el límite de 4096 sea suficiente para todo lo que tengo pensado añadir ;)
(https://i.imgur.com/ZurTP2x.png)
(https://i.imgur.com/Qg1uzqd.png)
(https://i.imgur.com/njKfK0O.png)
https://www.youtube.com/watch?v=UVVmJ-4UAdM (https://www.youtube.com/watch?v=UVVmJ-4UAdM)
#4 Stairs Action
Juego inspirado en Elevator Action, pero sin ascensores, sólo escaleras, que aquí no tenemos presupuesto para tanta modernidad. Básicamente, hay que liarse a tiro limpio contra todos los enemigos que salen por las puertas. Ahora mismo no hay objetivo, ni un ajuste fino de la dificultad, ni un ajuste de la posición de escaleras y puertas, ni nada. Pero con lo que ya tiene es un auténtico caos de disparos y enemigos moviéndose por las tres plantas, así que vamos bien.
(https://i.imgur.com/0aCgOR7.png)
(https://i.imgur.com/myHfttX.png)
(https://i.imgur.com/GsRk8hj.png)
https://www.youtube.com/watch?v=BhUSLrC30Qw (https://www.youtube.com/watch?v=BhUSLrC30Qw)
En casi todos los desarrollos me estoy acercando peligrosamente al límite de los 4096 bytes y todavía he de añadir sonidos y mejorar mucho la presentación. Espero que tirando de algunos trucos pueda exprimir un poco más el tamaño de ejecutable y sacar algunos bytes más.
Una cosa importante que he aprendido es qué es lo que hay que darle de comer a Exomizer para que se porte como un campeón y me dé una buena compresión del binario ;D
Eso es todo por ahora.
-
IMpresionante... parece que hubieras puesto en marcha una churrera.
Toda mi admiración al ver tus avances, las cosas que vas implementando y tus explicaciones.
En el juego de naves me gusta el efectito de explosión con partículas, si pudieras, creo que quedaría bien que cuando reciba un impacto el sprite se mueve un pixel hacia arriba y vuelva a su posición anterior. Pero en un juego de naves se pueden poner muchos detalles asi, con las limitación de 4kb cada cosa suma.
-
IMpresionante... parece que hubieras puesto en marcha una churrera.
¡Gracias! En construir minijuegos tengo algo de experiencia. Lo que no tengo es experiencia con la máquina, pero me ha sorprendido lo fácil que es gestionar los 8 sprites, poner un fondo de pantalla hecho con caracteres y darle algo de animación. Salvo que me embarque en efectos gráficos mucho más complejos, veo fácil hacer todo lo que quiero hacer.
Toda mi admiración al ver tus avances, las cosas que vas implementando y tus explicaciones.
Escribir mis avances en algún sitio y observar la evolución me anima a seguir. Además, tengo mala memoria, por lo que me viene bien repasar los apuntes antes de retomar un proyecto aparcado temporalmente.
En el juego de naves me gusta el efectito de explosión con partículas, si pudieras, creo que quedaría bien que cuando reciba un impacto el sprite se mueve un pixel hacia arriba y vuelva a su posición anterior. Pero en un juego de naves se pueden poner muchos detalles asi, con las limitación de 4kb cada cosa suma.
Tienes razón, si hay un impacto sobre el enemigo tiene que notarse bien. El cambio temporal de color no es suficiente y no tengo espacio para un sprite distinto. Lo que comentas es factible sin que haya que alterar el código de seguimiento de trayectorias, bastaría superponer un desplazamiento vertical tipo ping-pong (ida y vuelta) con varios píxeles de amplitud. También tengo pendiente añadir color a las partículas, se ven muy sosas y así cada explosión tenga un poco del color del enemigo. En este desarrollo voy muy justo de espacio, así que veré cuánto espacio gano cuando cambie la codificación de trayectorias para que Exomizer las digiera mejor y cuando defina unas oleadas más vistosas.
-
Muy chulos los 2 minijuegos nuevos, tienen muchas posibilidades, a ver en qué quedan al final ;)
-
Muy chulos los 2 minijuegos nuevos, tienen muchas posibilidades, a ver en qué quedan al final ;)
Gracias. Sé que ahora mismo se ven un poco burdos y mal acabados. Pero trataré de pulir los detalles esta semana, no vaya a ser que con el ansia de empezar juegos nuevos, los deje inacabados.
-
Ohhhh. Me parece genial !
Puedes presentar mas de 1 juego?
-
Ohhhh. Me parece genial !
Puedes presentar mas de 1 juego?
Afirmativo. Eso, junto con lo de los 4 kb de límite de tamaño, es lo que me ha convencido para participar:
Participants may submit multiple entries, either as an individual or within a team. Team entries must be registered by an individual, and any potential prizes will be sent to the registered individual only.
Además, no pone un máximo de juegos presentados, jejejeje.
-
Yo también iba a preguntar lo mismo, se viene un "flooding" :P
-
Yo también iba a preguntar lo mismo, se viene un "flooding" :P
Mi record actual de juegos enviados a una misma game jam es de 11 entradas: https://itch.io/jam/pico-1k-2022/entries (https://itch.io/jam/pico-1k-2022/entries)
Va a ser difícil batirlo a base de juegos y géneros variados... pero puedo intentarlo ;D
-
Mi última creación. Un juego que no voy a presentar a concurso, pero que va a sentar la base para futuros desarrollos:
Death Star Infestation 4K
Como administrador de la Estrella de la Muerte, estás sufriendo una invasión de bots rebeldes que sólo puedes parar tú. Así que ya estás tardando en empuñar tu flamante sable láser y ponerlos a caldo. Se necesitan dos impactos para retirar un robot rebelde. Juegas contra el tiempo, se trata de conseguir la máxima puntuación antes de que se acabe.
Mis comentarios:
1. Lo he conseguido encajar dentro del límite de 4 kbytes.
2. Si lo hubiese realizado en ensamblador, habría tardado meses. No vale la pena.
3. He añadido efectos sonoros, pero como no he tenido paciencia, he tomado los sonidos de los ejemplos que acompañan al compilador. Creo que no me renta meterme a averiguar cómo funciona el maravilloso SID, me basta con entender los parámetros básicos y que haga su magia.
4. Adjunto el fichero PRG (si es que funcionan los fichero adjuntos). Si podéis descargar el juego, probarlo en la máquina real, comentar si funciona y sugerir posibles mejoras os lo agradecería mucho. Aunque ya digo yo que está bastante apretado todo para que quepa en 4k, por lo que más bien, se trataría de arreglar bugs.
5. No hay ordenación en profundidad de los sprites. Esto es un tema que trataré de arreglar para otros juegos que lo necesiten.
Gracias!!!
(https://i.imgur.com/9HQn67r.png)
(https://i.imgur.com/Ah9bJTl.png)
(https://i.imgur.com/26SGwZ3.png)
https://www.youtube.com/watch?v=LMsxBNBI75w (https://www.youtube.com/watch?v=LMsxBNBI75w)
[ Invalid Attachment ]
-
Otro mas y van.....
¿Porque no lo presentas? Lo veo muy bien para la competición.
-
Otro mas y van.....
¿Porque no lo presentas? Lo veo muy bien para la competición.
Muy buenas. Pues tienes razón, quizá es el minijuego que mejor acabado tiene, por ahora. Pero empezó como una prueba sencilla para tener un código de partida que me sirviese para otro juego: quería probar el audio, la sugerencia de @josepzin relativa a desplazar al enemigo de su posición cuando lo golpeas y la generación de trayectorias en línea recta de un lado a otro de la pantalla, en cualquier ángulo. Se me ocurrió la idea de la temática de Star Wars y dar espadazos a diestro y siniestro. Como la idea está muy vista y la temática Star Wars no es precisamente original, no me pareció muy adecuado para presentar. Además, si se confirma que este funciona en máquina real, no veo por qué los otros no iban a funcionar. El juego que iba a presentar utilizaría un boomerang en lugar de espada láser para que con un poco de habilidad pudieras golpear a muchos de un sólo lanzamiento, y los enemigos se iban a mover a saltos para dificultar el acertarles.
-
La idea del boomerang ( quizás con elementos fijos también, que no dejen moverse con tanta cfacilidad) es buena pero tampoco desheches hacer, mas que un juego de Star Wars, una parodia.
-
Y ahí va otro:
#5 Shark Under The Sea 4K
Un juego de pesca submarina. Esta vez, eres el tiburón y tienes que cazar pececillos y evitar al malvado tío del arpón que no para de asediarte y tirarte arponazos.
Ufff, este me ha costado. La idea original era de mi hijo y tenía demasiados elementos para un juego de sólo 4 kbytes. Encajado con calzador, sólo me sobran unos 10 bytes. He tenido que sacrificar el escalado de dificultad, los tiburones rivales, las explosiones, el sprite del tiburón KO y unos gráficos mejores. Además, no me acordaba que si hago una función demasiado grande, el compilador empieza a dar problemas en forma de bugs. El próximo juego me lo elijo más sencillo.
(https://i.imgur.com/rxnq9Xk.png)
(https://i.imgur.com/hJxXyfW.png)
(https://i.imgur.com/JRcYPtq.png)
https://www.youtube.com/watch?v=6YNVIa1AKTQ (https://www.youtube.com/watch?v=6YNVIa1AKTQ)
-
Oye, este del tiburón me gusta mucho mas que el de Star Wars! lo suyo sería que también te puedas comer al buzo.
Los críos tiran ideas, mil ideas... pero claro, luego hay que hacerlas! molaría que los gráficos los haga él.
El de la espada me recuerda al Gremlins, un juegazo.
¿Cómo es eso del problema en una función demasiado grande??
-
Death Star Infestation 4K
4. Adjunto el fichero PRG (si es que funcionan los fichero adjuntos). Si podéis descargar el juego, probarlo en la máquina real, comentar si funciona y sugerir posibles mejoras os lo agradecería mucho. Aunque ya digo yo que está bastante apretado todo para que quepa en 4k, por lo que más bien, se trataría de arreglar bugs.
Yo por estos días tengo que montar un 64C a ver si funciona, le meteré tu juego.
-
Faltaba uno de coches... pues ya no.
#6 Vesperrari 4K
Juego de coches con vista desde arriba. Evita chocarte o salirte de la carretera si no quieres perder velocidad. Compites contra el tiempo. Con cada etapa completada, se añade más tiempo, se cambian los colores y también aumenta la dificultad. Sencillo pero efectivo.
(https://i.imgur.com/LTXS7h6.png)
(https://i.imgur.com/XwSmANn.png)
(https://i.imgur.com/ws8nz1Q.png)
https://www.youtube.com/watch?v=XIvlM66-eG4 (https://www.youtube.com/watch?v=XIvlM66-eG4)
-
Oye, este del tiburón me gusta mucho mas que el de Star Wars! lo suyo sería que también te puedas comer al buzo.
¡Gracias! En estética todavía está lejos, pero usa un mayor número de sprites diferentes, lo que penaliza al tamaño, por lo que he preferido sprites en 2 colores y doblar tamaño horizontal y vertical. Bueno, había pensado también en que el buzo fuera comestible, pero entonces me faltaban enemigos que te pudieran hacer daño, por lo que se volvía demasiado fácil. Y tendría que lidiar con el uso del arpón a bocajarro. Una de las principales dificultades de lidiar con el buzo es que te intenta perseguir si pasa demasiado cerca.
Los críos tiran ideas, mil ideas... pero claro, luego hay que hacerlas! molaría que los gráficos los haga él.
Totalmente de acuerdo. Los gráficos me los tenía que hacer él. >:(
El de la espada me recuerda al Gremlins, un juegazo.
Pues la verdad es que no conocía ese juego, muy simpático la verdad. Creía que de la película sólo existía la aventura gráfica.
¿Cómo es eso del problema en una función demasiado grande??
Pues no sabría explicarlo. Por ejemplo las cadenas de if ( ... ) { ... } else if ( ... ) { ... } else { ... } empiezan a fallar si la función es muy grande. Lo mismo el bug está corregido, creo que estoy utilizando una versión de hace más de un año. Pero me fastidia... los bugs deberían ser sólo míos.
-
Yo por estos días tengo que montar un 64C a ver si funciona, le meteré tu juego.
¿Cómo es eso de montar un 64C? ¿Venden las piezas nuevas para ensamblarlo?
-
Bueno, había pensado también en que el buzo fuera comestible, pero entonces me faltaban enemigos que te pudieran hacer daño, por lo que se volvía demasiado fácil. Y tendría que lidiar con el uso del arpón a bocajarro. Una de las principales dificultades de lidiar con el buzo es que te intenta perseguir si pasa demasiado cerca.
Cierto, pero es que dan unas ganas de masticarlo a buzo! :D
Totalmente de acuerdo. Los gráficos me los tenía que hacer él. >:(
Asi se lo piensa dos veces antes de tirar mas ideas.
Pues la verdad es que no conocía ese juego, muy simpático la verdad. Creía que de la película sólo existía la aventura gráfica.
Yo no conocí la aventura gráfica hasta mucho tiempo después, para mi el juego de los Gremlins fue ese de la espada!!
Pero me fastidia... los bugs deberían ser sólo míos.
Cierto, los bugs propios uno se los aguanta pero los de los demás NO.
-
¿Cómo es eso de montar un 64C? ¿Venden las piezas nuevas para ensamblarlo?
Cuando me refiero a "montar" es ponerlo en marcha, buscar fuente, cables, cartuchos, joysticks, que tengo todo en cajas desde hace meses.
Este es un C64C PAL-B que me traje de España y aunque le tengo mucho cariño, aquí en Argentina es PAL-N y se ve en blanco y negro, asi que luego de 10 años de estar guardado he decidido venderlo (ya tengo varios PAL-N), además aquí hay algunos que los ven como algo especial, así que no voy a tener problema en venderlo, pero lo venía guardando porque me da pena!
-
Añado uno más:
#7 Treacherous Platforms 4K
Juego de plataformas con gráficos extremadamente cutres. Hay que saltar de plataforma en plataforma, disparar a los robots y evitar caer al suelo o recibir impactos enemigos.
Iba a probar un scroll horizontal del fondo, pero como he llegado al límite de los 4096 bytes, mala suerte, no ha podido ser. ;D
(https://i.imgur.com/uZ1abIc.png)
(https://i.imgur.com/8WQ6UZS.png)
(https://i.imgur.com/tYSgfhS.png)
(https://i.imgur.com/UKdDF8M.png)
https://www.youtube.com/watch?v=uObZSZwoEIA (https://www.youtube.com/watch?v=uObZSZwoEIA)
Siguiente...
-
Las plataformas están dentro de los X < 255???
-
Las plataformas están dentro de los X < 255???
Si tenemos en cuenta que las coordenadas X visibles tienen un rango de 0 a 319 y que la posición X de sprites puede ser incluso mayor o menor para el caso de sprites parcialmente visibles, no tiene sentido utilizar un byte para representarla. Ese no es el problema, ya que uso entero de 16 bits con signo, e incluso me permito usar coma fija para mayor suavidad en los desplazamientos, velocidades no enteras y poder hacer cálculos con aceleración de gravedad.
El problema es que, sin utilizar el multiplexor de sprites que mete mucho código y hace que se superen los 4 kbytes fácilmente, sólo tenemos 8 sprites simultáneos. Para este juego he decidido que el uso de sprites no sea dinámico sino fijo con el siguiente esquema: 1 para jugador, 2 para robots enemigos, 2 para disparos de jugador, 1 para disparo de enemigo, con lo que sólo quedan 2 para plataformas. Si hubiera limitado el disparo del jugador a sólo 1 en pantalla, entonces tendría 3 sprites para plataformas, pero las pruebas me indican que es fácil fallar el tiro y que hay que disponer de al menos dos disparos simultáneos para que el juego sea equilibrado y divertido.
Limitar a sólo 2 plataformas en pantalla no es muy estético. Pero, desde el punto de vista de jugabilidad no tiene un impacto demasiado negativo, ya que situarse a la derecha supone mucho riesgo de que seas alcanzado por disparos enemigos y que tengas poco tiempo de reacción. Además, la mecánica de salto de altura variable "no commodoriana" (más tiempo pulsas arriba, más alto llega) permite que el paso de una plataforma a otra sea muy fácil y flexible, con lo que con sólo 2 plataformas en pantalla debería ser suficiente, aunque exija algo de habilidad. Este es el tipo de compromisos que hay que hacer cuando se desarrollan juegos con límites muy estrictos de tamaño: se trata de dañar lo mínimo a la jugabilidad aunque sea a costa de la "vistosidad".
Por cierto, he intentado que este defecto no se note tanto tratando de desviar la atención al sprite horroroso del personaje (nótese la cabeza y el uso del color marrón), pero parece que no ha surtido efecto. No me lo explico. ;)
-
Toca añadir otro juego:
#8 Invitation to Leave
A partir del juego de la espada láser, he cambiado los gráficos y optimizado un poco más el código con lo que me ha dado suficiente espacio para incluir obstáculos.
(https://i.imgur.com/urkIOdB.png)
(https://i.imgur.com/qCN0GiZ.png)
(https://i.imgur.com/MNQlf77.png)
(https://i.imgur.com/6uyPX5Q.png)
https://www.youtube.com/watch?v=9Xnv2eTiY2o (https://www.youtube.com/watch?v=9Xnv2eTiY2o)
-
Jjajajajaa me encanta, me parece super simpático y cómica la idea!
-
Jjajajajaa me encanta, me parece super simpático y cómica la idea!
¡Gracias! Ahora que lo comentas, le iría fantástico incluir una música de fondo cómica tipo Benny Hill. Pero no sé de dónde iba a sacar los bytes necesarios. Además, tendría que investigar cómo se añade música SID.
-
Lo de la música de Benny Hill estaría genial. ;)
(https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2F2.bp.blogspot.com%2F-UTNQgHCjfBA%2FUuVAlTXwGEI%2FAAAAAAAACCc%2FcV5Gl_mFZks%2Fs1600%2F1952308_o.gif&f=1&nofb=1&ipt=a3875db34cd02c21e7e5a554c5b3f7728b29f2747e2d21a52d548a0c0eef83ec&ipo=images)
-
Aquí hay algunas: https://csdb.dk/search/?seinsel=all&search=benny+hill&Go.x=0&Go.y=0
:D
-
Uno de género simulador deportivo:
#9 Crap Basket 4K
Me ha costado sudores encajar los cálculos matemáticos en 4K. No disponer de funciones trigonométricas ni de multiplicaciones es muy duro y, por si no era suficiente, he arrastrado un bug estúpido hasta el final. Bueno, de todo se aprende.
(https://i.imgur.com/xtXJeno.png)
(https://i.imgur.com/yPNFAFh.png)
(https://i.imgur.com/R1vHsQD.png)
(https://i.imgur.com/uQnFC0A.png)
https://www.youtube.com/watch?v=0Di60bxAWUA (https://www.youtube.com/watch?v=0Di60bxAWUA)
-
Ni me imagino cómo has resuelto todas esas parábolas y rebotes...
-
Ni me imagino cómo has resuelto todas esas parábolas y rebotes...
Las trayectorias parabólicas salen de forma natural al aplicar aceleración de la gravedad sobre las velocidades e integrar las velocidades (hay 3 pasos de integración por frame). Los rebotes con las paredes son fáciles y sólo tienen un factor de pérdida de velocidad. El aro de la canasta tiene dos puntos de colisión y rebote. En sistemas con posibilidad de multiplicar y dividir lo habría hecho con cálculo vectorial: cálculo de la normal, proyección del vector velocidad sobre la normal para hallar las componentes en dirección normal y perpendicular a normal, cálculo del vector por reflexión. Pero aquí lo he hecho a lo bruto: cálculo de distancia entre puntos centrales para test colisión círculo-círculo, conversión de vector velocidad de coordenadas cartesianas a polares, cálculo del ángulo del vector normal, cálculo de la reflexión en coordenadas polares, aplicar factor de pérdida de velocidad, conversión de velocidad resultante de coordenadas polares a coordenadas cartesianas. Se utilizan tablas precalculadas de seno/coseno, longitud a partir de componentes x e y, ángulo a partir de componentes x e y (arcotangente). Muy divertido todo para amantes de las matemáticas.
-
Uno de género simulador deportivo:
#9 Crap Basket 4K
Me ha costado sudores encajar los cálculos matemáticos en 4K. No disponer de funciones trigonométricas ni de multiplicaciones es muy duro y, por si no era suficiente, he arrastrado un bug estúpido hasta el final. Bueno, de todo se aprende.
(https://i.imgur.com/xtXJeno.png)
Este mola mucho, puedes hacer un juego para 2 jugadores estilo "El 21" o algo así, no sé si en otras partes se llama igual, es un juego para 2 o más jugadores, el primero lanza desde la línea de tiro libre y suma puntos mientras no falle, cuando falla el siguiente recoge la pelota donde caiga y tira igual que el primero hasta que falle. El primero que llega a 21 puntos gana.
-
Las trayectorias parabólicas salen de forma natural al aplicar aceleración de la gravedad sobre las velocidades e integrar las velocidades (hay 3 pasos de integración por frame). Los rebotes con las paredes son fáciles y sólo tienen un factor de pérdida de velocidad. El aro de la canasta tiene dos puntos de colisión y rebote. En sistemas con posibilidad de multiplicar y dividir lo habría hecho con cálculo vectorial: cálculo de la normal, proyección del vector velocidad sobre la normal para hallar las componentes en dirección normal y perpendicular a normal, cálculo del vector por reflexión. Pero aquí lo he hecho a lo bruto: cálculo de distancia entre puntos centrales para test colisión círculo-círculo, conversión de vector velocidad de coordenadas cartesianas a polares, cálculo del ángulo del vector normal, cálculo de la reflexión en coordenadas polares, aplicar factor de pérdida de velocidad, conversión de velocidad resultante de coordenadas polares a coordenadas cartesianas. Se utilizan tablas precalculadas de seno/coseno, longitud a partir de componentes x e y, ángulo a partir de componentes x e y (arcotangente). Muy divertido todo para amantes de las matemáticas.
No, si, claro, ya decía yo que era una cosa super simple :P
-
Este mola mucho, puedes hacer un juego para 2 jugadores estilo "El 21" o algo así, no sé si en otras partes se llama igual, es un juego para 2 o más jugadores, el primero lanza desde la línea de tiro libre y suma puntos mientras no falle, cuando falla el siguiente recoge la pelota donde caiga y tira igual que el primero hasta que falle. El primero que llega a 21 puntos gana.
No me había planteado juegos para dos jugadores, sólo juegos para un jugador por eso de simplificar (dos jugadores implica dos marcadores, lógica separada para uno o dos jugadores, etc.). Lo de tirar desde donde caiga la pelota tiene el problema de que te caiga justo debajo de la canasta. Dado que no hay "jugador" que pueda saltar y separarse de la canasta, no sería posible encestar y habría que sustituir esas posiciones imposibles por otras que sean posibles. Por cierto, he puesto código para comprobar que sólo se puntúa si la pelota entra por arriba y pasa por el aro y que sólo sume puntos una vez por tiro. También he corregido el bug que se ve en el vídeo: en uno de los tiros la pelota se queda pegada al aro porque pierde mucha velocidad y el código sólo funciona para rebotes no para deslizamientos. Para evitarlo, he forzado una velocidad mínima de rebote. He corregido las distancias de colisión para que sean más coherentes con los gráficos. Quería añadir un sprite de jugador que hiciera la animación de tirar a canasta, cambiar la posición aleatoria en cada tiro por distancia/dificultad creciente, poner una animación para la pelota girando en el aire y otra para la red de la canasta moviéndose tras encestar. El problema es que estoy sólo 8 bytes por debajo de los 4096 bytes y he tenido que recortar mucho para llegar hasta ahí. De todos modos, el juego no tiene que ser perfecto, porque entonces no sería "crap". ::)
-
No, si, claro, ya decía yo que era una cosa super simple :P
La explicación era necesaria para disipar las dudas y para señalar que en un micro de 8 bits no se pueden hacer las cosas como normalmente se harían en otros sistemas más potentes. Se podría plantear una lógica más sencilla en la que los rebotes sólo sean de dos tipos: contra superficie horizontal o contra superficie vertical, pero entonces el aro haría cosas muy raras y sería poco creíble.
Bueno, la ventaja es que algunas de las funciones que he desarrollado son también útiles para otros tipos de juegos. Se me ocurre uno tipo pinball, aunque ni en broma cabría en 4Kbytes, a no ser que lo reduzca a un "pachinko" https://es.wikipedia.org/wiki/Pachinko (https://es.wikipedia.org/wiki/Pachinko) pero no creo que eso sea muy divertido. Sin embargo, un juego de minigolf o sólo la parte de juego del green sí que sería posible. Tengo que pensarlo. Se me acumula el trabajo...
-
#10 Cat'n'Bombs 4K
Básicamente se trata de un juego perteneciente al muy conocido género "gato que lanza bombas a cascoporro". Obviamente, tiene influencias de otros juegos como el Psycho Pigs, al que no he jugado nunca pero parece bastante divertido. En este juego el contacto con los enemigos sí quita vidas pero, para compensar, sus trayectorias son más simples y predecibles. Tenemos cinco vidas y no siete porque este gato en concreto viene un poco mermado de serie por historias anteriores. Cada 30 segundos sube el nivel de dificultad y los enemigos van más rápido, lo que a la larga es malo para el gato, así que conviene aprovechar bien el tiempo para sembrar el caos. Antes de poder lanzar bombas, hay que cogerlas, que no es Doraemon con su bolsillo infinito. Las bombas aparecen aleatoriamente en la pantalla, hasta un máximo de dos bombas simultáneas. He ajustado la dificultad para que las partidas duren unos dos o tres minutos para mancos como yo.
El grafista me ha fallado (otra vez), así que el fondo es marrón para celebrarlo.
(https://i.imgur.com/QtUoyTy.png)
(https://i.imgur.com/MkuYtju.png)
(https://i.imgur.com/zFmcZPM.png)
(https://i.imgur.com/uAGbD6p.png)
(https://i.imgur.com/QIlgJXD.png)
https://www.youtube.com/watch?v=EDCBsnzBYRE (https://www.youtube.com/watch?v=EDCBsnzBYRE)
-
Oye, parece muy divertido. Por sugerir algo, quizás podrías usar para la explosión eso de ampliar los sprites.
Espero que la fecha de esta craptastic sea pronto o serás descalificado por "flooding".
-
Oye, parece muy divertido.
Sí, a mí al menos me lo ha parecido en las pruebas. Para que no se haga muy monótono he decidido un aumento de dificultad pronunciado que hace que en dos minutos pase de fácil a muy desafiante. Lo malo son las bombas que aparecen cerca del borde, si te sale un enemigo estás muy expuesto.
Por sugerir algo, quizás podrías usar para la explosión eso de ampliar los sprites.
Lo había pensado, pero para que quede bien tendría que poner el sprite de explosión en alta resolución y alterar las rutinas de actualización de sprites para manejar un cambio de escalado y de resolución ya que reutilizo las posiciones de sprite que tenían las bombas correspondientes. El código extra me penalizaría en tamaño y sólo sobran 40 bytes.
Espero que la fecha de esta craptastic sea pronto o serás descalificado por "flooding".
Creo que estaban escasos de participación, así que no creo que les importe. Además, los juegos son de alta calidad según los estándares de años anteriores y se nota el esfuerzo aunque no se aproveche ni al 23.1% las capacidades de la máquina. No tengo claro aún si enviarlos por correo de uno en uno o en paquetes de a 5 para que no les salte el anti-spam.
-
Lo malo son las bombas que aparecen cerca del borde, si te sale un enemigo estás muy expuesto.
Lo típico de juegos antiguos cuando estas cerca del borde de la pantalla... la injusticia total.
Lo había pensado, pero para que quede bien tendría que poner el sprite de explosión en alta resolución y alterar las rutinas de actualización de sprites para manejar un cambio de escalado
A ver, que estamos hablando de un scrapgame, simplemente pones el mismo sprite de la explosión ampliado :D
(no me hagas caso, era solo una cosa que se me ocurrió)
Creo que estaban escasos de participación, así que no creo que les importe. Además, los juegos son de alta calidad según los estándares de años anteriores y se nota el esfuerzo aunque no se aproveche ni al 23.1% las capacidades de la máquina. No tengo claro aún si enviarlos por correo de uno en uno o en paquetes de a 5 para que no les salte el anti-spam.
Recuerda, el año que viene habrá una nueva regla "Maximo 2 juegos por participantes" :v
-
Recuerda, el año que viene habrá una nueva regla "Maximo 2 juegos por participantes" :v
Mi opinión es que este tipo de concursos, dejando a un lado el marketing, buscan incentivar la participación y la creación de nuevos juegos para la máquina elegida. Lo lógico es que las reglas deban alinearse con esos objetivos.
En cualquier caso, los organizadores son libres de establecer las reglas que consideren oportuno y los desarrolladores son libres de participar o no, claro.
Particularmente, soy de los que miran las reglas antes de participar y procuro evitar concursos con reglas relativas a límite de juegos por participante o a publicación del código fuente, y suelo optar por formatos que incluyen limitación en el tamaño, ya que en ellos las mecánicas y la jugabilidad suelen ser más importantes que música, gráficos y diseño de niveles.
Aunque es cierto que reaprovecho código de un juego a otro, creo que hasta ahora los juegos creados son diferentes unos de otros y muestran diferentes mecánicas de juego, por lo que no cabría hablar de flooding malintencionado, sino más bien de alta productividad.
-
MUY alta productividad, totalmente de acuerdo. Ese Oscar64 se va a quedar agotado.
-
Ahora mismo tengo en desarrollo uno de lucha, más o menos complejo dependiendo de lo que se estiren los 4K.
Para el siguiente: @josepzin , ¿qué tipo de juego o idea te gustaría ver "deconstruido" en 4Kbytes? Aviso: no todo es posible y lo más seguro es que con los recortes salga un churro irreconocible, pero puede ser divertido.
-
No hay avances en el juego de lucha. Pero he terminado otro:
#11 Banana Syndrome
De la frutería del barrio, la que casualmente está junto al laboratorio biológico ultrasecreto, han escapado unos plátanos mutantes bastante peligrosos. Trata de controlar la situación mientras que llegan los refuerzos (spoiler: no van a venir).
Otra variación más de las mecánicas de movimiento de los enemigos, además de que disparan y lo hacen con bastante puntería. He utilizado un buen puñado de frames para animación del personaje, quizá demasiados para un juego de 4Kbytes. Hubiera estado bien tener más bytes para añadir el scroll, aunque la verdad es que el juego, tal como está, es jugable y divertido.
(https://i.imgur.com/Q3OArwL.png)
(https://i.imgur.com/ISDrC88.png)
(https://i.imgur.com/AdhaS5k.png)
(https://i.imgur.com/Gf12mBW.png)
https://www.youtube.com/watch?v=KB3jDP6Kxdw (https://www.youtube.com/watch?v=KB3jDP6Kxdw)
-
Me gusta todo de este juego:
- Los movimientos de las bananas, con sus pausas
- Los disparos que hacen, sin llegar a saturar la pantalla
- El escenario, aunque simple pero colorido
- Las bananas con esas caras de malvadas :D
- El pitufo que controlamos no tanto
Por dar ideas que no se pueden hacer: que mientras la banana muere que la puedas coger, y entonces te da mas puntos. Si ademas tuviera una animacion o movimiento extra cuando esto pasa...
-
Me gusta todo de este juego:
- Los movimientos de las bananas, con sus pausas
- Los disparos que hacen, sin llegar a saturar la pantalla
- El escenario, aunque simple pero colorido
- Las bananas con esas caras de malvadas :D
- El pitufo que controlamos no tanto
Por dar ideas que no se pueden hacer: que mientras la banana muere que la puedas coger, y entonces te da mas puntos. Si ademas tuviera una animacion o movimiento extra cuando esto pasa...
¡Gracias! Lo único que tenía claro antes de empezar es que los enemigos iban a ser bananas y que se iban a mover en tramos rectos intercalados con pausas. El inconveniente de las bananas que he dibujado es que son delgadas y difíciles de alcanzar desde arriba o desde abajo. Como no sabía qué sprite poner como protagonista, me inventé uno en 5 minutos. Tenía que tener un contraste muy fuerte con el fondo y con los enemigos, así que salió un pitufo con gafas. Se nota que lo mío no es el diseño de sprites.
Lo malo es que me vine muy arriba e incluso construí un mapa grande para hacer scroll. Iba a utilizar unas rutinas de scroll similares a las que utiliza el gran drmortalwombat en el juego Ball'n'Chain https://github.com/drmortalwombat/ballnchain (https://github.com/drmortalwombat/ballnchain)
El código de scroll no tiene ni una sola línea de ensamblador y se ve muy sencillo de entender. Utiliza un scroll continuo sólo en una dirección, pero creo que no sería muy complicado convertirlo en multidireccional con cámara de seguimiento dinámico. Por simplificar, podría prescindir de los colores y dejar el scroll sólo con caracteres en doble buffer.
Una vez vi que incluso para la versión más básica sin scroll ya estaba en el límite de 4 kbytes, dejé la idea del scroll a un lado.
Tus ideas son buenas, pero me temo que tendrían que aplicarse a un proyecto más grande y ambicioso.
-
¡Gracias! Lo único que tenía claro antes de empezar es que los enemigos iban a ser bananas y que se iban a mover en tramos rectos intercalados con pausas.
Es todo un acierto esa forma de movimiento.
El inconveniente de las bananas que he dibujado es que son delgadas y difíciles de alcanzar desde arriba o desde abajo.
Se nota en el video!
Una vez vi que incluso para la versión más básica sin scroll ya estaba en el límite de 4 kbytes, dejé la idea del scroll a un lado.
Un scroll multidireccional no tiene pinta de ser algo de poco código...
-
#12 Stop the Bomber 4K
Tu misión es detener al personaje que está soltando bombas indiscriminadamente. También debes evitar que estallen las bombas que ha conseguido colocar. Con el tiempo, las bombas tendrán una mecha más corta, por lo que tus movimientos tendrán que ser más precisos si no quieres que todo salte por los aires. Tienes 5 vidas y pierdes una vida por cada bomba que estalle. Golpea 10 veces al enemigo para dejarlo fuera de combate. Inmediatamente saldrá otro para seguir incordiando.
(https://i.imgur.com/y68soWW_d.webp?maxwidth=760&fidelity=grand)
(https://i.imgur.com/JKGU6KY_d.webp?maxwidth=760&fidelity=grand)
(https://i.imgur.com/OGB6Dgh_d.webp?maxwidth=760&fidelity=grand)
(https://i.imgur.com/oAKFTbt_d.webp?maxwidth=760&fidelity=grand)
https://www.youtube.com/watch?v=QfF4pQbyovg (https://www.youtube.com/watch?v=QfF4pQbyovg)
Posiblemente, este sea mi último juego creado para el concurso. Sólo queda una semana para la fecha límite de entrega y no tengo tanto tiempo libre como antes. Además, tengo que dar el acabado definitivo a 3 de los juegos que dejé inacabados.
-
Otro mas!...y van ?
Suerte con el concurso
-
Otro mas!...y van ?
Suerte con el concurso
Gracias, @Bieno
El objetivo no es ganar nada. Seguro que hay juegos mejores con scroll, raster, músicas fantásticas, etc. Sólo era una excusa para programar juegos para el Commodore 64 y además del tipo que me gustan. Y como ejercicio para refrescar mis conocimientos de programación, no está nada mal.
-
Gracias, @Bieno
El objetivo no es ganar nada. Seguro que hay juegos mejores con scroll, raster, músicas fantásticas, etc. Sólo era una excusa para programar juegos para el Commodore 64 y además del tipo que me gustan. Y como ejercicio para refrescar mis conocimientos de programación, no está nada mal.
En este juego sois tú y tu señora los protagonistas?
Como las feministas vean este juego, te enchironan! ::)
-
En este juego sois tú y tu señora los protagonistas?
No, son dos tíos random, uno de ellos con melenas. Esto es lo que pasa con los gráficos hiperrealistas del Commodore 64, que la gente empieza a ver más cosas de las que realmente hay. En teoría son personajes intercambiables y había pensado meter una pantalla de selección de personaje a lo Street Fighter, pero al final no me cabía en 4kbytes.
Como las feministas vean este juego, te enchironan! ::)
Por supuesto que no. Me gasto una pasta en asesoría para que todos mis juegos sean políticamente correctos y no ofendan a nadie. ;)
Edit: sustituido el gráfico, un problema menos. Gracias, @Jeff
-
Edit: sustituido el gráfico, un problema menos. Gracias, @Jeff
Con pelos largos también podría haber sido un "faking-hippie" y hubieras tenido problemas. Hazlo nazi, casi nadie tiene problemas con pegarle a los nazis :V
-
Se ve buenísimo!! muy cuidados los detalles y muy simpáticos los gráficos.
#12 Stop the Bomber 4K
https://www.youtube.com/watch?v=QfF4pQbyovg (https://www.youtube.com/watch?v=QfF4pQbyovg)
Posiblemente, este sea mi último juego creado para el concurso. Sólo queda una semana para la fecha límite de entrega y no tengo tanto tiempo libre como antes. Además, tengo que dar el acabado definitivo a 3 de los juegos que dejé inacabados.
Calla, que en una semana tú te sacas 3 juegos nuevos.
-
Muy buenas. Ante la polémica causada por el diseño del enemigo del último juego, he decidido cambiar los sprites del enemigo que tira las bombas. Ahora es un tío con barba y gafas bastante genérico. Por lo demás, el gameplay, el game design, la IA del enemigo, el sistema de puntuación, blablabla y tamaño en bytes se mantiene igual. Adjunto vídeo.
https://www.youtube.com/watch?v=9t6p8UpPZ4k (https://www.youtube.com/watch?v=9t6p8UpPZ4k)
-
¿Barbas? ¿no será musulman?? :D
-
¿Barbas?
Bueno, que me disculpen los que tengan barba y gafas. Ahora entiendo por qué se dice que hay juegos de los 80s y 90s que no se podrían hacer hoy. Lo raro es que se pueda hacer un juego, que no sea uno tipo puzle, sin que te caiga lo más grande. Tendré que volver a los enemigos robóticos, que no están mal vistos, al menos hasta que la IA domine el mundo.
-
Eso, ya verás en unos años cuando la IA tome el control...
-
Pues a mi me hacía gracia lo de la “doña”
Pero al ser un tipo con el pelo largo.. pues nada.
En las instrucciones dejas claro que es un tío hipster que tiene Anstra y a correr.
-
Pues a mi me hacía gracia lo de la “doña”
Pero al ser un tipo con el pelo largo.. pues nada.
En las instrucciones dejas claro que es un tío hipster que tiene Anstra y a correr.
Jajaja. Ya está enviado a concurso. Se queda de villano el tío con barba y gafas. No se sabe si tiene Anstra real y si lo utiliza o no, pero mala cara sí que tiene.
Finalmente he entregado sólo 11 juegos, me he quedado con uno a medio terminar. Ha sido divertido, buena máquina el C64.
Ahora toca volver a PICO-8 o hacer algo en Picotron: https://itch.io/jam/pico-1k-2024
-
Jajaja. Ya está enviado a concurso. Se queda de villano el tío con barba y gafas. No se sabe si tiene Anstra real y si lo utiliza o no, pero mala cara sí que tiene.
Finalmente he entregado sólo 11 juegos, me he quedado con uno a medio terminar. Ha sido divertido, buena máquina el C64.
Ahora toca volver a PICO-8 o hacer algo en Picotron: https://itch.io/jam/pico-1k-2024
Ah! Bueno, SOLO han sido 11. ;D
Si llegas a terminar el último, podría decir Zanni que este año ha sido uno de los más prolíficos de C64 a nivel de homebrew. :o
;)
-
Ah! Bueno, SOLO han sido 11. ;D
Si llegas a terminar el último, podría decir Zanni que este año ha sido uno de los más prolíficos de C64 a nivel de homebrew. :o
;)
Sí, estoy en baja forma. Hace dos meses mis expectativas eran de mínimo 15, aunque creo que llevaba alguna cerveza de más. Ahora que lo dices, he quedado en 11 a propósito para que no se pueda decir que es el mejor año a nivel de "homebrew" de C64, aunque más bien sería de "crapbrew". No sé, cuando juguéis ya me contaréis.
-
Ya han salido publicados los juegos que entran en competición
Mucha suerte SkyBerron !!!!!!!
(https://img.itch.zone/aW1nLzE3NjEwODMzLnBuZw==/original/Omo8ol.png)
https://reset64-magazine.itch.io/2024-craptastic-compoo
-
Y Patagonia también participa, con su Nightmare 4k
(https://img.itch.zone/aW1hZ2UvMjk0MDgyMy8xNzYxMDY0NC5wbmc=/347x500/xTJHSj.png)
Suerte también !
-
Ya han salido publicados los juegos que entran en competición
Mucha suerte SkyBerron !!!!!!!
(https://img.itch.zone/aW1nLzE3NjEwODMzLnBuZw==/original/Omo8ol.png)
https://reset64-magazine.itch.io/2024-craptastic-compoo
Gracias!!! Suerte a todos los que hayais participado!!!
Espero que os gusten todos los juegos. Yo ya he echado un vistazo rápido y hay cositas buenas...
-
Me tengo que poner al día... acabo de encontrarlos en itchio, hay que probar todo esto!!
https://reset64-magazine.itch.io/2024-craptastic-compoo
-
No había visto @SkyBerron el Vesperrari. Es un "homenaje" al Verpertino de Amstrad?
-
Aquí hay un video donde prueban todos los juegos (creo, todavía no lo he visto).
https://www.youtube.com/watch?v=zrwCM_KYrxg (https://www.youtube.com/watch?v=zrwCM_KYrxg)
-
No había visto @SkyBerron el Vesperrari. Es un "homenaje" al Verpertino de Amstrad?
Hubiese querido hacer un juego de coches al más puro estilo OutRun, pero muy pronto me di cuenta que eso estaba un poco fuera de mis posibilidades, sobre todo teniendo en cuenta el límite de 4kbytes. Así que el resultado es un juego con vista desde arriba, mucho más sencillo, pero relativamente jugable. Para acompañar al juego tenía que encontrar un título acorde, así que se me ocurrió: Vespa+Ferrari = Vesperrari.
Peeeero, siempre de forma no oficial, también podría ser mi humilde homenaje a ese legendario título de Amstrad llamado a ser el mejor juego para ordenadores de 8 bits del universo.
;)
-
@SkyBerron me quedé "esperando" una conclusión sobre esta experiencia!
-
@SkyBerron me quedé "esperando" una conclusión sobre esta experiencia!
Vaya, se me olvidó dar una conclusión final sobre mi breve pero intensa experiencia en la programación de juegos para el C64.
No teniendo experiencia previa en programación de juegos para máquinas de 8 bits, me propuse empezar con cosas sencillitas... y este concurso era perfecto por las fuertes limitaciones de tamaño. Me sorprendió muy gratamente las capacidades gráficas de la máquina, la potencia del compilador Oscar64 y lo divertido que era hacer juegos para esta máquina. Ahora entiendo por qué en su época era una máquina tan puntera y potente para juegos. Para nada hay que dejarse engañar por los pocos megahertzios del procesador. Es increíble lo que rinde el joio.
Según lo veo yo, cada juego supuso un ejercicio de programación con recursos de tiempo y tamaño de código limitados. En algún momento rocé las tres tardes por juego, pero no pude alcanzar el ambicioso objetivo de 15 juegos presentados.
Quien no sepa de las limitaciones, sólo verá que son juegos simples, mal acabados, sin música e incluso rematadamente cutres. Incluso hubo alguien en un stream inglés de cuyo nombre no quiero acordarme que sugirió que todos los juegos eran iguales y hechos "con engine" y no paraba de bajar la "puntuación" para dejarlos en último lugar... muy penoso y lamentable, aunque no me sorprende.
Lo único negativo es que me he sentido un poco solo. Nadie más se ha unido a la aventura. No es que esperase otra cosa, la verdad. Pero algo negativo hay que poner, ¿no?
Actualmente estoy aprendiendo a programar juegos para el MSX2 y me doy cuenta de lo bueno que es Oscar64 en comparación con el compilador de C que estoy utilizando ahora. Incluso me veo obligado a pasar a ensamblador del Z80 partes críticas del código para obtener un rendimiento aceptable, y eso para mí no es divertido. Me doy cuenta que pequeñas decisiones de diseño de la máquina pueden pesar mucho en el rendimiento y en el aprovechamiento de las capacidades. Y menos mal que no he cometido la temeridad de dar el salto a programar juegos para el Anstra directamente desde el C64, que si no...
Bueno, paro ya de dar la brasa. See you next game!