the second part first:
if anyone on the project will not be working in the C++ then do NOT put “.dll”, “.exp”, “.pdb” or the “/Intermediate” on the ignore list, and be sure you are building to “Development Editor”; This does mean that Unreal Build Tool Warnings will be treated as Errors, so some shortcuts will not work. If you do not build to Development Editor then the .uproject will try and trigger a build with that setting…
For sanity reasons right before a commit close your IDE and the Editor and attempt to open the project from the [ProjectName].uproject if it doesn’t work then check the Build target in your IDE.
for code based plugins (technically most plugins) you will probably need to copy them directly into the Project Directory, especially if you are referencing them in the BuildTargets, and change the BuildTargets to reflect the move.
for the slow down in 99% of cases code compilation is CPU bound with very minor impact from even a HDD, and even though Live Coding says you have like an 8-core, 16-thread CPU, that is different then when like VS says that you have an 8-core, 16-thread CPU.
- VS will collapse itself down to a single thread, in sudo sleep receiving interrupts when each task is completed to see if the next batch can be dispatched.
- then attempt to spin up a thread per deprecated obj file seeing which symbols need to be examined. changing a header modifies at least itself, and the cpp
- then it will do a symbol propagation trying to find downstream symbol mismatch, and do so concurrently as much as possible; the good news is that this is handled by the internal include directives
- then another 3 tasks for the modules .lib linker, the modules .dll linker, and metadata stuff.
the Live Coding is “trying to” do all of that while running the editor so you lose anywhere from 1 to 3 threads, it is still making draw calls, it is still running some editor logic, and just holding the Editor in memory which isn’t light, and it is trying to potentially change the wheel on the train while it is rolling down the track. it has gotten better, but it will take longer then either VS or Rider.
I just wish that we could trigger Live Coding inside a Blueprint instead of in the Level Editor window to a least save on draw dispatches.
if it is still markedly slower then your IDE, what other programs are running? (yes your IDE does count, and if you are using Rider be sure that you have set it as your IDE inside Unreal and I believe it has a separate Live Coding plugin that needs to be enabled)
are you changing header files or just cpp files a header change will take much longer to run Live Coding against, and still has a chance to fail and corrupt objects (this has gotten a lot better since UE5.4)