RIT Project
Digital Game - Rope Tool
Play as Arya: junker, ship jockey, and fighter. Lacking working thrusters, her ship is equipped with her latest contraption, the Rope Tool — a grappling hook and an industrial stapler bolted together.
My Contributions:
Refactor pre-existing AI structure to create a better framework for the AI’s behaviors and interactions
Implement new enemy AI turrets with many editable properties to fit the level designers needs
Implement a state machine for enemy behavior
Implement algorithms for AI tracking the player
Tools Used:
Unity (C#)
Game Highlights:
EDGE Technical Excellence Award
RIT Featured Work
The Challenge:
This project had been in the development process for a over a year when I joined the team. As a student, most projects I’m in start from scratch and I’m used to building the game from the ground up. With this project, I had to get onboarded and integrated with the team, taking time to learn their design parameters, pre-existing code, and gameplay structure. It took time to learn the development process, but after researching, talking to the developers, and learning as much as I could, I was able to help re-factor and add new elements to their code base. After a ton of effort and dedication from team and I, we won an award for Technical Excellence from EDGE at RIT.
Requirements:
The Process
Join a team of 3 well into development, learn their codebase and framework, and meaningfully contribute to the project
Create enemies that with within the pre-defined environment
The Implementation:
After the game went through the pre-production cycle and finalized the core gameplay loop, the original team and the new member’s were tasked with building out the main content and core interactions for the game.
To build out new content, the game’s framework needed to be scalable. With this, I made sure to utilize polymorphism principles to create a framework for enemies. In this example, the abstract Turret class has a variety of reusable aspects like the state enum, main parameters, and virtual and abstract classes that can be leveraged by child classes.
The functionality and decision making for the Turret AI utilizes a state machine. In this example, the turret tracks the player. To track the player, it needs to override its parent class to update its movement. It also has its own methods like TrackShip() which uses vector math to calculate what direction the turret should be facing. From here, a single shot, burst, and laser turret stem off of this framework.