npruehs / ue4-rts

Real-time strategy plugin and showcase for Unreal Engine 4.
MIT License
747 stars 151 forks source link

Incomplete Installation Instructions in the Readme #174

Closed GuyPaddock closed 2 years ago

GuyPaddock commented 2 years ago

I am very excited to try this project out, but it seems like the readme has a few gaps:

  1. The README says:

    Clone the repository or download a release.

    and then:

    Copy the RealTimeStrategy folder to Plugins folder next to your .uproject file (create if necessary).

    But, when you're cloning the project, the folder name is not RealTimeStrategy -- it's ue4-rts (unless you specify the name of the directory to create). Also, I noticed that the 1.2.0 release ZIP has a slightly different structure than the directory structure you get when you clone the project. So, I wasn't sure if I should just put the entire project that I checked-out under "Plugins" or if I need to reorganize bits and pieces of it into a structure that's closer to the ZIP. Right now, I'm just placing the checked-out project under Plugins/.

  2. It's not clear which dependencies from RealTimeStrategy.Build.cs should get added to the top-level project.
  3. Why does the plug-in need to be added to PublicDependencyModuleNames rather than PrivateDependencyModuleNames? My understanding is that the former is only needed if you are writing a module that depends on the RTS plug-in that will also become a dependency of yet a third module.
  4. The RealTimeStrategy needs to be added as an enabled plugin in the uproject file.
npruehs commented 2 years ago

Hey @GuyPaddock!

  1. The readme states, quote:

"Copy the RealTimeStrategy folder to Plugins folder next to your .uproject file (create if necessary)."

And that's exactly what you should do. When cloning the project, you'll be able to find that folder at Source/RTSProject/Plugins/RealTimeStrategy.

  1. You shouldn't need to add any dependencies from RealTimeStrategy.Build.cs to your own project.
  2. I think you need to add RealTimeStrategy to your PublicDependencyModuleNames in case you want to create classes in C++ that are extending plugin classes. I might be wrong though.
  3. I've set the EnabledByDefault flag in the plugin descriptor, which means you shouldn't need to explicitly enable the plugin. The flag name might have changed in a recent engine version, which might cause it not to work anymore.
GuyPaddock commented 2 years ago

Thanks, @npruehs!