Bean Battle

Programmer

Worked on a team of two with another programmer to create a real-time strategy game that utilized procedural generation, terrain mapping, and AI agents. Developed in Unity using finite state machines for player and enemy unit behaviors as well as navigation meshes for unit pathfinding. Returned to the project after a year to enhance user interface, add additional instructions and player feedback, and complete game loop with win and loss conditions for the player.

Sample Work - Edge Panning Camera

Upon revisiting this project, one major area of improvement that I wanted to work on was improving the controls. Our game originally served largely as a technical demonstration for the AI capabilities in Unity, but we wanted to transform it into a more standard gaming experience. As such, one of the first priorities was to adopt a control scheme similar to that of other strategy games. Since moving the camera was an essential part of our strategy game, we wanted to make this more seamless and intuitive for the player by implementing edge panning, or allowing the user to move the camera in a direction by moving their mouse to the corresponding side of the screen.

To implement this edge panning camera, we added a Boolean variable to track if the player had indicated that they wanted to use edge panning to control the camera, and then used the size of the screen in combination with the mouse’s current position and some minimum and maximum ranges to determine if the camera should be moved or not. These calculations are calculated separately for the mouse’s horizontal and vertical positions to allow for diagonal edge panning as well.