Construyendo la IA para Athena Crisis

Rate this content
Bookmark
Project website

Esta charla se adentrará en cómo construir una IA para un juego de estrategia por turnos desde cero. Cuando comencé a construir Athena Crisis, no tenía idea de cómo construir una IA. Todos los recursos disponibles eran demasiado complejos o confusos, así que simplemente comencé a construirlo basándome en cómo jugaría el juego. ¡Si quieres aprender cómo construir una IA, no te pierdas esta charla!

This talk has been presented at JS GameDev Summit 2023, check out the latest edition of this JavaScript Conference.

FAQ

Athena Crisis es un juego que se está construyendo utilizando JavaScript, React y CSS. Está diseñado para ser jugado en múltiples dispositivos, incluyendo el Steam Deck, y utiliza estructuras de datos persistentes inmutables para manejar el estado del juego.

Nakazawa Tech, una startup ubicada en Tokio, ofrece una variedad de servicios que incluyen la construcción de videojuegos, coaching de liderazgo y soluciones para mejorar la velocidad de desarrollo y la productividad en proyectos basados en JavaScript.

La IA para Athena Crisis se construyó sobre abstracciones sólidas y primitivas, necesarias para manejar los algoritmos de búsqueda y las decisiones matemáticas del juego. La IA es rápida, sin estado, determinista y componible, actuando bajo el mismo conjunto de reglas que un jugador humano.

Los requisitos incluyen tener buenas abstracciones de programación, conocer los algoritmos de búsqueda para la localización de objetos dentro del juego, y tener conocimientos matemáticos para la toma de decisiones estratégicas.

Athena Crisis utiliza una arquitectura basada en acciones y respuestas, donde cada acción del jugador se valida contra el estado del juego y genera una respuesta que confirma la aplicabilidad de la acción dentro de las reglas del juego.

El sistema de niebla de guerra en Athena Crisis oculta partes del estado del juego que están fuera del rango de visión de las unidades del jugador, lo cual añade una capa estratégica al no revelar toda la información a todos los jugadores simultáneamente.

La comunicación se optimiza mediante el uso de estructuras de datos inmutables y codificadores/decodificadores automáticos para las acciones del juego, asegurando que solo los cambios necesarios sean transmitidos y manteniendo la sincronización entre cliente y servidor.

El juego utiliza algoritmos como A* para decisiones de ruta, y combina esto con un sistema que evalúa la acción óptima basada en el contexto de la unidad, como atacar, moverse hacia objetivos estratégicos o suministrar recursos, siempre dentro de las reglas del juego.

Christoph Nakazawa
Christoph Nakazawa
37 min
28 Sep, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Únete a Christoph de Nakazawa Tech en la construcción de la IA para Athena Crisis, un juego donde la IA realiza acciones como un jugador. Aprende sobre la importancia de las abstracciones, primitivas y algoritmos de búsqueda en la construcción de una IA para un videojuego. Explora la arquitectura de Athena Crisis, que utiliza estructuras de datos persistentes inmutables y actualizaciones optimistas. Descubre cómo implementar comportamientos de IA y crear una clase para la IA. Averigua cómo analizar unidades, asignar pesos y priorizar acciones basadas en el estado del juego. Considera los próximos pasos en la construcción de la IA y explora la posibilidad de construir una IA para un juego de estrategia en tiempo real.
Available in English: Building the AI for Athena Crisis

1. Introducción a la construcción de IA para Athena Crisis

Short description:

¡Hola! Únete a mí en mi charla sobre la construcción de la IA para Athena Crisis. Soy Christoph de Nakazawa Tech. Si no has oído hablar de Athena Crisis antes, te recomiendo ver mi charla anterior. Tengo experiencia en la gestión de equipos de infraestructura de React Native y JavaScript en Facebook. Ofrecemos coaching de liderazgo y resolución de problemas de JavaScript en Nakazawa Tech. Contáctanos en nakazawa.dev.

¡Oh, hola! Estoy jugando a Athena Crisis en mi Steam deck. Muchas gracias por unirte a mí en mi charla sobre la construcción de la IA para Athena Crisis. Soy Christoph y dirijo una pequeña startup en Tokio llamada Nakazawa Tech. Si no has oído hablar de Athena Crisis antes, recientemente en la React Summit hace unos meses, di una charla que explica cómo se está construyendo el juego, y todo está construido con JavaScript, React y CSS. Recomiendo encarecidamente que si no lo has visto, vuelvas y veas esa charla. Si retrocedemos aún más, si nunca has trabajado conmigo antes o si no me conoces, solía gestionar los equipos de infraestructura de React Native y JavaScript en Facebook, y construí un framework de pruebas llamado JustJavaScript. Hacemos muchas cosas en Nakazawa Tech, incluyendo la construcción de videojuegos, pero también ofrecemos coaching de liderazgo, y podemos ayudarte con tus problemas de JavaScript, con la velocidad de desarrollo, la productividad o ayudarte con cualquier problema que puedas encontrar al construir aplicaciones basadas en JavaScript. Por favor, trabaja con nosotros, contáctanos en nakazawa.dev.

