Treasure of the Sierra Madre

Based on the B. Travern novel and John Huston film, Treasure of the Sierra Madre is a party game where players must compete for resources and each other's trust while searching for gold and fending off bandits. This game served as a senior capstone project for most of the students working on it, while I worked on it for a single term getting independent study credit.

Design and Gameplay

Treasure of the Sierra Madre is a turn-based game played over 15 rounds. Each player selects a different character with differing abilities. Players control their characters using a mobile device connected to the main game via a WebSocket relay, similar to Jackbox Games. The goal of the game is to collect as much gold as possible while making it back to the cantina by the end. Players traverse the hexagonal board to reach the mines and may return to the cantina at any time to purchase supplies. Trust in other players is a big part of the game, as players receive various bonuses for sticking together, but can betray each other at any time.

Process

For the term that I worked on the project I was treated as a full member of the team, attending weekly Scrum meetings to show progress and discuss further directions. My duties on the team centered around technical art, building the technical systems needed to achieve the game's artistic style. My first major task was designing the algorithm to procedurally generate the shapes of the mountains. This system went through several weeks of iteration and tweaking to get the desired shapes. Each mountain tile's shape is generated independently before being stitched together into a single mesh. I also made sure to parameterize my code so that it could be adjusted easily later. I was able to repurpose this system later on to create the lakebeds just by flipping it upside-down and adjusting a few parameters.

In addition to the mountains, I developed the system for randomly placing the cacti, rocks, and trees throughout the map, which proved to be significantly more challenging than anticipated. I ended up using a modified version of the Poisson disk sampling algorithm to place the objects with sufficient distance in between them. I also created the system that generates the large desert surrounding the map, learning a lot about computational geometry in the process. I managed to significantly reduce the number of triangles in this mesh, allowing it to be rendered more efficiently.

Conclusion

While I have had a few chances now to work with a full software development team, this is definitely the best experience I have had so far. It took a bit of effort to pick up on everything when jumping into the middle of the project but everyone helped make that process as smooth as possible. Having worked on this project I feel much more prepared both to work on my senior capstone project in a few years and on similar development teams further in the future. I greatly appreciate everybody on the team for welcoming me in, and since this is becoming a multi-year project, I will certainly consider picking it up for my own senior project.