We know Unreal Engine 4 features a complex online system; Can you give us an overview of your online architecture and its blueprint integration? Can you suggest us a strategy about start working with your online subsystem for a large scale project and about how to share functionalities between code and blueprints?
The “online” functionality, that is, the stuff outside of the core actor property and RPC replication, is implemented in the Online Subsystem (OSS for short) modules. The core OSS module defines the interfaces we use to abstract the online features (such as sessions, achievements, and leaderboards) across different platforms and services. There are additional OSS modules which contain concrete implementations that interact with specific services: OnlineSubsystemSteam and OnlineSubsystemLive, for example. OnlineSubsystemNull is a sort of stub/minimal implementation that can manage sessions over a LAN.
Some of this functionality is available through Blueprint nodes in the “Online” category. You can manage achievements and leaderboards, and there is some ability to host, find, and join sessions. However, for a large-scale project, you may find that you need to utilize C++ to access all of the functionality you need. If you’d like to see how these are exposed to blueprints, check out the various CallbackProxy classes in the OnlineSubsystemUtils module.
For examples of using these blueprints, TappyChicken uses the achievement and leaderboard nodes for mobile platforms. The MultiplayerShootout sample uses the session features, and both are content-only games.
To start on the C++ side, I’d recommend looking at ShooterGame - it’s a good example of using OSS features from code.
We think this post contains useful information which we would like to share with our public UE4 community. With your approval, we would like to make a copy of this post on the public AnswerHub which includes the discussion but strips out your username and company name. Please let us know if you are okay with this.
as long as username and company are removed this is ok for us