Copyright
Copyright © José
Luis Lara Carrascal 2015-2024
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 - (13.2.0) o Clang - (17.0.6)
* Gawk - (5.3.0)
* M4 - (1.4.19)
* Libtool - (2.4.7)
* Automake - (1.16.5)
* Autoconf - (2.72)
* Make - (4.4.1)
* Pkg-config - (0.29.2)
* Gettext - (0.22.4)
Librerías
de Desarrollo
*
Xorg - (7.7 / xorg-server 21.1.10)
LibX11 - (1.8.7)
* Curl - (8.5.0)
* Libglvnd - (1.7.0)
* Libogg - (1.3.5)
* Libvorbis - (1.3.7)
* OpenAL - (1.23.1)
* SDL - (2.28.5)
* SDL_image - (2.8.2)
* Zlib - (1.3)
Aplicaciones
* Wget - (1.21.4) [1]
* Convert (ImageMagick) - (7.1.1-26) [2]
[1] Requerido para poder descargarnos un icono desde internet.
[2] Requerido para poder crear los iconos del archivo desktop.
Descarga
assaultcube-git-11012024.tar.xz
Firma Digital
assaultcube-git-11012024.tar.xz.asc
Verificar la firma digital del paquete
$ gpg --import manualinux.asc
$ gpg --verify assaultcube-git-11012024.tar.xz.asc assaultcube-git-11012024.tar.xz |
Optimizaciones
$ export
{C,CXX}FLAGS='-O3 -march=znver3 -mtune=znver3'
|
Donde pone znver3 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 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. |
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. |
x86-64 |
Procesador genérico con extensiones 64-bit. Esta opción está disponible a partir de GCC 8 y Clang 1.9. |
x86-64-v2 |
Procesador genérico con con
soporte de instrucciones X86-64 (MMX, SSE, SSE2, LAHFSAHF, POPCNT,
SSE3, SSE4.1, SSE4.2, SSSE3) y extensiones 64-bit. Esta opción
está disponible a partir de GCC 11 y Clang 12. |
x86-64-v3 |
Procesador genérico con con
soporte de instrucciones X86-64 (MMX, SSE, SSE2, LAHFSAHF, POPCNT,
SSE3, SSE4.1, SSE4.2, SSSE3, AVX, AVX2, F16C, FMA, LZCNT, MOVBE, XSAVE,
XSAVEC, FMA4) y extensiones 64-bit. Esta opción está
disponible a partir de GCC 11 y Clang 12. |
x86-64-v4 |
Procesador genérico con con
soporte de instrucciones X86-64 (MMX, SSE, SSE2, LAHFSAHF, POPCNT,
SSE3, SSE4.1, SSE4.2, SSSE3, AVX, AVX2, F16C, FMA, LZCNT, MOVBE, XSAVE,
XSAVEC, AVX512*, FMA4) y extensiones 64-bit. Esta opción
está disponible a partir de GCC 11 y Clang 12. |
Intel |
alderlake |
Intel Alderlake con soporte de
instrucciones x86-64 (MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES,
AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VNNI,
AVX512BF16, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT, ENQCMD, CLDEMOTE,
PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK, UINTR, AMX-BF16, AMX-TILE,
AMX-INT8, AVX-VNNI) y extensiones 64-bit. Esta opción
está disponible a partir de GCC 11 y Clang 12. |
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, hasta GCC 4.8. A partir de GCC 4.9 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. |
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 y Clang 3.6. |
cannonlake |
Intel Cannonlake Server con soporte
de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2,
F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES, AVX512F,
AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VBMI, AVX512IFMA, SHA,
UMIP y extensiones 64-bit. Esta opción está
disponible a partir de GCC 8 y Clang 3.9. |
cascadelake |
Intel Cascadelake con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2,
F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES, AVX512F,
CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VNNI y extensiones
64-bit. Esta opción está disponible a partir de GCC 9 y Clang 8. |
cooperlake |
Intel Cooper
Lake con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND,
FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC,
XSAVES, AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD,
AVX512VNNI, AVX512BF16 y extensiones 64-bit. Esta opción
está disponible a partir de GCC 10 y Clang 9. |
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. |
core-avx2 |
Intel Core (Haswell). Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 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, hasta GCC 4.8. A partir de GCC 4.9 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, hasta GCC 4.8. A partir de GCC 4.9 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, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición sandybridge. |
emeraldrapids |
Intel Emerald Rapids. Esta opción está disponible a partir de GCC 13 y Clang 16. |
goldmont |
Intel Goldmont con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE y extensiones
64-bit. Esta opción está disponible a partir de GCC 9 y Clang 5. |
goldmont-plus |
Intel Goldmont Plus con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE, PTWRITE, RDPID,
SGX, UMIP y extensiones 64-bit. Esta opción está
disponible a partir de GCC 9 y Clang 7. |
grandridge |
Intel Grand Ridge con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES, XSAVEOPT,
FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI, MOVDIR64B,
CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT,
PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL,
AVX-VNNI, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, RAOINT y
extensiones 64-bit. Esta opción está disponible a partir
de GCC 13 y Clang 16. |
graniterapids |
Intel Grand Ridge con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE, RDRND, F16C,
AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW, AES,
CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, AVX512VL, AVX512BW, AVX512DQ,
AVX512CD, PKU, AVX512VBMI, AVX512IFMA, SHA, AVX512VNNI, GFNI, VAES,
AVX512VBMI2, VPCLMULQDQ, AVX512BITALG, RDPID, AVX512VPOPCNTDQ, PCONFIG,
WBNOINVD, CLWB, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT, ENQCMD,
CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK, UINTR, AMX-BF16,
AMX-TILE, AMX-INT8, AVX-VNNI, AVX512-FP16, AVX512BF16, AMX-FP16,
PREFETCHI y extensiones 64-bit. Esta opción está
disponible a partir de GCC 13 y Clang 16. |
graniterapids-d |
Intel Xeon Granite Rapids-D. Esta opción está
disponible a partir de Clang 17. |
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. |
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. |
icelake-client |
Intel Icelake Client con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2,
F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES, AVX512F,
AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VBMI, AVX512IFMA, SHA,
CLWB, UMIP, RDPID, GFNI, AVX512VBMI2, AVX512VPOPCNTDQ, AVX512BITALG,
AVX512VNNI, VPCLMULQDQ, VAES y extensiones 64-bit. Esta
opción está disponible a partir de GCC 8 y Clang 7. |
icelake-server |
Intel Icelake Server con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2,
F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES, AVX512F,
AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VBMI, AVX512IFMA, SHA,
CLWB, UMIP, RDPID, GFNI, AVX512VBMI2, AVX512VPOPCNTDQ, AVX512BITALG,
AVX512VNNI, VPCLMULQDQ, VAES, PCONFIG, WBNOINVD y extensiones
64-bit. Esta opción está disponible a partir de GCC 8 y Clang 7. |
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. |
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. |
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 y Clang 3.4. |
knm |
Intel Knights Mill 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, AVX512CD,
AVX5124VNNIW, AVX5124FMAPS, AVX512VPOPCNTDQ y extensiones 64-bit. Esta
opción está disponible a partir de GCC 8 y Clang 6. |
lakemont |
Intel Quark Lakemont MCU, basado en el procesador Intel Pentium. Esta opción está disponible a partir de GCC 6 y Clang 3.9. |
meteorlake |
Intel Meteor Lake. Esta opción está disponible a partir de GCC 13 y Clang 16. |
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. |
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. |
raptorlake |
Intel Raptor Lake. Esta opción está disponible a partir de GCC 13 y Clang 16. |
rocketlake |
Intel Rocket Lake con soporte de
instrucciones x86-64 (MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES,
AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VBMI,
AVX512IFMA, SHA, CLWB, UMIP, RDPID, GFNI, AVX512VBMI2, AVX512VPOPCNTDQ,
AVX512BITALG, AVX512VNNI, VPCLMULQDQ, VAES) y extensiones 64-bit. Esta
opción está disponible a partir de GCC 11 y Clang 13. |
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 y Clang 3.6. |
sapphirerapids |
Intel Sapphire Rapids con soporte
de instrucciones x86-64 (MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES,
AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VNNI,
AVX512BF16, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT, ENQCMD, CLDEMOTE,
PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK, UINTR, AMX-BF16, AMX-TILE,
AMX-INT8 and AVX-VNNI) y extensiones 64-bit. Esta opción
está disponible a partir de GCC 11 y Clang 12. |
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 y Clang 3.6. |
sierraforest |
Intel Sierra Forest con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES, XSAVEOPT,
FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI, MOVDIR64B,
CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT,
PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL,
AVX-VNNI, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD y extensiones
64-bit. Esta opción está disponible a partir de GCC 13 y Clang 16. |
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 y Clang 3.6. |
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 y Clang 3.9. |
tigerlake |
Intel Tiger Lake
con soporte de instrucciones OVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES,
AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VBMI,
AVX512IFMA, SHA, CLWB, UMIP, RDPID, GFNI, AVX512VBMI2, AVX512VPOPCNTDQ,
AVX512BITALG, AVX512VNNI, VPCLMULQDQ, VAES, PCONFIG, WBNOINVD, MOVDIRI,
MOVDIR64B, AVX512VP2INTERSECT y extensiones 64-bit. Esta opción
está disponible a partir de GCC 10 y Clang 10. |
tremont |
Intel Tremont con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE, PTWRITE, RDPID,
SGX, UMIP, GFNI-SSE, CLWB, ENCLV y extensiones 64-bit. Esta
opción está disponible a partir de GCC 9 y Clang 7. |
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. |
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. La definición barcelona está disponible a partir de Clang 3.6. |
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. |
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. |
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 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 y Clang 3.5. |
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. |
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. |
geode |
AMD integrado con soporte de instrucciones MMX y 3DNow!. Esta opción está disponible a partir de GCC 4.3. |
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. |
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 y Clang 4. |
znver2 |
Procesadores basados en AMD Family
17h core con soporte de instrucciones x86-64 (BMI, BMI2, ,CLWB, 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 9 y Clang 9. |
znver3 |
Procesadores basados en AMD Family
19h core con soporte de instrucciones x86-64 (BMI, BMI2, CLWB, F16C,
FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA, CLZERO, AES,
PCLMUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1,
SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, RDPID, WBNOINVD, PKU,
VPCLMULQDQ, VAES) y extensiones 64-bit. Esta opción
está disponible a partir de GCC 11 y Clang 12. |
znver4 |
Procesadores basados en AMD Family
19h core con soporte de instrucciones x86-64 (BMI, BMI2, CLWB, F16C,
FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA, CLZERO, AES,
PCLMUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1,
SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, RDPID, WBNOINVD, PKU,
VPCLMULQDQ, VAES, AVX512F, AVX512DQ, AVX512IFMA, AVX512CD, AVX512BW,
AVX512VL, AVX512BF16, AVX512VBMI, AVX512VBMI2, AVX512VNNI,
AVX512BITALG, AVX512VPOPCNTDQ, GFNI) y extensiones 64-bit. Esta
opción está disponible a partir de GCC 12.3 y Clang 16. |
Optimizaciones adicionales
Optimizaciones adicionales |
GCC |
Graphite
|
$ export {C,CXX}FLAGS+=' -ftree-loop-linear -floop-strip-mine -floop-block' |
IPA
|
$ export {C,CXX}FLAGS+=' -fipa-pta'
|
Clang |
Polly |
$ export {C,CXX}FLAGS+=' -O3 -mllvm -polly -mllvm -polly-vectorizer=stripmine'
|
Parámetros adicionales
Parámetros adicionales de eliminación de avisos en el proceso de compilación |
$ export {C,CXX}FLAGS+=' -w' |
Establecer la ruta de búsqueda de directorios de librerías en sistemas de 64 bits multiarquitectura |
$ export
LDFLAGS+=" -L/usr/lib64 -L/usr/local/lib64 -L/opt/gcc13/lib64" |
Cada usuario tendrá
que establecer la ruta de búsqueda de directorios, en
función de la distribución que utilice. |
Extracción y
Compilación
$ tar Jxvf assaultcube-git-11012024.tar.xz
$ cd assaultcube-git-11012024/source/src
$ sed -e 's:CXXFLAGS=:CXXFLAGS+=:' -e '63,64s:=:+&:' -i Makefile
$ export CLIENT_INCLUDES+=' -I/usr/local/include'
$ export CLIENT_LIBS+=' ${LDFLAGS}'
$ make CC=gcc CXX=g++ install
|
Explicación de los
comandos
sed -e 's:CXXFLAGS=:CXXFLAGS+=:' -e '63,64s:=:+&:' -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+=' ${LDFLAGS}'
: Sincronizamos la variable de entorno LDFLAGS establecida en el manual
con la variable utilizada por el archivo Makefile del paquete.
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.
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++.
-j$(nproc) :
Establece el número de procesos de compilación en
paralelo, en función del número de
núcleos e hilos que tenga nuestro procesador, tomando como
referencia la información mostrada por el sistema con el comando
correspondiente. Si nuestro procesador es mononúcleo de un solo
hilo, no añadir esta opción.
Instalación
como root
$ su
# cd ../../
# install -dm755 /usr/share/{doc/assaultcube,assaultcube}
# cp -dRf --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 {*.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,128x128,256x256}/apps ; \
wget -c --no-check-certificate https://images.pling.com/img/00/00/19/64/43/1108035/142566-1.png \
-O $i/256x256/apps/assaultcube.png ; \
convert -resize 128 $i/256x256/apps/assaultcube.png $i/64x64/apps/assaultcube.png ; \
convert -resize 64 $i/256x256/apps/assaultcube.png $i/64x64/apps/assaultcube.png ; \
convert -resize 48 $i/256x256/apps/assaultcube.png $i/48x48/apps/assaultcube.png ; \
convert -resize 32 $i/256x256/apps/assaultcube.png $i/32x32/apps/assaultcube.png ; \
convert -resize 24 $i/256x256/apps/assaultcube.png $i/24x24/apps/assaultcube.png ; \
convert -resize 16 $i/256x256/apps/assaultcube.png $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 -dRf --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 {*.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 LXPanel o Fbpanel, creamos el archivo desktop correspondiente con cat o con un editor de texto:
# cat > assaultcube.desktop << "EOF"
[
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
EOF
|
Luego, lo instalamos en /usr/share/applications.
La desinstalación y respaldo de este archivo viene incluida en
los scripts correspondientes proporcionados en este manual.
# 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 Ryzen 5 5500 |
MHz |
3593.250 (BoostMax=4457.000) |
RAM |
32 GB |
Tarjeta gráfica |
AMD Radeon RX 580 2048SP |
Controlador de gráficos |
AMDGPU 23.0.0 |
Sistema de archivos |
XFS |
Versión del Kernel |
6.7.0-ml SMP PREEMPT_DYNAMIC x86_64 |
Modo de frecuencia de la CPU |
powersave (balance performance) |
Planificador de CPU |
BORE |
Versión de Glibc |
2.38 |
Enlazador dinámico |
GNU gold (GNU Binutils 2.41) 1.16 |
Compilador |
Clang 17.0.6 |
Parámetros de optimización |
-03 -march=znver3 -mtune=znver3 -mllvm -polly -mllvm -polly-vectorizer=stripmine |
Parámetros de compilación |
-j12 |
Tiempo de compilación |
12" |
Archivos instalados |
1.877 |
|
Enlaces simbólicos creados |
2 |
|
Ocupación de espacio en disco |
59,9 MB |
Consumo inicial de CPU y RAM de AssaultCube
Consumo inicial de CPU y RAM de AssaultCube |
Programa
|
CPU |
RAM |
native_client |
0,7 % |
161,6 MB |
Para medir el consumo de CPU se utiliza el programa top, y para medir
el consumo de RAM se utiliza el script de Python, ps_mem.py, creado por Pádraig Brady, que podemos encontrar en este enlace. |
Directorio de
configuración personal
~/.assaultcube |
Es el
directorio de configuración personal de AssaultCube
en nuestro home. |
Desinstalación
como root
1) MODO TRADICIONAL
***********************
2) MODO MANUALINUX
assaultcube-git-11012024-scripts.tar.gz
$ su
# tar zxvf assaultcube-git-11012024-scripts.tar.gz
# cd assaultcube-git-11012024-scripts
# ./Desinstalar_assaultcube-git-11012024 |
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-11012024-scripts.tar.gz
# cd assaultcube-git-11012024-scripts
# ./Respaldar_assaultcube-git-11012024 |
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-11012024
|
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, HDMI 0 (CARD=NVidia,DEV=3)
HDA NVidia, HDMI 1 (CARD=NVidia,DEV=7)
HDA NVidia, HDMI 2 (CARD=NVidia,DEV=8)
HDA NVidia, HDMI 3 (CARD=NVidia,DEV=9)
HDA NVidia, HDMI 4 (CARD=NVidia,DEV=10)
HD-Audio Generic, ALC887-VD Analog (CARD=Generic,DEV=0)
HD-Audio Generic, ALC887-VD Digital (CARD=Generic,DEV=1)
HD-Audio Generic, ALC887-VD Analog (CARD=Generic,DEV=0)
HD-Audio Generic, ALC887-VD Alt Analog (CARD=Generic,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=Generic,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. Si tenemos problemas de inicio con los controladores gráficos que proporciona Mesa,
ejecutamos el siguiente comando como usuario, que creará un
archivo de autoinicio (autoexec.cfg) en el directorio de
configuración del juego, con la opción correspondiente
que soluciona el problema:
$ echo "ati_mda_bug 1" > ~/.assaultcube/v1.3/config/autoexec.cfg
|
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 - (13.2.0)
* Gawk - (5.3.0)
* M4 - (1.4.19)
* Libtool - (2.4.7)
* Automake - (1.16.5)
* Autoconf - (2.72)
* Make - (4.4.1)
* Pkg-config - (0.29.2)
* Gettext - (0.22.4)
Librerías
de Desarrollo
*
Xorg - (7.7 / xorg-server 21.1.10)
LibX11 - (1.8.7)
* Curl - (8.5.0)
* Libglvnd - (1.7.0)
* Libogg - (1.3.5)
* Libvorbis - (1.3.7)
* OpenAL - (1.23.1)
* SDL - (1.2.15)
* SDL_image - (1.2.12)
* Zlib - (1.3)
Aplicaciones
* Wget - (1.21.4) [1]
* Convert (ImageMagick) - (7.1.1-26) [2]
[1] Requerido para poder descargarnos un icono desde internet.
[2] Requerido para poder crear los iconos del archivo desktop.
Descarga
assaultcuber-git-26072022.tar.xz
Firma Digital
assaultcuber-git-26072022.tar.xz.asc
Verificar la firma digital del paquete
$ gpg --import manualinux.asc
$ gpg --verify assaultcuber-git-26072022.tar.xz.asc assaultcuber-git-26072022.tar.xz |
Optimizaciones
Optimizaciones adicionales
Optimizaciones adicionales |
Graphite
|
$ export {C,CXX}FLAGS+=' -ftree-loop-linear -floop-strip-mine -floop-block' |
IPA
|
$ export {C,CXX}FLAGS+=' -fipa-pta'
|
Parámetros adicionales
Establecer la ruta de búsqueda de directorios de librerías en sistemas de 64 bits multiarquitectura |
$ export
LDFLAGS+=" -L/usr/lib64 -L/usr/local/lib64 -L/opt/gcc13/lib64" |
Cada usuario tendrá
que establecer la ruta de búsqueda de directorios, en
función de la distribución que utilice. |
Extracción y
Compilación
$ tar Jxvf assaultcuber-git-26072022.tar.xz
$ cd assaultcuber-git-26072022/source/src
$ sed -i '47,48s:=:+&:' Makefile
$ export CLIENT_INCLUDES+=' -I/usr/local/include'
$ export CLIENT_LIBS+=' ${LDFLAGS}'
$ make CC=gcc CXX=g++ 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+=' ${LDFLAGS}'
: Sincronizamos la variable de entorno LDFLAGS establecida en el manual
con la variable utilizada por el archivo Makefile del paquete.
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.
Parámetros de compilación opcionales
-j$(nproc) :
Establece el número de procesos de compilación en
paralelo, en función del número de
núcleos e hilos que tenga nuestro procesador, tomando como
referencia la información mostrada por el sistema con el comando
correspondiente. Si nuestro procesador es mononúcleo de un solo
hilo, no añadir esta opción.
Instalación
como root
$ su
# cd ../../
# install -dm755 /usr/share/{doc/assaultcuber,assaultcuber}
# cp -dRf --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 --no-check-certificate https://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 -dRf --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 LXPanel o Fbpanel, abrimos un editor de texto y añadimos lo siguiente:
# cat > assaultcuber.desktop << "EOF"
[
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
EOF
|
Luego, lo instalamos en /usr/share/applications.
La desinstalación y respaldo de este archivo viene incluida en
los scripts correspondientes proporcionados en este manual.
# 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 Ryzen 5 5500 |
MHz |
3593.250 (BoostMax=4457.000) |
RAM |
32 GB |
Tarjeta gráfica |
AMD Radeon RX 580 2048SP |
Controlador de gráficos |
AMDGPU 23.0.0 |
Sistema de archivos |
XFS |
Versión del Kernel |
6.7.0-ml SMP PREEMPT_DYNAMIC x86_64 |
Modo de frecuencia de la CPU |
powersave (balance performance) |
Planificador de CPU |
BORE |
Enlazador dinámico |
GNU gold (GNU Binutils 2.41) 1.16 |
Compilador |
GCC 13.2.0 |
Parámetros de optimización |
-03 -march=znver3 -mtune=znver3 -ftree-loop-linear -floop-strip-mine -floop-block -fipa-pta |
Parámetros de compilación |
-j12 |
Tiempo de compilación |
12" |
Archivos instalados |
2.030 |
|
Enlaces simbólicos creados |
2 |
|
Ocupación de espacio en disco |
90,4 MB |
Consumo inicial de CPU y RAM de AssaultCube Reloaded
Consumo inicial de CPU y RAM de AssaultCube Reloaded |
Programa
|
CPU |
RAM |
native_client |
0,7 % |
169,9 MB |
Para medir el consumo de CPU se utiliza el programa top, y para medir
el consumo de RAM se utiliza el script de Python, ps_mem.py, creado por Pádraig Brady, que podemos encontrar en este enlace. |
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-26072022-scripts.tar.gz
$ su
# tar zxvf assaultcuber-git-26072022-scripts.tar.gz
# cd assaultcuber-git-26072022-scripts
# ./Desinstalar_assaultcuber-git-26072022 |
Copia de Seguridad
como root
$ su
# tar zxvf assaultcuber-git-26072022-scripts.tar.gz
# cd assaultcuber-git-26072022-scripts
# ./Respaldar_assaultcuber-git-26072022 |
Restaurar la Copia de Seguridad
como root
$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_assaultcuber-git-26072022
|
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. Si tenemos problemas de inicio con los controladores gráficos que proporciona Mesa,
ejecutamos el siguiente comando como usuario, que creará un archivo de
autoinicio (autoexec.cfg) en el directorio de configuración del juego,
con la opción correspondiente que soluciona el problema:
$ echo "ati_mda_bug 1" > ~/.assaultcuber/config/autoexec.cfg
|
Enlaces
http://assault.cubers.net >> La web de AssaultCube.
http://acr.victorz.ca >> La web de AssaultCube Reloaded.
|