TripleA Logo TripleA Forum
    • TripleA Website
    • Recent
    • Popular
    • Register
    • Login

    Bugs in World War I

    Scheduled Pinned Locked Moved Bug Reports
    22 Posts 5 Posters 2.5k Views 5 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • wc_sumptonW
      wc_sumpton @Schulz
      last edited by

      @Schulz said:

      After the Americans took Rome from the occupying Central Powers, the Americans did not hand over the factory and port, thus preventing the Italians from using them.

      The Americans begin as "Neutral". Even though they are part of the "Allied Powers" alliance, their neutrality mean that they are governed by the "relationship" rules, thus "givesBackOriginalTerritories" will only happen at the end of the Americans politics phase, as stated in the PoS2. Since there are no politics phases, "givesBackOriginalTerritories" never happens.

      Factories and ports have a production value of zero (0). So only the original owner of a territory which is an original factory territory and has a factory can produce units there.

      Cheers...

      RogerCooperR 1 Reply Last reply Reply Quote 1
      • RogerCooperR
        RogerCooper @wc_sumpton
        last edited by

        @wc_sumpton The production value of 0 is probably confusing the AI.

        1 Reply Last reply Reply Quote 1
        • wc_sumptonW
          wc_sumpton @RogerCooper
          last edited by

          @RogerCooper said:

          The only obvious difference between the xml files is the "placeNoAirCheck". But changing that to "place" did not solve the problem.

          This change does work. As long as the step name is "place" the delegate can still be "NoAirCheckPlaceDelegate".

          <delegate name="place" javaClass="games.strategy.triplea.delegate.NoAirCheckPlaceDelegate" display="Place Units"/>
          ...
          ...
          ...
          <step name="austrohungariansPlace" delegate="place" player="AustroHungarians"/>
          

          This is because the AI looks for "place" or "endStep" when determining its purchases. "placeNoAirCheck" and even "noAirCheckPlace" do not work.
          AustroHungarians and Russians both may, using HardvAI, start the game without making any purchases.
          The reason for the non-purchase is more an AI problem. The first step in the AI's purchase routine is to determine how many fodder units it needs to defend high-value targets. Since both Vienna and Moscow are safe from attacks no defensive fodder units are purchased. During gameplay Germans, French and Ottomans can also feel 'safe' and not purchase fodder units.
          Once the AI determines its defensive fodder purchases it then tries to purchase factories and high-value units. What PUs that are not spent are carried over. Because the AI does not try to repurchase fodder units with this left over PUs, it ends up purchasing very few or nothing.

          Because the fighter is a 2 attack/2 defend it is considered very weak when compared to infantry and artillery and is almost never purchased. Also, only the Americans purchase navel units.

          If the combat move is switched with the purchase step the non-combat step can be removed.

          <step name="austrohungariansUserActions" delegate="userAction" player="AustroHungarians"/>
          <!-- Combat Move is before Purchase -->
          <step name="austrohungariansCombatMove" delegate="move" player="AustroHungarians"/>
          <step name="austrohungariansPurchase" delegate="purchase" player="AustroHungarians"/>
          <step name="austrohungariansBattle" delegate="battle" player="AustroHungarians"/>
          <!-- NonCombat Move is removed -->
          <!-- "place" is "NoAirCheckPlaceDelegate" -->
          <step name="austrohungariansPlace" delegate="place" player="AustroHungarians"/>
          <step name="austrohungariansEndTurn" delegate="endTurn" player="AustroHungarians"/>
          

          The AI will first preform a normal combat move, this includes moving air units, and because there is not a noncombat move step, the AI will perform a normal noncombat move with the exception of air units in combat, which cannot be moved. Even though the AI can simulate a combat move without the noncombat move it confuses which territories it can do battle in.

          Cheers...

          1 Reply Last reply Reply Quote 1
          • wc_sumptonW
            wc_sumpton
            last edited by wc_sumpton

            @rogercooper

            @victoryfirst has closed issues 14843, but his closing:

            Changing PlaceNoAirCheck to Place wouldn't help as the fighter in the three modules with the problem are classified as air units. They will be eliminated by the engine in contested zones without PlaceNoAirCheck. In World War I 1914, the fighters are land units which means there is no need for PlaceNoAirCheck, but there air units cannot fly over water
            

            Make no sense, as using "place" or "PlaceNoAirCheck" does not matter as long as the called delegate is still "NoAirCheckPlaceDelegate". In fact he uses a step name with "Place". And there was no mention of changing the "fighters".
            @schulz I am sorry, I cannot make changes to a map I do not own. If you know how to change the xml, then you can make changes to your copy.

            Cheers...

            VictoryFirstV 1 Reply Last reply Reply Quote 2
            • VictoryFirstV
              VictoryFirst @wc_sumpton
              last edited by

              @wc_sumpton So if I understand correctly, you can use Place with NoAirCheckPlaceDelegate and this would solve the problem of the AI not purchasing anything and it would prevent fighters that cannot land from being killed by the engine in the placement phase?

              wc_sumptonW 1 Reply Last reply Reply Quote 1
              • wc_sumptonW
                wc_sumpton @VictoryFirst
                last edited by

                @VictoryFirst said:

                So if I understand correctly, you can use Place with NoAirCheckPlaceDelegate and this would solve the problem of the AI not purchasing anything and it would prevent fighters that cannot land from being killed by the engine in the placement phase?

                The problem is not the delegate, NoAirCheckPlaceDelegate, but what the AI is coded for when doing purchasing, that being 'place' or 'endStep'. Because there is no 'place' the AI disregards the purchase.
                <delegate name="place" javaClass="games.strategy.triplea.delegate.NoAirCheckPlaceDelegate" display="Place Units"/>
                Works with
                <step name="AustroHungariansPlace" delegate="place" player="AustroHungarians"/>
                And fighters can stay 'isAir'.

                Cheers...

                RogerCooperR 1 Reply Last reply Reply Quote 2
                • RogerCooperR
                  RogerCooper @wc_sumpton
                  last edited by

                  @wc_sumpton I tried removing replacing all references to NoAir with the standard delegates and it did not resolve the issue.

                  wc_sumptonW 1 Reply Last reply Reply Quote 1
                  • wc_sumptonW
                    wc_sumpton @RogerCooper
                    last edited by

                    @RogerCooper said:

                    I tried removing replacing all references to NoAir with the standard delegates and it did not resolve the issue.

                    I do not understand what is meant by this. Is "NoAirCheckPlaceDelegate" still being called? Are you using "HardAI" or "FastAI" and how many AI players? How many rounds were tested.
                    There are times, especially with HardAI, where the AI will determine that defensive fodder units are unnecessary to purchase and that it's PUs would be better spent on more expensive attack units or factories.
                    Both Austro Hungarians and Russians can take up to 3 turns before they might purchase anything.

                    This is the balance xml for you to review:
                    world_war_i_1914_balanced.zip

                    Cheers...

                    RogerCooperR 1 Reply Last reply Reply Quote 1
                    • RogerCooperR
                      RogerCooper @wc_sumpton
                      last edited by

                      @wc_sumpton I will try checking for longer. It seems strange to not build anything.

                      wc_sumptonW 1 Reply Last reply Reply Quote 1
                      • wc_sumptonW
                        wc_sumpton @RogerCooper
                        last edited by

                        @RogerCooper said:

                        It seems strange to not build anything.

                        I understand this. The first problem was that the AI player was not purchasing anything. Now the AI can purchase. Will the AI make a purchase, depends now on the AI logic.

                        Cheers...

                        RogerCooperR 1 Reply Last reply Reply Quote 2
                        • RogerCooperR
                          RogerCooper @wc_sumpton
                          last edited by

                          @wc_sumpton I tested this to the end of the game. No one builds anything.

                          wc_sumptonW 1 Reply Last reply Reply Quote 0
                          • wc_sumptonW
                            wc_sumpton @RogerCooper
                            last edited by

                            @RogerCooper

                            Without see more of the xml that is causing the problems, and more information on how the map was tested, which players are AI. Then there is not much more that I can say.

                            The issue is still open on GitHub.

                            Cheers...

                            RogerCooperR 1 Reply Last reply Reply Quote 1
                            • RogerCooperR
                              RogerCooper @wc_sumpton
                              last edited by

                              @wc_sumpton I tried all players as AI using the World War I Improved map.

                              wc_sumptonW 1 Reply Last reply Reply Quote 1
                              • wc_sumptonW
                                wc_sumpton @RogerCooper
                                last edited by

                                @RogerCooper

                                To test, I updated TripleA to version 2026-9.16.15785. Uninstalled and reinstalled world-war-i-1914-improved, which included both World War I 1914 Improved and World War I 1914 Tournament Rules.
                                Using Fast-AI for all players the game ended at round 8 with the Allied Powers declared as the winner. The AI made no purchases during the game.
                                Using Hard-AI for all players the game ended at round 11 with the Central Powers declared as the winner. The AI made no purchases during the game.
                                Inside the xml there are 9 occurrences of " placeNoAirCheck" which were replaced with "place".
                                After reloading World War I 1914 Improved, Fast-AI was selected for all players. Round 1 the Austro Hungarians purchased 6 infantry and 2 artillery. Russians purchased 3 infantry and 4 artillery. The game was stopped after 15 rounds with no one declared as the winner. All AI players made purchases during the game.
                                Using Hard-AI for all players, the game was again stopped at round 15 with no winners. Austro Hungarians made their first purchase in round 2 with 10 infantry and 6 artillery. Russians purchased 20 infantry and 3 artillery on round 3, having made no purchases during rounds 1 and 2. During the game all AI players made purchases.

                                Cheers...

                                TheDogT 1 Reply Last reply Reply Quote 2
                                • TheDogT
                                  TheDog @wc_sumpton
                                  last edited by TheDog

                                  @wc_sumpton
                                  Would your super-dupa placementAnyTerritory fix,
                                  https://forums.triplea-game.org/topic/3326/1941-global-command-decision-official-thread/1005?page=51

                                  aid the AI into purchasing?

                                  https://forums.triplea-game.org/tags/thedog
                                  https://forums.triplea-game.org/topic/3741/curated-best-top-maps-triplea-guides

                                  wc_sumptonW 1 Reply Last reply Reply Quote 3
                                  • wc_sumptonW
                                    wc_sumpton @TheDog
                                    last edited by

                                    @TheDog said:

                                    Would your super-dupa placementAnyTerritory fix

                                    Thanks for the thought. This hack helps with the placement of factory/construction type units which were not placed by the AI's normal purchase-placement routine. Here the problem is with purchasing, which the AI is not doing because the AI does not find when to start a simulated purchase. Without creating a purchase, there is nothing to place.
                                    For my testing, replacing "placeNoAirCheck" with "place" does allow the AI to make purchases but this does not seem to work for @rogercooper. I'm not replacing the delegate "NoAirCheckPlaceDelegate" with the "PlaceDelegate" as there would be no change in my testing. So maybe @rogercooper could test if changing both the name and delegate makes any difference.

                                    Cheers...

                                    1 Reply Last reply Reply Quote 1

                                    Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                    Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                    With your input, this post could be even better 💗

                                    Register Login
                                    • 1
                                    • 2
                                    • 1 / 2
                                    • First post
                                      Last post
                                    Powered by NodeBB Forums