Source Build Setup Issues

Been trying to correctly setup a source build repo that both programmers and non-programmers can use, but having alot of trouble getting everything to work properly or at least as I would expect, UE4 is crazy complicated compared to UE3, at least to me it is very not obvious how things are supposed to be structured and done, Ive read all the documentation/tutorials but they tend to gloss over the areas I have issue with.

Out of the box (after building the bins) for the UE4 solution I could run the binary (Engine\Binaries\Win64\UE4Editor.exe) which would open the ‘Project Browser’ from that I created a ‘c++’ project.

The methods to open the editor for that project appear to be thru the project browser, or through the UGL, or through visual studio. One thing I would like to know if there is a simpler way to launch the editor for a project like thru a bat file that opens it directly? My attempts to create such a file have all failed, I always get the error “cannot find descriptor file” but there is no explanation anywhere for what/where that is or how to address it.

After I disabled some of the plugins and platforms I don’t need in the project file, I rebuilt the binaries of the project, but now when I go to launch the project browser it errors out saying it cannot find a plugin saying that it needs to be set to be disabled… yet it is a plugin that I had just set to disabled!, so now its in a weird state where I cant create new projects and can only open the existing project thru VS and UGL.

The other question I have is the whole ‘engine version selection’ of the projects. I find that the project can point to an arbitrary engine source. I also found an answerhub post saying to run the UnrealVersionSelector-Win64-Shipping.exe in order to ‘register’ the custom engine version. It however is not clear what this means I had thought it would add my ‘custom engine version’ to the UGL, but it does not. Perhaps it merely adds an entry to the project version selector so you don’t have to browse to it?

Lastly we are having problems where when other team members download the repo and try to run the project they get a pop up window saying “this project was made with a different version of unreal” where they cant open it without copying it or something crazy. It is entirely not clear to me what is required to be committed for this to not happen, how can the project be disassociated to the engine it was created from like that? For example if the engine + project and the latest bins are committed, why cant the project open properly what are we missing?

Thanks for the info.

“for the plugins: you should make sure the ones you are using are on and vice versa for not using on first initialization of the project”

I did so, but that resulted in the problem I described of no longer being able to open the project browser.

I see that you suggest to not commit the binaries and that all users would therefore then be required to recompile the binaries in order to use the engine. That is not a tenable setup, for one the binary build times are horrendous, and we really shouldn’t expect non-programmers to have to do that.

I did figure out the bat file question already, I kept trying to do it ue3 style, but eventually found out just double clicking the project file launches its editor and therefore the bat file simply needed to be equivalent to that.

“not sure about custom engine version”

By ‘custom engine version’ that simply means a git release source build of the engine ( as in NOT what the UGL gives you), and just to be clear ‘custom engine version’ does not imply changes to the engine nor changes to the literal ‘engine version’ it was more the language I was seeing used to describe source build installs/copies of ue4 that could be modified.

“Now I have never seen the issue your having with different versions of unreal. so clearly some one is on a different version, so pick one version and stay with it all the way”

I think there is confusion about what constitutes different versions of unreal (I know I am confused about it at least!). For example the UGL only lets you download official release versions, and it doesn’t allow more than one copy of the same version. However source builds are not managed by this ‘manager’ at all, although it does appear that projects created from source builds show up in the UGL projects field, the actual source build installs do not show up as installed versions of the engine. So taking UGL out of the picture, initial version association of a project is inherent to which ue4 install you created it from. After that you can change the version association of the project thru the uproject r-click method. The aspect of this that I initially did not understand and seems you did not understand either is that each source build install/copy is essentially a custom ‘version’, even if they are unmodified and identical to say a official release UGL download/install.

As far as I can tell this association has to be set for each local copy, and doesn’t appear to be something that is commit-able to the repo as it is dealing with relative paths that may differ per-user, in other words each developer has to make sure that each project copy or otherwise is correctly associated to the appropriate corresponding engine install (which in our case is source build).

This is likely the cause of the “project was made with a different version” issue. If I make sure latest binaries are committed, and devs know to associate the project properly that seems to resolve it.

For source control we are using tortoise svn, have a local server and such, so no problems on that front.

Hi,
i´m having the same problem to populate the project, built with an self compiled UE4 version like 4.19.0, to other non-programer team members.
They always getting a window asking for which UE4 version should selected.
I checked in the following files:

  • Binaries/Win64/Projectname.target

  • Binaries/Win64/Projectname.version

  • Binaries/Win64/ProjectnameEditor.target

  • Binaries/Win64/ProjectnameServer.target

  • Binaries/Win64/ProjectnameServer.version

  • Binaries/Win64/UE4Editor.modules

  • Binaries/Win64/UE4Editor-Projectname.dll

  • Binaries/Win64/UE4Editor-Projectname.pdb

  • Config/DefaultEditor.ini

  • Config/DefaultEngine.ini

  • Config/DefaultGame.ini

  • Config/DefaultInput.ini

  • Content/* (all)

  • Plugins/* (all, with binaries and intermediate folders of the plugin)

  • Source/Projectname/Projectname.Build.cs

  • Source/Projectname/Projectname.cpp

  • Source/Projectname/Projectname.h

  • Source/Projectname/MyClass.cpp

  • Source/Projectname/MyClass.h

  • Source/Projectname.Target.cs

  • Source/ProjectnameEditor.Target.cs

  • Source/ProjectnameServer.Target.cs

  • Projectname.uproject

I copied the plugins into the project under a folder “plugins” after installing them from the launcher into the engine.
Then i compiled the complete project with all needed plugins and submitted all into Perforce.

What have i forgot to submit to the Repo? We are using Perforce on a linux server.

Best regards,
Darkentik

Hi @Darkentik, did you ever solve this? I have the same problem. I created a project with the source version and now want the artists to be able to open it with their binary engine drop. How does this work?