Nowadays, computer games are very popular, especially real-time online multiplayer games. These games attract players because you can play against other humans but the physical distance between players can be irrelevant.
Most online games use a server-client architecture, where the client is usually a native client. On the other hand, due to the development of web technologies, it has become realistic to run such game clients in the web browser. The advantage is that the user does not have to install the client on their computer.
The task of my thesis is to create a client for a real-time online multiplayer game which runs in the web browser. The main feature of the client is to provide the player with an easy-to-use user interface. This means that the user’s actions are signalled to the game server and the game state maintained by the server is shown to the client. Online games disconnect the game state from the display physically and in time, which is caused by network latency. One of the key features of the client is to simulate the operation of the game server between the low-frequency game state updates to ensure a continuous and enjoyable gameplay. The graphical display of the client was created with the Phaser game development framework, and the communication between the client and the server was implemented using RxJS and SignalR. The theme of the game is to destroy the opponent’s ships by navigating a ship floating at sea.