Toy'Swap: Juego para Atari XL

Software y Juegos para retro-computadores, bueeeno... casi puros juegos :-)
Avatar de Usuario
renix
Mensajes: 4675
Registrado: Vie Ene 25, 2013 1:39 am

Re: [Proyecto] Juego para Atari XL

Mensaje por renix » Dom Sep 21, 2014 2:56 am

Animo vitoco...

Avatar de Usuario
vitoco
Mensajes: 1970
Registrado: Lun Ene 28, 2013 5:47 pm
Contactar:

Re: [Proyecto] Juego para Atari XL

Mensaje por vitoco » Dom Sep 21, 2014 12:10 pm

El problema de trabajar de a poquito es que hay cosas que las hago pensando a futuro y que después se me han olvidado que están y las hago nuevamente. No a todo le he puesto comentarios, aunque sí he usado etiquetas con nombres largos y descriptivos. Cada versión estable de los fuentes los fui respaldando, y cuando llevaba 30 decidí hacer un registro de cambios (changelog), comparando cada versión con la anterior. En la misma lista agregué los pendientes (todo) y las ideas para nuevas funcionalidades o efectos especiales. Ya voy en la versión 45.

Una cosa que me ha estado dando vueltas es que todo lo he escrito en español, y que tal vez sea práctico llevarlo a inglés. Qué opinan?

AsCrNet
Mensajes: 130
Registrado: Lun Mar 11, 2013 10:47 am

Re: [Proyecto] Juego para Atari XL

Mensaje por AsCrNet » Mié Sep 24, 2014 5:45 pm

vitoco escribió:El problema de trabajar de a poquito es que hay cosas que las hago pensando a futuro y que después se me han olvidado que están y las hago nuevamente. No a todo le he puesto comentarios, aunque sí he usado etiquetas con nombres largos y descriptivos. Cada versión estable de los fuentes los fui respaldando, y cuando llevaba 30 decidí hacer un registro de cambios (changelog), comparando cada versión con la anterior. En la misma lista agregué los pendientes (todo) y las ideas para nuevas funcionalidades o efectos especiales. Ya voy en la versión 45.
:sconf: a comer pasas para la memoria mijo :lolgreen: o quisas seria bueno usar macros "sub-rutinas" para no estar reescribiendo las rutinas de nuevo y reutilizar lo que ya esta programado. por ejemplo un archivo de macros, donde están las macros re-utilizables.

Código: Seleccionar todo

;---------------------------
; POKE Registro de memoria, 
; Valor a asignar
;--------------------------
.macro poke reg,num
   lda #:num
   sta :reg
.endm
y después lo incluyes en tu programa principal.

Código: Seleccionar todo

    icl "macro.lib"
    org $4000

inicio
   poke 709,15
   poke 712,30
loop jmp loop
   run inicio
vitoco escribió:Una cosa que me ha estado dando vueltas es que todo lo he escrito en español, y que tal vez sea práctico llevarlo a inglés. Qué opinan?
Lo mejor seria en español y las etiquetas en ingles para que la gente entienda tu código mas fácilmente. por ejemplo

Código: Seleccionar todo

;----------------------------
; Pregunta por el Joystick
;----------------------------
JOY
    JSR CHCOL
    LDA STICK
    CMP #15
    BEQ JOYEXIT
    CMP #14
    BEQ JOYUP
    CMP #13
    BEQ JOYDOWN
    CMP #7
    BEQ JOYRIGHT
    CMP #11
    BEQ JOYLEFT
JOYEXIT
    RTS
Saludosshhhh

Avatar de Usuario
vitoco
Mensajes: 1970
Registrado: Lun Ene 28, 2013 5:47 pm
Contactar:

Re: [Proyecto] Juego para Atari XL

Mensaje por vitoco » Mié Sep 24, 2014 6:11 pm

Por el momento, mi rutina para leer el joystick es la siguiente:

Código: Seleccionar todo

espera_movimiento
.local
  jsr control_tiempo
  lda STICK0
  cmp #15 ; neutral
  bne espera_movimiento ; quedó activado de la jugada anterior
