Did you know computer games use mathematics to perform every single task, from rendering to animation and physics to AI? Mathematics is everywhere. A fundamental understanding of mathematics is critical in every occupation and nowhere is it more important than in games development. It underpins all primary operations performed by a game engine. You can't even move a character across the screen without it. Keen to learn more and build up your knowledge in mathematics to improve your game development skills? Then this course is for you.
Did you know computer games use mathematics to perform every single task, from rendering to animation and physics to AI? Mathematics is everywhere. A fundamental understanding of mathematics is critical in every occupation and nowhere is it more important than in games development. It underpins all primary operations performed by a game engine. You can't even move a character across the screen without it. Keen to learn more and build up your knowledge in mathematics to improve your game development skills? Then this course is for you.
In this course you will build your own C# classes to work with the geometrical constructs of 2D and 3D space that will develop your understanding of positioning and moving game objects. In short you will build your own maths library to replicate some of Unity's Vector2, Vector3, Matrix4x4 and some Mathf methods. Throughout, we will be using the Unity Game Engine to help emphasise the mathematics concepts.
Join Dr Penny de Byl as she introduces game development mathematics using her internationally acclaimed holistic teaching style and expertise from over 25 years of teaching, research and work in games and computer graphics. Through-out the course you will follow along with hands-on workshops designed to teach you the vital mathematical techniques used in programming computer game mechanics and visuals.
During the course we will be building a game that not only uses the code we've written to move 2D and 3D objects around on the screen, but to play the game you will have to use your knowledge of points and vectors to solve puzzles that will reinforce your learning. You will also build numerous mini projects to apply mathematical concepts and see how they work in games environments.
Learn how to program and work with:
Bitwise Operations, Bit Packing and Bitboards
2D and 3D Space
Points
Vectors
Matrices
Mapping from one coordinate system to another
Positioning Objects
Navigation
Angles
Interpolation
Quaternions
What students are saying about this course:
Brilliant course. Might be the most helpful course I've found on Udemy so far. Penny is an amazing instructor. Even by the end of the first section learned super valuable information that I can apply to my games.
Early in the program but already learned enough to make the purchase price worthwhile.
As always, the professor delivers a great, clear course on a badly needed subject to learn. She is so knowledgeable and can impart her knowledge to her students. I recommend all her courses and her YouTube channel.
An overview of the content and purpose of the course by Penny.
H3D has a bustling online student community. Here's how to get involved.
How to contact us
Regularly asked questions you should check out before starting the course.
Hints on how to proceed through the course.
An article covering some basic trigonometry concepts you should be familiar with.
This quiz will test your understanding of basic trigonometry.
In this lecture we will revise binary code and begin looking at setting individual bit values.
This quiz will test your understanding of the content we've covered on bits and binary.
In this lecture we will discover how bit values in a a binary sequence can be used as flags and the operators that allow us to set them.
In this lecture we will complete the challenge from the previous lecture and discover how to turn bit settings off.
In this lecture we will examine how to match a bit sequence with a mask to check if one bit is set.
In this video I will present a solution to the challenge set at the end of the last lecture as well as discuss checking a bit mask for multiple bits being set.
In this lecture you will learn how to shift the order of bits in a sequence and how this can be used for sending data efficiently over a network.
This quiz will test your understanding of how bit shifting works.
In this lecture we will discover how to turn a single bit on and off while leaving others in tact and then examine a specific use of bit sequences in Unity.
In this lecture you'll be introduced to bit boards and learn how to store game board states as a binary sequence in an integer.
In this lecture we will begin work on creating a tiled game world that is represented by Bitboards.
In this lecture we continue working on the Bitboard game board representation and add some algorithms to work with its states.
In this lecture you will create a score calculating method and work out a score based on the location of player pieces in a Bitboard with tile pieces.
This quiz will test your understanding and skills in working with Bitboards.
In this lecture we will examine the nature of the space we use to plot points and position game objects.
In this lecture we will create a class with methods to use the game view as a graph plotting area and explore the creation of points.
In this lecture we will continue working with the Coords class to add the axis lines onto the screen and them finish up with a star sign challenge.
In this lecture we will extend the DrawGraph class to add gridlines.
In this lecture we will start working on a 2D game that will not only use your math skills to develop it but also test them when you play.
In this lecture we will add a UI system into the 2D math game to display positions of the tank and fuel.
This quiz will test your knowledge of points in 2D.
This lecture continues the building of the UI system and mechanics to add calculating distance part of the game challenge.
In this video you will begin to learn about one of the most fundamental geometrical and mathematics concepts in games; the vector.
This video continues the initial investigation of using vectors to relocate points by adding in scaling factors.
This quiz is designed to test your understanding of the basics of vectors.
In this video we will investigate how to move a game object from one location to another by calculating the vector between them.
This quiz will test your ability to perform calculations with points and vectors.
In this lecture vector normal form will be introduced.
This quiz will test your skills at calculating vector normals. (Please note that most of these values have been rounded up to 2 decimal places for readability)
In this lecture we introduce the dot product, learn how to calculate it and find out what it's uses are for determining the relative orientation of vectors.
This quiz will test your ability to calculate the dot product and comprehend the results.
In this lecture we will write the method to turn a vector from facing in one direction to another given an angle to turn by.
In this lecture we will examine how to determine which way to turn to face in a certain direction using the Cross Product of two vectors.
This quiz will test your ability to calculate the cross product and evaluate the answer.
In this video you will be given the challenge of writing a 2D LookAt method to add to the math class that's being developed.
In this lecture we will continue work on our 2D vector math game and add in the ability to set the angle of rotation via the UI.
This video provides the solutions for the problems posed at the end of the last lecture.
This quiz will test your skills at calculating angles and distances.
In this video you will be challenged to recreate the code of the Unity Rotate and Translate methods to create your own player controller for the tank.
We continue in part 2 of this lecture by examining how to transform vectors from the world space into the local space of a game object.
In this video we will take a look at how very similar, or in fact the same, all the operations we've been using on 2D points and vectors are in 3D space.
This quiz will test your understanding of working with points in 3D.
This quiz will test your ability to work with vectors in 3D space.
In this lecture we will explore the nature of 3D rotations and introduce Euler Angles.
In this lecture we introduce the parametric form for a line and discuss the differences between lines, line segments and rays.
In this lecture we complete writing a Line class to include in our math library and explore the use of linear interpolation.
This quiz will test your knowledge on lines, line segments and rays.
In this lecture we will explore the parametric form of planes and students will develop their own plane class.
This quiz will test your ability to navigate through points on a plane by the addition of vectors.
In this very short lecture we will quickly add another line constructor that will be used in later videos.
In this section we will examine the mathematics behind determining the intersection of two 2D lines and begin programming it into our Maths library.
In this lecture we will improve on the line intersection algorithm to handle the restrictions of parallel lines and line segments.
This quiz will test your knowledge on line intersection calculations.
In this video you will be challenged to make a 2D ball travel along one line until it hits another line.
In this lecture we will examine how to determine where a line hits a 3D plane.
In this video we will explore our investigation of line intersections and work on a reflection formulae to bounce a wall off a wall.
In this video we will extend line-line intersection and reflection to create a simulation of a 3D ball hitting a plane.
In this video we will take a look at the specifics of creating planes, rays and intersections in Unity using the game engine's own SDK.
In this lecture we will discuss how to more a game object on a plane and keep it inside a boundary.
In this video we will come up with a solution to blocking an object inside a plane with many bounding planes using Unity specific code.
This lecture will introduce you to the mathematical concept of matrices and explain what they are and how you can perform operations with them.
This quiz will test your skill at working with matrices.
In this lecture we will examine a new way of representing vectors and points that will assist with matrix multiplications to come.
In this lecture we will examine the matrix calculations required to achieve the transformations of translation, rotation and scaling.
In this video we will start putting together a matrix class to store and perform operations on 2 dimensional arrays.
In this lecture we will finish our work on the matrix class by adding multiplication and a few extra touches to the code.
In this lecture we will create a translation matrix and have it move points around in a 3D world.
In this lecture we will create the matrix for scaling and discover how scaling isn't the only thing this transformation achieves when used.
In this lecture we will examine the rotation matrices and build the code to perform rotations into the maths library.
In this lecture affine transformations will be discussed and lead us into a closer look an an object's transformation matrix.
In this lecture you will implement the shear and reflection matrix operations.
In this lecture we are introduced to Quaternions and examine why they are a better alternative to Euler Angles for rotation.
This quiz will test your understanding of the content we've covered on quaternions.
In this lecture you will implement the quaternion creation and use algorithms into the math library.
In this lecture we will test the new methods for getting the angle of rotation and rotation axis from a transformation matrix.
This article has the final version of the maths library code attached as a resources.
A brief summary of your journey.
This link provides further information on the courses you can look at taking based on your interests and skill level.
https://www.h3dlearn.com/blog/learn-order
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.