Translate

martes, 15 de noviembre de 2022

Blitz Basic o Amos, ¿cual es mejor?

Fecha de publicación 15/11/2022

En esta entrada quiero dedicarme un poco a comparar Amos y Blitz Basic, que son 2 lenguages de basic para una computadora retro, la AMIGA, del año 1985 en adelante.

Quiero explicar que yo solo uso Amos, y es casi mi primer intento con Blitz, según otras personas es mejor.

Todo empezo con la competencia de blitz(Amiga Blitz Basic Game Jam), de la que oi en amigawave este domingo 14/11/2022 y hoy es 15/11/2022. y dije para mi, seria bueno (ya que estan los fuentes) una especie de competencia, aparte de aprender blitz, hacia unas imitacionés de algunos de estos juegos a ver que tan dificil es en Amos o Blitz y publicar los fuentes.

Como comenze por el primero que no se porque era "Capacitor's Revenge" .

Ya hoy me entere que gano:  NEONnoir.

Lo cierto es que me pongo a ver el fuente, y lo primero que veo es 3500 lineas, Queeee, digo yo, y luego comenzo a leer y es super complcado, se que blitz tiene estructuras de variables y algunas cosas para trabajar estructuradamente, pero, esto era demasiado, muchos trozos de asembler en linea, todo muy profecionalmente hecho, los felizito sinceramente pero en 5 meses, uff.

El caso es que elegi una muestra que no sera buena para comparar, asi que (y aunque) hice una imitación en solo un dia, a ver que os parece.


O mas rapido


Hablamos de una demo tecnica para ver como se porta, luego que este mas hecho dare los fuentes.

No tengo animos de competir con los autores, ni menospreciarlos y por supuesto tampoco plagiarlos, mi unica intención es comparar los 2 basic.

Por el momento solo puedo decir 2 o 3 cosas que ya se de Blitz, (solo las malas, jajaja), no tiene TIMER al menos no facilmente, el editor es un problema mas que una ventaja, y hasta ahora veo 100 veces mas facil para un principiante el Amos que el Blitz.

El Amos tiene 100 errores algunos graves, ya los ire contando, al vinalizar esta serie de post debo haber aprendido Blitz como para ser objetivo en la comparación

Por esta entreda no comprare mucho mas los 2 basics, si no que continuare la creación y compara cicón de metodos que usaria en Amos para hacer este juego, lo mas parecido posible al original.

No se si es intencional o es una limitación de blitz, pero este ejemplo de "Capacitor's Revenge" procesa todos los graficos a mano, quiero decir que no se apoya en ningun formato grafico para dibujar las pantallas, guardar los graficos, Sprites o Bobs o como se llamen en blitz, en el fuente solo veo pokes en memoria y creacion de todo mas parecido a Assembler o al menejo directo de hardware, (posiblemente este fuente como ejemplo sera demasiado complejo para comprenderlo rapidamente). Es innegable la alta calidad y conocimentos de esta gente.

Pero la idea es ver si Amos lo hace peor, mejor o igual. tratare de hacer mi mejor esfuerzo en que salga muy parecido. Espero que no se molesten conmigo la gente de PixelPlop.

AUDIOS: todos los Audios estan en archivos separados en formato IFF, Amos los acepta con facilidad, No he revisado bien el fuente y no se si los carga todos o los carga cuando sea necesario, Creo que os carga todos.

Aca veo lo siguiente, Amos tiene un formato para empaquetar todos los Audios y Musicas para ejecutarlos como se necesiten. Estos se empaquetan en un archivo .Abk.

IMAGENES: El fondo no lo veo por ningún lado, investigo y doy con los numeros de bloques de unos tiles que forman el fondo, pero los tiles (el tileset) no esta. bueno si esta pero el metodo de extraerlo me parece compricado, dejare ese reto para despues. Por ahora recupero desde capturas de pantalla el fondo, 4 horas, jajaja demasiado. 

Tampoco veo los Sprites, estan en datos en el fuente, como todo, estan por planos, con un formato que no esta explicado ni es convencional, (ya digo no es un buen ejemplo para principiantes, y yo lo soy en Blitz, no asi en Amos)

RUTAS: El juego consiste en disparar a unos condensadores (capacitores) que tratan de llegar al Clip principal el CPU 68000 por medio de unas pistas o vias (Tracks) y uno les dispara para que no te toquen, tambien a veces viene un cortocircuito y si estas en esa via te mueres.
Pues bien los autores hicieron todos los puntos de estas pistas y cientos de parametros en el fuente
Yo los pude en un formato DATA y luego los pondre en un archivo, No se si era obligatorio poner todo en el fuente o que ellos lo quisieron hacer asi. pero yo usaria archivos.

Para hacer una demostración de por donde voy, pueden ver los videos de arriba, uno mas rapido que el otro, en una emulación de Amiga 1200.

Con respecto al metodo de ir por las vias, encontre que ellos lo procesan con bastante calculo, yo encambio se me ocurrio primero seguir la via verde, luego lo descarte porque el bob pisa pista y no veria el cruce sin apagar el bob (recordemos que los bobs pinta la pantalla, no son sprites)

Luego me fije en que son posiciones absolutas, pero si fueran relativas podria usar una suerte del lenguage Logo, o sea Norte 30, Este 40, o algo asi, tambien pense en el comando DRAW de otros lenguages per Amos no lo tiene. (Draw dibuja lineas pero no es un sub lenguaje).

Luego se me ilumino la buena idea. Movere todo por AMAL un sublenguaje cas asembler que tiene solo Amos, y usare el comando Move X,Y,V donde X es la cantidad de pixeles en X (positivos o negativos), Y al igual pero de arriba-abajo y V seria la velosisad que debe ser algo asi, supongamos X=50 pixeles, Si V=50 el personaje recorrera esos 50 pixeles en 50 veces una cincuentaavo de segundo, o sea en un segundo.

Si queremos que corra mas se usaria V=25 y esos 50 pixeles los recorrera en medio segundo(En NTSC 60 es un segundo, En PAL 50 de estas unidades son un segundo)

El otro problema es que si son 100 pixeles el trozo de pista a seguir, hay que usar V=100 para que recorra los 100 pixeles en un 2 segundos y mantener la velocidad (ya que es mas distancia). Al final esto se hace facil sumando los incrementos de X y Y (ya que si existe X no Existe Y[es cero] y viceversa), usando una velocidad de la suma en forma de absoluto (Sin Signo), Esto da unos comandos como:

Move 24,0,24;Move -45,0,45;Move 0,-33,33; 

Haciendo que los movimientos sean muy faciles, tambien el recorrido inverso es muy facil, simplemente cambiando el orden de los Move (para estos comandos en AMAL se puede usar el formato reducido de solo "M")

El AMAL maneja en paralelo todos estos movimientos, sin ser bloqueado o atrasado  por el basic, dando movimientos fluidos y con choques o coliciones al pixcel.

Esto quiere decir que el juego esta 50% hecho con el uso de Amal. (El sub lenguaje de Amos)

Continuará....



No hay comentarios:

Publicar un comentario