Por favor, use este identificador para citar o enlazar este ítem: https://repositorio.usj.es/handle/123456789/866

Título : Investigación para el desarrollo de un motor de ajedrez y su integración en un videojuego multiplataforma
Autor: Daniel Alexander Gracia Machado
Fecha de publicación: sep-2022
Editorial : Universidad San Jorge
Resumen : BBChess es un motor de ajedrez basado en Bitboards desarrollado en C y portado posteriormente a Unreal Engine 5 en C++ para el próximo juego de la empresa Eclipse Games. Este motor está basado en los llamados Bitboards, que no deja de ser otro nombre que se le ha dado a un tipo de dato primitivo ya existente y soportado por prácticamente todos los lenguajes de programación modernos, el número entero de 64 bits sin signo, o uint64. Esta aproximación a la programación de un motor de ajedrez es conocida por estar centrada en las piezas y su representación en el tablero. El concepto de esta solución se basa en usar la representación binaria de un uint64 para representar el estado en el tablero de cada casilla, dado que el número de bits en esta representación coincide con el número de casillas en el tablero de ajedrez. De esta manera podemos realizar operaciones que normalmente conllevarían entradas y salidas a memoria como simples operaciones de bits. También, como en el juego al que este motor está destinado se centra en partidas contra la máquina, se va a desarrollar las funcionalidades completas de un motor de búsqueda y evaluación de movimientos; estos últimos también serán manipulados para ser codificados en enteros de 32 bits con el fin de aligerar el uso de memoria por parte del motor a la hora de generar e interpretar los movimientos en las búsquedas y evaluaciones. Este proyecto se centra en salir de la zona de confort que nos proporciona la programación orientada a objetos más cercana al lenguaje humano y ofrecer un cambio de perspectiva y saber adaptar nuestra programación al problema que se quiere resolver.
Descripción : BBChess is a chess engine based on Bitboards developed in C and later ported to Unreal Engine 5 in C++ for the upcoming game of the company Eclipse Games. This engine is based on so-called Bitboards, which is just another name for an existing primitive data type supported by virtually all modern programming languages, the 64-bit unsigned integer, or uint64. This approach to programming a chess engine is known to be piece centric, focusing on their representation on the chessboard. The concept of this solution is based on using the binary representation of a uint64 to represent the board state of each square, since the number of bits in this representation matches the number of squares on the chessboard. In this way we can perform operations that would normally involve many memory read and write operations as simple bit calculations. Also, as the game for which this engine is intended focuses on games against the machine, the full functionalities of a move search and evaluation engine will be developed; the latter will also be manipulated to be encoded in 32-bit integers in order to lighten the use of memory by the engine when generating and interpreting the moves in the searches and evaluations. This project focuses on leaving the comfort zone provided by object-oriented programming, which is closer to the human language, and offering a change of perspective and knowing how to adapt our programming to the problem to be solved.
URI : https://repositorio.usj.es/handle/123456789/866
Aparece en las colecciones: Grado en Diseño y Desarrollo de Videojuegos

Ficheros en este ítem:
Fichero Descripción Tamaño Formato  
Investigación para el desarrollo de un motor de ajedrez.pdf6,85 MBAdobe PDFVista previa
Visualizar/Abrir


Este ítem está sujeto a una licencia Creative Commons Licencia Creative Commons Creative Commons