FASE, un nuevo engine inspirado en la Churrera

Todo sobre la creación, diseño y programación de nuevo software para
nuestro Spectrum

Moderador: Sir Cilve Sinclair

FASE, un nuevo engine inspirado en la Churrera

Notapor antoniovillena el Mie Ene 29, 2014 1:40 am

Acabo de liberar este engine pensado para hacer juegos en C para ZX Spectrum sin tener que preocuparse del apartado gráfico. Es para juegos tipo plataformas como los de la Churrera, así que nada de scroll ni cosas por el estilo. Lo bueno de este engine es que las rutinas de pintado de sprites están muy optimizadas, por lo que es posible hacer juegos con muchos enemigos simultáneos y sin parpadeos a 50 frames por segundo.

Como ejemplo aquí tenéis la demo, es muy sencillita sólo para que os hagáis una idea de sobre qué va el engine. En realidad currarse un juego es más complicado porque requiere manejar colisiones, tratar la inercia, la gravedad, la lógica del juego, el sonido, el menú, etc...

http://www.mojontwins.com/mojoniaplus/d ... hp?id=4363

El código fuente está en este repositorio:

https://github.com/DSkywalk/fase

Y si os interesa probarlo, aquí tenéis un paquete con todo lo necesario (excepto el compilador de C) para ponerse a programar.

http://www.mojontwins.com/mojoniaplus/d ... hp?id=4362
Imagen
Avatar de Usuario
antoniovillena
Nonamed
 
Mensajes: 1153
Registrado: Dom Ene 09, 2011 9:55 am

Re: FASE, un nuevo engine inspirado en la Churrera

Notapor GLAURUNG el Mie Ene 29, 2014 2:45 am

Me parece fantastico peeeeero, ¿se podria empaquetar todo en un .EXE ejecutable?. Los programas en lineas de comandos y yo no nos llevamos bien :(
Avatar de Usuario
GLAURUNG
Jack The Nipper
 
Mensajes: 195
Registrado: Lun Oct 14, 2013 7:41 am

Re: FASE, un nuevo engine inspirado en la Churrera

Notapor antoniovillena el Mie Ene 29, 2014 3:10 am

Sólo hay que escribir 3 cosas en línea de comandos: "fase", "fase gfx" ó "fase config". Lo complicado está en hacer los gráficos y el código en C.
Imagen
Avatar de Usuario
antoniovillena
Nonamed
 
Mensajes: 1153
Registrado: Dom Ene 09, 2011 9:55 am

Re: FASE, un nuevo engine inspirado en la Churrera

Notapor hikoki el Mie Ene 29, 2014 3:30 am

Gracias, tengo que repasar lo que estudié de C para ver si puedo sacarle partido :)
Aunque vista la versatilidad de javascript creo que me va a ser difícil ponerme a programar en otras cosas.
Sabiendo que eres autor de un emulador hecho en javascript no me resisto a comentarte la existencia de un gamemaker para javascript pequeño, sencillo y potente cuyo código fuente acaba de ser liberado aquí
Código fuente de Tululoo
Aquí hay algunos ejemplos hechos por un español que responde en ese hilo :
http://eruiz00.wix.com/mikgames#!freegames/cxnq
Me pregunto si sería posible crear unas extensiones para ese programa de forma que el resultado se corresponda con las restricciones del Spectrum, se podría testear muy cómodamente en un navegador y al final se exportaría para Spectrum, sería genial si aceptase el Basic de Boriel.

Edit :

Última versión de Tululoo Game Maker 2.0.0 build4 con casi todas las extensiones y ejemplos compartidos en su foro.
Ultima edición por hikoki el Vie Jun 23, 2017 11:32 am, editado 3 veces en total
hikoki
Freddy Hardest
 
Mensajes: 520
Registrado: Sab Nov 23, 2013 9:27 am

Re: FASE, un nuevo engine inspirado en la Churrera

Notapor antoniovillena el Mie Ene 29, 2014 4:02 am

Están chulos tus juegos en javascript, el de los pistoleros me ha gustado. Hacer un gamemaker multiplataforma y que una de ellas sea spectrum lastra mucho a la otra plataforma por el tema del attribute clash. Sólo funcionaría para juegos en blanco y negro. Al meter color te tienes que decantar por una u otra plataforma. Si te decantas por la no-spectrum te sale una versión spectrum poco colorida o con problemas de attribute clash. Si te centras en la spectrum apenas aprovechas la otra plataforma, pasa como con la mayoría de juegos de MSX que son port directos del spectrum. Sin embargo la idea es buena para otras plataformas sin attribute clash como el Amstrad CPC.

Con respecto al compilador de Boriel, el engine lo soportaba pero lo quité porque el compilador escribía en alguna variable de sistema, en cuanto se arregle esto lo vuelvo a soportar. Mientras tanto puedes usar ZXBasic cambiando el fase.bat por este otro:

