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:[email protected]:/all/pubsoft/orts
 svn co svn:[email protected]:/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 zlib1dev 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 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
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
 make destroyer << 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
Descargar

Introducción ORTS