Mejoras para divgo basandome en pico8

Started by oskarg, December 05, 2019, 10:16:10 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

oskarg

Tengo una version de pico8 y he trasteando bastante con esta,aun me queda bastantes cosas por hacer pero saco estas conclusiones.
1.Cuando escribo en el editor,solo debo pulsar esc,escribir run y ya compila,sin ralentizacion alguna.En divgo deberia haber una tecla para compilacion rapida.
...Aun en divgo tengo el problema de control+z me borra el codigo..

2.Puedo programar cualquier cosa,solo estoy limitado por la resolucion 128x128 y las limitaciones que ha impuesto el creador.el editor es malisimo,sin debuger,aunque puedes utilizar un notepad y luego pegar el codigo dentro.
--el editor grafico es basico pero muy practico,haces los tiles al momento y tambien si quieres tileados,tienes como dos mapas bien diferenciados,uno donde dibujas los sprites y otro donde pones el  mapa de fondo,aqui todo se basa en copy paste,nada de procesos,quiero un fondo tal,pues copy y paste de x,y ancho y alto de tal fondo y santa pascuas y la profundidad viene determinada por el orden que haces los copy pastes....muy sencillo.


3.He pasado varios juegos de pico8 a divgo,el lenguaje pico8 es una version de lua aligerada,se agradece,pues no es tan complicado como se programa con love lua,puedo añadir y quitar elementos de forma muy simple en una tabla,esto me gusta bastante,ahorra faena
Es como programar con div,con diferencias,es un poco mas complicado,no mucho,pero el codigo siempre resulta mas reducido,por ejemplo en divgo tienes que definir private la variable y luego le asignas el valor,el pico haces local valor=10 y ya esta. una estructa a[] ya esta definada, cosas propias del lenguaje.
-Hay otras variantes de pico,por ejemplo liko-12, tambien se basa en lua,pero es arduo de narices programar o tic-80...se han complicado la vida haciendolo oop.Es un gran error.

4.Aqui no existen los frames propiamente dicho,en cada draw puedes borrar o no toda la pantalla,con cls..esta curiso.funciona igual que love2d o phaser.....

5.las primitivas graficas,dices cuanto de ancho y de alto quieres,pero ojo de pixeles,quiero 10 pixeles de ancho,pues nada 10 pixeles de ancho te dibuja,no tienes que hacer una regla de 3.

6.las primitivas graficas de dibujar  son mega rapidas,a mas que puedes indicar que tal rectangulo se rellene con un patron que tu definas  ,por un numero hexadecimal que ofrece pico8.?¿Por que esta utilidad,por la limitacion de la paleta y por  ejemplo puedo hacer un cubo en 3d,pintar las diferentes caras con el mismo color blanco y ahora le digo que en cada cara le doy un patron diferente.Puedo modicar y acceder al buffer de memoria,memcpy,pokes...esto es muy potente,me permite con estas funciones hacer por ejemplo rellenos de poligonos,efectos de paleta,rellenos de un rectangulo otriangulos,con lo cual ,puedo hacer juegos tipo star fox,voxels,wolfenstein,mode8,mode 7 OJO no lo trae estos modos, LO PROGRAMAS DIRECTAMENTE EN PICO8 y sin RALENTIZACIONES  ,increible !!!esto es imposible hacerlo en derivados de div....en este sentido tienes libertad absoluta.Aunque un mode 7 programado lo veo complicado de hacer una vez que sabes como va el algoritmo,simplemente que debria dibujar un monton de lineas con escalado ......

7.Hay tanta documentacion y codigo abierto que es la biblia para programar cualquier cosa,aqui todo el mundo se copia de otro,sale un juego de gusanos,pues nada ya tienes un mes viendo como salen modificaciones del juego de gusano,pues ves el codigo y los graficos al cargar el juego en pico8 y aprendes la verdad una barbaridad,tanto que tengo casi completo el engine de out run pasado a divgo XD!!!.

9.Aqui como he dicho las primitivas graficas son rapidisimas,en out run utiliza unos 600 rectangulos,en divgo esto es una barbaridad,lo tengo que hacer de otra manera pues se me retrasa,aunque es una gozada verlo a 320x240 en vez de los 128x128.Tengo en pausa este engine en espera de scructs y poderlos pasar por parametro y sigo con esto que es ..increible XD.......

10.Puedo hacer efectos imposibles de lograr en derivados de div,imaginemos que tengo un escenario que hay un dragon sobrevolando el mar,pues nada creo un mapa y tiles de 8x8,vale,ahora le digo en cada draw,cambia  ese tile  por este otro y guala ya tengo una animacion asi de simple en movimiento que cubre toda la pantalla con dos simples tiles!!!,esto en div es impensable,tendria que crear tantos 320/8=cantidad de procesos x ...240/8=procesos y solo para definir el fondo del mar.

