We may earn an affiliate commission when you visit our partners.
Course image
Penny de Byl and Penny Holistic3D

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.

Read more

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.

Enroll now

What's inside

Learning objectives

  • How to use bitwise operations to optimise processing and storage in games.
  • Everything there is to know about vector mathematics and how to navigate in 2d and 3d space.
  • The principles and practice behind collision detection with lines, line segments and ray casting.
  • The beauty of affine transformations and the fundamentals in transforming game objects.
  • What a quaternion is and how it is used to rotate game objects.
  • How to build a mathematics library in c# from scratch.

Syllabus

In this section students will be introduced to the course and some basic mathematics and trigonometry will be covered.

An overview of the content and purpose of the course by Penny.

Read more

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 section you will learn how to manipulate bits inside an integer for efficiency and memory usage reduction.

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.

Other Bitwise Operation Hacks
In this section students will examine the Cartesian plane and learn how to plot points and calculated distances.

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 section students will learn about vectors, how they are critical to games development and the fundamental mathematics operations associated with them.

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.

Derivation of Vector Angle Calculation

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 section students will learn to find the intersections between lines, line segments, rays and planes to detect collisions and create reflections.

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.

In this section students will learn about matrix multiplication and how it is used in moving game objects around.

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.

Quaternion Rotations
This section provides the final version of the maths library we've been building and some words from Penny.

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

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Strengthens an existing foundation for intermediate learners by building on prior knowledge and skills
Taught by Penny de Byl, who is recognized for her work in the field of game development and computer graphics
Develops professional skills in game development, including mathematics, programming, and problem-solving
Provides hands-on labs and interactive materials to reinforce learning and enhance understanding
Explicitly requires that students complete other courses first, which may be a barrier to entry

Save this course

Save Mathematics for Computer Games Development using Unity to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Mathematics for Computer Games Development using Unity with these activities:
Organize Course Materials
Taking the time to organize your course materials will improve your ability to find and review important information during and after the course.
Show steps
  • Create a system for organizing notes
  • File materials logically
  • Keep digital and physical materials organized
Review Trigonometry Concepts
Trigonometry underpins many calculations in game development, so refreshing these concepts will enhance your learning experience.
Browse courses on Trigonometry
Show steps
  • Review the basics of trigonometry
  • Practice solving trigonometry problems
Connect with Experienced Game Developers
Seeking guidance from experienced game developers can accelerate your learning and provide valuable insights.
Browse courses on Mentorship
Show steps
  • Identify game developers with relevant experience
  • Reach out and introduce yourself
Five other activities
Expand to see all activities and additional details
Show all eight activities
Read 'Mathematics for Game Programming' by David Stratton
This book provides a comprehensive overview of mathematical concepts and techniques used in game development.
View Melania on Amazon
Show steps
  • Read the book thoroughly
  • Take notes and highlight key concepts
  • Work through the practice exercises
Solve Vector Math Problems
Sharpen your vector mathematics skills to establish a solid foundation for more advanced course topics.
Browse courses on Vector Mathematics
Show steps
  • Work through vector math problems
  • Practice using vector operations
  • Solve problems involving vector geometry
Develop a Presentation on Bitwise Operations
Creating a presentation will help you solidify your understanding of bitwise operations and improve your communication skills.
Browse courses on Bitwise Operations
Show steps
  • Research bitwise operations and their applications
  • Organize your content into a logical flow
  • Use visuals and examples to illustrate the concepts
  • Practice presenting your material
Create a 2D math game
Craft a 2D game using 2D mathematics to develop skills and put theory into practice.
Browse courses on Game Development
Show steps
  • Choose a game concept that incorporates 2D mathematics
  • Break the game down into smaller components
  • Implement the core mechanics of your game
  • Test and refine your game
