Skip to content

Maps improvements master topic #105

Description

@xezon

New patch is the only opportunity ever to touch any of the official Multiplayer maps. Replays of this patch will not be compatible with Replays from original version 1.04, regardless of what happens to Official Maps.

What could be fixed and improved in Maps?

  • Fix lightning, shadow and decal color issues
  • Fix water issues
  • Fix poorly placed or sized impassable areas
  • Remove holes in impassable areas
  • Flatten areas around supplies that cannot be properly built on otherwise
  • Fix civilian buildings that cannot be garrisoned properly
  • Fix garrisoned buildings that cannot be properly attacked out of
  • Fix garrisoned buildings that cannot be properly attacked
  • Fix path finding issues where units get stuck or drives poorly
  • Fix path finding issues where paths lead through impassable areas
  • Fix uni-directional way points (see Uni-directional map waypoints can cause AI to mismatch GeneralsGameCode#49)
  • Fix any other AI related issues that require attention in map (see AI improvements master topic #211)
  • Decrease object counts to help fix low performance maps
  • Fix unpleasant audio issues, for example crackling wind noise
  • Fix object placement errors, such as intersecting or floating object
  • Fix terrain paint errors, such as misplaced patches or non-blended borders
  • Normalize oil derrick rotations to show the flag on the front
  • Fix imbalanced player starting positions and supply docks (Multiplayer only)

NProject also touches maps and fixes multiple bugs in them. For example in Twilight Flame it fixes the AI path issue that lagged the game significantly. We need to figure out what we want to do. Some very popular maps like Defcon 6 will need to be handled with extra care, because any changes will have significant impact. On the other side there are also maps which are almost never played. Such maps could be treated more generously. In any case, we would need to come up with change rules, so that maps are processed consistently. Also all changes would need to be documented (changes can be compounded).

I would assume that over the years many creators have touched the original maps for fixes and improvements, so there might already be versions ready for us to pick up.

Multiplayer Map changes would need to become a core requirement of the game patch. It is not possible to distribute this as optional content. However, Singleplayer maps can be optional, because they are not relevant for Multiplayer compatibility. The patch size would increase as following (measured ZIP compression):

All Multiplayer maps ~13.5 MB
All Campaign maps ~8.5 MB
All Challenge maps ~2.5 MB

Map task list:
https://github.com/xezon/GeneralsGamePatch/blob/main/Patch104pZH/Design/Tasks/map_tasks.txt

Activity

  1. added
    TaskA task for someone to work on
    on Aug 29, 2021
  2. Stubbjax commented on Aug 29, 2021

    @Stubbjax
    Contributor

    The terrain height surrounding the mid supplies in Winter Wolf would be a good candidate.

    Winter.Wolf.mp4
  3. xezon commented on Sep 2, 2021

    @xezon
    ContributorAuthor

    Plokite_Wolf raised issue about path issues on maps:

    mappathissue1

    mappathissue2

  4. changed the title [-]Decide whether or not Official Maps should be tweaked[/-] [+]Investigate how Official Maps can be improved[/+] on Sep 4, 2021
  5. xezon commented on Sep 4, 2021

    @xezon
    ContributorAuthor

    kABUSE:

    Compstomp AI pathfinding is just done in an incredibly stupid way.

    Problem 1:
    Each base only has one set of pre-defined entry-paths that DO NOT take into account, where the enemy is actually located, so enemies will, depending on start positions, do ridiculously stupid things in order to enter or defend a base (like "unintentionally" driving through an allies base first or building def on the wrong side of their base). That's why AIs def is so easy to overcome when you are a human, because you would not make your units follow the pre-defined path the AI expects you to follow... but AI vs. AI the def is quite fine lol...

    Problem 2:
    The way the AI units are scripted, they will technically follow the path, BUT they will start on the waypoint of the path that is closest to them. And when calculating the closest point, they ignore obstacles and cliffs... I attached a picture. The paths are highlighted. But in this constellation (green vs yellow), the only waypoints used by the comp units would be the ones that I have circled in red. Technically they could start following the path from the lower area (the middle) but they don't do that because the direct line-of-sight connection to the endpoint is shorter. So they decide to attempt to directly move to that endpoint, but that doesn't work because:

    Problem 3:
    The pathfinding is just generally too stupid to process across greater distances. Big maps only work without lag if the direct line-of-sight connection the units try to follow is basically obstacle-free. Once the calculated path gets too long, there will be tremendous amounts of lag.

    pathfinding

    Problem 4:
    When the lag spike happens, in 99% of cases that means that the unit has not found a valid path to reach the endpoint. The implemented exception handling is that the unit will try to reach the endpoint in a straight line, periodically re-trying to find a new valid path. On a large, open map this exception handler would work. But on twilight flame they will end up getting stuck on the cliff dividing the bases. And instead of making the required "routing" to the endpoint less complicated (and making it at some point "valid" again), they make it more complicated, increasing the lag even further. So the exception handler works in reverse on maps like Twilight Flame.

    Conclusion:
    It's not that easy because they also use tons of "hunt" and "attack anything in" scripts. Both also only do the "attack nearest target while ignoring cliffs even though you can't fly"....

    I am positive that the entire AI scripts for all factions would need to be overhauled in order to make them work on all maps without lag. This would take an incredible amount of time and in the end the AI would still suck at the game. So I don't think this fix is worth the effort only to make a few more maps work for compstomps. I don't think it is possible to fix it the lag without touching the AI scripts.. without killing the point of the Twilight Flame map concept with the trench in the middle.

  6. xezon commented on Sep 11, 2021

    @xezon
    ContributorAuthor

    Rising said:

    My worry would be you would annoy the casual players if you start changing the official maps and it wouldn't benefit the serious players because they still would prefer to play on the better RANK maps.
    Well say if you removed the cars from Defcon, most pros would agree with this but some players might not like it. The alternative is just to create a new unofficial version without cars. This way everyone still has the choice.
    Or say if you balanced the supplies on Twighlight flame, all the comp stompers might not like it (don't know just speculating)

    Jundiyy said:

    I don't think anything major should be touched at all. TD can have the Oil balanced, also the middle building (unless Relax did it, can't remember). Forgotten Forest can have 2nd supp land flattened for top player. I don't think we should go in too much detail that it changes the maps.

  7. added
    MajorSeverity: Minor < Major < Critical < Blocker
    on Sep 17, 2021
  8. changed the title [-]Investigate how Official Maps can be improved[/-] [+]Maps improvements master topic[/+] on Jul 11, 2022
  9. locked and limited conversation to collaborators on Jul 11, 2022
  10. converted this issue into a discussion #688 on Jul 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    MajorSeverity: Minor < Major < Critical < BlockerTaskA task for someone to work on

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions