Terrain engine port to Unreal 4

Hi folks,

I want to port my voxel terrain engine from pure C++, Directx and OpenCL to an Unreal 4 Engine plugin, as I don’t want to reinvent the wheel again. Here is a video of my engine:
As my engine is based an volume data, rather than meshes, I would also like to modify the collision detection to react on the volume data, as this would likely be more efficient on a server, as the server wouldn’t have to convert the volume data to meshes first. I also want the plugin to be compatible with the replication system, as I implied before.
I’m really new to Unreal, so I would like to know what steps are involved to accomplish this task.

Have you looked at the BrickGame source code? Maybe it could help with regard to the rendering aspect: GitHub - AndrewScheidecker/BrickGame: A demo of Minecraft-style voxel rendering in UE4

Thanks for that hint KlausT. I’ve read the code and tried to understand it, but it’s really hard to figure out what’s going on there. I think it’s harder to read code than to write it itself…
Another problem I see (maybe I totally overstated this one) is that my engine is relying heavily on an octree as a LOD system. So I would need to know where the camera position is.
Also every end-node in the octree needs to have a pointer to every adjacent node, as each node has to create a “bridging” mesh from itself to the adjacent one
(this system is in my own engine a bit buggy, as some holes remain in the meshes between these nodes).

I also have an offtopic question regarding networking. I have to know the answer, before I commit myself to UE4.
I have read that the networking doesn’t support server to server communication, so is it possible to create a plugin to replicate objects not only from server to client, but also from server to server?
If not, could one use UE4 as a pure render engine, so one could write the game logic seperated from UE4?

Anyone? I really need some helping hand who could show me where to start with plugin programming :frowning:

I’ve created a simple sample plugin a while ago, it might help you get started with native plugins: GitHub - moritz-wundke/AsyncPackageStreamer: Simple plugin giving you the ability to load PAK files fr