Dudas de diseño con Montezuma

Started by Drumpi, February 25, 2016, 07:07:48 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Drumpi

Hola a todos:

Ya sabeis que ando desarrollando un proyecto que pretende ser un editor de juegos de plataformas para Wiz/Caanoo y PC, basado en habitaciones de pantalla fija, interconectadas formando niveles. La idea surge de dos juegos: "Montezumas Revenge" para Intellivision
https://www.youtube.com/watch?v=_zbg9rs5QZY
Y Billy Bob, del juego Action52 de NES
https://www.youtube.com/watch?v=ZP24b3Jn8qw
Solo que con un toque más... Echo :D

Actualmente tengo hecho un editor de habitaciones que me permite poner dos capas de tiles (una por delante y otra por detrás del protagonista), y una de durezas. Un editor de niveles, que me permite colocar esas habitaciones en un mapa rectangular (de 9x9, 8x10, 5x3, cualquier combinación que no supere las 81 habitaciones), y un probador de niveles, con el que ver si se ha diseñado correctamente la habitación y jugarla.

Pero me ha surgido un problema de diseño que no sé resolver. Intentaré ser lo más claro que pueda, porque estoy griposo y no ando del todo bien, y de paso, a ver si me sirve para aclarar mis propias ideas:
El caso es que tengo que añadir a las habitaciones algunos objetos que interactúan con otras habitaciones, como por ejemplo, llaves que abren una puerta de otra habitación, o casillas de teletransporte.
Lo ideal es que ambas cosas se pudieran añadir en el editor de niveles (no el de habitaciones), para que se almacenase en el fichero del nivel, y la habitación se pueda reutilizar en otros proyectos (cambiando el color de la llave, poniéndola en otra posición, cosas así). Pero la pega es que deben colocarse en un tile específico de la habitación, y eso sólo lo puede hacer el editor de habitaciones (lo más que puede hacer el editor de niveles es abrir el editor de habitaciones para modificar una habitación concreta, pero es el editor de habitaciones con las mismas funciones propias).

En mis planes iniciales, la idea era que tanto las llaves como los teletransportes formaran parte de la propia habitación, por lo que no se podrían modificar. En todo caso, el editor de niveles podía detectar los tiles de teletransporte, y crear un vínculo entre dos de ellos, pero las llaves seguirían siendo fijas (aunque ahora que lo digo, podrían detectarse y seleccionar el color desde el editor de niveles, e incluso pedir que se ignore).

No sé ¿Qué ideas se os vienen a la cabeza?
COF COF!!
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

FreeYourMind


Drumpi

Te digo lo que le dije a un colega que me está haciendo el "betatesting" (si se le puede llamar así): podría pasaroslo, pero luego no os quejeis si hay un cambio en el formato de los ficheros y todo el trabajo que teneis hecho se va a la basura :D :D :D
Hombre, a título personal os puedo pasar una beta a los que ya os conozco por aquí desde hace tiempo, o si realmente podeis aportar algo al programa. Lo que no voy a hacer es subirlo directamente al foro para que cualquiera se lo descargue, tanto porque no está terminado, como porque hay mucho aprovechado por ahí :P
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

FreeYourMind

yo no me quejo, tienes arriba los MP  ;D

Drumpi

Pero en los MP no se pueden adjuntar ficheros :lol:
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

FreeYourMind


Drumpi

Vaaaale, pensaba que andabas de cachondeo :P
Limpio un poco la carpeta de "compartir", busco tu correo y te lo mando. Debo tenerlo desde el último concurso.
Dame tiempo, porque también debo desinfectarlo de todos los virus griposos que llevo encima, y Drumpi no tiene ningún algoritmo contra esos :D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

FreeYourMind


Drumpi

Bueno, Hamster, ya tienes un email recorriendo la red en tu busca. Si notas un escozor en el cogote es que ya te ha llegado, no te lo desincrustes muy fuerte que se rompe :D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

FreeYourMind


Drumpi

De momento estoy con el TileMap Editor v2, pero cualquier idea sigue siendo bienvenida :)
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Drumpi

Bueno, este es otro de esos proyectos que tengo en "stand by" y que sería interesante recuperar.

Sigo dándole vueltas al tema de cómo añadir a los niveles esos objetos que relacionan dos habitaciones entre sí (llave-cerradura, teletransportes, objetos de la aventura...). No tengo una idea clara.
Lo más sencillo es que esos objetos formen parte de la habitación y punto, me quito de problemas, pero se los estoy pasando a aquellos que luego quieran coger la habitación y usarla en otro juego, porque tendrían que crear una copia si en lugar de tener la puerta roja necesitan que sea la puerta verde.
Luego he pensado añadirle al editor de habitaciones un parámetro nuevo: un puntero con los datos del nivel (no de la habitación, sino del nivel). Sería una estructura, con una lista enlazada de todos los elementos del nivel que sólo afecten a esa habitación en concreto. Si ese puntero fuese "null", se haría la edición normal de la habitación, pero si contiene una estructura de datos (aunque la lista que contenga esté vacía), se activaría un modo especial, en el que se podrían añadir llaves, puertas, items, teletransportes, etc que de otra forma no se podrían añadir, y que en lugar de guardarse en el mapa de tiles, se haría en el mapa de nivel. Es algo más complejo, habría que añadir la lógica para los dos modos, pero de momento me parece la más indicada.

