Week 1 – Introduction
Hello everyone, and welcome to my first Senior Project blog post. In this post, I’ll go over the basics of my project, including some background information as well as some of the steps I plan on taking throughout it. By the end of the project, I hope learn how altering the difficulty level of AI opponents in video games can make the gameplay more enjoyable for the user.
Artificial intelligence has many uses, and often allows us to solve problems and make observations that we otherwise couldn’t. For example, AI helps doctors analyze patient scans and detect signs of cancer that otherwise wouldn’t have been found, and a company’s marketing department might use it to determine who a product should be advertised to. In fields like medicine and marketing, a more accurate AI will lead to better results. However, there are times when the AI can become “too perfect.” This project will explore one of these cases: video games in which one player competes against the computer.
For this project, I will create an AI that finds the best move for a game of checkers. I will test whether people prefer playing against this opponent, which is able to make the best move every time and is extremely difficult to beat, or an easier one, which may make mistakes often allowing the player to win much more. After letting people play multiple versions of the game, I will survey them and analyze the data to try to find trends between a player’s level of experience and preference for level of difficulty as well come up with a difficulty that the “average” player would enjoy.
Project Steps And Goals
The first step to my project is to create a working game of checkers. At this stage, the computer will not be making moves, so you would need two players to play against each other. Once the game works, I will need to analyze the possible moves the computer can make, as well as resulting moves that can be made by the player, in order to determine which moves are better than others. I will use the minimax algorithm to go through a path of possible moves and find which ones are ideal. From here, I will allow the algorithm to find non-optimal moves, resulting in varying difficulty levels offered based on how perfect a move is.
Players will then be able to play different version of the game, and I will be able to use information about the games (if they enjoyed playing and whether they won) and the player (their experience with checkers) to determine how difficulty correlates with enjoyability. If possible, I would also like to make a way for the computer to adjust its difficulty based on the player. New and inexperienced players, or ones who just lost multiple times in a row, will play against an easier computer, while an experienced player winning multiple times in a row will get an additional challenge by playing against a more difficult AI opponent.