Forum Discussion
GreatOceanGames
4 years agoHonored Guest
UE4 Multiplayer
Hello all, Has anyone managed to get the online subsystem working between 2 headsets yet ? I have been playing around for around a week and still no luck !. It seems to be to complicated for what...
VintageGreen
4 years agoAdventurer
Hello there is no step to step guide sadly and the process is a pain in the ass but I got it working. First you will need to use Oculus source 4.26.3 and you will need to fix some code errors that prevent travel to the host headset from the client headset. But I will do my best to help you out so you don't waste months on this as I did.
Plugins/Online/OnlineSubsystemOculus/Source/Private
IPAddressOculus.h
Line 184
FString ToString(bool bAppendPort) const override
{
return FString::Printf(TEXT("%s.oculus"), *OculusId.ToString());
}
OculusNetDriver.cpp
Line 290
void UOculusNetDriver::LowLevelSend(TSharedPtr<const FInternetAddr> Address, void* Data, int32 CountBits, FOutPacketTraits& Traits)
{
if (bIsPassthrough)
{
return UIpNetDriver::LowLevelSend(Address, Data, CountBits, Traits);
}
//const FInternetAddr* AddressPtr = Address.Get();
//const FInternetAddrOculus* OculusAddr = StaticCast<const FInternetAddrOculus*>(AddressPtr);
//check(OculusAddr != nullptr);
FInternetAddrOculus OculusAddr(FURL(nullptr, *Address->ToString(false), ETravelType::TRAVEL_Absolute));
ovrID PeerID = OculusAddr.GetID();
Save and build.
Edit config files in project.
DefaultEngine.ini
[OnlineSubsystem]
DefaultPlatformService=Oculus
bHasVoiceEnabled=true
[OnlineSubsystemOculus]
bEnabled=True
OculusAppId="YOUR ID HERE"
MobileAppId="YOUR ID HERE"
[/Script/OnlineSubsystemOculus.OculusNetDriver]
ServerTravelPause=4.0
[/Script/OnlineSubsystemOculus.OculusNetDriver]
NetConnectionClassName="OnlineSubsystemOculus.OculusNetConnection"
[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/OnlineSubsystemOculus.OculusNetDriver",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver")
[Voice]
bEnabled=True
[/Script/Engine.NetDriver]
AllowPeerConnections=False
AllowPeerVoice=False
ConnectionTimeout=60.0
InitialConnectTimeout=60.0
KeepAliveTime=0.2
RelevantTimeout=5.0
SpawnPrioritySeconds=1.0
ServerTravelPause=4.0
MaxPortCountToTry=512
bClampListenServerTickRates=true
MaxNetTickRate=90
NetServerMaxTickRate=90
LanServerMaxTickRate=90
NetClientTicksPerSecond=90
MaxClientRate=60000
MaxInternetClientRate=60000
[/Script/OnlineSubsystemUtils.IpNetDriver]
MaxClientRate=60000
MaxInternetClientRate=60000
[/Script/Engine.Player]
ConfiguredInternetSpeed=65000
ConfiguredLanSpeed=65000
DefaultGame.ini
[/Script/Engine.GameNetworkManager]
TotalNetBandwidth=600000
MaxDynamicBandwidth=60000
MinDynamicBandwidth=4000
[/Script/Engine.GameSession]
bRequiresPushToTalk=false
YourProject/Build/Android
Make sure you have your ExampleKey.keystore file in your Android folder in project.
*Optional after first build you can make a ManifestRequirementsOverride.txt in same location to make sure permissions are setup right don't worry about this now you will need to have a generated manifest for this in your intermediate folder.
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 2 years ago
- 10 months ago
- 2 months ago
- 2 years ago