Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A guide for creating custom cardsets. #46

Closed
Alucard648 opened this issue Aug 26, 2017 · 43 comments
Closed

A guide for creating custom cardsets. #46

Alucard648 opened this issue Aug 26, 2017 · 43 comments

Comments

@Alucard648
Copy link

Alucard648 commented Aug 26, 2017

Custom PySol cardsets outside the downloadable cardset pack are a rare thing in the Internet even in 2017. This is probably due to the fact that the config file specification is not well documented. Perhaps a guide for creating custom cardsets might solve this issue a bit.

@shlomif shlomif changed the title A giude for creating custom cardsets. A guide for creating custom cardsets. Aug 26, 2017
@shlomif
Copy link
Owner

shlomif commented Aug 26, 2017

Will you be willing to write one?

@Alucard648
Copy link
Author

If I would know specifications of config file which is inside each cardset folder...

@jan-kleks
Copy link

Wouldn't the file specification change after adding SVG support?

Another problem with the current cardsets (and other graphical elements) is that they're of an extremely low resolution, and some are designed poorly as well... My favorite PySol's cardsets are the default one and Oxymoron. They have a nice retro feel, and look good, even though they're pixelated.

@shlomif
Copy link
Owner

shlomif commented Aug 27, 2017 via email

@shlomif
Copy link
Owner

shlomif commented Oct 4, 2017

Adding the hacktoberfest label. Contributors are welcome.

@cardset
Copy link
Contributor

cardset commented Mar 24, 2019

Perhaps a guide for creating custom cardsets might solve this issue a bit.

kdwayne described here how to do nice cardsets:
https://sourceforge.net/p/pysolfc/discussion/503708/thread/6dc85931/?limit=25
In short: use cardsetmaker, set size of cards, make a fake set with any pics, exchange the files in the cardset folder with nice cards.

@cardset
Copy link
Contributor

cardset commented Mar 21, 2020

To make things easy you could also use the most recent version of
Cardset Maker 0.5 for PysolfFC

https://sourceforge.net/p/pysolfc/discussion/503708/thread/68fc17a6f5/

Here are some cardsets:
http://www.andsa.de/en/pysol.html

@ShimmerFairy
Copy link

Some questions are still left unanswered:

  1. Where do I install cardsets I download? (And I hope the answer isn't "just install it in /usr/share/...".)
  2. Where is the source code for Cardset Maker, so it can be used on non-Windows computers?

@cardset
Copy link
Contributor

cardset commented Sep 23, 2020

  1. For me it is
    .../PySol Fan Club edition/data/
    Put the whole drawer of the new created cardset there

  2. The last published source was version 0.2. (Never tested on linux or mac.)
    But this version makes only sense for cards witch have already ranks and suites on it.

Cardset-Maker-0.2_source.zip

@shlomif
Copy link
Owner

shlomif commented Sep 24, 2020

Thanks for sharing @cardset ! The comment at the top of the .py file in the zip says it is GPLv2+. It has quite a few flake8 warnings though. @ShimmerFairy : I think you can put cardsets under ~/.PySolFC/cardsets/

@Neelix57
Copy link
Contributor

Neelix57 commented Sep 29, 2020

I made a tutorial to create cardsets manually. I found this was missing, because Cardset Maker doesn't give the opportunity to fully custom cardsets.

But some questions remain. For the variables I use to identify the various settings, see the attached file.

  • $A: andsa said here this corresponds to:
    French Sets=4 Mahjong=5 or 6, but what is this exactly ?
  • Which types could exactly be used ?
  • Could the number of cards be different than 42, 48, 52, 68, 78, 96 or 120 ?
  • Cardset location (as said here) mostly begin with a number (e.g. 12362-wilhelmtell). Is it really the location of cardsets ? Mine are in ~/.PySolFC/cardsets and it works fine.

Feel free to improve or modify my tutorial. All comments are welcome.

customize_cardset.asciidoc

@shlomif
Copy link
Owner

shlomif commented Sep 29, 2020

I made a tutorial to create cardsets manually. I found this was missing, because Cardset Maker doesn't give the opportunity to fully custom cardsets.

But some questions remain. For the variables I use to identify the various settings, see the attached file.

  • $A: andsa said here this corresponds to:
    French Sets=4 Mahjong=5 or 6, but what is this exactly ?
  • Which types could exactly be used ?
  • Could the number of cards be different than 42, 48, 52, 68, 78, 96 or 120 ?
  • Cardset location (as said here) mostly begin with a number (e.g. 12362-wilhelmtell). Is it really the location of cardsets ? Mine are in ~/.PySolFC/cardsets and it works fine.

Feel free to improve or modify my tutorial. All comments are welcome.

cardsets_tutorial.txt

Thanks @Neelix57 ! Which licence is it under: https://github.com/shlomif/Freenode-programming-channel-FAQ/blob/master/FAQ_with_ToC__generated.md#i-want-to-release-my-code---which-open-source-licence-should-i-use ?

@cardset
Copy link
Contributor

cardset commented Sep 29, 2020

because Cardset Maker doesn't give the opportunity to fully custom cardsets.

What is missing? (Except that it only supports poker sets)

  • Cardset location (as said here) mostly begin with a number (e.g. 12362-wilhelmtell). Is it really the location of cardsets ?

I think the prefix (1234...) is only to differ from cardsets with the same name.
Nowadays i think, it is not the location. It is to give the cardset a name that makes no problems with loading/calling. For example: changing capital letters to lowercase, and filling the spaces with "-"

edit

$A: andsa said here this corresponds to:
French Sets=4 Mahjong=5 or 6, but what is this exactly ?

in "resource.py" this vari is called "version"
in "app.py" it seems that this vari belongs to the existing number of fields in first line. (your: $FTM;$B;$C;$D;$E;$F)
)

