Download

NVIDIA GameWorks Integration

Can you give more specific repro instructions? Just to make sure, you are running this on Windows, right? (Windows is requirement for GameWorks itself)

I just did fresh build for my 4.21-GameWorks and opened Soul: Cave with it. It worked fine in the editor without errors (I also opened all included maps with it just to make sure it’s not some specific level that triggers the error). It also worked fine when I packaged it with Shipping & 64-bit conf and ran the result in standalone so there’s not much I can do from my end unless you can give more specific repro case I’m afraid :confused:

edit: I originally opened Soul: Cave as a blueprint project. I now also tested Soul: City with c++ project as well but it works fine on my end too, all levels load up fine. Both tested on my 4.21.2 GameWorks branch.

Also, have you used the branch with or without WaveWorks? The branch I’m testing with now doesn’t have WaveWorks.

Hmm, that’s weird. I tested these in both with and without WaveWorks branches. I am running this on Windows 10. GameWorks test projects are running just fine.

The steps as below:

  1. Create a new project
  2. In the EPIC launcher add Soul: Cave into project. Select version as 4.21
  3. In the new project open Soul: Cave map
  4. At this point it will crash

This works fine for me. Are you building this on VS2017? VS2015 builds are super unstable on 4.20+ so if you use that, it could be one reason.

With 15.8 and before the 2017 is also producing bad code and the editor can random crash. So it’s better to use 15.9+ (update the vs) and clean build the solution.

I am building on VS2019. It builds pretty well, but I had to make a few changes:

  1. VCToolChain.cs got extra lines at line #463
    Arguments.Add("/wd4800");
    Arguments.Add("/wd5038");
  2. One of GameWorks files was complaining on std::string, so I had to add <string> into that file

Thank you for your help

Just in case. I had also custom non GameWorks build on VS2019, and the Soul: Cave was running just fine.
Currently Installing 2017, will see how it will react

To confirm 2017 build also has this issue.

Then I’m afraid it’s out of my hands. It works on my end without issues on both mentioned Soul samples and GW samples so I can’t repro this. Are you sure you are now trying to build completely unmodified version of my repo? You later on said you had bunch of changes on top, your issues could be caused by them. And you use the current version on the github and not some earlier one?

Anyway since I can’t repro this, best you can do it to debug the cause yourself - which you should do regardless as I’m not officially giving any support for these, these are just made available for people who want to use them.

One way to get proper callstack for this:

  • Make a empty UE4.21 c++ project with no starter content using the custom engine (or if you made it with Epic Launcher, after project creation, go to project folder, right click the uproject and use “switch engine version” option to swap the project to target the custom engine build)
  • Add the content that breaks it for you using Epic Launcher, be it that Soul:Cave or Soul:City
  • Open the projects sln file with Visual Studio, make sure UE4 is the default project there (seen in bold on the hierarchy tab), if it’s not default, you can set it by right clicking the project and set it to default startup project there
  • Once solution open on VS and default set to UE4, just hit the green play button (or use menu to start the thing with debugger attached), this will launch the UE4 editor with VS debugger attached. Also make sure you’ve haven’t changed the default build conf on this project sln, it defaults to “Development Editor” which is the right choice usually.
  • If it crashes, it will throw you back into VS at the moment of crash and you can examine the callstack. The topmost item you see is probably the array.h one but that’s just generic UE4 class that is not likely the cause of your issue, trace down the callstack and try to see what part of the code actually tries to use the array incorrectly.

@CRYOMEN Oh, just to verify, you are building the engine using the official UE4 build instructions and are using “Development Editor” as the build configuration? If you do full debug build for the whole engine, it will not likely work as I’ve not tested recent gameworks on this configuration + I think some user reported FleX etc had some issues on it (but that must have been on 4.20 as there’s no 4.21 FleX). I should probably try and fix that myself, it’s sourced from nvidias code as they most likely didn’t test that case either. In general even testing engine side debug builds thoroughly would be a pain as editor it’s really slow to run on my computer.

