miércoles, 16 de abril de 2014

En el principio no gabía nada...

Hoy voy a comentar lo que llevo hecho de DivCity hasta el momento. Lo primero que tenemos es un repositorio Git el código y los recursos. El código depende de Ogre, CEGUI, OIS, Boost, PortAudio, libogg y libvorbis y está hecho en C++. Actualmente el código está dividido en varias secciones:
  • config - Configuración en tiempo de ejecución
  • Audio - Temas relacionados con el audio
  • sqlite3 - La base de datos SQlite 3 tal cual, para su uso por otros módulos
  • Buildings - Los edificios del juego y sus propiedades
  • Calc - Operaciones y fórmulas definidas, así como números pseudo-aleatorios y en general, cuentas separadas
  • DivCity - El módulo principal de display y lógica
  • HTTP - Un pequeño módulo para descargar archivos via HTTP
  • People - Se supone que el módulo para los habitantes y el tráfico, pero no lo tengo muy bien definido
  • Save - Módulo para cargar y guardar partidas usando el formato de bases de datos SQlite 3
  • Main - Punto de entrada
Actualmente el juego lee un fichero de configuración divcity.cfg y de allí decide si iniciar el audio en un thread y si se inicia el módulo DivCity en otro thread. En Audio se leen los ficheros Ogg Vorbis y se reproducen, en DivCity se arranca el sistema gráfico, primero Ogre, después CEGUI y más tarde se configura el sistema de entrada con OIS. A la vez se crea una instancia de World, concretamente NewWorld. Un World es un conjunto de Cells con propiedades exclusivas. Las Cells las implementamos en Buildings como edificios y poco más. Actualmente, si arrancamos podemos ver eso. Para el siguiente artículo me gustaría mejorar el sistema de Cells y de World. Debo decir que ya tengo un edificio de prueba llamado Génesis (el origen, el inicio, etc) que hereda Cells.

Bienvenidos a Construyendo DivCity

Os doy la bienvenida a Construyendo DivCity. DivCity es un proyecto personal que tengo de construir un simulador de ciudades al estilo SimCity añadiendo a DivCity lo mejor de cada entrega. Sé que va a ser difícil, por eso he creado este blog, para así poder ir viendo mis avances poquito a poco. Espero que el producto final merezca la pena.