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.

Denis Kondratev
Denis Kondratev
18 min
28 Sep, 2023

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.

Available in English

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

3. Machine Learning for Cheating Detection

Short description:

No todos los cheats pueden ser detectados a través de reglas. El aprendizaje automático ofrece una solución poderosa para tareas complejas de detección de trampas. Los modelos basados en aprendizaje automático pueden adaptarse a los cambios e identificar nuevas formas de trampas. El aprendizaje automático puede procesar volúmenes inmensos de datos y detectar patrones sutiles en el comportamiento de los jugadores. También puede detectar nuevos métodos previamente desconocidos. Utilizar el aprendizaje automático para identificar comportamientos anómalos de los jugadores fue un desafío. Se identificaron los datos mínimos necesarios para detectar tramposos que utilizan aimbot. El mayor problema fue no tener datos etiquetados.

juego limpio. Sin embargo, un verdadero tramposo acumulará rápidamente suficientes puntos para levantar sospechas. Sin embargo, no todos los cheats pueden ser detectados a través de reglas. Por ejemplo, detectar el uso de aim bots es un desafío. Si simplemente analizamos la proporción de disparos a la cabeza en el número total de disparos, corremos el riesgo de acusar falsamente a un jugador habilidoso de hacer trampas. Aquí es donde entran en juego los métodos de aprendizaje automático. El aprendizaje automático ofrece una solución poderosa para tareas de detección de trampas complejas, especialmente donde los métodos tradicionales tienen limitaciones. Una de las principales ventajas delmachine learning es su capacidad para adaptarse al comportamiento dinámico e intrincado de los jugadores. Los jugadores cambian continuamente sus estrategias y habilidades, lo que puede hacer que ciertos patrones de comportamiento sean menos evidentes. Los modelos basados en machine learning son capaces de adaptarse a estos cambios, identificando nuevas formas de trampas.

Además, los volúmenes dedata generados por los juegos a menudo son inmensos y elmachine learning puede procesar y analizar eficazmente esta información. Esto permite detectar patrones sutiles e intrincados en el comportamiento de los jugadores, que podrían escapar a un análisis básico. Con el algoritmo adecuado y suficientedata para el entrenamiento del modelo, elmachine learning puede proporcionar una alta precisión en la detección de trampas, reduciendo la probabilidad de falsas alarmas.

También vale la pena mencionar la naturaleza proactiva delmachine learning. Mientras que muchos métodos tradicionales responden a formas de trampas ya conocidas, elmachine learning puede detectar nuevos métodos previamente desconocidos. Esta adaptabilidad y la capacidad de detectar nuevas amenazas más rápidamente lo convierten en una herramienta ideal en la lucha contra los tramposos. Permítanme compartir mi experiencia utilizando el ML para detectar tramposos. La idea detrás de mi investigación era utilizar elmachine learning para identificar comportamientos anómalos de los jugadores que detectaran tramposos que utilizan aimbot. Una de las primeras tareas fue determinar cómo representar el comportamiento de los jugadores comodata digital en el que se entrenaría el modelo. Otra tarea fue minimizar el volumen de estadata para aliviar las cargas de trabajo del servidor y reducir el tráfico de usuarios. El desafío fue identificar los datos mínimos necesarios que quedaran para sobrevivir en el juego en el que estoy trabajando, que es un shooter móvil específico. Los jugadores se mueven por la escena como si estuvieran en rieles, de ahí la decisión de no utilizardata de movimiento y centrarse más en la puntería parecía evidente. La teoría era que la diferencia en el comportamiento entre un jugador y un aimbot sería más notable al compensar el retroceso del arma. Después de numerosos experimentos, se identificó un conjunto de datos óptimo que produjo resultados comparables. Se determinó un vector de características que capturaba el movimiento de la mira en ambos ejes 0.5 segundos antes y 0.25 segundos después de que el jugador disparara, así como información sobre si el disparo alcanzó a un oponente. Estos vectores de características solo se consideraban cuando un jugador usaba un arma de disparo rápido.

