Beamball sample¶
This demo showcases how you can use the Beamable Unreal SDK in a full game project. Particularly it focuses on the Store, Leaderboard, Stats and Matchmaking services.
Introduction¶
Aside from the BeamableCore Plugin, here's what the sample contains:
BEAMPROJ_BeamballUnreal Plugin.: Contains the UE implementation for the sample client. Key locations in the project are:Plugins/BEAMPROJ_Beamball/Source/BEAMPROJ_Beamball/Public: Public headers for gameplay/runtime systems.Plugins/BEAMPROJ_Beamball/Source/BEAMPROJ_Beamball/Private: C++ implementations for gameplay/runtime systems.Plugins/BEAMPROJ_Beamball/Source/BEAMPROJ_Beamball/Public/PlatformIntegrationsandPrivate/PlatformIntegrations: Platform-specific integrations (Edgegap, EOS, Steam).Plugins/BEAMPROJ_Beamball/Source/BEAMPROJ_BeamballBlueprintNodes: Blueprint node module (Publicheaders andPrivateimplementations).Plugins/BEAMPROJ_Beamball/Content/UI_BPs: Blueprint assets used by the sample UI flow.
Microservice/BeamballMsMicroservice: Microservice containing code that's used by the sample for various matchmaking and stats stuff.
To set up this sample you'll need a a Beamable Account and a Realm. To configure the repo for the sample run dotnet beam unreal select-sample BEAMPROJ_Beamball.
Setting up the project¶
To set up an organization and realm to run this sample, follow the steps below.
- Go to the Beamable Portal and create a new Beamable realm called
Beamball - Compile and open the
BeamableUnrealeditor project. - Sign into your Beamable account and go to the
Beamballrealm.- Optionally you can hit
Apply to Buildafter the realm change is done.
- Optionally you can hit
- Set up the content using snapshots.
- Open
Beamable -> Content -> Snapshots. - Select the
Beamballsnapshot. - Click
Apply Snapshot. - Publish the applied snapshot content to your realm.
- Open
Running the sample in editor¶
Leveraging the new Beamable PIE Settings, you can run the sample in editor through two entry points: The Main Menu or the Gameplay scene.
Running from the main menu¶
- Open the Unreal editor.
- Open the
L_Beamball_MainScreenLevel if it is not opened yet.- You can find it inside the
BEAMPROJ_Beamball Contentfolder. - If you can't see plugin content in your content browser, you can change the settings of the UE
Content Browserto display it.
- You can find it inside the
- Go to the
Beamable -> Microservicewindow.- You should see the
BeamballMSservice there. Select it. - Click
Runand wait until you see theService ready for trafficlog line (and the running icon in the Microservice's card to change). - After you're done with the sample, don't forget to come here and stop the service.
- You should see the
- You don't need to select any Play Preset, as the
Beamball_MainScreenlevel is the common entry point for the sample. So leave the Play Preset selector toNone. - Play the
L_Beamball_MainScreenin the Editor.
Running from the gameplay scene¶
- Open the Unreal editor.
- Open the
L_Beamball_GameplayLevel if it is not opened yet.- You can find it inside the
BEAMPROJ_Beamball Contentfolder. - If you can't see plugin content in your content browser, you can change the settings of the UE
Content Browserto display it.
- You can find it inside the
- Go to the
Beamable -> PIE Settings -> Player Managerwindow. - Create two players, one with the name
Player1and another with the namePlayer2. - Go to the
Beamable -> PIE Settings -> Play Presetswindow. - Create a new Play Preset with the following settings:
- Name:
Beamball Gameplay - Available Maps: Add
L_Beamball_Gameplayto the list. - Enable PIE Lobby: Enabled
- Game Type:
game_types.default - Add both
Player1andPlayer2to the preset.
- Name:
- Select the
Beamball GameplayPlay Preset in the main toolbar. - Select
Play as Clientin the Net Mode settings and set theNumber of playersto 2. - Play the
L_Beamball_Gameplayin the Editor.
Can I use it as a template?¶
This sample is not meant to be used as a template directly, however, its components are free for you to copy and use in your own project. Here's what these are:
- The
BeamballMSMicroservice : located inside Microservice/BeamballMS - Beamable code and blueprints inside BEAMPROJ_Beamball plugin

