Hello everyone. As you all probably know, the Bloxy Awards are here, and seats are already all booked. I was very intrigued when I went and saw how you book the seats: If a seat is sold it shows the play name who sold it, if it is open you can click on it and it will "reserve" for a minute while you decide to buy it, and if you buy it it will but a sold sign on the chair and show your name as the seat owner. And all this happens game-wide through many servers.
I was thinking of how this would work. I thought Ordered Data Stores would work, maybe checking for any differences every second and updating that server depending on the information given. But then there would be the obstacle where there is a limit to how many time you could call a Data Store. Also, what if two players in two different servers the click the same chair at the same time?? Refreshing every second wouldn't be enough I would think, maybe every half a second.
I wanted to get your opinions on how they do it. I know, I know, this is Roblox themselves who made the seat reserving place and they can pretty much do whatever they want to their game to make it work. I just wanted to see if anyone knew how it could possibly be done. Thanks for reading this block of text!
I think of two things; Datastore Service, Developer Products. The method I believe they used to achieve this is by setting up each seat to have a set price using Developer Products (That way custom priced seats is feasible without having unnecessary amounts of game passes). Once a transaction is complete, they will then store the user's information(What their username is, what they are wearing, then the seat they have purchased). That way they can replicate the user's avatar and insert them into their respective seat when they need to access the Datastore. Once they purchased the seat and the Datastore has been given a new key, each server then utilizes the OnUpdate function. That way each server will then update the seat even if they are in a different server.