Movetypes

Timeline

A new spring version is planned for August. It would be best to make movetype changes during this time, since everyone will be repathing anyway.

Tags

As far as I can tell, only the following tags are used:

  • Name. Yes, the name of a movetype does matter: the engine looks for the substrings BOAT/SHIP, HOVER, and TANK.
  • crushStrength. This is compared to a feature's mass to determine if it crushes the feature. Default mass is metal * 0.4 + hp * 0.1.
  • minWaterDepth (BOAT/SHIPs only).
  • maxWaterDepth (land units only).
  • maxSlope (land and HOVER only). This is in 2/3 degrees.
  • footprintX (but not footprintZ).
  • depthmod (land units only). Default 0.1.
  • slopemod (land and HOVER only). Default is 4 / (1 - cos(maxSlope * 1.5)).
    • maxSlope 18 -> slopemod 36.7
    • maxSlope 36 -> slopemod 9.7
    • maxSlope 60 -> slopemod 4

Evil4Zerggin's Proposed new system (WIP)

  • Will probably result in 15-22 movetypes, hopefully towards the former.

Major Questions

  • Keep Vanguard's movetype? I say no. Saktoth: Fudge it by putting it in the regular AT movetype? Evil4Zerggin: That's probably the best way if we want to keep its AT capability. The downsides to removing it are inability to crush DT, a small footprint for its visual size, and not being able to use it for the Basilisk, but I don't think these are worth using another movetype for.
  • All-terrain Flea and Tick? Requires another movetype. Saktoth: Keep IMO.
  • Add movetypes so chickens work well on slopes and water? How many types to add? I would rather not add any types just for chicken. Saktoth: With Amph Kbots we have a readymade movetype for chicken amphs. If we add surface-swimming Kbots ('hovers', though, torp-hittable) that gives us a class for swimming chickens.
  • Amphibious tanks get different movetype from amphibious kbots? I would rather not. Saktoth: Remove amph tanks then! Only have Amph kbots.
  • Ships need to get stuck on shores less, so they need more/less movetype footprint (whichever fixes it).

Water Depths

  • All non-amph land units use the same maxwaterdepth (22). Saktoth: Flea/Tick/Roach need looking at. They cant be hovers because tick/roach vs ships would be seriously crazy. At the moment though, they submerge and are invisible (problem for Tick/Roach).
  • Boats get less minwaterdepth than land units have maxwaterdepth (10).
  • Ships get more minwaterdepth than land units have maxwaterdepth (40).
  • All subs get same minwaterdepth as ships.

Popular Water Maps

  • Small Supreme Battlefield, Small Supreme Islands. Water depth increases to 60+ fairly quickly. Some variety in the bottom depth, but overall fairly hopeless in terms of differentiating drafts.
  • Tropical, Tempest. Shallows of < 20 depth in the center, going down rather steeply to more than 100 elsewhere. Probably one of the better of the popular maps in differentiating drafts.
  • Scorpio Battleground. Rivers of about 20 depth, going down to 90 depth in the seas. Also one of the better of the popular maps in differentiating drafts.
  • Amazon Delta. Shallow crossings of 5-10 depth, going down to more than 100 in the deeper areas.
  • Tangerine. A "shelf" of about 60 depth, leading into deeper seas of over 100 depth on the map edges.
  • Delta Siege X (and derivatives). Ramps lead to 125 depth.
  • Sands of War, Hundred Isles. Water depth is 45-49 in the deep areas.
  • Frostbite. Water depth is over 100 in the deep areas; there are no shallows.
  • Splintered Tropics. Water depth goes down to 100 in the deep areas; shallows are 20-25 depth. This does mean that some BA unit cannot cross them.

Conclusions: As far as water depths go, there are two types of maps: those with shallow crossings and those without. A shallow crossing is generally 20 depth or less, typically near 20, but with some notable exceptions such as Amazon Delta. Apart from this, nearly all maps become quite deep a short distance from any land or crossings; at least 45 depth and typically over 100 depth. Therefore, we can consider four types of water depth:

  • Very shallow. < 10 depth.
  • Shallow. 10-20 depth.
  • Deep. 20-40 depth.
  • Very deep. > 40 depth.

We cannot be sure that a map's shallows are not very shallow; therefore a minwaterdepth of 5 makes sense for boats. Likewise we cannot be assured that a map's deeper reaches are deeper than 40 depth or so; this makes 40 an appropriate minwaterdepth for ships.

Movetypes

Each movetype is defined by a footprint size and a move family.

