deeper-blue / negativei2-server

The server for Deeper Blue, an assistive chess-playing robot. Developed for the System Design Project, a 3rd year course offered at the School of Informatics, University of Edinburgh.
Other
3 stars 0 forks source link

Crowd voting #45

Open notexactlyawe opened 5 years ago

notexactlyawe commented 5 years ago

One of the extensions we discussed was implementing crowd voting so that multiple people could play together on the same side in a game. This is quite a large issue and could be implemented in a number of ways. There are also a number of design questions to answer.

Most likely we will need a new set of endpoints as it might lead to spaghetti code to try and fit this way of playing into our current endpoints. Those will need to be defined.

notexactlyawe commented 5 years ago

Assigning people to teams

This will require some changes.

Mechanics of voting

Twitch Plays Pokemon did voting by having users input within a 30 second time window and at the end of that time period the modal action was taken. I think it's sensible to roughly follow this model, but there are choices to be made.

Generate N moves from a chess engine and users vote on these

This has the advantage of always having a default move if there is no mode for whatever reason. The disadvantages are that it robs user choice and potentially makes the game easier because the chess engine will probably generate good moves.

Let users have free choice over moves

This has the advantages of being as free as possible and not making the game easier by giving hints. The main disadvantage is that I'd imagine it would be quite likely that no modal value for a move would be chosen (especially early game) due to the number of possible moves. In that case, what is the default? Picking a random user move could open the game up to trolls, whereas generating an AI move may be an unfair advantage and may not even feature in the list of user moves.