
描述
ObjectDeliverer: Flexible Data Transmission Library for Unreal Engine
Overview
ObjectDeliverer is a comprehensive data transmission and reception library for Unreal Engine, designed with flexibility and ease of use in mind.
Whether you're developing real-time applications, or tools requiring data exchange, ObjectDeliverer provides a robust framework that works seamlessly in both C++ and Blueprint environments.
Key Features
Modular Architecture
ObjectDeliverer's greatest strength is its modular design. You can easily mix and match:
Communication protocols
Data division rules
Serialization methods
This plug-and-play approach allows you to quickly configure the exact communication setup your project needs without writing extensive custom code.
Multi-Platform Support
Built to work across many platforms supported by Unreal Engine, with special optimizations for Windows-specific features like Shared Memory communication.
Blueprint Complete
Every feature is fully exposed to Blueprint, allowing non-programmers to implement complex networking solutions without writing a single line of C++ code.
Performance Optimized
Designed with performance in mind, featuring configurable buffer sizes and efficient data handling to minimize overhead in your projects.
Communication Protocols
TCP/IP Server
Connect and manage multiple client connections simultaneously
Automatic client connection handling
Event-based notification system for connections/disconnections
Configurable port, backlog, and buffer sizes
TCP/IP Client
Reliable connection to TCP servers
Automatic reconnection options
Connection status events
Configurable retry behavior and buffer sizes
UDP Sender
High-performance, connectionless data transmission
Perfect for broadcast or multicast scenarios
Ideal for real-time data where occasional packet loss is acceptable
UDP Receiver
Lightweight UDP packet reception
Multiple binding options (specific IP or any available)
Configurable receive buffer size
Shared Memory (Windows)
Ultra-fast inter-process communication on the same machine
Zero-copy data transfer for maximum performance
Perfect for communicating between multiple UE4 instances or external applications
Log File Writer/Reader
Record transmitted data to log files
Replay data from previously recorded logs
Great for testing, debugging, and simulation
Data Division Rules
When transmitting data over networks, you need rules to determine where one packet ends and another begins. ObjectDeliverer provides several built-in strategies:
Fixed Size
Simple and efficient - each packet has the same predetermined size.
Header + Body
A header containing the size of the following data body, allowing variable-length messages with clear boundaries.
Terminal Symbol
Data packets are separated by a specific termination character or sequence (like '\n' in text protocols).
No Division
Raw data stream without packet separation - useful when the application layer handles message boundaries.
Serialization Methods
Byte Array
Raw binary data transmission for maximum performance and flexibility.
UTF-8 String
Text-based communication with proper encoding support for international character sets.
Object (JSON)
Automatically serialize and deserialize Unreal Engine objects to JSON format:
Transmit complex data structures with a single function call
Property-based serialization
Support for nested objects and arrays
Automatic type conversion
Practical Applications
Tool Development
Inter-process communication between editor tools
Save/load functionality with the log file system
Remote debugging capabilities
Simulation & Visualization
Stream real-time data to visualization systems
Record and replay simulation data
Connect to external data sources or analytics systems
IoT & Hardware Integration
Connect Unreal Engine to external devices via network protocols
Build digital twins with real-time data feeds
Create monitoring and control systems
Easy Integration
ObjectDeliverer is designed to integrate seamlessly into your existing projects:
Add the plugin to your project
Select your communication protocol
Choose your data division rule
Pick your serialization method
Start sending and receiving data!
Blueprint Example
The same functionality is available in Blueprint with an intuitive node-based interface:
Create the ObjectDelivererManager
Configure your protocol, packet rule, and delivery box
Start the manager
Bind to events for receiving data
Send data using the provided functions
Performance Considerations
ObjectDeliverer is built with performance in mind, offering:
Configurable buffer sizes to optimize memory usage
Efficient binary serialization options for minimal overhead
Shared Memory protocol for ultra-fast local communication
Asynchronous operation to prevent blocking the game thread
Advanced Features
Custom Protocols
Extend the built-in protocols by creating your own communication methods that integrate with the ObjectDeliverer framework.
Custom Packet Rules
Implement specialized data division strategies for proprietary protocols or unique requirements.
Custom Serialization
Create your own serialization methods beyond the provided options for specialized data formats.
Community and Support
ObjectDeliverer is actively maintained and improved based on community feedback. We're committed to providing:
Regular updates and new features
Bug fixes and performance improvements
Documentation and examples
Getting Started
Add ObjectDeliverer to your Unreal Engine project
Explore the included examples to understand basic usage patterns
Configure your first connection using either C++ or Blueprint
Start building amazing connected experiences!
ObjectDeliverer simplifies network communication in Unreal Engine while providing the flexibility and power needed for advanced applications. Whether you're building connected tools, or complex simulations, ObjectDeliverer gives you the building blocks to implement robust, efficient data transmission with minimal effort.
About the Open Source Version
This plugin is also available as open source under the MIT License on GitHub.
If you use the GitHub version, you need to build it yourself from the source code.