First Person Shooter C++ tutorial: https://wiki.unrealengine.com/First_Person_Shooter_C%2B%2B_Tutorial UPDATES NEEDED FOR ENGINE VERSION 4.6.1+ STARTING A NEW PROJECT 3. "New Project" tab somewhat different + Screen different (still a "Blank" option, however) 4. "With Starter Content" now a drop down + Change to "No Starter Content" 8. "Content" folder is now "Game" folder. 9. "Project Settings" tab somewhat different. + "Maps & Modes" now under "Project" heading. CREATING A GAME MODE 2. "Choose Parent Class" screen a bit different. 3. The "Create" button is now labeled "Create Class". Add log message: 5. Adding the constructor line produces an error message: error C2653: 'AFPSGameMode' : is not a class or namespace name 7. Adding this code is not needed. Doing so produces an error/warning. Compile: Unreal Editor does not need to be closed to compile. Instead, compiling will do a "hot load" of the new code. 3. Link is broken. Use "Build" -> "Build Solution" (F7). MAKING A CHARACTER Compile: Again, Unreal Editor does not need to be closed to compile. Instead, compiling will do a "hot load" of the new code. WASD MOVEMENT Note: Before compiling and running here, you DO have to close UE Editor. JUMPING Note: Before compiling and running here, you do NOT have to close UE Editor. ADDING A MESH TO YOUR CHARACTER 5. This step is not needed (there is no "Advanced" dropdown). Just click on "Import All". 6. "Save" should be "Save All". Blueprints: 3. There is no "New" dropdown. Instead, right click in Content Browser to get option. CHANGING THE CAMERA VIEW 2. The line: FirstPersonCameraComponent->AttachParent = CapsuleComponent; should be: FirstPersonCameraComponent->AttachParent = GetCapsuleComponent(); to avoid a warning. ADDING A FIRST PERSON MESH 3. The line: Mesh->SetOwnerNoSee(true); should be GetMesh()->SetOwnerNoSee(true); to avoid a warning. 8. This step is not needed (there is no "Advanced" dropdown). Just click on "Import All". ADDING CROSSHAIRS When adding code, 1. Need to add signature to FPSHUD.h: private: AFPSHUD(const FObjectInitializer& ObjectInitializer); and then to FPSHUD.cpp, constructor is: AFPSHUD::AFPSHUD(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) { // Set the crosshair texture static ConstructorHelpers::FObjectFinder CrosshairTexObj(TEXT("Texture2D'/Game/crosshair.crosshair'")); CrosshairTex = CrosshairTexObj.Object; } 1. Adding DrawHUD(), the keyword "OVERRIDE" is deprecated. Replace with "override". UPDATES NEEDED FOR ENGINE VERSION 4.9+ For some Blueprint classes, you may need to add meshes yourself. For the projectile collision, you need to check "simulate physics" for the collision component to work. The "Use Pawn Control Rotation" setting under the camera settings for FPS Character's camera component needs to be checked. Otherwise, the camera can turn, but not look up or down. See https://answers.unrealengine.com/questions/140967/why-is-add-controller-pitch-input-not-responsing.html. If you cannot find the FPSprojectile in the list, use Projectile instead. Make sure to check "simulate physics" for the collision component in your BP_FPSProjectile.