I am developing a web game where users connect to a web server, but the game's logic is executed by game servers. Of course there are db servers too.
The web server can connect to the game server and receive the necessary data, and then redirect the client to it, and then the client connects to the game server to send / receive the necessary data.
Also, the game server can receive data from the database server.
The questions are that I use Java EE on a web server, and I want to use Java also on a game server. What should I use on the game server as server software? Also, using Java technology, do I have to implement game logic and server communication?
Compared to the web server, I can use servlets, JPA, etc. However, such an application is launched by the Tomcat server using the HTTP protocol. I can also use the HTTP server on the game server, but I'm not sure if this is the right solution to handle connections between the web server and between clients.
EDIT: There is a process on the game server that processes the logic of the game, regardless of whether the user is connected or not. The game server interacts with the database. When the user connects, the game server must send / receive information related to the game to the user using a permanent connection. Servlets in javaEE allow you to handle a User ↔ Game server connection. However, how do I implement the logical part of the game (that is, which Java EE technologies should be used) that runs on the game server regardless of the connected users or not.
EDIT2: There is no animation in the game. However, this is a sports management simulation in which game simulations and player auctions take place in real time. The game server must handle game simulations and auctions of players that several users can observe and influence at the same time (player replacements, changes in strategy or auction rates).