Rig My Roll
Rig My Roll - Academic Project
What is Rig My Roll?
Rig My Roll is a slot machine rogue-like high-level game prototype created by a team of four people as an assignment for the IGME-106 course, Problem Solving with Data Structures and Algorithms for Games.

There were many challenging aspects we faced when creating Rig My Roll. The largest being that development was constrained to only two weeks, as well as our limited use of the MonoGame framework and the framework’s minimal documentation.
Role: Game Designer, Developer, Project Coordinator
- Coordinated project tasks and organized task board, assigned tasks to team members, ensured project schedule
- Implemented logic for randomizing and efficiently manipulating slot rolls, slot machine and item usage, and loading textures from file
- Presented pitch to a classroom setting
- Maintained consistent coding standards and conventions across project and encouraged use of version control
Tools: C#, MonoGame Framework, Visual Studio, Trello
Team Size: Four people
Design & Development
It was my role to design and implement our slot machine logic. This was my first time attempting this sort of complex logic. I wanted to make sure our code was as effective as possible with my given skill level. Normally, I would have wrote something super simple, but we needed the ability to manipulate the chances of the slots in different ways.
I spent a lot of time looking at real life slot machines and how they were coded. Eventually, I decided to write a Slot class and a Slot machine class, the Slot class holds two lists of different symbols, one constant unchanged list, and a duplicate list to be manipulated. Through multiple different methods, the duplicate list would be changed depending on what item the player has used. For example, if the user increased the chance of rolling “Symbol A,” the duplicate list would randomly replace one symbol in itself with “Symbol A.”

We found this method of weighted chance to be incredibly helpful, as we could “reset” the duplicate list to the unchanged list as well as easily manipulate the list’s items without losing important information.