Chapter 1, Making a C++ Project for a First-Person Shooter, is our starting point for the whole book and its corresponding UE4 project on GitHub. We'll start by installing the engine and building it in C++. Then we'll add the first-person shooter template Unreal supplies for us, go over building it in C++ as well, and then add a new player class and controls.
Chapter 2, Inventory and Weapons for the Player, adds some basics of gameplay and gets you comfortable with adding C++ classes and connecting them to blueprints in the editor. By the end of the chapter, the player has a fully functional inventory system, including picking up items and cycling through them with new controls.
Chapter 3, Blueprint Review and when to Use BP Scripting, is a section where we examine UE4's Blueprint scripting system and its advantages and disadvantages in some detail, including a practical implementation in our game's map.
Chapter 4, UI Necessities, Menus, HUD, and Load/Save, quickly accelerates into some deeper topics: after first getting our UI and HUD set up and hooked to our inventory, we'll deep dive into UE4's filesystem and other classes to implement a save-anywhere load/save system and hook that up via the UI as well.
Chapter 5, Adding Enemies!, covers how to import a new character and build and hook up its entire AI system to notice, animate to, and attack our player.
Chapter 6, Changing Levels, Streaming, and Retaining Data, explains that switching maps (levels) in UE4 or utilizing one of its streaming options is a must for all games. We'll take some time to get familiar with Unreal's options here and then move on to retaining data when changing maps. We'll adapt our load/save system to allow our player to persist inventory across levels while also retaining the state of each map as it was left.
Chapter 7, Getting Audio in Your Game, discusses how audio is an often-overlooked aspect of games that can make or break their immersion! After an overview of UE4's major audio systems, we'll dive into topics such as material-based impact sounds and environmental effects.
Chapter 8, Shader Editing and Optimization Tips, explains that materials and the shaders they create are arguably Unreal's most important system. The visuals possible in UE4 are nearly limitless, but you need to have an understanding of the limits and costs when using them. We'll go through some practical examples of creating new materials and profiling them to get familiar with how to optimize your shaders and adapt to different platforms.
Chapter 9, Adding an In-Game Cutscene with Sequencer, introduces the reader to Sequencer, the in-game cutscene tool that's mainly used and supported in UE4 now. After making an in-game scene with our player and enemy AI, we'll discuss some alternatives to Sequencer.
Chapter 10, Packaging the Game (PC, mobile), explains that no game is complete if it can't be put and run on its target platform! Here we'll go through some examples of packaging the game and installing it, and discuss some of the differences in UE4 between launching on a device and doing a standalone build.
Chapter 11, Volumetric Lightmaps, Fog, and Precomputing, explains that UE4 offers a ton of amazing graphics systems, but its lighting is well-known and respected in the industry as top-notch. This chapter explores some of the advanced lighting available and explains how to add it to our game. It also covers adding and modifying both atmospheric and volume fog.
Chapter 12, In-Scene Video and Visual Effects, explores UE4's Media Framework and some of the cool things it provides. Specifically, we'll take some video of the game's earlier in-game scene and play it in-game as a video file (MP4). We'll also explore Unreal's particle systems and physics particles, adding these to our projectile impacts.
Chapter 13, Virtual Reality and Augmented Reality in UE4, covers two of the newest major additions to Unreal's growing list of platforms: VR and AR. In this final chapter, we'll create two standalone projects (one for each) and modify and implement the unique features of each of them, including porting our projectiles from the main project into our AR project.