h4lfheart / FortnitePorting

Automation of the Fortnite Porting Process
GNU General Public License v3.0
250 stars 45 forks source link

Update export to Unreal using RemoteControl API instead of udp for better stability #37

Closed wywarren closed 5 months ago

wywarren commented 9 months ago
hartmannr76 commented 8 months ago

Dope, I was literally just looking into setting something like this up :)

I have some general design questions

1) Why not factor out an interface to separate classes for the workflows instead of the if/else logic? Seems like it'd be easier to add new flows and keep existing ones that way 2) Is the new UE extension necessary? I was peeking at the BlenderTools repo and it seems like they just use python API and asks users to simply enable the remote execution plugin which already exists. Seems like this could just send python calls directly to UE with no additional addons. I'd be happy to look into that if that seems cleaner

wywarren commented 7 months ago

Dope, I was literally just looking into setting something like this up :)

I have some general design questions

  1. Why not factor out an interface to separate classes for the workflows instead of the if/else logic? Seems like it'd be easier to add new flows and keep existing ones that way
  2. Is the new UE extension necessary? I was peeking at the BlenderTools repo and it seems like they just use python API and asks users to simply enable the remote execution plugin which already exists. Seems like this could just send python calls directly to UE with no additional addons. I'd be happy to look into that if that seems cleaner

The additional addons I've added are partially the existing stuff they're currently using in the plugin that were missing from the .uplugin (if that's what you're referring to). Without them, you get a bunch of warnings when compiling and it becomes the responsibility of the installer to activate the missing plugins/modules. Adding them in will check for missing stuff and try to activate them on your behalf. The python API also helps to open up the C++ functions to blueprints for any one that wants to do custom stuff via script.

Regarding the if/else logic, I'm not sure what half's intention going forward with this plugin whether to change main branch to be directly corresponding with v2 and sunset v1 or somehow keep it compatible with both, but until I have something more definitive, I didn't want to yank out any of the legacy code if possible.

h4lfheart commented 5 months ago

I have started on remaking the export process for v3 and have decided on using a localhost api for all data sending so this pattern can definitely be used when adding unreal support to v3. Since this is for v2 I will close it since it will be obselete later this year but will absolutely reimplent it.