Machine Learning en el Desarrollo de Juegos

Rate this content
Bookmark

En esta charla, compartiré mis experiencias utilizando el aprendizaje automático para identificar tramposos en juegos multijugador. También discutiremos el potencial del aprendizaje automático en el desarrollo de juegos.

FAQ

El cheating en los videojuegos se refiere a la práctica de usar métodos, como software o dispositivos externos, para obtener una ventaja injusta sobre otros jugadores. Esto puede incluir manipulación de datos, uso de aimbots, TRIGGERBOTS, wall hacks, entre otros.

El machine learning puede identificar patrones complejos y sutiles en el comportamiento de los jugadores que podrían indicar trampas. Adaptándose a las estrategias cambiantes de los jugadores, puede detectar nuevas formas de cheating y ofrecer una alta precisión en la detección, reduciendo las falsas alarmas.

Un aimbot es un tipo de cheat en videojuegos que ayuda al usuario a rastrear automáticamente a otros jugadores y a apuntar hacia ellos, superando las capacidades humanas, especialmente en juegos de disparos. Funciona extrayendo información inaccesible para otros jugadores y asistiendo en el apuntado.

Un TRIGGERBOT es un tipo de cheat que dispara automáticamente cuando el jugador apunta a un oponente. A diferencia del aimbot, el jugador debe apuntar al enemigo por sí mismo, pero el TRIGGERBOT elimina el retraso en el disparo, aprovechando los reflejos humanos.

Los wall hacks son cheats que permiten a los jugadores ver a través de obstáculos físicos como paredes o cajas. Esto proporciona una ventaja injusta ya que el jugador puede prepararse para encuentros con oponentes o atacarlos sin ser detectado.

El modelo basado en reglas evalúa las acciones de los jugadores contra un conjunto de reglas definidas para asegurar la equidad. Analiza datos como el uso de recursos, la cantidad de disparos y el tiempo entre ellos para identificar posibles trampas. Algunas reglas pueden sumar puntos de cheating, que se acumulan para identificar a los tramposos.

Uno de los mayores desafíos es la falta de datos etiquetados, que son necesarios para entrenar modelos precisos. Distinguir entre comportamiento normal y trampas sin un modelo entrenado previamente puede ser complicado, además de otros retos técnicos y computacionales.

Mantener la integridad en los videojuegos es crucial para preservar la confianza y la diversión de los jugadores. Esto asegura que todos sigan las mismas reglas, proporcionando una experiencia justa y disfrutable, lo que a su vez ayuda a mantener y expandir la comunidad del juego.

Denis Kondratev
Denis Kondratev
18 min
28 Sep, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La charla de hoy explora el tema del fraude en los videojuegos y el papel del aprendizaje automático en su detección y prevención. La confianza y la equidad son cruciales en los juegos, ya que los jugadores invierten tiempo y emociones en mundos virtuales. Los modelos tradicionales basados en reglas evalúan las acciones de los jugadores, mientras que el aprendizaje automático puede detectar métodos de fraude complejos y en constante evolución. Entrenar modelos y organizar datos son desafíos clave en la utilización del aprendizaje automático para la detección de fraudes. El futuro radica en sistemas de seguridad colaborativos que combinan modelos basados en reglas con aprendizaje automático para protegerse contra el fraude.

1. Introducción al Cheating en Videojuegos

Short description:

Hoy me gustaría compartir ideas y discutir un problema prevalente en el mundo de los videojuegos: el cheating. Más importante aún, quiero adentrarme en cómo el aprendizaje automático puede ser nuestro aliado para preservar la esencia genuina de la competencia y la diversión en los videojuegos. La confianza es muy importante al jugar juegos. Los jugadores no solo están observando desde el lado, realmente son parte del juego. Invierten mucho tiempo, trabajo y emoción en estos mundos virtuales.

¡Hola! Mi nombre es Denis. Soy un ingeniero de software en My Games. Hoy me gustaría compartir ideas y discutir un problema prevalente en el mundo de los videojuegos: el cheating. Más importante aún, quiero adentrarme en cómo el machine learning puede ser nuestro aliado para preservar la esencia genuina de la competencia y la diversión en los videojuegos.

