fbpx

Designing and Implementing a First-Person Shooter

IS Button

Name: Hung Vu
Major: Computer Science
Minor: Mathematics
Advisor: Drew Guarnera; Kowshik Bhowmik (second reader)

The video game industry is a one of the larger and more profitable industries. Within it, the first-person shooter (FPS) genre is also one of the most popular, accounting for 20.9 per cent of total video game sales in the United States in 2018. While the genre in general is beloved by many gamers, there are different subgenres of FPS that appeal to distinct customers. Arcade-like first-person shooters, such as Call of Duty, are games with simplistic and more unrealistic gameplay and mechanics. Conversely, realistic shooters like ArmA III are more grounded in real-world physics and attempt to simulate reality closely. This Independent Study seeks to explore the formal theory of designing an arcade-like, wave-based first-person shooter video game as well as the implementation of such a video game in the Unity engine. Through the study of formal video game design theory from multiple academic sources and examples from a number of popular video games on the market, a coherent theoretical foundation is established for the project. The game can then be implemented according to this foundation. A prototype is successfully developed with the Unity game engine and written in the C# programming language. The prototype includes most major features, such as the characters, various types of weapons, the wave system, win/lose conditions, the point-tracking and shopping systems, a map, a basic user interface, and real-time ray tracing-powered graphics. These components synchronize together to form a complete game experience for the user. A human player can play the game and expect to get a certain outcome after finishing it.

Posted in Comments Enabled, Independent Study, Symposium 2022.


One response to “Designing and Implementing a First-Person Shooter”

  1. Benjamin Hassan says:

    The game you made is interesting, Hung. I really like the premise!