l1
  jsr control_tiempo
  lda tiempo
  beq se_acabo
  lda STICK0
  cmp #15 ; neutral
  beq l1
  sta ATRACT
  clc
  rol
  ora STRIG0
  tay
  lda direccion_joystick,y
  beq espera_movimiento
  add cursor_actual
  tay
  lda (tablero),y
  cmp #ficha_muro
  beq espera_movimiento
  ; movimiento correcto
  sty cursor_nuevo
  lda STRIG0
  bne solo_mueve
se_acabo
  rts ; tenemos accion
solo_mueve
  jsr reposiciona_cursor
  jmp espera_movimiento
.endl
(No intentes optimizar esta rutina como poner un ASL en vez de un CLC y ROL, porque no es la definitiva... quiero hacer algo con aceleración y no paso a paso).

Como puedes ver, estoy usando etiquetas_realmente_largas para explicar el flujo, y también las etiquetas estándar del Atari para las direcciones de memoria especiales. Macros estoy usando muy pocas porque en general voy optimizando durante el desarrollo... incluso he omitido algunas facilidades del compilador MADS por lo mismo. Además tengo casi todo tabulado, como por ejemplo la acción a realizar dependiendo del movimiento del joystick!!!

El programa ya lleva más de 3000 líneas, y estoy persiguiendo un bug que me tiene loco... demasiada optimización me complica el seguimiento en el código. Lo más probable es que tenga un valor corrido en una tabla o -lo que me está penando- una condición invertida o sobre un flag del procesador que no corresponde en algún branch. Intenté usar el modo debug de los 2 emuladores que estoy usando para probar, y no ha sido fácil. ¿Alguna sugerencia?

Avatar de Usuario
vitoco
Mensajes: 1970
Registrado: Lun Ene 28, 2013 5:47 pm
Contactar:

Re: [Proyecto] Juego para Atari XL

Mensaje por vitoco » Mié Sep 24, 2014 11:05 pm

AsCrNet escribió:
vitoco escribió:El problema de trabajar de a poquito es que hay cosas que las hago pensando a futuro y que después se me han olvidado que están y las hago nuevamente.
:sconf: a comer pasas para la memoria mijo :lolgreen: o quisas seria bueno usar macros "sub-rutinas" para no estar reescribiendo las rutinas de nuevo y reutilizar lo que ya esta programado. por ejemplo un archivo de macros, donde están las macros re-utilizables.
Con "cosas" no me refiero precisamente a código reciclado... ya está bastante particionado el programa, demasiado para mi gusto para esta arquitectura!!!

A lo que me refiero es a que para controlar cierta situación X incluí bits a alguna estructura A, pero cuando ha llegado el momento de programar acerca de esa situación, lo hago mirando la estructura B, y que más encima he tenido que adaptar para eso!!! Y después me pregunto para qué eran los bits extra en A :roll:

Igual reconozco que en algún momento me encontré con la misma rutina 2 veces, una con nombre en singular y la otra en plural... eso es efecto del Copy&Paste descontrolado para acelerar el desarrollo en cosas que se parecen (pero no son iguales) :oops:

Avatar de Usuario
josepzin
Mensajes: 193
Registrado: Jue Oct 03, 2013 3:16 pm
Ubicación: Argenzuela
Contactar:

Re: [Proyecto] Juego para Atari XL

Mensaje por josepzin » Mié Sep 24, 2014 11:31 pm

¿Este código es mas o menos compatible con el C64, verdad? digo que al compartir procesador, al menos las instrucciones serán las mismas, cambia el tema de input/output.

Avatar de Usuario
vitoco
Mensajes: 1970
Registrado: Lun Ene 28, 2013 5:47 pm
Contactar:

Re: [Proyecto] Juego para Atari XL

Mensaje por vitoco » Jue Sep 25, 2014 12:36 am

josepzin escribió:¿Este código es mas o menos compatible con el C64, verdad? digo que al compartir procesador, al menos las instrucciones serán las mismas, cambia el tema de input/output.
El juego de instrucciones es prácticamente el mismo (entiendo que hay variaciones del 6502 y C64 y Atari no usarían la misma CPU), pero la gráfica del juego está basada en el coprocesador ANTIC del Atari y sus Player/Missiles y todo el código está hecho para administrar eso, por lo que prácticamente habría que reescribir el programa para usar los sprites de Commodore.

