Inspiration
Left to my parents, my last name would have been "Biryani"; that's how much my family and I love it. While I love the flavors of this dish, I also appreciate the precision that goes into making it. So, I made a game to pay homage to this delicious delicacy, where players can learn the steps to making a perfect paneer dum biryani.
What it does
The game is a 7-stage cooking adventure that takes the player on a journey from raw ingredients to a completely sealed pot. It features speedy ingredient gathering, precision-timed rice boiling, heat management during sautéing, and an assembly phase where steam pressure acts as a countdown. It concludes with a randomized "Chef’s Exam" to verify the player actually learned the culinary theory behind the dish.
How we built it
I built the game using Python and the Pygame library. I started with a flat file with multiple levels, but it was getting difficult to manage. So, I changed the core architecture to be State Machine-based, allowing each cooking level to exist as its own modular class. I utilized:
- Physics & Collisions: For catching ingredients and assembling layers.
- Math-Based Progress: To simulate cooking doneness, we used increments like 8.34% per click for paneer and 0.25 units per frame for rice.
- Randomization Logic: To ensure the final quiz provides a fresh challenge every time.
Challenges we ran into
- State Bleeding: Fixed a transition "loop" where levels would skip instantly. Resolved by forcing a ready_to_move reset in the Engine.
- Asset Mapping: Resolved "Black Box" errors by implementing a filename translation layer (e.g., mapping rice logic to basmati_rice.png).
- Visual Logic: Fixed a ValueError in the dough seal rendering by utilizing SRCALPHA surfaces for transparency instead of RGBA tuples in draw calls.
- UX Balancing: Re-engineered Level 3 from an infinite clicker to a precise 12-click mechanic based on user input.
Accomplishments that we're proud of
I'm glad that I was able to make a game out of a dish that I loved, using the programming languages I love (Python and Pygames), while keeping it educational for players. My favorite part of the game was using Pygames to create level 1, which got me hooked and wanting to keep making more levels. I also made sure that the science, logic, and history behind making a good biryani was engaging.
What we learned
I learned how useful State Machines were for modularity and maintenance of a program. Additionally, I learned all the different ways I can use Pygames and how much broader of a library it was than I thought. I also learned that User Experience (UX) is just as important as the code. For example, we initially had paneer frying as a time-based task, but based on testing, we switched to a 12-click mechanic to make the player feel more "in control" of the golden color of the paneer.
What's next for Bombastic Biryani Chef
I plan to add more variations of biryani, and I also want to make a restaurant-style game in the future. This game will be able to take orders from customers who come in to make personalized biryani. Furthermore, I envision adding a Recipe Book Mode, where players can unlock real-world recipes by successfully completing game levels.
Log in or sign up for Devpost to join the conversation.