130 likes | 273 Views
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 /.
E N D
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 DailySnap: • 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: • Boostlibrary, SDL, SDL_net, zlib, OpenGL, glew, andfreeglut. • Sobre ubuntu: • apt-getinstalllibboost-devlibsdl-devlibsdl-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 <ORTS>/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 <En este fichero se incluirán los nombre de los miembros del grupo. • MEMORIA.pdf (.doc) < Memoria explicativa de las decisiones de diseño de la IA • src/ • app.mk < Hay que modificarlo (ver siguiente trasparencia) • destroyer_main.C <Debe tener el mismo nombre de la IA + _main • SampleEventHandler.C (.H) < Manejador de los eventos (donde empezaremos a codificar /mirar)
Desarrollo. Fichero app.mk Nombre de la IA APP_DIR := destroyer APP_LIBS := kernel networkserverclientgfxclientai/lowkmlocalmapterrainpathfinding/simple_terrainpathfinding/dcdt/se pathfinding/dcdt/srpathfinding/triangulationpathfinding/triangulation/gfxclientai/movement APP_EXT_HD += APP_EXT_LIBS := APP := $(APP_DIR) includeconfig/app.rules 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 <ORTS>/docs • Tampoco son demasiados, pero algo más de información dan. • Otras IA’s. Dentro de <ORTS>/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 • makedestroyer << nombre de nuestra IA. • Eso generará en el directorio <ORTS>/bin un fichero ejecutable destroyer que será el cliente para manejar un bando.
Ejecución • Se propondrá un