footprintxcrushstrengthmaxwaterdepthKBOTAKBOTTKBOTTANKATANKHOVERKHOVERTHOVERBOAT
1 5 22 X ? ?
2 50 22 X X X X ? X ? X
4 500 22 X ? ? X ? X
6 2000 5000 X X
  • Prefixes: A = Amphibious, K = Kbot slope tolerance, T = all-Terrain.
  • Xs represent movetypes that are strictly necessary.
  • ?s represent movetypes that are not strictly necessary, but would require at least one unit to be changed if left out.
  • To future-proof our system, we could include most of the possible movetypes above, although this would increase the number of movetypes.
  • All maxwaterdepths set to 22 for non-amphibious units; this will help things be consistent.

Move Families

  • KBOT: Land-bound kbots. 36 slope tolerance.
  • AKBOT: Amphibious kbots. 36 slope tolerance.
  • TKBOT: All-terrain kbots. > 60 slope tolerance.

Evil4Zerggin: We could remove TKBOT1 if Flea and Tick were not all-terrain.

  • TANK: Land-bound tanks. 18 slope tolerance.
  • ATANK: Amphibious tanks. ? slope tolerance. (BA: 36 slope tolerance, the same as kbots. NOTA: 24 slope tolerance.)

Evil4Zerggin: To save on movetypes, we could merge this with AKBOTs, though this would mean that both would have to have the same slope tolerance. Indeed I would prefer this method; it reduces the number of unique slope tolerances, which removes some of the guesswork as to what can move where as a player.

  • HOVER: Hovercraft. ? slope tolerance. 5 crushstrength regardless of footprint. (BA: 22 slope tolerance. NOTA: 18 slope tolerance.)

