How to build RakNet as a plugin for UE4 so it can be used with blueprints ?

I am looking for some way to implement RakNet source as a plugin so it can be used by blueprints.
Is there anybody who knows how to do this ?
As UE4 networking is limited unless you go trough online services like Steam, or code in C++.
Steam is not allowing all games to go trough, it is a failure if they decide your game can release or not.
Even steam is not available in all countries in the world.

IMO the strong keypoint for UE4 is the Blueprint system, as a designer can focus more on making a game instead of learn program codes.

I am hoping someone would like to share the how to do this, it is especially the lobby system that is missing among some other features raknet supports out of the box.

Have you made any head way in doing this? I am trying to get RakNet to work with UE4 and Im having some troubles and wondering you you wanted to bounce ideas off each other

I was looking into it, by looking at the codes from the plugins already existing.
My C++ skills are not that good though.
In Unity i use Playmaker and i can write some custom nodes for that in C#.
But C++ is for me new so i don’t know on far i can help.
Seems the easiest way to build a lobby only server is via restfull api, however its the additional stuff raknet comes with i could realy make use of it in UE4.
The compile like been provided on this forum and answerhub are only for adding it as a lib to code c++, even though it is not working out for me too.

How far did you get with it ?

My target would be to have it available as a plugin to use with blueprints.
The main reason i took UE4 is for the blueprint system but it seems it is limited till now to what a few people provide and what epic does.

For plugin info:

UE4 got common interface for all online services and solutions called OnlineSubsystem:

https://docs.unrealengine.com/latest/INT/API/Runtime/OnlineSubsystem/index.html
https://docs.unrealengine.com/latest/INT/API/Runtime/OnlineSubsystem/Interfaces/index.html

You need to plug RakNet in to that interface and engine conna support it seemlessly, even some games may work without much touch.I don’t really know how to exactly do it and there really lack of documention on OnlineSubsystem, so you will need to look up existing implementation for SteamWorks, Google Plus, iOS game thing or even Facebook. You can find all of them here (PSN and Xbox Live is missing as they under NDA):

https://github.com/EpicGames/UnrealEngine/tree/c9f4efe690de8b3b72a11223865c623ca0ee7086/Engine/Source/Runtime/Online

I also not sure if this will work with plugins, if not can always paste code to project.

As for Blueprint, only those parts of OnlineSubsystem is exposed:

For more you need to expose those features yourself, or wait for Epic to do it

Blockquote I don’t really know how to exactly do it and there really lack of documention on OnlineSubsystem

Exactly my point, as the question i asked yours is not an answer how to do it but a reply on where to get some info about it.

I am looking for an answer from somebody who knows how to do it.

Thank you for putting those links up, but most of them i went already trough.

I am stuck on how to do it due to lack of proper documentation thats why the question be posted.

I dont have coding experience besides what I gained in C# from unity and web development but Im willing to learn. I have noticed a plugin called vaREST but it means you have to learn a new library called REST but it seems that many are using it to make even mid-sized mmo games in UE4. the plugin is fully blueprint operational. I am streaming on twitch my development and people have came in to help me figure it all out. DiGiCT let me know if you get anywhere with that plugin and we could make a framework so others dont get stuck like us( offered free of course)

Yes vaRest is a working plugin to use rest services.
The plugin is only to connect to restful services but you still need to setup a rest capable server which comes in many ways.
You cannot release it complete due to 3rd party software uses, you can however make a tutorial.
CouchBaseis one of them you can read a lot on their site, data is mostly JSON.

But besides that its not RakNet, raknet already has a lot of features specially for gaming.
Using Unity it has a good asset for that too called Best HTTP Pro.
It is usefull to make services like login, server browser, chatserver and stuff like that.

As shadowriver said its the direction to go to make it a plugin, but a lot of work and knowing C++ coding, i was hoping someone with C++ could make a howto for that so we could use it.

I am mediate C# coder, my strong points are design, and server hosting infrastructures.

As we are slowly getting into game development, i still must say Unity is more user friendly to extend at this moment ( unless you are C++ coder ), this is my problem at the moment.

The bad idea is making serversoftware in UE which does not support a masterserver so people can look at a gamelist.

Steam is a 3rd party but if you check Unreal4 it has a nice server browser in it, i dont undertand why epic does not add this to UE4 engine as a plugin.

Well that what i said look on other implementation, all you need to to is translate interface to RakNet APIs, make able to talk to RakNet from that interface, this way any other UE4 component will be easier to work with. Considering you are interested in this from C++ side i thouth you got skill to figure that out. But if you want you can use RakNet direcly in gameplay code but it might end up being bigger work, not to mention you will need to create support functions for blueprint use (which is not really that hard), here glide how to use external libraries:

A new, community-hosted Unreal Engine Wiki - Announcements - Unreal Engine Forums

I am up to setting up RakNet either way really but it would be a nice community asset if we were able to translate it to Blueprint. I have been looking at how vaREST was able to link into blueprint and I was able to link a small library of my own, so I will now attempt to do the same with RakNet this weekend, wish me luck XD. and thanks Shadowriver for your links

If it is a plugin, it is intregrated with blueprints.
For code only it’s called linking a static lib.
They are both different procedures.
I wish you succeed without to much trouble, maybe your explanation to me will be more easy to understand, as for good coders in their mind it’s all simple, but i could say the same on design, everything is simple if you know how to do it :slight_smile:

If you’re looking for login, server browser, chatserver and stuff like that via blue prints check this out. MMO Starter Kit - World Creation - Unreal Engine Forums

Hi DiGiCT:

I have create a sample project, but I have no time to port all RakNet samples.
Currently only Ping server/client in the project.

You can find blueprint usage in Ping.h/Ping.cpp.