La confianza es muy importante al jugar juegos. Los jugadores no solo están observando desde el lado. Realmente son parte del juego. Invierten mucho tiempo, trabajo y emoción en estos mundos virtuales. Es más que simplemente jugar. Intentan comprender cómo funciona el juego. Piensan en formas de mejorar. Y también hacen amigos dentro del juego.

Además, a veces gastan dinero en cosas dentro del juego para hacer su experiencia más agradable. Sin embargo, cuando se encuentran con jugadores que hacen trampa, es más que un problema pequeño. Puede hacerles sentir que el juego no es justo para todos. Les resulta realmente difícil disfrutar del juego cuando piensan que no todos siguen las mismas reglas.

Mantener a los jugadores interesados durante mucho tiempo es importante para los juegos en línea. Para mantenerse vivos y tener éxito. Si los jugadores siguen regresando, la comunidad del juego se mantiene viva y los juegos pueden ganar más dinero. Esto es especialmente cierto para los juegos en los que los jugadores compran cosas dentro del juego o juegan regularmente para jugar. Si hay tramposos, pueden arruinar la diversión para otros jugadores. En lugar de ser divertidos o relajantes, los juegos se vuelven molestos y los jugadores se frustran.

Existen diversas formas en las que los jugadores pueden hacer trampa en los videojuegos. Los desarrolladores de juegos necesitan identificar si un juego podría ser vulnerable o tener lagunas, así como identificar ciertas reglas de juego que podrían ser eludidas. Un método de hacking prevalente en los juegos en línea implica manipular el estado de un participante. Dado que una parte significativa del juego ocurre en la propia computadora del jugador, los hackers manipulan esto alterando los datos locales del juego. Por ejemplo, podrían modificar la cantidad de balas en el cargador de un arma, permitiendo al jugador disparar continuamente sin recargar, o amplificar los objetos disponibles en el juego como granadas o botiquines de salud. Existen formas más complejas de hacer trampa en los juegos. Aimbot, aim assistant o puntería automática, todos estos son diferentes nombres para lo mismo. Aimbot ayuda al usuario a rastrear otros objetivos controlando al jugador.

2. Tipos de Cheating y Modelo Basado en Reglas

Short description:

El cheat opera extrayendo información de la etapa del juego para ayudar al tramposo a apuntar, superando las capacidades humanas. Otro cheat, TRIGGERBOT, dispara automáticamente cuando la mira del jugador está sobre un oponente. El cheating de superposición incluye wall hack y radar hack. Los métodos tradicionales como el modelo basado en reglas evalúan las acciones de los jugadores para garantizar la equidad. Los informes y el análisis de las acciones ayudan a determinar si los jugadores se adhieren a los estándares. Un sistema de calificación de cheating asigna puntos basados en violaciones de reglas, que disminuyen con el tiempo con un juego justo.

apuntar. El cheat opera extrayendo información de la etapa del juego a la que otros jugadores no pueden acceder. Con esta información, el bot ayuda al tramposo a apuntar. Al usar un aimbot, un usuario supera las capacidades humanas en juegos de disparos. Otro cheat, llamado TRIGGERBOT, funciona de manera opuesta. Mientras que un aimbot dirige automáticamente la mira hacia un oponente, TRIGGERBOT simplemente dispara automáticamente cuando la mira del jugador está sobre un oponente. Esto significa que el jugador todavía tiene que apuntar al enemigo ellos mismos, pero tan pronto como lo hagan, el TRIGGERBOT se activa al instante, proporcionando un disparo perfecto sin retrasos que podrían surgir debido a los reflejos humanos. Debido al enfoque de igual a igual, el cliente de cada jugador debe contener información actualizada sobre todos los demás jugadores. Naturalmente, la interfaz estándar del juego oculta toda esta información, mostrando solo lo que los desarrolladores pretendían. Desafortunadamente, la mera presencia de esta información en el cliente abre el camino a un tipo de cheating llamado superposición. Uno de ellos es el wall hack, donde un jugador puede ver a los enemigos a través de obstáculos, ya sean paredes, cajas o cualquier otra cosa. Esto le da al usuario una ventaja injusta ya que pueden prepararse de antemano para un encuentro con un oponente, o incluso matarlos sin ser detectados. Otro ejemplo similar es el radar hack. En lugar de hacer que las paredes sean transparentes, este cheat muestra la ubicación de todos los jugadores en el radar o minimapa del juego.

