Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Very nice. I found some excitement in the topic of game programming patterns after learning about Entity Component Systems. For me it was a huge, well, game changer. I tried for years to build games but always gut stuck and/or lost interest. ECS allowed me to do finally get somewhere. I'm working on a small 2d action rpg [1] and a lot of the requirements can neatly be expressed as entities and components. Even something like a save/load system should fit into this by serializing all entities at once.
[1] https://github.com/pb82/zwei
Couldn't you use just a vanilla Golang (or any other language) microservice for all of this? If you know what you are doing you can have a bulletproof basic service with all of the above up and running in no time, just add your game logic. Most of your requirements are part and parcel of any modern commercial Docker microservice. Never mind that such frameworks already exist, e.g. nano [0] specifically designed for games.
Scalability is also not an issue. Number of simultaneous players and objects is limited by bandwidth and latency only. There are certainly no barriers to handling multi-million entity databases on any modern server. You're really only limited by how much data you can push out to your users within an update tick. And of course by how much money you're willing to pay for back end compute capacity on an ongoing basis. But those costs are very low these days, especially if you have dedicated servers rather then AWS/Google/Azure.
I think perhaps the issue is not so much that frameworks don't exist, but rather that no single framework has achieved popularity in the game design community. The indie crowd is not likely to want to, or afford to, run servers for years and years, so the demand is not there. The triple-A studios roll their own.
[0] https://github.com/lonng/nano
https://github.com/tinspin/fuse