Edit: Tested Soul:City also with Debug build, works fine.

Just to note here, when I update or launch new branch for GameWorks these are the things I test it with:

  • I usually start with clean branch with no previously compiled binaries existing there (beyond what gets loaded by dependencies). I usually just do this brute force by wiping everything from the root folder but .git and then do hard git reset for the branch, this ensures there’s never anything else on the folder than what new users would have when they try to build this at the first time.
  • I verify that there are no additional warnings when the GenerateProjectFiles runs (some may sometimes slip through but I try to minimize them before pushing to github).
  • Then I run Setup and GenerateProjectFiles just like UE4 readme tells one to do
  • I open the generated solution using the recommended Visual Studio version by Epic, this means the default VS that the solution is prepared for by GenerateProjectFiles script.
  • I wait for intellisense/VA to process it, usually need to swap UE4 as default startup project here as I usually want to launch the editor immediately after successful build to get the shaders compiled.
  • I start building it using “Development Editor” build conf and by hitting that play button (which will launch the editor after successful build with debugger attached).
  • Once editor is fine, I open sample projects from the GameWorks tech I’ve just merged, verify it works in the editor and usually on both Shipping and Development Windows 64-bit builds. If I’m verifying an engine update instead of new GameWorks tech, I often verify that it didn’t break anything by opening random GW projects and building them, just to see there are no new issues on them.

What I don’t do:

  • I don’t test 32-bit game builds are they’ve randomly failed for me even on stock UE4 + they are not really that widely used anymore.
  • I don’t test debug editor or any other than Development Editor builds for the actual editor code (but those game packaging tests do additionally test development and shipping build confs for the actual engine code).

The things I don’t test are mainly due to time constraints, and I already do quite extensive testing on the GW feats not breaking others. For example there was a crash in some older merge I fixed that only happened with combining these techs, there Nvidia Flow and VXGI just crashed the editor when feats were used on the same scene. This and some other similar fixes are still on my latest GW merges.

Thank you 0lento. And no problem. I will do debugging in a week, and then will see what is broken

hi guys ,please help me in getting the horizon white color change,it does not change with daytime,like in the evening the sun warm color does not show on the water plane and even in night i have the white horizon .Can anyone know how to do the change PLease

I can’t remember how waveworks was setup for colors but the white border on your screenshot looks more like ue4’s own fog. If it’s in the scene, try adjusting the color from it.

any body update hairworks in 4.23???

no its no fog I checked and tried, its the water plane ocean material i guess, as the atmosphere fog doing noting. i made a instance and tweaked it and its gone now. thanks see my ship btw in waveworks 4.17 .
https://www.youtube.com/watch?v=PUMK1UF-fY4

Hi,…

i try to compile the 4.21 GameWorks branch from 0lento.
Unfortunately, I gott the following error:

