Manualinux
http://www.nvu.com http://www.gimp.org InicioPresentaciónActualizacionesManualesDescargasNoticiasAgradecimientoEnlaces

Entornos GráficosAplicaciones

DesarrolloEmuladoresInternetJuegosMultimediaSistema

Instalar Vavoom desde ceroJuegos - BRIQUOLO

Juegos - AssaultCube




Juegos - AssaultCube




Copyright

Copyright © José Luis Lara Carrascal  2015-2017   http://manualinux.eu



Sumario

Introducción
AssaultCube
Configurar OpenAL para un correcto funcionamiento del sonido
Iniciamos AssaultCube
AssaultCube Reloaded
Iniciamos AssaultCube Reloaded
Enlaces




Introducción  

AssaultCube es un juego de acción en primera persona, basado en el motor de representación 3D, CUBE Engine. El juego destaca por sus pocos requerimientos de hardware, y su baja latencia en conexiones en red, lo que lo hace ideal incluso para conexiones por módem de 56 Kb. En este manual trataremos su instalación desde código fuente, y la instalacion de un derivado del mismo, denominado AssaultCube Reloaded, o formalmente, Assault Cube Special Edition, que incluye más modos de juego, modelos, mapas, objetos, etc. 



AssaultCube  

Instalación

Dependencias

Herramientas de Compilación


Entre paréntesis la versión con la que se ha compilado AssaultCube para la elaboración de este documento.

* GCC - (7.2.0) o Clang - (4.0.1)
* Gawk - (4.1.4)
* M4 - (1.4.18)
* Libtool - (2.4.6)
* Automake - (1.15.1)
* Autoconf - (2.69)
* Make - (4.2.1)
* Pkg-config - (0.29.2)
* Gettext - (0.19.8.1)

Librerías de Desarrollo

* Xorg - (7.7 / xorg-server 1.19.3)
   LibX11 - (1.6.5)
* Curl - (7.55.1)
* Libogg - (1.3.2)
* Libvorbis - (1.3.5)
* Mesa - (17.1.8)
* OpenAL - (1.18.1)
* SDL - (1.2.15)
* SDL_image - (1.2.12)
* Zlib - (1.2.11)

Aplicaciones

* Wget - (1.19.1) [1]
* Convert (ImageMagick) - (7.0.6-10) [2]

[1] Requerido para poder descargarnos un icono desde internet.
[2] Requerido para poder crear los iconos del archivo desktop.
  


Descarga

AssaultCube-git-31082017.tar.xz

Firma Digital  Clave pública PGP

AssaultCube-git-31082017.tar.xz.asc

Verificar la firma digital del paquete

$ gpg --import manualinux.asc
$ gpg --verify AssaultCube-git-31082017.tar.xz.asc AssaultCube-git-31082017.tar.xz

Optimizaciones

$ export {C,CXX}FLAGS='-O3 -march=amdfam10 -mtune=amdfam10'

Donde pone amdfam10 se indica el procesador respectivo de cada sistema seleccionándolo de la siguiente tabla:
Nota informativa sobre las optimizaciones para GCC
* La opción '-march=' establece el procesador mínimo con el que funcionará el programa compilado, la opción '-mtune=' el procesador específico para el que será optimizado. 

* Los valores separados por comas, son equivalentes, es decir, que lo mismo da poner '-march=k8' que '-march=athlon64'.

* En versiones de GCC 3.2.x e inferiores se utiliza la opción '-mcpu=' en lugar de '-mtune='.
Nota informativa sobre las optimizaciones para Clang
* La opción '-mtune=' está soportada a partir de la versión 3.4 de Clang.

* Los valores de color azul no son compatibles con Clang.

