ARTIFICIAL INTELLIGENCE
Here are some of the artificial intelligence projects I worked on at Full Sail University.
Pathfinding Algorithm
I was tasked to implement an A* searching algorithm with C++ into a prebuilt code base that contained a GUI to display the path. I started by building up a breadth-first search algorithm and slowly built that up into the A* algorithm. The algorithm works by using a combination of the greedy best first and uniform-cost searches throughout a node system which is represented by the hexagons on the left. A* attempts to get the best features of each algorithm, it takes the look-ahead capabilities of the greedy search and the look-behind of the uniform cost search. This combination allows for the A* algorithm to have a performance boost over the uniform cost search and gives it the ability to find more optimal paths than the greedy search.
Steering Behaviors
For this project I was tasked with creating three different steering behaviors. Similar to the pathfinding algorithms, we worked within a prebuilt codebase that contained the GUI that displayed the ships and it was all done in C++. The first steering behavior is the Alignment behavior, this behavior works by influencing each ships velocity by the calculated average velocity of the entire group. This produces an effect that makes the ships move aligned in a direction similar to a flock of birds. The next behavior is the cohesion behavior, this behavior works by influencing the ships velocity vector by the resulting vector of the ships position compared to the groups average position. This behavior produces an effect that clumps all the ships together. The last behavior is the separation behavior, this behavior works by calculating the sum of vectors away from all of the other ships within a radius of the ship that serves as a collision check. This makes the ships move away from each other and avoid collisions with each other. These three behaviors combined can make a bunch of interesting behaviors such as making the ships look similar to a flock of birds or like a busy crowd.
Reversi (Minimax Algorithm)
For this project I was tasked with creating an AI that could play the game Reversi utilizing the Minimax Algorithm. This was done within a preexisting Reversi game in C++, I only implemented the enemy AI. This algorithm works by working out the best possible future moves that the enemy could make and the best possible moves it can make and chooses the set of moves that presents the best outcome for itself to win. In the representation on the left, I play as the white disks and the AI kicks my butt as the black discs.
Ms. Pacman AI
For this project I was tasked with creating a Decision making AI for Ms. Pacman that surpassed the average score of the school's AI. This project was made especially difficult due to the fact we had to do it in java and had no prior experience in java at all. With the decision making AI we had to implement behavior trees that allowed for Ms. Pacman to make the most optimal decisions in reaction to her environment. Some examples of implemented behaviors include getting the power up when in danger or when enemies are nearby and chasing them when the powerup is active.
Full Sail University | Salutatorian