Por supuesto, también existen otros tipos de cheating, pero pasemos al siguiente punto. Muchos de los tipos de cheating mencionados con frecuencia pueden ser controlados utilizando métodos tradicionales. Nos referimos a este método como el modelo basado en reglas. La base de este modelo es un conjunto de reglas que evalúan las acciones de un jugador para garantizar la equidad. Profundicemos más. Los jugadores deben enviar informes después de cada sesión. Estos informes incluyen data sobre las acciones de todos los participantes. Por ejemplo, podemos ver cuántos objetos consumibles utilizó cada jugador al comparar esta información con el estado de la cuenta del jugador en el servidor. Podemos verificar si tenían esos recursos. Otro ejemplo es analizar la cantidad de disparos y el tiempo entre ellos. Esto nos permite determinar si el jugador se adhirió al tiempo de recarga necesario y si la tasa de combate es consistente con los standards. Algunas reglas pueden indicar directamente el uso de cheats. Otras reglas solo proporcionan evidencia indirecta, por ejemplo, los problemas temporales de conexión a Internet pueden afectar los data. Por lo tanto, es una buena idea implementar un sistema de calificación de cheating, donde cada regla agrega una cierta cantidad de puntos de cheating. Algunas reglas pueden contribuir con más puntos, mientras que otras agregan menos, dependiendo de la gravedad de la infracción. Si un jugador se comporta de manera justa, su calificación de cheating disminuye con el tiempo. Por lo tanto, los problemas ocasionales de red pueden darle al jugador un pequeño número de puntos, que se compensarán con

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

Optimización de juegos HTML5: 10 años de aprendizaje
JS GameDev Summit 2022JS GameDev Summit 2022
33 min
Optimización de juegos HTML5: 10 años de aprendizaje
Top Content
El motor de juegos de código abierto PlayCanvas está construido específicamente para el navegador, incorporando 10 años de aprendizaje sobre optimización. En esta charla, descubrirás la salsa secreta que permite a PlayCanvas generar juegos con tiempos de carga increíblemente rápidos y tasas de fotogramas sólidas como una roca.
Remix Flat Routes – Una Evolución en el Enrutamiento
Remix Conf Europe 2022Remix Conf Europe 2022
16 min
Remix Flat Routes – Una Evolución en el Enrutamiento
Top Content
Esta charla presenta la nueva convención Flat Routes que probablemente será la predeterminada en una futura versión de Remix. Simplifica la convención existente y también te brinda nuevas capacidades.
Construyendo Experimentos Divertidos con WebXR & Babylon.js
JS GameDev Summit 2022JS GameDev Summit 2022
33 min
Construyendo Experimentos Divertidos con WebXR & Babylon.js
Top Content
Durante esta sesión, veremos un par de demostraciones de lo que puedes hacer usando WebXR, con Babylon.js. Desde experimentos de audio en VR, hasta juegos casuales en VR en una máquina de arcade hasta un uso más serio para crear nuevas formas de colaboración usando AR o VR, deberías tener una comprensión bastante buena de lo que puedes hacer hoy.
Consulta también el artículo para ver el contenido completo, incluyendo ejemplos de código: artículo. 
Creando juegos increíbles con LittleJS
JS GameDev Summit 2022JS GameDev Summit 2022
34 min
Creando juegos increíbles con LittleJS
LittleJS es un motor de juegos súper ligero que es fácil de usar y extremadamente rápido. El desarrollador hablará sobre por qué lo creó, qué hace y cómo puedes usarlo para crear tus propios juegos. La charla incluirá una demostración de cómo construir un pequeño juego desde cero con LittleJS.
Cómo no construir un videojuego
React Summit 2023React Summit 2023
32 min
Cómo no construir un videojuego
En esta charla profundizaremos en el arte de crear algo significativo y gratificante. A través de la mirada de mi propio viaje de redescubrir mi pasión por la programación y construir un videojuego desde cero con JavaScript y React, exploraremos los compromisos entre soluciones fáciles y rendimiento rápido. Obtendrás información valiosa sobre prototipado rápido, infraestructura de pruebas y una variedad de trucos de CSS que se pueden aplicar tanto al desarrollo de juegos como a tu trabajo diario.
Charlie Gerard's Career Advice: Be intentional about how you spend your time and effort
6 min
Charlie Gerard's Career Advice: Be intentional about how you spend your time and effort
Featured Article
Charlie Gerard
Jan Tomes
2 authors
When it comes to career, Charlie has one trick: to focus. But that doesn’t mean that you shouldn’t try different things — currently a senior front-end developer at Netlify, she is also a sought-after speaker, mentor, and a machine learning trailblazer of the JavaScript universe. "Experiment with things, but build expertise in a specific area," she advises.

