Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mensajes - calio

46
no, justamente es para poder modificarlos :P
la idea es que si el archivo cacheado anteriormente y el archivo actual son diferentes, cachee de nuevo el mapa, para as? ahorrarse el estar borrando manualmente los caches de los mapas cada vez que se les hacen modificaciones.
pero creo que encontr? una soluci?n. hay un script que puede calcular el md5 de archivos, es lento seg?n dicen pero supongo que me puede ayudar por lo menos leer c?mo est? hecho.
supongo que estoy tratando de matar moscas a escopetazos. creo que as? era el dicho popular para resolver problemas peque?os con soluciones grandes, pero es algo que me preocupa, la idea es que si libero el motor completo -que tengo planeado hacerlo- est? dise?ado para que la mayor parte las tareas pr?cticas las haga el motor mismo, y que el motor ponga la menor cantidad de trabas posibles para dise?ar un sidescroller de aventuras.

gracias por la dll :) pero no creo que me funcione. el problema de los dll es que son s?lo compatibles con windows y yo estoy ocupando game maker para mac. ?se es un problema con el que me encuentro a menudo ._. por ejemplo, quer?a ocupar archivos .mod para la m?sica, pero todas las extensiones que leen y reproducen los archivos .mod s?lo existen para windows. es una l?stima :(

muchas gracias, de todos modos :)
47
much?simas gracias :D creo que trabajar? con ?se c?digo con un par de modificaciones de caracter pr?ctico, pero la soluci?n encontrada es bastante buena :) much?simas gracias.

y muchas gracias tambi?n por el resto de los tips :)
48
much?simas gracias :D leyendo y revisando

EDIT: revis? y no lo pude abrir, puesto que estoy ocupando la versi?n 7 para mac n.nU lo iba a convertir a 7 con lgm.
de todos modos, leer el c?digo del post me sirvi? para descubrir la maravillosa funci?n room_tile_add. a?n no la ocupo, pero eventualmente me servir? much?simo. ?much?simas gracias, Texic!

otra cosa, prob? una idea que me anduvo dando vueltas en la tarde; funciona de maravillas :D miren:

http://dl.dropbox.com/u/173377/read_datastructures.zip

hice que el editable anterior escribiese todas las estructuras de datos a archivos de texto, y luego program? algo que las leyese y las interpretase, con la esperanza de que fuese mucho m?s r?pido. buenas noticias: lo es :D estoy pensando seriamente en hacerlo as?. los ?nicos inconvenientes que veo es que tendr?a que ingeniarmelas para inventar una forma que compare cambios en los mapas originales (?a alguien se le ocurre una forma con GML? Se me ocurre mirar la fecha de modificaci?n o calcular el CRC, pero de ah? a que aprenda c?mo implementar un calculador de CRC en GML... ) y que los mapas pesan como 10 veces m?s que los originales. s?, el original pesa 15kb  y la copia cacheada pesa m?s de 100kb. no es un problema grave de todos modos, pero bueno.

Voy a seguir investigando :D si encuentro una forma de hacer algo tan chungo como comparar archivos y lo programo en un script, lo suelto antes que el motor :D
49
Adjunto un mapa y un archivo que lee y dibuja el mapa :B todav?a no he implementado las profundidades y otras cosas. Funciona, pero f?jense en cu?nto se demora .___.
La parte que m?s toma tiempo es un ciclo que tiene tres for, uno dentro de otro, para guardar el valor de cada tile. el primer for es para las capas, y los otros dos para las coordenadas x e y. Es insano, lo se, pero as? me sali?.

http://dl.dropbox.com/u/173377/read_level.zip

Un saludo :) ojal? alguien pueda ayudarme a optimizar el c?digo .__.

PD: Qu? buen avatar, brunoxzx :p

EDIT: Creo que se me han ocurrido algunas soluciones. Ojo que ?stas soluciones son parches, pues la verdad es que me gustar?a mucho m?s que el c?digo estuviese optimizado. Las expongo ac?, s?lo por si a alguien le interesa:

1.- Crear un c?digo que parsee los mapas de antemano
?sta opci?n es sencilla, pero muy poco viable. Uno de los objetivos del motor es la simpleza para desarrollar juegos, y tener que convertir los mapas de antemano a un formato que game maker pueda leer m?s r?pido me parece una complicaci?n innecesaria. Y por qu? no, tambi?n me parece subirle la bandera blanca al c?digo :p

2.- Parsear los mapas y guardarlos en un cach?
?sta opci?n puede ser interesante. Ser?a bueno que el motor guardase la informaci?n del mapa parseada en un archivo apenas acabe de interpretarla, y que a continuaci?n en las siguientes ocasiones, utilice los archivos de cach? para leer los mapas. La gracia es que mientras esten los mapas, el motor va a poder crear un cach? de ?ste en cualquier momento en caso de desaparecer el cach? del mapa o de modificar el mapa original, volviendo el tema un proceso mucho menos engorroso. Mi principal queja con respecto a ?ste m?todo es que, bueno, crea archivos. Quiz?s para un par de mapas est? bien, pero a gran escala puede ser una mala idea.

3.- Escribir mi propio editor de mapas
?sta opci?n la descarto casi de plano. Dudo que ?sta sea la soluci?n correcta, principalmente porque el ?nico lenguaje que manejo lo suficiente como para escribir una aplicaci?n entera es GML. ?Se imaginan un editor de mapas serio que funcione sin ninguna DLL externa hecho completamente en Game Maker? Yo tampoco. O quiz?s s?, pero no puedo evitar pensar en todos los problemas que ello acarrear?a.

4.- Cargar los niveles seg?n vayan siendo referenciados.
Al principio quer?a cargar todos los niveles de una sola vez, sin embargo con el tiempo que le toma interpretar un mapa peque?o de dos o tres capas, el juego se demorar?a como diez minutos en empezar. Cargas peque?as de cinco o diez segundos entre escena y escena reci?n referenciada no es una tan mala idea, por otro lado, los tiempos de carga, por peque?os que sean, son el enemigo n?1 de todo gameplay.

Mi primera opci?n sigue siendo optimizar el c?digo, sin embargo no se me ocurre c?mo ._. si pudiese reducir esos tres loops a uno solo, quiz?s contando las l?neas y buscando de antemano la ubicaci?n de las capas, podr?a funcionar, pero honestamente no se me ocurre nada ._. y ahora debo ir a acostarme porque ma?ana tengo que despertar temprano ._.

Muchas gracias por darse el tiempo de leer mi problema :D
50
Preguntas y respuestas / Leer escenarios externos
Julio 10, 2011, 09:13:47 AM
Hola :)
He estado desarrollando un motor hace mucho tiempo (m?s del que me gustar?a n_nU) y he podido sortear todos los problemas que ha conllevado su realizaci?n de buena forma hasta ahora, sin embargo para el siguiente problema me veo en la necesidad de recurrir a preguntar una duda a la comunidad.
Ver?n, para hacer los escenarios estoy usando una aplicaci?n llamada Tiled. no me quejo, pues la aplicaci?n es bastante buena y muy flexible, bastante cercana a lo que yo estaba buscando. Ahora, el problema es al momento de importar los escenarios a Game Maker, pues, como uds. ya sabr?n, la lectura de ficheros de texto externos en Game Maker es muy engorrosa, y bueno, se imaginar?n que un escenario es un archivo de texto enorme n_nU
B?sicamente, mis escenarios tienen por lo menos tres capas. La primera, llamada Capa 0, es la capa de tiles estructural, donde se encuentran los s?lidos del nivel, algo as? como el nivel m?s bajo del escenario. El resto de las capas de tiles son capas donde est?n los tiles de las capas superiores, como los pisos que se pueden atravesar. Cada capa es independiente de su profundidad, es decir, la capa 0 y la capa 1 pueden tener la misma profundidad. Finalmente est? la capa de objetos, que se autodescribe.
La estructura de los escenarios que genera Tiled est? bien, pero el proceso que estoy ocupando para leer cada escenario es, por decirlo menos, incre?blemente compleja ._.
Les dejo a continuaci?n el flujo que escrib? para planear la programaci?n del sistema:

-Crear una lista
-Pasar todo el archivo a la lista
-Ubicar las propiedades, leerlas y guardarlas en una lista asignada a un arreglo unidimensional de indice nivel correspondiente.
--Alto de la room
--Ancho de la room
--Tama?o de las tiles
--Siguiente escena
--Escena anterior
--Tipo de escena
--Cantidad de capas (sin contar la 0 y la de objetos)
-Crear una room con las propiedades anteriormente rescatadas.
-Ubicar la capa 0
-Crear una malla en un arreglo bidimensional con primer ?ndice de valor nivel al que corresponde el mapa y segundo indice el numero de la capa.
-Guardar el valor de la profundidad de la capa en [nivel,0]
-Crear otra lista de profundidad alto de la room / tama?o de las tiles que contenga la info de las tiles de la fila actual
-Explotar cada ?tem de la lista en una malla con valor y de la fila actual.
-Repetir el proceso con cada fila
-Borrar la lista que se uso para la informaci?n de las filas.
-Ubicar el resto de las capas de tiles y repetir el proceso anterior
-Ubicar la capa de objetos
-Explotar cada objeto en una malla (x como nombre del objeto, y como sus propiedades en formato evento= c?digo) asignado a un arreglo de ?ndice el nivel al que corresponde
-Borrar la lista que contiene el archivo
-Borrar la lista que contiene las propiedades de la room
-Cerrar el archivo y pasar al siguiente escenario

?A alguien se le ocurre un flujo m?s sencillo? En serio que cuando escrib? el flujo para programarlo casi me muero por la cantidad de cosas que hay que hacer D: y no quiero ni pensar cu?nto se va a demorar en hacer eso para cada escenario, ni en la cantidad de memoria que va a gastar.

Eso. Un saludo :) y gracias de antemano.
51
Preguntas y respuestas / Re: Dise?ar Escenarios
Agosto 26, 2010, 06:49:05 PM
No conoc?a Tiled. Muchas gracias :D le ech? una mirada, y se ve bastante interesante.

Aparentemente, no ser? necesario meterse ni con c?lculo de base64 ni con gzip :D Tiled puede guardar la informaci?n de los datos en formato XML. La estructura queda clar?sima.

Hice un escenario simple para ver c?mo sale.
Descargar escenario de prueba.
Voy a ver qu? puedo hacer con GML para interpretar escenarios creados con Tiled. Muchas muchas gracias :)

EDIT:

Con la ayuda de SimplXML he podido leer el archivo .tmx, agregar el tileset y sacar el tama?o del archivo :) ojal? para finales de semana tener algo funcional.
52
Preguntas y respuestas / Dise?ar Escenarios
Agosto 25, 2010, 06:27:44 PM
Este es un tema que probablemente sea de inter?s general.
Cuando hablo de dise?ar escenarios, no me refiero a la parte de planearlos, pues para eso todos tienen sus propios m?todos (Yo uso un block cuadriculado 5mm para dise?ar escenarios y sprites, por ejemplo) si no a la parte de "escribirlos" como dato para el juego.
El editor incluido con Game Maker funciona relativamente bien para niveles cortos sin mucho detalle, pero coincidir?n conmigo en que en muchas ocasiones es insuficiente; Es lento y bastante engorroso de "manipular", pues lo que hagas en el editor, queda en el editor. No hay forma de exportar rooms como un archivo independiente.
Hay muchas formas para escribir niveles y compatibilizarlos con Game Maker: Hay editores que permiten generar archivos legibles como fichero, lo que permite, a su vez, escribir int?rpretes, hay editores que ya tienen sistema de interpretaci?n en Game Maker, incluso hay editores escritos en Game Maker.
Mi pregunta es ?Como encuentran m?s conveniente uds. dise?ar escenarios para Game Maker cuando el editor incluido queda chico? ?Tienen alguna herramienta predilecta? ?Conocen alg?n sistema o ejemplo que muestre de forma sencilla (en un par de scripts, nada absurdamente complejo) c?mo escribir y leer niveles?

