Beamball Sample¶
This demo showcases how you can use the Beamable Unreal SDK's in full game project. Particularly it focus on the Store, Leaderboard, Stats and Matchmaking.
Introduction¶
Aside from our BeamableCore
Plugin, here's what the sample contains:
BEAMPROJ_Beamball
Unreal Plugin.: Contains the UE implementation for the sample's client. The core code is insideLiveOpsDemoMainMenu.h
and part of the implementation is done through BPs inside the folderUI_BPs
folder of theBEAMPROJ_Beamball
project.Microservice/BeamballMs
Microservice: 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
BeamableUnreal
editor project. - Sign into your Beamable account and go to the
Beamball
realm.- Optionally you can hit
Apply to Build
after the realm change is done.
- Optionally you can hit
- Let's Setup the Content
- First you will need to run the command
dotnet beam content replace-local --from DE_1885450253346843 --to YOUR_REALM_ID
to bring all the content from the sample to your current realm. - Open the
Content
window. - Ensure there's an
game_types
content with the namedefault
- Ensure there's an
currency
content with the namecoins
- Ensure there are 4
itemskin
content with the namesskin1
,skin2
,skin3
,skin4
- Ensure there's an
leaderboard
content with the nameglobal
- Ensure there are 3
listings
content with the namesskin1
,skin2
,skin3
- Click
Publish
to publish those new contents to the realm. - You can read more about the content system Here
- First you will need to run the command
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_MainScreen
Level if it's not opened yet.- You can find it inside the
BEAMPROJ_Beamball Content
folder. - If you can't see plugin content in your content browser, you can change the settings of the UE
Content Browser
to display it.
- You can find it inside the
- Go to the
Beamable -> Microservice
window.- You should see the
BeamballMS
service there. Select it. - Click
Run
and wait until you see theService ready for traffic
log 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 select any Play Preset, as the
Beamball_MainScreen
level is the common entry point for the sample. So leave the Play Preset selector toNone
. - Play the
L_Beamball_MainScreen
in the Editor.
Running from the Gameplay Scene¶
- Open the Unreal editor.
- Open the
L_Beamball_Gameplay
Level if it's not opened yet.- You can find it inside the
BEAMPROJ_Beamball Content
folder. - If you can't see plugin content in your content browser, you can change the settings of the UE
Content Browser
to display it.
- You can find it inside the
- Go to the
Beamable -> PIE Settings -> Player Manager
window. - Create two players, one with the name
Player1
and another with the namePlayer2
. - Go to the
Beamable -> PIE Settings -> Play Presets
window. - Create a new Play Preset with the following settings:
- Name:
Beamball Gameplay
- Available Maps: Add
L_Beamball_Gameplay
to the list. - Enable Fake Lobby: Enabled
- Game Type:
game_types.default
- Add both
Player1
andPlayer2
to the preset.
- Name:
- Select the
Beamball Gameplay
Play Preset in the main toolbar. - Select
Play as Client
in the Net Mode settings and set theNumber of players
to 2. - Play the
L_Beamball_Gameplay
in 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
BeamballMS
Microservice : located inside Microservice/BeamballMS - Beamable code and blueprints inside BEAMPROJ_Beamball plugin