Sharing Lumberyard Projects w/ Perforce

Hey all,

I’m working on getting a Perforce repo set up so our team can work on a learning project based on StarterGame.

Here are the steps I took to get myself running the editor from source:

  1. Run the installer for 1.25.0.0
  2. Use SetupAssistant to configure for building from scratch and install SDKs
  3. Use ProjectConfigurator to select StarterGame
  4. Use “lmbr_waf configure” to generate solution file LumberyardSDK_vs2017.sln
  5. Build solution and run Sandbox/Editor project

Now, I’m on the next set of steps – sharing the appropriate parts of the project with the team.
However, I couldn’t find much info on how to take what I’ve got and put it on the repo.

The install comes with a .p4ignore file (AWESOME!), so based on that I set up the folder where that was located as our root, and have checked all non-ignored assets into the repo.

Now, I’m trying to get a coworker up and running by using what’s in the repo (presumably this should replace her need to run the installer from the website, though I couldn’t find documentation supporting this, so it may be a bad assumption). She can download the repo and run SetupAssistant.exe, which gets her all of the 3rd party plugins that aren’t in the repo (also great!).

Then we get to some issues. When she builds the LumberyardSDK_vs2017.sln file, there are issues because it’s trying to write to some files that are read-only (since they are in Perforce and not in the .p4ignore file). Okay, we can clear those Read-only flags and add them to the .p4ignore; not a huge deal but a little concerning.

Eventually we get it to build, and she can run the editor! It boots up and asks her to select a level, so she selects the SinglePlayer level of StarterGame to load, and the editor freezes (the attached image error appears, but the message is not selectable as it appears).

Does anyone have any guidance? I’m working on getting the full output log from her, but have we taken any egregious missteps so far?

Thanks so much in advance for your help!

PS – The other oddity is that she doesn’t have ProjectConfigurator. The entire Bin64vc142 folder which contains it doesn’t exist on her machine (since it’s in p4ignore), and it isn’t built from the solution file or as a result of performing a configure, so I’m not sure where it’s supposed to come from.

Hi, i’m in the same situation.
I managed to have the editor working so my team can work but I tried to build with the waf command that builds everything but that doesn’t build the Project Configurator for some reason…

Not sure why its not in the documentation, but project configurator can be built via

lmbr_waf build_win_x64_vs2017_profile -p lmbr_setup_tools

Thank you Pip! It’s possible this is in the documentation and I didn’t see it. To be honest I’m having trouble understand what procedures should be undertaken using lmbr_waf versus otherwise.

That said, while this command does run and complete successfully, it doesn’t actually seem to make Project Configurator:
[WARN] Invalid module ‘SetupAssistant’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘SetupAssistantBatch’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘Lyzard’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘lmbr’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘LyzardSDK’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘LyzardEngines’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘LyzardGems’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘LyzardProjects’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘LyzardTemplates’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘LyzardApplicationDescriptors’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘LyzardCapabilities’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘LyzardThirdPartySDKs’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘LyzardPackages’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘LyzardSetup’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘ProjectConfigurator’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘LyIdentity_shared’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘LyIdentity_static’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘LyMetricsShared_shared’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘LyMetricsShared_static’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘LyMetricsProducer_shared’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘LyMetricsProducer_static’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘LyMetricsProducer_python’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘LyMetricsConsumer’ in spec ‘lmbr_setup_tools’
[WARN] Invalid module ‘LyInstallerMetrics’ in spec ‘lmbr_setup_tools’

(I haven’t investigated deeper yet to see why those modules are invalid.)

On the flipside… do we actually need it? Is there anything it does that can’t be done with other tools? I haven’t seen how to add gems to a project any other way, so that might be one.

As a more general update to my original post, the following paths are the ones that we are removing from version control because they seem to be built within the .sln and therefore aren’t needed in the repo:
C:\Amazon\Lumberyard\1.25.0.0\dev\Tools\LmbrSetup
C:\Amazon\Lumberyard\1.25.0.0\dev\Tools\CrySCompileServer

EDIT: If you’re trying this out, make sure to read followup posts as it’s not a viable solution, because SetupAssistant is located within the LmbrSetup folder and I’m not yet sure of the correct way to handle this.

Most of ProjectConfigurator can be done on the commandline using lmbr.exe: https://docs.aws.amazon.com/lumberyard/latest/userguide/configurator-projects.html (has examples)

My apologies, I should have checked what was in github and/or installer builds. A lot of things get stripped out during the release process but I assumed you could build it as we still published the spec.

@Pip Aha, okay, that seems like at least with the possible exception of adding gems, it’ll do the trick.

That said, we’re still rather stuck. In a previous post I commented that we were removing the Tools\LmbrSetup folder from version control because building the game makes changes to this folder. Unfortunately that seems to be untenable because that folder contains the SetupAssistant, which people do need in order to setup their project – they can’t successfully run any lmbr_waf commands without it:
[ERROR] Unable to locate the SetupAssistant application required to configure the build settings for the project. Please contact support for assistance.

@Alexandre_Corcia were you able to get around this problem with your team? Is your LmbrSetup folder in perforce, and:

  • If it is, how is your team able to build the editor solution without checking out exclusive files in the folder?
  • If it is not, how does your team get SetupAssistant?
    Maybe you are doing some combination of having the team install from web and pull from perforce?