Howdy all,
First just want to say how absolutely siked I am to have BN back. It is extremely nostalgic and feels great, thank you devs for all the hard work.
I only bring up this suggestion because I saw that a server-side refactor was in the works, and I felt like this suggestion might be able to help make battles a lot snappier, as well as decrease the load on Madrona’s DBs, and also reduce the amount of requests your servers need to handle. This is a bit of conjecture, because the game code is not open source.
I noticed that there is significant lag when battling, as it appears that each action in the battle necessitates a server-side interaction. I also noticed that when restarting the app, battles resume where they left off, suggesting that the battle state might even be stored in the backend after each move.
An alternative to this could be to move 100% of battles to the client, and only sending the final result to the server. Battle states can be saved client side, allowing for resuming battles when restarting the app.
Once the battle is complete, you could just send EITHER:
- the final result
- OR a list of every action that occurred, that would then be deterministically rerun on the server to ensure the validity of the battle result (only necessary if there is a risk of having modified clients that can cheat battles, which depends on how the game is packaged on the client devices).
This would essentially make battles feel snappy and instant, significantly reduce the amount of writes you need to make to your DB, and also reduce the amount of requests your server needs to handle.
Once again, this is pure conjecture because I have not actually seen the game code, but I thought I’d throw it out there.
Thank you for all the hard work!