Game Development and Programming
 

1 Introduction to Game Development

Introduction to the field of game development, game engines, platform development, and programming in Unreal Engine 4 (UE4) using C++. This module covers the basic principles of the game development pipeline, the typical development environment, primary fields that contribute to the development of modern games, and the core principles of game design for based on the development of modern game engines.

Module 1: Introduction to Game Development

2 Level Design: 3D Environment Design

Level design represents one of the most fundamental topics in game development and provides an excellent introduction to using editor-based game development engines. This module introduces the key concepts of level design and provides the resources (both guide and assets) required to begin building a custom level within the Unreal Engine. This provides a first step into using the engine and developing level building techniques that are commonly used in modern game development. Additionally, use of the engines editor also provides a good introduction to using the various tools that have been developed within the engine and how they are interconnected within the development environment.

Module 2: Introduction to Level Design

3 Introduction to Graphics and Game Design

This module provides an introduction to the high-level graphics concepts that are required to understand and use the Unreal Engine for game development. This includes the representations of three-dimensional objects, assets such as textures and materials, and other advanced topics that include lighting, shader development, animation, and graphics programming.

Module 3: Graphics and Game Design

4 Asset Design: Structure, Objects, Materials, and Content Creation

The development of modern 3D games requires an extensive of artistic assets to build levels, introduce characters, and produce an immersive gameplay environment. This module provides an overview of how to create custom assets within UE4 for textures, materials, and static meshes using popular and free 3D modeling software.

Module 4: Asset Design

5 Visual Programming with Blueprints

Most games are developed by people with vastly different backgrounds ranging from technical developers to visual effect artists and animators, however many developers are not expert programmers; therefore the Unreal Engine has developed an intuitive visual programming paradigm that allows artists and non-technical developers to easily understand gameplay logic, event scripting, and game mechanics by simply composing event-oriented diagrams called blueprints. Blueprints simply represent events and actions that can be programmed by non-technical developers by simply connecting event-based flow charts together to construct high-level scripts.

Module 5: Visual Programming with Blueprints

6 Blueprint Games

Blueprints provide non-technical developers with an extremely powerful tool for prototyping and implementing their ideas without extensive programming experience. While blueprints do not directly expose the complete power of the Unreal Engine, they provide a powerful alternative for developing games without writing any C++ code. This module introduces the ability to create complex gameplay mechanics using blueprints as the only scripting component of the game.

Module 6: Blueprint Game Development

7 UE4 Game Programming (C++)

The native programming language of the Unreal Engine 4 is C++ and developed with the automated support of Visual Studio. With the installation of the Unreal Engine, all of the C++ source code of the engine is provided as a tool for developers to completely modify the engine to fit their needs. Additionally, the underlying source code can be exposed to the blueprint interface to create customized blueprint modules that can then be used within the blueprint editor. This module provides an overview of the C++ programming in UE4, the creation of simple scripts for creating custom events, blueprint plugins, and custom game types.

Module 7: UE4 Game C++ Programming

8 Sound and Music Composition

Game development also spans other forms of multimedia design and music composition. While these disciplines require extensive practice and patience, they still make a large impact of the virtual environment and experience of the gameplay of a game. This module introduces how to introduce basic ambient sounds into existing levels, design key sound events, and provides a very basic introduction to composing music using an existing music composition software.

Module 8: Sound and Music Composition

9 UI Development and Cinematics

Modern games have further developed user interface development with sophisticated 3D heads-up-displays (HUDs) which combine traditional game information with complex 3D designs. Cinematics has also become an integral part of portraying game objectives and conveying story lines within most modern 3D games.

Module 9: UI Development and Cinematics

10 Dynamics and Game Physics

The integration of physical simulation within modern games has drastically increased over the last decade, spawning games that even use physics as the primary game mechanic for implementing the objectives of the game. This module introduces the main components that are required for creating constraint-based physics objects that can be used for both interaction and dynamic decoration within levels. The objective of this module is to introduce basic skeletal rigging (for physics objects), basic modeling of physics objects, and how to import them into UE4 as constrained systems (skeletal meshes with physics assets).

Module 10: Dynamics and Physics

11 Character Design

Character design plays a critical role in story telling and realism within modern game design, therefore this module provides an introduction to the entire character pipeline that is used by most artists. This includes the complete transformation from initial sketches to concept art to the modeling and detail work to complete characters. This module also provides an introduction to the two primary methods currently used for character animation: skeletal rigging with skinning and data-driven motion capture. Additionally this module will provide an overview of the new technologies that are being introduced into the character animation pipeline for simplifying complex tasks such as animation trees and animation blending. This module will also provide an introduction of how to use external modeling software to create pre-rendered animations for scripted and story-driven events.

Module 11: Character Design and Animation

12 Artificial Intelligence (AI)

Artificial Intelligence (AI) represents an important aspect of game design that is required for most games in some form. Depending on the technical requirements of the AI due to the complexity and style of the core game mechanics, AI programming can be a challenging endeavor. This field includes a broad spectrum of algorithms and strategies from simple min-max algorithms for tic-tac-toe to complex strategy-based AI opponents in team and strategy based games. This module provides a brief introduction to AI programming in UE4 aimed at implementing a simple task that can be achieved by a scripted AI controller.

Module 12: Artificial Intelligence

13 Gameplay Mechanics

This module provides examples and additional resources for several different gameplay mechanic projects. This includes additional guides on AI, how to setup a simple multi-level game structure with a main menu, simple gameplay mechanics, and various other features of the UE4 toolset not included within other modules such as landscape (terrain) editing.

Module 13: Gameplay Mechanics