Soy principalmente un desarrollador de juegos, no un desarrollador experimentado demachine learning. Para ser honesto, enfrenté numerosos desafíos durante mi investigación. El mayor problema fue no tenerdata etiquetados. Para enseñarle a un modelo a detectar sidata se trata de trampas, se necesitadata que ya esté etiquetada como trampa o no trampa. Esto significa dividir losdata en dos grupos, comportamiento normal y comportamiento de trampa.

4. Utilizando el Aprendizaje Automático para la Detección de Trampas

Short description:

Sin un modelo entrenado, distinguir entre trampas y comportamiento normal se vuelve un desafío. Organizar los datos para el aprendizaje automático requiere una técnica adecuada. La detección de anomalías en los conjuntos de datos iniciales puede entrenar un modelo para clasificar los datos. Formular datos claros y relevantes sobre el comportamiento de los jugadores y seleccionar el modelo de aprendizaje automático más simple son cruciales. El aprendizaje automático es una herramienta clave para contrarrestar actividades fraudulentas en los videojuegos. Los modelos basados en reglas tradicionales complementan los sistemas de detección desarrollados con aprendizaje automático. El futuro radica en sistemas de seguridad flexibles que colaboren de manera fluida para proteger contra las trampas.

Sin embargo, sin un modelo entrenado, distinguir entre estos dos se convierte en un problema de causa y efecto. Bueno, finalmente determiné cómo recolectar los datos y representarlos, pero estos datos no estaban etiquetados. Necesito una técnica para organizar estos datos de manera adecuada para el aprendizaje automático. A veces, después de pensar en un problema durante mucho tiempo, la respuesta resulta sorprendentemente simple. Eso es lo que sucedió aquí. Tenía una idea básica sobre los datos que estaba observando. Pensé que los datos de trampas serían mucho más pequeños que los datos normales, lo que los haría destacar. Por lo tanto, se puede utilizar la detección de anomalías en este conjunto inicial de datos para entrenar un modelo para clasificar los datos. El aspecto fundamental de utilizar el aprendizaje automático para detectar trampas fue formular datos claros y relevantes que representen el comportamiento de los jugadores y seleccionar el modelo de aprendizaje automático más apropiado y simple para la tarea. Sin embargo, desde mi punto de vista como desarrollador de juegos, esta fue la parte más desafiante de todo el proceso.

A pesar de que la funcionalidad de aprendizaje automático para detectar tramposos, que discutí hoy, todavía está en desarrollo activo, su potencial ya es evidente. En el mundo tecnológico en constante evolución de hoy en día, el aprendizaje automático se ha convertido en una herramienta clave para detectar y contrarrestar actividades fraudulentas en los videojuegos. Estos avances fomentan el optimismo de que la industria de los videojuegos desarrollará sistemas antitrampas aún más avanzados y eficientes. Sin embargo, es crucial reconocer que la aparición de nuevos métodos en el aprendizaje automático no niega la importancia de los enfoques tradicionales probados. Los modelos basados en reglas, un método clásico para detectar tramposos, siguen siendo relevantes. Estos modelos, basados en reglas claramente definidas, complementan y amplifican la efectividad de los sistemas de detección desarrollados con algoritmos de aprendizaje automático. La combinación de métodos probados con innovaciones en el aprendizaje automático puede ofrecer los mejores resultados en la lucha contra jugadores deshonestos.

Creo firmemente que el futuro radica en sistemas de seguridad flexibles en los que cada componente colabore de manera fluida con los demás, garantizando una protección sólida contra las trampas. Y gracias por su atención hoy. Tengo la esperanza de que, a medida que continuemos avanzando en las tecnologías de aprendizaje automático, desarrollaremos formas cada vez más efectivas de mantener la integridad de la experiencia de juego que todos apreciamos. Sigamos empujando los límites para crear juegos más seguros, divertidos y justos para todos los involucrados. Muchas gracias por recibirme y que tengan un excelente resto de la conferencia.

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

