Feudo
3Oct/100

Algo sobre la lógica.

Normalmente lo que vemos en un juego, es su interfaz gráfica, pero detrás de los llamativos colores y formas que dan calidad a un juego, existe miles de lineas de código que dan vida a los personajes y al mundo y lo dotan de interactividad.
Para que un juego cumpla su propósito es necesario que estás líneas de código cumplan cierta lógica. Por ejemplo, un Come-cocos tiene un laberinto con paredes, un personaje y enemigos. Los enemigos persiguen al personaje y el personaje corre por el laberinto comiendo todo objeto que encuentre a su paso (salvo a los enemigos).
come-cocos clásico

Para materializar esa idea en un juego, es necesario contar con algunos gráficos (en algunos casos, hasta las letras no pueden servir, pero a final de cuentas, la "A" es una imagen que representa algo, así que sigue siendo un gráfico), y ponernos a escribir cientos de líneas de código. Pero además, es muy importante generar una buena documentación, tanto previa como posterior. Normalmente a éste último punto no se le suele dar mucha importancia (Y especialmente cuando hablamos de proyectos de ocio, como éste) y eso genera algunos graves problemas, por ejemplo, es muy complicado retomar una programa hecho hace meses si no tenemos una buena documentación, es necesario gastar mucho tiempo comprendiendo que hicimos la primera vez. Otra limitación, es que reduce la capacidad de escabilidad y reutilización del código, pues aunque tenemos algo que funciona, muchas veces el código es tan enredado que el sólo hecho de pensar en una cambio ya hace que nos duela la cabeza.

Con Feudo voy a tratar (digo tratar, porque soy consciente de mi propia naturaleza humana) de llevar un orden que me permita tener un código limpio, fácil de escalar y reutilizar, así que voy a partir exponiendo como está y como espero que se mantenga la estructura del juego.

Loop principal

El juego tiene un loop principal que se repite 30 veces por segundo (el control del tiempo lo obtengo de la librería Dx_lib32) y el proceso principal se divide en actualizar los input (mantener sincronizado el teclado por ejemplo), una parte de lógica que determina los cambios entre las entidades que tenga el programa (más adelante hablare de como tengo estructurado esto), éste proceso determinar si un objeto debe pasar a la lista de dibujo o si debe salir (por ejemplo, un trabajador que salga del área de la pantalla). Un rutina que actualiza los gráficos, pasando las instrucciones de dibujo a la librería gráfica (dx_lib32, que es la encargada de colocar los pixel en la pantalla). Una rutina que dibuja y controla los menús (es muy similar en concepto a un control de ventanas) y luego le pasamos el token a la función principal de la librería que se encarga de refrescar la pantalla y contar el tiempo para volver a llamar a la función principal para poder tener una tasa constante de 30 ciclos de juego por segundo.

Hasta el momento, ésta estructura me ha servido para otros proyectos y espero que me sea igual de útil en éste. Si alguien conoce otros modelos o conoce métodos mejores para controlar la lógica me encantaría escuchar sus opiniones.

Hasta la próxima.

Archivado en: Feudo No hay comentarios
1Oct/100

Feudo

Feudo es un proyecto que surge como reto personal, la idea es lograr crear un juego de estrategia usando el lenguaje Visual Basic Net.

Durante varios meses he creado varias herramientas para la librería Dxlib32, que actualmente son la base de este proyecto. Feudo, es una mezcla entre la administración de un castillo (basado un poco en los libros de AD&D) y los clásicos juegos RPG para SNES, centrado en la administración de los recursos humanos, cada personaje dentro del juego tiene estadísticas únicas y será decisión del jugador, determinar que papel debe cumplir dentro de la sociedad.

Archivado en: Feudo No hay comentarios
1Oct/100

Inicio de proyecto

Aunque éste proyecto es sólo parte de un hobby personal, espero que pueda llegar a buen puerto. Es directamente el mayor proyecto (hablando de programación de videojuegos) que emprendo.

En si, el proyecto ya lleva varios meses de desarrollo previo y se puede encontrar en el foro de la comunidad de stratos, pero es recién ahora que tengo material para mostrar que lanzo oficialmente el proyecto para algún seguir noctambulo que desee compartir los mismo intereses (El aprendizaje en el campo de la programación de videojuegos).

Archivado en: Feudo No hay comentarios
FireStats icon Con la potencia de FireStats