https://github.com/ayumax/ObjectDeliverer
ObjectDeliverer is a data transmission / reception library for Unreal Engine (C ++, Blueprint).
https://github.com/ayumax/ObjectDeliverer
blueprint shared-memory tcp udp unreal-engine
Last synced: 2 months ago
JSON representation
ObjectDeliverer is a data transmission / reception library for Unreal Engine (C ++, Blueprint).
- Host: GitHub
- URL: https://github.com/ayumax/ObjectDeliverer
- Owner: ayumax
- License: mit
- Created: 2019-01-09T13:04:48.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-06-07T14:20:30.000Z (about 1 year ago)
- Last Synced: 2024-10-30T20:44:44.712Z (7 months ago)
- Topics: blueprint, shared-memory, tcp, udp, unreal-engine
- Language: C++
- Homepage: https://www.unrealengine.com/marketplace/ja/slug/objectdeliverer
- Size: 8.45 MB
- Stars: 163
- Watchers: 14
- Forks: 36
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-unreal - ObjectDeliverer - Data transmission and reception library for Unreal Engine. (Awesome Unreal Repositories / Networking)
- awesome-unreal - ObjectDeliverer - ObjectDeliverer is a data transmission / reception library for Unreal Engine (C ++, Blueprint) (Networking)
README
# ObjectDeliverer
## UE Marketplace
[https://www.unrealengine.com/marketplace/ja/slug/objectdeliverer](https://www.unrealengine.com/marketplace/ja/slug/objectdeliverer)## Description
ObjectDeliverer is a data transmission / reception library for Unreal Engine (C ++, Blueprint).It has the following features.
+ Communication protocol, data division rule, serialization method can be switched by part replacement.
+ Available for both C ++ and Blueprint## Relationship between branch and UE Engine version
The master branch is buildable with UE5 5.0 or later; UE4 requires some modifications to build.
## Communication protocol
The following protocols can be used with built-in.
You can also add your own protocol.
+ TCP/IP Server(Connectable to multiple clients)
+ TCP/IP Client
+ UDP(Sender)
+ UDP(Receiver)
+ Shared Memory(Windows Only)
+ LogFile Writer
+ LogFile Reader## Data division rule
The following rules are available for built-in split rules of transmitted and received data.
+ FixedSize
Example) In the case of fixed 1024 bytes
+ Header(BodySize) + Body
Example) When the size area is 4 bytes
+ Split by terminal symbol
Example) When 0x00 is the end
## Serialization method
+ Byte Array
+ UTF-8 string
+ Object(Json)# Installation
+ Please clone this repository
+ Please copy the Plugins directory to the project folder
+ Please activate ObjectDeliverer from Plugins after launching editor# Quick Start
1. Create an ObjectDelivererManager
1. Create a DeliveryBox(If you wish to send and receive data other than binary)
1. Set the send / receive protocol and PacketRule, then start the ObjectDelivererManager
```cpp
void UMyClass::Start()
{
auto deliverer = UObjectDelivererManager::CreateObjectDelivererManager();// bind connected event
deliverer->Connected.AddDynamic(this, &UMyClass::OnConnect);
// bind disconnected event
deliverer->Disconnected.AddDynamic(this, &UMyClass::OnDisConnect);
// bind receive event
deliverer->ReceiveData.AddDynamic(this, &UMyClass::OnReceive);// start deliverer
// + protocol : TCP/IP Server
// + Data division rule : Header(BodySize) + Body
// + Serialization method : Byte Array
deliverer->Start(UProtocolFactory::CreateProtocolTcpIpServer(9099),
UPacketRuleFactory::CreatePacketRuleSizeBody());
}void UMyClass::OnConnect(UObjectDelivererProtocol* ClientSocket)
{
// send data
TArray buffer;
deliverer->Send(buffer);
}void UMyClass::OnDisConnect(UObjectDelivererProtocol* ClientSocket)
{
// closed
UE_LOG(LogTemp, Log, TEXT("closed"));
}void UMyClass::OnReceive(UObjectDelivererProtocol* ClientSocket, const TArray& Buffer)
{
// received data buffer
}
```# How to use each function
Look at the Wiki
https://github.com/ayumax/ObjectDeliverer/wiki