Multiplayer Game Series (Pt 1 -character)

Part 2 - Menu, Controller, Save game



Create game instance (for UI related stuffs e.g. join,create session, because it’s
only local, won’t get replicated, but persistent in entire game even change map):
In framwork, BP → type gameinstance, name as BP_Shooter_Gameinstance
Go to project setting, choose the gameinstance created:
image.png

Create Framework BP:


Create new gamemode base, pawn and controller for menu page:
image.png
Set gamemode menu base BP as follow:
image.png

Create a new folder called menu in Map folder
Add a new level, choose Blank, save and name as MainMenuMap
Add a 2nd level, choose Basic, name as LobbyMenuMap

In lobby map, set gamemode override in world setting, as BP_shooterMenu_Gamemode
image.png
Repeat the same in MainMenu Map


Create Widget for main menu:


Create Widget named WB_MainMenu
set button style of tint color differently at normal, hovered and pressed
Add Spacer (size Y 15) between each button
image.png

Open GameInstance BP
Add new function called UI_showMainMenu, creat the nodes, and new variable called WB_MainMenu
image.png
Create Widget node, choose the class and connect to set variable:
image.png
Continue:
image.png

Open Main Menu Map BP (in main menu level, click below), set the nodes:
image.png
image.png

Now start the game, will open from main menu widget page

Back to WB_MainMenu Widget, set Quit game and Solo Game buttons graph:
image.png
Set follow in GameInstane BP, event graph for Solo game button:
image.png
Back to WB mainmenu widget graph
image.png

Create Player Controller in Solo Game character movement


In Framework folder, create Player Controller BP, name BP_shooter_PlayerController
Open Shooter_Shooter Gamemode Base, change the Playercontroller to the one created
image.png
Open new player controller, event graph
image.png


Save player profile whenever connect the server, can just load it out:


Open a folder called SavedData in Content, create a structure, name S_PlayerProfile
image.png
Open it and rename as:
image.png
Create BP class, type SaveGame, name as SG_PlayerProfile
image.png
Open it, add variable:
image.png

Go to Gameinstance graph, add new function CheckForSavedProfile,
promote variable on slot name, rename it as PlayerProfile_Slot, type it on Default value box too
image.png
Add function “LoadProfile”, connect graph (get player profile at end)
image.png
Promote to variable, name as Player Profile_Info, result:
image.png

Add new function as SaveProfile (if no previous profile saved can be loaded, will create a new save game)
image.png

Back to CheckforSaved funciton, set branch if go to load profile or save new profile
image.png

Go to WB_MainMenu Widget, create a new border for player:
image.png
change editable text name as Input PlayerName
Go to its graph, add on text committed
image.png

Back to GameInstance, event graph, add custom event and add input variable as Playername:
image.png

Go to UI ShowMain Menu funciton to add nodes before return node (to be sure name in text box if old player profile found)
image.png

Back to WB_MainMenu Widget graph
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.