miércoles, 11 de diciembre de 2013

Segundo Proyecto: Creación de los componentes

En esta entrada vamos a ver como crear los elementos que compondrán las distintas partes del juego. En esta ocasión he juntado tres patrones de diseño en una sola clase. Estos son un singleton, una factoría y un builder.

miércoles, 4 de diciembre de 2013

Segundo Proyecto: Data–View-Control En GEL

Siguiendo con la creación de un motor que nos sirva para los siguientes proyectos, voy a definir los elementos básicos del patrón modelo vista controlador a través de tres clases bases que se comunican mediante mensajes.

martes, 29 de octubre de 2013

Segundo Proyecto: GEL (Game Engine Library)

Nuestro Motor de juegos se va a llamar GEL, es esta librería se pondrán todos los sistemas que sean necesarios para crear juegos. Luego nuestros proyectos crearan las piezas necesarias para que el juego en particular funcione.

viernes, 20 de septiembre de 2013

Segundo Proyecto: Diseñando el motor

En esta entrada vamos a plantear un poco como vamos a solventar la creación del motor para este proyecto. Podría hacer lo mismo que el anterior, es decir no hacer un motor de juegos sino crear un juego de forma que no sea reutilizable, pero es poco practico, así que mi intención es ir creando las piezas que hagan un motor de juegos 2D que nos permita crear más juegos rápidamente.

jueves, 29 de agosto de 2013

Segundo Proyecto: Creando los placeholder

Vamos a ver y utilizar la herramienta que he creado para la creación de los placeholder de nuestro juego, que servirá para cualquier juego. Como os explique en esta entrada se trata de una hoja de calculo de openoffice con una macro que ha partir del rellenado de unas celdas se obtienen los archivos de inkscape para empezar a trabajar.

jueves, 22 de agosto de 2013

Vuelta de Vacaciones: Pequeños Cambios

Bueno, durante las pequeñas vacaciones alejado de este blog, he estado reconsiderando algunos aspectos de como se esta desarrollando este proyecto y he decidido hacer algunos cambios, así como reenfocar mi planteamiento de el segundo proyecto, el shooter vertical.

viernes, 19 de julio de 2013

Segundo Proyecto: Manejando los recursos

Tras acabar de implementar todos los estados y comprobar que todo el flujo del programa está correctamente programado, es hora de empezar a cargar cosas del disco o, lo que es lo mismo, manjar los recursos.

martes, 11 de junio de 2013

Segundo Proyecto: Programando los Estados del Juego

Voy a ver si aceleramos las cosas que empiezo a meter demasiada prosa en este proyecto. En esta entrada voy a programar por encima todos los estados del juego y a mostrar como se hace con la librería que empezamos en la entrada anterior.

viernes, 24 de mayo de 2013

Segundo Proyecto: Creando La Maquina de Estados del Juego

Como primer hito de la programación de este proyecto vamos a crear un nuevo proyecto de VS2010 y ha empezar por crear una maquina de estados para el juego. La maquina de estados del juego es un poco diferente a la maquina de estados de un objeto normal.

jueves, 9 de mayo de 2013

Segundo Proyecto: Librería Interna

Para la programación de este proyecto voy a crear una serie de librerías internas en donde podremos nuestro código que sea reutilizable. Una serie de clases y funciones que amplíen las funcionalidades de SFML 2.0 y también nos ayuden a encajar las librerías de TMXParser y Box2d con SFML 2.0 o lo que es lo mismo un motor de juegos.

lunes, 8 de abril de 2013

Segundo Proyecto: Diseño de Gráficos y Pasos de Creación

Siguiendo la entrada anterior sobre los placeholders vamos a definir los tamaños, nombre y localización de los gráficos que vamos a usar para nuestro shooter. También os voy a introducir un par de “herramientas” que he programado esta semana y que denominaremos el pipeline de gráficos para nuestros proyectos.

miércoles, 27 de marzo de 2013

Segundo Proyecto: Placeholder y Inkscape

En esta entrada voy a introducir una herramienta para la creación de los gráficos de nuestro segundo proyecto. Se trata de Inkscape, una herramienta libre de dibujo vectorial. Con esta herramienta crearemos la base de lo que luego será nuestros gráficos en el juego.

miércoles, 20 de marzo de 2013

Segundo Proyecto: Introducción

Vamos a definir un segundo proyecto que nos servirá para ir perfilando nuestro motor de juegos. El objetivo que tengo es ir añadiendo clases a SFML 2.0 para ir completando la librería, de forma que al final tengamos un conjunto de herramientas que nos permitan hacer juegos con facilidad.
El segundo juegos que haremos será un shooter vertical, me inspirare en el juego RAPTOR de Apogee. En resumen será un juego en el controlas una nave y tienes que dispara a todo lo que se mueva, esquivar las balas enemigas y recolectar puntos. Al final de cada nivel habrá un jefe final.

