Feudo
2May/120

Gwen toma forma gracias a la mano de Christian

Gracias a la mano de Christian Muñoz (Heunithen) Gwen Valara la protagonista de Dhu nun cobra forma tridimensional.

imagebam.com

La idea de tener modelos de este tipo, es crear los sprite 2D directamente desde Blender, de esta forma las animaciones serán de mejor calidad a falta de un artista pixel art, es cierto que un buen arte de pixel da su toque retro y tiene su gracia, pero ese tipo de recursos requieren de alguien con talento y a falta de alguien así en el proyecto es necesario buscar alternativas como esta, en la cual se crea un modelo 3D, se anima y luego se utiliza algún programa como blender para obtener todas las animaciones como sprite 2D que se pueden usar directo en el juego.

Si todo sigue a este ritmo, espero tener algunas animaciones de este modelo dentro de este mes.

Archivado en: Dhu Nun No hay comentarios
14Abr/120

Mundial Futbolín

Como no quería quedarme fuera de este codear, finalmente logré terminar un juego bastante simple de futbolín (metegol, taca taca, etc). El juego aspira a ser algo simple pero divertido, se pueden jugar partidos rápidos o el modo campeonato que permite escoger un equipo entre los 32 países que jugaron el mundial e sudafrica.

El control es íntegramente con el mouse, de izquierda a derecha se mueven las fichas o jugadores y de abajo hacia arriba se rota los jugadores, es importante señalar que la velocidad con que movamos el mouse repercutirá en cuan fuerte le pegamos a la bola.

futbolín

Pueden ver un pequeño vídeo, donde está capturado el movimiento del mouse, para que se den una idea de como se juega:
[youtube]http://www.youtube.com/watch?v=ZSIPKj0z1mU[/youtube]

El juego está programado en vb6 usando la librería dxlib32 ya que tuve poco tiempo para el desarrollo del juego y preferí usar algo rápido, originalmente había pensando que el juego fuera en 3D usando python + panda3D para que fuese multiplataforma.

No hay menú de configuración, sin embargo en la misma carpeta donde está el juego pueden encontrar el archivo "config.ini" donde pueden modificar la configuración de varios parámetros, como son el sonido, sensibilidad del mouse, etc.

Descarga:
Pueden descargar una versión instalable con todas las DLL y dependencias acá (si solo lo quieren probar, está es la mjor opción)
Instalable

Pueden descargar el binario desde acá (necesitan descargar y registrar las DLL de la librería dxlib32)
Binario

Código fuente (vb6) con sus asset en XCF
fuente

21Feb/120

armaduras

Una muestra de los distintos tipos de armaduras (túnica de mago, pesada y ligera respectivamente) y como modificaran la silueta en el menú de ítem, creados con paciencia y mi poca experiencia en gimp.
Aunque me gustaría modificar también los sprite de Gwen dentro del juego, eso será imposible sin un grafista que se quiera dedicar a eso.

Archivado en: Dhu Nun No hay comentarios
15Feb/120

Codear Futbol no convencional.

Nuevamente ha llegado otra entrega del conocido y clásico certamen de programación de videojuegos de la comunidad Argentina de Duval (Ex comunidad ADVA).

El tema de esta ocasión es el fútbol, pero tiene el añadido que debe ser un fútbol no convencional, lo cual permite hablar de todo tipo de variaciones, ya sea matar zombies con la pelota o combates a muerte para poder anotar.

La fecha limite para inscribir un proyecto jugable es el 10 de abril.

Reglas e inscripciones en Duval.

11Feb/120

Leer XML en NET

Aunque hace tiempo que no escribo por acá, Dhu nun sigue activo y avanzando, la meta es alcanzar la siguiente versión para la competencia de la comunidad libre loserjuegos la cual también se dedica a la programación de videjuegos y para mi grata sorpresa está principalmente orientada a Python, Así que espero ir agregando contenido nuevo sobre el proyecto.