11.Tienes la sensacion de estar delante de un miniordenador,es muy adictivo en este sentido.lo arrancas y suena la musiquita de fondo,

12.Puedes crear graficos sin el editor grafico,es decir a traves de como hacia amstrad con los data.a base de numeros muy curioso...me gusta

13.tienes un sistema de particulas que le da vidilla,mas potente que el que trae amulet,puedes definir velocidad,gravedad ,tamaño de la particula  a medida que se aleja de su fuente de origen etc,muy bueno.

14.Para crear un escenario es muy simple selecionas el tile y lo pintas en el mapa correspondiente del fondo y si quieres que cierta parte actue como pared,pues seleccionas el tile pared,que tiene un numero del grafico indicado,vamos que te simplica de forma notable la creacion de mundos.

15.Me queda por mirar a fondo los pokers,la modificacion del buffer de memoria,pues es un apartado avanzado,aunque la gente hace virguerias con esto, cambios de paleta  manipulando los graficos,haciendo demo scena etc, efectos de lava ,como aquellos que se me caian la baba pero no entendia de nada porque estama en asm Y sin ralentizacion alguna!!!guau!!!.....efectos de ondas etc,efectos de senoidal y rellenarlo con un patron y puedes simular su opacidad ,increible!!! ...algo que si lo tengo que hacer en derivados de div es imposible.deberia crear toda la animacion de la forma senoidal ,guardarla  como un grafico,hacerla ciclica y que tuviera cierta transparencia y que me cambiara el color si toca  tocho o pared...en pico na!! lo creas todo programando genial!!

16.Puedo crear musica desde pico8,esto me gusta ,no soy fanatico ,pero hacer pitidos esta genial y dentro del engine,nada de cargar un midi..Con lo cual, entre esto y los data,puedo crear un juego completo simplemente con codigo..

Sigo trasteando y ya contare,pero merece la pena si o si pico8,aunque no lo utilices para hacer un juego profesional,es mejor que cualquier libro de programacion,porque aprendes una barbaridad .tengo en mi disco duro como unos 1000 juegos XD y flipo la informacion que tengo ,tengo hasta un sistema de fisicas que tengo que mirar a ver si puedo implementarlo en divgo XD.increible.

Ojala AmakaSt te fijes en pico ,pues es lo mejor que he visto desde hace siglos,pues puedo hacer cualquier juego y esto me ha sorprendido muy gratamente.


AmakaSt

Hay puntos que sí se pueden realizar con DivGO.

Aquí un ejemplo del punto 12, crear un gráfico de 0 por código: https://www.divgo.net/c-43215bed
El punto 10, también se podría hacer con texture_in_map(): https://www.divgo.net/c-9fc218f5

Hay alguno más, pero tengo que repasarme las funciones para poder hacer ejemplos. :P

Un saludo.

oskarg

si quieres te paso un trozo del juego out run,,pero esta sin acabar porque lo he dejado pausado pero por lo que he visto del codigo orignal todo se puede hacer,aunque en divgo hay que hacerlo de otra manera,la tengo ya ideada,solo se emplearia 200-250 procesos de dibujo para dibujar la pista en vez de 500 y pico
lo de data lo desconocia mola!!XD
mañana hago un juego con data XD....
lo de textura_in_map mañana lo miro porque a simple vista,ni idea como funciona..



oskarg

#3
Hola AmAkaST ,
acabo de mirar como funciona textura in map...te doy esta sugerencia:
1.texture_in_map(fichero, gráfico_destino,grafico_origen,anchodestino, altoorigen, xdestino, ydestino, tile_size_x, tile_size_y);
lo que hace es copiar el grafico origen al grafico destino,pero REPITIENDO HASTA CUBRIRLO POR COMPLETO  como si fuera un tileado,de esta manera se podria hacer tramas en cualquier superficie.
pero si no se quiere complicarse en pico lo hace las tramas solo en las primitivas graficas,es decir,en graficos como rectangulos ,circulos..etc..mejor ,pues todo forma geometrica se puede dividir en triangulos,
en pico es de este modo: defines el patron y solo dices,rellena el ciruclo,rectangulo con tal trama,muy practico.
fillp(0b0011001111001100) -- or 0x33cc.8  indico la trama,por ejemplo una linea blanca y luego una linea negra
circfill(60, 60, 10, 0x1c)--------------------rellena la superficie del circulo por completo con la linea blanca y luego una negra,haciendo un tileado.


En este link hay una referencia a todas funciones que trae:
https://pico-8.fandom.com/wiki/Category:Reference
   
como no sabia que hacian ciertas cosas en pico8,por el lenguaje, pues el majero de esctructuras y otras cosas es raro,al final me decidi por tener una version de esta  y de esa manera a base de poner print(variable) por todos lados logre que funcionara un  efecto 3d de suelo pasado a divgo.