20071119

CrystalSpace + Blender: Tu llave para el desarrollo de juegos

Siempre me han encantado los juegos y después de haber aprendido algo de programación solo pienso en montar uno. Así que me puse manos a la obra y tras algunos ejemplos de como hacer tu propio motor gráfico, decidí que esto no es para mí y me puse a jugar al buscaminas... Luego se me ocurrió que en la comunidad Open Source podría haber algo y así fue, Crystal Space con su "toolkit" CEL. Aunque los screenshots no prometen mucho, para un juego decente nos va de sobra. Se puede encontrar tutoriales y demos en la propia web del proyecto. Además, para la parte artística no es necesario conseguir el 3D Studio, sino su homologo Blender que podemos descargarnos desde su web. Recomiendo encarecidamente que echéis un ojo a ambas páginas ya que los videotutoriales de Blender no tienen desperdicio. Blender: http://www.blender.org/ Crystal Space: http://www.crystalspace3d.org Bueno aqui es donde comenzamos con la instalación (para Ubuntu). Primero nos instalamos el Blender que se hace rapidamente, bien Sistema>Administración>Gestor de paquetes Synaptic buscar "blender" y marcar las casillas "blender" y "create-resources" o bien por consola escribiendo: "sudo apt-get install blender create-resources" (recordar "sudo apt-get update" antes de esto.) Una vez termine de descargar e instalar ya tenemos Blender. Ahora podríamos hacer lo mismo con Crystal Space pero al menos a mi me da error al ejecutarlo asi que iremos por el lado manual... (Si queréis probar suerte los paquetes son: "crystalspace" "crystalspace-data") Antes de empezar con el Crystal Space en si, vamos a instalar las librerías que no vienen por defecto. Para instalarlo todo junto (menos lo manual) copiar y pegar lo siguiente: "sudo apt-get install libpng12-0 libpng12-dev libjpeg62 libjpeg62-dev mesa-common-dev libgl1-mesa-dev libgl1-mesa-glx libgl1-mesa-dri nvidia-cg-toolkit libode0debian1 libode0-dev libcal3d12 libcal3d12-dev lib3ds-1.2 lib3ds-dev libogg-dev libvorbis-dev libmng1 libmng-dev libcegui-mk2-1 libcegui-mk2-dev freeglut3 freeglut3-dev libglu1-mesa libglu1-mesa-dev libglui-dev libglut3 libglut3-dev libopenal0a libopenal-dev libtool jam" Por partes: zlib - se autoinstala con libpng libpng - "sudo apt-get install libpng12-0 libpng12-dev" libjpeg - "sudo apt-get install libjpeg62 libjpeg62-dev" OpenGL - "sudo apt-get install mesa-common-dev libgl1-mesa-dev libgl1-mesa-glx libgl1-mesa-dri" Freetype2 - lo instalaremos manualmente despues CG - "sudo apt-get install nvidia-cg-toolkit" ODE - "sudo apt-get install libode0debian1 libode0-dev" Bullet - lo instalaremos manualmente despues Cal3D - "sudo apt-get install libcal3d12 libcal3d12-dev" lib3ds - "sudo apt-get install lib3ds-1.2 lib3ds-dev" Ogg/Vorbis - "sudo apt-get install libogg-dev libvorbis-dev" libmng - "sudo apt-get install libmng1 libmng-dev" CEGUI - "sudo apt-get install libcegui-mk2-1 libcegui-mk2-dev" wxWidgets - lo instalaremos manualmente despues Extra - "sudo apt-get install freeglut3 freeglut3-dev libglu1-mesa libglu1-mesa-dev libglui-dev libglut3 libglut3-dev libopenal0a libopenal-dev libtool jam" Como seguro que vais a tener que compilar y tener un buen debug os recomiendo que tengais estos al menos instalados: - "sudo apt-get install build-essential gdb" Ahora empezamos la instalacion manual de los componentes que nos hemos saltado antes: wxWidgets - Añadiendo repositorio.

1. Hacemos una copia de seguridad de sources.list por precaucion.

  "sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak"

2. Abrimos sources.list para editarlo.

  "gksudo gedit /etc/apt/sources.list"

