• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Login
FAForever Forums
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Login

Questions about performance

Scheduled Pinned Locked Moved General Discussion
70 Posts 19 Posters 12.4k Views
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.
  • J Offline
    Jip @Vanifica
    last edited by Jip 8 Jul 2021, 14:37 7 Aug 2021, 14:37

    @vanifica said in Questions about performance:

    I would be totally into this. I guess I assumed LOUD worked by graphical changes, but I never tested it extensively since it didn't have an online client as far as I could tell.

    They claim 5000 units without any simspeed issues IIRC. That does imply there's some "magic bullet" somewhere in the code they figured out?

    Graphics changes do help, but are quite limiting. There is a separate render thread that takes care of most of the rendering. Only emitters have a (relative small) impact on the sim.

    LOUD can run a significant larger number of units than FAF while staying at +0 or higher. They do this by applying the same techniques, everywhere. If you look at their repository you'll see this. Everything is written with maximum performance in the back of their head.

    That means there is no magic bullet - as I did for the projectiles, you have to go over all the files (including the base classes such as seraphimprojectiles.lua, defaultprojectiles.lua, and projectiles.lua) and apply the same techniques everywhere. And that just takes time.

    In the end 95% of the work is 'grunt work', in terms of having to go over hundreds of units / weapon files and looking at the logic, making small improvements performance-wise. Only very little of the work is difficult and abstract - there are some examples like specializing code (moving it down a class so that not all units call StopRocking() by default, instead only units that actually do Rocking (hover units) will call that in their own super class). Another example is the impact of the score(board) / hotstats.

    If you're interested in helping, I can help get you started.

    A work of art is never finished, merely abandoned

    1 Reply Last reply Reply Quote 2
    • D Offline
      Dragun101
      last edited by 7 Aug 2021, 16:09

      The more important thing for us not is not hreaking the various often used sim mods. So I’d also test various changes with:
      Total Mayham
      BlackOps (All Variants)
      BrewLan
      Marlo’s Mod Compedium

      And then a few other sim mod.

      I’m a shitty 1k Global. Any balance or gameplay suggestions should be understood or taken as such.

      Project Head and current Owner/Manager of SCTA Project

      J 1 Reply Last reply 7 Aug 2021, 17:29 Reply Quote 0
      • J Offline
        Jip @Dragun101
        last edited by Jip 8 Aug 2021, 09:52 7 Aug 2021, 17:29

        @dragun101
        I agree. I'm not changing the API or the outcome of a function. I am only changing how that came to be. I'll keep it in mind, but I do not expect any issues.

        A work of art is never finished, merely abandoned

        1 Reply Last reply Reply Quote 0
        • D Offline
          Dragun101
          last edited by 7 Aug 2021, 19:10

          It might be worthwhile if and when you change a how certain variables are defined or when. To make sure the big mods don’t rely on that or made use of those variables.

          I’m a shitty 1k Global. Any balance or gameplay suggestions should be understood or taken as such.

          Project Head and current Owner/Manager of SCTA Project

          1 Reply Last reply Reply Quote 0
          • S Offline
            Sheikah
            last edited by 7 Aug 2021, 19:35

            From looking at how Jip has implemented this it should have no impact on the other big mods as all the original variables are all still accessible. They just will not be optimized in the mods

            1 Reply Last reply Reply Quote 2
            • S Offline
              Sprouto @Vanifica
              last edited by 7 Aug 2021, 21:28

              @vanifica said in Questions about performance:

              I would be totally into this. I guess I assumed LOUD worked by graphical changes, but I never tested it extensively since it didn't have an online client as far as I could tell.

              They claim 5000 units without any simspeed issues IIRC. That does imply there's some "magic bullet" somewhere in the code they figured out?

              This has long been a myth - LOUD never gained any real performance boost from suppression of graphics. We did toy with this several years ago, and it stuck for some reason. There are certainly some graphical things we simplified or tied to the SIM speed, but over time, most of the pretty was returned to normal.

              As Jip rightly points out - there was never a 'magic bullet' - just a lot of patient work going thru almost the entire code base, implementing the techniques that Jip is encouraging FAF to adopt now. The gains are real, but the work is extensive, but not difficult.

              1 Reply Last reply Reply Quote 3
              • J Offline
                Jip
                last edited by 8 Aug 2021, 10:11

                I've updated the 2nd post of this topic to keep track of everything related to performance.

                A work of art is never finished, merely abandoned

                1 Reply Last reply Reply Quote 0
                • J Offline
                  Jip
                  last edited by 17 Aug 2021, 09:23

                  Note - two additional performance-related PRs have been merged.

                  A work of art is never finished, merely abandoned

                  1 Reply Last reply Reply Quote 0
                  • J Offline
                    Jip
                    last edited by Jip 25 Aug 2021, 08:42

                    We're aiming for a patch near the start of September. However, we need more people to play on the develop branch to test whether everything works. This patch is larger than typical because the last patch is from September 2020.

                    Therefore my question is for you all to host games on FAFDevelop and report back!

                    7acd7947-ae06-4939-87dc-f39f13a31ff7-image.png

                    Report back any strange behavior afterwards. You can find the log of the game here.

                    • C:\Users\%USERNAME%\AppData\Local\Gas Powered Games\Supreme Commander Forged Alliance

                    If the bug is visual, make sure to add a screenshot.

                    Always attach the log - we can't work on the issues without it. You can send it to me through the forums or through discord where you can find me as Jip#4301.

                    edit: note that the branch is ranked (!).

                    A work of art is never finished, merely abandoned

                    U 1 Reply Last reply 26 Aug 2021, 11:40 Reply Quote 3
                    • Z Offline
                      Zeldafanboy
                      last edited by 25 Aug 2021, 13:24

                      And this is just performance improvements, or are there other changes like bugfixes or balance changes?

                      put the xbox units in the game pls u_u

                      1 Reply Last reply Reply Quote 1
                      • S Offline
                        Sheikah
                        last edited by 25 Aug 2021, 14:09

                        Fafdevelop contains all the bugfixes and updates and optimizations since September 12 2020 which was the day of the last game patch.

                        It shouldn't include any balance changes.

                        Jip might best know the full change log

                        1 Reply Last reply Reply Quote 0
                        • J Offline
                          Jip
                          last edited by 25 Aug 2021, 15:31

                          It includes no balance changes. Keyser and I will be working on the full changelog in a few days.

                          A work of art is never finished, merely abandoned

                          1 Reply Last reply Reply Quote 5
                          • A Offline
                            Aulex
                            last edited by 25 Aug 2021, 18:13

                            Nice work Jip and the rest of the folks working on it!

                            1 Reply Last reply Reply Quote 0
                            • AzraaaA Offline
                              Azraaa
                              last edited by Azraaa 26 Aug 2021, 03:27

                              To key in on this performance and development large phase that faf is currently going through. I am working on really improving functionality and performance of ALL core AI code on faf so helpfully for you AI Players you'll get even more benefit once these patches come out.

                              Very exciting stuff that jip has allowed us to do 🙂

                              Developer for LOUD Project | https://discord.gg/DfWXMg9
                              AI Development FAF Discord | https://discord.gg/ChRfhB3
                              AI Developer for FAF

                              Community Manager for FAF
                              Member of the FAF Association
                              FAF Developer

                              1 Reply Last reply Reply Quote 2
                              • U Offline
                                Utopian @Jip
                                last edited by Utopian 26 Aug 2021, 11:40

                                @jip game_15187368.log
                                Hey, I just played this game and got a memory access violation crash after one of the AI players died. This is the full log which FA gave me afterwards. The only sim mods active were AI-Uveso and AI-RNG. All else is just UI stuff like SSB.

                                J 1 Reply Last reply 26 Aug 2021, 11:43 Reply Quote 0
                                • J Offline
                                  Jip @Utopian
                                  last edited by Jip 26 Aug 2021, 11:43

                                  @utopian Thanks for your report, looking into it now.

                                  Do you happen to have the exact exception code that occured?

                                  edit: after inspecting the log I suspect this crash is not related to the develop branch, but to something else. If you happen to have the exact exception code then I can compare it with exception codes that we've found previously.

                                  A work of art is never finished, merely abandoned

                                  U 1 Reply Last reply 26 Aug 2021, 13:30 Reply Quote 0
                                  • U Offline
                                    Utopian @Jip
                                    last edited by Utopian 26 Aug 2021, 13:30

                                    @jip

                                    Here's the specific error message. Don't know if it's related to develop after all, but might be worth a gander.

                                    EXCEPTION_ACCESS_VIOLATION (0xc0000005) at address 0x0050dfd8
                                    attempted to read memory at 0x0000005c

                                    Program : C:\ProgramData\FAForever\bin\ForgedAlliance.exe
                                    Cmd line arguments : /init init.lua /nobugreport /log C:\ProgramData\FAForever\logs\game_15187368.log /gpgnet 127.0.0.1:34600 /mean 1333.36 /deviation 222.314 /savereplay gpgnet://127.0.0.1:52527/15187368/Utopian.SCFAreplay /country HU /numgames 28

                                    Callstack:
                                    Unknown symbol (address 0x0050dfd8)
                                    Unknown symbol (address 0x0068af40)
                                    Unknown symbol (address 0x1d1ed9fb)
                                    Unknown symbol (address 0x1d1ed9fb)

                                    EDIT: if you need system specs or anything, just tell me.

                                    J 1 Reply Last reply 27 Aug 2021, 08:37 Reply Quote 0
                                    • J Offline
                                      Jip
                                      last edited by Jip 26 Aug 2021, 13:43

                                      I've added yours to the tracker: https://github.com/FAForever/fa/issues/2045

                                      I don't think there is need for system specs. I hope we don't see it more often because then we did something silly 🙂 .

                                      edit: and thanks again for reporting!

                                      A work of art is never finished, merely abandoned

                                      1 Reply Last reply Reply Quote 0
                                      • S Offline
                                        snoog
                                        last edited by snoog 26 Aug 2021, 15:30

                                        @Jip

                                        Playing a setons right now. Performance is great so far. Just a couple things

                                        1. I can't ping after my ACU was killed. Is this a bug or new feature?
                                        2. Cybran hive drones are completely MIA. I only see the beams.
                                          alt text

                                        Edit: I'm loving the changes. 45 minute setons game, only went -1 towards the end for a little bit because of one person. Everyone else was still +1 or higher.

                                        J 1 Reply Last reply 26 Aug 2021, 16:04 Reply Quote 0
                                        • J Offline
                                          Jip @snoog
                                          last edited by Jip 26 Aug 2021, 16:04

                                          @snagglefox Great to hear!

                                          I can't ping after my ACU was killed. Is this a bug or new feature?
                                          Sadly this is neither a bug nor a feature. Pinging after dying is disabled because of a potential exploit. For more information, read this PR: https://github.com/FAForever/fa/issues/2259

                                          Cybran hive drones are completely MIA. I only see the beams.
                                          🤔 , the drones being missing is a bug - not sure what causes it yet. I'll make sure to investigate it before the patch hits in September.

                                          edit: about the drones missing, could you describe what you did right before it happened? I have a hard time re-producing it.

                                          A work of art is never finished, merely abandoned

                                          S 1 Reply Last reply 26 Aug 2021, 16:23 Reply Quote 0
                                          • First post
                                            Last post