What led you to software engineering?My background is in digital marketing, so I started my career as a project manager in advertising agencies. After a couple of years of doing that, I realized that I wasn't learning and growing as much as I wanted to. I was interested in learning more about building websites, so I quit my job and signed up for an intensive coding boot camp called General Assembly. I absolutely loved it and started my career in tech from there.
 What is the most impactful thing you ever did to boost your career?I think it might be public speaking. Going on stage to share knowledge about things I learned while building my side projects gave me the opportunity to meet a lot of people in the industry, learn a ton from watching other people's talks and, for lack of better words, build a personal brand.
 What would be your three tips for engineers to level up their career?Practice your communication skills. I can't stress enough how important it is to be able to explain things in a way anyone can understand, but also communicate in a way that's inclusive and creates an environment where team members feel safe and welcome to contribute ideas, ask questions, and give feedback. In addition, build some expertise in a specific area. I'm a huge fan of learning and experimenting with lots of technologies but as you grow in your career, there comes a time where you need to pick an area to focus on to build more profound knowledge. This could be in a specific language like JavaScript or Python or in a practice like accessibility or web performance. It doesn't mean you shouldn't keep in touch with anything else that's going on in the industry, but it means that you focus on an area you want to have more expertise in. If you could be the "go-to" person for something, what would you want it to be? 
 And lastly, be intentional about how you spend your time and effort. Saying yes to everything isn't always helpful if it doesn't serve your goals. No matter the job, there are always projects and tasks that will help you reach your goals and some that won't. If you can, try to focus on the tasks that will grow the skills you want to grow or help you get the next job you'd like to have.
 What are you working on right now?Recently I've taken a pretty big break from side projects, but the next one I'd like to work on is a prototype of a tool that would allow hands-free coding using gaze detection. 
 Do you have some rituals that keep you focused and goal-oriented?Usually, when I come up with a side project idea I'm really excited about, that excitement is enough to keep me motivated. That's why I tend to avoid spending time on things I'm not genuinely interested in. Otherwise, breaking down projects into smaller chunks allows me to fit them better in my schedule. I make sure to take enough breaks, so I maintain a certain level of energy and motivation to finish what I have in mind.
 You wrote a book called Practical Machine Learning in JavaScript. What got you so excited about the connection between JavaScript and ML?The release of TensorFlow.js opened up the world of ML to frontend devs, and this is what really got me excited. I had machine learning on my list of things I wanted to learn for a few years, but I didn't start looking into it before because I knew I'd have to learn another language as well, like Python, for example. As soon as I realized it was now available in JS, that removed a big barrier and made it a lot more approachable. Considering that you can use JavaScript to build lots of different applications, including augmented reality, virtual reality, and IoT, and combine them with machine learning as well as some fun web APIs felt super exciting to me.


Where do you see the fields going together in the future, near or far? I'd love to see more AI-powered web applications in the future, especially as machine learning models get smaller and more performant. However, it seems like the adoption of ML in JS is still rather low. Considering the amount of content we post online, there could be great opportunities to build tools that assist you in writing blog posts or that can automatically edit podcasts and videos. There are lots of tasks we do that feel cumbersome that could be made a bit easier with the help of machine learning.
 You are a frequent conference speaker. You have your own blog and even a newsletter. What made you start with content creation?I realized that I love learning new things because I love teaching. I think that if I kept what I know to myself, it would be pretty boring. If I'm excited about something, I want to share the knowledge I gained, and I'd like other people to feel the same excitement I feel. That's definitely what motivated me to start creating content.
 How has content affected your career?I don't track any metrics on my blog or likes and follows on Twitter, so I don't know what created different opportunities. Creating content to share something you built improves the chances of people stumbling upon it and learning more about you and what you like to do, but this is not something that's guaranteed. I think over time, I accumulated enough projects, blog posts, and conference talks that some conferences now invite me, so I don't always apply anymore. I sometimes get invited on podcasts and asked if I want to create video content and things like that. Having a backlog of content helps people better understand who you are and quickly decide if you're the right person for an opportunity.What pieces of your work are you most proud of?It is probably that I've managed to develop a mindset where I set myself hard challenges on my side project, and I'm not scared to fail and push the boundaries of what I think is possible. I don't prefer a particular project, it's more around the creative thinking I've developed over the years that I believe has become a big strength of mine.***Follow Charlie on Twitter

