Setting up the sample projects¶
Beamable provides sample projects for Unreal as part of the Beamable Unreal SDK repository. Each sample is tied to a plugin named BEAMPROJ_<PluginName> of a shared BeamableUnreal project. The sample you see in the editor is determined by which BEAMPROJ_ plugin is enabled in the BeamableUnreal.uproject file.
Preparing the environment¶
- Install Dependencies
- NET 8.0
- Docker Desktop
- Clone the UnrealSDK Repository
- Clone the UnrealSDK repository if you didn't yet
- Run the
prepare_repo.shScript. (GitBash is recommended, but any similar shell works.)
Select the sample to run¶
- Use
dotnet beam unreal select-sample BEAMPROJ_<PluginName>to switch to the plugin (and thus the sample) you want. During this process all of the content in theirOverridefolder will be copied to theBeamableUnrealproject replacing any previous configuration. This replaces the whole "Context" in which the project is configured, enabling multiple samples in the same project. - For example,
dotnet beam unreal select-sample BEAMPROJ_Beamballswitches the repo to the Beamball sample - If using Rider as IDE and already in the BeamableUnreal.sln project you can alternatively select and run the
SET BEAMPROJ - <PluginName>in the Configuration Drop Down (Top Right Corner)
Build and run in editor¶
- Open the generated
.slnfile in your IDE (e.g., Visual Studio, Rider...). - Perform a Clean build of the Editor target.
- Run the
BeamableUnrealProject and in the editor, go to Project Settings → Beamable Core → Beamable Environment and verify it’s set toBeamProdEnv. - Sign in to your Beamable account in the Beamable Window.
- Follow Sample-Specific Instructions. Each sample has its own documentation for additional steps or guidance.
I can't find the Beamable Core Content in the Content Browser
UE's Content Browser does not show Plugin content folders by default. If you want to see these, you need to turn it on at Content Browser -> Settings -> Show Plugin Content.
Clean Up Sample Realms
If you are using your own organization (the one you’ll use to ship your game) to test any of these samples, don’t forget to delete the test realms when you’re finished exploring!
Why a single repository?¶
All Beamable samples live in the main repository for two reasons:
- QA: Beamable continuously develops and tests against the samples
- Up-to-date samples: Whenever the SDK is updated, the sample projects are updated too. Maintaining samples alongside core features keeps everything stable and consistent
To make this work, the Config and .beamable folders are kept in sync by:
- A custom
Target.cscode that makes theConfigand.beamablefolders at the root level of the repo exact copies of the folders inside theOverridesdirectory of eachBEAMPROJ_folder. In other words, the contents of those folders at the root level is defined by the selectedBEAMPROJ. - An editor subsystem called
BeamProjSyncthat, while the editor is running, file-watches those directories and copies changes made over to the appropriateBEAMPROJ_Overridesfolder. - Those implementations are only related to the specificity of this sample configuration and it is not related to the samples' content themselves