portnov / qcheckers

QCheckers, formely known as KCheckers, is a is a Qt version of the classic boardgame "checkers" ("draughts").
https://portnov.github.io/qcheckers/
GNU General Public License v2.0
6 stars 6 forks source link

Marble SVG Theme #12

Closed dave-kaye closed 1 year ago

dave-kaye commented 1 year ago

A theme based upon the blue and green marble themes, but with realistic marble patterns and svg graphics.

dave-kaye commented 1 year ago

SVG graphics is a better graphics format for the playing surface since it can be scaled as the program window changes sizes. The png files from the original code create very tiny boards using modern equipment. This theme can replace the marble png theme and additional work would create a new svg green marble theme to replace the green png theme. Many of the other themes already have updated svg versions and the png versions can be removed plus the theme names updated to remove the svg characterizations from them.

It would be a major improvement to the program to commit to the svg theme format and clean up the theme area and files with minimum effort in cleanup. Only the default theme would require some recoding and could potentially use the svg Classic theme as the default.

The theme can also be simply added as is.

portnov commented 1 year ago

Hello Thanks, a great contribution! For now, I'll merge the the theme as is. Next, let's think if we could remove some of old themes. Or do you want to add similar themes with different colors within this PR?

portnov commented 1 year ago

And yes, unscalable PNG themes was the first reason why I decided to start working on qcheckers. It was "a bit" hard to play qcheckers on a HiDPI laptop...

dave-kaye commented 1 year ago

Merge as is. You could remove the blue marble PNG files, they both are declared as marble, but mine has "Marble" while the blue marble is "marble" as the theme name. Therefore they are listed separately without conflicts. The file directories are marble and gray_marble so there is no conflict there. If you are keeping the blue marble PNG theme long term, then you could edit the theme names to make them more unique.

I will work on a green marble version shortly, but it may take several weeks. At that time those PGN files could be removed.

I cannot add to PR because my only interface to GitHub is the web interface, and this limits capabilities.

General question. Are you planning to add capability to qcheckers? There are several theme directories that have additional files in them. Especially wood3d and 3d2. Are these there for testing new features or did they just come with the original themes where ever you obtained them? If they are not to be used then these files can be deleted, otherwise I should add them to the SVG theme when I make it.

Also, are you planning on removing all the PNG themes in the future and using only SVG?

portnov commented 1 year ago

I do not have any particular plans on qcheckers. If people like you will send PRs, I will gladly merge them. But 1) my knowledge of C++ is limited 2) qcheckers is written in relatively ancient C++ 3) it doesn't seem anyone was thinking about making qcheckers code easily extendable, probably performance was main concern 4) I have another project (https://github.com/portnov/hcheckers), which I wrote after I worked with qcheckers for some time, and that (in my opinion, off course) is more easy to extend in any direction (although performance of hcheckers is more tough topic). In particular, game logic ("AI") there is written in Haskell, which, imho, suits for this task good enough (and I just know it better than C++); and GUI is in Python+Qt, which is, again imho, easier to extend than C++/Qt (and I know Python better than C++).

In particular, since I created hcheckers after I've seen qcheckers, qcheckers and hcheckers happen to have very similar format of themes - hcheckers just has more features. About wood3d2 and 3d2 themes - I copied them from hcheckers project, and, probably, forgot to remove some files which qcheckers does not support - qcheckers just ignores them.

qcheckers is easier to build, it is smaller, it is easier to pack it for different distributions... While hcheckers has more features, and can play better than qcheckers. So, most probably, I myself will develop only hcheckers, but, as I said, I will accept enhancements to qcheckers from anyone who wants to develop it — it's just nice to see that someone is interested in the project and wants it to live.

portnov commented 1 year ago

Also, are you planning on removing all the PNG themes in the future and using only SVG?

Idk. For now, PNG themes are here mostly for historical reasons. But maybe someone, on some particular type of screens, likes them better than SVG ones? I don't have a strong opinion on this account.