Saludos :)
53
Preguntas y respuestas / Estructura de Datos
Agosto 25, 2010, 06:15:13 PM
Esta es una pregunta, llamemosla, de estilo.
?Cu?l es la forma m?s conveniente de guardar datos en una estructura bidimensional?
Les cuento: estoy haciendo un juego y para guardar los objetos que existen en el juego estoy ocupando un arreglo (array seg?n su nombre en ingl?s) bidimensional con una estructura algo as? como
[n,0]=nombre (cadena)
[n,1]=tipo de objeto (entero)
[n,2]=variable modificadora (entero)
[n,3]=precio de venta del objeto (entero)
[n,4]=sprite del objeto (entero)
[n,5]=descripci?n del objeto (cadena)
donde n es el id del objeto, entonces cuando se hace referencia al item 15, [15,0] ser? el nombre del objeto, [15,3] su precio y [15,5] su descripci?n.
(En caso de que surga la duda, no. Lo hace un script por mi. Yo le paso lo datos como argumentos y el script asigna los valores. O si no me volver?a loco.)
Esta forma funciona bien en la pr?ctica, pero me temo que no es la forma correcta de hacerlo. He pensado en cambiarme a una cuadr?cula (grid seg?n su nombre en ingl?s) pero me pregunto si vale la pena.
El juego que estoy haciendo aspira a ser algo bastante grande (He tenido varios problemas con las rooms, pero ese es material para otro tema) y en estos casos hay que velar por la memoria. ?Es significativo el cambio en el rendimiento al almacenar valores en una cuadr?cula en lugar de hacerlo en un arreglo?
He pensado, tambi?n, en hacerlo de alg?n modo unidimensional, algo as? como [id del objeto]="nombre, tipo objeto, precio, descripcion, modificador" en una sola cadena y algun subsistema que interprete la cadena, pero me temo que eso puede llegar a ser a?n menos pr?ctico.
Hago esta pregunta porque ?sta semana estoy en planes de reestructurar el motor en su mayor parte. Tengo un desastre en el script que controla los di?logos, en el que crea a los personajes y al equipo, y un mont?n de c?digo que puede ser optimizado. Con ?ste tema me surge la duda, y prefer? preguntar.
Entonces ?Hay alguna forma eficiente y poco dolorosa de almacenar de forma ordenada todos estos valores? ?Es preferible un arreglo o una cuadr?cula para estos casos de datos que no van a variar mayormente a lo largo del juego? ?Hay impacto en el rendimiento del juego con un sistema u otro?
Saludos :)
54
Hola :)
?Existe alg?n script que brinde soporte para dibujar con sprites caracteres unicode, como "?", "?", caracteres con tildes y esas cosas?
Les cuento mi problema: Estoy escribiendo un juego que ocupa una tipograf?a en forma de sprite, y por motivos obvios (las im?genes correspondientes al caracter no existen) los caracteres anteriormente mencionados no se dibujan. Yo no he intentado nada, y si no existe una soluci?n voy a ver qu? puedo hacer yo, pero abro la pregunta para saber c?mo lo hacen uds. para escribir caracteres "especiales" con tipograf?as en formato de sprite.
De antemano gracias, y un saludo :)