Sin embargo, el día de hoy, quiero compartir algo que me sacó más de una cana en su momento, que es leer de forma simple un archivo XML usando net, algo que en teoría es bastante simple (efectivamente lo es) pero que tiene un par de trucos que pueden dar más de un dolor de cabeza y que siempre me hicieron preferir el viejo y confiable sistema de INI para mis proyectos. Sin embargo, esta nueva entrega de Dhu Nun vendrá con soporte para varios idiomas (soñar no cuesta mucho y si ya estoy trabajando como chino para sacar un juego, no viene mal transpirar extra para tener una versión en ingles) y necesito algo más avanzado que los INI para almacenar los diálogos.

La estructura que voy a usar dentro de Dhu Nun es la siguiente:



<?xml version="1.0" encoding="utf-8" ?>
<dialogos>
<Message id="0"><![CDATA[
Acá podemos agregar cualquier texto, incluyendo < > & ' y "
sin que se codifique.
]]>
</Message>
<Message id="1"><![CDATA[ Juego Nuevo ]]></Message>
<Message id="2"><![CDATA[ Cargar Juego ]]></Message>
<Message id="3"><![CDATA[ Grabar Juego ]]></Message>
<Message id="4"><![CDATA[ Salir ]]></Message>
</dialogos>


Como ven, la estructura es bastante simple, el elemento "dialogos" es el contenedor de todo, y dentro de él, cada mensaje o dialogo independiente es un elemento de nombre "Message", los diferencio por medio del atributo "id" y será la llave para identificar cada mensaje, cada idioma tiene su propio archivo XML.

El código para leer eso, es el siguiente:



Imports System.Xml
...
...
...
...
Using reader As XmlReader = XmlReader.Create(APP.PathRecursos.Diag & "sistema.xml")
.. While reader.Read()
.... If reader.IsStartElement() Then
...... If reader.Name = "Message" Then
........ attribute = reader("id")
........ If attribute IsNot Nothing Then
.......... ID = CInt(attribute)
........ End If
........ If reader.Read() Then
.......... Texto = reader.Value.Trim
........ End If
........ LstTextSistema.Add(ID, Texto)
...... End If
.... End If
.. End While
End Using


Analicemos el código paso a paso:

Lo primero es importar la referencia para trabajar con XML, esto se hace con
Imports System.Xml
Y debe estar al inicio del modulo o formulario (no la función) donde vamos a leer el documento XML

Using reader As XmlReader = XmlReader.Create(APP.PathRecursos.Diag & "sistema.xml")
Acá estamos indicando que vamos a crear un objeto de nombre "reader", el cual será usado para leer el archivo XML que abrimos con XmlReader.Create
App.PathRecursos.Diag es una variable del programa que señala la ruta donde están alojados los archivos de diálogos según sea el idioma seleccionado.

While reader.Read()
El bucle que va a recorrer todo el archivo XML, elemento por elemento, en mi caso, recorre el elemento "dialogos" y cada uno de los "Message".

If reader.Name = "Message" Then
En cada paso del bucle, el objeto "reader" toma el valor de un elemento del documento XML, con la propiedad "name" podemos saber a que elemento está apuntando, en este caso, aplico un condicional para saber si estoy leyendo los elementos "Message" pues son estos elementos los que contienen los mensajes y de esta forma dejo afuera el elemento "dialogos" que no es solo el contenedor o cualquier otro elemento que desee agregar a futuro.

attribute = reader("id")
No creo que sea necesaria mucha explicación, le estoy diciendo que me retorne el valor del atributo de nombre "id" del elemento al cual apunta actualmente el objeto "reader" (recuerden que el objeto reader cambia su valor en cada paso del bucle while).

If attribute IsNot Nothing Then
Corroboro que el atributo exista.
Algo importante, es que independiente de que tipo de dato sea el atributo, en el archivo XML el valor de un atributo siempre debe estar encerrado entre comillas "" y siempre será leído inicialmente como un string.

If reader.Read() Then
Texto = reader.Value.Trim
End If

Todo lo que se encuentra entre los tag de inicio y termino de un elemento en XML es el valor del mismo, para leer, es necesario ejecutar la función "Read" delobjeto "reader" (el obejto que use para asignar la lectura del XML), si "Read" devuelve un valor, entonces puedo recuperar el contenido o valor del elemento usando la propiedad "Value".
Si no usan "reader.Read", NET no va a leer el contenido del elemento y "reader.Value" estará vacío.
Si se dan cuenta, yo mato dos pájaros de un tiro, pues leo el valor y al mismo tiempo compruebo que exista un valor a rescatar.

