This past weekend, I participated in SIMMERjam 2.0, the sequel to the contest that produced Zeta Outpost Defense about six months ago. Just like that one, this was a welcome break from the other games I'm currently juggling; I really believe it's cathartic to just start something new but tight enough to finish and put out in a single weekend. The theme this time was "money", but we were encouraged to get creative and explore outside of traditional currency. My idea was to make a bartering game, where you're wandering a comic convention or a flea market and trying to trade the item you have for a specific goal item, but you need to go through several other trades first to make the final one possible.
I saw two major tasks needed to achieve this. First, a "critical path" algorithm of sorts. I would need to create a new Trade data type that took in a "toGive" item and a "toGet" item, and then from a starting list of all items, I would need to create a list of Trades that could be done sequentially to go from the player's starting item to the goal one. Then I could throw in some random other Trades that could either reduce or lengthen the path if they were performed. I also envisioned a system where, after performing a Trade at a booth, it would be replaced immediately with the exact opposite Trade, so that you can always "undo" and prevent a dead-end lose condition. Everything about this design seemed reasonable and certainly possible in the time limit, but the problem was with task number two.
The artwork. Because to create the fun game I really wanted, I would need a unique art asset for every one of the items, and in order to make the game complex enough to be worth playing, there would be a lot of them. That would be a major endeavor, both frustrating for me with my skill level and a definite project derailer because of the time limit. So I thought about how I could make this part more manageable, and what I came up with was to make all the items basically the same, but to include a mathematical aspect instead. The result is the system in the game currently, where all the items are muffins with only slightly-different coloring, and instead of doing 1:1 trades, each muffin has a hidden number associated with it, and only groups of equivalent muffins can be traded. In this design, the player's starting inventory and the end goal muffin are worth the same, but you still need to convert from what you start with to what the final baker is willing to trade for.
This change necessitated a change to my algorithm as well, so now I've got a master list of all the possible mathematically equivalent Trades, and I distribute them to the various booths. There are quite a lot of them, which is why each one of sixteen different booths can have up to 4 different Trades available. And the same principle still holds, that there are definitely some Trades which will benefit you more than others in terms of getting to the goal faster. In the end, it's also very fair to say that The Golden Muffin is a memory game, because you'll need to remember both what you're eventually trying to get to and which booths have Trades that will help you get there.
Creating menus, clickable objects, and the other functional components I needed is old-hat for me by now, so I was able to concentrate more on the game's "juice" with the time I had left. I created my baker characters by mixing hair colors and lengths to get the most out of just a few different assets. Then I added a speech bubble to each to have them comment when you visit their shop or do a trade. All of the various game buttons have custom highlights (this is actually very easy to do in Photoshop), and I decided to create a player character to scurry around the main room too (the first implementation just had you clicking the booths to open them directly). Finally, I added a small animation to the title and end screens.
There's not much of a "lessons learned" section for this game, but of course there are some bugs that didn't get squashed in time, and I've gotten comments about the Trade menu itself being confusing in terms of which muffins are being sold and which are used as payment. I'm going to spend some time working on those things and another surprise before I upload a final version here, but you can go play The Golden Muffin now on simmer!