Learn 3D Collision Detection with Lines
Explore tutorials on 3D collision detection to deepen your understanding of game mechanics.
Browse courses on Collision Detection
Show steps
  • Find tutorials on 3D collision detection using lines
  • Study the theory behind line-based collision detection
  • Practice implementing line-based collision detection in your own projects

Career center

Learners who complete Mathematics for Computer Games Development using Unity will develop knowledge and skills that may be useful to these careers:
Game Developer
Game Developers use mathematics to create virtual worlds and experiences. The Mathematics for Computer Games Development using Unity course is designed to provide aspiring Game Developers with the mathematical foundation essential for success in this field. The course's comprehensive coverage of vector algebra, matrices, and transformations empowers Developers in building realistic and engaging game environments, defining object motion, and simulating physical interactions. Upon completion, learners are equipped to create captivating and immersive gaming experiences.
Mathematics Teacher
Mathematics Teachers work closely with students to develop mathematical skills and knowledge. Through concept application and problem solving, Mathematics Teachers help learners develop vital cognitive, critical thinking, and problem-solving skills. The Mathematics for Computer Games Development using Unity course can help develop a Mathematics Teacher's ability to teach these vital life skills. The course's extensive coverage of mathematical principles, from basic trigonometry to advanced linear algebra and matrix multiplication, can help Teachers create a solid and engaging curriculum, preparing students for the quantitative challenges of modern life.
Computer Graphics Artist
Computer Graphics Artists create visual content for various media, including games, movies, and simulations. The Mathematics for Computer Games Development using Unity course provides a solid foundation in mathematics that is essential for Computer Graphics Artists. The course's emphasis on vector algebra, matrices, and transformations empowers Artists to understand and manipulate 3D objects, create realistic lighting and shading effects, and contribute to the development of visually stunning digital content.
Systems Analyst
Systems Analysts use mathematics to model systems and processes. They use analytical and problem-solving skills to assess and improve the efficiency and effectiveness of systems. The Mathematics for Computer Games Development using Unity course can help Systems Analysts develop the mathematical modeling skills necessary for success. The course's emphasis on vectors, matrices, and transformations can aid analysts in understanding and representing complex systems, optimizing them for performance and efficiency.
Quantitative Analyst
Quantitative Analysts apply mathematical and statistical techniques to analyze data and make financial decisions. The Mathematics for Computer Games Development using Unity course can enhance the skills of Quantitative Analysts by providing a solid foundation in linear algebra and matrix manipulation. These mathematical tools are essential for modeling financial data, performing risk analysis, and making informed investment decisions.
Data Scientist
Data Scientists use statistics and machine learning to uncover insights from data. The Mathematics for Computer Games Development using Unity course provides a solid foundation in linear algebra and matrix operations, which are essential for data analysis and machine learning algorithms. Data Scientists can leverage the knowledge gained from this course to build predictive models, identify patterns in data, and gain valuable insights for various industries.
Software Engineer
Software Engineers apply mathematical principles to design, develop, and maintain computer software. The Mathematics for Computer Games Development using Unity course helps build a foundation in mathematics that is essential for Software Engineers. The course's coverage of linear algebra, matrices, and transformations provides a strong understanding of mathematical concepts used in computer graphics, physics simulations, and algorithm design, empowering Engineers to create efficient and robust software solutions.
Artificial Intelligence Engineer
Artificial Intelligence Engineers design and develop systems that can learn, reason, and make decisions. The Mathematics for Computer Games Development using Unity course provides a foundation in mathematics that is valuable for Artificial Intelligence Engineers. The course's coverage of linear algebra, matrices, and transformations helps Engineers understand and apply mathematical concepts to machine learning algorithms, neural networks, and other AI techniques, enabling them to create intelligent and autonomous systems.
Statistician
Statisticians use mathematical and statistical techniques to collect, analyze, and interpret data. The Mathematics for Computer Games Development using Unity course provides a foundation in linear algebra and matrix manipulation, which are essential for statistical models and analysis. Statisticians can leverage the knowledge gained from this course to build statistical models, analyze data, and make informed decisions based on data.
Robotics Engineer
Robotics Engineers design, build, and maintain robots. The Mathematics for Computer Games Development using Unity course provides a foundation in mathematics that is useful for Robotics Engineers. The course's coverage of linear algebra, matrices, and transformations helps Engineers understand and apply mathematical concepts to robot kinematics, dynamics, and control systems, enabling the development of efficient, agile, and autonomous robots.
Financial Analyst
Financial Analysts use mathematics and statistics to analyze financial data and make investment recommendations. The Mathematics for Computer Games Development using Unity course provides a foundation in linear algebra and matrix operations, which are essential for financial modeling and analysis. Financial Analysts can use the knowledge gained from this course to build financial models, evaluate investment opportunities, and make sound investment decisions.
Operations Research Analyst
Operations Research Analysts use mathematical and statistical techniques to optimize operations and decision-making. The Mathematics for Computer Games Development using Unity course provides a foundation in linear algebra and matrix manipulation, which are essential for operations research models. Analysts can leverage the knowledge gained from this course to build optimization models, analyze data, and make informed decisions to improve operational efficiency.
Biostatistician
Biostatisticians apply mathematical and statistical techniques to analyze biological and medical data. The Mathematics for Computer Games Development using Unity course provides a foundation in linear algebra and matrix manipulation, which are essential for biostatistical models and analysis. Biostatisticians can leverage the knowledge gained from this course to build statistical models, analyze medical data, and make informed decisions in the healthcare industry.
Actuary
Actuaries use mathematical and statistical techniques to assess risk and uncertainty. The Mathematics for Computer Games Development using Unity course provides a solid foundation in linear algebra and matrix manipulation, which are essential for actuarial models. Actuaries can leverage the knowledge gained from this course to develop risk assessment models, calculate insurance premiums, and make informed decisions in the insurance and finance industries.
Geostatistician
Geostatisticians use mathematical and statistical techniques to analyze spatial data. The Mathematics for Computer Games Development using Unity course provides a foundation in linear algebra and matrix manipulation, which are essential for geostatistical models and analysis. Geostatisticians can leverage the knowledge gained from this course to build statistical models, analyze spatial data, and make informed decisions in fields such as environmental science and natural resource management.

