As previously discussed, I’m building an experience surrounding the dual-touchscreen laptops I have. The chosen experience is Battleship, due to the pre-existing similarities in the non-digital game
The tech for this is somewhat straightforward. p5.js is used to draw the canvas, socket.io is used to communicate between the client & server, Node.js is used for the server, Express.js serves the client-side code, and Redis is used to store the states. Redis is sufficient for data storage since a game of Battleship is not expected to go on for a very long time like Risk or Dungeons & Dragons does.
The challenge of this experience is making the parts communicate properly. This has a few sub-parts:
- Have the data sent update the respective side
- Synchronize the multiple clients of the same user
- Synchronize the two players
Making this happen is surprisingly annoying, but that’ll be another blog post.
This experience is somewhat of a proof of concept and isn’t fully polished nor coded in the best possible way, however, obviously a better experience is better.