shlomif / PySolFC

A comprehensive, feature-rich, open source, and portable, collection of Solitaire games.
http://pysolfc.sourceforge.net/
GNU General Public License v3.0
445 stars 97 forks source link

[Question] What is the official stance with regards to multiplayer card games? #357

Open vavavr00m opened 3 months ago

vavavr00m commented 3 months ago

I found a comprehensive list of card games by John McLeod (national/regional card games section has games not included in the alphabetical list). There's also Bicycle Cards' official website. Reminded me of games that I don't see being played now by kids here these days. Are there future plans to add multiplayer games or create a separate software offering a broader category of games (multiplayer tabletop sim)?

joeraz commented 3 months ago

So this is a question that comes up from time to time. I don't believe there's ever been a true, official answer. However, as the acting lead developer, this is my personal stance on the issue. It's a bit of a read, so TL;DR at the end.

First off, PySol is, at its core, a solitaire collection. And all of its features are strongly built to support solitaire games. There are features like undo, hints and finding matching cards, bookmarks, and the like, which make a lot of sense in solitaire games, wouldn't make sense in multiplayer games (if they're not outright cheating). Plus, the way the code is structured, with the talon stacks, tableau stacks, waste stacks, etc. is all geared towards making the structure of a solitaire game. There is no concept of different players, and we'd need a way to either add some reasonably intelligent computer AI for opponents, a network feature for playing with others online, or ideally, both. So the amount of effort needed to add multiplayer games would not be trivial.

I personally would consider this to be scope creep. PySol is a solitaire collection, and while we've added games that stretch that boundary before, multiplayer games are a whole different animal, as like I said above, they'd need a whole different set of features and code structure changes. Plus, I fear extending PySol beyond one player games could detract from the reason why people like PySol to begin with. I'm not outright saying no here, but I personally think multiplayer games would work better as a fork of the project.

But as of right now, we don't have any immediate plans to make such a fork. Not saying it's never happening or I wouldn't love such a project (I personally love a good game of Euchre), but the amount of effort involved is substantial. I don't believe I'd be able to set up such a project without some extra support. Right now, I've got my hands full with PySol proper, and there are a few things that would be needed for multiplayer games that I'm just not sure how to code. If a few volunteers are willing to step up to help get such a project off the ground, I'd be willing to support them, offer my thoughts, and help out where I can. But I don't really see a PySol multiplayer fork going anywhere without some more dev support.

So, TL;DR - I would support creating multiplayer games, but believe they should be in a separate fork/app from the main PySol. However, in order for this to happen, we would need to recruit a few more developers who are willing to help out.