OSS
- Fixed setting NetId when logging in using a DeviceId
- The Login() node now uses a string for data rather than a byte array
The best way when testing multiplayer is to use the DevTool that is provided by the EOS SDK.
You can obtain the DevTool from the EOS Developer Portal, “Download SDK“
After obtaining your copy of the DevTool, launch the application and create your token.
Remember that for each instance you must use a separate Epic Account, using the same Epic account for multiple instances will not work!
You can play test using either Standalone or launching from Command line
EOSCore version 1.8.0 now has a Login function that is meant to simplify the login process.
AuthType: Password
CredentialsType: DeviceId Access TokenLoginId is your DisplayName
Token is unused
Data is unused
AuthType: AccountPortal
CredentialsType: EpicLoginId is unused
Token is unused
Data is unused
AuthType: PersistentAuth
CredentialsType: EpicLoginId is unused
Token is unused
Data is unused
AuthType: Developer
CredentialsType: EpicLoginId is the address, example: localhost:1111
Token is the token you specified in the developer tool, example: hulken
Data is unused
If you are logging in “manually” by using the EOS Async Blueprint Nodes, you have to update the UniqueNetId manually. You can do it by adding this event to your PlayerController
To enable Multiplayer when using an Android Phone, you must edit your AndroidEngine.ini configuration file, this is the android equivilent to DefaultEngine.ini, just copy-paste your settings from the DefaultEngine.ini to your AndroidEngine.ini, see the example below.
This example will allow you to connect using the EOS NAT P2P Interface and enable cross-platform multiplayer.
Project\Config\Android\AndroidEngine.ini
[OnlineSubsystem]
DefaultPlatformService=EOS
[/Script/OnlineSubsystemEOS.NetDriverEOS]
NetConnectionClassName=OnlineSubsystemEOS.NetConnectionEOS
bIsUsingP2PSockets=true
[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemEOS.NetDriverEOS",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
Since Dedicated Servers don’t need to use Relay Servers, we have to disable the EOS NetDriver, simply removing the declarations here will disable using the EOS NetDriver.
[Core.Log]
Online=Verbose
OnlineSession=Verbose
OnlineGame=Verbose
LogEOSCoreSubsystem=Verbose
LogEOSCore=Verbose
[OnlineSubsystem]
DefaultPlatformService=EOS
We’ll use Commandline arguments to authenticate and launch our server, the example below will authenticate our server using a local DeviceID, this is the minimum authentication required to communicate with Epic Online Services. The –EOSConfig= is optional, for example if you’re using a different configuration for your Server.
D:\WindowsServer\EOS_DedicatedServer.exe -server -log -AUTH_TYPE=deviceid -AUTH_LOGIN=test -AUTH_TOKEN=test -EOSConfig=ServerConfig
You can use the default Session nodes to list a Dedicated Server. We’ll use the GameInstance in this example.
This will List your dedicated server as a joinable session.