No problem
How do you handle client side prediction? -> for now there is no client side prediction. It’s hard to do it with non-linear actions (you move one tile at one key press). In future, some of interactions could be changed to functions and it will be send from server to client. For example: I have some periodic traps that are firing up in certain sequence. For now server is triggering client if trap is up but I could send just a trap firing function to the client (only view context ofc). But it’s much harder
I was thinking about basic predictions like move before server accepts it (and correct if something is wrong) but for now when I test it in live env, I see that transfer is fast enough to not cause visible lag. Live tests will show up if it is needed or not
Is there a certain reason you decided to use Akka and Scala -> I am using Scala and Akka in my job. I like it very much and I wanted to test it in more stressful env. I’ve found Scala much funnier and faster (development) to use than Java. Akka in my opinion is great approach for scalable server side applications and it’s great experience to open mind for actor model. I really like it For now most of client side is done in scala as well.
what parts of your server are in Java and what in Scala -> Actually almost everything on the server side is done in scala. Before I was using java for procedural terrain (rooms) generation but now I don’t need it. Only some LibgdxAI LeafTasks are wrapped with Java because for some reason annotations are not working well. I think that I’ve done something wrong in Maven. It’s hard to find something in the internet because noone is using scala with libgdx as I see.
Are you planning to release a master server or will every player be able to host their on games? -> for now master server. I want to control game population
In case everyone is able to host their on games how are you going to deal with portforwarding? -> If I would like to go this way, I would use vpns or hole punching.
I hope it helped a little If you have any questions- ask me