https://github.com/DSkywalk/fase/blob/c ... e/fase.bat
Imagen
Avatar de Usuario
antoniovillena
Nonamed
 
Mensajes: 1153
Registrado: Dom Ene 09, 2011 9:55 am

Re: FASE, un nuevo engine inspirado en la Churrera

Notapor hikoki el Mie Ene 29, 2014 5:16 pm

:) no son mis juegos sino los de Enrique Ruiz, aquí dejó el proyecto de gunfighter por si quieres abrirlo en Tululoo
Si a alguien le interesa puedo subir más proyectos y extensiones publicadas en el foro de este programa.
Esta herramienta yo la vería como un gamemaker para ZX Spectrum restringiendo la paleta de colores, dimensiones de las escenas, tipos de movimiento, etc al menos podría servir para que diseñadores de juegos que no non usuarios de Spectrum desarrollaran para esta plataforma además de para html5

Genial entonces si FASE va a ser compatible con ZX Basic :D
Este motor puede ser muy útil para hacer juegos de tower defense con muchos sprites de pequeño tamaño.
Ultima edición por hikoki el Jue Ene 30, 2014 12:21 pm, editado 3 veces en total
hikoki
Freddy Hardest
 
Mensajes: 520
Registrado: Sab Nov 23, 2013 9:27 am

Re: FASE, un nuevo engine inspirado en la Churrera

Notapor Hark0 el Jue Ene 30, 2014 9:26 am

¿seria posible compilar todo esto para que funcionara desde la linea de comandos de un ipad (jailbreak)?

:P

PD Enorabuena por tu trabajo Antonio!
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica
Avatar de Usuario
Hark0
Freddy Hardest
 
Mensajes: 545
Registrado: Mar Nov 13, 2012 1:42 pm
Ubicación: Cornella de Llobregat - Barcelona

Re: FASE, un nuevo engine inspirado en la Churrera

Notapor antoniovillena el Jue Ene 30, 2014 10:28 am

Seguro que sí, prácticamente todo está en ANSI C
Imagen
Avatar de Usuario
antoniovillena
Nonamed
 
Mensajes: 1153
Registrado: Dom Ene 09, 2011 9:55 am

Re: FASE, un nuevo engine inspirado en la Churrera

Notapor Alxinho el Jue Ene 30, 2014 12:23 pm

Joer, qué montón de motores tenemos ya! :o

Me encanta!

Sólo me faltaría que estuviesen recopilados todos en la wiki :|
Retrobytes Productions --> http://retrobytesproductions.blogspot.com.es

Soy un tío feliz, más que nada ... porque me sale más a cuenta.
Avatar de Usuario
Alxinho
Freddy Hardest
 
Mensajes: 893
Registrado: Mar Jun 19, 2007 11:20 am
Ubicación: Barcelona

Re: FASE, un nuevo engine inspirado en la Churrera

Notapor Hark0 el Jue Ene 30, 2014 2:35 pm

Lo que estaría de perlas es que todas las aplicaciones se aglutinaran en un solo SDK... con su IDE, etc...

ZX Basic, churrera, fase, utilidades conversión, etc etc

8)
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica
Avatar de Usuario
Hark0
Freddy Hardest
 
Mensajes: 545
Registrado: Mar Nov 13, 2012 1:42 pm
Ubicación: Cornella de Llobregat - Barcelona

Re: FASE, un nuevo engine inspirado en la Churrera

Notapor javiperez el Lun Feb 03, 2014 8:32 pm

antoniovillena escribió:Acabo de liberar este engine pensado para hacer juegos en C para ZX Spectrum sin tener que preocuparse del apartado gráfico. [...]


La churrera tambiñén se apoya en el compilador Z88DK y la librería SPLIB, ¿podríamos decir que FASE es un paso intermedio entre programar directamente en C (Z88DK+SP1) y la Churrera?

Si ordenásemos todos estos frameworks/engines de desarrollo de mayor a menor complejidad (punto de vista del programador), entiendo que tendríamos:

ASM > C > ZX Basic > FASE > Churrera > Platform Game Designer, etc.

¿Hay algún otro entorno?
The Spectrum will rise again to rule the Earth.
Real programmers never die. They just return without gosub.
Avatar de Usuario
javiperez
Jack The Nipper
 
Mensajes: 103
Registrado: Vie Ago 24, 2007 12:45 pm
Ubicación: Valladolid

Re: FASE, un nuevo engine inspirado en la Churrera

Notapor antoniovillena el Lun Feb 03, 2014 9:17 pm

La idea de FASE es mejorar la Churrera en el apartado técnico. La Churrera es un engine basado en sprites de 16x16, mientras que splib2 es una librería de sprites 8x8. La principal limitación es el número de tiles en pantalla, que como mucho puede ser de 48. También tiene otros inconvenientes menores como el número máximo de enemigos por pantalla, que es 3.

