For our final assignment in my last semesters ICS 311 class, we were tasked to form a group of 4 and tackle questions or prompts that we’ve previously written papers about but to explore it even further. For our groups paper, our prompt was not one of the original questions that we had to answer, our prompt came up as an idea all four of us came up with because we shared similar interests. This was an interest in games with open world environments, hence the image of this project being a game widely known for it’s open world gameplay The Legend of Zelda: Breath of the Wild. The thesis for this project was to “delve into various aspects and challenges encountered in the development of open-world games such as rendering, pathfinding, AI behavior, memory behavior/loot tables, and quests”. Not only that, but we were to describe what data structures and algorithms were used to develop these game mechanics, and there was many but concepts that we have learned previously or during the semester.
For my section, I was dealing with pathfinding and AI behavior, two key aspects in video games I was highly interested in, and are crucial in making a game immersive / functional to the player. To not make it too long, I will decide to summarize pathfinding only. Pathfinding refers to an object or entity that is able to navigate from point A to point B. While it sounds easy when it is first introduced, I started to consider how would the player be able to move from point A to point B with different types of obstacles, terrain, and environments that may impede or cause the player to stray a different path. Another problem was how to find the most efficient route, that’s when the algorithms started to kick in. In a nutshell, it required the usage of several but to explain just one, Dijkstra’s Algorithm was brought up which is commonly used in pathfinding. It tackled the shortest route as Dijkstra’s algorithm is commonly used to find the shortest path between nodes in a graph, with its application being used in game development.
Overall this paper made me learn more about the process game developers go through making such a complex open world video game. When writing this paper, I started to think more as a computer scientist rather than just a player, seeing how certain game mechanics are created, how the UI is designed, and many more. It also made me much more appreciative of the work that goes in game development as it is not easy. You can make things function but it also has to be enjoyable to the player, so things like bug testing is highly important which i’ve also learned as well. Hopefully in the future if given the time, I would be able to apply these algorithms when I decide to create my own game.