AnaConda Map Editor es un editor de mapas 2d que puede ser utilizado para realizar juego tipo puzzle o side scrollers.
Es totalmente freeware y lo pueden descargar de
http://www.dedalus-software.com.ar/ame.phpPor favor, si alguien tiene tiempo de verlo cuentenme que les parece.
Muchas gracias.
~deadLock++
Tiene buena pinta. Una recomendación: si te currases un jueguecillo de ejemplo con el código fuente donde se viese cómo lees el formato y mueves los tiles estoy seguro de que bastante gente se animaría a usarlo.
Metaxas
Gracias por el consejo, metaxas. Estoy haciendo un pequeño motor que utiliza, entre otras cosas, el formato de mapa que utiliza mi editor.
Con este motor haré unos cuantos tutoriales que expliquen como usarlo, tanto a él como a un mapa hecho por AnaConda. El código fuente también estará disponible para quien lo desee pueda tomarlo de ejemplo.
Saludos, :ojo:
Enhorabuena, esta genial!!!! :D
Está muy bien el editor :D
Te queria preguntar una tonteria que no tiene nada que ver, pero es que nunca he sabido hacerlo yo :oops: ... ¿Cómo se pone una dirección de internet en el about? ... es que he visto que tenias una dirección puesta :)
Me estoy bajando el 4 en linea...
un saludo
Yo tb lo he probado y me ha gustado mucho. Buen curro!
Solo una cosilla para agilizarlo. El modo pintura esta bien, pero me gustaria que hubiese una forma de que al seleccionar una zona rectangular se pusiera con el tile elegido. Por ejemplo al marcar unos NxN tiles con la herramienta de seleccion, que al hacer doble click sobre un tile de los de muestra se pusiera dicha zona con ese tile.
En cuanto tengas ese juego de ejemplo dilo en el foro :D
En constestación a fiero:
Lo que hago es cambiar la palabra a subrayado cuando pasa el mouse por encima, luego cuando hacen click se ejecuta la línea:
spawnl(P_NOWAIT, szBrowser, szBrowser, szHttp, NULL);
Esta línea lanza un proceso asincrónico que en este caso es el explorador con una dirección http como parámetro.
Hasta aquí seguro te lo imaginabas. Lo que me llevó algún tiempito es buscar en donde se encuentra instalado el explorador (sea cual fuese) es cada PC, para eso leo la llave de la registry:
HKEY_CLASSES_ROOThttpshellopencommand
Que indica el nombre del programa que puede abrir direcciones http (por lo general te va a dar la ruta de acceso al Internet Explorer).
En constestación a Loover:
Lo que dices es cierto, en un momento me lo había planteado como sugieres pero sinceramente el proyecto ya se ma había complicado mas de la cuenta y empecé a recortar algunas cosillas. Cuando pueda, además de lo que dices, debo agregar:
Posibilidad de ver el preview del mapa (con todas las capas acopladas sin mostrar las zonas marcadas como transparentes).
Posibilidad de ajustar el tamaño del mapa.
Manejo de celdas hexagonales e isométricas (no que por momento atienda a esta característica pero está firme en mi lista TODO).
Saludos y gracias.
Otra chorradilla: que cuando le des a la rosca del raton no suba el bloque pintor (me de desgracia el mapa por estar normalmente dibujando) sino que suba solo el mapa.
Ya me he puesto a utilizarlo y me gusta mucho. Avisa cada vez que tengas una nueva version, aunque me pasare bastante por la web.
Un saludo.
[deadLock++]
Vaya, me parecía que habia una forma más sencilla, ya que mucha gente pone frases subrayadas con la estética de un link de explorador. O sea, que cada uno se lo curra a mano :ojo: , gracias por la respuesta....
un saludo
En contestación a fiero:
El nuevo entorno .NET trae un pequeño controlcito que hace esto. También de manera muy sencilla se podría crear uno basándose en un Label que incorpore esta funcionalidad (por la red debe haber muchos y gratuitos).
Off-topic fiero/deadLock++:
Probad ShellExecute(). Es una función del API de Win32 que abre la aplicación asociada al tipo de fichero que se le indica. Si indicais un .DOC abre Word, si indicais una URL abre el navegador,... sin tener que especificarle donde se encuentra el Word o el navegador instalado. Tienes otras opciones interesantes.
ShellExecute(NULL, "open", "http://www.stratos-ad.com", 0, 0, SW_SHOWNORMAL);
Saludos a todos.
¡Gracias, Juan!. La verdad no la conocía. :oops:
Saludos.
deadLock++
:) yo tampoco la conocía, muy útil
un saludo
Estoy haciendo un juego en el que bien podría haber usado Anaconda, pero el problema es que para mi juego(tipo snow bros.) el formato de Anaconda ES DEMASIADO EXTENSO, y las fases acaban ocupandome demasiado. Es una pena, así que seguiré usando el editor de mi juego.
Por lo demás está muy bien, y realmente encuentro más utiles este tipo de programas que los motores "beta DX9 que no rulan ni patrás".
¿Te parece muy extenso?
Puede ser, es que los bloques podrían contener menos información o que cada bloque tenga un pequeño header que indique cuanta memoria haya que asignar para contener la información del mismo.
Lo que sucede es que traté de encontrar un balance entre la facilidad de lectura de la estructura y de uso, lo unico que mantuve como dinámico son los layers y la cantidad de bloques (sino sería una locura) pero no la info dentro del mismo.
Es interesante conocer tu opinión ZaelSiuS, es probable que achique un poco el tamaño del bloque. Cada bloque ahora está ocupando 37 bytes (posee un short de Id del tag, un unsigned char para colocar 8 banderas, 2 strings de 8 bytes, 4 floats y un número que identifica al tile).
¿Cuantos bloques promedio utilizan tus mapas?
¿Que tamaño de mapa te resultaría práctico?
Saludos,
deadLock++
¿que utilidad se le daría al tag? Por ejemplo para diferencia un bloque de lava de uno de tierra... puedes explicar mejor como usarias tu la información de usuario que se le puede meter a los bloques. He estado mirando en la ayuda pero no hablas casi nada de eso.
Gracias.
Por otra parte a mi no me parece que los mapas ocupen demasiado, estan bien como estan.
Cada bloque tiene tres tipos de datos (booleans, floats y strings) para utilizar como el diseñador de juego le plazca. En total son 8 valores booleanos (en un unsigned char), 4 valores floats y 2 strings de 8 caracteres c/u.
El tag es un valor adicional que le da un significado al bloque. Por ejemplo, si en un bloque en particular se marca (o tagea) como punto de inicio del jugador uno puede crear un game template para el editor de modo que establezca ciertos valores a los tipos de datos que mencioné arriba mas el código del tag.
Ej:
Si estamos haciendo un pacman, deseamos marcar un bloque como punto de inicio y luego queremos especificar si allí comienza el pacman o un fantasma, el diseñador del juego creará un template con un tag que marque al bloque y automáticamente le inserte un valor string con la leyenda "PACMAN" o "BLINKY" o lo que sea.
Cuando el motor del juego lea dicho bloque, primero leerá el tag del bloque y si dice 1 (por ejemplo) sabrá que es un punto de inicio, luego en el primer string sabrá que estará que personaje deberá empezar allí.
Es decir, la idea es que el tag le de un significado al bloque y a partir de este el motor sepa que información debe buscar en cada tipo de dato dentro del bloque.
También la posibilidad de tagear los bloques dentro del editor, facilitan la construcción del mapa ya que el usuario que hace mapas no tiene la necesidad de escribir PACMAN o BLINKY o lo que sea (con la posiblidad de equivocarse).
Ok, ahora lo entiendo. Esta muy bien pensado
Para mi juego me bastan dos bytes por celda(o casilla). El primer byte es para índice del gráfico de la celda, y en el segundo puedo codificar la existencia de enemigos o power ups.
Por eso, si mi mapa ocupa 15*20(p.ej), pues son 600 bytes. En cambio si uso 37 bytes por celda, pues cada fase me ocupa 300*37 = +10000 bytes
10kb tampoco es demasiado, pero si puedo ahorrar bytes mejor. Seguramente si no hubiese creado un editor propio utilizaría el tuyo.
Podrias intentar flexibilizar el formato de las fases, dependiendo de cada plantilla de juego. Es más curro, pero entonces sería la ostia.
Ánimo!
Es cierto lo que decís, ZaelSiuS, pero tené en cuenta que los campos no utilizados quedan todos en cero, y esto hace que si comprimis los ficheros estos se reduzcan notablemente.
Un mapa de 35k (como el de los pacman que está en los ejemplos) comprimido baja a 2K.
Saludos,
deadLock++
Quizás no deberia hacer aquí esta pregunta, pero bueno, cuando lo necesite más ya la hare en el general...
Ya he decidido usar el Anaconda Map Editor a la hora de los scrolls... y me gustaría saber si circula por ahí alguna herramienta parecida a esta pero para hacer animaciones de sprites. Es decir, que tuviese estas características:
- Poder cargar sprites de cualquier tamaño
- Opciones para ver el frame actual, su posición (x, y) (pq al ser sprites de tamaño variable deberian poder modificarse las x,y para ajustar la animación.
- El tiempo que durara cada frame
- Posibilidad para ver varias animaciones (una lista de animaciones)
Y luego, claro esta, guardar todo esto en un script o fichero binario bien documentado para poder cargarlo sin problemas.
¿Alguién sabe de alguna herramienta así o tengo que ponerme yo mismo con las MFC? Y ya que estamos... ¿el Anaconda lo has hecho con las MFC?
Estoy terminando la versión 0.1 del AnaCondaGL que es un motor que tiene las siguientes características:
+ Utiliza las librerías: SDL, OpenGL y OpenIL (próximamente incorporará fmod).
+ Código portable (No utilizo MFC ni nada que me ate a Win32, todas las librerías en que me baso son portables).
+ Librería 100% orientada a objetos.
+ Por el momento maneja objetos Bitmaps, Sprites2D, Mapas (de AnaConda Map Editor), Labels.
+ Consola tipo Quake extendible.
+ Fuentes disponibles.
+ Formatos gráficos soportados bmps, jpgs, tga, tiff, png, ... (gracias a la excelente OpenIL).
+ Documentación en español.
Esto es lo que llevo desarrollado por el momento, si bien la librería inicializa OpenGL por medio de SDL es 100% 3d, es decir que los sprites 2d y mapas y labels son texturas sobre polígonos (no uso el blitting de SDL).
Calculo que lanzaré la primera versión de prueba este fin de semana. Con algún jueguillo de tutorial.
Proximamente incorporaré (en este orden): Controles para GUIs, Carga de Modelos MD3 (de Quake3), Carga de Mapas 3DS.
Saludos.
deadLock++
Jejeje, muy buena pinta.
Pero es que yo estoy en algo parecido, aunque lleve muy poco, y en cuanto a lo de las animaciones 2d querria solo el editor...
Tb uso 2d mediante texturas sobre polígonos y la OpenIL... lo que no uso es SDL, ni quiero meterla.
Has pensado en hacer un editor con las caracteristicas que he mencionado? no me digas que no vendría bien ;)
¿Para el anaconda map editor usaste las MFC?
El motor lo estoy haciendo con el Visual C++ 6.0.
El editor de mapas lo hice con el C++Builder 6.0. El Builder para hacer toda aplicación con GUI aventaja muchísimo al Visual C++ y su MFC. Además puedo embeber todos los controles que requiere la aplicación en el mismo EXE, con el Visual C++ también pero sólo si te mantienes con la MFC y no agregas ningún OCX.
Lo malo del Builder es que es bastane lento compilando cuando usas VCL (que son los controles que trae).
En fin, cada uno es bueno en lo suyo.
Saludos,
deadLock++
Por cierto, como os va? vais a continuar haciendo cosillas de tiles? estaria bien saber que ha sido del anaconda :P
supongo que no te refieres a la herramienta para el grafista , que sirva para pintar, previsualizar, onion skin, etc...Para hacer sprites.
caso de que sí, a mí me gusta mucho la comercial Animation Shop que te regalan con el paintShop Pro (corte Inglés, por ejemplo)
Tb está muy Bien el Gale, un software japonés.
El Cosmigo Promotion dicen q está muy bien, pero en tiempos pude pillarme una demo y no me gustó nada.
había una versión gratuita del WebPainter, el 1.0, que era cañera para sprites, a mi gusto.
Y bueno, el open source TileStudio, permite cargar sprites, y almacenarlos en una especie de librería, y testearlos sobre la marcha,si recuerdo bien.Es un conjunto de pintador de tile, totalmente integrado con un editor de mapas.
El mappy(pero por una cosa u otra, acaba siendo el más usado) no sé si lo llega a hacerlo, pero el Tilestudio es más guay para grafos.
El gimp permite previsualizar en avi las layers, y el Adobe, con el Image Ready.
Seguro q no te refieres a nada de esto.