Game Development and Programming

1 CSCI-4920/5920 - Computer Game Design and Programming

Welcome to Computer Game Design and Programming! The objective of this class is to provide a practical example-based introduction to game design and programming using Unreal Engine 4 (UE4), Visual Studio, and various 3D modeling/animation software packages: 3ds Max, Maya, or Blender. The primary programming language for this course will be C++ based on the UE4 development environment. The overall course layout is based on the completion of several independent homework assignments aimed at developing game content within the Unreal engine, followed by an final independent game project.

This course focuses on the high-level development of games based on 3D modeling, animation, level design, AI, and C++ programming. Unreal Engine 4 has been selected as one of the primary modern game engines that provides a friendly and intuitive user interface (Unreal Editor) and has demonstrated widespread use throughout the games industry: List of UE4 Games. Using this game engine, this course provides a practical background in high-level game development based on the interdisciplinary fields of computer science, digital animation, modeling, story writing and composition, game theory, music, and human-computer interaction.

Course: CSCI-4920/5920
Course Type: Online
Instructor: Dr. Min Choi
Office: Lawernce St. Center LW-812
Office Hours: MW: 2:00[pm] - 3:30[pm]
Graphics Lab: Monday - Friday: 9:00[am] - 7:00[pm]

Figure 1: This course provides an introduction to high-level game design using the Unreal Engine. This allows for the rapid development of new game projects and facilitates high-level tools for animation, scripting, UI design, and physics. The Unreal Engine is now an open source game engine and free to download for students. The Unreal Engine includes all of the C++ source code, all of the intuitive design tools (UnrealEd), and numerous content packages for game development.

This course will use the Unreal Engine to develop games from a high-level perspective that includes level design, asset creation, visual programming, C++ scripting, physical interaction, and animation. Below is an overview list of the core concepts included within this course:

To see a detailed overview of the course, prerequisites, and requirements see the Course Syllabus

Required Experience: This course does not require any prior knowledge of 3ds max, Maya, or other modeling programs or of the Unreal Engine; however it will be assumed that students are proficient in C++ programming. The list below provides an overview of the basic knowledge required for this course:

Unreal builds on class-based C++ programming with several additional customized features integrated into the Unreal development environment, therefore it is critical to have existing C++ programming experience. The following list provides several other topics that are related to game development that will also help in game development:

Game development is a highly interdisciplinary field that generally requires several people performing individual tasks to compose a single large project. Since this course provides an overview of game development, each module looks at one of the primary positions within a modern game studio and provides a brief introduction to the role of the developer, the artistic and technical requirements, and an overview of how these components are integrated to build modern games.

2 Game Development Tools

The Unreal Engine is an open source C++ game engine that represents one of the industry leading development tools for modern game design. This engine can be freely downloaded by students and comes with all of the C++ source code, assets, and tools required for developing a wide variety of games.

The Unreal Engine has been selected for three primary reasons: (1) being openly available and implemented in C++, the engine is one of the most widely used in the industry (see the incomplete game list), (2) the high-level tools provided by the engine allow for the rapid development of new games (including templates), and (3) the engine is capable of providing the high quality visual effects and graphics see in modern games.

Game development also relies on several other programs that are required for developing the assets that are used within a game. These include static meshes (objects), materials (textures), sounds, and music. Therefore to provide an adequate introduction to the game development pipeline, several additional software packages are generally required. These may include 3D modeling programs (3ds Max), photo editing software (such as Photoshop or Gimp), animation software (Maya), and a primary programming IDE (Visual Studio).

Example usage and video tutorials of the primary tools in game development will be included as required practice for the modules within this course. Additionally, the Unreal Engine provides direct support for Visual Studio as the primary IDE for developing with the engine, therefore development in only facilitated on Windows (game content can be created on any platform but the Unreal Engine development with Visual Studio requires Windows).