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!

    SC: FA (Moho) engine sources

    Scheduled Pinned Locked Moved Contribution
    29 Posts 18 Posters 1.1k Views 3 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.
    • N Offline
      Nombringer
      last edited by

      A question because I'm interested, with the caveat that I'm not sure if this can be actually answered on a public forum:

      Do we run into any potential legal issues with this? Is there anything that needs to be considered?

      D 1 Reply Last reply Reply Quote 0
      • D Offline
        Draiget @Nombringer
        last edited by

        @Nombringer my repository is a potential legal issue tbh, less that it was initially because I stripped CRI middleware and replaced it with the open source FFmpeg, but still it does do almost 1:1 reassembly of original binary. Yes that's not "original" sources but it's very close. The way we can make it cleaner, is to remove all mentions of "Address: 0x0..." that I've added in every engine function during restoration process and rename every single class\namespace to a custom one, better a clean-room implementation of moho engine with same replay-parity (which is achievable and I did created specs for this already for future). But since FAF model is to require to buy\have original game before playing - I don't think we someone will even be looking on us with lawyers, but who knows for sure.

        1 Reply Last reply Reply Quote 0
        • Z Offline
          zhanghm18
          last edited by zhanghm18

          图片.png

          BUG in d3d12 mode.

          Additionally, I have observed that smoke particles from certain explosions behave abnormally; compared to the original version, they drift outward and upward for an excessive amount of time and fail to dissipate. At times, smoke particles remain visible directly in front of the camera for an extended period. I have been unable to consistently reproduce this bug.

          1 Reply Last reply Reply Quote 0
          • N Offline
            Novus-Wojtek
            last edited by

            I know it’s the faf forums but, would this be able to be compatible with LOUD?

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

              My understanding is not currently, but Marlo's been working on steam compatibility differences to FAF so it sounds feasible that LOUD compatibility could be reached

              M27AI and M28AI developer:
              https://forum.faforever.com/topic/5331/m28ai-devlog-v327
              M28 trophy holders: Radde and Yew (Radde trophy, v309) and Malitarh and Lazert (Sladow trophy, v327)

              1 Reply Last reply Reply Quote 0
              • S Offline
                Sprouto @Novus-Wojtek
                last edited by Sprouto

                @Novus-Wojtek LOUD is based entirely on the original EXE, so that points to some differences that aren't currently resolved.

                Marlo has indeed made considerable progress in putting together a version of this project which is entirely compatible, which would be a potential boon for both LOUD and users of the Steam version of the game. My personal feeling is this - if this work can reach to all the many players who don't use FAF, or LOUD - then it's only good for both communities.

                1 Reply Last reply Reply Quote 2
                • X Offline
                  Xiaomi
                  last edited by

                  @draiget I have a question about the source code. Have you measured how much simulation time is spent on Lua code and how much on C++? As I understood it, the C++ simulation does not run in parallel with the Lua code. Or is that not the case?

                  D 1 Reply Last reply Reply Quote 0
                  • D Offline
                    Draiget @Xiaomi
                    last edited by

                    @Xiaomi Lua stuff only takes about 6.5% of a tick-time in my measurements:

                    • 5.3% is Lua threads (unit, weapon, AI brain and score scripts)
                    • 1.1% is Lua garbage collection.

                    Calls from the engine into Lua callbacks (OnDamage, OnKilled, weapon and projectile callbacks and so on) aren't separated yet, so they're still counted as C++ time. The rest is C++: bone/animation updates are about 15%, vision/radar about 13%, and building the state sent to the UI about 12%.

                    On parallelism - basically yes, very bit of sim Lua runs on the single sim thread, interleaved with the C++. Engine calls into Lua, and Lua calls back into the engine, nothing really runs Lua in parallel. What my build adds is helper threads, like: vision refresh, the UI sync data, effects, coordinate updates and the mark/sweep part of the Lua GC. In one case (vision) this C++ work overlaps with the sim thread's Lua, but before that Lua calls any engine function, the helper jobs are finished first, so the results stay identical to the original game and replays still match.

                    1 Reply Last reply Reply Quote 0
                    • M Offline
                      MrMayDay_
                      last edited by MrMayDay_

                      Hi, @draiget !

                      I'd like to help speed up development if possible.

                      I have a $100 Codex subscription, and I'd be happy to contribute some of my usage limits to the project. The only catch is that I'm not really familiar with this type of software.

                      If you're interested, you could assign me specific tasks or GitHub issues, and I could work on them using Codex and submit PRs for your review.

                      Or we could figure out some other way to collaborate that works best for you.

                      Let me know what you think!
                      Write to me in Discord if interesting (nickname ernestio)

                      1 Reply Last reply Reply Quote 0
                      • H Offline
                        hobosapien
                        last edited by

                        This is amazing - when can we possible see this used as the official game executable over the current one? Seems like performance and networking issues are solved and would make playing this game night and day better.

                        1 Reply Last reply Reply Quote 1
                        • George_W_CrushG Offline
                          George_W_Crush
                          last edited by

                          Can you reverse-engineer someone's motivation to play 1v1 so this great project gets people to actually play it?

                          Joking aside, really amazing work. I spoke to a few people briefly about how this is all legal, given it is effectively grabbing tech without permission via forceful reverse-engineering. Hope there are no legal hurdles that interfere with this!

                          Honestly, just super impressed this is a thing. If you put up a gofundme to help cover the cost of the AI subscription, I would be happy to share a little.

                          Just unreal to hear this has happened after 2 decades of secrecy.

                          D 1 Reply Last reply Reply Quote 0
                          • D Offline
                            Draiget @George_W_Crush
                            last edited by

                            @George_W_Crush thank you for your feedback! Unfortunately gofundme doesn't work with my country (list of countries there are very small btw), if you wish to support this activity there are ETH (crypto currency) address in the bottom of a post.

                            From legal perspective, removing all "Address: 0x000000" from code and renaming would make it cleaner as well as renaming and restructuring engine (from gpg and moho to anything else) but that's a future part of roadmap, currently it should be 1:1 to original as possible before FAF community actually will start using it.

                            1 Reply Last reply Reply Quote 0
                            • H Offline
                              hobosapien
                              last edited by hobosapien

                              Got it up & running and tested a skirmish and everything seems to be working fine - no obvious bugs. I would love to test the multiplayer aspect to see how massive amounts of units (2k+) perform with the performance changes. This is GAME CHANGING and I can only hope we can use this for FAF at some point.

                              Any chance this client could somehow be up & running on the FAF test server?

                              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