# Mathematics for Game Developers

**Faculty: **Games

**Duration: **12 Weeks – Wednesdays 6pm – 9pm

**Delivery: **Online

**Levels: **Certificate

**Start Date:** 23rd February 2022

**Course Director:** Dr Ronan Mulhaire

**Fees:** €550

**Certification:** Pulse College Certificate

# COURSE CONTENT

In order to be a successful games developer or programmer, it is important to have some understanding of mathematics; it is necessary to have some knowledge of mathematical concepts, such as algebra, for example.

This programme does not present maths in the abstract, such as you may have encountered them in school. Rather, it is designed to give you the grounding in maths and programming that you will need to succeed as a games developer. Each week, core mathematical principles are introduced by our expert lectures, but are always related back to a specific aspect of programming or game design.

**Week 1**

*(1) Negative numbers, Absolute value, Exponents, Square roots:*

In the first part of the lecture, these main algebraic topics will be presented, along with the specific rules for their manipulations. Examples and exercises will be included.

*(2) Variables and Data types:
*In the second part of the lecture, the different types and definitions of variables in programming languages will be presented, as well as the manner by which they are manipulated.

**Week 2**

*(1) Decimals, Fractions, Percentages, Order of operations:
*In the first part of the lecture, the different definitions and uses of decimals, fractions and percentages will be presented, along with examples for each case. Finally, the order of operations will be stated.

*(2) Arrays*:

In the second part of the lecture, the definition and use of arrays will be demonstrated, along with examples in programming languages.

**Week 3**

*(1) Coordinates, Functions, Polynomials, Exponentials, Logarithms:*

In the first part of the lecture, the use of coordinates will be presented. Then, the definition of functions of one variable will follow, along with four main examples: the polynomial functions, the rational functions, the exponential function and the logarithmic function. Exercises for each case will be included.

*(2) Functions (in programming):*

In the second part of the lecture, the concept of functions and subroutines in the case of programming will be discussed. Examples of functions in programming languages will be presented.

*(3) Use of coordinates in game design:
*In part three, we will discuss the use of coordinates for motion and distance comparison in the context of game design.

**Week 4**

*(1) Lines and rays, Parallel and perpendicular lines, Segments:*

In the first part of the lecture, the concepts of lines, rays and linear segments will be introduced, followed by the definition of parallel and perpendicular lines and a number of examples.

*(2) Loops and Conditionals:*

In part two, the concepts of loops and of conditionals will be discussed. The use of loops and conditionals in programming will be demonstrated by means of examples.

**Week 5**

*(1) Angles, Measuring and drawing angles, Types of angles, Trigonometric functions, Triangle and trigonometric identities:*

In the first part of the lecture, the principle trigonometric concepts and rules will be presented, with emphasis placed on the types of angles, their measurement and uses. Following this, the main trigonometric functions (sin, cos, tan, cot) will be introduced and examples will be given. Finally, the main triangle and trigonometric identities will be examined.

*(2) Use of angles for vision, perspective and scaling in video games:*

In the second part of the lecture we will explore the use of angles in the context of video games, by reference to specific examples, such as the vision of game characters, the scaling of game landscapes, etc.

**Week 6**

*(1) Triangles, Rectangles, Polygons, etc.:*

In the first part of the lecture, we will extend our discussion of triangles to rectangles, polygons, etc. Thereafter, the discussion will progress to 3D shapes, such as pyramids and cubes.

*(2) The use of triangles and polygons in createing realistic models for objects and characters:
*In part two, the use of 2D and 3D polygons in the context of game design will be examined. You will be introduced to the creation of realistic models for objects and characters by the use of these geometric tools.

**Week 7**

*(1) Definition of 2D vectors, Operations with 2D vectors:*

In part one we will introduce 2D vectors, in both Cartesian and polar coordinates. The main definitions and operations for 2D vectors will be presented by means of examples and exercises.

*(2) 2D vectors in game design, and programming languages:*

In the second part of the lecture, the use of arrays in describing vectors in the context of programming will be discussed.

**Week 8**

*(1) Definition of 3D vectors, Operations with 3D vectors:
*In the first part of the lecture, our examination vectors will be extended to include 3D vectors. The main definitions and operations for 3D vectors will be demonstrated by means of examples and exercises.

*(2) Use of vectors for motion, velocity, force, etc in games:*

