During Lockdown, a group of friends and I started getting together weekly, to play a board game using an online board game table, also known as a Virtual Tabletop (VTT). All the players can see a table, move pieces, and the current state of the table is synchronized for all players. The problem we ran into was with the performance of this VTT. Following an investigation, I discovered the VTT was using polling to retrieve data from the server. Periodically each client (player) would check with the server and if there had been any updates, the server would then send the updates to the client.
We had one player in Japan, one in Sweden and the rest were living in Ireland. Each move was taking over a minute to register the event with the server and update all the clients.
Server-Sent Events allow data to be sent from server to client without the need for polling, The client creates a listener object, which waits for server data and triggers a function when data is received.
The key benefit is increased performance due to the reduction of data transmission. A drawback is that data can only be sent one way. Server -> Client. To send client data to the server I used a REST API.
The client consisted of a HTML Canvas on which players could add various shaped pieces, players could also move, rotate and change the size of pieces. Any client interaction called a REST API, passed in details of the move, resize, rotation, etc.
The sever is a NodeJS App hosted in Azure, the main job of the server is to maintain the current state of the game, the position, orientation and size of each piece. The server has REST APIs that when called, update the details of a particular piece. The server then sends the update to all the clients connected.
I began this project with performance being the goal, and I achieved this. Due to Azure Hosting and a reduction in the amount of data transmitted, the time to register updates was reduced from 1 minute to less than 10 seconds.
Project Management Institute’s (PMI) Authorized Training Partners program ensures that all training content and instructors are aligned with industry standards so you can be confident about the variety of courses
The VUCA World VUCA stands for volatility, uncertainty, complexity, and ambiguity. It describes the situation of constant, unpredictable change that is now the norm in many industries and areas of the business
The role of a Scrum Master has become increasingly in demand and popular in recent years. The growth of Agile and Scrum has led to the increased importance of having
How do we measure what makes a project manager successful? Is it the number of years of experience; technical expertise; certifications; or the one who possesses people management skills? Often