Notas sobre la Creación de MODs para Unreal Tournament 2004

Bruno Torijano y Federico Peinado

Introducción

El motor del Unreal Tournament 2004 (UT2004) será la tecnología Unreal que usaremos para crear MODs. Antes de entrar en materia conviene conocer, a grandes rasgos, cuales son los distintos formatos de fichero que podemos encontrar en la distribución del UT2004: También es necesario conocer el lenguaje UnrealScript para entender los conceptos que expondremos a continuación.

Estructura de directorios

El conocimiento y buen uso de la estructura de directorios de Unreal permitirá mantener aislado nuestro MODs del resto de los ficheros originales del juego. El directorio más importante del motor es [UT2004]\System siendo [UT2004] el directorio donde hayamos instalado el UT2004. En este directorio se almacenan todos los ficheros de configuración con la información sobre los parámetros del sistema necesarios para hacer funcionar la GUI, los distintos modos de juego, etc. Estos ficheros de configuración indican las rutas de los paquetes compilados que deben ejecutarse, por defecto los del motor del juego, aunque podemos añadir las rutas de los paquetes compilados de nuestro MOD. Uno de los ficheros de configuración más importantes es Default.ini, ubicado en [UT2004]\System. Debemos tener nuestra propia versión de este fichero en [UT2004]\[Proyecto]\System siendo [Proyecto] el nombre de nuestro proyecto. En ese fichero establecemos las rutas relativas para acceder a los recursos de nuestro MOD (audio, texturas, etc.).

Ejemplo de archivo Default.ini, comentarios explicativos:

[Core.System] +MusicPath=..\[Proyecto]\Music
-CacheRecordPath=..\System\*.ucl
+CacheRecordPath=..\[Proyecto]\System\*.ucl
+CacheRecordPath=..\System\*.ucl
+Paths=..\[Proyecto]\System\*.u
+Paths=..\[Proyecto]\Maps\*.ut2
+Paths=..\[Proyecto]\Textures\*.utx
+Paths=..\[Proyecto]\StaticMeshes\*.usx
+Paths=..\[Proyecto]\Animations\*.ukx
-Paths=..\Maps\*.ut2
; En este directorio ha de incluirse un fichero entry.ut2 para evitar errores en tiempo de ejecución [Engine.GameEngine] MainMenuClass=GUI2K4.UT2K4MainMenu

La primera sección añade (+) y elimina (-) rutas a la configuración por defecto. La segunda sección sobreescribe la clase que se utiliza para mostrar el menú principal de la GUI.

¡Atención!

Otro fichero de configuración importante es UT2k4mod.ini. Este fichero debe ubicarse en [UT2004]\[Proyecto]\ y debe incluir la información necesaria para que el sistema reconozco el directorio [Proyecto] como el contenedor de un MOD.

Ejemplo de archivo UT2k4mod.ini:

[Core.System]
ModTitle="[Proyecto]" ; Titulo del proyecto
ModLogo=[Proyecto].MiLogo ; Modlogo: Paquete.Textura
ModDesc="[Proyecto] m00l4" ; Descripcion del proyecto que se mostrará en el menú
ModCmdLine=-comandos ; Opciones de la línea de comandos
ModURL=http://proyecto.com/ ; Página principal del proyecto

Clases fundamentales

A la hora de programar el MOD usando UnrealScript, debemos conocer las clases fundamentales y las que más tendremos que utilizar.

La clase Object es la raíz de la jerarquía de clases, de la que todas las demás clases heredan.

La clase Actor hereda directamente de Object y es también fundamental, ya que de ella heredan todas las demás clases que utilizaremos en la programación del MOD. Todo objeto de esta clase puede interactuar con otros, puede moverse por los mapas, realizar acciones e incluso capturar eventos del teclado u otros dispositivos. Los objetos de la clase Actor pueden ser instanciados mediante la función Spawn, cuya sintaxis es:

clase o;
o = Spawn( class'clase' );

La clase Pawn hereda de Actor y representa a todos los agentes "con vida propia", como los personajes (tanto jugadores como bots no jugadores), los enemigos, etc. Existen clases que heredan de Pawn para representar cada uno de estos agentes, como Bot, PlayerPawn, etc.

La clase Menu hereda de Actor y representa a los menús de la GUI, los cuales son totalmente configurables, sin restricciones a la situación de los elementos en pantalla.

Copyright © 2005 por Federico Peinado