Announcement

Collapse
No announcement yet.

Partial patch to upgrade UT4 clean-master(UE4.15.0) to UE4.19.2

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    #31
    Updated to UE4.20.1; thanks again to Malavon.

    UT branch for 4.20.1:
    https://github.com/sereau/UnrealTour...e4_20_1_update
    UE branch 4.20.1:
    https://github.com/sereau/UnrealEngi...4_clean-master
    (links will 404 without UE4 source access)

    Setup instructions are the same, the only difference is to use the source from the above links instead of 4.19 variants.
    It's not absolutely necessary to use the custom UE branch, but it is needed for packaging('share' button), and also makes some adjustments to the default post-processing settings.

    There were some changes to the build system, so the location/name of binaries has changed.
    Engine/Binaries/Win64/UE4.exe -> UnrealTournament/Binaries/Win64/UnrealTournament.exe
    Engine/Binaries/Win64/UE4Server.exe -> UnrealTournament/Binaries/Win64/UnrealTournamentServer.exe
    (UE4Editor.exe is unaffected)
    The binaries behave the same, so to start the server:
    UnrealTournamentServer.exe UnrealTournament /Game/RestrictedAssets/Maps/Example_Map -log

    Still need to run more more tests to see if there are any major issues caused by moving to 4.20.1.
    Will post a summary and overall status update later.

    Comment


      #32
      UE4.20 moved the navigation system into a separate module, so most of the larger issues encountered in testing are related to that. There are some other problems, but overall it is nothing that cannot be fixed over time.

      Made another pass over UnrealTournament/Plugins/Online; most of the changes in the UT repository seem to be merged into(or merged from) the main UE branch, so it should be safe to delete.

      Also moved most of the info onto a page on GitHub (work in progress):
      https://github.com/sereau/UnrealTour...-update-branch


      The overall situation:
      As shown by the previous posts, it's possible to get almost all of the game working with the exception of internet play and related items. Essentially all of the game content and code is accessable, except for the items below:

      Missing content:
      -Maps: CTF-Pistola, CTF-Polaris, DM-Backspace, DM-Batrankus, DM-Lea, DM-Salt, DM-Unsaved
      -Various cosmetic items, mostly hats
      -Cosmetic customizations for each bot profile(character mesh/textures, hat, eyewear, and voice)
      Missing code/modules:
      -OnlineSubsystemMcp, McpProfileSys, UTMcpProfile
      -Social
      -Vivox (voice chat)

      The big item in the lists above is of course the MCP modules. In order to get complete online functionality, equivalent to the officially released builds, it would be necessary to:
      -Implement a custom OnlineSubsystem Plugin to replace OnlineSubsystemMcp and other modules
      -Implement a master server, external to UE4, to interface with the custom OnlineSubsystem plugin
      -Adapt the UT4 source code to use the new plugin; areas that need to be changed can be found by searching for WITH_PROFILE and WITH_SOCIAL
      WITH_PROFILE has ~110 instances, seems primarily concerned with:
      -Player XP
      -Avatar, Country Flag
      -Whether a player owns skins and other cosmetic items
      -Player rankings, matchmaking, and ranked game sessions
      WITH_SOCIAL has ~24 instances, and is related to:
      -Friends and chat
      -Player parties

      However, it doesn't really make sense to go in that direction unless Epic decides to cancel the project and release the code (in the legal sense).


      (The rest of this post is still being investigated, so consider it speculative.)
      That said, the core functionality needed to host games over the internet might not be too difficult to implement. As mentioned in a previous post, it's possible to host LAN games using OnlineSubsystemNull, so most likely the code used to host games and search for servers is generic and does not depend on MCP.

      The main function of a master server is just to keep a list of dedicated servers. The UT4 client does not know which IP addresses correspond to UT4 servers when it starts, so to solve that problem:
      -Master server listens for connections from UT4 clients/servers; it runs continuously and its IP address or URL is preset when the UT4 client/server is built.
      -When a UT4 dedicated server is running, it occasionally sends a message(ip address, port) to the master server to be added to the list of dedicated servers.
      -When a UT4 client searches for dedicated servers, it first sends a query to the master server to get the ip/ports of active dedicated servers, then pings each server in the list.
      -The connection between the UT4 server and client is handled by other areas of the game engine.

      So, disregarding player profiles, matchmaking(which depends on player stats/rankings), and other things:
      -Could use OnlineSubsystemNull as a starting point and modify it to connect to a master server.
      -It might not be necessary to implement all OnlineSubsystem interfaces, just IOnlineIdentity(player names) and IOnlineSession(game host/join).
      -A minimal master server could probably be implemented in ~500 lines of Python or another scripting language.
      -Since this hypothetical master server does not store player profiles, stats, items, friends, etc. it does not need to be very robust or secure.
      -Might need some changes in UTGameSession and UTGameSessionNonRanked classes.

      To be clear, not working on writing a replacement master server right now but just thought it might be interesting to know.

      Comment


        #33
        Thanks Sereau, MCP could be an interesting project.

        Comment


          #34
          Sereau - I am the author of the UT4-alpha unofficial launcher/server browser. I could help out with any server stuff, building on Linux etc. etc. Are you still working on the project? Wow - it's been 5 years already!! https://github.com/UTAwesome/UTLauncher
          UTLauncher - standalone Unreal Tournament server browser / Download / Github
          ut.rushbase.net - free community hosting for Unreal Tournament assets

          Comment


            #35
            I could also help in hosting some infrastructure if needed.
            UTLauncher - standalone Unreal Tournament server browser / Download / Github
            ut.rushbase.net - free community hosting for Unreal Tournament assets

            Comment


              #36
              Originally posted by RushPL View Post
              I could also help in hosting some infrastructure if needed.
              Hey Rush, glad to see you pop your head back in here. If you'd like, please join us on the Open Tournament Discord. We're working on developing a new project to continue the UT legacy, I'm sure you could be an asset to helping make this effort successful.
              Join Project: Open Tournament: OpenTournamentGame.com | Project Trello | Discord | YouTube

              Subscribe to /r/UnrealSeries - The subreddit for free & uncensored discussion of Unreal series games!

              Unreal Prime Weapons: Impact Hammer | Enforcer | BioRifle | Shock Rifle | Link Gun | Ripper | Minigun | Flak Cannon | Rocket Launcher | Sniper Rifle | Grenade Launcher | Dispersion Pistol

              Comment


                #37
                Hi dude, you're the best! do a miracle) the question is, how soon will all the workers be, for example 4.23

                Comment

                Working...
                X