Thereafter, the physical concepts of velocity, momentum and force will be introduced so as to describe motion in three dimensions. Examples from game design where vectors are used to describe motion will be thoroughly discussed.

**Week 9**

*(1) Definition of matrices, Dimension and elements, Operations with matrices:*

In the first part of the lecture, matrices will be introduced and their distinct characteristics (dimensions and elements) will be discussed. Following this, the basic operations of matrices (summation, subtraction, multiplications) will be presented, along with examples and exercises.

(2) *Lists and arrays – more dimensions* (example application in artificial neural networks)

(3) *Matrix representation in programing* (simple calculations):

We will discuss the use of arrays in describing matrices in the context of programming.

**Week 10**

*(1) Determinants, Cofactors, Transpose, Inverse, Types of matrices:
*In the first part of the lecture, the distinct features and functions of matrices will be introduced, including determinants, transposes, inverses, etc. Examples for each will be presented. Furthermore, examples of different types of matrices will be demonstrated.

*(2) Use of scaling matrices, translation matrices, rotation matrices, etc. in games:*

In the second part of the lecture, the use of matrices in the context of games will be discussed by means of examples. The main types of scaling matrices (for perspective), translation matrices (for linear motion) and rotation matrices (for turns and twists) will be demonstrated.

(3) *Manipulations (expanding/contracting/replacing values) and more calculations of matrices in programming languages*

**Week 11**

*(1) Linear and quadratic equations, Linear systems:
*In the first part of the penultimate lecture in the series, methods for solving linear and quadratic equations will be discussed. Additionally, we will introduce methods required to solve linear systems of equations. Examples and exercises will, as always, be included.

*(2) Solving non-linear equations with a computer:
*In the second part of the lecture, the way to solve non-linear equations by means of algorithms will be introduced, along with examples and exercises.

**Week 12**

*(1) Motion of bodies, Rotation of bodies:
*In part one of our final lecture, the main physical concepts of motion of bodies will be explored in some detail, so that you will be able to use vector algebra to understand how a body moves and rotates.

*(2) Complex Games*

*(3) Further study / next steps*

#### Tutors

**DR LIFENG HAN
**

Dr Han holds a PhD in Computer Application (Natural Language Processing) from DCU. He also holds an MSc in Software Engineering from the University of Macau, and a BSc in Mathematics from the Hebei Normal University. Dr Han has taught in DCU and the University of Amsterdam, and has worked on a number of research teams in Ireland, China, the Netherlands and Hong Kong. He has held a number of scholarships, and his work has been widely published in peer reviewed journals and books.

**DR NIKOLAOS CHATZARAKIS**

Dr Chatzarakis holds a PhD in Political Economy from the Aristotle University of Thessaloniki, and is currently working on a second PhD, in Mathematical Cosmology, in Trinity College Dublin. He holds two Masters degrees – in Computational Physics and in Economics – from the Aristotle University of Thessaloniki, and was also awarded a BSc in Physics by that same institution. His work has been published in a number of peer-reviewed journals, including *Annals of Physics*, *Nuclear Physics, Structural Change and Economic Dynamics, *and the *European Physics Journal*. Dr Chatzarakis has presented at a number of international conferences in Greece, Spain, South Korea, Bulgaria and Slovakia, and has tutored in Trinity College Dublin.

#### WHO IS THIS COURSE FOR?

- School leavers hoping to study games development or computer science at third level, but who find the maths-intensive curricula of those courses daunting
- Individuals that are currently employed but are looking to retrain or upskill in programming, but find the maths component of programming to be a formidable barrier to them

#### Got a question?

## HOW TO APPLY

This course is a direct application course. Applications are currently taken through the Application Form below. Upon receiving your application form our Admissions Team will be in contact. No industry experience is required and applicants may be accepted without formal academic qualifications. If you wish to gain further insight into what this course has to offer, please don’t hesitate to contact us.

### Start Date:

February 23rd 2022

12 Week Course:

6pm – 9pm on Wednesdays

There is no interview application for this course but we would be delighted to invite you in for a private tour of our campus; to meet our course lecturers and gain further insight into what our course has to offer.

## Quote would go here

## FEES

€550*

*Full Payment Required to Confirm Place

**Please note: Fees are non-refundable

€550*

*Full Payment Required to Confirm Place

**Please note: Fees are non-refundable