* Las filas con el fondo de color amarillo son valores exclusivos de Clang, y por lo tanto, no son aplicables con GCC.
Valores CPU
Genéricos
generic Produce un código binario optimizado para la mayor parte de procesadores existentes. Utilizar este valor si no sabemos el nombre del procesador que tenemos en nuestro equipo. Este valor sólo es aplicable en la opción '-mtune=', si utilizamos GCC. Esta opción está disponible a partir de GCC 4.2.x.
native Produce un código binario optimizado para el procesador que tengamos en nuestro sistema, siendo éste detectado utilizando la instrucción cpuid. Procesadores antiguos pueden no ser detectados utilizando este valor. Esta opción está disponible a partir de GCC 4.2.x.
Intel
atom Intel Atom con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y extensiones 64-bit. Esta opción está disponible desde GCC 4.6.x, hasta GCC 4.8.x. A partir de GCC 4.9.x se utiliza la definición bonnell.
bonnell Intel Bonnell con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3 y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x.
broadwell Intel Broadwell con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x. y Clang 3.6.x.
core2 Intel Core2 con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.3.x.
core-avx2 Intel Core (Haswell). Esta opción está disponible desde GCC 4.6.x, hasta GCC 4.8.x. A partir de GCC 4.9.x se utiliza la definición haswell.
core-avx-i Intel Core (ivyBridge) con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AES, PCLMUL, FSGSBASE, RDRND, F16C y extensiones 64-bit. Esta opción está disponible desde GCC 4.6.x, hasta GCC 4.8.x. A partir de GCC 4.9.x se utiliza la definición ivybridge.
corei7 Intel Core i7 con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 y SSE4.2 y extensiones 64-bit. Soporta también los procesadores Intel Core i3 e i5. Esta opción está disponible desde GCC 4.6.x, hasta GCC 4.8.x. A partir de GCC 4.9.x se utiliza la definición nehalem.
corei7-avx Intel Core i7 con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AES y PCLMUL y extensiones 64-bit. Soporta también los procesadores Intel Core i3 e i5. Esta opción está disponible desde GCC 4.6.x, hasta GCC 4.8.x. A partir de GCC 4.9.x se utiliza la definición sandybridge.
haswell Intel Haswell con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x.
i386 Intel i386.
i486 Intel i486.
i586, pentium Intel Pentium sin soporte de instrucciones MMX.
i686 Produce un código binario optimizado para la mayor parte de procesadores compatibles con la serie 80686 de Intel. Todos los actuales lo son.
intel Intel Haswell y Silvermont. Este valor sólo es aplicable en la opción '-mtune='. Esta opción está disponible a partir de GCC 4.9.x.
ivybridge Intel Ivy Bridge con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AES, PCLMUL, FSGSBASE, RDRND, F16C y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x.
knl Intel Knights Landing con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, AVX512F, AVX512PF, AVX512ER y extensiones 64-bit. Esta opción está disponible a partir de GCC 5.x. y Clang 3.4.x.
lakemont Intel Quark Lakemont MCU, basado en el procesador Intel Pentium. Esta opción está disponible a partir de GCC 6.x.
nehalem Intel Nehalem con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x.
nocona Versión mejorada de Intel Pentium4 con soporte de instrucciones MMX, SSE, SSE2, SSE3 y extensiones 64-bit.
penryn Intel Penryn con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y SSE4.1.
pentiumpro Intel PentiumPro.
pentium2 Intel Pentium2 basado en PentiumPro con soporte de instrucciones MMX.
pentium3, pentium3m Intel Pentium3 basado en PentiumPro con soporte de instrucciones MMX y SSE.
pentium4, pentium4m Intel Pentium4 con soporte de instrucciones MMX, SSE y SSE2.
pentium-m Versión de bajo consumo de Intel Pentium3 con soporte de instrucciones MMX, SSE y SSE2. Utilizado por los portátiles Centrino.
pentium-mmx Intel PentiumMMX basado en Pentium con soporte de instrucciones MMX.
prescott Versión mejorada de Intel Pentium4 con soporte de instrucciones MMX, SSE, SSE2 y SSE3.
sandybridge Intel Sandy Bridge con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AES, PCLMUL y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x. y Clang 3.6.x.
silvermont Intel Silvermont con soporte de instrucciones MOVBE, MMX, SSE, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PCLMU, RDRND y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x. y Clang 3.6.x.
skx Intel Haswell con soporte de instrucciones AVX512, CDI, DQI, BWI, VLX, CMPXCHG16B, FastUAMem, POPCNT, AES, PCLMUL, RDRAND, F16C, FSGSBase, MOVBE, LZCNT, BMI, BMI2, FMA, RTM, HLE y SlowIncDec. Esta opción está disponible a partir de Clang 3.5.x.
skylake Intel Skylake con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES y extensiones 64-bit. Esta opción está disponible a partir de GCC 6.x. y Clang 3.6.x.
skylake-avx512 Intel Skylake Server con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES, AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD y extensiones 64-bit. Esta opción está disponible a partir de GCC 6.x.
slm Intel Silvermont con soporte de instrucciones SSE4.2, CMPXCHG16B, MOVBE, POPCNT, PCLMUL, AES, CallRegIndirect, PRFCHW, SlowLEA, SlowIncDec, SlowBTMem y FastUAMem. Esta opción está disponible a partir de Clang 3.4.x
westmere Intel Westmere con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PCLMUL y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.x.
yonah Procesadores basados en la microarquitectura de Pentium M, con soporte de instrucciones MMX, SSE, SSE2 y SSE3.
AMD
amdfam10, barcelona Procesadores basados en AMD Family 10h core con soporte de instrucciones x86-64 (MMX, SSE, SSE2, SSE3, SSE4A, 3DNow!, enhanced 3DNow!, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.3.x. La definición barcelona está disponible a partir de Clang 3.6.x.
athlon, athlon-tbird AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y SSE prefetch.
athlon4, athlon-xp, athlon-mp Versiones mejoradas de AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y full SSE.
bdver1 Procesadores basados en AMD Family 15h core con soporte de instrucciones x86-64 (FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.7.x.
bdver2 Procesadores basados en AMD Family 15h core con soporte de instrucciones x86-64 (BMI, TBM, F16C, FMA, LWP, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.7.x.
bdver3 Procesadores basados en AMD Family 15h core con soporte de instrucciones x86-64 (FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.8.x. y Clang 3.4.
bdver4 Procesadores basados en AMD Family 15h core con soporte de instrucciones x86-64 (BMI, BMI2, TBM, F16C, FMA, FMA4, FSGSBASE, AVX, AVX2, XOP, LWP, AES, PCL_MUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.9.x. y Clang 3.5.x.
btver1 Procesadores basados en AMD Family 14h core con soporte de instrucciones x86-64 (MMX, SSE, SSE2, SSE3, SSE4A, CX16, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.6.x.
btver2 Procesadores basados en AMD Family 16h core con soporte de instrucciones x86-64 (MOVBE, F16C, BMI, AVX, PCL_MUL, AES, SSE4.2, SSE4.1, CX16, ABM, SSE4A, SSSE3, SSE3, SSE2, SSE, MMX y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.8.x.
geode AMD integrado con soporte de instrucciones MMX y 3DNow!. Esta opción está disponible a partir de GCC 4.3.x.
k6 AMD K6 con soporte de instrucciones MMX.
k6-2, k6-3 Versiones mejoradas de AMD K6 con soporte de instrucciones MMX y 3DNow!.
k8, opteron, athlon64, athlon-fx Procesadores basados en AMD K8 core con soporte de instrucciones x86-64 (MMX, SSE, SSE2, 3DNow!, enhanced 3DNow! y extensiones 64-bit).
k8-sse3, opteron-sse3, athlon64-sse3 Versiones mejoradas de AMD K8 core con soporte de instrucciones SSE3. Esta opción está disponible a partir de GCC 4.3.x.
x86-64 Procesadores AMD y compatibles con soporte de instrucciones x86-64, SSE2 y extensiones 64-bit.
znver1 Procesadores basados en AMD Family 17h core con soporte de instrucciones x86-64 (BMI, BMI2, F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA, CLZERO, AES, PCL_MUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT y extensiones 64-bit). Esta opción está disponible a partir de GCC 6.x.
Otros
c3 Via C3 con soporte de instrucciones MMX y 3DNow!.
c3-2 Via C3-2 con soporte de instrucciones MMX y SSE.
winchip2 IDT Winchip2, que equivale a un i486 con soporte de instrucciones MMX y 3DNow!.
winchip-c6 IDT Winchip C6, que equivale a un i486 con soporte de instrucciones MMX.

Optimizaciones adicionales

Optimizaciones adicionales
GCC
Graphite
$ export {C,CXX}FLAGS+=' -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block'

Clang
Polly
$ export {C,CXX}FLAGS+=' -O3 -mllvm -polly -mllvm -polly-vectorizer=stripmine'

Parámetros adicionales

Parámetros adicionales de eliminación de avisos específicos en el proceso de compilación
Clang
$ export {C,CXX}FLAGS+=' -Qunused-arguments'

Extracción y Compilación  Bloc de Notas Información general sobre el uso de los comandos

$ tar Jxvf AssaultCube-git-31082017.tar.xz
$ cd AssaultCube-git-31082017/source/src
$ sed -e 's:CXXFLAGS=:CXXFLAGS+=:' -e '52,53s:=:+&:' -i Makefile
$ export CLIENT_INCLUDES+=' -I/usr/local/include'
$ export CLIENT_LIBS+=' -L/usr/local/lib'
$ export CLIENT_LIBS+=' -Wl,-rpath,/opt/gcc7/lib -lstdc++'
$ make CC=gcc CXX=g++ PLATFORM_PREFIX=linux install

Explicación de los comandos

sed -e 's:CXXFLAGS=:CXXFLAGS+=:' -e  '52,53s:=:+&:' -i Makefile : Modificamos el archivo Makefile para que acepte las variables de entorno de optimización, y las de ubicación de cabeceras y librerías de ejecución.

export CLIENT_INCLUDES+=' -I/usr/local/include' : Añadimos la ruta a las cabeceras ubicadas en /usr/local/include, en el caso, de que hayamos instalado alguna dependencia del programa, en /usr/local.

export CLIENT_LIBS+=' -L/usr/local/lib' : Añadimos la ruta a las librerías de ejecución ubicadas en /usr/local/lib, en el caso, de que hayamos instalado alguna dependencia del programa, en /usr/local.

export CLIENT_LIBS+=' -Wl,-rpath,/opt/gcc7/lib -lstdc++' : Si compilamos AssaultCube con una versión de GCC que no es la principal del sistema, es decir, que la tenemos ubicada en otro directorio, tenemos que añadir la variable de entorno de la versión de libstdc++.so del compilador que vayamos a utilizar, porque de lo contrario, será imposible la compilación del programa, al no existir ninguna referencia a esta librería en los archivos Makefile generados, con lo que, cuando se vaya a generar los binarios correspondientes, el enlazador dinámico ld, buscará la primera que encuentre, normalmente la que está en /usr/lib, produciendo un error, al no ser la del compilador utilizado.

En este caso y siguiendo el manual de instalación de GCC, la ruta correcta para GCC 7 es /opt/gcc7/lib, a la que se le añade el nombre genérico (requerido por ld) de la librería, -lstdc++, si la versión a utilizar la tenemos en otro directorio, tendremos que cambiar sólo la ruta, /opt/gcc7/lib por la de la librería del compilador en cuestión.

CC=gcc CXX=g++ : El archivo Makefile está configurado para utilizar Clang como compilador predefinido de C++. Si tenemos instalados GCC y Clang, tendremos que establecer esta variable para poder compilar el código escrito en C++, con GCC.

PLATFORM_PREFIX=linux : Cambiamos el nombre de los ejecutables, para que estos sobreescriban los proporcionados por el paquete binario.

Parámetros de compilación opcionales

CC=clang : Si vamos a compilar el paquete con Clang, establecemos la correspondiente variable de entorno. La variable C++ no es necesaria establecerla, al ser Clang, el compilador predefinido para compilar el código escrito en C++.

-j2 : Si tenemos un procesador de doble núcleo (dual-core), y el kernel está optimizado para el mismo y es SMP, con este parámetro aumentaremos el número de procesos de compilación simultáneos a un nivel de 2 y aceleraremos el tiempo de compilación del programa de forma considerable.
-j4 : Lo mismo que arriba pero con procesadores de 4 núcleos (quad-core).

Instalación como root

$ su
# cd ../../
# install -dm755 /usr/share/{doc/assaultcube,assaultcube}
# cp -adrf --no-preserve=ownership {bin_unix,bot,config,\
demos,mods,packages,screenshots} /usr/share/assaultcube
# install -m755 *.sh /usr/share/assaultcube
# ln -sf /usr/share/assaultcube/assaultcube.sh /usr/bin/assaultcube
# ln -sf /usr/share/assaultcube/server.sh /usr/bin/assaultcube-server
# install -m644 {*.txt,*.html,source/*.txt,docs/*.txt} /usr/share/doc/assaultcube


# for i in /usr/share/icons/hicolor ; do \
install -dm755 $i/{16x16,24x24,32x32,48x48,64x64,scalable}/apps ; \
wget -c --no-check-certificate \
https://dl.opendesktop.org/api/files/download/id/1464946200/142566-assaultcube.svg \
-O $i/scalable/apps/assaultcube.svg ; \
convert -resize 64 -background transparent $i/scalable/apps/assaultcube.svg $i/64x64/apps/assaultcube.png ; \
convert -resize 48 -background transparent $i/scalable/apps/assaultcube.svg $i/48x48/apps/assaultcube.png ; \
convert -resize 32 -background transparent $i/scalable/apps/assaultcube.svg $i/32x32/apps/assaultcube.png ; \
convert -resize 24 -background transparent $i/scalable/apps/assaultcube.svg $i/24x24/apps/assaultcube.png ; \
convert -resize 16 -background transparent $i/scalable/apps/assaultcube.svg $i/16x16/apps/assaultcube.png ; \
gtk-update-icon-cache -tf $i &> /dev/null ; \
done


Explicación de los comandos

install -dm755 /usr/share/{doc/assaultcube,assaultcube} : Crea los directorios de ubicación del juego y la documentación del mismo.

cp -adrf --no-preserve=ownership {bin_unix,bot,config,\
demos,mods,packages,screenshots} /usr/share/assaultcube : Copia los archivos necesarios para la ejecución del juego al directorio /usr/share/assaultcube.

install -m755 *.sh /usr/share/assaultcube : Instala los scripts de shell de ejecución del juego y del servidor, este último opcional.

ln -sf /usr/share/assaultcube/assaultcube.sh /usr/bin/assaultcube : Crea un enlace simbólico del script de shell de ejecución del juego al directorio /usr/bin.

ln -sf /usr/share/assaultcube/server.sh /usr/bin/assaultcube-server : Crea un enlace simbólico del script de shell de ejecución del servidor del juego al directorio /usr/bin.

install -m644 {*.txt,*.html,source/*.txt,docs/*.txt} /usr/share/doc/assaultcube : Instala la documentación del juego en /usr/share/doc/assaultcube.

for i in /usr/share/icons/hicolor ; ..... : Crea e instala los archivos de icono del juego requeridos para el archivo desktop o las entradas de los menús de los administradores de ventanas en diferentes tamaños compatible con el estándar de freedesktop.org.

Creación del archivo assaultcube.desktop

Para que AssaultCube sea detectado por los menús de entornos gráficos como XFce 4, o paneles como LXPanelFbpanel, abrimos un editor de texto y añadimos lo siguiente: 

[Desktop Entry]
Name=AssaultCube
GenericName=Juego de acción
Comment=Juego de acción de primera persona basado en el motor del juego Cube
Exec=assaultcube
Icon=assaultcube
Categories=Game;ActionGame
Type=Application

Lo guardamos con la codificación de caracteres UTF-8, y con el nombre assaultcube.desktop. Luego lo instalamos como root en /usr/share/applications. La desinstalación y respaldo de este archivo viene incluida en los scripts correspondientes proporcionados en este manual. 

$ su
# install -dm755 /usr/share/applications
# install -m644 assaultcube.desktop /usr/share/applications

Estadísticas de Compilación e Instalación de AssaultCube

Estadísticas de Compilación e Instalación de AssaultCube
CPU AMD Athlon(tm) II X2 260 Processor
MHz 3214.610
RAM 4096 MB
Tarjeta gráfica GeForce GT 710
Controlador de gráficos Nouveau 1.0.15
Sistema de archivos XFS
Versión de Glibc 2.25
Enlazador dinámico GNU gold (Binutils 2.29) 1.14
Compilador Clang 4.0.1
Parámetros de optimización -03 -march=amdfam10 -mtune=amdfam10 -mllvm -polly -mllvm -polly-vectorizer=stripmine
Parámetros de compilación -j2
Tiempo de compilación 48"
Archivos instalados 1.906
Mostrar/Ocultar la lista de archivos instalados
Enlaces simbólicos creados 2
Mostrar/Ocultar la lista de enlaces simbólicos creados
Ocupación de espacio en disco 58,1 MB

Directorio de configuración personal

~/.assaultcube_v1.2 Es el directorio de configuración personal de AssaultCube en nuestro home.

Desinstalación como root

1) MODO TRADICIONAL

***********************

2) MODO MANUALINUX

assaultcube-git-31082017-scripts.tar.gz

$ su
# tar zxvf assaultcube-git-31082017-scripts.tar.gz
# cd assaultcube-git-31082017-scripts
# ./Desinstalar_assaultcube-git-31082017

Copia de Seguridad como root

Con este otro script creamos una copia de seguridad de los binarios compilados, recreando la estructura de directorios de los mismos en un directorio de copias de seguridad (copibin) que se crea en el directorio /var. Cuando se haya creado el paquete comprimido de los binarios podemos copiarlo como usuario a nuestro home y borrar el que ha creado el script de respaldo, teniendo en cuenta que si queremos volver a restaurar la copia, tendremos que volver a copiarlo al lugar donde se ha creado.

$ su
# tar zxvf assaultcube-git-31082017-scripts.tar.gz
# cd assaultcube-git-31082017-scripts
# ./Respaldar_assaultcube-git-31082017

Restaurar la Copia de Seguridad como root

Y con este otro script (que se copia de forma automática cuando creamos la copia de respaldo del programa) restauramos la copia de seguridad como root cuando resulte necesario.

$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_assaultcube-git-31082017




Configurar OpenAL para un correcto funcionamiento del sonido  

Si al ejecutar el juego nos encontramos con que el sonido no se oye, tendremos que configurar OpenAL para utilizar el controlador y dispositivo adecuado para un correcto funcionamiento del sonido. Abrimos una ventana de terminal y ejecutamos lo siguiente:

[jose@localhost ~]$ openal-info | grep CARD=
    HDA NVidia, ALC662 rev1 Analog (CARD=NVidia,DEV=0)
    HDA NVidia, ALC662 rev1 Digital (CARD=NVidia,DEV=1)
    HDA NVidia, ALC662 rev1 Analog (CARD=NVidia,DEV=0)
    HDA NVidia, ALC662 rev1 Alt Analog (CARD=NVidia,DEV=2)


Abrimos un editor de texto, y añadimos lo siguiente, tomando como referencia la información en negrita de la ventana de terminal.

[general]
drivers = alsa
[alsa]
device-prefix = CARD=NVidia,DEV=0

Lo guardamos con el nombre .alsoftrc en la raiz de nuestro directorio home, y volvemos a ejecutar el juego. El sonido debería de funcionar sin ningún problema. Esta configuración también nos servirá para los juegos de Windows que ejecutemos con Wine, y utilicen el sistema de sonido OpenAL.



Iniciamos AssaultCube  

Sólo nos queda teclear en una terminal o en un lanzador el comando assaultcube, y el juego aparecerá en la pantalla.


Captura - AssaultCube - 1


Captura - AssaultCube - 2


Captura - AssaultCube - 3




AssaultCube Reloaded  

Instalación

Dependencias

Herramientas de Compilación


Entre paréntesis la versión con la que se ha compilado AssaultCube Reloaded para la elaboración de este documento.

* GCC - (7.2.0)
* Gawk - (4.1.4)
* M4 - (1.4.18)
* Libtool - (2.4.6)
* Automake - (1.15.1)
* Autoconf - (2.69)
* Make - (4.2.1)
* Pkg-config - (0.29.2)
* Gettext - (0.19.8.1)

Librerías de Desarrollo

* Xorg - (7.7 / xorg-server 1.19.3)
   LibX11 - (1.6.5)
* Curl - (7.55.1)
* Libogg - (1.3.2)
* Libvorbis - (1.3.5)
* Mesa - (17.1.8)
* OpenAL - (1.18.1)
* SDL - (1.2.15)
* SDL_image - (1.2.12)
* Zlib - (1.2.11)

Aplicaciones

* Wget - (1.19.1) [1]
* Convert (ImageMagick) - (7.0.6-10) [2]

[1] Requerido para poder descargarnos un icono desde internet.
[2] Requerido para poder crear los iconos del archivo desktop.
  


Descarga

acr-git-31082017.tar.xz

Firma Digital  Clave pública PGP

acr-git-31082017.tar.xz.asc

Verificar la firma digital del paquete

$ gpg --import manualinux.asc
$ gpg --verify acr-git-31082017.tar.xz.asc acr-git-31082017.tar.xz

Optimizaciones

Optimizaciones adicionales

Optimizaciones adicionales
Graphite
$ export {C,CXX}FLAGS+=' -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block'

Extracción y Compilación  Bloc de Notas Información general sobre el uso de los comandos

$ tar Jxvf acr-git-31082017.tar.xz
$ cd acr-git-31082017/source/src
$ sed -i '47,48s:=:+&:' Makefile
$ export CLIENT_INCLUDES+=' -I/usr/local/include'
$ export CLIENT_LIBS+=' -L/usr/local/lib'
$ export CLIENT_LIBS+=' -Wl,-rpath,/opt/gcc7/lib -lstdc++'
$ make PLATFORM_PREFIX=linux install

Explicación de los comandos

sed -i '47,48s:=:+&:' Makefile : Modificamos el archivo Makefile para que acepte las variables de ubicación de cabeceras y librerías de ejecución.

export CLIENT_INCLUDES+=' -I/usr/local/include' : Añadimos la ruta a las cabeceras ubicadas en /usr/local/include, en el caso, de que hayamos instalado alguna dependencia del programa, en /usr/local.

export CLIENT_LIBS+=' -L/usr/local/lib' : Añadimos la ruta a las librerías de ejecución ubicadas en /usr/local/lib, en el caso, de que hayamos instalado alguna dependencia del programa, en /usr/local.

export CLIENT_LIBS+=' -Wl,-rpath,/opt/gcc7/lib -lstdc++' : Si compilamos AssaultCube Reloaded con una versión de GCC que no es la principal del sistema, es decir, que la tenemos ubicada en otro directorio, tenemos que añadir la variable de entorno de la versión de libstdc++.so del compilador que vayamos a utilizar, porque de lo contrario, será imposible la compilación del programa, al no existir ninguna referencia a esta librería en los archivos Makefile generados, con lo que, cuando se vaya a generar los binarios correspondientes, el enlazador dinámico ld, buscará la primera que encuentre, normalmente la que está en /usr/lib, produciendo un error, al no ser la del compilador utilizado.

En este caso y siguiendo el manual de instalación de GCC, la ruta correcta para GCC 7 es /opt/gcc7/lib, a la que se le añade el nombre genérico (requerido por ld) de la librería, -lstdc++, si la versión a utilizar la tenemos en otro directorio, tendremos que cambiar sólo la ruta, /opt/gcc7/lib por la de la librería del compilador en cuestión.

PLATFORM_PREFIX=linux : Cambiamos el nombre de los ejecutables, para que estos sobreescriban los proporcionados por el paquete binario.

Parámetros de compilación opcionales

-j2 : Si tenemos un procesador de doble núcleo (dual-core), y el kernel está optimizado para el mismo y es SMP, con este parámetro aumentaremos el número de procesos de compilación simultáneos a un nivel de 2 y aceleraremos el tiempo de compilación del programa de forma considerable.
-j4 : Lo mismo que arriba pero con procesadores de 4 núcleos (quad-core).

Instalación como root

$ su
# cd ../../
# install -dm755 /usr/share/{doc/assaultcuber,assaultcuber}
# cp -adrf --no-preserve=ownership {acr,bin_unix,bot,\
config,mods,packages,scripts} /usr/share/assaultcuber
# install -m755 *.sh /usr/share/assaultcuber
# sed -i '12s:=home:=${HOME}/.assaultcuber:' /usr/share/assaultcuber/client.sh
# ln -sf /usr/share/assaultcuber/client.sh /usr/bin/assaultcuber
# ln -sf /usr/share/assaultcuber/server.sh /usr/bin/assaultcuber-server
# install -m644 {source/{*.txt,src/*.txt},docs/*.txt} /usr/share/doc/assaultcuber


# for i in /usr/share/icons/hicolor ; do \
install -dm755 $i/{16x16,24x24,32x32,48x48,64x64,128x128,256x256}/apps ; \
wget -c http://acr.victorz.ca/assets/acr/logos/victor.png -O $i/256x256/apps/assaultcuber.png ; \
convert -resize 128 $i/256x256/apps/assaultcuber.png $i/128x128/apps/assaultcuber.png ; \
convert -resize 64 $i/256x256/apps/assaultcuber.png $i/64x64/apps/assaultcuber.png ; \
convert -resize 48 $i/256x256/apps/assaultcuber.png $i/48x48/apps/assaultcuber.png ; \
convert -resize 32 $i/256x256/apps/assaultcuber.png $i/32x32/apps/assaultcuber.png ; \
convert -resize 24 $i/256x256/apps/assaultcuber.png $i/24x24/apps/assaultcuber.png ; \
convert -resize 16 $i/256x256/apps/assaultcuber.png $i/16x16/apps/assaultcuber.png ; \
gtk-update-icon-cache -tf $i &> /dev/null ; \
done


Explicación de los comandos

install -dm755 /usr/share/{doc/assaultcuber,assaultcuber} : Crea los directorios de ubicación del juego y la documentación del mismo.

cp -adrf --no-preserve=ownership {bin_unix,bot,config,\
demos,mods,packages,scripts} /usr/share/assaultcube : Copia los archivos necesarios para la ejecución del juego al directorio /usr/share/assaultcuber.

install -m755 *.sh /usr/share/assaultcube : Instala los scripts de shell de ejecución del juego y del servidor, este último opcional.

sed -i '12s:=home:=${HOME}/.assaultcuber:' /usr/share/assaultcuber/client.sh : Modifica el script de shell de ejecución para ubicar correctamente el directorio personal de configuración del juego.

ln -sf /usr/share/assaultcuber/client.sh /usr/bin/assaultcuber : Crea un enlace simbólico del script de shell de ejecución del juego al directorio /usr/bin.

ln -sf /usr/share/assaultcuber/server.sh /usr/bin/assaultcuber-server : Crea un enlace simbólico del script de shell de ejecución del servidor del juego al directorio /usr/bin.

install -m644 {source/{*.txt,src/*.txt},docs/*.txt} /usr/share/doc/assaultcuber : Instala la documentación del juego en /usr/share/doc/assaultcuber.

for i in /usr/share/icons/hicolor ; ..... : Crea e instala los archivos de icono del juego requeridos para el archivo desktop o las entradas de los menús de los administradores de ventanas, en diferentes tamaños compatibles con el estándar de freedesktop.org.

Creación del archivo assaultcuber.desktop

Para que AssaultCube Reloaded sea detectado por los menús de entornos gráficos como XFce 4, o paneles como LXPanelFbpanel, abrimos un editor de texto y añadimos lo siguiente: 

[Desktop Entry]
Name=AssaultCube Reloaded
GenericName=Juego de acción
Comment=Versión especial del juego de acción en primera persona AssaultCube
Exec=assaultcuber
Icon=assaultcuber
Categories=Game;ActionGame
Type=Application

Lo guardamos con la codificación de caracteres UTF-8, y con el nombre assaultcuber.desktop. Luego lo instalamos como root en /usr/share/applications. La desinstalación y respaldo de este archivo viene incluida en los scripts correspondientes proporcionados en este manual. 

$ su
# install -dm755 /usr/share/applications
# install -m644 assaultcuber.desktop /usr/share/applications

Estadísticas de Compilación e Instalación de AssaultCube Reloaded

Estadísticas de Compilación e Instalación de AssaultCube Reloaded
CPU AMD Athlon(tm) II X2 260 Processor
MHz 3214.610
RAM 4096 MB
Tarjeta gráfica GeForce GT 710
Controlador de gráficos Nouveau 1.0.15
Sistema de archivos XFS
Versión de Glibc 2.25
Enlazador dinámico GNU gold (Binutils 2.29) 1.14
Compilador GCC 7.2.0 + Ccache 3.3.4
Parámetros de optimización -03 -march=amdfam10 -mtune=amdfam10 -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block'
Parámetros de compilación -j2
Tiempo de compilación 1' 33"
Archivos instalados 2.023
Mostrar/Ocultar la lista de archivos instalados
Enlaces simbólicos creados 2
Mostrar/Ocultar la lista de enlaces simbólicos creados
Ocupación de espacio en disco 90,4 MB

Directorio de configuración personal

~/.assaultcuber Es el directorio de configuración personal de AssaultCube Reloaded en nuestro home.

Desinstalación como root

1) MODO TRADICIONAL

***********************

2) MODO MANUALINUX

assaultcuber-git-31082017-scripts.tar.gz

$ su
# tar zxvf assaultcuber-git-31082017-scripts.tar.gz
# cd assaultcuber-git-31082017-scripts
# ./Desinstalar_assaultcuber-git-31082017

Copia de Seguridad como root

$ su
# tar zxvf assaultcuber-git-31082017-scripts.tar.gz
# cd assaultcuber-git-31082017-scripts
# ./Respaldar_assaultcuber-git-31082017

Restaurar la Copia de Seguridad como root

$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_assaultcuber-git-31082017




Iniciamos AssaultCube Reloaded  

Sólo nos queda teclear en una terminal o en un lanzador el comando assaultcuber, y el juego aparecerá en la pantalla.


Captura - AssaultCube Reloaded - 1


Captura - AssaultCube Reloaded - 2


Captura - AssaultCube Reloaded - 3




Enlaces  


http://assault.cubers.net >> La web de AssaultCube.

http://acr.victorz.ca >> La web de AssaultCube Reloaded.


Foro Galería Blog


Actualizado el 31-08-2017

Juegos - AssaultCube

Instalar Vavoom desde ceroJuegos - BRIQUOLO