drwhut / tabletop-club

An open-source platform for playing tabletop games in a physics-based 3D environment for Windows, macOS, and Linux! Made with the Godot Engine.
https://tabletopclub.net
MIT License
1.26k stars 51 forks source link

Some confusions by “Vector3” #189

Closed GrimPixel closed 1 year ago

GrimPixel commented 1 year ago

In tabletop-club/assets/TabletopClub/cards/config.cfg, there is a scale = Vector3(6.35, 1, 8.89). The y value should mean 1 cm, however, the card in game looks like 0.01 cm. If I create an object with height 1 cm and write 1 in y, would it be converted to 0.01 cm?

elmodor commented 1 year ago

The default card layout is (1, 0.01, 1). So the scale factors you set in the config are multiplied by this value. If you want a card to be 1cm thick you would need to write 100 in Y - but I assume at that point you should use a token and not a card.

The cube and cylinder tokens are (1,1,1) by default.

GrimPixel commented 1 year ago

Ah, thanks. In my opinion, this is an extra complexity. Typing 0.01 doesn't require much work for each asset.

drwhut commented 1 year ago

To be fair, cards were not really designed to be scaled in the y-axis. Maybe the scale property could be simplified to a Vector2 for the X and Z axes? What do you think?

elmodor commented 1 year ago

Maybe the scale property could be simplified to a Vector2 for the X and Z axes? What do you think?

Sounds good to me. Only expose to the config what should actually be changeable.

GrimPixel commented 1 year ago

In some games like dominoes, anagrams, mahjong, tiles are not supposed to be so thin in y direction.

drwhut commented 1 year ago

In some games like dominoes, anagrams, mahjong, tiles are not supposed to be so thin in y direction.

Cube tokens (which I think would be better suited for the objects you mentioned) would keep the Vector3 scale. This is just for cards, where the thickness, by design, should stay the same.

GrimPixel commented 1 year ago

Per your words, even current French-suited cards can be created with cube tokens. So why don't just remove the “Cards” and create tokens only?

drwhut commented 1 year ago

One could do that, but cards are designed to have no thickness, whereas tokens can have thickness.

GrimPixel commented 1 year ago

Etymologically, “card” comes from Greek “χάρτης”, which means papyrus; “token” comes from Proto-Germanic “*taikną”, which means “symbol”. In my opinion, “tile” is better than “token”. It comes from Latin “tegula”, which means the tile for building. Currently, tokens do not behave like cards in hand.

Usually, people say “mahjong tiles”, “ganjifa cards”, not “mahjong tokens”, “ganjifa tokens”. So I think mahjong would be categorised in “tiles” and ganjifa in “cards”. Ganjifa are round, so if fillets can be specified, the creator can create a square and set its fillet radius to half of its side length, so it is still round.

There is another solution: rename “Cards” to “Cards & Tiles”, so mahjong and ganjifa can be categorised there, and tokens are untouched.

elmodor commented 1 year ago

I will look into this. What I would implement: