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

    #16
    Nice work Sereau.
    UTLauncher - standalone Unreal Tournament server browser / Download / Github
    ut.rushbase.net - free community hosting for Unreal Tournament assets

    Comment


      #17
      I don't want to burst your bubble but in 4.19 they introduced a bug that caused massive page fault spam which causes choppiness and stuttering.
      https://steamcommunity.com/games/824...94611358290277
      UT2004 Movement Mutator

      Comment


        #18
        Maybe you should start to port it to 4.20?
        And maybe contact epic games about the future of ut? Maybe we could it make completly community based/develeoped?

        Comment


          #19
          Originally posted by LinuxDonald
          Maybe you should start to port it to 4.20?
          And maybe contact epic games about the future of ut? Maybe we could it make completely community based/developed?
          I think that will happen re:4.20, but your second point is interesting...I always thought that was the intention...
          Maps:

          DM-PSi ; DM-Genku ; DM-Untold Storage ; DM-Station (WIP) ; DM-HeatRay Physx (WIP)

          DM/TSD-Formidable (WIP)

          Comment


            #20
            Nice one indeed Sereau!
            Also good to see you're still around Rush and you might be correct Mitch. Let's all cross our trigger fingers for the next build.

            Comment


              #21
              Yeah community is involved into the development as of the Engine. But Only epic have the rights todo an release for example. The last statment from epic was. That they wanted to rewrite the core of UT. But thats now an long time ago. And in this time Paragon died. And no one knows what will happen with UT

              Comment


                #22
                Yeah community is involved into the development as of the Engine. But Only Epic have the rights to do a release for example. The last statement from Epic was. That they wanted to rewrite the core of UT. But that's now an long time ago. And in this time Paragon died. And no one knows what will happen with UT
                I do.

                The community will do all the work, Epic games will take all the credit.

                Mark my words.
                Maps:

                DM-PSi ; DM-Genku ; DM-Untold Storage ; DM-Station (WIP) ; DM-HeatRay Physx (WIP)

                DM/TSD-Formidable (WIP)

                Comment


                  #23
                  This branch will probably move to 4.20 at some point (and higher if time can be found for further development), so it's not much of an issue if there is a stuttering bug in 4.19.

                  Have not received a response from Epic regarding the pull request on Github, they'll probably make an announcement when they're ready. The intent here is just to investigate patch development from a technical standpoint, not really interested in getting involved in legal/political aspects.

                  Update:
                  -Continuing to work on map packaging -- have gotten it to produce .pak files but currently its including a lot of unneeded files.
                  -Need to take some time to look into engine customizations / UE4 automation to get this working correctly;
                  created a UE4 branch (UE4_19_2_UT4_clean-master) to document changes to the engine source made by the UT team:
                  https://github.com/sereau/UnrealEngi...4_clean-master (as usual, UE source access is needed)


                  Notes on some engine source customizations:
                  Engine/Source/Editor/UnrealEd/Private/CookOnTheFlyServer.cpp
                  -It is necessary to modify this file to implement UT4 mod packaging; seems to limit which files are included in the .pak, and changes the directory where files are cooked/staged.
                  -Search for 'PLK'; it marks some, but not all of the changes needed.
                  Engine/Source/Runtime/PakFile/Private/IPlatformFilePak.cpp
                  -Might need to modify this file in order to prevent custom .pak files from overriding the default UT4 files.
                  Engine/Source/Runtime/Engine/Classes/Kismet/KismetSystemLibrary.h
                  -Removes UKismetSystemLibrary::LaunchURL() for security reasons.
                  Engine/Source/Runtime/Core/Private/Misc/Paths.cpp
                  -Changes the default user directory to /Users/Documents
                  Engine/Source/Runtime/Engine/Classes/Engine/Scene.h
                  -Modifies the default post processing settings; this is likely the cause for the lens flare/camera effect in the earlier video.


                  Notes on packaging:
                  -In order to perform packaging with the 'share' button in the editor, it is necessary to build UnrealPak.
                  -It can be found in UE4.sln -> Programs -> UnrealPak.

                  -When attempting to share a map, it fails with the error message:
                  LogPackageName: Error: DoesPackageExist: DoesPackageExist FAILED: 'None' is not a standard unreal filename or a long path name. Reason: Path should start with a '/'
                  -This occurs when when trying to cook Bot data(UTBotCharacter) since the UTCharacterContent and maybe some other files are missing.
                  -One way to resolve this issue is to remove UnrealTournament/Content/RestrictedAssets/Character/Bots.
                  -Some of the things that seem to be missing from the public UT editor/source distribution include:
                  -Community submitted maps
                  -Cosmetic items
                  -UTCharacterContent
                  -Bot teams


                  Last edited by Sereau; 07-16-2018, 01:32 PM. Reason: add branch name

                  Comment


                    #24
                    This shows a lot of dedication, but I think you already know that there's no way a PR of this scope would ever be merged. There isn't anyone on this project, and even merging it would be a significant effort, for several people at that.

                    It'd be nice if people would dedicate this kind of effort towards an Open Tournament project instead of throwing it away. Particularly on the engineering side there's plenty of talent around. The art would suck for awhile, but some of the starter assets & marketplace content is entirely sufficient for early prototyping.
                    Last edited by Wail; 07-21-2018, 11:53 PM.
                    Find My: Twitter | YouTube | Downloads | Podcast
                    Unreal Prime Weapons: Impact Hammer | Enforcer | BioRifle | Shock Rifle | Link Gun | Ripper | Minigun | Flak Cannon | Rocket Launcher | Sniper Rifle | Grenade Launcher | Dispersion Pistol
                    Other: Lore | Invasion | Pickups & Powerups | Achievement Ideas

                    Comment


                      #25
                      Just working on this to see what's possible, so personally it's not an issue if the pull request is not merged or even looked at.
                      Not really interested in working on Open Tournament or other projects.


                      Update:
                      -Client packaging is working
                      -Server packaging is working (but the server currently crashes on startup)
                      -Map packaging/'share' button is fixed, and the generated .pak can be loaded in the client

                      Aside from migrating to 4.20+, there is not much to write beyond this point, mostly fixing crashes and other bugs.
                      Probably going to wait for the last 4.20.x release (4.20.2 or 4.20.3) before looking into upgrading the engine further.

                      On Windows the paks are:
                      UnrealTournament-WindowsNoEditor.pak 11.2 GB (3525360 is 16.5 GB)
                      UnrealTournament-WindowsServer.pak 544 MB (3525360 is 781 MB)

                      Command line to start the client (if using .bat below, run from C:\UT4Client):
                      .\Engine\Binaries\Win64\UE4.exe UnrealTournament
                      and the server (if using .bat below, run from C:\UT4Server):
                      .\Engine\Binaries\Win64\UE4Server.exe UnrealTournament /Game/RestrictedAssets/Maps/Example_Map -log
                      (at present this crashes on startup)


                      Packaging UT4 client/server:
                      Here are commands that can be used to package the client and server build on Windows; it might take several hours for it to run. PackageUT4Client.bat is basically running the same command as the public UE4.19.2 binary distribution that can be downloaded from the Epic Games Launcher (File -> Package Project -> Windows -> Windows(64-bit)). PackageUT4Server.bat is a slightly modified version of PackageUT4Client.bat.

                      UAT_PATH and UPROJECT_PATH need to be set correctly, while ARCHIVE_PATH and LOG_PATH can be set anywhere. Note also the forwards/backwards slash difference; Windows uses '\' while UE4 uses '/'. The command prompt closes automatically after the packaging succeeds or fails, so the >> at the end is used to redirect the command line output to LOG_PATH.

                      As configured, it assumes that UE4 is installed at C:\UE4 (this is where GenerateProjectFiles.bat should be), and packages binaries from Win64 'Development Client' / 'Development Server' in VS2017. Additionally, the packaging command should also be run from C:\UE4. The BuildCookRun command should build the binaries if they do not exist, but might want to make sure that it compiles before packaging.

                      As mentioned in the previous post,
                      UnrealTournament/Content/RestrictedAssets/Character/Bots
                      needs to be removed in order to get the cook stage working as these files have references to missing data.

                      Please do not upload custom builds to the internet as it is against the UT EULA, and could result in the UT repository being removed from Github.

                      PackageUT4Client.bat
                      Code:
                      set UAT_PATH="C:\UE4\Engine\Build\BatchFiles\runuat.bat"
                      set UPROJECT_PATH="C:/UE4/UnrealTournament/UnrealTournament.uproject"
                      set ARCHIVE_PATH="C:/UT4Client"
                      set LOG_PATH="C:\UE4\BuildCookRun_UT4Client.log"
                      
                      %UAT_PATH% -ScriptsForProject=%UPROJECT_PATH% BuildCookRun -nocompileeditor -nop4 -project=%UPROJECT_PATH% -cook -stage -archive -archivedirectory=%ARCHIVE_PATH% -package -clientconfig=Development -ue4exe=UE4Editor-Cmd.exe -pak -prereqs -nodebuginfo -targetplatform=Win64 -build -utf8output -compile >> %LOG_PATH%
                      
                      pause
                      PackageUT4Server.bat
                      Code:
                      set UAT_PATH="C:\UE4\Engine\Build\BatchFiles\runuat.bat"
                      set UPROJECT_PATH="C:/UE4/UnrealTournament/UnrealTournament.uproject"
                      set ARCHIVE_PATH="C:/UT4Server"
                      set LOG_PATH="C:\UE4\BuildCookRun_UT4Server.log"
                      
                      %UAT_PATH% -ScriptsForProject=%UPROJECT_PATH% BuildCookRun -nocompileeditor -nop4 -project=%UPROJECT_PATH% -cook -stage -archive -archivedirectory=%ARCHIVE_PATH% -package -clientconfig=Development -ue4exe=UE4Editor-Cmd.exe -pak -prereqs -nodebuginfo -targetplatform=Win64 -build -utf8output -compile >> %LOG_PATH%
                      
                      pause

                      Packaging a map with the 4.19.2 branch:
                      Current procedure to get a map packaged on Windows is:
                      1) Remove UnrealTournament/Content/RestrictedAssets/Character/Bots (alternatively, could also update these files and fix the references to UTCharacterContent, etc.)
                      2) Build UE4.sln -> Programs -> UnrealPak
                      3) Package the Client to get AssetRegistry.bin (run PackageUT4Client.bat; AssetRegistry.bin should be about 5MB)
                      4) Move AssetRegistry.bin to .../UnrealTournament/Releases/UTVersion0/WindowsNoEditor/AssetRegistry.bin (overwrite)
                      5) Use the 'share' button to start the packaging

                      Important: 'Share' button automatically copies the .pak to user dir (/Documents/UnrealTournament/Saved/Paks/MyContent); this is the same as 3525360 so make sure to remove the newly generated .pak. Otherwise, will probably get a 'Cannot load custom content' error when starting the official UT4 client.
                      If using PackageUT4Client.bat above, the .pak should be moved to:
                      C:\UT4Client\WindowsNoEditor\UnrealTournament\Content\Paks.

                      AssetRegistry.bin contains a list of the files in the main .pak, and is used to determine if a file should be included when cooking DLC(such as a map). However, using the AssetRegistry included with 3525360 or clean-master does not work (in testing, it adds an excess ~10000 files / ~1GB to the .pak). This might be since the format has changed, or since the version is incorrect (this branch currently sets the engine version to 0 instead of 3525360+). As a result, we need to use an updated AssetRegistry.bin to get the map packaging working.

                      Running PackageUT4Client.bat should generate AssetRegistry.bin during the cook step; it should be located at:
                      C:\UE4\UnrealTournament\Saved\Cooked\WindowsNoEditor\UnrealTournament\AssetRegistry.bin
                      as mentioned above, this is moved to:
                      C:\UE4\UnrealTournament\Releases\UTVersion0\WindowsNoEditor\AssetRegistry.bin

                      Comment


                        #26
                        I would like to suggest putting this/moving this to here:

                        https://forums.unrealengine.com/deve...eal-tournament

                        ...as this appears to have active discussion from Epic Games staff, as this forum is not listed on the main forums of Epic Games, currently.

                        More power to you sir. More power to you.
                        Maps:

                        DM-PSi ; DM-Genku ; DM-Untold Storage ; DM-Station (WIP) ; DM-HeatRay Physx (WIP)

                        DM/TSD-Formidable (WIP)

                        Comment


                          #27
                          really nice work Sereau!

                          Disclaimer for everything that follows: I'm on an unofficial build of UE4, on an unsupported platform (FreeBSD) :-D
                          I've been wanting to upgrade UT4 to 4.19 (and now 4.20 myself), but was spending all time I had on my port of UE4.

                          I've been following your work since your first post and have been doing some work since on upgrading to 4.20.
                          Last I remember were BP errors and I haven't found the time to fix those yet.
                          You can see the changes I've made in my github (branch 4.20!), where you'll find an old version of your commits as well.
                          If I can find the time I'll rebase these on your latest commits, it'll probably make my changes smaller and maybe fix some of my issues as well.

                          I also made changes for much of the deprecations and automation script changes, although I'm not sure that the latter are all correct.

                          The project compiles and I was able to run the test level inside the editor, but I can't package due to the BP issues mentioned before.
                          In the end I was a bit disheartened when I read the license, because my first intent was to redistribute it for FreeBSD users. However, as far as I understand
                          the license, it would be actually ok if I hosted the cooked files on Github, although I'd have to verify that with Epic staff first though.

                          If you want to cherry-pick anything, feel free to do so. Don't wait for any confirmation on my part, if it helps UT you can do anything you want with my commits.

                          Comment


                            #28
                            Originally posted by Sereau
                            AssetRegistry.bin contains a list of the files in the main .pak, and is used to determine if a file should be included when cooking DLC(such as a map). However, using the AssetRegistry included with 3525360 or clean-master does not work (in testing, it adds an excess ~10000 files / ~1GB to the .pak). This might be since the format has changed, or since the version is incorrect (this branch currently sets the engine version to 0 instead of 3525360+). As a result, we need to use an updated AssetRegistry.bin to get the map packaging working
                            No, the reason you are having such a large PAK file is because you have changed, probably almost every material in the game, by altering the C++/BP code for some shaders. That will then cause EVERY content to be recompiled (every material, shader, MI, blueprint, every map, etc that uses the altered shader)
                            And then the funny part of it all, is you choose not to use your own modified assets in your map packaging.

                            Looking over what you have done is impressive... but as for Epic actually using it to make a new release... I doubt it. In my own experience with them, even if you hand them bug free code, they don't want it unless it looks great and polished (on par with their own maps) See https://github.com/EpicGames/UnrealT...ment-248035634

                            The other issue I can warn you about is everyone would have to download and install your complete new version for it to work online. (Also that reminds me, in
                            Code:
                            UnrealTournament\Engine\Source\Runtime\Launch\Resources\Version.h
                            you will have to change the ENGINE_VERSION and BUILT_FROM_CHANGELIST macros to a new unique number for network play to work correctly. Otherwise you will have people trying to use the wrong version of content with your version and have all kinds of issues)

                            Anyhow nice to see someone trying to make this work. I gave up on UT about a year ago due to its a dead pipedream. I understand that Epic is not making any money off it, but I would be more then happy to pay for the game like I did with all the prior UT's, if they would actually do something with it.
                            Author: Domination Game Mode (Native UT4 Plug-in)
                            Get the Install on ModDB.com
                            Source Code available on GitHub

                            Comment


                              #29
                              @Mitch_Mitchell
                              Thanks; tried making a thread on the UE forums. Haven't posted on the UE forums before so the thread might take a while to show up.

                              @real_malavon
                              Thanks for your work; will make sure to refer to your branch when upgrading to 4.20. Not too sure about deleting /Engine and /UnrealTournament/Plugins/Online just yet though.

                              @Snake.Pliskin
                              Wasn't sure why the AssetRegistry.bin needed to be regenerated, thanks for pointing that out. The motivation to use the old AssetRegistry.bin is that each modification can make the setup more complicated, so trying to keep changes(especially to the content/binary files) to the minimum necessary.


                              Update:
                              Managed to get the standalone dedicated server working; did not test it extensively, but it seems to be possible to host a LAN game at least.
                              Going to spend some time cleaning things up, and then will start to look at upgrading to 4.20.
                              Last edited by Sereau; 08-06-2018, 07:48 PM. Reason: fix formatting

                              Comment


                                #30
                                Sereau ah, that. Yeah, I wouldn't recommend it I did that because I simply have a different Engine and in my local copy I make a symlink. One of the benefits of not using Windows
                                The Plugins/Online though seems to be fine, although I may have missed specific modifications for UT.

                                These deletions are also why it's not a PR, it's not intended to be merged as-is.

                                Comment

                                Working...
                                X