dnmfarrell / Settlers-Game-Notation

Game notation for Settlers, JSON
Other
7 stars 0 forks source link

Proposal: Match tile identifiers with the resource they generate to reduce complexity. #5

Open KelsonBall opened 8 years ago

KelsonBall commented 8 years ago

In Catan matches tiles are often described by the resource they generate, and there is a one to one mapping between types of resource producing tiles and resource types.

Consolidating the identifiers so that tiles are a superset of resources eliminates the need for message consumers to implement a translation between tile identifiers and resource identifiers.

The current tile identifiers are as follows

Code Type
H Hills
D Desert
M Mountains
S Sea
F Fields
FO Forest
P Pastures

Each of these besides D and S can be described using the resource they generate instead of an additional identifier.

Proposed new tile identifiers:

Code Type
B Hills (generate brick)
D Desert
O Mountains (generate ore)
S Sea
G Fields (generate grain)
L Forest (generate lumber)
W Pastures (generate wool)

Since their are no abbreviation conflicts this has the additional benefit of removing the single 2 character identifier in favor of all 1 character identifiers.

dnmfarrell commented 8 years ago

Thanks for this, interesting suggestion. I agree it does seem simpler, but it also reduces flexibility. For example, if we wanted to add new tile types and resources, we may need to use two letter abbreviations again. The other thing to think about are the Harbors.

dnmfarrell commented 8 years ago

You know what, it's been ages since I looked at this. I just realized, you're right there is a 1-to-1 mapping - the spec never defines which tiles produce which resources. I'm thinking that should be included that in the map definition. The advantage of that would be Game Servers don't have to "know" which tile type produces which resources, and it could be flexible.