[FONT=courier new]Fehler MSB3075 Der Befehl “…\Build\BatchFiles\Build.bat UE4Editor Win64 Development -WaitMutex -FromMsBuild” wurde mit dem Code 5 beendet. Stellen Sie sicher, dass Sie zur Ausführung dieses Befehls berechtigt sind. UE4 S:\Visual Studio 2017\Common7\IDE\VC\VCTargets\Microsoft.MakeFile.Targets 44
Fehler C2109 Index erfordert ein Array oder einen Zeigertyp UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 598
Fehler C2597 Ungültiger Verweis auf nicht-statischen Member “Nv::Blast::FbxFileWriter::mInteriorIndex” UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 666
Fehler C3867 “Nv::Blast::FbxFileWriter::mInteriorIndex”: Keine Standardsyntax; “&” zum Erstellen eines Verweises auf das Member verwenden UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 666
Fehler C2568 “:”: Auflösung der Funktionsüberladung nicht möglich UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 666
Fehler C2352 “Nv::Blast::FbxFileWriter::generateSmoothingGroups”: Unzulässiger Aufruf einer nicht statischen Memberfunktion UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 688
Fehler C2352 “Nv::Blast::FbxFileWriter::removeDuplicateControlPoints”: Unzulässiger Aufruf einer nicht statischen Memberfunktion UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 692
Fehler C2660 “Nv::Blast::FbxFileWriter::createChunkRecursiveNonSkinned”: Funktion akzeptiert keine 5 Argumente UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 696
Fehler C4800 Implizite Konvertierung von “const wchar_t *” in einen booleschen Wert. Datenverlust möglich. UE4 S:\GitHub\0lento\Engine\Source\Editor\BehaviorTreeEditor\Private\DetailCustomizations\BlackboardSelectorDetails.cpp 173
Fehler C4800 Implizite Konvertierung von “const OtherType” in einen booleschen Wert. Datenverlust möglich. UE4 S:\GitHub\0lento\Engine\Source\Runtime\Core\Public\Misc\Attribute.h 43
Fehler C4800 Implizite Konvertierung von “const wchar_t *” in einen booleschen Wert. Datenverlust möglich. UE4 S:\GitHub\0lento\Engine\Source\Editor\MovieSceneTools\Private\FCPXML\FCPXMLExport.cpp 1058
Fehler C4800 Implizite Konvertierung von “const wchar_t *” in einen booleschen Wert. Datenverlust möglich. UE4 S:\GitHub\0lento\Engine\Source\Editor\MovieSceneTools\Private\FCPXML\FCPXMLExport.cpp 1070
Fehler UBT ERROR: Failed to produce item: S:\GitHub\0lento\Engine\Intermediate\Build\Win64\UE4Editor\Development\MovieSceneTools\UE4Editor-MovieSceneTools.lib UE4 S:\GitHub\0lento\Engine\Intermediate\ProjectFiles\UnrealBuildTool 1
Fehler C2039 “string”: Ist kein Element von “std” UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.h 126
Fehler C4430 Fehlender Typspezifizierer - int wird angenommen. Hinweis: “default-int” wird von C++ nicht unterstützt. UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.h 126
Fehler C2143 Syntaxfehler: Es fehlt “,” vor “&” UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.h 126
Fehler C2039 “string”: Ist kein Element von “std” UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.h 129
Fehler C4430 Fehlender Typspezifizierer - int wird angenommen. Hinweis: “default-int” wird von C++ nicht unterstützt. UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.h 129
Fehler C2143 Syntaxfehler: Es fehlt “,” vor “&” UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.h 129
Fehler C2535 “void Nv::Blast::FbxFileWriter::createChunkRecursiveNonSkinned(const int)”: Memberfunktion bereits definiert oder deklariert UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.h 130
Fehler C2660 “Nv::Blast::FbxFileWriter::createChunkRecursiveNonSkinned”: Funktion akzeptiert keine 5 Argumente UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 268
Fehler C2660 “Nv::Blast::FbxFileWriter::createChunkRecursiveNonSkinned”: Funktion akzeptiert keine 5 Argumente UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 304
Fehler C2511 “void Nv::Blast::FbxFileWriter::createChunkRecursiveNonSkinned(const std::string &,uint32_t,fbxsdk::FbxNode *,const std::vector<fbxsdk::FbxSurfaceMaterial *,std::allocator<_Ty>> &,const Nv::Blast::ExporterMeshData &)”: Überladene Memberfunktion nicht in “Nv::Blast::FbxFileWriter” gefunden UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 471
Fehler C2597 Ungültiger Verweis auf nicht-statischen Member “Nv::Blast::FbxFileWriter::mScene” UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 480
Fehler C2597 Ungültiger Verweis auf nicht-statischen Member “Nv::Blast::FbxFileWriter::chunkNodes” UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 485
Fehler C3867 “Nv::Blast::FbxFileWriter::chunkNodes”: Keine Standardsyntax; “&” zum Erstellen eines Verweises auf das Member verwenden UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 485
Fehler C2109 Index erfordert ein Array oder einen Zeigertyp UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 485
Fehler C2597 Ungültiger Verweis auf nicht-statischen Member “Nv::Blast::FbxFileWriter::worldChunkPivots” UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 494
Fehler C3867 “Nv::Blast::FbxFileWriter::worldChunkPivots”: Keine Standardsyntax; “&” zum Erstellen eines Verweises auf das Member verwenden UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 494
Fehler C2109 Index erfordert ein Array oder einen Zeigertyp UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 494
Fehler C2352 “Nv::Blast::FbxFileWriter::generateSmoothingGroups”: Unzulässiger Aufruf einer nicht statischen Memberfunktion UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 561
Fehler C2352 “Nv::Blast::FbxFileWriter::removeDuplicateControlPoints”: Unzulässiger Aufruf einer nicht statischen Memberfunktion UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 564
Fehler C2660 “Nv::Blast::FbxFileWriter::createChunkRecursiveNonSkinned”: Funktion akzeptiert keine 5 Argumente UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 568
Fehler C2511 “void Nv::Blast::FbxFileWriter::createChunkRecursiveNonSkinned(const std::string &,uint32_t,fbxsdk::FbxNode *,const std::vector<fbxsdk::FbxSurfaceMaterial *,std::allocator<_Ty>> &,const Nv::Blast::AuthoringResult &)”: Überladene Memberfunktion nicht in “Nv::Blast::FbxFileWriter” gefunden UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 574
Fehler C2597 Ungültiger Verweis auf nicht-statischen Member “Nv::Blast::FbxFileWriter::mScene” UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 583
Fehler C2597 Ungültiger Verweis auf nicht-statischen Member “Nv::Blast::FbxFileWriter::chunkNodes” UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 588
Fehler C3867 “Nv::Blast::FbxFileWriter::chunkNodes”: Keine Standardsyntax; “&” zum Erstellen eines Verweises auf das Member verwenden UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 588
Fehler C2109 Index erfordert ein Array oder einen Zeigertyp UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 588
Fehler C2597 Ungültiger Verweis auf nicht-statischen Member “Nv::Blast::FbxFileWriter::worldChunkPivots” UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 598
Fehler C3867 “Nv::Blast::FbxFileWriter::worldChunkPivots”: Keine Standardsyntax; “&” zum Erstellen eines Verweises auf das Member verwenden UE4 S:\GitHub\0lento\Engine\Plugins\GameWorks\Blast\Source\BlastMeshEditor\Private\BlastMeshExporterFbxWriter.cpp 598

