About the course

Are you ready to elevate your Unity development skills and master the physics integration?

Join our expert-led course designed specifically for developers who want to create high-quality game physics. This course, led by Anthony Yakovlev - an Ex-Tech Lead Unity Technologies with over a decade of experience, will give you practical skills and insider knowledge to avoid common pitfalls and speed up your workflow.

Key benefits:

  • Hands-on coding sessions with real-world examples you can immediately apply in your projects.
  • Practical exercises and downloadable materials to strengthen your skills.
  • Solutions to common physics issues and performance optimization strategies.
  • Pre-recorded video lessons: learn at your own pace, anytime you like, and revisit the material as often as you need.

Course format

Six hour-long lectures to cover the popular topics and to address the common pitfalls. All lectures include some basic theory and insight, followed by a practical session/coding and conclusions with a few exercises where applicable, as well as downloadable materials (code + Unity projects).

Course program

Lecture #1. Introduction/overview
  • A casual excursion to Unity’s PhysX physics solution, overview
  • Games physics - use cases
    • Wild glitches, their origin and genesis
  • Exploring a classic demo: AngryBots
    • Gameplay
    • Physics and how it’s built using the Physics Debugger
  • Exploring another demo: Tanks!
    • Gameplay
    • Physics and how it’s built using the Physics Debugger
  • Hands-on time:
    • Collider
    • Rigidbody and Ragdolls
    • Collision and Trigger events
    • Queries
    • Cloth
    • Vehicles using WheelCollider
Lecture #2. Creating vehicles with the WheelCollider
  • Tutorial based on Anthony’s youtube video, we add dynamics to a free 3D model from the web
  • Examining a 3D model for potential issues
  • Preparing the model for simulation in Blender
    • Fixing up issues
    • Separating axles
    • Cutting axles
  • Adding a basic controller
  • Positioning the visual wheels
  • Tweaking springs and masses
  • Reading PhysX source for more inspiration
  • Some mathematics behind the scenes
    • The sprung mass model
    • The forces equations
    • Calculating the suspension forces
    • Calculating the tyre forces
    • Slip graphs
Lecture #3. Sensors and querying
  • Use cases, overview, motivation
  • Where to get all the information
    • Reading the PhysX docs
    • Reading the Unity Manual
  • Using a single hit query
    • Using the Physics Debugger for extra insights
    • Transform Sync
    • Layers and Layer masks
  • Multiple hit query
  • Non-alloc query
  • Extra tips and tricks for performance
  • Coding time - making and optimising a Ghosts demo
    • Set up & measure the baseline
    • Using batch queries
    • Preparing data for jobs
    • Job chaining
Lecture #4. Collision detection
  • Collision detection: approaches
  • Stages of the physics pipeline
  • Broadphase types: Sweep-and-Prune, Multi-box Pruning
  • Changing the broadphase type
  • Using the collision layer matrix
  • Using the layer overrides
  • Using the pairwise collision ignorance
  • Using triggers
  • Reading contact pairs with OnCollision events
  • Delayed contact points
  • Understanding contact offset
  • Reuse Collision instances
  • Demo time: a simple contact point viz
    • Naive approach - measure and baseline
    • Another approach - using contact buffers
    • Analysis
  • Using contact modification
Lecture #5. Mastering joints
  • Use cases, set up, motivation
  • Maximal coordinate joints in games
  • Reduced space joints in robotics
  • Maximal space vs reduced space - what to use
  • Notes on the direct solver
  • Using the FixedJoint
  • Mass ratios
  • Using the SpringJoint
  • Using the HingeJoint
  • Using the ConfigurableJoint
  • Using the ArticulationBody component - brief overview
Lecture #6. Troubleshooting
  • A collection of hints and practices for when things go south
  • Applying common sense
    • Looking at a three cases from the forums
  • Looking for frame-rate or simulation-rate dependent code
  • Reading logs (demo: attached a concave object to Rigidbody)
  • Using the visual debugger, recap (demo: ball falling through the torus’ hole)
  • Looking at desyncs between graphics and physics
    • Demo: interpolation
  • Using the builtin profiler, what is the most relevant information
  • Looking at the # physics simulations (“physics spiral of doom”)
  • Reading PhysX source for deeper insights
    • Exploring a huge sphere rolling on top of a dense terrain

About the author

Hello, I’m Anthony!
I’ve been working on designing, implementing and supporting Unity’s PhysX integration as a tech lead and consultant of Unity Technologies for over a decade

Besides my corporate work, I have also contributed to indie projects. One of my VR indie games made it into the UK’s top 500 (~2016) and was featured by Google on the Daydream platform (Underwater VR).

I am a seasoned speaker, regularly presenting at international and local conferences such as White Nights, GDC, Unite, DevGAMM, 4C and others.

Over the years, I have also become a mentor and educator, leading various university programs and teaching specialized game development courses to students.  In 2022, I mentored aspiring developers through Google’s GameUp Africa program, helping them master rapid prototyping for their game ideas.

Join me on this short course in the masterclass format to learn all the tips and tricks of using physics in your games, gain invaluable insights and pick up trends from the horse’s mouth.

Ready to take your Unity skills to the next level?

Enroll now and gain exclusive access to the best practices, tips, and tools from an industry expert. Don’t miss this opportunity to enhance your projects and stay ahead in the game development world.
COURSE ACCESS
€339
+VAT
1

Additional information

The course is conducted in English.ㅤ

If you have any questions or would like to customize the course and conduct it exclusively for your company, please get in touch with us at academy@wn.media. We will be happy to assist you!