Por otro lado, lo he pensado y creo que debería añadir al juego distintas resoluciones. No me refiero a usar scale_resolution, sino a un auténtico cambio de resolución.
Y aquí es donde tengo el dilema: tengo que elegir dos resoluciones, y una ya está clara (320x240 y su equivalente 16:9, con tiles de 16x16). La otra es la que no sé cual usar. Por un lado quería usar una resolución x4 directamente (1280x960 y su equivalente 16:9, con tiles de 64x64), pero a mi se me sale de la pantalla del portátil (1366x720) y me da que no es una resolución estándar. Por otro quería ir a por la resolución 1K (1366x1024) pero los tiles aun serían de 64x64 y me quedarían bordes por todos lados. También podría usar una resolución x3 (960x720) más acorde con mi pantalla y la de muchos portátiles, pero los tiles deberían ser de 48x48 :S).

¿Por qué dos resoluciones? Para usar en la de 320x240 los tiles de 16x16 y hacerlo funcionar en dispositivos de baja resolución y potencia (Wiz, Caanoo, PSP...), y la otra en PCs, aplicando cambios de resolución con scale_resolution y demás. Es más, no descarto que sean dos versiones diferentes del mismo programa: la primera en Bennu a 16bits, y la segunda en PixTudio a 32bits (eso sí, usando código portable entre versiones, con cambios mínimos, y los mismos formatos de archivo para habitaciones, niveles y juegos, por supuesto).

No sé, decidme vuestra opinión, que más de uno habeis estado en contacto con más ordenadores que yo, y con público en general.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Futu-block

yo siempre apruebo la propuesta de usar wiz/caanoo, pero ¿no puedes usar una resolución que se escale en la wiz? no se si me explico: usar una resolución  960x720 para pc que escale a 320x240 en wiz (osea el triple) ademas, puedes en pc terminar de darle ''foco'' a los mapas si usas 1024x768 que entre los tiles fuera de la proporción del escalado en pc...

No se de todas formas porque debe de ser el mismo juego en una version y en otra, podias hacer un ''pack expandible'' para wiz/caanoo que se pueda jugar en el pc

En cuanto a las habitaciones, como que no lo entiendo del tó, si entras en una habitación es un mapa nuevo, ¿no?... me lio

Drumpi

Es que un reescalado en Wiz y Caanoo se come todos los recursos, tanto en un sentido como en otro. Aparte que el reescalado usa el algoritmo más rápido y se ve feo. Lo ideal es tener el juego a 320x240 en Wiz y Caanoo (y GP2X, al fin y al cabo, el diseño inicial era para GP32, y se descartó por problemas con Fenix), y que en PC funcione en "HD".

La idea que me ronda es que sean dos programas separados, o al menos, que el mismo código funcione a dos resoluciones diferentes, usando dos sets de gráficos diferentes (tiles de 16x16 en Wiz, y de ¿64x64? en PC), pero compartiendo los mismos mapas de tiles, la misma información de niveles y la misma jugabilidad.

Como ya dije en su hilo correspondiente, el programa consiste en crear diversas habitaciones a base de tiles. Cada habitación ocupa una pantalla y es independiente una de otra. Se usará un editor de mapas reducido pero con funciones específicas para el juego. Se guardan en un fichero cada una (en realidad en tres, pero eso no es lo importante).
Luego, se tiene otro editor para unir las habitaciones en un mapa de nivel. Y por último un editor que sirve para unir los niveles y crear un juego, seleccionando entre los diversos protagonistas disponibles, el orden de los niveles, o cómo se interconectan para hacer un juego de exploración.

Busca por youtube el juego "Montezuma revenge" para Coleco Vision o Intellivision (siempre las confundo) y piensa en un híbrido con Metroid, sustituyendo poderes nuevos por personajes con habilidades propias y, por supuesto, poder editar el juego para crear tu propia aventura ¡desde WIZ! ¿No subí ya un prototipo del editor de habitaciones?
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Futu-block

bien, ya lo entiendo, es un rollito tipo zelda, yo me entiendo...

Si lo que es pantallas fijas sin scroll que al desplazarte a uno de los cuatro bordes aparece en otra distinta (no importa la trancision) yo en Ranita demo by Futublock usé una pantalla distinta cada vez, luego iban codificada por colores en una rejilla de 8x6 pixeles donde cada color del pixel correspondia a una cosa, pared, agua por consiguiente mata, llave etc; La posición se dividia y se comparaba con la dureza tan pequeña. A mi gusto fué la mayor genialidad que se me ocurrió y estoy deseando implementar en mis proximos 'Monsters are back' y 'Punkarra_ZX' ambos de pantalla fija que empiezan a ser parte de mi pila de proyectos

Con tu motor generador de tiles igual te conviene hacer un ''mapa'' gigantesco que se divida en secciones equivalentes a la resolucion (lo que yo llamo doble cuadricula) siempre y cuando gaste menos memoria que dibujar el mismo mapa en una imagen gigantesca, y duplicarlo por el tema de las durezas