Memoria Final.Pdf (972,1Kb)
Total Page:16
File Type:pdf, Size:1020Kb
Títol: Sistema automàtic de bots pel Quake 3 Volum: 1 Alumne: Jaume Palència Fernández Director: Javier Verdú Mulà Ponent: Manuel Alejandro Pajuelo González Departament: Arquitectura de Computadors Data: 27 d'octubre de 2008 DADES DEL PROJECTE Títol del Projecte: Sistema automàtic de bots pel Quake 3 Nom de l'estudiant: Jaume Palència Fernández Titulació: Enginyeria en Informàtica Crèdits: 37,5 Director: Javier Verdú Mulà Ponent: Manuel Alejandro Pajuelo González Departament: Arquitectura de Computadors MEMBRES DEL TRIBUNAL (nom i signatura) President: Jordi Guitart Fernández Vocal: Antonio Cañabate Carmona Secretari: Manuel Alejandro Pajuelo González QUALIFICACIÓ Qualificació numèrica: Qualificació descriptiva: Data: A mons pares, ma germana i la meva família que m'han recolzat en tot moment durant la realització d'aquest projecte. Als peores, especialment en Xavi, per donar-me la motivació que m'ha calgut en els moments més difícils i que m'ha ajudat a tirar endavant. A l'Eva, per ser com és, per donar-me els ànims i el recolzament quan ho he necessitat i, en general, per ser-hi sempre. A en Xavi i l'Àlex per la seva comprensió, atenció i dedicació no només al projecte, si no també a la meva persona. Gràcies a tots i continueu sent així Índex 1 Introducció............................................................... 1 1.1 Introducció................................................................................... 3 1.2 El Videojocs..................................................................................4 1.3 Id Software.................................................................................. 6 1.4 El software lliure........................................................................... 7 1.5 Quake 3....................................................................................... 7 1.5.1 Motor.................................................................................... 8 1.5.2 Quake 3 i GPL........................................................................ 9 1.6 L'elecció de Quake 3...................................................................... 9 1.7 Motivació personal....................................................................... 10 1.8 Estructura de la memòria............................................................. 11 2 Objectius del projecte............................................. 13 2.1 Objectius principals......................................................................15 2.2 Objectius previs.......................................................................... 16 2.3 Requisits.................................................................................... 16 3 Descripció de PFC_Quake....................................... 19 3.1 Descripció del benchmark PFC_Quake............................................ 21 3.2 Què ofereix PFC_Quake al sector d'investigació empresarial.............. 22 3.3 Què ofereix PFC_Quake a la comunitat de desenvolupadors.............. 23 I 4 Anàlisi del funcionament del Quake 3..................... 25 4.1 Subsistemes............................................................................... 27 4.1.1 Subsistema client.................................................................. 27 4.1.2 Subsistema servidor.............................................................. 28 4.1.3 Parts comunes i interconnexió dels subsistemes........................ 29 5 Estructura interna del Quake 3............................... 31 5.1 Implementació............................................................................ 33 5.2 Estructura de fitxers del codi.........................................................34 5.2.1 Carpetes subsistema servidor.................................................. 34 5.2.2 Carpetes subsistema client...................................................... 34 5.2.3 Carpetes comunes dels subsistemes......................................... 35 5.3 Estructura i funcionament intern....................................................36 5.3.1 Inicialitzacions...................................................................... 36 5.3.2 Subsistema client.................................................................. 37 5.3.3 Subsistema servidor.............................................................. 38 5.4 Estructura de dades CVAR............................................................ 39 5.4.1 Variables de tipus CVAR importants.......................................... 40 6 Modificacions de les funcionalitats......................... 41 6.1 Modificacions prèvies................................................................... 43 6.2 Control d'inicialització d'usuaris..................................................... 43 6.2.1 Procés de desenvolupament................................................... 43 6.2.2 Anàlisi del funcionament........................................................ 44 6.2.3 Explicació de les modificacions finals........................................46 6.3 Configuració de partides a través d'arxiu........................................ 48 6.3.1 Procés de desenvolupament................................................... 48 6.3.2 Anàlisi del funcionament ....................................................... 48 II 6.3.3 Explicació de les modificacions finals........................................49 6.3.4 Exemple d'arxiu de configuració.............................................. 50 6.4 Extracció d'informació durant l'execució..........................................50 6.4.1 Procés de desenvolupament................................................... 50 6.4.2 Anàlisi del funcionament........................................................ 51 6.4.3 Explicació de les modificacions finals........................................51 6.4.4 Exemple de configuració del sistema de log.............................. 52 6.4.5 Exemple d'una arxiu de log.....................................................52 7 Entorn de desenvolupament................................... 53 7.1 Sistema operatiu......................................................................... 55 7.2 Aplicacions utilitzades.................................................................. 55 7.2.1 Mrxvt.................................................................................. 56 7.2.2 Code::Blocks........................................................................ 56 7.2.3 OpenOffice........................................................................... 57 7.2.4 Gimp................................................................................... 57 7.2.5 GanttProject......................................................................... 58 8 Avaluació de PFC_Quake........................................ 59 8.1 Descripció del procés de testeig.....................................................61 8.1.1 Configuracions de les màquines utilitzades............................... 61 8.1.2 Esquema del procés d'execució de cada escenari....................... 62 8.2 Proves de funcionament............................................................... 63 8.3 Avaluació dels objectius............................................................... 64 8.3.1 Objectius previs.................................................................... 64 8.3.2 Objectius principals............................................................... 64 9 Planificació i valor econòmic................................... 67 9.1 Planificació inicial del projecte....................................................... 69 III 9.2 Planificació posterior al procés d'enginyeria inversa.......................... 70 9.3 Error respecte la planificació estimada............................................70 9.4 Costs del projecte........................................................................71 9.5 Beneficis del projecte................................................................... 73 10 Conclusions.......................................................... 75 Apèndixs.................................................................... 79 A – Manual d'execució........................................................................ 81 A.1 Requisits mínims/recomanats.................................................... 81 A.2 IoQuake i OpenArena............................................................... 81 A.3 Compilació.............................................................................. 82 A.4 Execució de PFC_Quake............................................................ 82 B - Glossari....................................................................................... 84 C - Índex de figures i codis..................................................................87 C.1 Introducció............................................................................. 87 C.4 Anàlisi del funcionament del Quake 3......................................... 87 C.5 Estructura interna del Quake 3.................................................. 87 C.6 Modificacions de les funcionalitats.............................................. 87 C.7 Entorn de desenvolupament...................................................... 88 C.9 Planificació i valor econòmic...................................................... 88 D - Variables cvar del Quake 3.............................................................89 D.1 Variables referents al sistema de bots........................................ 89 D.2 Variables de les opcions de les partides del client......................... 91 D.3 Variables de les opcions