El problema es que para conseguir rendimiento he tenido que recurrir a drivers separados (uno que aprovecha el bus flotante en 48K y otro que aprovecha la shadow video en 128K) que lo hace incompatible con el interfaz de splib2. Ahora en lugar de por llamadas a subrutinas se hace escribiendo en una estructura en memoria. Así que el siguiente paso sería completar la parte en alto nivel del engine, sería como reescribir la Churrera o algo parecido a ella en C, para que sea asequible a los principiantes.

Pero sí, tal y como está ahora FASE requiere escribir partes importantes del juego y sería un paso intermedio entre la Churrera y C/Basic compilado. De todas formas no estoy de acuerdo en que ZX Basic sea más complejo que C. Yo pienso que son equivalentes. De hecho FASE también admite ZX Basic y ayer mismo acabé de pasar la demo de FASE a ZX Basic.

En la práctica, al final acabas mezclando distintas tecnologías, lo que necesitas que sea muy rápido como los sprites o lo haces en ensamblador o tiras de una librería (splib2) o de engine (FASE). A medida que necesites menos velocidad tiendes a hacer las cosas mas fáciles (y lentas) tirando de alto nivel o incluso de script (interpretado en lugar de compilado) como es el caso de la Churrera.
Imagen
Avatar de Usuario
antoniovillena
Nonamed
 
Mensajes: 1153
Registrado: Dom Ene 09, 2011 9:55 am

Re: FASE, un nuevo engine inspirado en la Churrera

Notapor Boriel el Mar Feb 04, 2014 12:56 am

antoniovillena escribió:Pero sí, tal y como está ahora FASE requiere escribir partes importantes del juego y sería un paso intermedio entre la Churrera y C/Basic compilado. De todas formas no estoy de acuerdo en que ZX Basic sea más complejo que C. Yo pienso que son equivalentes. De hecho FASE también admite ZX Basic y ayer mismo acabé de pasar la demo de FASE a ZX Basic.

Gracias Antonio por la explicación. ;) (hay cosas que se me escapan).

Sólo quería aclarar una cosa (en general, no a tí en particular): ZX BASIC "intenta" ser BASIC, eso significa que algunos comandos son de más alto nivel que C, porque BASIC es un lenguaje de más alto nivel. Por eso el compilador es más complicado en algunas cosas, y es más difícil crear un buen optimizador (C es más cercano a la máquina). He intentado hacer ZX BASIC lo más cercano posible al bajo nivel para poder usarlo como C (a la hora de crear librerías, etc), pero algunas cosas son casi imposibles.

Tuve una discusión similar en el foro de FreeBASIC y al final decidí no colaborar en el proyecto. FreeBASIC tiene punteros, objetos, herencia y hasta templates a lo C++... tanto es así que realmente es C++ con palabras de BASIC. Eso ya no es "BASIC". Para eso me quedo en C++.

De hecho en el WOS hubo gente que crucificó a ZXBASIC por no ser más arcaico y parecido al Sinclair BASIC original (lo que tampoco es posible... si es compilado: VAL, VAL$, o DATA con expresiones...). Nunca llueve a gusto de todos.

Por cierto: La demo que me pasaste me ha dejado flipando... :shock: Es realmente muy rápida y suave.
Boriel
Sabreman
 
Mensajes: 350
Registrado: Lun May 28, 2007 9:55 am
Ubicación: Tenerife

Re: FASE, un nuevo engine inspirado en la Churrera

Notapor antoniovillena el Mar Feb 04, 2014 2:04 am

Ya ves, nunca llueve a gusto de todos. Lo mejor es hacer las cosas como a tí te gusten más, y al que no le guste que se vaya a hacer ... un fork.

Con respecto a la demo, es rápida porque va a 50fps reales y es suave porque el desplazamiento es de pixel y los sprites son siempre exactos porque se pintan de golpe. Normalmente los sprites se pintan poco a poco para evitar el parpadeo, lo que conlleva a que en algunos frames se generen sprites partidos (la mitad de arriba un poco más desplazada que la de abajo).
Imagen
Avatar de Usuario
antoniovillena
Nonamed
 
Mensajes: 1153
Registrado: Dom Ene 09, 2011 9:55 am

Re: FASE, un nuevo engine inspirado en la Churrera

Notapor cheveron el Mar Feb 04, 2014 2:21 am

Boriel escribió:De hecho en el WOS hubo gente que crucificó a ZXBASIC por no ser más arcaico y parecido al Sinclair BASIC original (lo que tampoco es posible... si es compilado: VAL, VAL$, o DATA con expresiones...). Nunca llueve a gusto de todos.


That's because they are ignorant monkeys who don't know better, to paraphrase Douglas Adams. :)
«Dime con quién andas, y te diré quién eres» — Cervantes
Avatar de Usuario
cheveron
Manic Miner
 
Mensajes: 271
Registrado: Lun Jun 28, 2010 6:14 pm
Ubicación: Londres

Siguiente

Volver a Programación y nuevos desarrollos

¿Quién está conectado?

Usuarios navegando este Foro: Bing [Bot] y 4 invitados