Actualización:
Última versión 1.2 (22-05-2016)
Mars 2 1.2 - Instalable (https://goo.gl/qIwNRm)
Mars 2 1.2 - Source (https://goo.gl/iuGkpe)
AVT Dev 0.7 - Builder (https://goo.gl/Nr6BdH)
Saludos.
Estoy haciendo un motor de aventuras gráficas muy sencillo y que todavía está en fase muy temprana de desarrollo, pero todos los problemillas que me han ido surgiendo los he ido resolviendo y de momento estoy bastante contento, así que me permito poner un par de capturas de pantalla del Engine y del Builder.
El Builder no es Bennu, lo he hecho en Visual Fox Pro, pero genera los prgs necesarios que luego incluyo en mi proyecto bennu mediante includes. De esta forma separo lo más posible lo que es el motor del desarrollo de las aventuras, y es relativamente sencillo crear otra aventura sin tener que tocar el código principal.
https://drive.google.com/file/d/0B8mMsUUX7KdUalZFSTdGTV9MSkE/view?usp=sharing (https://drive.google.com/file/d/0B8mMsUUX7KdUalZFSTdGTV9MSkE/view?usp=sharing)
Y luego el resultado en Bennu, todavía me falta mucho, pero va tomando forma. La intención es ir desarrollando una aventura al mismo tiempo que desarrollo el motor, lo que se puede ver es la primera escena.
https://drive.google.com/file/d/0B8mMsUUX7KdUYWZvS2l1ZE1XR0E/view?usp=sharing (https://drive.google.com/file/d/0B8mMsUUX7KdUYWZvS2l1ZE1XR0E/view?usp=sharing)
Simplemente genial! Karma!
Me interesa mucho tu proyecto. Justo ahora estoy con un motor de aventuras gráficas yo también y me interesa saber cómo resuelves tú los problemas xD
Bueno, antes de nada aclarar que llevo con bennu apenas unas semanas, así que lo que yo entiendo como problema seguro que vosotros lo resolveis en cinco minutos y con un código mucho más limpio y organizado que el mío. También debido a eso y a mi poca habilidad y paciencia con los pinceles me he auto impuesto un sistema lo más simple y minimalista posible.
He visto un poco el código que has puesto en otro post y he quedado un poco abrumado por la diferencia de nivel, de todas formas los requisitos para un motor de aventuras son universales y seguro que hablando de ellos podemos ayudarnos mutuamente.
Pues te voy a plantear uno. Mi esquema para las escenas es el siguiente:
Cada sala está dividida en escenas. Cada escena vendría a ser cada uno de los estados en que va a estar esa sala durante la partida. Por ejemplo, en una sala que sería una plaza en una escena habría un cadáver con sus pruebas y en otra escena estaría llena de turistas porque la policía ya se ha llevado el cadáver.
Entendiendo eso, he planteado que cada escena tiene gameobjects, que son las cosas con las que se puede interactuar. ¿Cómo has planteado estos objetos?
Bueno, como te he dicho yo estaba pensando en un sistema lo más minimalista posible, en parte por mis limitaciones, y en parte también porque los años de experiencia me han acentuado el sentido práctico.
Antes de nada explico como he organizado los objetos:
Tengo dos arrays de structs de datos principales a modo de tabla padre e hijo (escenas y objetos), cada vez que cargo una escena, pongo en pantalla los objetos que están asociados a esa escena (la clave es el índice). Esos objetos tienen un estado, que me dice si están en la pantalla, en el inventario, ocultos, etc. Al ser structs, en cualquier momento puedo cambiar sus propiedades fácilmente, puedo hacer que ya no aparezcan en la escena (ocultos) y poner visibles otros, aunque casos como el que comentas que son tan distintos creo que deberían considerarse directamente como una escena nueva, así lías menos. Solo tendrías que definir una condición en la hotzone que navegue hacia esa escena y según una variable flag ir a una u a otra.
Creo que definir muchas condiciones en una misma escena enfangaría el código y sería más difícil de depurar, y eso solo conduce a la locura.
Hasta ahora he estado pegándome simplemente con el movimiento y carga de objetos. Estoy terminando el inventario (que no los usos conjuntos), y lo próximo será el movimiento entre escenas, así que a lo largo de la semana que viene lo tendré un poco más pensado.
Así a bote pronto necesitaré definir donde aparece el personaje en cada escena, ya que una misma escena puede tener varios accesos. También creo que será necesario un volver simple que pueda ir volviendo a la escena anterior (y las coordenadas del personaje).
Lo curioso me parece que uses el VisualFox para el builder ;)
Jajaja, ya... apenas quedamos, pero es mi herramienta de trabajo habitual y es con la que me encuentro más cómodo, y eso para proyectos personales como este es lo más importante. Como hace unas semanas cuando encontré Bennu y vi que era el heredero natural del Div2, con el que hice algunas cosillas hace algo así como mil años... lo tuve claro al momento.
PD. Yo por VFP maaaaa,toooo!
xD
Sigo con mis progresos.
Ya he terminado las funciones necesarias para los dialogos: mensajes y elecciones de respuestas. También he completado el sistema de movimiento entre escenas, el cuál explicaré un poco.
Finalmente he optado por un sistema de navegación entre objetos, no directamente a la escena. ¿Por qué? Porque al navegar a un objeto concreto, ese objeto ya me dice a qué escena pertenece, y además tengo su posición, y junto con una propiedad con la que le indico a las puertas la dirección por donde se accede a ellas (arriba, derecha, abajo, izquierda), eso me permite situar al personaje en la escena nueva y además al lado del objeto puerta por el que ha entrado.
También mantengo un pequeño array con la cola de objetos puerta que voy transitando, así en cualquier momento puedo llamar a una función volver y regresar a la escena anterior aunque no sepa cuál es. Ésto es útil para escenas a las que se accede desde el inventario, por ejemplo al examinar una foto desde el inventario, cargo una escena nueva con la foto en grande, y como ha podido ser llamada desde cualquier escena, simplemente hago un Volver a la anterior y actualizo la cola.
Como tarea importante solo me queda el uso conjunto de objetos del inventario, y luego ya a programar la aventura en sí, que concretando un poco la historia que tenía pensada me salen unas 30 escenas y 14 pnjs... sí, igual me he flipado un poco :S
No esta nada mal 30 escenas la verdad
Pues con la historia que tengo pensada 30 escenas es la introducción xDD Igual yo sí que me he flipado.
Tu tienes lavia, verborrea, así que no dudo que sera larga. A mi personalmente me gustan largas. Bueno, no lo interpreteis en el otro sentido que ya os veo venir. Guarrillas!
Novedades. Básicamente el motor está terminado (por lo menos lo que pretendía hacer), quedan ajustes menores y corregir los bugs que vayan surgiendo.
En el Builder he añadido varias ayudas visuales, así como un sistema de traduccines. Como se puede ver en la captura el código que se mete en los scripts es bennu puro y duro, en la versión final añadire ayudas para tener siempre a la vista las funciones del Engine y las variables que pueden usarse.
(https://ulthar.files.wordpress.com/2015/03/sh_bcag_builder2.jpg)
Os voy a dejar una versión preliminar de (más o menos) lo que llevo hasta ahora para que lo veáis en funcionamiento. Cuando esté más pulcro el código (ahora mismo está bastante guarro) publicaré el código fuente, tanto del engine como del builder para que quien quiera usarlo pueda hacerse su propia aventura, de momento es lo que hay.
BCAG Engine - Alpha 2: https://drive.google.com/file/d/0B8mMsUUX7KdUU0xrTFZHdlYyQ1E/view?usp=sharing (https://drive.google.com/file/d/0B8mMsUUX7KdUU0xrTFZHdlYyQ1E/view?usp=sharing)
(Es un zip en google drive, para descargarlo hay un botón en la barra superior)
Agradeceré el feedback para corregir o mejorar cosas :)
(https://ulthar.files.wordpress.com/2015/03/screenshot6.png)
Se ve muy bueno!
Y donde esta el cuarto de Geologia?
Es que no está terminado, tengo hecho algo más, pero lo que subí es hasta ahí, el resto lo puse inaccesible para no desvelar mucha trama que luego pueda cambiar.
Debería organizarme más, pero de mientras voy cambiando diálogos y gráficos sobre la marcha :P
Está quedando genial :D , me dio ideas para un motor de Novelas Visuales que estoy desarrollando.
No puedo esperar por usar tu motor, me da curiosidad ese botón de Traducciones, siempre que yo meto texto a mis juegos, me preocupo bastante por la traducción y utilizo archivos externos para la elección de varios idiomas, incluso tengo varias fuentes acondicionadas para trabajar con cada idioma.
Y me da curiosidad porque en la captura que pusiste, escribes en código bennu los mensajes. Personalmente (y podría ser sugerencia, pero aun no se como solucionaste esto), para ahorrar código, los textos los escribo fuera del código del juego, y en ejecución los cargo y leo las linea del archivo que corresponde con el idioma elegido.
Es la primera vez que hago algo que soporte traducciones, así que no está muy depurado y tengo asumido que es muy mejorable.
Quería que en los diálogos se viese el texto en claro para saber que estaba pasando, y no códigos que apunten a una traducción. Lo que hago es: tengo un array de varias dimensiones cada una con un idioma (el prmero el castellano), y cuando entro en alguna función de las que muestran texto, llamo a otra función traducción con ese texto de parámetro que lo que hace es buscar esa cadena en el array y devuelve la otra dimensión (según variable idioma). Osea, que uso el propio texto como clave de búsqueda (no todo, solo los 25 primeros caractéres), lo que es de todo menos eficiente.
De momento solo llevo 160 líneas de texto y no noto que se pare, pero se puede optimizar de varias formas. Tengo pensado crear un índice de búsqueda a mano (durante la generación en el builder de forma automática) que sea otro array con la posición de inicio de cada letra del alafabeto, de esa forma buscaría solo en un array de ~27 posiciones, lo que me devolvería en qué posición del array gordo empieza esa letra, lo que acortaría la búsqueda bastante.
La otra opción sería durante la generación también sustituir el texto con el código de índice que le corresponde, lo que sería una búsqueda exacta pero a cambio no vería el texto en el código fuente. Por lo menos mientras dura el desarrollo me interesa verlo para depurar mejor, luego más adelante ya veremos, sobre todo si al crecer ese array se nota lento, pero con el array índice creo que sería suficiente.
Con respecto al builder, lo que hace es durante la generación recorre todas las líneas de código Bennu que he escrito y localiza las funciones de texto, extrae las cadenas de texto y si no existen en la tabla de traducciones, las añade. Si ya estaban las deja entendiendo que puedes tener una traducción empezada.
Ese botón traducciones muestra la tabla con los textos para traducir y los x campos para idiomas para ir escribiendo la traducción.
Ahora mismo lo llevo más parado que al principio, pero sigo con el. Prometo subirlo (builder y engine) cuando lo tenga más pulido. Si a alguien le sirve como idea genial, y si alguno se anima y me arregla el código... perfecto :D
Lo que pasa con el builder es que es VFP, así que dudo que alguien quiera/pueda meterle mano, pero bueno...
Como diría Lovecraft... no está muerto todo lo que yace eternamente.
Pese al calor infernal estoy aprovechando las vacaciones para ponerme de nuevo con esto. He cambiado algunas cosas que tenía pendientes como un proceso iluminación para dar más vidilla a las escenas y he reescrito la aventura casi de 0 (los inconvenientes de empezar a escribirla sobre la marcha). No me atrevería a decir cuanto tiempo me queda, pero en cualquier caso no está parado.
(https://ulthar.files.wordpress.com/2015/08/screenshot9.png)
Te está quedando muy chulo.
Hola gente.
Aquí dejo para quien quiera probarla una nueva versión de la primera aventura que hecho con mi constructor.
Se titula Mars Two y la considero ya una versión beta. En lo referente a la historia y funcionalidades la doy por concluida, solo quedan un par de retoques y corregir los fallos que detecte.
https://drive.google.com/open?id=0B8mMsUUX7KdUMUJZOG4xaTRkV0k (https://drive.google.com/open?id=0B8mMsUUX7KdUMUJZOG4xaTRkV0k)
Agradeceré todo el feedback posible, tanto detección de bugs, faltas de ortografía que se me hayan escapado o incluso sugerencias de la historia. He intentado llegar a esta versión sin fallos que impidan completar el juego, espero no haberme dejado ninguno grave.
Ahora estoy limpiando y comentando el código fuente de la aventura y espero publicarlo dentro de poco junto con el contructor en sí.
Gracias por anticipado.
Pues tiene muy buena pinta pero, desgraciadamente, no he podido pasar ni de la presentación jeje. En mi portátil, la ventana es muy larga y no es posible pinchar la flecha de abajo para continuar el intro cuando la astronauta se quita el casco. Es un portátil normal con una resolución estándar de 1366x768, asi que me temo que no voy a ser el único con el problema.
:o
Vale, no había pensado en eso.
Reducida la resolución y cambiado el enlace.
Gracias.
Pinta bien, me recuerda el diseño un poco al Gods will be watching y al Fist of awesome :)
Dos detalles que he visto:
- Al pulsar créditos repetidas veces, la pantalla se ha ido haciendo cada vez más oscura
- He echado de menos poder salir con la X de la ventana (exit_status)
Bueno, en cuestión de parecidos no tengo reparos en admitir que el estilo visual y el gameplay es un calco de The Last Door, un juego español no muy conocido pero que es una verdadera gozada, no me cansaré nunca de recomendarlo. Para los amantes de Lovecraft o Poe ese juego es el AMOR.
No conozco el juego, pero... esta foto la hice yo en el momento en el que sus creadores se enteraron (porque se lo conté yo) que Tim Schafer les había recomendado en Twitter :D
(http://forum.bennugd.org/index.php?action=dlattach;topic=3997.0;attach=3300)
El juego esta genial llevo un ratito jugando y lo único que echo en menos es poder cerrar con la x la ventana y poder pasar los creditos iniciales los cuales pasan desesperadamente lentos.
Buen trabajo
Está genial, ya quiero usarlo para algunos proyectos.
Primero unas preguntas:
¿Cuál es la resolución nativa del juego?
¿Tu motor admite otras resoluciones?
La historia y el concepto es bueno, me agradó, y la intro está muy buena (ver morir al personaje para mi fue impactante). Yo le agregaría mas cinemáticas de este tipo, soy muy espectaculares.
Observaciones:
*Cuando analizas cosas o hablas con otros personajes se percibe un parpadeo del HUD entre los diálogos (o textos) y el HUD con la lupa (muy rápido, apenas perceptible).
*Creo que el personaje debería poder caminar mas rápido.
*Tal vez sea útil poder ver el nombre del personaje (o el nombre de la habitación en la puerta) con solo poner el mouse encima, pero eso es mera opinión, se puede averiguar con la lupa.
*El texto de introducción tiene párrafos largos con pocas comas, creo que debería revisarse ese punto para adecuar los textos largos.
*En la intro del juego (donde la chica se quita el casco) nunca se ve el nombre del juego (o al menos yo no lo vi) y creo que debería decir "Ulthar Kaufman presenta Mars Two"
*Solamente se puede analizar la puerta del protagonista desde dentro (dice que es su puerta), las demás puertas no. De ahí la importancia de agregar qué hay detrás de la puerta o de quién es la habitación ("Habitación de Kelly", "Enfermería"), porque sin este dato no se sabe a donde se entra, siendo que el personaje principal conoce esa info.
ENCONTRÉ BUGS!!!!!
* (lo que dijo Pixel) Al pulsar créditos repetidas veces, la pantalla se ha ido haciendo cada vez más oscura
*Si empiezas una partida nueva y luego desde esta partida entras al menu (con Esc) y le das a nueva partida, el texto introductorio tiene como fondo la habitación donde te quedaste, y no solo eso, parece que las variables no se resetean, porque todo lo que habías hecho en la partida anterior continua, si sales por la puerta o analizas la computadora, aparecerás en la ultima habitación donde saliste para iniciar una nueva partida.
*(este bug es difícil repetirlo) En si, el juego se congela (casi por un minuto) al intentar entrar a la habitación que está oscura, me pasa cuando hago lo siguiente:
Empiezo y analizo todo lo que tengo al rededor, luego salgo y analizo la puerta de Kelly, luego salgo al pasillo y de nuevo regreso al los dormitorios, analizo la puerta de Kelly de nuevo y entro a mi habitación, luego salgo y me dirijo al pasillo, entro a la habitación oscura (a veces se pasma aquí) salgo e intento entrar de nuevo(aquí se pasma).
*Cuando empieza el juego, si entras al cuarto de caldera y lo exploras (a pesar de estar oscuro se puede explorar, creo que no debería poderse, incluso si se va al fondo del cuarto puedes acceder a otra sección que no está oscura) y sales, encuentras una mancha de sangre (una mano) en la pare del pasillo y luego encuentras muerto a Kanda, pero no es todo, con este bug es imposible seguir con el juego porque Stuart desaparece, y a pesar de que desaparece el te responde cuando analizas la computadora de Kelly.
Eso es todo. Espero ver el producto terminado, igual el motor.
Saludos.
Muy chulo, aunque si añadieras el .dcb sin incrustarlo dentro del .exe podría lanzarlo en GNU/Linux sin tener que usar wine xDD
Tres apuntes:
- El texto del inicio: A ver, que la historia está interesante; pero hay demasiado texto. En serio. El texto se agolpa desde arriba hasta abajo y de izquierda a derecha, ocupa toda la pantalla. Agobia. Y más cuando, encima, al cabo de un rato se mueve para poder leer lo que no cabe en pantalla. Te recomiendo que dividas el texto en varias pantallas, que lo dividas en más párrafos y que dejes algo de pantalla libre para que no agobie.
- La animación inicial (el travelling que empieza en las nubes y termina en el astronauta) está muy chula, pero me iba a golpes. No se si es el efecto deseado, problema mio por usar wine o qué. Pero si es deseado... actualmente no queda muy bien que haya tirones semejantes ni en juegos que quieran emular un aspecto retro. Bueno, en mi opinión, claro xD
- No noto la interacción. Quiero decir, que al hacer click nada en el cursor indica que ha recibido la señal. Parece una tontería, pero se nota una diferencia abismal cuando, por ejemplo, al hacer click el cursor tiembla o el objeto clickado reduce momentáneamente la escala.
Una pregunta: ¿vas a liberar el motor? Es que me haría mucha ilusión echarle un vistazo.
Bueno, gracias por todo el feedback, iré repasando todo y corrigiendo cosas.
Respondo algunas cosas (sin ningún orden en particular):
-El tema del código: Si que voy a publicar el código, tanto del engine en bennu (y de la aventura) como del builder en fox, esto ya no sé si le servirá a alguien, pero bueno. En cualquier caso si alguien decide tirarse al monte y usarlo estoy dispuesto a seguir trabajando en el. El publicar el código en bennu también me interesa, tened en cuenta que esto es lo primero que hago en bennu y estoy seguro que alguien con más experiencia podrá mejorarlo muchísimo o hacer un fork mucho mejor.
-El tema de las resoluciones: Para que tenga el aspecto de pixel gordo, los fondos los hago a 100x75, pero luego los amplio a 320x240, que es la resolución del juego. Luego ya en bennu lo amplio con scale_resolution para que se vea más grande. Eso ya tengo previso permitir cambiarlo desde opciones (varias resoluciones y pantalla completa). De todas formas con eso no me he metido mucho y desconozco que funciones tiene bennu para trabajar con distintas resoluciones, supongo que dependiendo del tamaño del monitor dejará franjas negras o lo estirará.
-Lo de la habitación oscura: Me da rabia porque eso estaba controlado. Sí que dejo moverse por esa habitación, pero los objetos y transiciones están desactivados hasta mucho más adelante (en la historia), si has llegado a ver lo de la sangre es que claramente se me ha escapado algo :P
-Lo de que se quede parado de vez en cuando: ese efecto no me ha pasado nunca, y mi máquna es normalilla. Puede que sea por ejecutar el exe, que no lo he probado tanto.
-Lo de la intro: hasta ralenticé la canción para que tardase más pensando que iba demasiado rápido xD
El resto de cosas me las anoto para ir corrigiendo. Gracias!
Otra cosa referente a las puertas, no he puesto descripciones a las mismas, pero casi todas las puertas de la base tienen a un lado una especie de placa con el nombre del departamento al que conducen.
Nueva beta (4):
https://goo.gl/K52Tpv (https://goo.gl/K52Tpv)
+Corregido bug de la habitación oscura.
+Menús rehechos para evitar sobreposicionamientos.
+Ventana de opciones para cambiar resolución y poner a pantalla completa.
+Intro rehecha.
+Parpadeo de inventario corregido (aunque en la primera frase del juego se superpone, bug conocido).
+Primera aproximación a los tics del ratón al interactuar, aunque apenas se aprecia y seguramente lo retoque.
+Bugs corregidos al cargar partidas.
+Velocidad del personaje ligeramente aumentada.
Cosas que quedan:
-Corregir los bugs que vayan surgiendo.
-Añadir más descripciones de objetos aunque no sean relevantes para la trama, para dar más vidilla.
-Añadir más efectos de sonido, sobre todo en las últimas fases.
-Terminar de adecentar el código y documentar.
Gracias de nuevo a todos por probarlo ;)
me gusta este proyecto felicitaciones
Se que el juego todavia es chiguito pero ponle Grabas y Cargar; Odio las aventuras en la que uno se ve obligado a terminarlas de un solo tirón.
Quote from: SplinterGU on October 11, 2015, 09:24:02 PM
me gusta este proyecto felicitaciones
Gracias a todos por los comentarios, apenas tengo tiempo pero aunque sea un poco cada semana al final lo terminaré todo (ya casi está).
Quote from: Transdiv on October 19, 2015, 11:57:00 AM
Se que el juego todavia es chiguito pero ponle Grabas y Cargar; Odio las aventuras en la que uno se ve obligado a terminarlas de un solo tirón.
El juego guarda el progreso cada vez que llegas a una nueva habitación. Cuando vuelves a arrancar el juego te permite iniciar nueva partida o continuar por donde quedastes, pero eso sí, no se pueden guardar varios y si empiezas partida nueva el progreso que llevases se pierde.
Bueno, ha pasado mucho tiempo desde la última vez. Me gustaría decir que desde entonces he estado on fire programando el juego y que ahora es la hostia y el copón... pero no. El juego está terminado, pero quería pegarle un gran repaso al código, depurar y optimizar (es la primera cosa que hago en bennu), pero ahí me quedé, así que antes de que pase más tiempo publico el código tal y como está y que sea lo que Cthulhu quiera.
(https://ulthar.files.wordpress.com/2015/10/mars2_portada1.jpg)
Mars2 (Instalador-exe) (https://goo.gl/fkI8ZV)
Mars2 (código fuente-zip) (https://goo.gl/lisamZ)
AVT Builder (instalador-exe) (https://goo.gl/CnUljy)
Manual de ayuda para el Builder (https://drive.google.com/open?id=1solFuAeBF51iYJz9XjJMmQGTH7SuohsoEbamrTUtKko)
El código es de Bennu y funciona con la última (creo) versión. Hice una versión para pixstudio cambiando los comandos legacy que aún uso y funcionaba, incluso generé un apk y la estuve probando en una kindle fire, pero no sé muy bien por qué los acentos en utf8 han dejado de verse.
El Builder he intentado pulirlo lo más posible, incluso he creado un pequeño manual pero seguro que hay cosas que no he explicado o lo he hecho mal y solo tienen sentido para mi.
Gracias a todos los que me habéis ayudado resolviendo dudas o aportando sugerencias.
Y ahora sí... FUCK YEAH!!! :)
Quote from: Ulthar Kaufman on April 24, 2016, 06:39:39 PM
Bueno, ha pasado mucho tiempo desde la última vez. Me gustaría decir que desde entonces he estado on fire programando el juego y que ahora es la hostia y el copón... pero no. El juego está terminado, pero quería pegarle un gran repaso al código, depurar y optimizar (es la primera cosa que hago en bennu), pero ahí me quedé, así que antes de que pase más tiempo publico el código tal y como está y que sea lo que Cthulhu quiera.
(https://ulthar.files.wordpress.com/2015/10/mars2_portada1.jpg)
Mars2 (Instalador-exe) (https://goo.gl/fkI8ZV)
Mars2 (código fuente-zip) (https://goo.gl/lisamZ)
AVT Builder (instalador-exe) (https://goo.gl/CnUljy)
Manual de ayuda para el Builder (https://drive.google.com/open?id=1solFuAeBF51iYJz9XjJMmQGTH7SuohsoEbamrTUtKko)
El código es de Bennu y funciona con la última (creo) versión. Hice una versión para pixstudio cambiando los comandos legacy que aún uso y funcionaba, incluso generé un apk y la estuve probando en una kindle fire, pero no sé muy bien por qué los acentos en utf8 han dejado de verse.
El Builder he intentado pulirlo lo más posible, incluso he creado un pequeño manual pero seguro que hay cosas que no he explicado o lo he hecho mal y solo tienen sentido para mi.
Gracias a todos los que me habéis ayudado resolviendo dudas o aportando sugerencias.
Y ahora sí... FUCK YEAH!!! :)
felicitaciones!
ahi te pedi solicitud para el manual, que me la pide... buen trabajo!
creo que he encontrado un bug... 2 veces me paso que al entrar la habitacion donde esta el pasillo que da al laboratorio y a la sala de calderas, que darle click o doble click sobre el area donde esta la puerta de la sala de calderas, o sobre la misma puerta, se traba el juego, y tarda un rato en reaccionar... congela todo el equipo, como que se esta comiendo toda la CPU...
Quote from: SplinterGU on April 24, 2016, 10:19:54 PM
creo que he encontrado un bug... 2 veces me paso que al entrar la habitacion donde esta el pasillo que da al laboratorio y a la sala de calderas, que darle click o doble click sobre el area donde esta la puerta de la sala de calderas, o sobre la misma puerta, se traba el juego, y tarda un rato en reaccionar... congela todo el equipo, como que se esta comiendo toda la CPU...
lo mismo en el laboratorio de Jensen... en la parte donde se ve el grafico del brazo robot, cuando el cursor se pone en forma de cruz... se traba unos segundos tambien...
Ya he dado permisos a todo el mundo para ver y comentar el documento.
Lo de los cuelgues temporales, he visto el efecto, pero tan pocas veces que no le había prestado mucha atención, aunque pasa mucho a los que lo han probado, puede que sea algo dependiente del ordenador. Lo más pesado que hace el proceso cargar_escena es recorrer el array de objetos, cierto que lo hace de principio a fin (unos 250), porque estos pueden estar desordenados, pero no creo que eso suponga un problema. Tambien hago un load_fpg() sobre la misma variable donde tenía el fpg de la escena anterior, sin hacer antes un unload_fpg(). ¿Esto puede suponer un problema? Había asumido que al hacerlo sobre la misma variable no pasaba nada.
Otro punto conflictivo que sé que no va bien es la búsqueda de caminos al pulsar sobre una zona inaccesible. Intenté solucionarlo evaluando antes el pixel pulsado antes de llamar al path_find, pero algo debí hacer mal porque se sigue parando muchas veces al pulsar fuera de la zona accesible. Igual el problema realmente no es el cambio de escenas y es siempre el path_find, yo conozco donde están las hotzones y pico siempre en el sitio, pero un jugador que esté explorando la escena sufrirá ese efecto más que yo. Lo investigaré.
el load sin un unload no es nada bueno, va a consumir mas memoria cada vez.
con respecto al path_find, iba a preguntarte eso, sin dudas es el path_find. llena las areas inaccesibles de "paredes" y ahi creo que no vas a tener problemas.
queria agregar, un comentario general, las variables no tienen memoria sobre la operacion que uno realizo con anterioridad, las variables son simples contenedores de un valor, que pueden ser un valor fijo, o el retorno de una operacion, pero una variable no sabe que es la operacion que hiciste y que existe una contraria para deshacerla.
la funcion load_fpg, lo que hace es cargar en memoria el fpg (en tantos mapas como contenga el fpg + la definicion del fpg), y a ese fpg le asigna un id numerico, que es lo que retorna y lo que la variable obtiene (un id numerico). Luego ese id es lo que necesitas para descargar (unload_fpg) el fpg de memoria, incluso no necesitas que sea la misma variable, puede ser un valor que pongas a mano en otra variable o una copia, o incluso un valor constante (asumiendo que hubiese forma de que conozcas previamente ese valor constante, cosa que no es fiable, pero solo lo menciono para indicar que no se trata de la variable sino del valor numerico de la misma).
espero haberme explicado y no complicado.
:)
por otro lado, muy bueno el juego, aunque me quede trabado, ya no se que mas hacer.
Está claro, corregiré los de los loads, aunque me atrevería a decir que las trabadas vienen del path_find, le pegaré un repaso a ver porque no funciona el control de seguridad.
Gracias!
pienso lo mismo, el path_find
Bueno... después de hacer pruebas con la detección de durezas y el cálculo del punto pasable más cercano y comprobar que van bien, he determinado que como apuntaba Splinter es algo concreto de la sala de Jensen (y seguramente alguna más). Pero sigo sin saber que es; el mapa de durezas es del tamaño que toca, de la profundidad de bits que toca, su índice está bien y por si acaso lo he borrado y vuelto a meter en el fpg y nada, sigue igual.
Mañana seguiré investigando a ver si lo cazo.
Gracias a todos por las pruebas.
Me auto-contesto, ya está claro.
Cuando se pulsa en una zona no pasable, hice un procedimiento near_point que evalúa los pixels alrededor del punto pulsado y cada vez se aleja más hasta encontrar un punto pasable, y ese es el destino. Es para que al pulsar en una pared, el personaje no se quede quieto, sino que se acerque hasta donde pueda.
Los mapas de durezas los hice lo más simples posibles, y normalmente son una zona en la parte inferior siguiendo el contorno de los objetos, pero la sala de Jensen precisamente no llega hasta el final, y como la función near_point para ahorrar solo se mueve por los ejes abajo, arriba, izquierda y derecha, pues no encontraba nunca un sitio cercano (en la imagen se ve claro).
Lo corregiré para que haga también diagonales hacia abajo.
Un bug menos!!!!
(https://ulthar.files.wordpress.com/2016/04/jensen_bug.gif)
Quote from: Ulthar Kaufman on April 27, 2016, 08:48:33 PM
Me auto-contesto, ya está claro.
Cuando se pulsa en una zona no pasable, hice un procedimiento near_point que evalúa los pixels alrededor del punto pulsado y cada vez se aleja más hasta encontrar un punto pasable, y ese es el destino. Es para que al pulsar en una pared, el personaje no se quede quieto, sino que se acerque hasta donde pueda.
Los mapas de durezas los hice lo más simples posibles, y normalmente son una zona en la parte inferior siguiendo el contorno de los objetos, pero la sala de Jensen precisamente no llega hasta el final, y como la función near_point para ahorrar solo se mueve por los ejes abajo, arriba, izquierda y derecha, pues no encontraba nunca un sitio cercano (en la imagen se ve claro).
Lo corregiré para que haga también diagonales hacia abajo.
Un bug menos!!!!
(https://ulthar.files.wordpress.com/2016/04/jensen_bug.gif)
genial! buen trabajo! espero el fix!
un abrazo!
Dejo los enlaces a las últimas versiones:
+Corregido bug de near_point
+Optimizada carga de fpgs
+Corregido bug de encaramiento de personajes
Mars2 1.1 Ejecutable (https://goo.gl/FndWGP)
Mars2 1.1 Código (https://goo.gl/MufWUV)
AVT Builder (https://goo.gl/y2i2UB)
pregunta, respeta el savepoint de la version anterior?
Si, se puede continuar sin problemas
Quote from: Ulthar Kaufman on April 28, 2016, 11:31:58 PM
Si, se puede continuar sin problemas
gracias! te quise dar un karma, y quise poner "por el creador de aventuras", y le erre a las teclas, puse "cf" y cuando quise borrar aprete enter... jajaja! karma para vos! excelente trabajo! encima tu primer trabajo con bennugd, cierto? felicitaciones!
ahhh, algo que estaria bueno, es que si le das doble click en alguna posicion vaya a la misma mas rapido, no necesita un grafico de correr, simplemente que vaya mas acelerado... y quizas incluso si se le da doble click a alguna puerta o paso de pantalla, que salte a la otra pantalla directamente... eso estaria genial.
Quote from: SplinterGU on April 29, 2016, 01:16:10 AM
Quote from: Ulthar Kaufman on April 28, 2016, 11:31:58 PM
Si, se puede continuar sin problemas
gracias! te quise dar un karma, y quise poner "por el creador de aventuras", y le erre a las teclas, puse "cf" y cuando quise borrar aprete enter... jajaja! karma para vos! excelente trabajo! encima tu primer trabajo con bennugd, cierto? felicitaciones!
Jajajaja, gracias a ti por toda la ayuda.
Quote from: SplinterGU on April 29, 2016, 01:17:46 AM
ahhh, algo que estaria bueno, es que si le das doble click en alguna posicion vaya a la misma mas rapido, no necesita un grafico de correr, simplemente que vaya mas acelerado... y quizas incluso si se le da doble click a alguna puerta o paso de pantalla, que salte a la otra pantalla directamente... eso estaria genial.
Sí, estaría bien. En desarrollo tenía atajos para moverme rápido entre escenas, pero cuando lo he jugado desde 0 la verdad es que también lo he echado en falta. Aprovecharé que me he vuelto a reenganchar y me lo anoto para hacer.
Y ya que me pongo también quiero hacer un asistente de dialogos en el builder para que sea más fluido escribirlos (ahora no son más que una sucesión de ifs). Tal vez un diseñador visual tipo diagrama de flujo para hacer dialogos complejos. También quería darles un ID úncio a cada dialogo, lo que solucionaría el tema de las traducciones y permitiría asociarlos automáticamente con un archivo de sonido con el doblaje de actores, y quien dice actores dice cualquiera de aquí que quiera participar ;D
También tengo otras ideas para hacer, pero ya para otra aventura.
Para aventuras de investigación, un elemento de la interfaz que sea una libreta de pistas (o tablet, o lo que sea según el transfondo). Cada elemento relevante se iría anotando en la libreta conforme los vayas descubriendo en categorías de lugares, personas y objetos. Al final del juego tendrías que relacionar las pistas con una lista de tags, por ejemplo: asesino, victima, testigo, colaborador, arma homicida, lugar del crimen, sin relevancia, ... Y según cómo enlaces, de por resuelto el caso o no, y además te de una puntuación que se pueda comparar con la de otros jugadores.
Quote from: Ulthar Kaufman on April 29, 2016, 10:27:43 AM
Quote from: SplinterGU on April 29, 2016, 01:16:10 AM
Quote from: Ulthar Kaufman on April 28, 2016, 11:31:58 PM
Si, se puede continuar sin problemas
gracias! te quise dar un karma, y quise poner "por el creador de aventuras", y le erre a las teclas, puse "cf" y cuando quise borrar aprete enter... jajaja! karma para vos! excelente trabajo! encima tu primer trabajo con bennugd, cierto? felicitaciones!
Jajajaja, gracias a ti por toda la ayuda.
Quote from: SplinterGU on April 29, 2016, 01:17:46 AM
ahhh, algo que estaria bueno, es que si le das doble click en alguna posicion vaya a la misma mas rapido, no necesita un grafico de correr, simplemente que vaya mas acelerado... y quizas incluso si se le da doble click a alguna puerta o paso de pantalla, que salte a la otra pantalla directamente... eso estaria genial.
Sí, estaría bien. En desarrollo tenía atajos para moverme rápido entre escenas, pero cuando lo he jugado desde 0 la verdad es que también lo he echado en falta. Aprovecharé que me he vuelto a reenganchar y me lo anoto para hacer.
Y ya que me pongo también quiero hacer un asistente de dialogos en el builder para que sea más fluido escribirlos (ahora no son más que una sucesión de ifs). Tal vez un diseñador visual tipo diagrama de flujo para hacer dialogos complejos. También quería darles un ID úncio a cada dialogo, lo que solucionaría el tema de las traducciones y permitiría asociarlos automáticamente con un archivo de sonido con el doblaje de actores, y quien dice actores dice cualquiera de aquí que quiera participar ;D
También tengo otras ideas para hacer, pero ya para otra aventura.
Para aventuras de investigación, un elemento de la interfaz que sea una libreta de pistas (o tablet, o lo que sea según el transfondo). Cada elemento relevante se iría anotando en la libreta conforme los vayas descubriendo en categorías de lugares, personas y objetos. Al final del juego tendrías que relacionar las pistas con una lista de tags, por ejemplo: asesino, victima, testigo, colaborador, arma homicida, lugar del crimen, sin relevancia, ... Y según cómo enlaces, de por resuelto el caso o no, y además te de una puntuación que se pueda comparar con la de otros jugadores.
suena genial!
Yo de momento sólo te puedo dar mi enhorabuena y darte ánimos para que consigas terminarlo ;)
Acuérdate de añadir un buen manual al programa, es lo primero que te va a pedir todo el mundo, con un capítulo paso a paso para desarrollar la primera aventura :P
Dentro de poco pondré otra versión con cambios mínimos y algunas correcciones.
Principalmente:
+Añadida opción en el builder para imprimir un esquema de la aventura (una especie de resumen de escenas y objetos importantes), para ayudar a llevar la cuenta de objetos importantes, ids, ...
+Cambiado por fin los textos a id, lo que permite un sistema de traducciones eficiente. Lástima que mi inglés sea de pena.
He estado haciendo pruebas con cambios en los gráficos, en vistas a una posible próxima aventura. Aunque me manejo bien dibujando, con el ratón es otra historia y mi pixel art deja mucho que desear. Mi principal problema, aparte de la falta de paciencia, son las perspectivas, que para que queden bien tengo que dedicarle mucho tiempo, lo que nos lleva al problema anterior, la paciencia.
He estado probando haciendo los diseños en 3D, pero al bajar la resolución queda raro. No termina de convencerme. ¿Qué os parece? ¿Alguna sugerencia?
Otra posibilidad es hacerlo a mano sin hacer una sola línea recta, a lo Day of the Tentacle, pero pensaba en algo más tipo Indiana Jones & the fate of Atlantis.
(https://ulthar.files.wordpress.com/2016/05/mars2_hd.jpg)
para mi se ve genial...
Hombre, tiene el problema de que desentona un poco el fondo en plan "realista" respecto a los sprites, porque al ser un diseño 3D, la iluminación y los colores difieren mucho, aparte de que la reducción provoca esa "difusión" rara en los bordes de los elementos. Eso para el jugador medio pasa desapercibido, pero un grafista o un entusiasta de este tipo de juegos lo va a notar.
Para dibujo 2D puedes probar con alguna herramienta para Photoshop que te permita dibujar en una capa inferior una "estrella de perspectivas": en el Máster nos enseñaron una herramienta para SketchBook que haciendo clic y arrastrando se dibujaba una estrella, que consistía en un montón de lineas saliendo de donde se ha hecho clic, que sirven de referencia para capas superiores. He buscado el nombre del plugin, pero tengo que acceder a mis copias de seguridad para encontrarlo.
Si no, puedes probar con algún filtro de cel-shading o de reducción de color o similares post-procesados en tu editor 3D... o post-procesarlo a mano con potochof o tu editor de imágenes favorito, que es lo que se hace con los juegos de lucha 2D tipo King of Fighters, pero no esperes un milagro de "clic, y el trabajo está hecho" :P
Por lo demás, con muchas ganas de ver tu trabajo, que por falta de tiempo, aun no he podido probar ninguna beta (y aun le debo a una amiga probar su juego) :)
Gracias por la info Drumpi, encontré el plugin que dices pero la página oficial lleva meses caída aunque logré encontrarlo por otro lado, lo dejo aquí por si a alguien le interesa que lo tenga más a mano (el plugin es gratuito).
Perspective tool - Photoshop plugin (https://drive.google.com/file/d/0B8mMsUUX7KdUQUN2cktaX1M5S0E/view?usp=sharing)
Pongo las últimas versiones también del juego. Como comenté anteriormente las principales novedades son:
+El generador de la aventura ahora extrae los textos y los pasa a una tabla mediante id único, por lo que el sistema de traducciones ahora es eficiente.
+Añadido en el builder un generador de esquema, con la lista de escenas y objetos más importantes.
+También he puesto información de la licencia, que no había puesto nada pero aclaro que es una creative commons que permite el uso, la modificación y el beneficio económico siempre que se mencione autoría.
-Intenté hacer el doble click para ir al sitio directamente, pero el comportamiento es un tanto errático y no termina de ir: a veces va, la mayoría no, y cuando va lo hace con triple click. :-[
Voy a deshabilitar todos los enlaces viejos para que nadie se lie con tanto enlace (yo incluido).
Mars 2 1.2 - Instalable (https://goo.gl/qIwNRm)
Mars 2 1.2 - Source (https://goo.gl/iuGkpe)
AVT Dev 0.7 - Builder (https://goo.gl/Nr6BdH)
Por otra parte tengo curiosidad por saber qué os parece la aventura en sí. Supongo que nadie se la ha pasado porque nadie se ha quejado del final chusquero :D
gracias por el update!
la verdad que no he tenido tiempo de seguir jugando, me habia quedado trabado luego de la autopsia, y hablar con todos, y no se que mas hacer.
Yo sigo en "modo programación a tope" con el editor (no me pasaba desde el mes anterior a la entrega del Paper Tale) y no he podido mirarlo. Si me da la pájara de tanto teclear, descansaré probando tu juego ;)
Me alegro que hayas podido encontrar el plugin, espero que te sea útil. Y suerte con encontrar los fallos, ya sabes que por cada hora de escribir código tendrás pendiente tres más para arreglar bugs :D