EDIT: Muchas gracias, Killer :) efectivamente, funciona. Parece que mi problema era un asunto con la versi?n para Mac OS de Game Maker.
55
Buenas :)
Bueno, estoy programando un motor de algo as? como un Action RPG orientado a la exploraci?n y la b?squeda de items, para luego desarrollar sobre el mismo un videojuego que a?n no delineo.
Puesto que el motor va increiblemente avanzado y el resto de las areas del juego estan estancadas, llegu? a un punto muerto en que sencillamenta ya no se qu? seguir programando.
No es que lo haya terminado todo, lo que pasa es que al no tener nada excepto el motor no se si tiene sentido programar m?s cosas como las armas o algunos enemigos.
En papel he delineado bastante del funcionamiento de las armas, el inventario y los enemigos, sin embargo prefiero mantener todas esas ?reas en suspenso hasta tener mucho m?s delineados los apartados de historia, contexto, dise?o de personajes, enemigos, armas, etc.
Entonces ahora viene la pregunta: Cuando desarrollan un juego que no saben bien de qu? se va a tratar ?Evitan escribir y debuggear c?digo que puede quedar obsoleto o programan y luego piensan?
Lo m?s probable es que proceda y empiece a programar cosas que probablemente luego queden obsoletas, puesto que tengo la intenci?n de liberar el motor simultaneamente con el juego y me gustar?a que estuviesen implementadas todas las posibilidades que el motor permite, pero dado que tengo como fecha tope el 30 de Marzo tampoco puedo andar usando tantas horas de trabajo en c?digo que luego no voy a usar.
Bueno, esa es mi duda. Saludos :B
56
Preguntas y respuestas / Re: has hecho dinero con GM ?
Febrero 19, 2010, 07:30:51 PM
las aristas de qu? hace o no bueno a un juego son muchas y muy dispares [como se est? discutiendo en ?ste hilo]. Por ejemplo el contexto de Street Fighter II es francamente rid?culo y gr?fica y sonoramente -incluso a nivel de dise?o de personajes- es deficiente, sin embargo su control, jugabilidad y -entonces, claro- innovaci?n en el g?nero lo hicieron el referente que es hoy. Cada juego que luego se convierte en referente -o por ?ltimo en killer app- triunfa por motivos completamente diferentes. Algunos es por la jugabilidad, otros por el apartado gr?fico, otros por la historia bien hilada, otro por un buen balance de todo, otros por ser excesivos, otros por ser austeros, et cetera.
Yo personalmente he hecho algo de dinero con Game Maker, pero m?s que vendiendo siendo financiado. Hay un mont?n de situaciones en que alguien necesita/le gustar?a tener un juego, ya sea para un evento o para promocionar algo o para cualquier cosa. Me toc? hacer un videojuego para una presentaci?n de un stand en una convenci?n, por ejemplo.
Sin embargo, sea cual sea la situaci?n en la que planteas empezar a dise?ar y desarrollar con fines comerciales, debes tener en cuenta que tambi?n tus juegos deben alcanzar un estandar comercial m?nimo, eso quiere decir que tienes que saber qu? est?s haciendo, trabajar con gente competente, formar flujos de trabajo, tener reuniones, escribir documentos, etc.
Si quieres que hacer juegos sea tu hobby, puedes desarrollar juegos con la seriedad con la que una persona desarrolla su hobby, con libertades y sin mayores preocupaciones, pero en cuanto pretendes lucrar con ello, debes tener por prioridad que el producto final tenga una calidad similar a un producto comercial.
Saludos :)

P.D.: Como aclaraci?n, nunca es bueno dar por sentado que todos los juegos comerciales son 3D de ?ltima generaci?n. Eso es como decir que toda la m?sica comercial es el pop de MTV o que todas las pel?culas vienen de hollywood; ciertamente, esos son los referentes comerciales m?s grandes, pero no podemos ocultar que somos desarrolladores independientes y, por lo tanto, no tenemos por qu? guiarnos por las tendencias del mercado ;)
57
porque un SO no puede correr sobre otro SO... eso no ser?a un SO xD
de cualquier modo, game maker S? tiene l?mites, y uno de ellos es la imposibilidad de compilar el proyecto en un ejecutable. Los ejecutables que genera Game Maker no son m?s que el proyecto del juego [encriptado para evitar cualquier mal rato. Aunque esos malos ratos son inevitables, pues s? existen decompiladores de ejecutables de Game Maker] m?s el "runner", un int?rprete de proyectos de Game Maker, que es lo que ejecuta las ?rdenes del proyecto.
Incluso si lo que haces es un shell [Una aplicaci?n que sustituya a la interfaz gr?fica del sistema operativo, como Microsoft Bob o el Packard Bell Navigator] ser?a un proyecto sin mayor sentido y, por qu? no decirlo, bastante anticuado :P
[Como dato, s? existen shells hechos en Game Maker. En alg?n momento -versi?n 5.x- estuvo muy de moda hacer shells en la comunidad oficial.]
Lo que s? ser?a una buena idea ser?a crear una bater?a de funciones para dibujar y manejar la interacci?n humano-m?quina en Game Maker, algo as? como un kit de herramientas de interfaces de usuario abierto y libre. Ser?a util para evitar que cada desarrollador escriba su propio toolkit, teniendo en caso de funcionar- amplio soporte y documentaci?n de una comunidad. De hecho probablemente ya exista, yo no se.
Eso. Saludos :B
58
Preguntas y respuestas / Re: Identificando sectores
Febrero 18, 2010, 11:18:28 AM
nada, descuiden, ya lo solucion? xD
cuando el motor est? m?s terminado lo publico para que vean c?mo lo solucion? :)
pero primero tengo que terminarlo xD
pueden cerrar el topic :D
59
Cuando se dise?a un videojuego se comienza una b?squeda, una suerte de recolecci?n de material para darle espesor a la entrega final.
?Alguna vez se han fijado en las diferencias estil?ticas entre el Super Mario Bros. y el Super Mario Bros. 3? Es mucho m?s notorio en las versiones de de SNES del Super Mario All-Stars.


