[en] Rocket League is a popular game where players can compete against each other or against bots. However, from a competitive point of view, there is still room for improvement on the quality of the bots' capabilities. It is possible to develop, using reinforcement learning, a competitive Rocket League bot able to compete against human players and other traditional bots. The goal of this project is to both make a theoretical study of the foundations of reinforcement learning and a practical solution for a real problem: the need for better Rocket League bots. The theoretical part will go through decision-making problems, to then explain the main reinforcement learning methods designed to solve them. First, simple methods will be shown, capable of solving small problems. These simple problems hardly exist in real life, so these methods serve as a theoretical background and as a foundation for more complex methods needed to solve real problems. Finally, these more complex methods will be presented and analyzed. For the practical part, the goal is to develop a bot for Rocket League, using reinforcement learning, capable of competing against human players that are experienced in the game and improving the performance of the game stock bots. First, a brief description will be shown of the concepts to take into account when developing a reinforcement learning solution. Then, the implementation of the solution will be presented, giving readers a guideline of how to develop their own reinforcement learning projects. Additionally, the project planning is also described, showing both the human and material resources, and how they are distributed over time. The planning includes a budget based on those resources. This text aims to help people better understand the basics of reinforcement learning, theoretically and practically, so they get the courage to start their own projects.

[es] Rocket League es un popular juego en el que los jugadores pueden competir entre sí o contra bots. Sin embargo, desde un punto de vista competitivo, todavía hay espacio para mejorar la calidad de las capacidades de los bots. Es posible desarrollar, utilizando el aprendizaje por refuerzo, un bot competitivo de Rocket League capaz de competir contra jugadores humanos y otros bots tradicionales. El objetivo de este proyecto es tanto hacer un estudio teórico de los fundamentos del aprendizaje por refuerzo como una solución práctica para un problema real: la necesidad de mejores bots de Rocket League. La parte teórica recorrerá problemas de toma de decisiones, para luego explicar los principales métodos de aprendizaje por refuerzo diseñados para resolverlos. En primer lugar, se mostrarán métodos sencillos, capaces de resolver pequeños problemas. Estos problemas simples apenas existen en la vida real, por lo que estos métodos sirven como base teórica y como fundamento para métodos más complejos necesarios para resolver problemas reales. Finalmente, estos métodos más complejos serán presentados y analizados. Para la parte práctica, el objetivo es desarrollar un bot para Rocket League mediante aprendizaje por refuerzo, capaz de competir contra jugadores humanos con experiencia en el juego y mejorar el rendimiento de los bots que vienen con el juego. En primer lugar, se mostrará una breve descripción de los conceptos a tener en cuenta a la hora de desarrollar una solución de aprendizaje por refuerzo. Luego, se presentará la implementación de la solución, brindando a los lectores una guía sobre cómo desarrollar sus propios proyectos de aprendizaje por refuerzo. Además, también se describe la planificación del proyecto, mostrando tanto los recursos humanos como materiales, y cómo se distribuyen en el tiempo. La planificación incluye un presupuesto basado en esos recursos. Este texto tiene como objetivo ayudar a los lectores a comprender mejor los conceptos básicos del aprendizaje por refuerzo, tanto en la teoría como en la práctica, para que se animen a comenzar sus propios proyectos.