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: 11 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 (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-06-07T14:20:30.000Z (over 1 year ago)
- Last Synced: 2024-10-30T20:44:44.712Z (over 1 year 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 - ObjectDeliverer is a data transmission / reception library for Unreal Engine (C ++, Blueprint) (Networking)
- awesome-unreal - ObjectDeliverer - Data transmission and reception library for Unreal Engine. (Awesome Unreal Repositories / 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