Hey! I recently made GameState with the goal of allowing developers to have a specific, persistent flow for game state. By game state I mean storing who owns each plot, what each plot contains, how many orbs have spawned in the map… And one could even include player data in it (this DOES NOT save data).
Both the client and the server have their own Template module in which you can define default game state values along with game state type.
The system also allows syncing between clients and lets clients broadcast their data to the server (which then validates said data).
If you use this system, you’ll be able to get any data from the game as well as subscribe to it with ease.
This is the first system I open-source. I’d really appreciate constructive criticism
quick question, i’m looking at the github to see all the examples, and by the looks of it, it seems like the system is quite heavily leaning into player data management in-game, but i want to ask is how does this compare to something like scribe?
Hey! Before anything I should mention I haven’t used Scribe myself, so I cannot compare mine to Scribe directly.
If you are solely looking for player data management, this system is probably not the one you’re looking for, since it doesn’t provide any kind of data saving or automatic syncing that Scribe probably provides.
I will probably change the examples used since they don’t seem to reflect the system’s purpose clearly. This system is for storing and retrieving any kind of data, and it lets you sync that data to the client and subscribe to it and such. The reason the documentation mentions player data is because you could use store data retrieved from datastores and such to GameState. If you’d like to continue using Scribe, you could subscribe to player data changes on Scribe and set it to GameState, and then subscribe to player data changes on GameState and set it to Scribe.
This way both will always hold the same amount of information and you will be able to change data on either system and they’ll be synced together.
Not sure if this was the answer you were looking for, but hopefully it clarified things