PDA

Ver la versión completa : Akrendor y motro de tiles



Drumpi
12/02/2009, 13:57
Hola a todos:

Akrendor me ha mandado el siguiente mensaje:

Hola,

He leido el hilo sobre tu motor y he estado trasteando con él.

La mala noticia es que he encontrado algún bug en la carga de tiles.

La buena (o quizás sea mala también :P) es que necesito sacar adelante ya un motor de tiletado o un pseudomotor para un juego que voy a hacer.

En principio había pensado algo distinto (fichero con el mapeo de los tiles e ir lanzando procesos, uno por tile, matando los viejos. Esto harían 80 procesos visibles, si los tiles son de 32x32, + 28 procesos invisibles (tiles adyacentes cargados). La carga y el borrado pueden ser por columnas o filas, dependiendo de la dirección del personaje, con lo que se reduciría la carga de procesos a 12 (columnas) o 9 (filas).

Todo este royo es porque quería saber cómo lo ves, si ya probaste esto y falló o si te gusta la idea. Como necesito trabajar en eso si o si, quizás podamos ayudarnos para sacar cada uno lo nuestro o un sólo motor.

Estoy a tu disposición (...)

Saludos ^^

Bueno, he preferido contestarle por aqui, para que la comunicacion sea más fluida, y para dar la opinion y otras posibles soluciones.

Pues muchas gracias por tu interes, y si has visto algun bug, me encantaría que me lo dijeras, porque cuando estuve trasteando pude aislar el fallo a la linea donde creo el espacio en memoria para cargar el mapa (con la funcion alloc), y si es lo que yo digo el que falla es Fenix (aun cabe la remotísima posibilidad de que haya encontrado un bug del FXC con winXP)

De todas formas, lo que comentas ya lo hice yo, pero creo que en lugar de crear y destruir procesos, usaba los mismos, recolocándolos a la derecha con distinto gráfico. Es la version 2 de mi motor, y lo tienes en el FenixLand:
http://www.gp32spain.com/foros/showthread.php?t=50777&highlight=fenixland

Si lo pruebas verás que va bastante justito de recursos (se ralentiza bastante), pero hay que decir que hay 4 filas y 4 columnas extra (dos a cada lado fuera de los límites de pantalla) y encima maneja dos capas, con lo que se duplica el numero de procesos. Se puede mejorar un poco creando un proceso de control que haga los cálculos que se repiten dentro del proceso tile, pero para eso prefiero usar el nuevo motor, que si funciona, sólo habrá un proceso por tile visible (si el tile vale 0, no usa proceso), pero lo dicho, me falla la carga del mapa en memoria, y aun no se compilar dlls que funcionen en gp2x.

En fin, que cualquier duda, sugerencia o aviso será muy bien recibido :)

Akrendor
12/02/2009, 16:56
No me dejan mandar mps ni adjuntar fotos hasta tener un mínimo de post, tendré que spamear por ahí [wei].

El bug sobre todo es de la carga de ciertos tiles, que lo hace a destiempo o lo omite. Por lo que he leído en la v2 y la v3 redibujas todo cada vez, lo que puede que sea el motivo de un bug especial que tienen y que en la v1 no aparece.

En FenixLand no aparecen (o no he visto) estos "bugs". Tampoco he podido probarlo tan a fondo como el motor, que mi pc es una caca e implotaba continuamente XD.

Drumpi
14/02/2009, 15:43
No entiendo a qué te refieres, en PC los tiles se cargan y se colocan perfectamente, y no se ha quejado tampoco de salirse de la zona de los punteros.
El redibujado completo sólo se hace en la version 2, pero en la que dibuja sobre un mapa (hay dos versiones de la v2: esa, y otra que usa un proceso por tile en pantalla, aunque esté vacio). Me hubiese gustado disponer de alguna funcion en C (ya sea por librería dinámca o con una funcion dentro del propio fenix) que me permitiera desplazar la imagen del mapa y solo tener que redibujar la zona nueva, y ganar rendimiento, pero no existe (hay una que permite hacer una copia de un mapa a otro, pero si se hace sobre si mismo, en una direccion va bien pero en la otra se repite la primera linea a todo lo largo) y aun no se por qué no me funcionan las dll (los .o) que he compilado.

En fin, si tienes más detalles, me gustaría que me los comentaras, que la pila de proyectos aumenta y el 90% de ellos requieren el susodicho motor andando, empezando por FenixLand (qué bien le vendría reloj interno) y acabando por un Sonic Hi-Speed en plan laberinto (o carrera, o pseudo 3d si funcionase la VSE.dll de Fenix).