Workshops on related topic

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.
PlayCanvas de principio a fin: la versión rápida
JS GameDev Summit 2022JS GameDev Summit 2022
121 min
PlayCanvas de principio a fin: la versión rápida
Top Content
WorkshopFree
João Ruschel
João Ruschel
En esta masterclass, construiremos un juego completo utilizando el motor PlayCanvas mientras aprendemos las mejores prácticas para la gestión de proyectos. Desde el desarrollo hasta la publicación, cubriremos las características más cruciales como la gestión de activos, scripting, audio, depuración, y mucho más.
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
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
¿Pueden los LLM aprender? Personalicemos un LLM para chatear con tus propios datos
C3 Dev Festival 2024C3 Dev Festival 2024
48 min
¿Pueden los LLM aprender? Personalicemos un LLM para chatear con tus propios datos
WorkshopFree
Andreia Ocanoaia
Andreia Ocanoaia
Sientes las limitaciones de los LLMs? Pueden ser creativos, pero a veces carecen de precisión o se basan en información desactualizada. En esta masterclass, desglosaremos el proceso de construir y desplegar fácilmente un sistema de Generación con Recuperación Mejorada. Este enfoque te permite aprovechar el poder de los LLMs con el beneficio adicional de precisión factual e información actualizada.
Deja que la IA sea tu Documentación
JSNation 2024JSNation 2024
69 min
Deja que la IA sea tu Documentación
Workshop
Jesse Hall
Jesse Hall
Únete a nuestro masterclass dinámico para crear un portal de documentación impulsado por IA. Aprende a integrar ChatGPT de OpenAI con Next.js 14, Tailwind CSS y tecnología de vanguardia para ofrecer soluciones de código e resúmenes instantáneos. Esta sesión práctica te equipará con el conocimiento para revolucionar la forma en que los usuarios interactúan con la documentación, convirtiendo las búsquedas tediosas en descubrimientos eficientes e inteligentes.
Aspectos destacados:
- Experiencia práctica en la creación de un sitio de documentación impulsado por IA.- Comprensión de la integración de la IA en las experiencias de usuario.- Habilidades prácticas con las últimas tecnologías de desarrollo web.- Estrategias para implementar y mantener recursos de documentación inteligente.
Tabla de contenidos:- Introducción a la IA en la documentación- Configuración del entorno- Construcción de la estructura de documentación- Integración de ChatGPT para documentación interactiva
Introducción a WebXR con Babylon.js
JS GameDev Summit 2022JS GameDev Summit 2022
86 min
Introducción a WebXR con Babylon.js
Workshop
Gustavo Cordido
Gustavo Cordido
En este masterclass, te presentaremos los conceptos básicos de la construcción de experiencias de Realidad Mixta con WebXR y Babylon.js.
Aprenderás lo siguiente:- Cómo agregar objetos de malla 3D y botones a una escena- Cómo utilizar texturas procedurales- Cómo agregar acciones a objetos- Cómo aprovechar la experiencia predeterminada de Realidad Cruzada (XR)- Cómo agregar física a una escena
Para el primer proyecto en este masterclass, crearás una experiencia interactiva de Realidad Mixta que mostrará estadísticas de jugadores de baloncesto a fanáticos y entrenadores. Para el segundo proyecto en este masterclass, crearás una aplicación WebXR activada por voz utilizando Babylon.js y Azure Speech-to-Text. Luego, desplegarás la aplicación web utilizando el alojamiento de sitios web estáticos proporcionado por Azure Blob Storage.