Instalar y Poner a punto el ORTS

3 comments »

Bueno amigos hoy una pequeña guia sobre como poner a punto el ORTS y empezar a trabajar con el.

Orts game view

>En primer lugar instalaremos, si no lo tenemos ya, el Visual C++.

- Descargar Visual c++ 2008 Express edition
- Instalar la distribución

Es gratuito como el resto de la versión Express, sin embargo os pedirá que registreis el producto antes de 30 dias. De cualquier forma no os costará ni un duro.

> Ahora que tenemos la IDE (Integrated Development Enviroment)
pasamos a la estructura descargar los diferentes elementos
de ORTS.

- Descarga los archivos del proyecto
- Descargar Paquete Win32

> Ponemos a punto el entorno

- 1. Copiamos los elementos a c:\orts
De este modo quedará C:\orts\trunk…

Orts Sistema de Carpetas

- 2. Descomprimimos el archivo anterior ‘win32.zip’ y copiamos
el contenido en C:\orts\trunk\
Tendremos entonces C:\orts\trunk\win32

- 3. Copiamos el contenido de win32\include en la carpeta
de sistema de windows System32
Descargamos glew y copiamos tambien la dll en System32
http://sourceforge.net/projects/glew/

- 4. Nos vamos a c:\orts\trunk\misk\windows
y copiamos el contenido en c:\orts\trunk\ para asegurarnos

- 5. Ejecutamos VSTool.exe (Nos pedirá la ruta a los datos)
Escribimos> c:\orts\trunk\        <– No olvidar la barra
Escribimos> tecla enter
Escribimos> orts             <– Nombre del ejecutable

- 6. Ejecutamos: c:\orts\trunk\make_vcproj.bat    (Para definir las rutas)
y creae los proyectos orts.vc7 y ortsg.vc7

- 7. Creamos la carpeta c:\orts\trunk\bin

- 8. Abrimos independientemente    orts.vc7 y ortsg.vc7 y los generamos

- 9. Vamos a buscar los ejecutables orts.exe y ortsg.exe y los pegamos
en la carpeta c:\orts\trunk
- 10. Ejecutamos, asi de facil :P

Puede pareces un poco laborioso a simple vista sin embargo dada la cantidad
de elementos que intervienen y la complejidad del sistema, esta es solo una
ínfima parte. De hecho el código es tan valioso desde el punto de vista ya no
del desarrollo de juegos en general sino de la inteligencia artificial, que
merece la pena dedicar los esfuerzos necesarios a poner a punto el entorno.

Al final es lo más pesado pero una vez listo ya podreis empezar a programar  todos los aspectos del juego, especialmente los que se encargan de la IA. Una vez dominado el entorno se pueden pasar a aspectos más interesantes como el pathfinding o las estrategias de batalla.

Animo con eso

Como Instalar Ogre desde 0

No comments »

…en 10 minutos y de la forma más sencilla (en windoz).

Aficcionados y profesionales del renderizado gráfico somo muy
afortunados de contar con esta gran herramienta, el Open Graphics
Rendering Enviroment (Ogre).

Ogre logo

El Ogre nos permite un abanico infinito de posibilidades en materia
de trabajo con aplicacines que requieren renderizado 3D. Si bien no
es un motor de juego completo, se encarga principalmente del apartado
gráfico, proporciona una gran funcionalidad que hace que muchos juegos
ya lo utilicen.

Como comenta el desarrollador principal Steve Streeting, no se trata de una
solución integral sino de una especialización en el ámbito gráfico
que hace que independientemente del resto de subsistemas (motor
de física, sistemas de interfaces, topologías de red o tipos de
juego). Esto nos permite utilizar por ejemplo ODE o Bullet
(o cualquier otro vaya) para la física y Ogre para los gráficos.

Como lo ponemos a punto. Instalar facilmente todo lo necesario para
empezar a trabajar, que es lo importante de cara a aprender un sistema.
En este caso centrandonos en windows pero estando ámpliamente documentado
el resto de sistemas operativos y entornos.

> Instalacion en todos los entornos

Para ello vamos a instalar 2 elementos en el orden que se establecen.

- Visual C Express
- Ogre SDK

Una vez hecho esto, vamos a la carpeta donde hemos instalado Ogre y
ponemos a punto el entorno de trabajo.

1. Creamos una carpeta contenedora de nuestros proyectos.
Por ejemplo: ‘workspace’

Ogre carpetas

2. Copiamos el contenido de la carpeta ’samples’ para empezar por los
ejemplos.

3. Ya en la carpeta ‘workspace’ creamos una carpeta con el nombre de
‘resultados’ donde pondremos los archivos generados de la compilación.

4. Dentro creamos una carpeta con nombre ‘intermedio’ para los archivos
que se generan derivados de la compilación.

5. Finalmente nos vamos a la carpeta ‘bin’ del directorio raiz donde
hemos instalado la Ogre SDK, entramos en la carpeta ‘debug’ y copiamos
todo el contenido. Lo pegamos en nuestra carpeta ‘workspace/resultados’.
Podemos copiar solamente determinados archivos pero simplificando, que
es gerundio.

Ahora que tenemos la estructura, configuramos el Visual C++.

1. Abrimos el proyecto ‘Samples_vc9.sln’

2. Actualizamos las carpetas de resultados y de intermedios

../resultados

../resultados/intermedio

Ogre Paths

3. Compilamos todo el proyecto

Generar> Generar Solución o F7

4. A partir de ahora nos centramos en uno en concreto. Por ejemplo Demo_BspCollision

Ogre Proyecto

5. Ejecutamos el ejemplo y a disfrutarlo

Siempre podemos encontrar algun error que nos retrase en lo que realmente
nos interesa, ponernos a trabajar lo antes posible en el entorno. Sin
embargo, una vez puesto en marcha el aprendizaje es rápido y el contenido
tremendamente interesante.

Hasta la próxima

Programar juegos de estrategia en tiempo real

No comments »

Hola amigos,

Que se espera de alguien que vaya a encargarse de la inteligencia
artificial de un juego de estrategia en tiempo real (Real Time
Strategy). Pues bien, eso es lo que vamos a ver de forma muy resumida
en este apartado. Progresivamente nos iremos poniendo en materia y
profundizando en los diferentes aspectos.

Cuando hablo de programar la IA de juegos RTS me ciño al más puro
aspecto académico, es decir, a la búsqueda de conocimiento basado
en cálculos y algoritmos que simulan una situación ‘real’ o si más
no factible. ¿A qué me refiero con esto? La IA de los juegos comerciales
debe en muchas ocasiones (por no decir en la práctica totalidad) hacer
determinadas trampas o acceder a información que el usuario desconoce
con la finalidad de ser realmente competitiva.

Por ejemplo, la IA puede conocer la posición de todas las unidades aunque
estas esten en una zona de niebla de guerra (o warfog). Puede conocer
las órdenes que el jugador da a sus unidades o incluso el tipo de las
mismas, para centrarse en construir ella misma las que mejor pueden
desenvolverse en caso de que ataque o de recibir un ataque. Puede
también incrementar la velocidad de minado o incluso los recursos reales de
los que dispone. Con esto, se generan IA’s altamente competitivas pero
que a la hora de la verdad, NO están resolviendo problemas a situacioens
reales y por lo tanto interesan solo desde el punto de vista comercial
pero no desde el científico. Es por eso que estas prácticas se rechazan
y se dejan como elementos a implementar en determinadas aplicaciones.

Mundo orts

Nosotros nos centraremos en estudiar diferentes áreas como:
- Razonamiento de los sistemas
- Planificación de estrategias
- Aprendizaje o machine learning
- Pathfinding o búsqueda de caminos
- Cooperación o sistemas multiagente

Cooperative Pathfinding in Dynamic Enviroments

Strategic Tank Combat

Simplified RTS Game

Entre otras. Pasando a la plataforma Open Real Time Strategy (ORTS),
estamos en un entorno de juego real donde creamos y gestionamos ejercitos,
disponemos de movimiento en tiempo real(Real time object motion en 2.5D),
tratamos con información imperfecta (niebla, desconocimiento de los recursos
del oponente, detalles de unidades enemigas …etc), recursos y árbol
de tecnología. Con esto tenemos juego más que de sobra para aplicar muchos
de los conceptos de inteligencia artificial que nos interesan.

Los objetivos ahora serán:
- Poner a punto el entorno.
- Compilar el proyecto.
- Ver la estructura general del mismo.
- Empezar a profundizar en los detalles.

En próximos artículos pondremos veremos como poner a punto el entorno
y empezaremos a trabajar con este juego de estrategia real con el mismo
entorno que tendriais que utilizar si trabajaseis como programadores
de inteligencia artificial para videojuegos.

Diversión y aprendizaje garantizados. ¿Quien ha dicho que los juegos
no valen para nada? Por lo pronto ya facturan más que la industria del cine.
Un buen aliciente para aquellos que disfrutamos creando puesto que habrán muchas inversiones
y muchos proyectos en los que trabajar. La próxima vez que alguien os
diga que estais demasiado enganchados a los juegos la respuesta es clara…
…lo siento, soy adicto al trabajo!

Hasta nueva vista.

ORTS. Estrategia en tiempo real OpenSource

1 comment »

Hola amigos,