Maybe someone has a tip to solve the problem.

Thank you guys :smiley:

So my guess is, the “NVidia only” hardware constraint killed this project?? Or is that an issue?

It’s a shame Flex hasn’t been ported to 4.22 etc. **0lento, amazing work and thank you! **

It would be fantastic if this was supported by Epic directly though. It sounds like there’s no chance of that???

    == John ==

i am in need to download the ue 4.19 waveworks which i am not able to from github,very slow download and fails all time,no resume . any one can upload it on a torrent or google drive ,will be thank full , Or any other solution

There’s only few techs that are truly Nvidia-only on current GameWorks. Waveworks integration we get requires cuda and VXGI practically requires Nvidia Maxwell+ gpu. But Blast, Flex, Flow and Volumetric Lighting should run on AMD as well (as current Flex and Flow versions run on DX Compute), I’m not 100% sure about TXAA 3 or HBAO+ but I’d expect them to run on AMD GPU’s as well, don’t quote me on that tho.

Anyway, it seems like RTX in particular is reason why Nvidia hasn’t been updating these techs anymore, this has to be especially true for VXGI. Also UE4 using Blast for Chaos physics probably makes it difficult to justify a separate branch for Blast version that works with PhysX etc.

Sharing UE4 source code or binaries via torrent or google drive to random people is against UE4 EULA. You can only reliably confirm other user is UE4 licensee by sharing the source code via UnrealEngine github fork or share modified editor via Epic Launcher (but there’s no such “modding” editor for GameWorks atm there so github is your only option).

If github’s direct download fails, you can try cloning the repo with some git tool.