They do prevent you from linking to your own store within your Steam game though. Even though they don't provide a complete solution for things like microtransactions and DLC.
How it works on Steam:
- User makes an in-app purchase using the steam wallet integration
- Steam processes the payment taking 30% and gives you a reference number for that transaction
- You query that transaction every time the player logs in to see if they've refunded it or not. That transaction doesn't actually contain any information about what they bought though.
- You then maintain a separate purchasing server whose whole job it is is to keep a record of what the player purchased in reference to that transaction number.
For that Valve wants 30% of in-app/DLC purchases. At that point it's stripe and nothing more. Unlike standalone DLC Or expansions, these unlock purchases don't come with serving any additional content in the form of downloads.
If you make your own service to handle these transactions (with only a 3-4% transaction rate) Valve will prevent you from linking to it, or mentioning it anywhere on your page, forums or within the game itself. You need to direct players elsewhere and then mention it. Even for cross-platform games where having Steam maintain a transaction list for a portion of the users is just a needless additional layer.
Nibodhika@lemmy.world 5 months ago
I know how Valve’s publisher API works, others are similar in case you didn’t know. But that is only true for games that need online validation of some sort, DLCs for offline games don’t need to implement this.
Valve is hosting the game, providing the storefront and bringing in a lot of customers. If you didn’t think those 30% were worth it you would not have put your game on steam.
Plus all of this is irrelevant to the point that Valve doesn’t enforce price parity.
crossmr@kbin.run 5 months ago
For the base game, which I think 30% is still more, I think it certainly makes sense.
Because they're providing a complete solution.
For in-app purchases or unlock purchases, whether or not the purchase is in-app, the solution isn't complete, and not worth the 30% they charge on those transactions. It would be trivial for every transaction to have a custom field where you could store an array of what was purchased in in that purchase and have it returned when the transaction was checked. Boom, complete solution. Specifically for in-app purchases if they wanted to take 5% since all they're doing is the job of Stripe and nothing more, then I'd consider that fair.