Hoy tengo el placer de presentaros un proyecto que hará las  delicias de muchos aficcionados y profesionales de la inteligencia artificial aplicada a los videojuegos. Se trata del Open Source Real Tyme Strategy (ORTS) que actualmente desarrolla un equipo de investigadores del grupo de Games Research del Departamento de Tecnologías de la Información de la Universidad de Alberta.

Todo un lujo ya que trabajan tanto en la IA aplicada a los juegos clásicos como la aplicada a los grandes juegos comerciales. Una interesante mezcla del rigor académico y las grandes posibilidades de los sistemas actuales del entorno comercial.

Aunque hoy vamos a ver un juego de estrategia en tiempo real, no dejeis de echarle un vistazo a la web del grupo. Poker, ajedrez e incluso ‘go’ que es un juego difícil de trabajar con él en materia de inteligencia artificial. Uno de los integrantes Michael Buro, creador de ORTS, es el constructor de un programa de Othello que venció al campeón mundial del juego por 6 a 0.

El proyecto ORTS empieza en el año 2003 con la finalidad de crear un sistema cliente-servidor para el desarrollo de técnicas de Inteligencia Artificial en juegos interactivos de estrategia en tiempo real. El resultado es Open Real Time Strategy.

Elementos de ORTS

Elementos de ORTS

Base

Base

En este juego varias facciones disponen sus unidades sobre el campo de batalla y se encargan de  hacer crecer sus recursos.  La finalidad es acabar con el oponente. Un ejemplo de juego es el que vemos a continuación:

Hay mucha documentación al respecto que podemos encontrar en la red. Además se ha documentado de forma exhaustiva la estructura del código por lo que no es muy difícil empezar a probar algunas cosas. En posteriores artículos nos adentraremos aún más en el mundo de ORTS que promete ser muy enriquecedor.

Hoy todos los interesados en la IA que no conocierais el proyecto acabais de conseguir un juguete muy pero que muy elaborado y tan divertivo o más que cualquier otro que nos pueda caer en navidad.

Ya tenemos un punto de vista distribuido en cuanto a las aplicaciones que podemos utilizar para adentrarnos en el mundo de la IA para videojuegos. Ahora es tiempo de profundizar en aspectos más interesantes y en conceptos propios de los problemas que nos encontramos a la hora de trabajar en esta área.

Hasta la próxima

Quake III Arena, código fuente completo.

No comments »

Para la mayoría de los jugones veteranos el Quake ha sido una fuente de alegrías continuas. Para los que no lo conozcáis, el Q3 es un juego de acción shooter primera persona creado por Id Software donde la finalidad es competir contra bots o contra otros jugadores en el modo multiplayer en mapas en los que se distribuyen armas a punta pala. La acción está garantizada.

Quake I

Quake I

Quake II

Quake II

Quake III

Quake III

En este juego no faltan las máquinas humanas capaces de realizar proezas con el armamento. En el video a continuación se muestra un fragmento homenaje de uno de esos sujetos.

Lo realmente interesante desde nuestro punto de vista es el hecho de que el código haya sido publicado por completo. Sin embargo, no todo el material fue distribuido por lo que el juego no era completo. Desde este panorama surge la iniciativa de los chicos de Open Arena mediante la que con el motor de juego del Quake III Arena se han ido creando contenidos y modos de juego.

Lo que nos llama la atención es el hecho de poder  trabajar con la IA del juego. Existen numerosas iniciativas y comentarios al respecto como los que vemos en Aigamedev o PlanetQuake.

Para empezar a trabajar con él debemos:

Iremos viendo poco a poco la forma de profundizar en el desarrollo de la inteligencia artificial para Quake 3.

Otra interesante iniciativa es la Quake 3 Brainworks mediante la que se ha organizado el desarrollo de la reescritura completa de la IA para los bots.

Entre las características que se han creado están:

  • Sistema de Percepción Visual y Auditiva
  • Esquivando aleatorios en las batallas.
  • Evasión de misiles.
  • Habilidad de juego por saltos. Strafejumping.
  • Puntería del enemigo mejorada.
  • Selección inteligente de recogida de items.
  • Gestión del tiempo de las reapariciones.
  • Selección dinámica del arma.
  • Selección de metas redefinida.
  • Selección de apuntado redefinida.
  • Lógica de juego en equipo redefinida.
  • Código de chat reescrito.
  • Infraestructura lógica interna redefinida.

Y además se han definido bots con 5 niveles de habilidad

  • Skill 1: Alguien que ha jugado a Q3A durante menos de 2 semanas.
  • Skill 2: Alguien que ha jugado a Q3A durante 3 meses.
  • Skill 3: Media de un jugador en un servidor público.
  • Skill 4: El mejor jugador de un servidor público.
  • Skill 5: Jugador de clan profesional que compite en torneos.

Echadle un vistazo, no os arrepentireis!

Skill 1: Alguien que ha jugado a Q3A durante menos de 2 semanas