lunes, 11 de marzo de 2013

Producción de Proyectos: Quick And Dirty Prototype (QDP)

En esta entrada voy a introducir un sistema de producción de proyectos que vi en Gamasutra por Paraluman Cruz, y que utiliza un pequeño estudio asiático llamado Boomzap Entertainment. Es un método de producción que sirve muy bien a nuestros propósitos pues su objetivo es tener lo mas rápido posible un prototipo jugable, de forma que podemos por una parte trabajar sobre el código mientras por otra parte también podemos crear los gráficos de forma casi independiente.

martes, 5 de marzo de 2013

Las Matemáticas Que Todo Programador Debe Conocer.

En esta entrada de hoy, vamos a repasar las matemáticas básicas que como programadores de videojuegos en 2D tendríamos que conocer. Este será el primero de una serie de entradas que iré escribiendo de vez en cuando para agrupar y explicas las funciones matemáticas y físicas que se van usando a lo largo de los proyectos que iremos realizando. Además crearemos las clases complementarias que añadan funcionalidad útil a SFML 2.0 si fuera necesario.

martes, 26 de febrero de 2013

El Primer Juego En SFML 2.0 (V): Explosiones, HUD y Estados de Juego

Este será la ultima entrada de esta serie, en la cual hemos hecho un juego en SFML 2.0, en la anterior entrada ya teníamos el núcleo del juego, tenemos una nave que podemos controlar, una serie de objetivos a los que disparar. En esta ocasión haremos que sea un poco mas vistoso añadiendo unas explosiones cuando destruyas asteroides y cuando choque la nave, además añadiremos los toques finales para que se parezca mas a un juego y menos a un experimento.

martes, 19 de febrero de 2013

El primer juego en SFML 2.0 (IV): Colisiones

En la anterior entrada casi terminamos nuestro primer juego. Hasta ahora tenemos una nave que se mueve con los cursores y dispara con el espacio, tenemos también las balas y las “rocas” circulares que se mueven por ahí. Pero no hay colisiones por lo que resulta un poco aburrido. Hoy vamos a programar las colisiones, de forma que podamos limpiar nuestra pantalla de esas rocas molestas.

martes, 12 de febrero de 2013

El primer juego en SFML 2.0 (III): Disparos & Asteroides

En la anterior entrada, programamos la nave espacial usando las herramientas de dibujo que nos proporciona SFML2, así no tuvimos que usar ningún gráfico. En está tercera parte  vamos a programar los disparos de la nave. Al pulsar la tecla espacio las bala saldrán desde el vértice delantero de la nave. También crearemos los asteroides, estos serán círculos para simplificar posterior mente las colisiones.

jueves, 7 de febrero de 2013

El primer juego en SFML 2.0 (II): ASTEROID con SFML 2

En la anterior entrada configuramos un proyecto modelo que nos ayudara a iniciar rápidamente un nuevo juego sin tener que hacer las repetitivas configuraciones del compilador, en este caso Visual Studio 2010. Ahora usaremos este proyecto template y crearemos nuestro primer juego, el asteroides, un juego sencillo en gráficos y diseño y ampliamente conocido por todos como para poder ponernos manos a la obra inmediatamente.


El primer juego en SFML 2.0 (I): Configurando el Proyecto

Bueno, después de unos días titubeantes, con mucha información teórica, os voy a mostrar como hacer nuestro primer juego con SFML. El objetivo son, por una parte aprender a configurar un proyecto C/C++ en Visual Studio 2010 (Visual Studio 2012 es igual ), también aprenderemos lo básico para crear una aplicación en SFML 2, como se inicia una ventana, como se dibuja, etc.

Con respecto a la programación de videojuegos, veremos como es el flujo de un juego, y cuales son las características básicas de todo juego, desde el mas complicado hasta el mas sencillo. También tendremos una base con la que ir introduciendo nuevos conceptos de SFML y posteriormente de Box2d, etc..

jueves, 31 de enero de 2013

Como se desarrolla un videojuego

Hoy vamos a ver como se desarrollan los pasos para crear un videojuego tanto en la empresa como en el ámbito personal. El establecimiento de una lista de tareas a seguir a la hora de crear una nueva aplicación o juego no ayudara a no quedarnos atascados y conseguir nuestro objetivo.

En el ámbito personal esto es mas importante aun, ya que sin la presión de un jefe o compañero que te empuje a continuar y resolver los problemas rápidamente, te puedes quedar atrapado en una tarea demasiado tiempo y llegar al desanimo y a abandonar totalmente el proyecto.

miércoles, 30 de enero de 2013

Las 3 Librerías para programar videojuegos (II): Box2d & TMX-Parser

En la anterior entrada hable sobre las tres librerías fundamentales que nos ayudaran a programar un motor de juegos con el que hacer nuestros proyectos. Hable de SFML 2.0, la piedra angular de nuestro sistema. Hoy le echaremos un vistazo a las otras dos librerías que vamos a utilizar.

Para realizar colisiones entre objetos y controlarlos vamos a utilizar un motor de físicas 2D como es Box2D (existen otros como Chipmunk, es cuestión de gustos ). Para realizar nuestros proyectos conviene tener un editor de niveles, y Tiled es de los mejores, pero necesitamos saber interpretar su sistema de guardado de niveles, y ahí entra TMX-Parser.

lunes, 28 de enero de 2013

Las 3 Librerías para programar videojuegos ( I ): SFML 2.0

Tres son las librerías principales que usaremos para programar videojuegos. Estas tres librería cubrirán todos los aspectos de programación que necesitemos para crear desde un juegos ASCII hasta un juegos 3d con conexión a red.

Las librerías son:

SFML 2.0 como núcleo principal, de la que hablaremos a continuación en este post,
Box2D como sistema de colisiones y de simulación física
TMXParser como librería para leer los archivos de Tiled.

viernes, 25 de enero de 2013

La mejor forma de no perder nada: Control de versiones

Estas revisando tu código un día, para limpiar y eliminar los archivos que ya no necesitas. Borras archivos, eliminas algunas funciones que no usas, y te deshaces de las viejas funciones que ya no necesitas. Ah! Perfecto! Todo ha quedado muy bonito y limpio, Estas satisfecho.

Algunas semanas después inicias un nuevo proyecto, empiezas a trabajar y como buen programador empiezas a reutilizar el código de tus anteriores trabajos. De repente te acuerdas de una función que hiciste hace tiempo y que parece que necesitaras, pero, oh! no!, la borraste por que creíste que no la utilizarías. En fin tendrás que volver a rehacerla, tiempo perdido, pero…

jueves, 24 de enero de 2013

Como programar y no morir en el intento: Organizándonos

A lo largo de este blog nos iremos descargando librerías y herramientas, también crearemos nuestras propias librerías, y nuestras propias herramientas de trabajo, además crearemos programas de testeo, y juegos que nos ayudaran a avanzar en nuestras destrezas como creadores de videojuegos. Luego están los sonidos, los dibujos, etc. Un autentico ejercito de archivos que puede vencernos antes incluso de empezar.

Pues como decía Julio Cesar: “Divide y vencerás”, en nuestro caso, organízate y serás productivo. Os voy a enseñar como organizo mis archivos en el disco duro de mi ordenador. Esto no quiere decir que sea la mejor ni la única forma de organizar el trabajo, pero es la que me sirve para no volverme loco cada vez que hecho un vistazo a mi disco duro.

miércoles, 23 de enero de 2013

Las 3 Herramientas fundamentales para hacer videojuegos

Para hacer juegos, tal y como lo plantemos aquí necesitaremos tres herramientas fundamentales.
Un compilador, en este caso que use el lenguaje C/C++, Un editor gráfico que nos permita crear el contenido visual de nuestro juego, y por ultimo una herramienta que nos permita fácilmente definir los niveles de los que se compone nuestros juegos.

Estas no son todas las herramientas necesarias, pero si las fundamentales que tienes que tener instaladas si quieres seguir este blog, en sucesivas entregas se irán introduciendo nuevas herramientas, e incluso crearemos unas cuantas que se adapten a nuestras necesidades.

lunes, 21 de enero de 2013

Inicio

Introducción

Mi intención en este blog es la de crear un diario/tutorial de como desarrollo mis videojuegos. Desde la programación, pasando por el arte y el sonido.

El desarrollo de videojuegos en solitario tiene como principal objetivo el auto aprendizaje y el desarrollo de las propias capacidades creativas. Sin embargo a la hora de trabajar en la industria, tendrás que trabajar con compañeros, directores y jefes, con lo cual no se debe considerar el desarrollo en solitario como el modo optimo de trabajar en videojuegos.

Sobre Mi

Nací en Madrid haya por el 1976.
Mi primer contacto con los ordenadores fue a los 8 años cuando mi hermano “convenció” a mis padres para compras un ordenador que le “ayudaría” (Guiño) a estudiar en el instituto. Así entro en mi casa un AMSTRAD PC 1512, un cacharrazo enorme con una pantalla de 4 colores ( wau ).

Mis primeros videojuegos fuero Game Over y Phantis (venían con el ordenador de “regalo” ) después vinieron otros (copiados).

Mi inicio a la programación fue en GWBasic, un interprete de BASIC, con el cual se hacían mas bien juegos en ASCII, aunque si intentabas poner más de tres cosas moviéndose en pantalla todo el juego se ralentizaba.