[UE5][Linux] Unable to open project like UnrealPak, UnrealInsight and every program using UBT in C++
Hello everyone,
I am working on a Linux architecture and using Rider 2024.1.4. I am seeking some assistance regarding the use of Rider with Unreal Engine, particularly for projects using the UBT build system, such as Unreal Insight or SlateViewer. Currently, I am unable to view or edit the source code of these programs. Why can't these projects be compiled, debugged, or opened in Rider? Rider on Windows works very well for opening these projects.
I find this particularly frustrating because, even though Rider strives to support a project as enormous as Unreal Engine in C++, there seem to be significant limitations. Rider was not originally designed for C++, whereas CLion seems to be better suited for this type of project. Unreal Engine is fundamentally not a .NET project but rather a C++ project, even though UBT and a few other programs are .NET. Wouldn't the core structure of Unreal Engine be better supported in CLion?
I purchased a personal license of dotUltimate for Rider on my Linux machine at home after testing it at work on Windows, and I must say that Rider on Windows is excellent. It's unfortunate that Unreal Engine 5 does not support console dev kits, but for my personal projects at home, I don't need them, so that was acceptable to me. However, if I cannot manage the programs that are part of Unreal Engine, this becomes a major problem.
Thank you in advance for your insights and assistance.
Please sign in to leave a comment.
Hello Meradrin,
Thank you for contacting Rider support.
As I can see, sources for these projects are only included in engine built from sources. Is your engine on Linux built from sources?
If so, you should be able to find these programs in solution explorer under Programs node. You need to open the engine project in Rider (select the default.uprojectdirs in the Open dialog) for that.
You should be able to build and run/debug it. Would you mind double-checking if you use source version of the engine on Linux? Do you have project files under
<YourEngine>\Engine\Source\Programs\UnrealInsights
About bringing Unreal Engine support to Rider instead of CLion.
Rider's C++ engine is completely different from CLion's engine. It was designed from the ground up to work with Unreal Engine and VS C++ projects and leverage MSBuild/MSVC (because Unreal Engine itself heavily depends on MSVC). We are actively working on bringing Rider's C++ engine features to CLion and vice versa, but in the foreseeable future, Rider and CLion will remain separate products.
We had strong reasons for bringing Unreal Engine support to Rider instead of CLion. You can find more in-depth answer on that question in the following thread: Why CLion doesn't support UE4 out-of-the-box?
In short:
• Generally. Rider is our offer for .NET and game development (Unity, Unreal Engine) while CLion is our offer for cross-platform C++ development;
• Technically. Rider and CLion use very different C++ engines. Rider uses a C++ language engine designed for Unreal Engine projects (you can think of it as modified ReSharper C++ built into Rider) while CLion is a general-purpose C++ IDE. Rider uses sln and uproject project models and leverages MSBuild. At the moment, this engine does not support general-purpose (CMake/Makefile-based) projects supported by CLion.
Hope I answered the question.
Have a nice day!
Hello Dmitry,
Thank you for your detailed response.
Opening the project with default.uprojectdirs indeed allowed me to access the engine project correctly. Previously, I was working directly with a .uproject file, and the engine source code was not copied into the same directory. On Windows, at work, the engine source code is included with the game source code, but on Linux, I was testing only on a small project.
However, I have encountered a problem. I can't launch UnrealInsight on its own. In the multilaunch, I only see Engine, my project, and all C# programs. For example, I can open it manually and then attach to it remotely, which seems to work well, but this pipeline is quite impractical. I can't see myself adding while(true) loops at the beginning just to wait for the attachment before continuing the program flow.
Do you have a solution to make this process smoother?
Thank you in advance for your help.
Best regards,
Meradrin
Hello Meradrin,
Do you mean you have no UnrealInsights in this list?
Right-click on it and select “Run”:
In the multilaunch configuration the UnrealInsights is there in the list of available programs:
Would you mind double-checking it? If this is not the same for you, I suggest trying this:
Have a nice day!
Hello Dmitry,
Thank you for your response and for providing the procedure.
Unfortunately, the "Run" option you mentioned does not appear in my version of Rider. I have tried both the old and new UI, but the issue persists. I also recreated a Rider project with only the engine, but this did not resolve the problem. On Linux, I do not have this option, while for the same project on Windows, it is available.
But I see it for the engine or C# project.
And when I try Run Multiple
Only engine and a tone of C# project.
Could you please advise on what might be causing this discrepancy and how I might resolve it?
Edit: After playing around with the Run/Debug Configurations, I was able to add another configuration to the "Engine" project, which I named "ManualTest." As you can see, I couldn't select the other C++ projects, but by forcing the target to the executable of another project, I was able to launch the debugger and attach to it. However, this feels more like a hack than a proper solution.
I suppose a plugin or a macro might offer a solution, but having to do all this to fix the Linux target issue is quite frustrating and feels rather ridiculous.
Thank you for your assistance.
Best regards,
Meradrin
Hello Meradrin,
That looks weird. I suppose project files generation failed for some reason. Do you use the latest build? (2024.1.4. Can be checked in Help | About). If not, I suggest trying to update Rider.
If you are on 2024.1.4 already, lets take a deeper look at your case. I would appreciate it if you could share/collect the following diagnostic information. Please create a directory “ToUpload” somewhere on your machine.
Dump Rider project files
Invoke project files generation manually and share UBT output
/Users/{User}/Library/Logs/JetBrains/Rider{version}
folder;Paste -
Rider -Automated -Minimize -Platforms=Linux -TargetTypes=Game+Program -TargetConfigurations=Development /Path/To/{Game}.uproject
to Program arguments field:For ex. I have such a row in my output:
Log file: /Users/Dmitry.Kazantsev/UEThere/UE/UnrealEngine/Engine/Programs/UnrealBuildTool/Log_GPF.txt
Share Rider logs
{GameProject}/.idea
folder;Upload the archive
Have a nice day!
Hello Dmitry,
Thank you for your continued assistance.
As I mentioned in my first message, I am working with Rider version 2024.1.4. Currently, I don't have a project where I've combined the engine source code and my game in the same directory. I have two separate instances: default.uprojectdirs and my Test.uproject, which I open separately. Right now, I'm focusing on getting the default.uprojectdirs to work correctly.
To help diagnose the issue further, I will create and upload three different folder setups:
Would you prefer just one of these versions? I plan to do this later this evening after my workday.
Thank you for your support.
Best regards,
Meradrin
Hello Meradrin,
One setup would be fine. The main think I need to be sure with it that your game project targets engine built from sources.
So, ideally this scenario:
Have a nice day!
Hello Dmitry,
Thank you for your continued assistance.
Here is the code you can use to upload my data: 2024_07_16_8tRVHYE2PuBPfKvJY1kDSY
Please keep in mind that the UBTLaunch.txt was very slow because I ran it in debug mode. Otherwise, I couldn't copy the output logs as Rider would close after the generation. Therefore, I set a breakpoint at the end to keep the log. But in average it is 10s.
Thank you for your support.
Best regards,
Meradrin
Hello Meradrin,
Would you mind sharing what configuration you have in these files?
/home/meradrin/UnrealEngine/Engine/Saved/UnrealBuildTool/BuildConfiguration.xml
/home/meradrin/.config/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml
You can share screenshots or upload these files in the same way.
Thank you!
Hello Dmitry,
Thank you for your continued assistance.
Currently, my BuildConfiguration.xml files are empty, containing just:
<Configuration> </Configuration>
Normally, I like to use various settings such as disabling unity build on the files I have checked out or using incremental build. However, at the moment, I am trying to get the basics working before attempting to enable things like FastBuild or other configurations.
Thank you for your support.
Best regards,
Meradrin
Got it! Please, also share these files: Intermediate/TargetInfo.<Engine/GameName>.json
Thank you for your cooperation.
Regards, Dmitry.
Hello Dmitry,
Engine:
Game :
Apologies for the delay in responding. I have yet no update for you. We are investigating this issue and I'll get back to you once I have any information.
Stay tuned and have a nice day!
Hi Dmitry,
Thank you very much for continuing to investigate my issue. I really appreciate your help and persistence.
In the meantime, do you have a more elegant workaround than the one I'm currently using? Any suggestions would be greatly appreciated.
Thanks again for your support.
Best regards,
Meradrin
Hi Dmitry,
I hope you're doing well. I've tested the new version of Rider 2024.1.5, and unfortunately, the issue is still present, as shown in the attached image. Please let me know if you need any further details to assist in resolving this.
I appreciate your efforts in looking into this.
Best regards,
Meradrin
Apologies for keeping you so long without a response.
Would you mind confirming if the issue exists when you open <Engine>/Default.uprojectdirs instead of <Game>.uproject?
Also, the Intermediate/TargetInfo.<Engine/GameName>.json files. Would you mind double-checking if you took these files from the <GameProject>/Intermediate folder or from <Engine>/Intermediate? If possible, please, share these files from <GameProject>/Intermediate.
Have a nice day!
Hello Dimitry,
Thank you for your message.
I have tested both cases—opening <Engine>/Default.uprojectdirs and <Game>.uproject, and unfortunately, the same issue persists. I'm still unable to execute and debug the UE5 external engine C++ project.
Regarding the second point, I have checked the Intermediate/TargetInfo.<Engine/GameName>.json files. I can confirm that they were taken from the <GameProject>/Intermediate folder. I'll share screenshots with you to show exactly where these files are coming from.
So I give you this file for Engine.
Because if I give you this two! The engine one is empty like this:
And TargetInfo.Exemple.json
If I take one from my game project it is basicly the same.
And from the game himself that look like this.
Let me know if there's anything else I should check.
Have a great day!
Hello Meradrin,
May I ask you to share the following output?
Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool -Mode=QueryTargets -Output=test.json
Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool -Mode=QueryTargets -Output=testAll.json -IncludeAllTargets
Share the generated files. For me, with this cli, they are generated under Engine/Source. You should see the output path from the command output:
There is a link for Upload Service, for your convenience.
Have a nice day!
Hi Dmitry,
This is the output
Upload id: 2024_08_21_m3X9hHMjyKhENMFTkJfwVi (files: test.json, testAll.json)
Have a great day!
Take my sincere apologies for the extremely late reply.
Would you mind confirming if the issue is still relevant? Unfortunately, I couldn't reproduce the issue in several test linux environments.
Did you try rebuilding the engine or did you try the latest Rider 2024.3?
Have a nice day!
Hello Dimitry,
I can confirm that version 2024.3 has indeed resolved the issue, which is fantastic news! I ran several tests with various external Unreal Engine programs, such as Unreal Insight, and everything seems to be working perfectly. I even created a new program using the BlankProgram template, and that also worked flawlessly.
Thank you again for your hard work and responsiveness. Honestly, I was starting to lose a bit of faith, but you’ve restored it completely! 😄
Best regards,
Meradrin
I am happy to hear that the issue has been resolved.
Should you have any other questions or difficulties in the future, do not hesitate to contact support.
Have a nice day!