Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Plática General sobre el lenguaje de programación Python presentada en FLISOL 2011 Celaya. Guanajuato. en el Instituto Tecnológico de Celaya por Jorge Hernández (@lesthack)
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Plática General sobre el lenguaje de programación Python presentada en FLISOL 2011 Celaya. Guanajuato. en el Instituto Tecnológico de Celaya por Jorge Hernández (@lesthack)
La pujante industria del videojuego requiere de amplios equipos de diseño y programación capaces de crear todos los contenidos necesarios para que los productos de calidad tengan éxito en el mercado: gráficos, sonido, mundos virtuales, argumento, guiones...
Cada vez más se hace necesaria la utilización de métodos que permitan generar los contenidos de forma semiautomática, liberando así a los equipos de diseño y desarrollo de tareas que puedan ser mecanizables, y reduciendo por tanto los costes de desarrollo.
En esta conferencia revisaremos la aplicación de técnicas evolutivas a la generación de contenidos. En particular hablaremos de Programación Genética y sus aplicaciones para crear familias de terrenos.
GCV 03 Herramientas de desarrollo: Específicas para Videojuegos - Gestión de ...Federico Peinado
Curso teórico-práctico sobre cómo funciona la gestión de la calidad en la industria del entretenimiento interactivo y cómo realizar de manera profesional el control de calidad y el trabajo de probador de videojuegos.
Curso teórico-práctico sobre Diseño de Videojuegos (DV) fuertemente basado en el modelo de Mecánica-Dinámica-Estética, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Desarrollo de Videojuegos (DEV) orientado hacia la creación de contenido y desarrollo de jugabilidad mediante un lenguaje de programación visual como Blueprints en Unreal Engine. Impartido en el Máster en Ingeniería Informática de la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Diseño de Videojuegos (DV) fuertemente basado en el modelo de Mecánica-Dinámica-Estética, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Diseño de Videojuegos (DV) fuertemente basado en el modelo de Mecánica-Dinámica-Estética, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Desarrollo de Videojuegos (DEV) orientado hacia la creación de contenido y desarrollo de jugabilidad mediante un lenguaje de programación visual como Blueprints en Unreal Engine. Impartido en el Máster en Ingeniería Informática de la Universidad Complutense de Madrid.
Mis compañeros Data Scientist ya han hecho un modelo de Machine Learning y ahora me toca a mi ponerlo en producción para los clientes y conseguir que escale de forma masiva. En esta charla vamos a ver el lado más ingenieril: decisiones tomadas, decisiones descartadas, cosas que no nos han funcionado (y por qué) y cómo nuestro viejo amigo PySpark nunca nos defrauda. Aprenderemos lo que son las UDFs de Spark y como utilizarlas en combinación con un modelo de LightGBM para hacer predicciones. Tambén veremos la importancia de poder iterar rápido y probar cosas utilizando Databricks.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Más contenido relacionado
Similar a Generación procedimental de contenido (+ Pseudocódigo)
La pujante industria del videojuego requiere de amplios equipos de diseño y programación capaces de crear todos los contenidos necesarios para que los productos de calidad tengan éxito en el mercado: gráficos, sonido, mundos virtuales, argumento, guiones...
Cada vez más se hace necesaria la utilización de métodos que permitan generar los contenidos de forma semiautomática, liberando así a los equipos de diseño y desarrollo de tareas que puedan ser mecanizables, y reduciendo por tanto los costes de desarrollo.
En esta conferencia revisaremos la aplicación de técnicas evolutivas a la generación de contenidos. En particular hablaremos de Programación Genética y sus aplicaciones para crear familias de terrenos.
GCV 03 Herramientas de desarrollo: Específicas para Videojuegos - Gestión de ...Federico Peinado
Curso teórico-práctico sobre cómo funciona la gestión de la calidad en la industria del entretenimiento interactivo y cómo realizar de manera profesional el control de calidad y el trabajo de probador de videojuegos.
Curso teórico-práctico sobre Diseño de Videojuegos (DV) fuertemente basado en el modelo de Mecánica-Dinámica-Estética, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Desarrollo de Videojuegos (DEV) orientado hacia la creación de contenido y desarrollo de jugabilidad mediante un lenguaje de programación visual como Blueprints en Unreal Engine. Impartido en el Máster en Ingeniería Informática de la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Diseño de Videojuegos (DV) fuertemente basado en el modelo de Mecánica-Dinámica-Estética, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Diseño de Videojuegos (DV) fuertemente basado en el modelo de Mecánica-Dinámica-Estética, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Desarrollo de Videojuegos (DEV) orientado hacia la creación de contenido y desarrollo de jugabilidad mediante un lenguaje de programación visual como Blueprints en Unreal Engine. Impartido en el Máster en Ingeniería Informática de la Universidad Complutense de Madrid.
Mis compañeros Data Scientist ya han hecho un modelo de Machine Learning y ahora me toca a mi ponerlo en producción para los clientes y conseguir que escale de forma masiva. En esta charla vamos a ver el lado más ingenieril: decisiones tomadas, decisiones descartadas, cosas que no nos han funcionado (y por qué) y cómo nuestro viejo amigo PySpark nunca nos defrauda. Aprenderemos lo que son las UDFs de Spark y como utilizarlas en combinación con un modelo de LightGBM para hacer predicciones. Tambén veremos la importancia de poder iterar rápido y probar cosas utilizando Databricks.
Similar a Generación procedimental de contenido (+ Pseudocódigo) (20)
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Búsqueda de caminos usando estrategias informadasFederico Peinado
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Resolución de problemas en el espacio de estadosFederico Peinado
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
Si bien los hospitales conjuntan a profesionales de salud que atienden a la población, existe un equipo de organización, coordinación y administración que permite que los cuidados clínicos se otorguen de manera constante y sin obstáculos.
Mario García Baltazar, director del área de Tecnología (TI) del Hospital Victoria La Salle, relató la manera en la que el departamento que él lidera, apoyado en Cirrus y Estela, brinda servicio a los clientes internos de la institución e impulsa una experiencia positiva en el paciente.
Conoce el Hospital Victoria La Salle
Ubicado en Ciudad Victoria, Tamaulipas, México
Inició operaciones en el 2016
Forma parte del Consorcio Mexicanos de Hospitales
Hospital de segundo nivel
21 habitaciones para estancia
31 camas censables
13 camillas
2 quirófanos
+174 integrantes en su plantilla
+120 equipos médicos de alta tecnología
+900 pacientes atendidos
Servicios de +20 especialidades
Módulos utilizados de Cirrus
HIS
EHR
ERP
Estela - Business Intelligence
Escaneo y eliminación de malware en el equiponicromante2000
El malware tiene muchas caras, y es que los programas maliciosos se reproducen en los ordenadores de diferentes formas. Ya se trate de virus, de programas espía o de troyanos, la presencia de software malicioso en los sistemas informáticos siempre debería evitarse. Aquí te muestro como trabaja un anti malware a la hora de analizar tu equipo
Los desafíos de calidad de software que nos trae la IA y los LLMsFederico Toledo
En esta charla, nos sumergiremos en los desafíos emergentes que la inteligencia artificial (IA) y los Large Language Models (LLMs) traen al mundo de la calidad del software y el testing. Exploraremos cómo la integración, uso o diseño de modelos de IA plantean nuevos retos, incluyendo la calidad de datos y detección de sesgos, sumando la complejidad de probar algo no determinístico. Revisaremos algunas propuestas que se están llevando adelante para ajustar nuestras tareas de testing al desarrollo de este tipo de sistemas, incluyendo enfoques de pruebas automatizadas y observabilidad.
2. ● La inteligencia tiene algo de “sorpresa”, de
producir algo nuevo (creatividad)... y no se
es creativo sin un mínimo de inteligencia
Generación procedimental de contenido 2
Motivación
“Las máquinas me sorprenden con mucha frecuencia” - Alan M. Turing
3. ● Resolver problemas
difíciles supone
enfrentar problemas
no conocidos de
antemano
● La generación procedimental de contenido
ofrece contenido complejo y nuevo,
desconocido… abordarlo como NPC es
difícil, y por tanto ¡ahí sí se requiere IA!
Generación procedimental de contenido 3
Motivación
PROCEDURAL CONTENT GENERATION (ProcGen / PCG)
4. ● Hablamos de IA para videojuegos bajo el
paradigma Generador, además de un
sistema que ayuda en el proceso de diseño
y desarrollo de videojuegos
○ Típicamente más complejo que un generador de
texturas (ayuda para el artista), y más simple que
un director automático (¡sustituto del diseñador!)
Generación procedimental de contenido 4
Motivación
5. ● Tiene ventajas obvias como la cantidad y
variedad de contenido, el ahorro en
esfuerzo de desarrollo, incluso en espacio…
○ En la demoscene hay proyectos que generan todo su
contenido, incluso juegos
Generación procedimental de contenido 5
Motivación
https://files.scene.org/view/demos/groups/farb-rausch/kkrieger-beta.zip
6. ● La generación procedimental de contenido
tampoco es algo nuevo
● En los años 80 hubo juegos que la usaban
como forma de “comprimir” el contenido
○ Ej. Exile, un sistema de cuevas subterráneas
○ Ej. Elite, una galaxia llena de estrellas (influyó en
Elite: Dangerous, Spore y No Man’s Sky)
Generación procedimental de contenido 6
Hitos históricos
7. ● Rogue (1980) es el paradigma del género de
mazmorras autogeneradas y muerte
permanente: los rogue-likes (o rogue-lites
como The Binding of Isaac, Spelunky…)
○ También en Diablo y Bloodborne, siendo actuales,
se generan mazmorras de manera procedimental
● Entonces ya había competiciones a juegos
entre alumnos, en universidades como CMU
○ Rog-O-Matic (1981) fue un
primer bot creado por ellos para
ganar en el juego incluso a
jugadores humanos Generación procedimental de contenido 7
Hitos históricos
8. ● Más adelante se popularizó la
generación de terrenos y de
vegetación (en tiempo de
desarrollo) que hoy usa casi
cualquier videojuego o IDE 3D
● En Civilization y
secuelas, los mapas
multijugador también
se pueden generar
procedimentalmente
Generación procedimental de contenido 8
Hitos históricos
9. ● Antes de hablar de ProcGen…
¡vamos a meternos en este asunto!
Generación procedimental de contenido 9
Pseudocódigo
10. ● En el libro de Millington se presenta
1. El problema que se quiere resolver
2. La técnica propuesta como solución
(descrita en lenguaje natural o con diagramas)
3. Generalmente, un algoritmo en pseudocódigo
4. La representación de la información utilizada para
el mundo del juego o para el interior del algoritmo
(descrita en lenguaje natural o en pseudocódigo)
5. Consejos para la implementación de todo ello
6. Análisis del rendimiento (velocidad de ejecución,
espacio en memoria, escalabilidad) en Notación O()
7. Puntos fuertes y débiles de esta técnica (y a veces
también variantes del algoritmo)
Generación procedimental de contenido 10
Pseudocódigo
11. ● Millington propone un pseudocódigo simple
y breve, muy similar al lenguaje Python
○ Tanto para algoritmos como para representaciones
○ Se asume que hay estructuras de datos sofisticadas
disponibles (lista, tabla, mapa, cola de prioridad…)
● Recuerda que la eficiencia siempre
depende a la vez del algoritmo y la
representación de la información escogidos
Generación procedimental de contenido 11
Pseudocódigo
12. ● Se seguirán estas convenciones de código
○ Líneas numeradas y estructura de bloques reflejada
con el propio sangrado y también con dos puntos (:)
○ Comentarios de línea (#)
○ Palabras reservadas function, return, class, new,
extends (herencia)
○ El punto (.) para llamar a los métodos (aquí
llamados function) de una clase
Generación procedimental de contenido 12
Pseudocódigo
13. ○ Variables miembro accesibles pero locales a su
definición, pudiendo inicializarse y a menudo
obviando métodos getters y setters
○ Parámetros entre paréntesis () y entre comas (,).
○ Tipos básicos (bool, int, long, float…) tras el
nombre de la variable con dos puntos (numero:int),
salvo el tipo de retorno que se indica con (->float)
… aunque pueden sobreentenderse
○ Booleanos true, false y también and, or y not
○ Asignación (=), equivalencia (==), y otros
operadores útiles como (+=) ó (*=)
Generación procedimental de contenido 13
Pseudocódigo
14. ○ Bucles while y for a in b, donde b puede ser rango
○ Rangos crecientes tipo 0..5 (o decrecientes como
5..0) donde NO está incluido el valor más alto
○ Rangos abiertos tipo 0.. donde se omite un extremo
○ Los arrays empiezan en cero, se declaran con
corchetes (array[]), dan elementos usando el índice
(array[index]) y subarrays con el rango (array[2..5])
○ Los arrays se comportan como listas (podemos
añadir y quitar elementos donde queramos)
Generación procedimental de contenido 14
Pseudocódigo
15. ● Ej. Algoritmo simple para encontrar el valor
más grande de un array no ordenado
Generación procedimental de contenido 15
Pseudocódigo
16. ● En C# y en Unity Visual Scripting
Generación procedimental de contenido 16
Código
17. ● Debemos elegir adecuadamente el modo en
que pasamos información a un algoritmo
○ A menudo hay que realizar conversiones de un tipo
de representación a otra, teniendo cuidado de no
perder información o perder sólo detalles inútiles
○ Generalmente sólo nos interesará la interfaz de la
representación, y no entraremos en la estructura
de datos concreta con la que implementarla
Generación procedimental de contenido 17
Pseudocódigo
18. ● En juegos como Minecraft se parte de una
única semilla (número “aleatorio”)
Generación procedimental de contenido 18
Generación de mundos
19. ● Son muy utilizados y los hay de tres tipos
○ Aleatorios de verdad (¡haría falta HW especial que
lea ruido térmico o algún otro fenómeno físico!)
○ Criptográficos, que son impredecibles e irrepetibles
○ Pseudoaleatorios “habituales”, que para una misma
semilla siguen siempre una misma secuencia
■ A veces es posible averiguar la semilla
analizando partes de dicha secuencia, incluso...
■ Existen algoritmos muy populares (Ej. Mersenne
Twister), pero muchos desarrolladores prefieren
programarse su propio algoritmo para que la
implementación sea fija
Generación procedimental de contenido 19
Números pseudoaleatorios
PSEUDORANDOM NUMBERS
20. ● Conviene crear todas las semillas de los
distintos subsistemas en cadena
■ Que el mundo entero dependa de 1 sóla semilla, sin partes
dependientes del tiempo o de otras variables del juego
Generación procedimental de contenido 20
Números pseudoaleatorios
21. ● La necesidad típica a la hora de generar
escenarios es poder generar su orografía
○ Es decir, el terreno y la vegetación
● Existen diversas técnicas, según el tipo de
escenario a generar
○ Mapas de altitud
○ Texturas de ruido
○ Algoritmo Doran-Parberry
para generación
“controlada” de terreno
○ Gramáticas
○ Generación cíclica
○ … Generación procedimental de contenido 21
Generación de escenarios
22. ● Los algoritmos que generan mapas de
alturas o texturas procedimentales que
incluyen ruido son muy útiles para esto
○ El ruido es lo que añade detalle realista a un mapa
de alturas cualquiera que tengamos…
Generación procedimental de contenido 22
Generación de terrenos
23. ● El más famoso es el Ruido de Perlin creado
para la película Tron (1982)
○ Con los años, Ken Perlin recibió un Óscar por ello
Generación procedimental de contenido 23
Generación de terrenos
24. ● Busca que la altura de una celda esté
relacionada con la de sus vecinas, como
ocurre en suelos, montañas o nubes reales
○ Se basa en una cuadrícula (Ej. 1024x1024 px. de
terreno, dividido en 256 cuadrados de 64x64 px.)
○ A los vértices se añaden vectores pseudoaleatorios
○ La altura de un punto X del terreno se obtendrá por
interpolación entre los vértices de su cuadrado
○ Puede normalizarse a un cierto rango (max, min)
○ El mejor ruido se genera combinando octavas
(cuadrículas de tamaños sucesivos: 1x1, 2x2, 4x4…)
Generación procedimental de contenido 24
Ruido de Perlin
25. ● Algoritmo de ruido de Perlin en 2D
○ Combina octavas a distintos pesos, prefijados en (0,1)
Generación procedimental de contenido 25
Ruido de Perlin
* _ representa una
variable anónima
*La primera octava será
de tamaño 1,
luego 2, 4, 8… tantas
como pesos me pasen;
aumentando el nivel de
detalle del ruido
*get devuelve la altura
del punto (x, y) del
terreno generado
26. ● Se crea la octava con un vector
pseudoaleatorio 2D en cada esquina
(los llamados “gradientes”)
Generación procedimental de contenido 26
Ruido de Perlin
27. ● Superponemos la cuadrícula y para cada
punto (x,y) del terreno se calcula su altura
○ Esta dependerá de los 4 gradientes que estén en las
coordenadas (ix, iy) de las esquinas de su celda
○ Por cada esquina se calcula el producto escalar del
gradiente por la distancia del punto a la esquina
Generación procedimental de contenido 27
Ruido de Perlin
28. ● Esto se repite para las 4 esquinas de la
celda (top left, top right, bottom left, bottom right) y se
interpolan esos 4 valores (con tres lerp)
para obtener la altura definitiva del punto
Generación procedimental de contenido 28
Ruido de Perlin
*lerp calcula la interpolación lineal
entre dos valores (normalmente con
respecto a un peso entre 0 y 1).
En este caso la fórmula rápida es
lerp(origen, destino, peso) =
origen + peso * (destino - origen)
Tiempo = O(n2
log n)
Espacio < O(n2
)
donde n es la extensión del terreno
29. ● ¿Cuántos elementos tiene el rango [3..0]?
A. 3
B. 4
C. 2
D. 0
● Desarrolla tu respuesta (en texto libre)
Generación procedimental de contenido 29
Participación
30. ● Millington, I.: Artificial Intelligence for
Games. CRC Press, 3rd Edition (2019)
○ Sistemas Lindenmayer
○ Gramáticas de formas
● Shaker, N., Togelius, J., Nelson, M.J.:
Procedural Content Generation in Games.
Springer (2016)
○ http://pcgbook.com
● Yannakakis, G., Togelius, J.: Artificial
Intelligence and Games. Springer (2018)
Generación procedimental de contenido 30
Más información
31. * Excepto el contenido multimedia de terceros autores
Federico Peinado (2019-2023)
www.federicopeinado.es
Críticas, dudas, sugerencias...