andsa / cardset
(sorry, could not get the same name on both pages)

@Neelix57
Copy link
Contributor

@shlomif : All my work is under GNU General Public Licence

@shlomif
Copy link
Owner

shlomif commented Sep 30, 2020

@shlomif : All my work is under GNU General Public Licence

Thanks for the reply! Note that it has to be GPLv3-or-later or gplv2-or-later for it to be usable by PySolFC. Please clarify that this is the case.

@Neelix57
Copy link
Contributor

@cardset :

What is missing? (Except that it only supports poker sets)

The bottom images have always scare corners. I worked out with round corners cards and try to set the "Round Corners" settings for cards and backs higher but it does nothing. It works only for the cards.
The other thing is the ability to customize the offsets and shadows of the cards and to give card manager's categories, because for beginner it's not too simple to work in the config file.

in "app.py" it seems that this vari belongs to the existing number of fields in first line. (your: $FTM;$B;$C;$D;$E;$F)

Yes, you're right. Thank you for the hint.

@Neelix57
Copy link
Contributor

@shlomif : GPLv3 or later

@shlomif
Copy link
Owner

shlomif commented Sep 30, 2020

@shlomif : GPLv3 or later

Thanks for the clarification, @Neelix57 !

@cardset
Copy link
Contributor

cardset commented Sep 30, 2020

round corners

Do you speak about this bug?
https://sourceforge.net/p/pysolfc/discussion/503708/thread/68fc17a6f5/95ae/attachment/bug-border.jpg
it is solved

The other thing is the ability to customize the offsets and shadows of the cards and to give card manager's categories

Okay, i could add these futures. But from my point of view, beginners don't even know about offsets or categories. This is for somewhat experienced users. I try to find a solution that satisfy both of us. (Maybe an hopefully easy GUI for beginners and a menu for specialised things)

Even if you don't use the tool, if you (or somebody else) have ideas, or wishes please write your opinion in this thread.
https://sourceforge.net/p/pysolfc/discussion/503708/thread/68fc17a6f5/

@Neelix57
Copy link
Contributor

Here is a screenshot of PySolFC:
screenshot png
As you can see, the cards have round corners, but the bottoms have square corners.

Here is something new, the corners doesn't appear correctly. It's the first time.

