Downloaded engine built by other team member, but the engine compiles again when compiling game project

Hi , yes I’ve read your comment, but since then I was super busy working for a 4/15 milestone, so I’ve got no time to test it. Sorry for my late reply! I can resume the test on Monday. I’ll report the result later! :smiley:

By the way, the steps you described are correct. Steps are: Run UE4Editor.exe. >> Open project by project browswer >> prompted window wish me to convert. >> 4.10, no convert; 4.11, engine rebuild.

I haven’t tried double clicking the uproject, the problem is, I’d like to generate a VS 2015 project file, but our game project is for PS4, so the engine includes PS4 codes, so that if I let the uproject to generate sln, the engine would say due to PS4 reason blah blah, and it generates a VS 2013 sln. Do you know how to generate a 2015 sln by clicking the uproject? If in that case, maybe the thing would work!

Hi ,

The first answer is kind of too long, so I’m posting latest result here.

I tried the steps you posted at Mar 19 '16 at 3:58 AM, basically they are fine, but there are still some problems, I’m going to describe them below.

  1. I built the engine (DevEditor + W64) and submitted all files inside Engine folder to Perforce (including Engine/Intermediate, Engine/Saved)
  2. I put my Game folder at the same level with Engine folder, and built it (DevEditor + W64) and submitted it to Perforce, but not including Intermediate, as I’m following the documentation.
  3. I downloaded the Engine and Game to another computer.
  4. I opened UE4Editor.exe, the project browser popped up, and the game project is already listed here, since it’s next to Engine folder so it’s found automatically.
  5. In 4, there is no message window to tell me to convert the project, that’s good.
  6. In 4, however I found the reason is that my game’s uproject file does not have Engine Association GUID (like this: “EngineAssociation”: “”), I’m not sure if it’s ok.
  7. I refreshed Visual Studio files in editor, then opened VS 2015, then closed the editor.
  8. I set my Game project as startup project, then right click it and select Build (DevEditor + W64).
  9. Then there’s the problem; ShaderCompileWorker first compiles, then my game compiles, then the whole engine compiles.

Why I wanted to do step 8 is because I wanted to make sure if I build my game project, it won’t trigger the engine to build again.
I wanted to make sure this since I’m gonna modify my game project’s c++ code anyway, so this is an early test.

I also tried another approach, the steps 1 to 6 are the same:

Alt 7. I double clicked a C++ class in content browswer and it opens VS 2015.

Alt 8. I modify the cpp file and switch back to editor, and clicked Compile button.

Alt 9. The hot-reload process is completed, and only the game project is compiled, which is good!

Alt 10. I closed the editor, go to VS 2015, right click my game project and select Build, then, the rebuild process happen again…(ShaderCompileWorker > my game > engine)

The reason I wanted to do step 10 is the same, since I’m gonna modify the cpp codes anyway, and if I want to generate the latest UE4Editor-MyGame.dll, I must do step 10.
However there is a small difference in the VS 2015 output window, it shows 2 lines which says that:

1> Failed to write dependency cache: 找不到路徑 ‘D:\UE_4.11.0\VR\code\Engine\Intermediate\Build\Win64\ShaderCompileWorker’ 的一部分。
1> Failed to write FlatCPPIncludeDependencyCache: 找不到路徑 ‘D:\UE_4.11.0\VR\code\Engine\Intermediate\Build\Win64\ShaderCompileWorker’ 的一部分。

The interesting thing is that, “D:\UE_4.11.0” is not the path of UE4Editor.exe of my current computer, it’s the path of the original computer.
So if the original path is written in some file and submitted to Perforce, would it be the reason of rebuilding the engine?

These are the details I have now, if you have spare time, please help to investigate them , thanks!

Thank you for all of the details. For your step 6 where you mention that the Engine Association is blank, that is due to the project being in the same file location as the engine and not being “associated” with it in the same way it normally would. It’s more a part of the engine itself at that point than being associated with it as a separate entity.

As for step 8 and Alt 10, I’m not sure yet how this is avoidable without making the build a binary build much like what you would get from the Epic Games Launcher. You can use things such as -precompile and -useprecompiled flags to possibly do this, but in this case I’m not sure exactly what files would need to be included. The time it takes to sync an entire engine including all of the intermediates might very well outweigh the time it takes to sync the engine in that case, if you want all of the files you would normally get with a source build available as well. I’ll be continuing to do some research on how to get this done and get back to you as soon as possible.

As for that path irregularity, I’ll have to look at that too. It could definitely be a file being transferred that shouldn’t be. Have you tried doing a clean and then a rebuild on that computer to see if the same error occurs?

Great then I won’t be worried about the blank association :smiley:

Ok, then I guess I’ll stick with the steps I use right now, since it only triggers compilation when I explicitly hit the Build in VS or when I launch the game to PS4.

I haven’t done more test recently, I guess I would do more test when 4.11.3 is out. Still looking forward for your further information! Thanks!

I managed to find a post from a couple months ago from one of our custom licensed users who spoke with one of our developers about this very process. I got it copied over to be visible here. Please take a look at this post for information on the process:

Hello marsonmao,

Was the post I linked in my previous reply of any use? Another tidbit of information I found out today is that Rocket.txt was replaced with InstalledBuild.txt in 4.12, in case you attempt to use that version.

We haven’t heard from you in a while, marsonmao. Are you still experiencing these issues? Were my previous posts helpful? In the meantime, I’ll be marking this issue as resolved for tracking purposes. Please leave a comment whenever you’re available and the post will reopen.

Hi : I’ve done reading the post since you posted it, but I didn’t fully understand it since there are so many new things in the post like rocket build, so I was trying to re-read it, and reply you when I can have proper question. However there was an important milestone for us so I’m unable to read thoroughly again in the last few weeks…Actually I still haven’t fully understand it yet right now, since we’re running after another milestone, so we’ve accepted the truth that all programmers have to rebuild the engine for 1 time after engine upgrade. I’ll try to understand the whole post in the future and reply here, I made this reply right now just want to give you some latest information, and I should do this earlier, sorry to keep you waiting and thank you for all these help! And we’re in 4.12.2 now so I’ll look into InstalledBuild.txt, thanks!

It’s no problem, please take your time and let me know when you’ve had a chance to test any of this. I would be interested to know the results.

Hi :

I finally have the spare time to read the post thoroughly. But I have a few questions. And I’m using 4.12.5 right now.

  1. What is GUBP?
  2. I don’t have the “Engine/Build/InstalledBuild.txt”, am I missing something?
  3. “…You’ll also need to add some .ini file entries…”, Is this needed? Do I have to add entries every time I build?
  4. “…assume you’re adding -TargetPlatforms=Win32+Win64 to only build those targets…”, where should I add this command line argument?
  5. “I’m afraid the rest of the assets that are needed by GUBP…”, are the assets referring to Templates, Start Content…etc? Since we’re not including this in our Perforce right now, is this a cause of re-compiling?
  6. “You could possibly look into modifying RocketBuild.Automation.cs to better fit your needs…”, do I need this?

Thanks!
Marson

GUBP is the Grand Unified Build Process and is used to put all of this into one system. The InstalledBuild.txt would be visible in the resulting build. You won’t see it until you build your binary version. You would need this for every build, but if you’re updating the same build each time, the .ini file should still exist and it shouldn’t need to be changed.

For the rest of the questions, I’ll need to ask someone about that. Even though the person who posted that answer was named , that was a different so I’m not quite sure on the specifics myself. I’ll get back to you when I have more information.