2. Understanding Athena Crisis and Building an AI

Short description:

Antes de sumergirnos en la construcción de una IA para Athena Crisis, comprendamos qué es Athena Crisis. En el juego, puedo entrar en una partida desde el menú y jugar. Después de mi turno, la IA toma el control y realiza todas las acciones necesarias, como un jugador. Puede atacar, moverse y capturar edificios. Ahora, exploremos cómo construir una IA así.

Primero, antes de adentrarnos en la construcción de una IA para Athena Crisis, dediquemos un poco de tiempo a comprender qué es Athena Crisis. Estoy aquí en el juego en el menú, y puedes ver la página de descripción general en este momento, y puedo entrar en una partida desde aquí mismo. Y así, puedo jugar el juego. Aún no todos los ataques tienen sonido, pero algunos sí lo tienen. Pero lo interesante es que, una vez que termino mi turno, déjame construir algunas unidades. Cuando termino mi turno, la IA toma el control y se encarga de su turno. Realiza ataques, se mueve, puede capturar edificios, puede hacer todo lo que un jugador haría.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Compilador React Forget - Entendiendo React Idiomático
React Advanced 2023React Advanced 2023
33 min
Compilador React Forget - Entendiendo React Idiomático
Top Content
Joe Savona
Mofei Zhang
2 authors
The Talk discusses React Forget, a compiler built at Meta that aims to optimize client-side React development. It explores the use of memoization to improve performance and the vision of Forget to automatically determine dependencies at build time. Forget is named with an F-word pun and has the potential to optimize server builds and enable dead code elimination. The team plans to make Forget open-source and is focused on ensuring its quality before release.
Acelerando tu aplicación React con menos JavaScript
React Summit 2023React Summit 2023
32 min
Acelerando tu aplicación React con menos JavaScript
Top Content
Mishko, the creator of Angular and AngularJS, discusses the challenges of website performance and JavaScript hydration. He explains the differences between client-side and server-side rendering and introduces Quik as a solution for efficient component hydration. Mishko demonstrates examples of state management and intercommunication using Quik. He highlights the performance benefits of using Quik with React and emphasizes the importance of reducing JavaScript size for better performance. Finally, he mentions the use of QUIC in both MPA and SPA applications for improved startup performance.
SolidJS: ¿Por qué tanto Suspense?
JSNation 2023JSNation 2023
28 min
SolidJS: ¿Por qué tanto Suspense?
Top Content
Suspense is a mechanism for orchestrating asynchronous state changes in JavaScript frameworks. It ensures async consistency in UIs and helps avoid trust erosion and inconsistencies. Suspense boundaries are used to hoist data fetching and create consistency zones based on the user interface. They can handle loading states of multiple resources and control state loading in applications. Suspense can be used for transitions, providing a smoother user experience and allowing prioritization of important content.
De GraphQL Zero a GraphQL Hero con RedwoodJS
GraphQL Galaxy 2021GraphQL Galaxy 2021
32 min
De GraphQL Zero a GraphQL Hero con RedwoodJS
Top Content
Tom Pressenwurter introduces Redwood.js, a full stack app framework for building GraphQL APIs easily and maintainably. He demonstrates a Redwood.js application with a React-based front end and a Node.js API. Redwood.js offers a simplified folder structure and schema for organizing the application. It provides easy data manipulation and CRUD operations through GraphQL functions. Redwood.js allows for easy implementation of new queries and directives, including authentication and limiting access to data. It is a stable and production-ready framework that integrates well with other front-end technologies.
Los Átomos de Jotai Son Simplemente Funciones
React Day Berlin 2022React Day Berlin 2022
22 min
Los Átomos de Jotai Son Simplemente Funciones
Top Content
State management in React is a highly discussed topic with many libraries and solutions. Jotai is a new library based on atoms, which represent pieces of state. Atoms in Jotai are used to define state without holding values and can be used for global, semi-global, or local states. Jotai atoms are reusable definitions that are independent from React and can be used without React in an experimental library called Jotajsx.
Un Marco para Gestionar la Deuda Técnica
TechLead Conference 2023TechLead Conference 2023
35 min
Un Marco para Gestionar la Deuda Técnica
Top Content
Today's Talk discusses the importance of managing technical debt through refactoring practices, prioritization, and planning. Successful refactoring requires establishing guidelines, maintaining an inventory, and implementing a process. Celebrating success and ensuring resilience are key to building a strong refactoring culture. Visibility, support, and transparent communication are crucial for addressing technical debt effectively. The team's responsibilities, operating style, and availability should be transparent to product managers.