Como ven, es una rutina bastante simple, un bucle que recorre cada elemento de mi XML y donde cada elemento es un dialogo completo que tiene un indice que es el que uso dentro del programa para saber que texto se debe mostrar.

Como último comentario, es que podrán notar que en cada elemento "Message" del XML, el valor lo encerré dentro de la etiqueta:
<![CDATA[Escribir acá texto]]>
Esta etiqueta es muy especial y sirve para que se ignore todo el contenido de los signos reservados para XML como son < o >, ya que en mis dialogos, yo uso esos mismos signos para definir variables y si no incluyera la etiqueta CDATA el interprete de XML de NET no sabría si el <> es parte del XML o si es parte del texto.

19Sep/110

Luces en Dx_Lib32

Luego de algunos meses que no he podido tocar los temas de Dhu nun o Feudo, debido en parte a trabajo y encontrarme programando un par de juegos para unos concursos, he decidido dedicarle algunos minutos a preparar algunas herramientas para ir avanzando con el desarrollo.

En este caso, consiste en un clase que permite crear efectos de luz, la clase compone la forma e intensidad de la luz en base a una imagen en escala de grises, y luego, permite modificar intensidad y color en tiempo de ejecución, de la misma forma que se puede modificar el tamaño y posición, aunque en el ejemplo del vídeo no hay movimiento, estas características van a permitir agregar un pequeño motor de partículas.

La segunda herramienta, consiste en una nueva clase para el control de animaciones, llamado MetaAnimación que traerá considerables mejoras a su predecesora, pero ya hablaré en detalle de ella cuando esté lista y funcionando con un nuevo y mejorado editor.

17May/110

Nueva imagen para Gwen

Luego de un mes desaparecido debido a problemas en el trabajo, finalmente tengo el tiempo para re-ordenar los proyectos personales, hay bastante que comentar, pero voy a iniciar con una nueva imagen para el proyecto de Dhu Nun, gracias a Ezquiel con quien estoy trabajando en su proyecto Hayaku y quien me ha ayudado con nuevos diseños para Gwen

Además y luego de las criticas y observaciones a la versión demo, el juego tendrá nuevas directivas, de partida.

* Ahora el enfoque será que la interfaz principal sea Teclado + ratón en vez de ser un gamepad.

* Mejorar el apartado de acción.

* Generar un fuerte contexto de exploración.

* Mejorar al máximo las animaciones.

Con todo esto en mente, y teniendo a Feudo como proyecto principal (y trabajando en Hayaku) lo más probable es que Dhu nun vea la luz hacia finales de año, pero espero que la espera valga la pena.

Archivado en: Dhu Nun No hay comentarios
11Mar/110

Beta/Demo del primer nivel

Tal cual. Finalmente puedo publicar un demo jugable, corresponde al primer nivel y aunque aún es beta tiene casi todos los elementos finales para comenzar a jugar.

La base de programación o el motor del juego, está terminado, falta pulirlo y agregarle una que otra cosa que de seguro voy a querer agregarle, lo que falta es volcar el resto del diseño en el juego y programar algunos editores para ayudarme en la tarea, sin embargo, debido al casi nulo interés por el juego y a otros proyectos que a en estás fechas ya debería haber partido, Rescate en Dhu Nun quedara en segundo plano en mi agenda, así que es posible que tarde en crear los editores y agregar nuevos niveles, pero de que lo haré, lo haré, ya he invertido bastante en este proyecto y quiero verlo terminado, aunque el único que lo termine jugando sea yo.

Requisitos:
El juego no pide mucho hardware y lo diseñe para que corriera a la modesta tasa de 30 FPS, está pensado para correr desde un netbook actual, el equipo de prueba era un HP mini, CPU Atom 270, 1 GB de RAM y una intel integrada, pero en está última versión no he podido comprobar que siga corriendo bien en esa máquina, pero debería, así que voy a asumir esas características como el hardware mínimo.

