This week has seen improvements in Flick Kart’s server: Now four player, using either the Android or desktop clients, can race in the same track, and all of them have their puck drawn.
The biggest change, however, is not visible: The server now has multiple races (i.e., games) running at the same time. Every race has four players, none computer-controlled for now. This change is a result of my fear that we were making too many assumptions that were only true when there is only a single race per server.
This is actually an easy mistake to make, because our idea is to build a game to mainly play with your friends in the same local network, using one Android device or desktop as the server and everyone else connecting as a client. In this case, the server would only have a single game running.
However, this is not possible with the HTML version: The game runs in a browser sandbox that, even though websocket connections are not restricted with CORS or anything similar, as far as i know, does not allow applications to open a listening socket. That is, if every player uses the HTML version, they would be unable to start a game without a dedicated server. Also, to play against your friends over the Internet, with our original idea of a local server you would need to open inbound ports to your router and things like that; not very user friendly.
In other words, we need a publicly accessible server. And that server has to manage multiple games at the same time.
Now it does.