Evil4Zerggin: I would like hovers to have 18 slope tolerance, the same as vehicles. This would allow them to be able to climb at least one sandy beach on each side of SSB, and reduce the number of unique slope tolerances. Saktoth: Id rather they have sub-vehicle slope tolerances, because id like slopes to range all the way from the extremely flat to the directly vertical, with full suites of viable units in each category, so that there is more than the choice of just kbot area vs vehicle area. It also means we can make hovers land-viable without replacing vehicles. However, most maps are designed with 24-slope hovers in mind, so i concede we probably cant do this with hovers. :(

  • KHOVER: 36 slope tolerance. Actually used for amphibious units that float on water instead of sinking. Useful for chicken. We could even try giving some more amphibious units this type, trading the stealth of being underwater for the ability to fire on the surface.

Saktoth: If we had amphkbots, some could swim, as you said, losing stealth (Not necessarily being able to fire on the surface, though). Since we dont, we only have one unit in this class and some chickens so it might as well be removed.

  • BOAT: Shallow-draft boats. 5 minwaterdepth for all? No "ship" movetype for now.

Changes

HKBOT4 -> KBOT4
HTKBOT5 -> AKBOT6
VKBOT5 -> TKBOT1
TANK3 -> TANK2
HTANK3, HTANK4 -> TANK4
HOVER4 -> HOVER2
BOAT3 -> BOAT2
DBOAT3 -> UBOAT2
BOAT5 -> BOAT4
HDBOAT8 -> BOAT6
HAKBOT4 -> AKBOT4
HTKBOT4 -> KBOT4?
ATKBOT1 -> TKBOT1

Current Movetypes (r1891)

  • NONE: armfatf, corap, armcdrone, armfig, armawac, corsolar, armfhp, corpun, concept_factory, armrad, armuwmme, corgripn, corfmkr, armmg, armshltx, armasy, csubpen, asubpen, cormmkr, armdrag, corfhlt, corsb, flyinglrpc, armeyes, armjamt, armpb, armap, armsfig, chickend, corarad, armuwmex, armuwfus, corfus, armtl, corplat, cormine4, armmstor, armsaber, armaard, armuwadvms, corvamp, armcybr2, aafus, corbuzz, cormine2, corhlt, armcent, armfmkr, cafus, armhawk, corstardestroyer, bladew, armrl, coravp, corfink, coruwmme, slab, amgeo, cmgeo, screamer, chickenf, armestor, corshad, roostfac, armfmex, cormoho, armcybr, dughole, owl, cormexp, armsilo, blastwing, corcut, armsolar, armbrawl, cortl, fighter, fakeunit, armthund2, armuwmmm, coruwes, corgant, coruwadvms, armmine3, corvp, armmoho, armfflak, cortitan, corveng, corsilo, corvalk, coruwms, armspar, coruwmex, coruwfus, coruwadves, corsfig, armwin, corulab, cortron, cortrench, cormex, cortoast, corrl, corcrw2, cortarg, corseap, corsy, armfdrag, corhurc2, armveil, corsonar, corshroud, mercury, armthund, corcrw, armalab, corsb2, cortide, ditch, armllt, armavp, corhurc, corfmd, armlance, corpre, corfrt, cordoom, armvulc, corllt, corsd, armtarg, cormstor, roost, armhlt, armuwes, armgmm, armfarch, cormine1, armhp, corrazor, corwin, armfhlt, cormed, armdfly, armpnix3, corlab, armarad, mound, corjamt, armsonar, corint, cormg, armblock, corhunt, corhp, blackdawn, corgripn2, coraca, armmmkr, armhklab, armamd, armarch, armbrtha, corvipe, armckfus, corgate, corbhmth, corfrazor, corfrad, corfort, corfmex, corrad, corenaa, armdeva, corgeo, corfhp, corfdrag, corasy, corfatf, armdtm, armamex, cordrag, armtide, coralab, corestor, apart, armfus, armcir, armartic, armafrad, armamb, armmine4, armatlas, corasp, armatl, armdl, armmex, corcdrone, corca, corblock, armseap, armason, cormakr, armtrench, armvp, armfrad, armpnix, armsb, corape, armaap, armmakr, armanni, corerad, armaca, corexp, corcsa, concept_con, armmed, armbrawl_he, corafrad, armsd, coradvsol, armgate, coratl, jetpack, armflak, coraap, armdf, corflak, armhawk2, armgeo, armfrt, corason, armcsa, armplat, armemp, armfig2, coruwmmm, roostfac_big, armsehak, armmine2, armca, armuwms, armlab, armsy, armpeep, cormine3, armuwadves, coreyes, armpnix2, armasp, armfort, armadvsol, cordl, armkam, corbtrans, corawac, armmine1,
  1. HOVER3: corah, corch, armsh, corsenan, nsaclash, corsnap, corsh, cormh, armah, armch, chickens, armamph, armsenan, armmh, armanac,
  2. KBOT2: coraak, cormak, armfark, chicken_digger, armack, chicken_drone, armham, armpw2, arm_marky, chicken_dodo, commando, corcrash, armzeus, corfast, armwar, corstorm, corpyro, cornecro, armsnipe2, armaser, cormortgold, corck, armrock, armmav, cormort, armfido, armpw, corhrk, armrectr, armsnipe, corvoyr, corak, armjeth, corclog, corcan, armfast, corack, armck, armaak, core_spectre, corthud,
  3. TANK2: armst, corlevlr, armfav, armjanus, corwolv, corraid, cormlv, arm_jammer, corfav, corgator, armstump2, armflash, armmlv, armhornet, armlatnk, armstump,
  4. HTANK4: tawf114, corgol, trem,
  5. AKBOT2: chicken_listener, corcom_armored, armcom_armored, armdecom, pinchy, chicken, armcom_riot, corcom_riot, armspy, corcom, coramph, armcom, cordecom, armcomlite, corcomlite, chickenr,
  6. ATANK3: armcroc, armpincer, intruder, corgarp, corseal, corparrow, corfred, marauder, armbeaver, armmarv,
  7. HTKBOT5: corkrog, chickenq, armorco,
  8. VKBOT5: cormaw, armclaw,
  9. HOVER4: armthovr, corthovr,
  10. BOAT5: armmship, armtboat, cortship, cormship, armcrus, corcrus,
  11. TANK3: cormart, armsam, coreter, armseer, corsent, tawf013, tawf003, corvroc, corcv, armcv, corvrad, cormist, armmanni, consul, coracv, armyork, armmart, cormabm, armacv, armmerl,
  12. BOAT4: armroy, cormls, armcs, corroy, decade, coresupp, corsjam, corcs, armsjam, corpt, coretsuran, corarch, armmls, armpt, armaas,
  13. HTANK3: correap, armbull, core_egg_shell,
  14. DBOAT6: armcarry, armbats, corbats, corcarry,
  15. HAKBOT4: shiva,
  16. TKBOT3: chickenc, arm_spider, armscab, arm_venom, armsptk,
  17. HTKBOT4: armshock,
  18. HDBOAT8: zulu, armbc, corblackhy, aseadragon,
  19. ATKBOT1: armflea, armtick, chicken_digger_b, chicken_listener_b,
  20. DBOAT3: armsub, correcl, armacsub, armrecl, corsub, corshark, corssub, armsubk, tawf009, coracsub,
  21. HKBOT4: armcrabe, corkarg, gorg, armraz, chickena, corsumo, armraven, armbanth,
  22. KBOT1: cornanotc, armnanotc, corsktl, corroach,

ChickenMoveTypes

Attachments