Open jpmarcotte opened 7 years ago
I've got a few questions to start out with. What do you mean by "Very Large"? Large player count? Large boards? Both?
And then by "locally" hosted, are we talking that someone can download and executable, run it on their desktop which would then host it for players to log into while logged onto the network? If this is the case, what's the use of a database? Couldn't the server keep ad hoc records of players by both identifier and ip? Boards could be generated on the fly.
Large referring specifically to player count. The idea is to be able to run a game for an entire room of people at an event or convention. Normally, this would cause 2 issues in the regular game: seeing the board and agreeing on a word. The former is solved by either a large screen (projector) or personal screens (mobile devices). The latter is solved by either having a team captain, or a dynamic voting system.
By "locally" hosted, yeah, I'm thinking this would be an app that someone could fire up on their laptop and even in the case where there isn't a normal wifi network, the laptop itself could create one that everyone could connect to (e.g. at a convention where nobody buys wifi anyway).
The reason for the DB is to just provide a little bit of persistence. If for some reason the app / laptop / network / devices have any issues, people are able to re-connect mid-game. It also allows for it to scale up to multiple simultaneous games, the ability to host it on the web in the future, etc. But I figure going with sqlite will allow for it to be used on minimal requirements since it's just file-based.
I'd also like to investigate using a new front-end javascript framework (just because I haven't before). Anyone have any preferences or thoughts between Angular, React, or something else?
Mostly this "issue" is just to talk initial design before totally diving in code-wise. It may just be me thinking "out loud".
So I'm thinking python (because it'll be an excuse to learn more python) and because running a simple python webserver for the local directory is easy. Probably done more as a service where python will just act as a series of api endpoints that will handle ajax calls from the web-app. I'm totally open to other ideas (Ruby?) especially if someone knows of an easy API Framework that can be set up.
Also thinking sqlite as the data storage so that a full DB instance doesn't have to be installed.