3. Añadimos el repositorio a nuestra lista.

  "deb http://apt.wxwidgets.org/ gutsy-wx main"

4. Salva y cierra el archivo.

5. Añadimos la llave para wxwidgets.org.

  "wget http://apt.wxwidgets.org/key.asc" 
  "sudo apt-key add key.asc"

6. Actualizamos sources.list y probamos que todo esta al dia.

  "sudo apt-get update"
  "sudo apt-get dist-upgrade"

7. Y finalmente instalamos wxWidgets 2.8.4.

  "sudo apt-get install libwxgtk2.8-0 libwxgtk2.8-dev wx2.8-headers wx-common"

8. Ponemos wxWidgets 2.8 como default para nuestro ordenador. Selecionamos el numero para la version wxgtk2.8.

  "sudo update-alternatives --config wx-config"
FreeType2 - Desde archivo.

1. Descargamos el archivo.

  "wget http://download.savannah.gnu.org/releases/freetype/freetype-2.3.5.tar.gz"

2. Lo descomprimimos y nos colocamos dentro de la carpeta de freetype que hemos descomprimido.

  "tar -xvvzf freetype-2.3.5.tar.gz"
"cd freetype-2.3.5"

3. Configuramos la instalacion.

  "./configure"

4. Hacemos make y lo instalamos.

"make" "sudo make install" Como os habréis dado cuenta no hemos instalado Bullet, si queréis hacerlo seguid las instrucciones de su pagina web http://www.continuousphysics.com/ , por mi parte no he consguido instalarlo correctamente. En un futuro hare un post de como integrar la libreria bullet con blender y crystal space. Una vez terminemos con esto nos dirigimos a la página de Crystal Space y nos descargamos Crystal Space (CS de aqui en adelante) y CEL. Descomprimimos CS en un directorio de nuestra elección, abrimos un terminal y nos colocamos en la carpeta de CS. Escribimos: "./configure" "jam" (tardará un buen rato) "sudo jam install" Ya tenemos Crystal Space instalado en nuestro ordenador. Para probarlo abrid un terminal y poned lo siguiente: "walktest -relight" (-relight solo la primera vez) Deberias estar en el interior de un castillo...

20071116

XAMPP!Monta un servidor web facilmente

El otro día me vi con la necesidad de montar un servidor web en mi caja, pero la pereza que me entraba al recordar lo que es montar por separado Apache, php y MySQL hacia que retrasara todo. Recordé que para Windows estaba un paquete con Apache+php+MySQL llamado wamp que te instalaba un servidor bastante apañado que te permitía cambiar todo fácilmente. Solo tenia una pega... no tenían su equivalente lamp para Linux. Buscando un poco no solo encontré uno con todo lo anterior sino además me ofrecía todo esto:

Apache, MySQL, PHP, Perl, ProFTPD, phpMyAdmin, OpenSSL, Freetype, libjpeg, libpng, gdbm, zlib, expat, ming, Sablotron, libxml2, Webalizer, pdf class, ncurses, mod_perl, FreeTDS, gettext, IMAP C-Client, OpenLDAP (client lib), eAccelerator, mcrypt, mhash, SQLite, cURL, ZZIPlib, libxslt, phpSQLiteAdmin, FPDF.


Descarga: Podeis encontrarlo en su página oficial http://www.apachefriends.org/es/xampp.html



Instalación(en Ubuntu): Muy sencilla. Seguir los pasos indicados en su pagina web, no tiene perdida. (Recordad que para ser root en Ubuntu teneis que escribir "sudo su"). Como solo esta disponible en inglés haré una rápida traducción para aquellos que les no les apetezca estar usando el babylon.

La forma mas correcta de instalar xampp en Ubuntu no seria logeandose como superusuario sino escribiendo "sudo" al principio de la linea que quereis ejecutar como root. En este caso seria abrir un terminal y escribir "sudo tar xvfz //xampp-linux-1.6.4.tar.gz -C /opt".

En mi caso seria asi:
"sudo tar xvfz /home/docraindrop/descargas/xampp-linux-1.6.4.tar.gz -C /opt".