En la parte de software, el juego requiere el framework NET 3.5, la mayoría de los windows ya lo tendrán instalado por defecto, si no, lo pueden descargar completo de acá (260 MB)
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=d0e5dea7-ac26-4ad7-b68c-fe5076bba986&displaylang=en

Además, se requiere las DLL de la librería gráfica, Dxlib32
http://dxlib32.se32.com/

Pero antes que comiencen a hacer clic a cada enlace, el juego lo entrego en un instalable que ya trae la librería gráfica y el instalador del NET 3.5 vía internet. Con el instalador del juego les debería bastar, si no, por favor, quedaré muy agradecido me avisen.

Eso sería todo lo referente a requerimientos, tarjeta de vídeo con soporte para DirectX 9, NET 3.5 y Dxlib32.

Juego
Junto con el juego viene un programa llamado config, el cual permite gestionar todas las opciones de configuración, como cambiar la resolución, pantalla completa, apagar el modo debug, etc. Por defecto ,el juego corre en modo ventana a 1024*600, aunque esa resolución es cómoda no es compatible con un modo de pantalla completa, si quieren correr el juego a pantalla completa, usen el programa config en vez de cambiar a mano la resolución, ya que el programa tiene un modo de comprobación que les dice que resoluciones son admitidas por su tarjeta de video.

De momento, el único idioma soportado es español, aunque el juego está pensado para ser traducido al ingles, dudo mucho que lo haga, aunque nunca se sabe.

Por defecto el juego va a correr en modo DEBUG, mostrando una serie de información que me es útil para ver que todo funcione bien, pero que no es muy comoda para jugar, si corren el programa config y se van a la pestaña "juego" podrán apagar el modo debug.

Descarga
El instalador del juego lo pueden bajar de acá (21 MB):
setupDhuNun.exe

Para aquellos que no quieren descargarlo, dejo un vídeo del juego, por desgracia ya no tengo linux (Me mude hace poco y cambie mi PC) así que tuve que hacer el vídeo con windows movie maker, así que el resultado no fue nada bueno, se desfaso el audio, etc. De momento es lo que hay, pero el fin de semana con más tiempo y paciencia tratare de hacer otro vídeo más decente que muestre el juego, aunque preferia que lo descargaran y me dieran sus opiniones, a final de cuenta, sus comentarios son mi sueldo.

[youtube]http://www.youtube.com/watch?v=AIIfh09skbs[/youtube]

Por último, dar las gracias a todos los que me ayudaron, de forma directa o indirecta. Junto al juego viene su respectivo manual en PDF, al final del cual he agregado un pequeño agradecimiento a quienes con sus recursos o de forma directa aportaron en esta creación.

Gracias por jugar.

Archivado en: Dhu Nun No hay comentarios
9Mar/110

A un paso del Beta Demo…

Hace días que estoy puliendo detalles para poder entregar luego una beta jugable del primer nivel.
Bastante trabajo me ha significado preparar esta Beta/Demo, incluyendo un manual. Pero de momento no he aguantado de colgar una imagen del menú de skill que tendrá el juego.

Aunque en la practica aún no implemento ni el 50% de los hechizos, la gran mayoría se implementan sin mucho código nuevo (ya que es cosa de modificar un par de parámetros de las clases que ya están creadas). Es poco probable que en está demo se vean muchas skill, ya que sólo cubre el primer nivel, pero si se podrán probar una o dos magias.

Sin más, les dejo la captura del menú de skill:

Menú de habilidades

Captura del menú de habilidades

Archivado en: Dhu Nun No hay comentarios
19Feb/112

Pantalla de Carga

Aunque he seguido avanzando en la programación del juego y puliendo detalles, no había tenido mucho que mostrar, pero hoy decidí trabajar con los pinceles de Gimp para crear algunas pantallas que son necesarias, como la pantalla de carga.

Para mi 0 talento artístico, creo que me ha quedado bien, aunque como dicen por ahí, no hay hijo feo a los ojos de sus padres
Fondo para Carga del juego

Archivado en: Dhu Nun 2 Comentarios
FireStats icon Con la potencia de FireStats