Skip to main content

Version-3

Overview

The first versions of the Inworld SDK used gRPC and Protobufs as the transport layer for client-server communication. However there was always an incompatibility with WebGL that needed to be dealt with. We soon found that certain developers were coming up against platform and build target incompatibilities when including other third party gRPC dependent assets or plugins into their project as well.

Version 3 of the Inworld SDK was developed with the goal of addressing these issues. The transport layer has been modularized and we've added WebSockets as the default transportation layer using JSON. We have also encapsulated our gRPC dependencies into a native DLL giving users the option to switch to it if they prefer to take advantage of the improved deserialization/serialization overhead and reduced latency from smaller packets.

FeatureJSON & Unity WebsocketsProtobuf & gRPC
Pros✔️ Text-based and easily readable
✔️ Straightforward to use and should be familiar to Unity Developers
✔️ WebGL supported and less build target complexities with other platforms
✔️ Binary with better latency due to smaller packets and less deserialization/serialization overhead
✔️ AEC Support
Cons❌ Slower to Serialize/Deserialize with more overhead❌ WebGL not supported
❌ More build target complexities with certain platforms