The online subsystems for mobile have been incomplete since UE4 began. There is still no support for mobile multiplayer games, starting sessions , finding sessions , joining sessions etc. The only online subsystem the UE4 seems to support is Steam
Can you please, PLEASE , PLEASE !! add this as a matter of urgency.
In 2015 Clash of Clans was the second biggest selling game across all platforms with $1,345,000 sales , only beaten by League of legends on PC $1,628,00 . So the second biggest selling game of 2015 was on Mobile ! If one platform NEEDS networking support it’s mobile, where the vast majority of peoples social apps are.
I get that the OSS for Steam was a must, seeing as it’s the platform that every UE4 dev has access to. But why stop there ?
My Game Products & Services require the use of all Online Subsystems (OSS) to include my custom OSS and other 3rd Party OSS. Basic HTTP/S communications support in Blueprints would have really made my day. I could have easily set up communication with simple match making registration HTTP Server using PHP/MySQL. I also believe basic HTTP/S would have provided a flexible OSS abstraction layer with Blueprints or C++ requiring a smaller set of functions to support all the different flavors of OSS. I’ve tried a few of the awesome community Plugins such as JSON Query, VaRest, Advanced Sessions Plugin, unfortunately, things break severely at the C++ layer when installing/upgrading. I’ve encounter 4 show stoppers during the process and not interested in fiddling with C++. I’m patiently waiting for OSS to be fully supported in Blueprints and the Documentation.
I’m wishful that Networking gets the focus in Unreal Engine 4.12. There is plenty to do, like builtin Multi-user Level Editing support in UnrealEd (Dev Team’s could really use this feature), scaling session-based multiplayer, cloud support.
Just adding a +1 to this thread. To get a fully-featured iOS game up and running, I’ve had to hack together a lot of custom code because of all the parts of the current OSS that are marked as ‘todo’, ‘not implemented’, or return a nonsense placeholder (I’m looking at you, GetPlayerNickname ‘FacebookUser’).
I kind of find the OSS system clunky all around. Even on the most supported platform (PC) I find myself making my own wrapper to a bunch of steam functionality that’s not available through the OSS layer. (Edit: I’m pretty sure the italicized bits that follow are wrong and my assumptions came from previous implementation on our project that was using things incorrectly)It also makes a ton of assumptions about what you want to do when you interact with it. As an example, if you want to join a steam lobby without server traveling immediately (because server traveling can cause a nightmare of issues), there’s not really a way to do that using the OSS, even though steam supports this, and I’d argue it’s the intended way Steam wants you to work (connect to a lobby -> communicate desired game state to everyone in the lobby -> make your in engine connections and travel to the game mode). Maybe I’m wrong about this, but it’s something I find very frustrating to deal with.
There’s a lot to be desired in the way the OSS is designed even without accounting for stubbed out functions that aren’t implemented yet.
I think adding http support to blueprints would be clunky at best. I think it would be a lot easier to make a blueprint function library in C++ that includes your custom http layer and call those functions from blueprint. Having a generic http layer in blueprints would probably cause more trouble than it would solve if it were as generic as it would need to be to be functional.
edit: I may be wrong about lobby stuff. I think I totally missed the separate implementations for joining lobby sessions vs joining internet sessions. Need to investigate.
Sorry for double post, but just so you know you can query for your current user through the facebook user interface (GetUserInterface()->GetUserInfo(0, MYLOCALUSERUID)) instead of the identity interface against your current id and get your info. It makes it a little more depressing knowing that the work is pretty much done but just needs to be copied into the identity interface
It existed in UDK’s Unrealscript but, UE4 is all Kismet (aka Blueprints) now. A couple of Devs from the Community have provided Plugins for Blueprint Function library in C++, example: JSON Query. Unfortunately, they break during upgrades. Ultimately, my point is that we need either one of the HTTPS Blueprints Plugins added or an Epic version created in the official engine distribution.
A majority Social Media API have origins on the Web (HTML,XML,etc) in my opinion working with Blueprints HTTP Library would be more intuitive, and easier to deal with. Thus, I’ve elected to go with the integration of a single custom OSS in the UE4 Client and handle cross communication between the multiple social media API on the HTTPS Server.
False, UE4 supports Steam OSS, Amazon OSS, Facebook OSS, Google Play OSS, iOS OSS, and the UE4 OSS can be defaulted to NULL as well if there is no appropriate OSS. Not to mention Xbox Live OSS, GameCenter OSS, PSN OSS and others.
Any news on this? The code seems to be there, but partial in most cases. On the roadmap it seems there’s a focus on turnbased for gamecenter, but realtime follows almost the same logic, I’m thinking it should not be too hard to implement both.
I wanted to add the problem I see: Supossing that onlinesubsystem were compatible on iOS, I just add a node “create session” in a game instance class, it succed on mobile previewer, but on my iphone it does not. So on my iphone it cant create a session, I tried to change on my defaultengine.ini the online subsystem to Null, and IOS, and neither of thoose works.