For test purposes, I used the existing "Paris" cardset in the pysolfc-cardsets-2.0 package.

I work with Cardset Maker 0.65 in Wine, under Xubuntu Bionic. In Cardset Maker the corners appears round but incorrect as in PySol. In facts, the cards are written in the output folder as they appears in Cardset Maker.

@cardset
Copy link
Contributor

cardset commented Sep 30, 2020

Okay, now i understand.

I never touched the bottom cards, because...

As a first test, i removed all bottom cards from my cardset, and the game still works.
Then i was looking around and found corresponding graphics in "../PysolFC/data/images/cards/bottoms/"
It seems they changed loading of bottom cards to this place.

Probably solution for you: Updating the game or sending an issue report. If this does not work, making the edges round in GIMP.

Solution for me: Rounding the corners of the bottoms for older versions of the game.

@cardset
Copy link
Contributor

cardset commented Sep 30, 2020

Thank you for the information, that Cardset Maker works with Wine and Linux.This is for sure useful for other users.

@Neelix57
Copy link
Contributor

Then i was looking around and found corresponding graphics

Great! So many years playing PySolFC and I never found out these images, I thought the bottoms was only defined by the ones in the cardsets folders. Thanks Man.

Probably solution for you: Updating the game or sending an issue report

I don't think that were a bug. These bottoms should be default ones for cardsets created without bottoms.

@cardset
Copy link
Contributor

cardset commented Oct 1, 2020

I don't think that were a bug. These bottoms should be default ones for cardsets created without bottoms.

But i get them even if i have ugly bottoms in the cardsets. Should be the same for you.

@Neelix57
Copy link
Contributor

Neelix57 commented Oct 1, 2020

I take a closer look this morning. The images are squared. Nothing to do, I must use Gimp.

@cardset
Copy link
Contributor

cardset commented Oct 1, 2020

I take a closer look this morning. The images are squared. Nothing to do, I must use Gimp.

Just to make things clear. Is the Paris cardset made with Cardset Maker the only one which has squared corners?

I made a test. The game creates the corners like the shape of card 01c.png.
Screenshot: https://i.imgur.com/y2DYTRo.png

@Neelix57
Copy link
Contributor

Neelix57 commented Oct 1, 2020

No, all cardsets have square corniers.
Could it be a bug with Cardset Maker running under Wine ?

@rexx790
Copy link

rexx790 commented Oct 2, 2020

I had similar issues on a fresh install of Ubuntu Mate 20.04.
This is what i did to remedy the problems. Uninstalled Pysolfc. I then installed Pysolfc using synaptic package manager. I didn't install the extra cardsets. Before i opened Pysolfc for the first time, i deleted the original cardset and replaced with one of my own. This worked perfectly, and i have added over 300 cardsets without any further issues. Another issue i had was Pysolfc would no longer recognize .jpg for table tile.(backgrounds) Using only .png files was the work around.

@cardset
Copy link
Contributor

cardset commented Oct 2, 2020

No, all cardsets have square corniers.
Could it be a bug with Cardset Maker running under Wine ?

If all cardsets, have square corners, it has nothing to do with Cardset Maker.
Because the older cardsets are created with something other.

@cardset
Copy link
Contributor

cardset commented Oct 2, 2020

To my posting this morning.
Of course delivers Cardset Maker wrong bottoms, i wrote this some days ago.
(Not a bug, i just did not know that they are needed).
The question is, are they still necessary?
Or better we let PySol create the bottoms itself.

For testing, could you remove all the bottoms from your Paris cardset (Pysol closed),
And start the game afterwards with the set?
(if things work good, you get round corners and red hearts and diamonds)
Maybe your the one who gets the correct but bad bottoms,
and we fail loading and get the new ones from Pysol.

@Neelix57
Copy link
Contributor

Neelix57 commented Oct 3, 2020

I tried it and couldn't get round corners. Because my PySolFC installation is something unconventional, I tried with PySolFC without installation, the issue was gone. So, I tried install PySolFC the conventional way (in Python environment), it also works.

Thank @cardset, @rexx790

@cardset
Copy link
Contributor

