Question about setting up ShooterGame

So… I am not sure if this was already covered somewhere? When you download the ShooterGame example project it doesn’t have the ‘UE4’ project built in. So you cannot search the entire UE4 codebase.

For example, if you follow the ‘intro to programming’ video and create a project in your Full source project it will have a UE4 project and your new example project.

However, if I download a project it does not come with it installed. Are we supposed to update our .sln file to point to it I suppose? I’ve become rather spoiled by just clicking on the uproject


Question #2: THis will make me look like a scrub but sadly I am not sure how Epic includes their header files. For instance, I want to use UParticleSystemComponent in my cpp file. ShooterGame appears to somehow magically know how to include this file. But in my project, it doesn’t know what it is. Yes, I can manually just include the .h file directly in my .cpp. But my question is how the heck is ShooterGame including UParticleSystemComponent?

Does anyone know what magical sauce they doing?

More info- in ShooterProjectile.cpp it knows about UParticleSystemComponent but how? Where is this guy getting included from??

I might be wrong, but I think one way to do this would be to add a class via the editor. I think this generates the solution file as well. (Can’t check right now as I’m not at home).

Oh yeah I right clicked on the ShooterGame’s uproject to create a solution for it a few days ago. I guess this is some sort of oversight on the tools. I should search the codebase and see where it’s grabbing the ue4.vcxproj files from when it generates a sample project.

The binary/launcher release of UE4 doesn’t come with full source, so any VS solutions generated using that version will not have the UE4 project included.

The Unreal Build Tool sets up the include search paths based on the modules specified in your project’s Build.cs file.

ShooterProjectile.cpp includes ShooterGame.h which includes Engine.h which either directly or indirectly includes the relevant header for UParticleSystemComponent.

As enlight mentioned, I think this comes down to using engine binaries installed from the launcher, rather than your own built from source. If you have built the engine from source for yourself and want to make sure that build takes precedence over the official build for e.g. context menu options and .uproject file association, you should run (as admin) RegisterShellCommands.bat from the Engine/Build/BatchFiles directory.

More specifically, if I had to guess, I’d say it might be related to the “-rocket” command line argument that’s passed to UBT by RocketGenerateProjectFiles.bat, as opposed to the full GenerateProjectFiles.bat.

You guys are awesome I will give this a try as soon as possible. Thank you very much!