Ahli / sc2xml

11 stars 1 forks source link

Mapmaker Request: Add new footprint used by Mineral Field Variants (900) and (450) with reduced "No-Resource" Placement at Corners by 1 #103

Open Joshua-Leibold opened 1 year ago

Joshua-Leibold commented 1 year ago

Much of SC2 mapmaking depends on fine-tuning mineral line and geyser placement. While minerals and geysers are 1x2 and 3x3 respectively, both minerals and geysers have a much larger "No-Resource" placement apply footprint that prevents putting Command Structures too close to the resources. This helps keep the look and feel of bases more consistent by preventing mapmakers from constructing too-ridiculous looking mineral lines in melee (non-custom) maps and helps the player ingame visually identify where a Command Structure should be placed.

However, both minerals and geysers have some element of an overly restrictive footprint that prevents mapmakers from being versatile in tight conditions. In rare cases it can even directly affect Terran players ingame by blocking placement of an additional command center where a player would otherwise expect to be able to (ie. a third CC in the natural base of NeoHumanity).

REQUEST: Add new footprint used by Mineral Field Variants (900) and (450) with reduced "No-Resource" Placement at Corners by 1 Help image: https://i.gyazo.com/86f4581091299d6888f15bae5f47c507.png

This is a standard LOTV base layout:

https://i.gyazo.com/8d382b2405cdf58f3b38c8afd32ffb4f.jpg

This is the same layout with the above suggestion (ignore any mineral model size changes):

https://i.gyazo.com/d73d74e972a7cd8aa18e2a4a24bd5853.jpg

This is a combination of the previous mapmaker request of a reduced Vespene Geyser footprint with this request:

https://i.gyazo.com/0ff52ff172512d14ad707efdb7272297.jpg

As you can see, the player still can clearly identify where a CC is permitted. However, removing these squares on specific mineral footprints greatly opens up new opportunities for mapmakers to construct new mineral layouts. Players may not realize, but the overly restrictive footprints help restrict mineral lines to strict 45 and 90 degree angles which greatly limits map diversity since most maps entire layouts are dictated by the minute differences in the placement of the initial 3-4 bases.

In particular, the No-Resource restriction on Mineral Field (450) variants is silly because these minerals are not actually intended to be mined at a base. This is apparent as building a Command Structure close to them does not cause the denominator of the Command Structure "worker counter" (x/16) to go up. Their main purpose is to serve as mineral walls. An example of where this can get in the way might be Thunderbird or Romanticide, where it is clearly pointless for the mineral wall of 10 minerals to block nearby Command Centers from being built prior to being floated.

This change is more complicated than the vespene geyser change for several reasons. First, all mineral fields in the game currently share the same footprint. This means adjusting the default footprint will cause all footprints to be changed. We must therefore act cautiously, as mineral fields do not have exact placements like geysers tend to (they often vary according to space and pathing). The easiest way to reduce the size of the mineral footprint without impacting the shape of bases in unforeseen ways is to not reduce the default mineral field unit's footprint but instead reduce only the (900) and (450) variants. 450 variants are used only for mineral walls, and 900 variants (of which they are always 4) are generally placed specifically at the farthest sections of the mineral layout from the Command Structure so that they mine out slower causing them to "pair up" with 1800 field which overshadow them with their respective footprint anyway.

Which patches are 900 variants: https://i.gyazo.com/b1ca257eb9ff34a3b64e74a93fcef15f.jpg

This change requires duplicating the existing "Mineral Field Rounded" footprint, let's call our result "Mineral Field Rounded (Reduced)", and then going through each (900) and (450) mineral field variants individually to change their assigned footprint to the reduced one.

Obviously, reducing the footprint of a (450) mineral field by only a square or two at the corners will not make putting a CC any closer to it possible except in diagonal mineral walls, but this request is more likely to succeed if we ask for incremental change rather than an overhaul where each variant of mineral field has its own footprint (the ideal case is 450 mineral fields have little to no "No-Resource" placement apply/check.

Please be aware that when adjusting footprint data in the editor the first time, structures using those changes will be bugged (not update with the changes) until the file is saved and/or closed and reopened.

If there are further concerns, contact OmniSkeptic for further info

Joshua-Leibold commented 1 year ago

XML Changes:****

<Catalog>
    <CFootprint id="FootprintMineralFieldsRoundedReduced">
        <Layers index="Check" Area="-4,-3,4,4">
            <Sets index="0">
                <Negative index="DropOff" value="1"/>
            </Sets>
            <Sets Character="o">
                <Negative index="DropOff" value="1"/>
            </Sets>
            <Rows value="..oooo.."/>
            <Rows value=".oooooo."/>
            <Rows value="oooooooo"/>
            <Rows value="oooxxooo"/>
            <Rows value="oooooooo"/>
            <Rows value=".oooooo."/>
            <Rows value="..oooo.."/>
        </Layers>
        <Layers index="Place" Area="-4,-3,4,4">
            <Sets index="0">
                <Positive index="NearResources" value="1"/>
            </Sets>
            <Sets Character="o">
                <Positive index="NearResources" value="1"/>
            </Sets>
            <Rows value="..oooo.."/>
            <Rows value=".oooooo."/>
            <Rows value="oooooooo"/>
            <Rows value="oooxxooo"/>
            <Rows value="oooooooo"/>
            <Rows value=".oooooo."/>
            <Rows value="..oooo.."/>
        </Layers>
        <Shape>
            <Radius value="1.1181"/>
            <Offsets value="-1,-0.5;1,-0.5;-1,0.5;1,0.5"/>
            <Borders value="0,2,2;1,0,2;2,3,2;3,1,2"/>
        </Shape>
    </CFootprint>
</Catalog>
<Catalog>
    <CUnit id="BattleStationMineralField750">
        <Footprint value="FootprintMineralFieldsRoundedReduced"/>
    </CUnit>
    <CUnit id="LabMineralField750">
        <Footprint value="FootprintMineralFieldsRoundedReduced"/>
    </CUnit>
    <CUnit id="MineralField450">
        <Footprint value="FootprintMineralFieldsRoundedReduced"/>
    </CUnit>
    <CUnit id="MineralField750">
        <Footprint value="FootprintMineralFieldsRoundedReduced"/>
    </CUnit>
    <CUnit id="MineralFieldOpaque900">
        <Footprint value="FootprintMineralFieldsRoundedReduced"/>
    </CUnit>
    <CUnit id="PurifierMineralField750">
        <Footprint value="FootprintMineralFieldsRoundedReduced"/>
    </CUnit>
    <CUnit id="PurifierRichMineralField750">
        <Footprint value="FootprintMineralFieldsRoundedReduced"/>
    </CUnit>
    <CUnit id="RichMineralField750">
        <Footprint value="FootprintMineralFieldsRoundedReduced"/>
    </CUnit>
</Catalog>