Workshops on related topic

IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.
Crea un Juego Con PlayCanvas en 2 Horas
JSNation 2023JSNation 2023
116 min
Crea un Juego Con PlayCanvas en 2 Horas
Top Content
Featured WorkshopFree
Steven Yau
Steven Yau
En esta masterclass, construiremos un juego utilizando el motor WebGL de PlayCanvas desde el principio hasta el final. Desde el desarrollo hasta la publicación, cubriremos las características más cruciales como la escritura de scripts, la creación de UI y mucho más.
Tabla de contenido:- Introducción- Introducción a PlayCanvas- Lo que vamos a construir- Agregando un modelo de personaje y animación- Haciendo que el personaje se mueva con scripts- 'Falsa' carrera- Agregando obstáculos- Detectando colisiones- Agregando un contador de puntuación- Fin del juego y reinicio- ¡Resumen!- Preguntas
Nivel de la masterclassSe recomienda familiaridad con los motores de juegos y los aspectos del desarrollo de juegos, pero no es obligatorio.
AI para Desarrolladores de React
React Advanced 2024React Advanced 2024
142 min
AI para Desarrolladores de React
Featured Workshop
Eve Porcello
Eve Porcello
El conocimiento de las herramientas de AI es fundamental para preparar el futuro de las carreras de los desarrolladores de React, y la suite de herramientas de AI de Vercel es una vía de acceso accesible. En este curso, examinaremos más de cerca el Vercel AI SDK y cómo esto puede ayudar a los desarrolladores de React a construir interfaces de transmisión con JavaScript y Next.js. También incorporaremos APIs de terceros adicionales para construir y desplegar una aplicación de visualización de música.
Temas:- Creación de un Proyecto de React con Next.js- Elección de un LLM- Personalización de Interfaces de Transmisión- Construcción de Rutas- Creación y Generación de Componentes - Uso de Hooks (useChat, useCompletion, useActions, etc)
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Node Congress 2024Node Congress 2024
152 min
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Featured Workshop
Emanuel Scirlet
Miguel Henriques
2 authors
Ven y aprende cómo puedes potenciar tus aplicaciones modernas y seguras utilizando GraphQL y Javascript. En este masterclass construiremos una API de GraphQL y demostraremos los beneficios del lenguaje de consulta para APIs y los casos de uso para los que es adecuado. Se requiere conocimiento básico de Javascript.
Aprovechando LLMs para Construir Experiencias de IA Intuitivas con JavaScript
JSNation 2024JSNation 2024
108 min
Aprovechando LLMs para Construir Experiencias de IA Intuitivas con JavaScript
Featured Workshop
Roy Derks
Shivay Lamba
2 authors
Hoy en día, todos los desarrolladores están utilizando LLMs en diferentes formas y variantes, desde ChatGPT hasta asistentes de código como GitHub CoPilot. Siguiendo esto, muchos productos han introducido capacidades de IA integradas, y en este masterclass haremos que los LLMs sean comprensibles para los desarrolladores web. Y nos adentraremos en la codificación de tu propia aplicación impulsada por IA. No se necesita experiencia previa en trabajar con LLMs o aprendizaje automático. En su lugar, utilizaremos tecnologías web como JavaScript, React que ya conoces y amas, al mismo tiempo que aprendemos sobre algunas nuevas bibliotecas como OpenAI, Transformers.js
Masterclass: Qué son y cómo aprovechar los LLMs
React Summit 2024React Summit 2024
66 min
Masterclass: Qué son y cómo aprovechar los LLMs
Featured Workshop
Nathan Marrs
Haris Rozajac
2 authors
Únete a Nathan en esta sesión práctica donde primero aprenderás a alto nivel qué son los modelos de lenguaje grandes (LLMs) y cómo funcionan. Luego sumérgete en un ejercicio de codificación interactivo donde implementarás la funcionalidad de LLM en una aplicación de ejemplo básica. Durante este ejercicio, adquirirás habilidades clave para trabajar con LLMs en tus propias aplicaciones, como la ingeniería de indicaciones y la exposición a la API de OpenAI.
Después de esta sesión, tendrás una idea de qué son los LLMs y cómo se pueden utilizar prácticamente para mejorar tus propias aplicaciones.
Tabla de contenidos:- Demostración interactiva de la implementación de funciones básicas impulsadas por LLM en una aplicación de demostración- Discutir cómo decidir dónde aprovechar los LLMs en un producto- Lecciones aprendidas sobre la integración con OpenAI / descripción general de la API de OpenAI- Mejores prácticas para la ingeniería de indicaciones- Desafíos comunes específicos de React (gestión de estado :D / buenas prácticas de UX)