# Study-Unit Description

﻿
CODE IDG5631

TITLE Game Programming Fundamentals

UM LEVEL 05 - Postgraduate Modular Diploma or Degree Course

MQF LEVEL 7

ECTS CREDITS 5

DEPARTMENT Institute of Digital Games

DESCRIPTION This unit covers the basic modules of a game engine (game loop, rendering, physics, etc) and how to create a basic version of them and identify them in third-party game engines. The unit follows a hands on approach where each lecture is intertwined with classwork which will help the students to be more familiar with game programming and be able to create some of the basic modules of game engines. Finally, the unit showcases multiple different third-party game engines and links the previous learned knowledge towards them. This will allow students to become more confident on picking new third-party engines and creating games with them.

Study-Unit Aims:

- Identify the basic components of Game Engines;
- Be comfortable with linear algebra and other mathematical background needed for game programming;
- Provide a basic understanding of render techniques, cameras, collision detection, etc;
- Familiarize students with different third-party game engines that can be used to develop games and prototypes.

Learning Outcomes:

1. Knowledge & Understanding:

By the end of the study-unit the student will be able to:

- Explain the main usage of the different modules that constitutes a game engine (collision systems, camera systems, rendering pipeline, game loop, input systems, and physics simulation);
- Describe and analyze the different algorithms used in various modules (collision systems, camera systems, rendering pipeline, game loop, input systems, and physics simulation) of a game engine;
- Identify the basic modules provided by third-party game engines (Unity, Unreal, GameMaker, Bitsy, PuzzleScript, Pico-8, Godot, Twine, RenPy, and P5JS) and identify what is required to build a game in them;
- Use linear algebra to transform between different coordinate systems (screen coordinates and world coordinates).

2. Skills:

By the end of the study-unit the student will be able to:

- Implement the basic modules of game engines (collision systems, camera systems, rendering pipeline, game loop, input systems, and physics simulation);
- Evaluate different game engines (Unity, Unreal, Defold, GameMaker, Bitsy, PuzzleScript, Pico-8, Godot, Twine, RenPy, and P5JS) and understand how to select the most fitting one when developing a game;
- Develop game prototypes using third-party game engines (Unity, Unreal, GameMaker, Bitsy, PuzzleScript, Pico-8, Godot, Twine, RenPy, and P5JS).

Main Text/s and any supplementary readings:

- Madhav, "Game programming algorithms and techniques: a platform-agnostic approach", Pearson Education, 2014.
- Shiffman, "The Nature of Code", Self-Published, 2012.
- Thompson, "Collision Detection", https://www.jeffreythompson.org/collision-detection/, 2015.

Various online articles and textbook chapters.

ADDITIONAL NOTES Pre-Requisite Qualifications: Bachelor's in Engineering/CS or related fields; Object-oriented Programming

STUDY-UNIT TYPE Lecture, Tutorial and Project

METHOD OF ASSESSMENT
 Assessment Component/s Assessment Due Sept. Asst Session Weighting Classwork SEM1 No 30% Oral Examination (20 Minutes) SEM1 Yes 30% Project SEM1 Yes 40%

LECTURER/S Ahmed Abdelsamea Hassan Khalifa
Sandro Spina

The University makes every effort to ensure that the published Courses Plans, Programmes of Study and Study-Unit information are complete and up-to-date at the time of publication. The University reserves the right to make changes in case errors are detected after publication.
The availability of optional units may be subject to timetabling constraints.
Units not attracting a sufficient number of registrations may be withdrawn without notice.
It should be noted that all the information in the description above applies to study-units available during the academic year 2023/4. It may be subject to change in subsequent years.

https://www.um.edu.mt/course/studyunit