(Skip this introduction and play Omok.)
The peer-to-peer connection this project uses doesn't work in some cases. Problems occurred when trying to connect to computers in company networks or with unstable, interrupted connections (e. g. via a weak WLAN). Also an update of the third party server software used for establishing the connections has in the past always made the software stop working until I uploaded a new version.
Important: See here about adjusting the board size and the line thickness.
In East Asia the game "Go" (碁 in Japanese) is very famous. There are tournaments and clubs, like for chess. The rules of Go are very easy, but the game is no less complex than chess. The playing material is simple: a board with 19 horizontal and 19 vertical lines and sets of lens shaped, white and black stones, often made out of opaque glass.
The same playing material is used for a much simpler game, known as "Gomoku" (五目, "five stones", "five in a row"). A more complex variant of Gomoku adds beating of pairs of stones that are enclosed by the opponent's stones. This is called "Omok" (오목) in Korean or "Chōsen Gomoku" (朝鮮五目, "Korean Gomoku") in Japanese. Beaten stones are removed from the board immediately.
I like to play a variant of Omok which allows to leave the beaten stones on the board. Any time when it is a player's turn he can remove any of the opponent's "dead" groups - before or immediately after he made his move. One purpose of leaving dead groups on the board is to prevent the opponent from setting into the newly free fields again. When the board gets fuller this can result in very complex, ambiguous situations.
For ease of speaking I'll still refer to my variant as "Omok".
The rules of this variant of Omok are:
I would have liked to add an audio and video chat feature, but when I last checked, selecting a specific sound output device in the browser didn't work properly. So, for example, the sound would go to the standard speakers instead of the headphone. Therefore I recommend to play the game with another communication app in the background (Skype etc.) to speak with your remote partner.
How to get started:
The size of the board is determined when the page gets loaded. If you increase or decrease the size of the browser window later the board gets shrunk accordingly. For best results it is recommended to adjust the browser window first, then to set the zoom factor by pressing [CONTROL] and [+] or [-] and finally to refresh the page by pressing [F5] (e. g. in Firefox or Chrome).
If the lines on the board appear too thick you can reduce the zoom factor as described above and then refresh the browser window again. With my personal browser settings for example I get the best results with 100% zoom factor in Firefox and 80% in Chrome.
No personal data are collected or stored by the parts of the software I wrote. I cannot guarantee for the third party software which I use as is (SVG.js for creating the graphics and PeerJS for the peer-to-peer communication between the computers, "WebRTC").
See here: bitje.de