FAForever Forums
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Login
    The current pre-release of the client ("pioneer" in the version) is only compatible to itself. So you can only play with other testers. Please be aware!

    Supcom/Moho engine rewrite

    Scheduled Pinned Locked Moved Contribution
    58 Posts 32 Posters 3.5k Views 13 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.
    • S Offline
      SlightlyGrilled @hobosapien
      last edited by

      @hobosapien Thank you πŸ™‚

      1 Reply Last reply Reply Quote 0
      • S Offline
        SlightlyGrilled @The_Janitor
        last edited by

        @The_Janitor Can you send me the log file please? it should be right next to the exe πŸ™‚

        The_JanitorT 1 Reply Last reply Reply Quote 1
        • S Offline
          SlightlyGrilled @IndexLibrorum
          last edited by

          @IndexLibrorum Hello! I think i have actually spoke to you a bit on the discord, when I've posted links, i think you had ideas on the keyframe stuff with the replays right? well know there in! 🐷

          I'm always happy to chat tech, or anything like that πŸ™‚

          On the speeding up tests, that's actually a great idea and didn't occur to me! thank you πŸ™‚
          I spent a bit of effort to load in the maps as fast as possible before, a main bottleneck for me is some of fafs start up lua is quite slow, although i did some work to speed that up, and the tests do run faster now.
          In reality i run the tests in parallel without the window, that i just measured, completes in 9.49 seconds on my machine.

          I did the screen recording just for visuals πŸ˜›

          But faster is always better!

          1 Reply Last reply Reply Quote 0
          • The_JanitorT Offline
            The_Janitor @SlightlyGrilled
            last edited by

            @SlightlyGrilled
            https://limewire.com/d/DWWf2#9gbKJxH9UW
            game.log is uploaded on the link, text size too big to place here, sorry.

            Secure the kill and send it off.

            S 2 Replies Last reply Reply Quote 0
            • S Offline
              SlightlyGrilled @IndexLibrorum
              last edited by

              @IndexLibrorum you peaked my interest on the map loading, so i went and actually timed it.

              Both the total time with graphics running in a window.
              and if i run it headless without the graphics.

              Theta Passage (SCMP_012), 5 km
              total 0.89 s | map textures ready 0.71 s | sim running 0.75 s
              (headless total 0.47 s)

              Open Palms (SCMP_007), 10 km
              total 0.93 s | map textures ready 0.80 s | sim running 0.78 s
              (headless total 0.50 s)

              Seton's Clutch (SCMP_009), 20 km
              total 1.04 s | map textures ready 0.88 s | sim running 0.87 s
              (headless total 0.58 s)

              Gentleman's Reef (SCMP_005), 40 km
              total 1.38 s | map textures ready 0.87 s | sim running 1.20 s
              (headless total 0.83 s)

              Betrayal Ocean (SCMP_029), 81 km
              total 1.51 s | map textures ready 1.06 s | sim running
              (headless total 0.91 s)

              Frostmill Ruins (SCMP_030), 81 km
              total 1.51 s | map textures ready 1.02 s | sim running 1.34 s
              (headless total 0.94 s)

              Debris (X1MP_012), 81 km
              total 1.45 s | map textures ready 1.21 s | sim running
              (headless total 0.82 s)

              1 Reply Last reply Reply Quote 0
              • S Offline
                SlightlyGrilled @The_Janitor
                last edited by

                @The_Janitor Thanks I will have a look!

                1 Reply Last reply Reply Quote 0
                • S Offline
                  SlightlyGrilled @Dim-A-miD
                  last edited by

                  @Dim-A-miD yeah its super cool!

                  In case three isn’t enough and you’d like to bring the total to five...

                  I think this, and your link goes way over my head? πŸ˜„

                  1 Reply Last reply Reply Quote 0
                  • S Offline
                    SlightlyGrilled @The_Janitor
                    last edited by

                    @The_Janitor ok found it, i will release a new version that fixes this, but in the mean time, in your mod folder you have a file mods/auto-upgrading mass extractors.7z

                    my engine is picking this up and thinking its a zip file. if you move that file it should work πŸ™‚

                    but i will also fix this in the next version.

                    The_JanitorT 1 Reply Last reply Reply Quote 0
                    • The_JanitorT Offline
                      The_Janitor @SlightlyGrilled
                      last edited by

                      @SlightlyGrilled said:

                      @The_Janitor ok found it, i will release a new version that fixes this, but in the mean time, in your mod folder you have a file mods/auto-upgrading mass extractors.7z

                      my engine is picking this up and thinking its a zip file. if you move that file it should work πŸ™‚

                      but i will also fix this in the next version.

                      Confirmed, that did it! Game lunches now, thanks!

                      Secure the kill and send it off.

                      1 Reply Last reply Reply Quote 0
                      • X Online
                        Xiaomi @SlightlyGrilled
                        last edited by Xiaomi

                        fd9e8224-29f0-43cb-86fe-2d5f3bbe542f-image.png
                        @slightlygrilled I see that the lua calls are grouped. I thought there would be a lot of small callback calls and everything would look like "Swiss cheese" XD. So does it queue up the lua callback calls and execute them together?

                        @SlightlyGrilled said:

                        No, right at the very start i looked at it, and as much as i think its a fantastic data structure, it just doesn't fit supcoms design

                        Could you provide more details? Why did you abandon ecs?

                        S 1 Reply Last reply Reply Quote 0
                        • S Offline
                          SlightlyGrilled @Xiaomi
                          last edited by SlightlyGrilled

                          @Xiaomi you can see under lua weapon events, there is the number 13k, that's the individual lua callbacks, I'm just not zoomed in enough to see.
                          And again under lua projectile impacts another ~3k

                          So yes the general setup is rust systems calculate everything, then apply the effects.

                          Actually now I'm looking I need to check that weapon step, and whether its unmarked lua, or native code. Thanks for the curiosity!

                          Ok an update on that, i went and had a look, and it could totally disappear! here you go πŸ™‚ thank you!

                          ad4b6242-b73b-45a8-9591-81e8c83acd8d-image.png

                          This brought the 64k air fight from 307ms a tick to 270ms! (although not in that screenshot, but as an average, Tracy does also slow down the game alittle)

                          On ECS, so from my understanding, ecs is really great when you have tight data you want to iterate very fast, moving as little data as possible from ram to cpu cache.

                          Like if you want to move over every entities health and add regen.

                          It's also great as an abstraction allowing separate systems to just deal with the data they want to deal with, they don't need to know about everything else, they just want to know health, and health regen etc...

                          However in supcom, there is a huge amount of lua, and it's structured around being able to access any of the state at any point.

                          So to this effect, i just store entities (units etc..) in a dense array, and lookup almost instantly by id/index.

                          Another issue is the sim is deterministic, which means i need fixed iteration order, and when looking at the ecs around, they didn't guaranty fixed order, when components where added or removed.

                          This was ages ago i made this choice though, so i could be miss remembering it, or it just straight wrong!

                          And if i do get cache bottle necks on tight systems, i can always move to separate arrays for different parts of the data.

                          Good questions though! happy to discuss more if you have more questions/ideas πŸ™‚

                          1 Reply Last reply Reply Quote 0
                          • SaverS Offline
                            Saver
                            last edited by

                            Hi, do you have any installation guides explaining how I can set up and test your engine? I'm not very familiar with this area.

                            Thanks for all your great work!

                            auch mal fΓΌnf gerade sein lassen

                            1 Reply Last reply Reply Quote 0

                            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
                            • First post
                              Last post