Probablemente las primeras versiones de mi programa serían portables al C64, pues sólo tenía las estructuras de datos y las rutinas base para administrar el tablero en memoria (distribuir fichas al azar, eliminar tríos, asignar premios y rellenar el tablero)... lo demás son animaciones, explotación de las DLI para incorporar elementos adicionales a las fichas tratando de multiplexar los P/M (como los candados y los anillos fijos bajo algunas piezas) y darle más color al tablero que los 4 que ANTIC me permite. Además, estas restricciones de Atari influyeron en algunas reglas del juego, las que tuve que adaptar para no chocar con el harware... por ejemplo, no puedo poner más de un candado por fila... pero 9 candados serían muchos para ese tablero, por lo que esa restricción en realidad no se nota durante el juego ;)

Sé que el C64 tiene mejor manejo que el ANTIC para utilizar varios colores a la vez en pantalla, y es probable que se requiera bastante menos código para dibujar el tablero en pantalla y hacer las animaciones que lo que yo he hecho en el Atari hasta el momento. Tal vez sea interesante evaluar un port del juego una vez terminado... :geek:

Avatar de Usuario
josepzin
Mensajes: 193
Registrado: Jue Oct 03, 2013 3:16 pm
Ubicación: Argenzuela
Contactar:

Re: [Proyecto] Juego para Atari XL

Mensaje por josepzin » Jue Sep 25, 2014 12:56 am

Muchas gracias por las explicaciones!

Me imaginé que el código estaría muy influenciado por la parte que muestra los gráficos.

Avatar de Usuario
vitoco
Mensajes: 1970
Registrado: Lun Ene 28, 2013 5:47 pm
Contactar:

Re: [Proyecto] Juego para Atari XL

Mensaje por vitoco » Mié Oct 01, 2014 7:24 pm

He avanzado bastante... Ya es jugable, tiene control básico del tiempo, niveles para ir aumentando la dificultad y algunas novedades. No adelanto nada más porque quiero presentarlo en la junta, verlo en un Atari real y que ahí me hagan comentarios y den opiniones (e ir modificando y probando en caliente).

Pero no se hagan muchas expectativas, aún no tiene sonidos ni pantalla de intro :oops:

A ver si alcanzo a avanzar en algo de eso este par de días que quedan... aunque me estoy guardando un par de novedades que incorporaré en la versión final. :roll:

Avatar de Usuario
renix
Mensajes: 4675
Registrado: Vie Ene 25, 2013 1:39 am

Re: [Proyecto] Juego para Atari XL

Mensaje por renix » Jue Oct 02, 2014 9:18 am

Que buena victor....

Yo esta semana eatoy tapado de pega asi que no he podido avazar mucho...

Te felicito....

Avatar de Usuario
xt5
Mensajes: 391
Registrado: Vie Feb 08, 2013 1:56 pm
Contactar:

Re: [Proyecto] Juego para Atari XL

Mensaje por xt5 » Lun Oct 06, 2014 12:57 am

lo pude jugar en vivo en la atariada, esta quedando genial, y para alguien que le gusta el original (como yo), esta fiel y diría que me gusta mas.

a esperar mas avances, y si implementas el lapiz de luz y queda jugable en el cel, aquí hay un usuario seguro.

Avatar de Usuario
vitoco
Mensajes: 1970
Registrado: Lun Ene 28, 2013 5:47 pm
Contactar:

Re: [Proyecto] Juego para Atari XL

Mensaje por vitoco » Mar Oct 07, 2014 12:01 pm

Gracias xt5 por el motivador comentario. Si bien la idea original era replicar el juego, rápidamente evolucioné a algo un poco más complejo. Las reglas básicas estaban dadas, pero me di cuenta que se podía hacer más. De ahí nacieron elementos adicionales en el juego y la posibilidad de incorporar múltiples objetivos por ronda. En el fondo, ya está dejando de ser fiel al original y está tomando su propio rumbo.