Optimizing HTML5 Games: 10 Years of Learnings
JS GameDev Summit 2022JS GameDev Summit 2022
33 min
Optimizing HTML5 Games: 10 Years of Learnings
Top Content
The open source PlayCanvas game engine is built specifically for the browser, incorporating 10 years of learnings about optimization. In this talk, you will discover the secret sauce that enables PlayCanvas to generate games with lightning fast load times and rock solid frame rates.
Remix Flat Routes – An Evolution in Routing
Remix Conf Europe 2022Remix Conf Europe 2022
16 min
Remix Flat Routes – An Evolution in Routing
Top Content
This talk introduces the new Flat Routes convention that will most likely be the default in a future version of Remix. It simplifies the existing convention as well as gives you new capabilities.
Building Fun Experiments with WebXR & Babylon.js
JS GameDev Summit 2022JS GameDev Summit 2022
33 min
Building Fun Experiments with WebXR & Babylon.js
Top Content
During this session, we’ll see a couple of demos of what you can do using WebXR, with Babylon.js. From VR audio experiments, to casual gaming in VR on an arcade machine up to more serious usage to create new ways of collaboration using either AR or VR, you should have a pretty good understanding of what you can do today.
Check the article as well to see the full content including code samples: article. 
Making Awesome Games with LittleJS
JS GameDev Summit 2022JS GameDev Summit 2022
34 min
Making Awesome Games with LittleJS
LittleJS is a super lightweight game engine that is easy to use and powerfully fast. The developer will talk about why he made it, what it does, and how you can use it to create your own games. The talk will include a demonstration of how to build a small game from scratch with LittleJS.
How Not to Build a Video Game
React Summit 2023React Summit 2023
32 min
How Not to Build a Video Game
In this talk we'll delve into the art of creating something meaningful and fulfilling. Through the lens of my own journey of rediscovering my passion for coding and building a video game from the ground up with JavaScript and React, we will explore the trade-offs between easy solutions and fast performance. You will gain valuable insights into rapid prototyping, test infrastructure, and a range of CSS tricks that can be applied to both game development and your day-to-day work.
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

Make a Game With PlayCanvas in 2 Hours
JSNation 2023JSNation 2023
116 min
Make a Game With PlayCanvas in 2 Hours
Featured WorkshopFree
Steven Yau
Steven Yau
In this workshop, we’ll build a game using the PlayCanvas WebGL engine from start to finish. From development to publishing, we’ll cover the most crucial features such as scripting, UI creation and much more.
Table of the content:- Introduction- Intro to PlayCanvas- What we will be building- Adding a character model and animation- Making the character move with scripts- 'Fake' running- Adding obstacles- Detecting collisions- Adding a score counter- Game over and restarting- Wrap up!- Questions
Workshop levelFamiliarity with game engines and game development aspects is recommended, but not required.
PlayCanvas End-to-End : the quick version
JS GameDev Summit 2022JS GameDev Summit 2022
121 min
PlayCanvas End-to-End : the quick version
Top Content
WorkshopFree
João Ruschel
João Ruschel
In this workshop, we’ll build a complete game using the PlayCanvas engine while learning the best practices for project management. From development to publishing, we’ll cover the most crucial features such as asset management, scripting, audio, debugging, and much more.
Introduction to WebXR with Babylon.js
JS GameDev Summit 2022JS GameDev Summit 2022
86 min
Introduction to WebXR with Babylon.js
Workshop
Gustavo Cordido
Gustavo Cordido
In this workshop, we'll introduce you to the core concepts of building Mixed Reality experiences with WebXR and Balon.js.
You'll learn the following:- How to add 3D mesh objects and buttons to a scene- How to use procedural textures- How to add actions to objects- How to take advantage of the default Cross Reality (XR) experience- How to add physics to a scene
For the first project in this workshop, you'll create an interactive Mixed Reality experience that'll display basketball player stats to fans and coaches. For the second project in this workshop, you'll create a voice activated WebXR app using Balon.js and Azure Speech-to-Text. You'll then deploy the web app using Static Website Hosting provided Azure Blob Storage.
Hands on with TensorFlow.js
ML conf EU 2020ML conf EU 2020
160 min
Hands on with TensorFlow.js
Workshop
Jason Mayes
Jason Mayes
Come check out our workshop which will walk you through 3 common journeys when using TensorFlow.js. We will start with demonstrating how to use one of our pre-made models - super easy to use JS classes to get you working with ML fast. We will then look into how to retrain one of these models in minutes using in browser transfer learning via Teachable Machine and how that can be then used on your own custom website, and finally end with a hello world of writing your own model code from scratch to make a simple linear regression to predict fictional house prices based on their square footage.