Money Doors
07.2026
About the project
Money Doors was a product made in collaboration with a bank. The purpose of the game is to teach young teenagers to manage their finances better and avoid too many microtransactions like lootboxes, skins, or gambling sites. The game features multiple money-themed minigames which players complete within a time limit. The true lesson however comes from decisions made between the minigames by testing player's ability to plan their spending, manage risks, take good bargains, and save as much money as possible.
The gameplay loop is simple:
1. Add savings at the beginning of the game;. |
2. Chose a character (no impact for the game so far). |
3. Chose one of the three puzzles. |
4. Bargain with the host. |
5. Choose and pay for the difficulty. |
6. Play through the puzzle. |
7a. If completed: increase your savings. |
7b. If failed: lose money. |
8. Repeat from step 2 until rounds or money runs out. |
9. Show score.
Class Diagram
This is a class diagram I've made to visualise how everything is tied together. The entirety of the diagram (except for individual puzzles) was implemented into the game by me. The system expands more with addition of bargaining system and multiplayer synchronization, but for simplicity, I decided to visualise only the main gameplay loop.
My Contributions
The project was made in collaboration with two other programmers, two artists, and one game designer.
Tech Guide
Because I had the most experience with programming, I focused mainly on structuring the project from the technical side. The Tech Guide features naming conventions, file management, styling, writing, commenting, and debugging code, and managing GitHub repository. The guide is backed up by research I've done while writing it, the sources are linked under every relevant header.
Puzzle Management
Making new puzzles was quick and easy for other developers. All they needed to do is make a new scene and script inheriting from original puzzle, determine what happens on puzzle_start(), and adjust it for every difficulty.
Player Data
This has not only allowed us to test the game more efficiently without needing to look at their gameplay all the time, but also gave the players' opportunity to replay the game and track their statistics.
Bargaining System
I created a system that allows for inserting new bargains easily. In the video here you can see how a new bargain is added with complex effects: the anser A gives one random difficulty for free; the bargain B makes the easy difficulty free but the other two cost twice as much. All of this was done in just a few minutes (that part of the video is sped up x4) without using any code!