Introducción ORTSModelado y Comportamiento de Personajes MIGJRV 2011-2012 Luis Peña
Introducción ORTS
Modelado y Comportamiento de Personajes MIGJRV 2011-2012 Luis Peña
ORTS
Arquitectura Cliente / Servidor Múltiples plataformas: Windows, Linux, Mac??? Recomendado usar Linux. Creación modular de controladores Fácil de instalar ? http://skatgame.net/mburo/orts/
Instalación
Dos opciones Descargar el Daily Snap: http://skatgame.net/mburo/orts/src_snapshot/snap.html Descargar del SVN svn co svn://anonymous@skatgame.net:/all/pubsoft/orts svn co svn://anonymous@skatgame.net:/all/pubsoft/orts_data Password: guest Sólo es necesario el orts. El paquete de ORTS_DATA es necesario si quieres levantar el interfaz 3D (no necesario para la práctica)
Linux
Se requieren las librerías: Boost library, SDL, SDL_net, zlib, OpenGL, glew, and freeglut. Sobre ubuntu: apt-get install libboost-dev libsdl-dev libsdl-net1.2-dev zlib1-dev freeglut3-dev libglew1.5-dev
Windows
Para windows es necesario descargar el fichero que viene en la página http://skatgame.net/mburo/orts/files/windows/win32.zip Teóricamente no requiere librerías para hacerlo funcionar, pero si requiere que se creen los ejecutables orts.exe Para poder compilar función en VisualStudio 2008 (creo que para 2010, etc también… pero no lo hemos probado) Es necesario crear una solución (.sln) para VisualStudio y compilar desde ahí.
Desarrollo
La práctica consistirá en desarrollar un controlador para un torneo entre IA’s. Para montar el entorno de desarrollo aconsejo emplear eclipse (Linux) o VisualStudio(Win), pero no incluyáis dentro del entorno el SVN. Cread un proyecto con todas las fuentes del paquete ORTS (directorio orts/trunk/) así tendréis todas las clases del sistema.
Desarrollo
Para crear un cliente que maneje a un bando debemos crear un directorio dentro de la carpeta /apps. Os recomiendo crearos una copia de una IA básica llamada sample. Es necesario que nombréis las carpetas con un nómbre en minúsculas y que en la memoria indiquéis claramente el nombre de la IA.
Desarrollo. Estructura del Directorio
Ejemplo: destoyer destroyer/ GRUPO.txt
Desarrollo. Fichero app.mk
APP_DIR := destroyer APP_LIBS := kernel network serverclient gfxclient ai/low kmlocal mapterrain pathfinding/simple_terrain pathfinding/dcdt/se pathfinding/dcdt/sr pathfinding/triangulation pathfinding/triangulation/gfxclient ai/movement APP_EXT_HD += APP_EXT_LIBS := APP := $(APP_DIR) include config/app.rules Nombre de la IA Librerías que empleemos. Es posible que no queramos liarnos empleando muchas. Pero ya hay bastantes cosas hechas. Mirad un poco
Desarrollo. Clase EventHandler.C
Es la que se encarga de analizar cada vez que se producen cambios en el entorno. Se invoca cada Tick de actualización y espera a que se actualice la acción de cada objeto controlado por esta IA dentro del Tick. Nos interesa el método compute_actions Devuelve todos los objetos. Los propios y los contrarios. Observad el código de ejemplo del sample Ojo a las macros FORS/FORALL/ERR definidas en orts/libs/kernel/src/Global.H
Desarrollo. Más documentación.
Documentación Doxygen: http://skatgame.net/mburo/orts/doxygen/html/ No es la mejor documentación del mundo, pero … Documentos en /docs Tampoco son demasiados, pero algo más de información dan. Otras IA’s. Dentro de /apps hay otras IA’s y librerías que os pueden ayudar. Tutorías y clases (algunos ratos dedicaremos a ver algún contenido teórico aplicado al ORTS)
Desarrollo. Compilación
Si todo ha ido bien es sencillo. Sólo hay que hacer (Linux): Desde el directorio raíz del ORTS make destroyer << nombre de nuestra IA. Eso generará en el directorio /bin un fichero ejecutable destroyer que será el cliente para manejar un bando.
Comments