Moonlighter is a video game where you go into a dungeon to beat up some monsters, collect some loot, then put that loot out for sale in your item shop the next day. So, instead of selling loot to a shop, you run the shop, selling loot to other people. You still use your funds to buy upgrades to weapons and armor in order to defeat the bosses of four different dungeons and collect four keys with which to unlock the grand poobah finale dungeon and reveal the secret behind the dungeons.
Unfortunately, the game doesn’t live up to its premise.
The dungeon crawling half of the game is adequate. You’ve got a couple of different weapons with different movesets, enemies with different attack patterns, a dodge roll, and you can have up to five health potions equipped at a time, giving you a finite supply of healing in any specific battle while also having health potions as a long-term attrition resource that competes for limited inventory space with valuable loot. There’s also some inventory innovation with curses on items that do things like destroy an item in a specific direction (above, to the left, diagonally to the bottom right, etc.) when you return to town and which you’ll therefore want to put on an edge or corner where the curse falls harmlessly off the edge of the inventory, or requiring the item to be kept on the top or bottom row. Unfortunately, the inventory management this leads to is ultimately not much more consequential than regular. You’ll almost never have so many cursed items that you can’t find a place to put them without actually sacrificing inventory space. If they wanted to emphasize inventory Tetris, they would’ve been better off using actual Tetris shapes instead of everything being a single cell.
But the shop half of the game is perfunctory. It’s got exactly two significant differences from just dumping your inventory into a merchant like in any other RPG. First, there’s a lot of upgrades you can buy to get customers to pay more money for items. Second, you have to do a certain amount of guess-and-check to figure out the ideal price for an item based on customer reactions, being overjoyed to find something way underpriced or scowling and walking away if they find something way overpriced.
There’s nothing wrong with either of these mechanics, but they don’t sustain proper shop gameplay. There are technically different customer types, but they make almost no difference to gameplay. Adventurers aren’t interested in regular drops, only in finished weapons, armor, and potions. Rich customers are more flexible on price, their threshold for getting scowly and refusing to buy is much higher. The problem is, these customers don’t have a separate reputation pool from standard customers, and even put together they’re very rare, so you don’t really have to care about them at all. If an adventurer comes into your shop and can’t find anything for sale, well, no big deal, because eighteen regular customers did that day. If a rich person walks into your shop, they might buy something at a markup that you ordinarily wouldn’t be able to sell, but only by about 25%, which is basically never worth the hassle of keeping some high value items overpriced until a rich customer walks in, especially since every regular customer who considers buying it will cost you reputation if they scowl at it and leave. There’s a tradeoff here, in that losing customers gets you less foot traffic, but getting more customers than you have items to sell is super easy, so you can afford to sacrifice some reputation to marking up some high value items for rich customers…but the markup is small enough that it’s hard to care. An extra 25% on one or two items when your backpack has enough room for 15-20 (depending on how many potions you’re hauling around) means that your daily profits will probably increase by less than 10% if you master this, the only real shop management mechanic that the game has.
The shop half of the game desperately needs more. For example, instead of reputation being invisible, have three different obvious reputation meters (visible on the HUD whenever your shop is open to customers) for warriors, rogues, and mages, each of whom buy different materials for heavy, medium, and light armor, respectively (there are materials in the game that are only used for different weapons, that are only used for potions, and that aren’t used for any crafting at all, but I’m staying focused on armor materials to keep the example simple). The higher your reputation with a customer type, the bigger a tip they leave, and having a high reputation with a specific customer type also draws in more of that customer type. You lose reputation for overpriced items, but also if a customer can’t find anything to buy.
Additionally, rather than always making just one purchase, customers have a certain amount of money they’re looking to spend and will purchase multiple items until they’re above that threshold. This means you can’t split up bundles of items into multiple small parcels to trick customers into being satisfied with a tiny purchase, you have to actually stock items that the specific customer type values.
A more realistic but more complex approach would be that they have a spending limit and a certain total value of items they’re looking to buy, and they will spend as little money as possible to hit their value target, but will give up and not buy anything if they can’t hit their value target without going over their spending limit. I don’t know if there’s a good way to make all that legible to the player, though, and if the system is opaque it won’t be fun to interact with.
However you model specific customer spending habits, you have to give an easy way to check which drops appeal to which customer type while in the dungeon so players can make quick and convenient decisions about which items to drop in favor of others. A little dot, for example: Grey if no customer has ever reacted favorably to this item (which might mean that it is unknown or might mean that nobody likes it, usually the former), blue if a mage has reacted favorably, green for a rogue, and red for a warrior. The dot can also be multi-color if multiple customer types have reacted favorably to it (for example, probably everyone loves potion ingredients and certain rare and high-value treasure items). A three-color dot is probably pushing it on how easy it is to make out the colors, but since there are three colors total (plus grey, but grey is mutually exclusive to a multi-color dot) it should be easy to interpret that if the dot has so many colors that it’s starting to become a mess, that means everyone likes this item and you don’t have to squint and double-check what specific colors are there.
And then you make the armor-types favored by those customers cheaper the higher their reputation becomes, as your store attracts more of that type of adventurer to town and bulk production of relevant equipment brings the price down. So if you’re a light-armor type yourself, you want lots of mages in town, but you don’t want to neglect warrior and rogue types so much that you can’t sell your warrior/rogue materials at all.
And you’d also want to have to prioritize what you’re doing when the shop is open. As it is, it’s usually very easy to attend to every customer who’s on the fence about an item (this pushes them into purchasing it), check out all the items for your customers, and tackle any thieves who swipe something. Occasionally a thief will swipe something while you’re on the other side of the shop and you just won’t be fast enough to catch up, but there’s never any need to choose whether to attend to one customer or another because there’s always plenty of time to do both. It feels less like gameplay and more like an idle game giving you mostly-pointless tasks to keep you engaged while your gold ticks upward for the day. In a better version of the game, though, attending customers would play more into reputation and would also convince them to give a tip or at least to increase their spending limit and thus buy more items. Instead of being something that comes up now and again, customers would require attendance almost constantly and there’s no way you’d be able to get them all, so you need to decide who’s most important.
I’d want an actual prototype in front of me to play around with before I commited to this next part, but you might also want expenses. The shop half of the game is probably best served by drawing on tycoon games, and in a tycoon game the looming threat is that expenses will outstrip income. Shop employees need income and also should exist at all earlier in the game and be more important, decorations should likewise feature more prominently and require maintenance as should the shop itself. It’s possible you want to cut the shop expenses because in this game you’re saving up for weapon/armor upgrades instead, but I don’t know if the shop management end can work without that.
These are unplaytested idea off the top of my head, but the point here is that you can definitely give the shop half of gameplay a lot more meat, and that it definitely needs more meat, because it’s the game’s main selling point.