IMGD 4000

UE4 Quickstart

Due date: March 22th, 11:59pm

The goal of this project is to get up to speed doing Unreal Engine 4 (UE4) development, including familiarizing with the editor, adding code (both Blueprints and C++), importing art assets, and setting up source control.

First, you will setup your UE4 development environment. Then, you will familiarize yourself with the UE4 editor through a brief tutorial. After that, work through a tutorial that has you make the beginnings of a first person shooter (FPS) game using UE4. Lastly, you will show your understandings of UE4 basics by extending the FPS tutorial with custom code, a "10% extension".

Doing the above will help better understand the UE4 game engine by developing a game from a game programmer's perspective, providing the foundational knowledge needed for building your own game from scratch in UE4.

You will work alone for this project. This will ensure you have the development skills needed for subsequent projects, even if your tasks when you make your game in a team are partitioned. While you can discuss the project with other students and even help each other debug code, but you must write all code yourself.

WARNING! A state-of-the-art game development tool like Unreal Engine is always being improved, which means there will often be differences, large and small, between the latest available official documentation (not to mention information you find in user forums) and the current release you are using (e.g., UE4.15). Navigating such issues is an unavoidable part of professional game development. Use the online class forum at InstructAssist to get help and share relevant information with your classmates, TA's and faculty.

Top | Setup | Editor | Programming | FPS | Extension | Submission | Grading


To setup your UE4 development environment, do the following steps. If using one of the machines in the IMGD the Zoo labs, steps #2 and #3 below are already done.

  1. Create an Epic Games account
  2. Download Unreal Engine Version 4.15 for Windows (to avoid compatibility problems, Windows is the only platform supported for this course)
  3. Install Microsoft Visual Studio 2015 Update 3
  4. Setup source control (git or svn)

About Blueprints

Visual scripting languages, such as Blueprints in UE4, are becoming a feature of many software development environments. This presents the question of when to use Blueprints and when to use C++? The answer is that it depends on what you are doing and takes some experience to develop good judgement.

However, don't start out by thinking that it is always better to use Blueprints. This can lead to slower development time and harder to understand implementations. In fact, using only C++ code would be fine, except for the fact that this assignment is an occasion to get some experience with Blueprints also.

Some further hints:

Editor Quick Start

Go through the Unreal Level Designer Quick Start Guide, which covers how to:

Programming Quick Start

Go through the Unreal Programming Quick Start Guide:

"This guide shows you how to create a new Unreal Engine project, add a new C++ class to it, compile the project, and add an instance of a new class to your level."

First Person Shooter Tutorial

Go through the First Person Shooter C++ Tutorial, which covers how to:

Note there has been a change in the signature of the OnHit method used in Section 3.4. The signature in UE4.15 is:

void OnHit (UPrimitiveComponent* HitComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit)
UE4 Hint: In Section 2.1, after Step 5 of Setting the Default Pawn Class, if you do not see the debug print line "We are using FPSCharacter.", try restarting the UE4 editor and then you should see the debug print line.

Visual Studio Hint: Enabling precompiled headers in Visual Studio will noticeably speed up compilation. However, please also read about some cautions to be aware of when using precompiled headers.

Extend FPS Tutorial Game

This means adding additional code (C++ or Blueprints) to extend the game functionality in some meaningful way by 10%. The specific extensions are up to you. Some hints for extending the FPS game are given below, but are only these suggestions---the actual extension is up to you. You will indicate what you have done with brief documentation when you turn in the assignment.

Note that "10%" is rather subjective. Do not concentrate on whether you have added 10%, just use this homework to learn as much as you can from the tutorials and documentation. It is very hard (although not impossible) to do less than 10% if you just spend some time experimenting.

If you are having trouble getting started with your "10%" modification, here is some advice:

  1. Save a copy of your game in case you "break" something and need start re-start your modifications fresh. An easy way to do this is to make a copy your UE4 project directory. Another is to use source control, commit your working version, and, if you break something, just delete your current version and check it out fresh.
  2. Revisit parts of the tutorial to refresh how the game is built (the first time through, you might have just been "plugging it in" without reflecting upon how it works).
  3. Think about basic features from games you know and see if any of those fit in with your understanding of coding in UE4.
  4. For technical unknowns, see if any of the resources provided for this class, or from a search through the Unreal Engine Documentation can help.

Some specific suggestions for extensions to the FPS tutorial:

Some of the above you may need to combine to get to 10%, depending upon the complexity of your implementation. This is admittedly vague, but the goal is for you do do enough to be competent in UE4.


Grading Guidelines
Tutorial 35% Doing the tutorials without any additional customization is worth about 1/2 the grade. While you will have learned a substantial amount about the UE4 game engine, you will not yet have demonstrated an in-depth understanding of the engine capabilities.
Customization 60% Extending or modifying a tutorial game with custom work is worth more than 1/2 the grade. Doing so will begin to flex your technical muscles and show competence using the Unreal Engine. This is essential in moving forward.
Documentation 5% Not to be overlooked is including the documentation provided, as well as having that documentation be clear, readable and pertinent to the assignment. This includes the README described above as well as having well-structured and commented code is typically part of the Documentation requirement, too. Getting in the habit of good documentation is important for large software projects, especially when done in teams (e.g., your game for this course).

Below is a general grading rubric:

100-90. The submission clearly exceeds requirements. The tutorial game works without problems. The custom extensions exhibit an unusually high degree of effort, thoughtfulness, technical ability and insight. Documentation is thorough and clear.

89-80. The submission meets requirements. The tutorial game works without significant problems. The custom extensions exhibit substantial effort, thoughtfulness, technical ability and/or insight. Documentation is adequate.

79-70. The submission barely meets requirements. The tutorial game may operate erratically. The custom extensions exhibit marginal effort, thoughtfulness, creativity and/or insight. Documentation is missing details needed to understand the contributions and/or to build the program.

69-60. The project fails to meet requirements in some places. The tutorial game may crash occasionally. The custom extensions are of minor scope, or exhibit perfunctory effort, thoughtfulness, technical ability and/or insight. Documentation is inadequate, missing key details needed to understand the contributions and/or to build the programs.

59-0. The project does not meet requirements. The tutorial game crashes consistently or does not compile. The custom extensions exhibit little or no evidence of effort, thoughtfulness, technical ability and/or insight. Documentation is woefully inadequate or missing.

Top | Setup | Editor | Programming | FPS | Extension | Submission | Grading

Return to the IMGD 4000 Home Page

Send all questions to the staff mailing list (imgd4000-staff at