Super Mario Bros. es un cuento de hadas y Super Mario Bros. 3 una serie animada. ?Aun no me lo crees? Compara las canciones [SMB y SMB3] que suenan en cada t?tulo: Ambas son la misma canci?n con diferentes arreglos.
puede parecer que es "porque s?" o que son coincidencias, pero detr?s de cada gr?fico, de cada elecci?n de una paleta de colores, de cada banda sonora, hay una decisi?n de estilo. Lo mismo pasa con los motores gr?ficos, los dise?os de personajes, incluso si vas a usar 2D o 3D.
En pocas palabras, Depende de ti d?nde est? el buen videojuego. Depende de tu b?squeda personal, de lo que quieres causar con tu videojuego, de lo que quieras destacar, aquello que quieras homenajear o hacer un gui?o, incluso de la historia que quieras narra, o de si quieres narrar alguna historia.
Por cierto, me estoy saltando una parte importante del dise?o de videojuegos, que tiene que ver con el control, el gameplay y las f?sicas del videojuego, pero es b?sicamente es lo mismo: Si quieres un juego liviano, has de buscar el control m?s c?modo para jugar un juego liviano. Lo mismo para los juegos r?pidos, los juegos de carreras y los arcade. Dise?ar el control de un juego es m?s que desparramar las acciones en los botones :)
Ojal? te sirva mi respuesta :D saludos :)
60
Preguntas y respuestas / Identificando sectores
Febrero 17, 2010, 09:48:08 PM
Buenas :)
Estoy estancado xD
Tengo un objeto (objPiso) que utilizo para demarcar sectores o habitaciones dentro de una habitaci?n. El objeto tiene un alarma que al ser activada crea muros (objMuro) alrededor suyo, luego los tiles del piso, luego activa la alarma de todos los objetos iguales que estan a su alrededor y luego se autodestruye. Para "prender la mecha" ocupo otro objeto (objIdentificador) que pongo sobre el piso de cada sector y que, adem?s, da un valor a la variable sector de objPiso.
Por alguna raz?n, el juego asigna a todos los sectores el ?ltimo valor a?adido al juego.
Le he dado mil vueltas: La variable de cada objIdentificador es diferente [las asigno con el c?digo de creaci?n de cada objIdentificador independientemente], la variable que recibe el objPiso con el que colisiona es la misma que la del objIdentificador, estoy ocupando s?lo variables locales, pero por algun motivo la variable sector de todos los sectores identificados es la misma.
Dado que es dificil que alguien me de una soluci?n al m?todo que estoy ocupando actualmente as? nada m?s describiendo el problema... ?Alguien tiene alguna idea para reemplazar al m?todo que estoy ocupando actualmente?
O claro, si a alguien se le ocurre cu?l puede ser el problema, por favor que responda xD estoy REALMENTE estancado.

P.D.: En caso de que se lo pregunten, quiero identificar sectores para poder ocultar los lugares en los que el personaje no est? sin utilizar tiles negros.