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.

Hay dos niveles básicos de organización en mi sistema.

Directorio de trabajo

 

Dentro de mi disco duro tengo un directorio exclusivamente para todo mi trabajo. Hay tengo tanto el código, como las utilidades que no requieren instalación y los gráficos, sonidos y assets en general que requieren los juegos. La ventaja de tener un único directorio para todo es que no tienes que recordar en que carpeta esta dentro de la marabunta de carpetas de Windows.

Esta carpeta hay una carpeta de librerías externas (ExternalLib), aquí pongo todos los proyectos que necesito de otras personas y que normalmente, o no tendré el código, o no necesitare tocar el código, a menos que encuentre un error o tenga que añadir alguna funcionalidad muy importante.

Otra carpeta es la de Herramientas (Tools), es donde pongo todas las utilidades auxiliares que voy necesitando y encuentro por internet, a ser posible gratuitas. A esta carpeta solo tengo que acudir cuando necesito usar alguna de esas utilidades.

Organizacion

Tengo cinco carpetas para lo que seria mis cosas. Tengo una Librería Interna (InternalLib) en donde pongo todas las librerías que programo, tengo otra Código de mis herramientas (MyTools_Code) donde pongo los proyectos para crear mis herramientas internas, También tengo otra carpeta de Código de mis juegos (MyGames_Code), donde pongo el código de mis juegos.

Cuando he acabado un juego o una utilidad, la versión release de la herramienta o el juego las paso a una carpeta (MyGames para juegos, y MyTools para utilidades ) desde donde tengo las aplicaciones limpias de archivos innecesarios para poder compartirlas y usarlas fácilmente.

Proyectos de desarrollo

 

Otro nivel de organización es el proyecto individual, es decir como vamos a organizar los distintos archivos que componen una utilidad o un juego.

organizacion2

El proyecto estará formado por un archivo de proyecto, una archivo que le dirá al compilador las características del proyecto y que archivos necesita y donde están localizados. Este archivo y todos los relacionados con el compilador los coloco en una carpeta llamada Build, en esta puede.

Los archivos de cabecera (.h o .hpp ) los meto en la carpeta include y los archivo de código los meto en source. de esta forma están bien localizados, si fuera necesario también crearía subcarpetas para organizar mejor las distintas partes del proyecto.

Los archivos intermedios (.obj) que se generan durante la compilación, pero que una vez terminada la compilación no sirven para nada lo coloco en la carpeta obj, así cuando termine el proyecto los puedo borrar fácilmente.

Si lo que quiero crear es una librería, el resultado final lo mando construir en Lib. Si lo que quiero es crear un programa ejecutable, el resultado final lo mando crear en bin, Además según .sea la versión debug le añado una _d al final del nombre del proyecto para distinguirlos.

En una siguiente entrada hablaremos del control de versiones, para que no solo tengamos el proyecto controlado en el espacio, sino también en el tiempo, y no perdamos nada por el camino.

Hasta pronto, y gracias por vuestra atención.

No hay comentarios: