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.
MIT License
1.25k stars 50 forks source link

Rename "Tokens" to "Tiles / Tokens", allow them to be placed in player's hands. #252

Open GrimPixel opened 1 year ago

GrimPixel commented 1 year ago

Is your feature request related to a problem? Please describe. Tiles are cuboid tokens in shape and cards in essence. Due to practical reasons in real life, they are much thicker than cards.

Describe the solution you'd like Now that cards are already defined in Vector2, and tokens can't be placed in hands, the solution is to have the new category for them.

I have noticed that pieces are now lifted straight vertically. This could apply to tiles as well, as they can be placed next to each other tightly.

Describe alternatives you've considered Treat tiles as tokens and add the ability of having tokens in hand. The problem is, it adds up the difficulty of finding tokens in Mahjong,. In addition, tokens may be placed in hand in Poker accidentally.

drwhut commented 1 year ago

I see, it does make sense to have an object that both can be put in the player's hand, and can have it's height configured.

I have an alternate solution to consider: what if instead of an entirely different type of object, there was a configurable property for both cards and tokens called something like can_hold or can_put_in_hand, which if set to true would allow it to be put in the player's hand? That way, it could be set to false for things like poker chips to avoid the situation you mentioned.

What are your thoughts on this?

GrimPixel commented 1 year ago

Regarding to the name, which indicates the usage of something, they are different from “tokens”. New players will find it strange for their first impression. It feels like being placed somewhere belonging to other stuffs, like a cohesion between two modules.

drwhut commented 1 year ago

My thinking is that, between "Tiles" and "Tokens", the only functional difference is that one can be placed in a player's hand, and the other can't. Having "Cards" be a category of it's own makes sense I think, but the problem with "Tiles", "Tokens", etc. is that the names are generic by design to account for any number of games. That's why I suggested the alternative to make it a configurable property, since a. the type names are generic anyways, and b. I'm not 100% sure if one functional difference is enough for it to warrant an entirely new directory in an asset pack.

GrimPixel commented 1 year ago

Hmm, then "Tokens" could be renamed to include both. When tile games come in, real tokens will be marginal in number.

drwhut commented 1 year ago

I've been thinking about the UX when it comes to tile-based games in v0.2.0 (since in v0.1.0 it's not that intuitive, especially with dominoes where players need to set up their own hidden areas and flip the tiles as they come out of the container), and considering how containers are to tiles what stacks are to cards and tokens, when this issue is implemented I think it also makes sense to add options like "Deal X objects" or "Deal X tiles" to the context menu of containers.