Compilación del juego en LiNUX (Versión 1.0.0 - FINAL)

Versiones preliminares del juego.

Compilación del juego en LiNUX (Versión 1.0.0 - FINAL)

Notapor Jorge » Vie Ene 02, 2009 02:55

Lo primero que hay que hacer es descargar el código fuente: headoverheels-1.0.0.tar.bz2

MD5SUM: 562c25b7d2d5e630e28eeb65341b06be

Lo siguiente es instalar (si no lo están ya) las dependencias del juego. Asumo que el sistema Linux está preparado para construir aplicaciones C++. También que tiene un gestor de paquetes, por lo que cito aquellos necesarios. Si el gestor detecta que para la instalación de alguno de ellos hay que instalar otros paquetes, aceptaremos, como de costumbre.

  • allegro-devel = 4.2.2; sólo funcionará con esta versión que es la última versión estable.
  • libxerces-c-devel >= 2.5.0 y < 3.0.0; recomiendo la versión 2.7.0 ó 2.8.0.
  • libvorbis-devel >= 1.2.0
  • libogg-devel >= 1.1.3

Partiendo del directorio en el que tenemos el archivo comprimido, ejecutamos lo siguiente:
Código: Seleccionar todo
$ tar jxvf headoverheels-src-1.0.0.tar.bz2
$ cd headoverheels-1.0.0
$ ./configure
$ make
$ make install (como usuario 'root')


Si todo ha ido bien, el juego se instalará en /usr/local. Dentro de /usr/local/bin se encuentra el ejecutable. Puede cambiarse la ubicación indicándosela a configure, por ejemplo:
Código: Seleccionar todo
$ ./configure --prefix=/usr/local/games

Los archivos de configuración se instalarán en ~/.headoverheels
Dentro de /usr/local/share/headoverheels están todos los archivos de datos y el icono del juego en formato PNG.
Adjuntos
kk.png
kk.png (79.46 KiB) Visto 7582 veces
Última edición por Jorge el Dom May 03, 2009 14:30, editado 3 veces en total
Razón: Actualización de intrucciones para la versión final
Avatar de Usuario
Jorge
Administrador
Administrador
 
Mensajes: 1563
Registrado: Vie Ago 10, 2007 17:30
Ubicación: Valdepeñas

Re: Compilación del juego en LiNUX

Notapor Bergil » Vie Ene 02, 2009 03:03

Protesto, esto es una conjura para que no pueda decir nada en este hilo... :mrgreen:
Ahiva, si lo he dicho... :meparto:
Nada, nada, me callo... :oops:
Avatar de Usuario
Bergil
Moderador
Moderador
 
Mensajes: 2116
Registrado: Vie Ago 10, 2007 20:14
Ubicación: Madrid, Villa y Corte

Re: Compilación del juego en LiNUX

Notapor linutux » Vie Ene 02, 2009 13:58

EL JUEGO FUNCIONA :aplauso: :aplauso: :aplauso: :aplauso: :aplauso:

No me da ningun fallo al compilarlo

Me deja instalarlo, pero al intentar ejecutarlo me sale el siguiente error:

headoverheels: GuiManager.cpp:44: gui::GuiManager::GuiManager(): Assertion `bitmap' failed.
Shutting down Allegro due to signal #6
Abortado

Me imagino que es el mismo que te sale a ti.
Avatar de Usuario
linutux
Héroe
Héroe
 
Mensajes: 331
Registrado: Mié Ago 15, 2007 23:47

Re: Compilación del juego en LiNUX

Notapor Jorge » Vie Ene 02, 2009 14:36

Da ese error porque no encuentra los gráficos.

El problema es que para seguir la estructura fijada por GNU para distribuir aplicaciones (uso de autoconf y automake) debe haber presentes varios directorios obligatoriamente (bin, share, doc ,man y lib), además de varios archivos (NEWS, README, ChangeLog, etc). Ahora mismo el juego no está preparado para seguir esa estructura. Además, sólo puede ejecutarse desde la carpeta del usuario porque se necesitan permisos de escritura para el archivo configuration.xml y el directorio savegame.

Lo suyo es que una vez instalado quedase así:

Código: Seleccionar todo
/usr/local/bin/
                headoverheels

/usr/local/share/
                headoverheels/
                                gfx/
                                map/
                                music/
                                sound/
                                text/
                                items.xml
                                items.xsd
                                sounds.xml
                                sounds.xsd

/home/linutux/
                .headoverheels/
                                savegave/
                                configuration.xml
                                configuration.xsd

Es algo que tengo pendiente. Pero bueno, lo importante es que te ha funcionado. :boing: Tú ya puedes dar fe de que el juego no son cuatro archivos con seis líneas de código cada uno. :D
Avatar de Usuario
Jorge
Administrador
Administrador
 
Mensajes: 1563
Registrado: Vie Ago 10, 2007 17:30
Ubicación: Valdepeñas

Re: Compilación del juego en LiNUX

Notapor Bergil » Vie Ene 02, 2009 14:50

No, si yo ya pensaba que no había ni tantos archivos ni tantas líneas de código... :meparto:
Avatar de Usuario
Bergil
Moderador
Moderador
 
Mensajes: 2116
Registrado: Vie Ago 10, 2007 20:14
Ubicación: Madrid, Villa y Corte

Re: Compilación del juego en LiNUX

Notapor linutux » Vie Ene 02, 2009 15:15

Para probar las betas no hace falta que se instale en el sistema. Eso dejalo para la versión final.
Avatar de Usuario
linutux
Héroe
Héroe
 
Mensajes: 331
Registrado: Mié Ago 15, 2007 23:47

Re: Compilación del juego en LiNUX

Notapor linutux » Vie Ene 02, 2009 15:21

De cuatro lineas nada. He estado echandole un vistazo por encima y solo puedo decir una cosa :babas:

Tengo ganas de ver la documentación de como está echo. Por lo que veo has utilizado los ficheros XML para definir todo lo relativo a especificación, salas, sonidos, etc... en vez de meterlo dentro del codigo. Esto me ha gustado porque por un lado te será más sencillo modificarlo y por otro no tocas nada de codigo, pero ¿no ralentiza el tener que leer los ficheros en vez de que esten dentro del codigo?.
Avatar de Usuario
linutux
Héroe
Héroe
 
Mensajes: 331
Registrado: Mié Ago 15, 2007 23:47

Re: Compilación del juego en LiNUX

Notapor Jorge » Vie Ene 02, 2009 17:29

Todos los archivos a excepción de los archivos de las salas se leen al cargar la aplicación. Por tanto, la cosa no va más lenta, pero sí ocupa más memoria que empotrando los datos en el código. De todas maneras estamos hablando de que el juego necesita menos de 64 MB para funcionar por lo que me lo puedo permitir. :mrgreen:

Si os fijáis cada vez que entráis a una sala nueva se lee del disco. Esto si puede ralentizar el cambio de salas. Casi hubiese preferido leer todos los datos al principio, pero al final ha quedado así. :roll:
Avatar de Usuario
Jorge
Administrador
Administrador
 
Mensajes: 1563
Registrado: Vie Ago 10, 2007 17:30
Ubicación: Valdepeñas

Re: Compilación del juego en LiNUX

Notapor Bergil » Vie Ene 02, 2009 19:38

Va bene...
Avatar de Usuario
Bergil
Moderador
Moderador
 
Mensajes: 2116
Registrado: Vie Ago 10, 2007 20:14
Ubicación: Madrid, Villa y Corte

Re: Compilación del juego en LiNUX

Notapor linutux » Vie Ene 02, 2009 22:27

El problema de cargar los datos de todas las salas al principio es que entonces el juego ocuparia demasiada memoria.
Avatar de Usuario
linutux
Héroe
Héroe
 
Mensajes: 331
Registrado: Mié Ago 15, 2007 23:47

Re: Compilación del juego en LiNUX

Notapor Bergil » Sab Ene 03, 2009 03:21

Ah... :shock:
Avatar de Usuario
Bergil
Moderador
Moderador
 
Mensajes: 2116
Registrado: Vie Ago 10, 2007 20:14
Ubicación: Madrid, Villa y Corte

Re: Compilación del juego en LiNUX

Notapor Jorge » Sab Ene 03, 2009 07:24

No creas que se dispararía el número de megas necesarios. Al menos es lo que creo. Si le echáis un vistazo a un archivo de sala lo único que tiene son referencias a elementos, no los elementos en sí. A ver si un día os cuento cómo está estructurada la aplicación, pero vaya por delante esto:

En el archivo de la sala nº 1 (donde aparece Head, la sala de Heels es la nº 23) aparte de las losetas, las paredes y la puerta hay estructuras de datos como esta:

Código: Seleccionar todo
<item x="0" y="0" z="0">
      <label>35</label>
      <direction>none</direction>
      <behavior>23</behavior>
      <type>griditem</type>
</item>


Este registro dice todo esto:
  1. Hay un elemento situado en la celda (0,0,0) del espacio isométrico.
  2. El elemento está identificado por la etiqueta nº 35. Si miráis el archivo items.xml y buscáis esa etiqueta, veréis que es un telepuerto.
  3. La dirección inicial del elemento es ninguna. Los telepuertos no pueden mirar al norte o al este. Sólo tiene una dirección y no está definida.
  4. El comportamiento del elemento es el nº23. Para ver los comportamientos hay que mirar la estructura BehaviorId que está en el archivo Ism.hpp. Lógicamente el telepuerto se comporta como un telepuerto.
  5. El tipo de elemento es rejilla. Hay elementos rejilla y libres (como en Isomot) más las puertas que son especiales.

Básicamente una sala se compone a base de este tipo de datos. Para almacenar los datos de ese telepuerto de la sala nº 1 sólo harían falta un puñadito de bytes.
Avatar de Usuario
Jorge
Administrador
Administrador
 
Mensajes: 1563
Registrado: Vie Ago 10, 2007 17:30
Ubicación: Valdepeñas

Re: Compilación del juego en LiNUX

Notapor Bergil » Sab Ene 03, 2009 11:50

Ah (de nuevo...) :shock: :shock:
Avatar de Usuario
Bergil
Moderador
Moderador
 
Mensajes: 2116
Registrado: Vie Ago 10, 2007 20:14
Ubicación: Madrid, Villa y Corte

Re: Compilación del juego en LiNUX

Notapor linutux » Sab Ene 03, 2009 13:53

Lo que no entiendo es porque defines los items como un fichero xml y en cambio BehaviorId es codigo. No se optimizaria si tuvieras los items dentro de otra estructura.

El fichero items.xml lo lees del disco duro cada vez que entras en una sala , ¿no?
Avatar de Usuario
linutux
Héroe
Héroe
 
Mensajes: 331
Registrado: Mié Ago 15, 2007 23:47

Re: Compilación del juego en LiNUX

Notapor Jorge » Sab Ene 03, 2009 19:45

Los items están dentro de otra estructura, concretamente una lista que se crea al arrancar el juego tras leer el archivo items.xml. Este archivo sólo se lee una vez. Cuando se carga del disco una sala, por cada etiqueta identificativa de un item que se encuentre se busca en esa lista para saber qué elemento es.

Un item tiene múchos datos (velocidad, peso, tamaño, imagen, sombra, etc) pero el comportamiento sólo uno: su identificador.
Avatar de Usuario
Jorge
Administrador
Administrador
 
Mensajes: 1563
Registrado: Vie Ago 10, 2007 17:30
Ubicación: Valdepeñas

Siguiente

Volver a Versiones beta

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

cron