Para encender y apagar el servidor vamos a crear un par de lanzadores personalizados en uno de nuestros paneles del escritorio. Para ello hacer click con el boton izquierdo en el panel que queremos el acceso directo y le damos a "Añadir
al panel...">"Lanzador personalizado"(Alt+p) y escribimos lo siguiente en Comando: "gksudo /opt/lampp/lampp start"(para el lanzador de apagarlo cambiar start por stop)

.

Hacemos click en nuestro lanzador de inicio y nos vamos a http://localhost.
Echadle un ojo a las DEMOS, no tienen desperdicio.



Configuración: Viene configurado por defecto pero si tienes tu ordenador conectado a alguna red será mejor que cambies la configuración por motivos de seguridad. Por defecto se tiene:
  1. El administrador (root) de MySQL no tiene contraseña.
  2. El daemon MySQL es accessible a través de la red.
  3. ProFTPD usa la contraseña "lampp" para el usuario "nobody".
  4. PhpMyAdmin es accessible a través de la red.
  5. Las demos son accesibles a traves de la red.
  6. MySQL y Apache se ejecutan con el mismo usuario (nobody).


Para cambiar esto escribimos en un terminal "sudo /opt/lampp/lampp security".
  1. Primero preguntara si queremos cambiar la contraseña de las paginas XAMPP le damos a enter y escribimos nuestra contraseña (recordad que la proxima vez que vayamos al localhost nos pedirá usuario y contraseña que será lampp y la contraseña que elegisteis).
  2. Nos preguntará si queremos que MySQL sea accesible a través de la red, enter para desactivarlo.
  3. Ahora nos preguntará si queremos ponerle contraseña a MySQL, enter e introducimos la que queramos.
  4. Y por último nos queda la contraseña de proFTP, enter + contraseña. (Recordad, Usuario:nobody Contraseña: la vuestra, para acceder al ftp).


Los archivos y directorios importantes de nuestro servidor son:
/opt/lampp/bin/ Aqui estan los comandos de XAMPP. /opt/lampp/bin/mysql ejecuta por ejemplo el monitor de MySQL.
/opt/lampp/htdocs/ Donde se encuentran nuestras paginas webs del servidor Apache.
/opt/lampp/etc/httpd.conf El archivo de configuración del Apache.
/opt/lampp/etc/my.cnf El archivo de configuración de MySQL.
/opt/lampp/etc/php.ini El archivo de configuración de PHP.
/opt/lampp/etc/proftpd.conf El archivo de configuración de ProFTPD. (desde 0.9.5)
/opt/lampp/phpmyadmin/config.inc.php El archivo de configuración de phpMyAdmin.



Y los comandos extra de XAMPP son:
start Inicia XAMPP.
stop Apaga XAMPP.
restart Reinicia XAMPP.
startapache Inicia solo el Apache.
startssl Inicia el Apache con soporte SSL. Este comando activa el soporte SSL permanentemente, por ej. si en un futuro reinicias XAMPP, el SSL seguirá activado.
startmysql Inicia solo MySQL.
startftp Inicia el servidor ProFTPD. Via FTP puedes subir los archivos de tus páginas web sin necesidad de hacer uso de superusuario (recordad: user "nobody", password "lampp"). Este comando activa ProFTPD permanentemente, por ej. si en un futuro reinicias XAMPP, el FTP seguirá activado.
stopapache Apaga el Apache.
stopssl Apaga el soporte SSL para el Apache SSL. Este comando desactiva el soporte SSL permanentemente, por ej. si en un futuro reinicias XAMPP, el SSL seguirá desactivado.
stopmysql Apaga MySQL.
stopftp Apaga el servidor ProFTPD. Este comando desactiva el FTP permanentemente, por ej. si en un futuro reinicias XAMPP, el FTP seguirá desactivado.
security Inicia un pequeño programa para revisar la seguridad del XAMPP.


Desistalación: Solo teneis que borrar el directorio de XAMPP. Abrir un terminal y escribir:
"sudo rm -rf /opt/lampp"


Con esto termino todo lo referente a XAMPP. Solo decir que es la mejor solución que he encontrado ya que tiene todo, todo, incluso extras como el ProFTPD, Perl, OpenSSL y eAccelerator que se convierten en una pesadilla a la hora de integrarlos manualmente.
Ya solo queda darle uso al servidor.