1 / 99

Taller Práctico de IA y Lógica en Videojuegos

Autor: Jesús Flores García Tenerife LanParty 2k9. Taller Práctico de IA y Lógica en Videojuegos. Objetivos. Taller de iniciación Aclaración conceptos Introducción de técnicas básicas Resolución cuestiones y dudas Más ameno que riguroso. Temario. Día 1: Entrando en la “ Matrix ”

lynn
Download Presentation

Taller Práctico de IA y Lógica en Videojuegos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Autor: Jesús Flores García Tenerife LanParty 2k9 Taller Práctico de IA y Lógica en Videojuegos

  2. Objetivos • Taller de iniciación • Aclaración conceptos • Introducción de técnicas básicas • Resolución cuestiones y dudas • Más ameno que riguroso

  3. Temario • Día 1: Entrando en la “Matrix” • Día 2: Buscando el camino • Día 3: Nuestro cajón de arena • Día 4: Ahora te vas y ¿yo qué hago?

  4. Día 1: Entrando en la “Matrix” • Introducción de IA en videojuegos • Principios básicos • Objetos y Comportamientos • Máquinas de estados (FSM)

  5. Día 2: Buscando el camino • Decisiones y Capas • Caso de Estudio: Pathfinding • Técnica de alto nivel: NavMaps • Técnica de bajo nivel: Perseguidor

  6. Día 1: Entrando en la “Matrix”

  7. Día 1: Entrando en la “Matrix” • Introducción de IA en videojuegos • Principios básicos • Objetos y Comportamientos • Máquinas de estados (FSM)

  8. Breve Introducción de IA • NIÑO: No intentes doblar la cuchara. Eso es imposible. En vez de eso, sólo procura comprender la verdad. • NEO: ¿Qué verdad? • NIÑO: Que no hay cuchara. • NEO: ¿No hay cuchara?

  9. Breve Introducción de IA • Falsear la realidad • Distraer la atención • Cómputos ligeros • Soluciones aceptables, no óptimas

  10. ¡Quieres empezar! Inicialización • Bucle de Juego • Fase de Update • Fase de Render Update Render Cierre

  11. ¡Código Please! if ( SGame.Init( hWnd ) ) { _________ while( msg.message != WM_QUIT ) { _________ SGame.Update( seconds ); SGame.Render(); } SGame.Destroy(); }

  12. Objetos y Sistema de Referencia

  13. Objetos y Sistema de Referencia

  14. Mates I: Vectores y Puntos • XYZ • D3DXVECTOR3 (X, Y, Z) (X, Y, Z)

  15. Objetos y Comportamientos

  16. Objetos y Comportamientos

  17. Objetos y Comportamientos

  18. Objetos y Comportamientos Comportamiento

  19. Patrón Estrategia OBJECT STRATEGY Strategy * strg; algorithm() STRATEGY 1 STRATEGY 2 STRATEGY 3 algorithm() algorithm() algorithm()

  20. ¡A Practicar!

  21. ¿Por qué necesitamos más? • Tenemos un comportamiento simple • Queremos: • Secuencias • Comportamientos más complejos • Recordar pasos anteriores

  22. Ejemplo: Enemigo Secuencial ESPERAR LANZAR BARRIL

  23. Ejemplo: Más moderno

  24. FSM – Máquinas de Estados • Comportamiento Complejo Enemigo Usa Ascensor

  25. FSM – Máquinas de Estados • Comportamiento se descompone Enemigo Usa Ascensor Pulsar Botón Entrar Pulsar Botón Salir

  26. FSM – Máquinas de Estados • Transiciones Enemigo Usa Ascensor Pulsar Botón Entrar Pulsar Botón Salir

  27. FSM – Máquinas de Estados • Reglas de Transición Enemigo Usa Ascensor Pulsar Botón Entrar Pulsar Botón Salir Estar Dentro Esperar Esperar

  28. FSM – Implementación • Se debe guardar el estado actual • Secuencia de IF´s if ( state == “AAA” ) … elseif ( state == “BBB” ) … elseif ( state == “CCC” ) …

  29. FSM – Implementación • Mejor con números (eficiencia) • Secuencia de IF´s if ( state == 0 ) … elseif ( state == 1 ) … elseif ( state == 2 ) …

  30. FSM – Implementación • Mejor usar un switch: switch( state ) { … case 0: … break; case 1: … break; case 2: … break; }

  31. FSM – Implementación • Un enum es más claro: switch( state ) { … case AAA: … break; case BBB: … break; case CCC: … break; }

  32. FSM – Implementación • Válido para casos sencillos • Problema del switch de las 5000 líneas switch( state ) { … case AAA: … break; case BBB: … break; case CCC: … break; }

  33. FSM – Implementación • Crear una función para cada estado switch( state ) { … case AAA: AAA(); break; case BBB: BBB(); break; case CCC: CCC(); break; }

  34. FSM – Implementación • Válido para máquinas medianas • No tiene código en las transiciones switch( state ) { … case AAA: AAA(); break; case BBB: BBB(); break; case CCC: CCC(); break; }

  35. FSM – Implementación • Los estados son clases: STATE OnEnter() OnUpdate() OnExit()

  36. FSM – Implementación • La FSM es otra clase: STATE 1 STATE 2 FSM STATE 3 State * actual; STATE 4 STATE … STATE N

  37. FSM – Implementación • Miles de implementaciones • Miles de artículos • Miles de extensiones • Máquinas de Máquinas de estados • Basadas en Eventos • Máquinas de pila • Máquinas multi-estados (No deterministas) • Máquinas inerciales • Máquinas Fuzzy (FuSM) • ….

  38. No Matar Moscas a Cañonazos • Usa lo que te haga falta • No hay soluciones generales

  39. ¡A Practicar!

  40. Mates II: Entre 2 Puntos • VDistancia = PtoDestino – PtoOrigen • Distancia = Length(VDistancia) • Dirección = Normalize(VDistancia)

  41. Mates III: Ángulos • VDistancia = PtoDestino – PtoOrigen • Ángulo = atan2( X, Z ); Z X

  42. Día 2: Buscando el camino

  43. Día 2: Buscando el camino • Decisiones y Capas • Caso de Estudio: Pathfinding • Técnica de alto nivel: NavMaps • Técnica de bajo nivel: Perseguidor

  44. Decisiones en el Juego • Múltiples decisiones que tomar Curarse Pulsar Botón Volver a la Base Perseguir J1 Esperar Usar Ascensor Cambiar Animación Subir Escaleras Pedir Refuerzos Disparar

  45. Decisiones en el Juego • No es bueno que todo se resuelva a la vez Curarse Pulsar Botón Volver a la Base Perseguir J1 Esperar Usar Ascensor Cambiar Animación Subir Escaleras Pedir Refuerzos Disparar

  46. Decisiones y Capas • Diferentes niveles / Capas de decisión: Decisiones a largo plazo Decisiones a medio plazo Decisiones a corto plazo Decisiones a inmediatas

  47. Decisiones • Ejemplos de Decisiones: Decisiones a largo plazo Atacar Base Enemiga Decisiones a medio plazo Buscar Ruta Segura Decisiones a corto plazo Disparar a vigilante Decisiones a inmediatas Ejecutar Animación

  48. Decisiones • Diferentes estrategias / técnicas: Decisiones a largo plazo T1 T2 Decisiones a medio plazo T3 Decisiones a corto plazo T4 Decisiones a inmediatas T5 T6

  49. Decisiones y Capas • Distinta frecuencia de actualización: Decisiones a largo plazo 120 segs Decisiones a medio plazo 10 segs Decisiones a corto plazo 0.5 segs Decisiones a inmediatas 0.0016 segs

  50. Decisiones y Capas • Distintos subsistemas: Perseguir J1 Volver a la Base Subir Escaleras Pedir Refuerzos Usar Ascensor Curarse Disparar Pulsar Botón Cambiar Animación

More Related