Respecto del comentario acerca del lápiz de luz, eso es algo que desde un comienzo me pareció necesario para replicar la jugabilidad "touch" del FoodSwap, pero en un CRT!!! Lo que no sé es si a nivel de tablet o smartphone, los emuladores de Atari 8-bits pueden reconocer un lightpen virtual. A lo mejor Franco nos puede comentar al respecto. Igual me gustaría ver algún día mi juego en el RetroBoxTV.

Ahora ando corto de tiempo para seguir avanzando, por lo que deberé priorizar entre las siguientes actividades:
  • Completar las características pendientes del juego.
  • Incorporar sonidos y música.
  • Incorporar otros mandos de juego, como el lápiz de luz.
Sé que las características que tengo a medio incorporar son un paso importante para tener el juego completo, pero agregarle sonidos puede implicar hacer varios ajustes en timmings de las animaciones, y poner un lápiz de luz también puede requerir hacer ajustes como consecuencia de los DLI y el playfield pichicateado... Mmmm....

Por otro lado, me gustaría saber de quienes lo probaron en la 1ra instancia (con pantalla de 14" con imagen algo desteñida) o en la 2da (pantalla de 21 bien colorida), qué les pareció, qué le falta o le cambiarían...

AsCrNet
Mensajes: 130
Registrado: Lun Mar 11, 2013 10:47 am

Re: [Proyecto] Juego para Atari XL

Mensaje por AsCrNet » Mar Oct 07, 2014 3:14 pm

vitoco escribió:Lo que no sé es si a nivel de tablet o smartphone, los emuladores de Atari 8-bits pueden reconocer un lightpen virtual
Mijo en Android existe el emulador Colleen que tiene soporte para koala pad eso funciona como un touchscreen incluso este mismo emulador trae el juego de la analog Planeraty Defense versión 2012.
Imagen
vitoco escribió:Ahora ando corto de tiempo para seguir avanzando, por lo que deberé priorizar entre las siguientes actividades:
  • Completar las características pendientes del juego.
  • Incorporar sonidos y música.
  • Incorporar otros mandos de juego, como el lápiz de luz.
Yo creo que esta bien ese orden, primero debe ser la jugabilidad, después música y controles adicionales.
vitoco escribió:Por otro lado, me gustaría saber de quienes lo probaron en la 1ra instancia (con pantalla de 14" con imagen algo desteñida) o en la 2da (pantalla de 21 bien colorida), qué les pareció, qué le falta o le cambiarían...
umm yo lo jugue en la tv de 14" con el sol encima :sconf: y realmente se veía bien.

Saludos

Avatar de Usuario
vitoco
Mensajes: 1970
Registrado: Lun Ene 28, 2013 5:47 pm
Contactar:

Re: [Proyecto] Juego para Atari XL

Mensaje por vitoco » Sab Ene 10, 2015 11:35 pm

Después de 3 meses, retomé el proyecto en mis vacaciones. Avancé en lo siguiente:

- Incorporé los nuevos premios y castigos.
- Agregué música de fondo y efectos de sonido (usando ejemplo SFX de RMT).

Ahora estoy craneando el tema de las dificultades y mejorando los dispositivos de entrada.

Para los dispositivos, me interesa probar el lápiz de luz en un Atari real, por lo que si alguien sabe de uno, que me avise. Sé que puedo hacerme uno propio, pero quiero experimentar con el original.

Avatar de Usuario
vitoco
Mensajes: 1970
Registrado: Lun Ene 28, 2013 5:47 pm
Contactar:

Re: [Proyecto] Juego para Atari XL

Mensaje por vitoco » Lun Jun 15, 2015 2:39 am

En la junta de abril presenté algunos avances, pero no había avanzado mucho sino hasta esta semana, en que depuré y agregué elementos planificados, como la selección del nivel de inicio y manejo del tiempo, los que presenté en la junta express de este fin de semana para que lo probaran y opinaran.

También estoy trabajando en la música definitiva y decidiendo si incorporo puntaje o qué hacer cuando se llegue al último nivel (quedarse iterando hasta que se acabe el tiempo o finalizar con un mensaje de felicitaciones).

¿Por qué retomé con ganas? Quiero presentarlo en el concurso de ABBUC de este año, cuyo plazo finaliza el próximo mes.

¿Alguien quiere opinar sobre lo que vio en la junta? ¿Sugerencias? ¿Recomendaciones?

Avatar de Usuario
fcatrin
Mensajes: 655
Registrado: Jue Ene 24, 2013 2:19 pm
Ubicación: Quilpué
Contactar:

Re: [Proyecto] Juego para Atari XL

Mensaje por fcatrin » Lun Jun 15, 2015 12:03 pm

No pude ir a la junta, podrías poner un videito para darle un vistazo!

Saludos

Avatar de Usuario
vitoco
Mensajes: 1970
Registrado: Lun Ene 28, 2013 5:47 pm
Contactar:

Re: [Proyecto] Juego para Atari XL

Mensaje por vitoco » Lun Jun 15, 2015 11:39 pm

Puchas Franco, no quiero invalidar el juego como candidato a ser presentado en ABBUC.

Por otro lado, ellos exigen que el juego corra en un Atari real PAL, lo que me obliga a hacer pruebas específicas en esas máquinas para ver cómo cambian los colores, ya que las paletas son distintas.

:arrow: :arrow: :arrow: Por lo tanto, necesito que me contacte alguien que tenga un Atari XL/XE norma PAL!!!

Avatar de Usuario
fcatrin
Mensajes: 655
Registrado: Jue Ene 24, 2013 2:19 pm
Ubicación: Quilpué
Contactar:

Re: [Proyecto] Juego para Atari XL

Mensaje por fcatrin » Lun Jun 15, 2015 11:53 pm

Tienes razón!! Quedaré a la espera entonces!

Avatar de Usuario
josepzin
Mensajes: 193
Registrado: Jue Oct 03, 2013 3:16 pm
Ubicación: Argenzuela
Contactar:

Re: [Proyecto] Juego para Atari XL

Mensaje por josepzin » Mar Jun 16, 2015 1:27 am

Tengo un Atari XE 130 PAL, pero no tengo nada para cargar juegos :(

Avatar de Usuario
vitoco
Mensajes: 1970
Registrado: Lun Ene 28, 2013 5:47 pm
Contactar:

Re: [Proyecto] Juego para Atari XL

Mensaje por vitoco » Dom Jul 19, 2015 8:14 pm

Me queda una semana para terminar el juego, y ya se puede jugar con joystick, teclado, mouse de ST y trackball.

Ahora estoy pegado con el lápiz de luz, el cual no tengo, por lo que estoy probando con una pistola de luz original en Atari real. Puchas que me ha costado echar a andar esta parte, siendo que la considero una de las más relevantes porque permitiría jugar en un emulador con pantalla touch como RetroboxTV en un teléfono (si es que soporta lápiz de luz... ¿Franco?). Primero tuve que hacer funcionar la emulación de lightpen en Altirra. Después decidí que debía calibrar al menos una vez justo antes de partir el juego, ya que se menciona en varios foros que la chuntería de la pistola de luz es bien inestable y que en parte depende del juego... Bueno, todo eso lo he comprobado en mi Atari real. Primero no pescaba ni siquiera con la pistola apoyada en la pantalla... tuve que poner el brillo del CRT al máximo. Después tuve un lío con el trigger (gatillo) y la captura de coordenadas, y finalmente descubrí que disparando varias veces en un mismo lugar se reciben coordenadas distintas cada vez, suficientemente distantes como para ubicar el cursor en la celda de al lado :shock: Espero que eso no sea problema en el emulador.

Pendientes aún:
- Melodía original para la presentación y durante el juego.
- Melodías de fin de juego para cuando se gana y para cuando se pierde.
- Animación (scroll-line) para los créditos en portada.
- 160 rondas!!!! Apenas llevo unas 40, y quiero llegar (idealmente) a 99 rondas en cada uno de los 2 niveles de dificultad, combinando los distintos tipos de objetivos que definí.

Ya pasé los 16K de programa... Aunque hay algunas partes de donde sacar basura y espacio libre para reacomodar cosas. Bueno, ¡si es que me alcanza el tiempo!

Responder