3 ms·
You could take this even further and add triggers to see if your move is legal or not. Or delete row with a conflict when you capture a piece.
by eelinki 6mo ago
You could take this even further and add triggers to see if your move is legal or not. Or delete row with a conflict when you capture a piece.
- bob1029 6mo agoThis is getting dangerously close to how some AAA MMORPGs handle[d] much of their logic and state management. At the scales these games operate, enterprisey oracle clusters start to look like a pretty good solution if you don't already have some custom tech stack that perfectly solves the problem.
- upmostly 6mo agoInteresting. I'm a big fan of MMORPGs so hearing that this is how they were made is really cool. I've always wondered what kind of stack games like EverQuest were built on.
- ctippett 6mo agoI started playing World of Warcraft at the same time I was studying database systems at university and had a similar curiosity. Twenty years later the AzerothCore project pretty much satisfies this curiosity, they've done an incredible job reverse engineering the game server and its database. https://www.azerothcore.org/wiki/database-world https://www.azerothcore.org/wiki/database-world
- vakrdotme 6mo agoThat’s fascinating. I didn’t realize the WoW server was so database heavy. do you know if the original game logic was implemented mostly in stored procedures, or was it just used for persistence and the engine handled the rules elsewhere?
- ctippett 6mo agoI don't know I'm sorry. I'm not involved in the project, just a curious bystander!
- StilesCrisis 6mo agoIt's not, no. The data you see in these files is reconstituted from the data that shipped with the game client, but they're not a perfect match for the real data. The game servers are all C++ and don't use stored procedures for general gameplay management. They do handle inventory management so that item duping is generally not possible, and complex things like cross-server character transfer use stored procedures.
- davis 6mo agoDo you have a source? Curious to learn more about this