spaceninjaserver / SpaceNinjaServer

A simple server for a small space ninja game
GNU General Public License v3.0
66 stars 35 forks source link

Initial dynamic worldState #313

Closed AMelonInsideLemon closed 2 months ago

Sainan commented 2 months ago

I am failing to see what the point of any of this is. The real server generates the current worldstate based on its current time. Some things like news and alerts may be fetched from a database, but certainly not the whole thing.

AMelonInsideLemon commented 2 months ago

I think everything except for the store contents can be stored in a database to enable interaction with events, for example, from the same web UI. For now, I've put everything in MongoDB.

Sainan commented 2 months ago

For sake of making the worldState more "dynamic", I'd argue this is a shortsighted move that will make it more static in the long run.

If you really want a dynamic worldState, look into PRNG algorithms (I suggest LCG) and seed ESO based on the current week. Or bounties based on the current 90 minute window. Etc.

OrdisPrime commented 2 months ago

I'll just leave this open for now, to see what direction this takes.

I'm not sure about what worldstate all contains. I think not everything should be put to db, but perhaps also be read from files.

E.g. bounty rotations: have the possible bounties in a file, and rotate them based on that 90 minute window sainan mentioned.

Or changing the events via the webUI also sounds good. But, right now, I think they should be in files not in database.

Have perhaps ids for every event, and save a "activeEventId" to database.