Very few standalone applications exist that do not interface with external APIs or services. This makes sense, as both the open-source paradigm and increasing availability of popular APIs have allowed developers to leverage existing code rather than writing everything from scratch themselves.
Whenever a new paradigm arises in software, new infrastructure needs to be built to support it. Over the past few years, plenty of developer tools have been built to leverage the abundance of these connected applications.
Unreal Engine 4 provides robust capabilities for web services at its core, though integrating external data sources such as Twitter's API or data from an AWS server into the engine can be a challenge for those who aren’t experienced in integrating web APIs. Often times, developers well-versed in handling web requests via simple AJAX calls must write vanilla C++ in UE4 to replicate the same functionality.
Today, we’re open-sourcing the Helios Simple Data Integration (SDI) Plugin to solve this problem.
The Helios SDI Plugin allows for the easy integration of external data into UE4 clients by interfacing directly with a web server using auto-generated Blueprints nodes (no C++ code required!). With it, developers can do things like control an in-game experience via an internet-connected device such as an iPad, send data to a server to be consumed by a separate client and communicate with third-party APIs such as Twitter, Facebook, Youtube and others from inside a UE4 application.
Facilitating the server-client interaction between a web server and Blueprints empowers developers of a wide skill range to enrich their in-game experience by pulling in (or pushing out) data sources external to UE4.
For a practical example, let’s take a look at the ability to change the color of a gun in a game from a network connected iPad as in our demo. A server has been set up with a variable named “DecalColor” created, and the iPad is configured to send the new data to the server. To get the value of “DecalColor” in Blueprints, one can simply search for the variable…
… and drop the auto-generated node into the project!
Here’s how to get started:
- Setup a server to maintain the data.
- Configure the plugin to make UE4 talk with the server.
- Reference the plugin usage article for information on how to use the nodes and for usage examples.
We’ve decided to share roadblocks we ran into while developing this project in UE4 as well as some of the workarounds we used - in case they might be of help to you. To learn more about how the plugin works and/or contribute to this open source project, check out our technical details article!