Reading list

We've selected 12 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Mathematics for Computer Games Development using Unity.
Will teach you the mathematics that is used in 3D game programming and computer graphics, such as linear algebra, calculus, and differential equations.
Will introduce you to the fundamentals of 3D mathematics and will help you to develop the skills you need to create 3D games and graphics.
Will provide you with a solid foundation in linear algebra, which is essential for understanding the mathematics used in computer games development.
Will introduce you to the artificial intelligence concepts that are used in game development, such as pathfinding, decision making, and learning.
Will introduce you to the calculus concepts that are used in computer graphics, such as derivatives, integrals, and differential equations.
Will teach you the physics concepts that are used in game development, such as gravity, motion, and collision detection.
Will teach you the design patterns that are used in game development, such as the model-view-controller pattern and the entity-component-system pattern.
Will introduce you to the architecture of game engines, such as the rendering system, the physics system, and the input system.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Mathematics for Computer Games Development using Unity.
The Beginner's Guide to Artificial Intelligence (Unity...
Most relevant
Game Design and Development 4: 3D Platformer
Most relevant
Game Design and Development 3: 3D Shooter
Most relevant
The Beginners Guide to 3D Web Game Development with...
Most relevant
The Ultimate Guide to Game Development with Unity...
Most relevant
Unity Game Development: Create 2D And 3D Games With C#
Most relevant
Full BabylonJS Game Dev (2D, 3D, Online with ColyseusJS)
Most relevant
Complete Houdini FX Bootcamp
Most relevant
Making Your First Game in Game Maker Studio 2
Most relevant
Our mission

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.

Affiliate disclosure

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.

© 2016 - 2024 OpenCourser