BSData / wh40k-9e

Warhammer 40,000: 9th Edition
http://battlescribedata.appspot.com/#/repo/wh40k
638 stars 453 forks source link

Implementation Guidelines #3

Closed amis92 closed 7 years ago

amis92 commented 7 years ago

Result lives in https://github.com/BSData/wh40k/wiki/Guidelines

OP follows:


From @amis92 on June 8, 2017 22:51

Definitions

Guidelines

  1. Gst MUST NOT contain shared wargear entries, only profiles and rules for them. Different factions have differently priced things, no reason to make errors easier while changing values in future. Shared entries in gst (for wargear) are a bad idea. Profiles and rules (inlc. abilities) are ok, but wargear has so differing point costs, usage etc. every catalogue should define them separately (again, entries - they'd link to gst profiles and rules).
  2. Catalogues SHOULD define all profiles and rules as shared and link to them where needed.
  3. Catalogues MAY define shared entries for wargear that's used in multiple places in the same way.
  4. Catalogues MUST define units as shared entries to be available for other purposes like validation etc.
  5. Catalogues MUST link to shared entries that represent selectable choices and assign appropriate categories to these links.
  6. Unaligned units MAY have gst shared entries and selection entry links.
  7. Units with more than one top-faction keyword MAY have gst shared entries but MAY NOT have selection entry links [in the gst].
  8. Non-Unaligned units MUST NOT have gst shared entries and selection entry links.
  9. Sergeant/model choice RECOMMENDED implementation: an entry group named 'Members (min-max)' or similar with constraint on it min/max like datasheet says, commonly sergeant 0-1 and normal guys (min-1)-max. Validation is easier and roster edit view is nicer.
  10. Units SHOULD be implemented in such a way that when adding unit to roster, it is a valid choice (no errors/warnings raised) and also resembles as close as possible the choice as presented by default in unit's datasheet.
  11. Catalogues MUST be named according to following conventions. Faction refers to the most generic faction keyword shared by all units in catalogue, Sub-Faction is the most specific faction keyword shared by all units in catalogue. The template shown is for internal catalogue name, and should have .cat suffix for filename (don't use underscores).
    • {Faction} - use when there is no sub-faction (e.g. Tyranids, Necrons, Orks).
    • {Faction} - {Sub-Faction} - use for any catalogues which contain units from Faction's subfaction (e.g. Chaos, Imperium, Aeldari, Tyranids in case of Cults).
    • {Faction} - FW {Sub-Faction} - use when creating a separate catalogue for units published by Forge World. Note that it is perfectly possible to have catalogue with just top faction and another with a subfaction within that faction, the perfect example being Tyranids who have the "main" catalogue, and a subfaction catalogue for Genestealer Cults.
  12. Forge World publications SHOULD be incorporated into existing catalogues if they do not introduce new subfaction requiring it's own file.
  13. Root selection entries SHOULD NOT be hidden by default - it obstructs discoverability and hinders UX; instead when invalid configuration occurs, a warning should be raised.
  14. Forge World units SHOULD be considered mainline and not be tagged specifically (so no [FW] prefixes or suffixes, or similar) - instead, reference the source in unit profile's book field.

Fluffy intro:

Ok so I think we should have some guidelines to standardize our catalogues come 8th edition. There were some suggestions that BS cats for 40k are very different in usage and one must learn every catalogue separately.

I think we should work on these guidelines and if resources allow, align our existing efforts to them before launch. I admit I've wanted to do it for quite some time now, but never made the first step. Better late than later right? :D

I hope we'll work out something that fits all of us (as far as that'll be possible) and provides the finest user experience we can provide.

Copied from original issue: BSData/wh40k-7th-edition#3791

amis92 commented 7 years ago

Please discuss, propose changes and other important guidelines.

amis92 commented 7 years ago

From @cartag on June 8, 2017 23:32

image image


  1. Sergeant/model choice SHOULD be in an entry group named 'Members (min-max)' or similar with constraint on it min/max like datasheet says, commonly sergeant 0-1 and normal guys (min-1)-max. Validation is easier and roster edit view is nicer.
    • Example: Warp Talons consist of 5-10 models, 1 champion and 4 Warp Talons. Champion has min/max 1/1 with separate profile and wargear options. Warp Talons have min/max 4-9 with default wargear. image

image


Power Level

  1. Set base PL for unit.
  2. Add increment of X points for every Y models, or however the figure increases. Add decrement for appropriate number also.
    • Example: Chaos Bikers = 7 PL base. Add up to 3 more for PL + 5, 6 for PL + 10. Set base unit to 7, add Increment 5 for every 5 models, rounded up, and decrement for 5 points if models in Chaos Bikers are > 2. This will set proper PL for adding to roster and numbers will stay constant.

    • Weapons should have their own entry, not just a profile added into the root entry. image
amis92 commented 7 years ago

From @tag8833 on June 9, 2017 1:36

I have an alternative way to your methodology on Power levels. Your way works, but is less intuitive than it could be. Consider this: image It reads more naturally if you implement it like this: image

Also a Question about this one: 2. Catalogues SHOULD define all profiles and rules as shared and link to them where needed. Many profiles are used in exactly one place. For instance, in the Loota example, the Deffgun is only available to Lootas. Should that be a Shared profile and linked?

My personal Addendum for standardization is that Categories (Keywords) that apply to the Faction should include the prefix "Faction: " For instance "Faction: Imperium" or "Faction: Necrons"

amis92 commented 7 years ago

From @FarseerVeraenthis on June 9, 2017 5:51

I agree with @tag8833 about power levels, much easier to understand then increment here and decrement there in my opinion. Otherwise, everything with a points value has a shared profile, and any abilities used more than once are shared.

I'd also like to suggest that wargear profiles/abilities are attached to the model/unit entries with their own entries, the same as @cartag suggested for weapons, this means there is a reference between unit and abilities in the output if you don't output profiles inline - if that makes sense... I'll post a screen shot later when I'm on my computer.

However, the implementation suggested for units with champions does not cover all options because as suggested you cannot take a unit of 10 normal dudes, you HAVE to take a champion. While this is stated in the Warp Talon datasheet, it is not necessarily the case for all units that can take champions. Eldar Aeldari for example says "An exarch may take the place of XYZ aspect warrior". Although they are "free" upgrades in 8th, I don't think we should force them to be selected in order to have a max squad size unit. My implementation of units w/ champions is slightly different, I'll post a screenshot later.

amis92 commented 7 years ago

From @cartag on June 9, 2017 12:37

For units that have an optional champion then, like Bloodletters in 7th, have an entry with max 1 and a profile like this: image

Provided there are no wargear changes that is. This is less hassle in the end, you don't have to add a model then take another away, just hit a check box.

amis92 commented 7 years ago

TODO:

FarseerVeraenthis commented 7 years ago

I'm not sure if I completely included everything, but I made a wiki page, so this can be closed :smile: ~https://github.com/BSData/wh40k/wiki/CAT-Creation-Guidlines~

https://github.com/BSData/wh40k/wiki/Guidelines

edited: add current link, amis92