top of page

Divining Rods

Divining Rods is a flow fishing rhythm game with a focus on the theme of overfishing. I worked on this project for my Senior Game Design and Development Capstone at the University of Wisconsin - Stout. The development team, made up of 6 artists and 5 programmers, worked on Divining Rods from October 2022 to May 2023. We developed the game in Unreal Engine 4. In May 2023, we presented Divining Rods to our peers and the local community at the Stout Game Expo, where we were awarded Best Art & Visuals. We published a developer blog, which can be found here. Divining Rods is available for download on itch.io.

As a programmer on Divining Rods, I worked on implementing the in-game pause menu, player character and NPC animations, level music themes and sound effects, and our NPC Interaction system. The programming team used Unreal's Blueprint Visual Scripting Language for this project. 

 

For our in-game pause menu, we chose the design of a book. We wanted this menu to be immersive yet practical. As Divining Rods is played information about the game appears in the book. We wanted the player to be able to quickly access this information, which was why we included tabs for each section. We also wanted the player to be able to flip through the individual pages, so we chose to add an arrow button on the bottom left and right of each page. On the technical side, the in-game pause menu was designed using a UMG Widget Switcher that stores each page as its own Widget. The tabs and arrow buttons increase and decrease the index of the Widget Switcher to display the corresponding page. To update the information on each page the page's base image changes. 

 

For animations, I developed State Machines to control the player character and NPC animations. We used these State Machines to store boolean variables to control which animation should play and when animations should transition between one another. 

 

For sound effects, I used AudioKinetic Wwise to create events for area music themes and sound effects. This allowed the implementation of these audio aspects to include features such as attenuation, positioning, and occlusion. 

For the NPC Interaction, I used camera and player character positioning to create the visual transition and a UMG Widget to create the dialogue box. This interaction works hand in hand with the player character and NPC State Machines to change animations throughout the interaction. 

bottom of page