cardset commented Oct 3, 2020

I came to the same conclusion.
Your game did not find the correct path.

Made some additional tests:
First it loads from "GAME/data/images/cards/.."
If i remove this drawer, it loads the bottoms from the custom cardset.
If i remove both, the game creates only a squared shape.

Screenshot:
https://i.imgur.com/LU6Xk0i.png

@rexx790
Copy link

rexx790 commented Oct 6, 2020


Example

It's great that the config file is getting some documentation.
I have a query about "$A: The number of fields in first line". As The screenshots show, the picture on the left had its value in the config file altered from 6 to 4 to match the documentation. The result was that it places the tiles further apart.
Maybe the "$A" value represents something else.

@cardset
Copy link
Contributor

cardset commented Oct 6, 2020

Sorry, another try:
It is cardset version number (cs.version) that belongs to the number of fields divided through ";"

Version 3:
Name; Version; gfxFormat; Type; Number of cards

Version 4:
Name; Version; gfxFormat; Type; Number of cards; Styles

Version 5:
Name; Version; gfxFormat; Type; Number of cards; Styles(+Country); Year

Version 6:
Name; Version; gfxFormat; Type; Number of cards; Styles(+Country); Year

Majongg differs in version 6.
It uses another way fox xOffset, yOffset, and the shadow offsets.
Please test with the original gnome-mahjongg-1

I think this will cause issues in the future,
because a mahjongg set that has no Year Field, can't use the modern layout.
Please test with the original ivory-mahjongg

Source:
https://github.com/shlomif/PySolFC/blob/master/pysollib/games/mahjongg/mahjongg.py

@Neelix57
Copy link
Contributor

Neelix57 commented Oct 6, 2020

I confirm. I made some tests with my custom tilesets and with Ivory Mahjongg. $A must always be set to 6 and the year must be set. The year could also be defined to 0 at your convenience.
I will fix this in the tutorial.

Please feel free to report any other issue.

@jnumm
Copy link
Collaborator

jnumm commented Oct 6, 2020

Hi guys, I'm going to move the parsing code in a module of its own (PR #183) to make it easier to experiment with the format. Would you find that helpful?

@rexx790
Copy link

rexx790 commented Oct 6, 2020

Thanks, cardset,Neelix for clarifying.
My mahjong tilesets have always worked fine in linux, but failed to show up in windows. Using your explanation i have been able to rectify this.

@cardset
Copy link
Contributor

cardset commented Oct 8, 2020

I will fix this in the tutorial.

Please feel free to report any other issue.

Please remove or edit your "cardsets_tutorial.txt" in this thread.
It is now outdated. So it can be confusing
#46 (comment)

Or replace it with this link:
https://github.com/shlomif/PySolFC/blob/master/contrib/customize_cardset.asciidoc

Description of "$A" is still inaccurate.

Edit:
You could also add, that there is a second file (copyright) which contains the text that can be accessed via "Info/Settings"

@joeraz
Copy link
Collaborator

joeraz commented Dec 2, 2022

Don't know if anyone's still monitoring this, but I was wondering what the status of this document is, and if there's still specific things that need to be done with it, or if this ticket can be closed? It was quite helpful for me when I was adding the hi-res cardsets for the 2.15 release.

I personally think it would be a good idea to convert it to HTML and add it to the main documentation - that way, it'll be easier for more casual users to find it.

@shlomif
Copy link
Owner

shlomif commented Dec 2, 2022 via email

@joeraz
Copy link
Collaborator

joeraz commented Jan 14, 2023

Okay, since I haven't heard any objections, I'll convert the guide to HTML and add it to the main documentation, then I'll close this ticket after.

@shlomif
Copy link
Owner

shlomif commented Jan 14, 2023 via email

@joeraz
Copy link
Collaborator

joeraz commented Jan 14, 2023

All updated. The new file is at https://github.com/shlomif/PySolFC/blob/master/html-src/cardset_customization.html - please make sure any future changes to this doc are reflected in this file.

Closing the ticket.

@joeraz joeraz closed this as completed Jan 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants