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
    21 Posts 16 Posters 1.2k Views 7 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
      snoog
      last edited by

      Pretty funny (and awesome) seeing this here today. I was just reading about new AI models and their reverse engineering capabilities and was thinking about giving something like this a shot. Looks pretty damn sweet so far. Who'd ever imagine potential 64p SupCom? Love that you having a "working" MP version already, and that connection grid.

      1 Reply Last reply Reply Quote 0
      • J Offline
        J_W_W
        last edited by

        This sounds to be excessively awesome, great effort out of nowhere!
        haven't tried it yet, will definately keep an eye on it.

        Just a great fan of the game myself, knowing and hearing of the bottlenecks that would require a new engine (or a rewrite) to fix.
        And then to realise the opportunities this possibly opens up for further improvements makes this even more awesome.
        Hope this endeavour will soon flourish!
        Also makes one wonder if a single knowledgeable person with AI assistance is already capable of delivering such a feat that would take an entire team many months to pull off is slighty unnerving (if AI is this capable now already...).

        1 Reply Last reply Reply Quote 0
        • Brutus5000B Offline
          Brutus5000 FAF Server Admin
          last edited by

          Does your engine run the lua code for the game patch?

          He said, "I've been to the year 3000
          Not much has changed, but they live underwater
          And your great-great-great-granddaughter
          Is playin' FAF, playin' FAF"

          1 Reply Last reply Reply Quote 0
          • GiebmasseG Offline
            Giebmasse Team Lead FAF Association Board Moderator Admin
            last edited by

            I ran it yesterday on linux with latest FAF game files.

            1 Reply Last reply Reply Quote 2
            • A Offline
              arkenflame
              last edited by

              Do you plan to share on github? Would love to follow along!

              1 Reply Last reply Reply Quote 0
              • D Offline
                Darien_
                last edited by

                Also keen to follow/contribute if you are able to share a GitHub link.

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

                  Hello, I'm back, and I believe I'm even closer to feature parity with base supcom now!

                  Before anything, the exes:
                  Mac
                  https://upload.disroot.org/r/Ruv6XWA3#wTu4NeQg/SvvKWHGL/Y7Z5k0qRnYoYJoUka+Ej3arog=
                  Windows
                  https://upload.disroot.org/r/q2XTdA0V#rTfciPHkfYNsX5bRLmBEeauD1BliPu8WrPebsCqWFjY=
                  Linux
                  https://upload.disroot.org/r/8FAj9fnz#ZHyZiptsQo4EmI53hP6sn2y2ea3NrL8OVosy61PgbRE=


                  Many nasty little bugs have been squashed.
                  Don't miss the particle video πŸŽ†

                  But first performance!

                  I wasn't happy with the fps in that 64k air fight, after all it's only 64k, that's rookie numbers for modern computers.

                  While I can't do much about the 200-300ms of time spent in the lua (as a rule of this project is not to edit the faf/supcom lua, it must be a drop in replacement), I can certainly improve the rendering speed.

                  and in this modern age computers come with many cores, so best put them to good use.

                  The rendering loop is made up of a few stages

                  • intel
                  • strategic icons
                  • minimap
                  • interpolate positions
                  • animation
                  • lod selection
                  • particles
                  • ui
                  • issuing draw calls

                  before this was all serial in a single render thread.

                  now its broken down, in to two main threads, with workers for more parallel work

                  First LODs

                  Then

                  • intel
                  • strategic icons
                  • ui

                  at the same time

                  • interpolate positions
                  • animation
                  • particles

                  as can be scene here
                  37ad76e8-32d2-49e7-81c1-f5e324f58d7f-image.png

                  Then the next thing was the draw submits to wgpu. Now we're long past the days of direct9 and being bound to a single thread.

                  We can record the commands all in parallel.
                  87166459-df35-479c-87f8-4855eff252d5-image.png

                  Along with some work to batch process units

                  we end up with a full frame looking like this
                  e5762e9a-bfae-4e48-847b-da983caeeaef-image.png

                  You can really see the difference vs before
                  331b26a5-3d14-4a91-8246-12611c2e6c30-image.png

                  This brings the 64k air fight from about 15fps up to 70-100fps.
                  While the main sim only runs about 2.5-3x slower than the default speed!

                  and can all be seen below in full technicolour!
                  https://youtu.be/UVgRPUpkJp0

                  And for extra fun, you can see the whole sim tick for that fight here, look at all that lua (in blue/cyan on the sim thread)!
                  Every bit that isn't rips through as many cores as it can
                  182367bc-0289-44d7-990b-c2bd53e94a38-image.png


                  On to bugs/improvements, and there are many!

                  Replays!

                  Now these are only compatible with my version and only with the version that created them.

                  The game will save out your last 100 replays, and you can access them in the replay menu.

                  They are stored along side the exe
                  7e49e8ac-8b69-4069-bdf7-dc05781db97d-image.png

                  Particles!!!

                  So supcoms particles where kind of gpu accelerated, well not full compute shader, but they wrote all the info to buffers, then let the vertex shader go to town.

                  Also particles where just horrible broken in my version.

                  We now in 2026 do the same! (along with my 2nd fav unit to show it off (don't worry fatboy, you're still number 1)
                  edab2356-79a0-43b5-af79-5375ddb3b5eb-image.png
                  ac95ae90-adcf-4c30-9ed7-44918a8849e3-image.png

                  Actually I believe really you need to see the Video to really do particles justice πŸ™‚
                  https://youtu.be/qlK1FC12H1o

                  Map gen

                  the map actually looks correct (or more so) now.
                  Before πŸ˜•
                  c154d317-8c4a-4d15-9e22-1975b2decbde-image.png

                  After!
                  6b6ac47f-ab49-458f-9104-2a533dd7bd3d-image.png

                  Before
                  2400916e-bb90-4a5d-acc7-ade6f44e663c-image.png
                  After
                  d6a0edd0-7045-4435-abd9-f6d606062477-image.png

                  Before
                  cef78e14-ab79-4539-a61f-d6c079f2e616-image.png
                  After
                  f653cb5e-b9ed-4999-b62b-a56e60f3f1c7-image.png

                  Glowing Mexs!

                  53c7d4b1-454a-429f-bdc2-9a0f561b6aba-image.png

                  Rings!

                  Now they work for hover and select, and just generally work
                  79a26918-e1dc-439b-8126-003547059224-image.png

                  Factory upgrades

                  Gone are the days of waiting for factory to upgrade before queue those machines are war, now you can queue up builds as you would expect
                  5c560bc4-fb37-4bb9-8939-b962bdcab33d-image.png

                  The un pictured rest

                  • you can queue mex upgrades
                  • upgrading radar no longer shows the next ring level
                  • reclaim numbers now show in the ui
                  • you can no longer click on enemy units to see their orders! what a shame cheating will never be so easy again.
                  • engineers will now help the target they are assisting when that target assist
                  • random bright boxes on dying aircraft
                  • veterancy works!
                  • macos track pad scroll no longer sends you for a spin
                  • Some better fps stats, we now list vram, ram usage, render cpu and gpu time (this screenshot is from the 64k air fight)
                    d7fdabb7-7548-47bb-bfa8-a31f513c7ebf-image.png
                  1 Reply Last reply Reply Quote 5
                  • S Offline
                    SlightlyGrilled
                    last edited by

                    And another quick update with a requested 10k vs 10k airfight video πŸ˜„

                    https://www.youtube.com/watch?v=BrD_8Py4gX0
                    image.png

                    the dead rest...
                    image.jpg

                    1 Reply Last reply Reply Quote 8
                    • DeribusD Offline
                      Deribus Moderator
                      last edited by

                      10k v 10k v Youtube compression

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

                        πŸ‘

                        auch mal fΓΌnf gerade sein lassen

                        1 Reply Last reply Reply Quote 0
                        • D Offline
                          Downlord
                          last edited by

                          This is fantastic! When I heard about recent AI reverse engineering progress, I instantly thought of Moho. So happy that someone is already doing it!

                          1 Reply Last reply Reply Quote 0
                          • G Offline
                            GaryTheGoat
                            last edited by

                            This is great!, I was hoping someone would take on this challenge you get my vote and support! keep going!.

                            1 Reply Last reply Reply Quote 0
                            • Brutus5000B Offline
                              Brutus5000 FAF Server Admin
                              last edited by

                              Well I ususally say pics or didn't happen. But in this case I'd rather say code or didn't happen πŸ˜‰

                              He said, "I've been to the year 3000
                              Not much has changed, but they live underwater
                              And your great-great-great-granddaughter
                              Is playin' FAF, playin' FAF"

                              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