getfromcode体系课

2D游戏物理引擎编程指南

为什么要自己写一个2D物理引擎 很多做2D游戏开发的人,长期依赖现成引擎里的物理模块,调参数全靠试,出了问题只能查文档或者换参数碰运气。比如角色卡墙、碰撞抖动、堆叠物体穿模,这些常见问题背后,本质都是对物理引擎的运行逻辑没有概念。这门课的核心价值,就是把物理引擎从一个黑盒工具,拆成可理解、可修改的代

单课价¥29新品 上架
会员价 ¥0开通会员,全站课程无限下载套餐详情
34 人关注 更新于 2026-10-15 永久有效
发货

网盘链接 · 支付成功后自动发货

保障

永久有效 · 链接失效免费补发

客服

每日 9:00-21:00 在线客服 联系客服

支付成功后自动发货,可在「我的订单」查看网盘链接;链接失效可联系客服免费补链。

正版保障 极速发货 售后无忧

为什么要自己写一个2D物理引擎

很多做2D游戏开发的人,长期依赖现成引擎里的物理模块,调参数全靠试,出了问题只能查文档或者换参数碰运气。比如角色卡墙、碰撞抖动、堆叠物体穿模,这些常见问题背后,本质都是对物理引擎的运行逻辑没有概念。这门课的核心价值,就是把物理引擎从一个黑盒工具,拆成可理解、可修改的代码模块,让你遇到问题时能定位到具体是积分器误差、碰撞检测精度还是响应算法的问题,而不是只能靠调参数蒙结果。

市面上讲物理的资料要么偏数学公式推导,看完还是写不出代码;要么只讲某个引擎的API用法,换个引擎就全忘。这门课走的是从原理到实现的路线,每讲一个概念就对应一段可运行的代码,从最基础的刚体表示开始,一步步堆出完整的物理模拟能力。你不需要背复杂的公式,只需要跟着代码把每一步的逻辑跑通,就能理解物理引擎里每个组件存在的意义,以及它们是怎么配合起来的。

这门课适合什么基础的开发者

首先你得有扎实的C++基础,至少能熟练写类、指针、容器和基础算法,不用现查语法。因为课程里所有的实现都是用C++写的,从数据结构到碰撞检测的循环逻辑,都是直接写代码演示,不会花时间补语言基础。如果你平时用C++做过小游戏或者小工具,理解起来会更顺,完全没接触过C++的话,建议先补完语言基础再来,不然会卡在语法细节上,跟不上物理逻辑的节奏。

其次你需要有一点高中物理的基础,知道力、速度、加速度这些基本概念,不用会微积分推导,课程里会把微分方程的求解转化成代码里的积分步骤,你只要能理解每一步计算的物理意义就行。如果你之前用过Box2D或者其他2D物理引擎,哪怕只是调过参数,学这门课的时候会更容易对应上自己之前遇到的问题,比如为什么要固定时间步长、为什么连续碰撞检测能防穿模,这些经验会帮你更快吸收内容。完全没接触过物理引擎也没关系,课程是从零开始搭的,每一步都有前置铺垫。

建议的学习顺序和重点模块

刚开始学的时候,不要跳着看高级主题,先把前三个模块啃透。第一个模块的物理引擎基础是整个课程的根基,尤其是刚体的表示方法,你要亲手写一遍刚体的数据结构,把位置、旋转、质量、转动惯量这些属性都理清楚,不然后面的动力学和碰撞检测都会看不懂。第二个模块的刚体动力学里,积分器是核心,你可以对比不同积分方法的效果,比如显式欧拉和半隐式欧拉的区别,自己改参数看物体运动的稳定性差异,这部分是物理模拟准不准的关键,一定要动手调代码验证。

第三个模块的碰撞检测是很多人觉得难的部分,尤其是分离轴定理,不要只看公式,要跟着代码一步步实现圆形和凸多边形的碰撞检测,自己画几个多边形测试边界情况,比如边对边碰撞、顶点对顶点碰撞,看检测结果对不对。碰撞响应部分的反弹和摩擦计算,要结合前面的动力学知识,理解冲量是怎么作用在刚体上的。后面的物理模拟和引擎构建模块,建议边学边把前面的代码整合起来,比如加上空间分区优化之后,对比一下碰撞检测的性能提升,这样你对整个引擎的架构会有更清晰的认识。高级主题的流体、粒子、软体可以放在最后,按需学习,不影响核心引擎的搭建。

学完之后能独立做什么

学完核心模块之后,你完全可以自己写出一个能用在2D游戏里的轻量物理引擎,支持刚体运动、圆形和凸多边形碰撞、重力摩擦弹性模拟,还有基本的约束关节。比如做平台跳跃游戏的时候,你可以自己实现角色的碰撞和移动逻辑,不用依赖第三方物理库,遇到卡墙、跳不高这些问题,能直接改物理层的代码解决,而不是在引擎参数里反复试。做顶视角射击游戏的话,也能自己实现子弹的碰撞、物体的击飞效果,完全控制物理表现。

更重要的是,你具备了读懂和修改现有物理引擎的能力。以后再用Box2D或者其他物理引擎的时候,你能看懂它的源码结构,知道每个参数对应的是哪部分算法,遇到性能瓶颈或者特殊需求,可以自己改源码适配,而不是被引擎的功能限制住。如果你想做更小众的游戏类型,比如有特殊物理规则的解谜游戏,或者需要自定义物理表现的独立游戏,自己掌握物理引擎的实现,就不用再受通用引擎的约束,可以完全按照自己的想法做物理效果。

资料怎么配合练习效果最好

不要只看不动手,每学完一个小节,就停下来把对应的代码自己写一遍,不要直接复制。比如学完刚体表示,就自己写一个RigidBody类,把属性和基础方法都实现;学完积分器,就写一个简单的窗口,让一个小球在重力作用下落,看运动效果对不对。你可以准备一个简单的2D渲染框架,比如用SDL或者SFML,每实现一个物理功能就渲染出来看效果,视觉反馈能帮你快速发现代码里的问题,比如碰撞检测写反了、冲量计算错了,一运行就能看出来。

学完整套课程之后,一定要做一个完整的小项目来巩固,比如做一个简单的堆叠游戏,或者一个带物理的平台跳跃demo,把所有学到的模块都串起来用。你可以故意设置一些边界情况,比如快速移动的物体、大量堆叠的方块,测试自己的物理引擎稳不稳定,然后针对性优化,比如加上空间分区提升性能,加上连续碰撞检测解决穿模问题。只有把所有知识点都用在一个完整项目里,你才能真正掌握物理引擎的构建思路,而不是只会零散的算法片段。

课程介绍

课程概述

本课程旨在指导开发者如何从头开始构建一个 2D 游戏物理引擎。课程将涵盖物理引擎的关键概念和技术,并提供动手实践,让学员可以应用所学知识。

课程目标

  • 了解 2D 游戏物理引擎的基本原理
  • 掌握刚体动力学和碰撞检测算法
  • 学习如何模拟重力、摩擦和弹性等物理效应
  • 能够构建一个可用于 2D 游戏的自定义物理引擎

课程大纲

模块 1:物理引擎基础

  • 牛顿运动定律
  • 动力学和运动学
  • 刚体表示

模块 2:刚体动力学

  • 线性和角速度
  • 力、扭矩和加速度
  • 积分器和微分方程

模块 3:碰撞检测

  • 凸多边形和圆形碰撞
  • 分离轴定理
  • 碰撞响应和反弹

模块 4:物理模拟

  • 时间步长和精度
  • 重力、摩擦和弹性模拟
  • 约束和关节

模块 5:构建物理引擎

  • 数据结构和算法设计
  • 空间分区和碰撞检测优化
  • 引擎集成和调试

模块 6:高级主题

  • 流体动力学
  • 粒子系统
  • 软体物理

课程适合人群

  • 对游戏物理学感兴趣的开发者
  • 具有 C++ 或类似编程语言经验者
  • 希望从头开始构建自己物理引擎的任何人

课程时长

大约 15-20 小时,根据个人的学习进度而异。

课程形式

  • 视频讲座
  • 代码演示
  • 练习和项目

课程完成后

完成本课程后,您将:

  • 对 2D 游戏物理引擎的设计和实现有一个深入的理解
  • 能够构建一个适用于您自己的 2D 游戏的自定义物理引擎
  • 了解物理引擎优化和故障排除的技术
  • 为进一步探索游戏物理学奠定坚实的基础

课程目录

/15-025-2D游戏物理引擎编程指南/
│├─001. Introduction & Learning Outcomes.srt 17KB
│├─001. Introduction & Learning Outcomes.vtt 14.4KB
│├─001. Introduction & Learning Outcomes.mp4 45.3MB
│├─002. How to Take this Course.mp4 4.3MB
│├─002. How to Take this Course.srt 3.9KB
│├─002. How to Take this Course.vtt 4.1KB
│├─003. What is Game Physics.mp4 27.2MB
│├─003. What is Game Physics.srt 6.3KB
│├─003. What is Game Physics.vtt 6.8KB
│├─004. A Quick Review of Vector Math.mp4 6.5MB
│├─004. A Quick Review of Vector Math.srt 2KB
│├─004. A Quick Review of Vector Math.vtt 2KB
│├─005. Vector & Scalar Quantities.srt 15.7KB
│├─005. Vector & Scalar Quantities.vtt 16.4KB
│├─005. Vector & Scalar Quantities.mp4 68.8MB
│├─006. Using the P5js Web Editor.mp4 14.2MB
│├─006. Using the P5js Web Editor.srt 9KB
│├─006. Using the P5js Web Editor.vtt 9.5KB
│├─007. Visualizing Errors in the Web Editor.mp4 2.2MB
│├─007. Visualizing Errors in the Web Editor.srt 2KB
│├─007. Visualizing Errors in the Web Editor.vtt 2KB
│├─008. Coding a Vec2 Class.srt 8.5KB
│├─008. Coding a Vec2 Class.vtt 8.9KB
│├─008. Coding a Vec2 Class.mp4 16.4MB
│├─009. Vector Magnitude.mp4 43.2MB
│├─009. Vector Magnitude.srt 11.8KB
│├─009. Vector Magnitude.vtt 12.6KB
│├─010. Vector Addition & Subtraction.srt 13.3KB
│├─010. Vector Addition & Subtraction.vtt 14.1KB
│├─010. Vector Addition & Subtraction.mp4 48.9MB
│├─011. Methods for Vector Addition & Subtraction.mp4 16.1MB
│├─011. Methods for Vector Addition & Subtraction.srt 6KB
│├─011. Methods for Vector Addition & Subtraction.vtt 6.1KB
│├─012. Vector Equality.mp4 13.1MB
│├─012. Vector Equality.srt 2.3KB
│├─012. Vector Equality.vtt 2.4KB
│├─013. Scaling Vectors.srt 5.8KB
│├─013. Scaling Vectors.vtt 6KB
│├─013. Scaling Vectors.mp4 14.5MB
│├─014. Static Methods.srt 5.1KB
│├─014. Static Methods.vtt 5.3KB
│├─014. Static Methods.mp4 8.2MB
│├─015. Applications of Vector Addition & Subtraction.srt 10.6KB
│├─015. Applications of Vector Addition & Subtraction.vtt 11.2KB
│├─015. Applications of Vector Addition & Subtraction.mp4 32.2MB
│├─016. Dot Product.srt 12.3KB
│├─016. Dot Product.vtt 12.9KB
│├─016. Dot Product.mp4 59MB
│├─017. Is the Dot Product Commutative.srt 4.7KB
│├─017. Is the Dot Product Commutative.vtt 5KB
│├─017. Is the Dot Product Commutative.mp4 16.2MB
│├─018. Cross Product.mp4 53.3MB
│├─018. Cross Product.srt 11.2KB
│├─018. Cross Product.vtt 12.4KB
│├─019. Coding the Cross Product Method.mp4 12.1MB
│├─019. Coding the Cross Product Method.srt 6.4KB
│├─019. Coding the Cross Product Method.vtt 6.7KB
│├─020. Exercise Perpendicular 2D Vector.srt 3.3KB
│├─020. Exercise Perpendicular 2D Vector.vtt 3.6KB
│├─020. Exercise Perpendicular 2D Vector.mp4 17.7MB
│├─021. Perpendicular 2D Vector.mp4 11.5MB
│├─021. Perpendicular 2D Vector.srt 2.1KB
│├─021. Perpendicular 2D Vector.vtt 2.3KB
│├─022. Exercise Vec3 Methods.mp4 8.2MB
│├─022. Exercise Vec3 Methods.srt 1.6KB
│├─022. Exercise Vec3 Methods.vtt 1.6KB
│├─023. Vec3 Methods.srt 7KB
│├─023. Vec3 Methods.vtt 7.2KB
│├─023. Vec3 Methods.mp4 11.1MB
│├─024. Vector Normalization.srt 7.9KB
│├─024. Vector Normalization.vtt 8.5KB
│├─024. Vector Normalization.mp4 35.6MB
│├─025. Coding the Normalization Method.mp4 7.5MB
│├─025. Coding the Normalization Method.srt 4.6KB
│├─025. Coding the Normalization Method.vtt 4.7KB
│├─026. Scaling, Translating, and Rotating Vectors.mp4 43.7MB
│├─026. Scaling, Translating, and Rotating Vectors.srt 10.3KB
│├─026. Scaling, Translating, and Rotating Vectors.vtt 10.9KB
│├─027. Quick Review of Sine & Cosine.mp4 40.8MB
│├─027. Quick Review of Sine & Cosine.srt 10.2KB
│├─027. Quick Review of Sine & Cosine.vtt 10.7KB
│├─028. Vector Rotation Proof (x-component).srt 20.4KB
│├─028. Vector Rotation Proof (x-component).vtt 21.4KB
│├─028. Vector Rotation Proof (x-component).mp4 97.9MB
│├─029. Vector Rotation Proof (y-component).mp4 36.2MB
│├─029. Vector Rotation Proof (y-component).srt 8.8KB
│├─029. Vector Rotation Proof (y-component).vtt 9KB
│├─030. Coding the Vec2 Rotate Method.mp4 23.9MB
│├─030. Coding the Vec2 Rotate Method.srt 11.5KB
│├─030. Coding the Vec2 Rotate Method.vtt 11.8KB
│├─031. Concluding our JavaScript Vector Class.srt 3.7KB
│├─031. Concluding our JavaScript Vector Class.vtt 4.1KB
│├─031. Concluding our JavaScript Vector Class.mp4 11.3MB
│├─032. Vec2 C++ Header File.srt 7KB
│├─032. Vec2 C++ Header File.vtt 7.7KB
│├─032. Vec2 C++ Header File.mp4 15.7MB
│├─033. A Quick Look at C++ Vec2 Syntax.mp4 42.6MB
│├─033. A Quick Look at C++ Vec2 Syntax.srt 19.9KB
│├─033. A Quick Look at C++ Vec2 Syntax.vtt 21.6KB
│├─034. Vec2 Operator Overloading.mp4 34MB
│├─034. Vec2 Operator Overloading.srt 11.1KB
│├─034. Vec2 Operator Overloading.vtt 11.8KB
│├─035. Technologies & Dependencies.srt 11.4KB
│├─035. Technologies & Dependencies.vtt 11.8KB
│├─035. Technologies & Dependencies.mp4 39.1MB
│├─036. Folder Structure.srt 16.9KB
│├─036. Folder Structure.vtt 17.5KB
│├─036. Folder Structure.mp4 67.5MB
│├─037. Initial Project Files.srt 30.7KB
│├─037. Initial Project Files.vtt 32.3KB
│├─037. Initial Project Files.mp4 44.5MB
│├─038. Compiling using GCC & Linux.mp4 19.5MB
│├─038. Compiling using GCC & Linux.srt 9.6KB
│├─038. Compiling using GCC & Linux.vtt 9.9KB
│├─039. Makefile.srt 7.6KB
│├─039. Makefile.vtt 7.7KB
│├─039. Makefile.mp4 9.3MB
│├─040. Configuring Visual Studio on Windows.srt 18.3KB
│├─040. Configuring Visual Studio on Windows.vtt 18.5KB
│├─040. Configuring Visual Studio on Windows.mp4 34MB
│├─041. Introduction to Particle Physics.mp4 64.2MB
│├─041. Introduction to Particle Physics.srt 14KB
│├─041. Introduction to Particle Physics.vtt 15.3KB
│├─042. Particle Class.mp4 23.6MB
│├─042. Particle Class.srt 12.1KB
│├─042. Particle Class.vtt 12.7KB
│├─043. Particle Velocity.srt 6.9KB
│├─043. Particle Velocity.vtt 7.4KB
│├─043. Particle Velocity.mp4 14.4MB
│├─044. Using the + Operator to Add Vectors.mp4 5.8MB
│├─044. Using the + Operator to Add Vectors.srt 2.3KB
│├─044. Using the + Operator to Add Vectors.vtt 2.4KB
│├─045. Controlling our Framerate.srt 16.1KB
│├─045. Controlling our Framerate.vtt 17.4KB
│├─045. Controlling our Framerate.mp4 56.6MB
│├─046. Framerate Independent Movement.srt 14.3KB
│├─046. Framerate Independent Movement.vtt 15.3KB
│├─046. Framerate Independent Movement.mp4 50.1MB
│├─047. Clamping Invalid DeltaTime Values.mp4 6.6MB
│├─047. Clamping Invalid DeltaTime Values.srt 3.6KB
│├─047. Clamping Invalid DeltaTime Values.vtt 3.8KB
│├─048. Moving in a Constant Velocity.srt 8.1KB
│├─048. Moving in a Constant Velocity.vtt 8.5KB
│├─048. Moving in a Constant Velocity.mp4 32.5MB
│├─049. Changing the Particle’s Velocity.srt 14.2KB
│├─049. Changing the Particle’s Velocity.vtt 15.1KB
│├─049. Changing the Particle’s Velocity.mp4 35.1MB
│├─050. Keeping the Particle Inside the Window.mp4 25.6MB
│├─050. Keeping the Particle Inside the Window.srt 10.6KB
│├─050. Keeping the Particle Inside the Window.vtt 11.3KB
│├─051. Constant Acceleration.srt 7.1KB
│├─051. Constant Acceleration.vtt 7.6KB
│├─051. Constant Acceleration.mp4 19.1MB
│├─052. Discrete vs. Continuous.srt 17.5KB
│├─052. Discrete vs. Continuous.vtt 18.8KB
│├─052. Discrete vs. Continuous.mp4 68MB
│├─053. Integration & Movement Simulation.srt 20.5KB
│├─053. Integration & Movement Simulation.vtt 22.5KB
│├─053. Integration & Movement Simulation.mp4 79.5MB
│├─054. Different Integration Methods.srt 13.4KB
│├─054. Different Integration Methods.vtt 14.5KB
│├─054. Different Integration Methods.mp4 49MB
│├─055. Particle Integrate Function.mp4 8.5MB
│├─055. Particle Integrate Function.srt 4.4KB
│├─055. Particle Integrate Function.vtt 4.8KB
│├─056. Applying Forces to Particles.mp4 67.9MB
│├─056. Applying Forces to Particles.srt 13.5KB
│├─056. Applying Forces to Particles.vtt 15.1KB
│├─057. Function to Add Force.mp4 18.5MB
│├─057. Function to Add Force.srt 9.4KB
│├─057. Function to Add Force.vtt 10.2KB
│├─058. Particles with Different Mass.mp4 26MB
│├─058. Particles with Different Mass.srt 18.2KB
│├─058. Particles with Different Mass.vtt 19KB
│├─059. The Weight Force.srt 10.1KB
│├─059. The Weight Force.vtt 11.2KB
│├─059. The Weight Force.mp4 38.2MB
│├─060. Inverse of the Mass.mp4 8MB
│├─060. Inverse of the Mass.srt 5.3KB
│├─060. Inverse of the Mass.vtt 5.8KB
│├─061. Applying Forces with the Keyboard.mp4 10.5MB
│├─061. Applying Forces with the Keyboard.srt 7.3KB
│├─061. Applying Forces with the Keyboard.vtt 7.7KB
│├─062. Drag Force.srt 20KB
│├─062. Drag Force.vtt 22KB
│├─062. Drag Force.mp4 77.8MB
│├─063. Drag Force Function.mp4 28.4MB
│├─063. Drag Force Function.srt 17.1KB
│├─063. Drag Force Function.vtt 17.9KB
│├─064. Handling Mouse Clicks with SDL.mp4 8.9MB
│├─064. Handling Mouse Clicks with SDL.srt 6.1KB
│├─064. Handling Mouse Clicks with SDL.vtt 6.4KB
│├─065. Unexpected Drag Behavior.srt 3KB
│├─065. Unexpected Drag Behavior.vtt 3.2KB
│├─065. Unexpected Drag Behavior.mp4 4.3MB
│├─066. Friction Force.srt 11.2KB
│├─066. Friction Force.vtt 12.5KB
│├─066. Friction Force.mp4 43.6MB
│├─067. Friction Force Function.srt 10.7KB
│├─067. Friction Force Function.vtt 11.4KB
│├─067. Friction Force Function.mp4 17.9MB
│├─068. Gravitational Attraction Force.mp4 68.5MB
│├─068. Gravitational Attraction Force.srt 14.4KB
│├─068. Gravitational Attraction Force.vtt 16.2KB
│├─069. Gravitational Attraction Force Function.srt 19.2KB
│├─069. Gravitational Attraction Force Function.vtt 20.3KB
│├─069. Gravitational Attraction Force Function.mp4 35.1MB
│├─070. Spring Force.srt 18.9KB
│├─070. Spring Force.vtt 20.6KB
│├─070. Spring Force.mp4 77.2MB
│├─071. Spring Force Function.srt 22.4KB
│├─071. Spring Force Function.vtt 23.7KB
│├─071. Spring Force Function.mp4 39.8MB
│├─072. Exercise Spring Forces.srt 10.9KB
│├─072. Exercise Spring Forces.vtt 12.3KB
│├─072. Exercise Spring Forces.mp4 33.2MB
│├─073. Multiple Particles Chain.mp4 37MB
│├─073. Multiple Particles Chain.srt 18.6KB
│├─073. Multiple Particles Chain.vtt 19.9KB
│├─074. Multiple Particles Soft body.mp4 28MB
│├─074. Multiple Particles Soft body.srt 10.6KB
│├─074. Multiple Particles Soft body.vtt 11.2KB
│├─075. Soft Bodies & Verlet Integration.mp4 46.7MB
│├─075. Soft Bodies & Verlet Integration.srt 9.6KB
│├─075. Soft Bodies & Verlet Integration.vtt 10.9KB
│├─076. Rigid-Bodies.srt 18.8KB
│├─076. Rigid-Bodies.vtt 20KB
│├─076. Rigid-Bodies.mp4 43.7MB
│├─077. Shapes.srt 11KB
│├─077. Shapes.vtt 11.5KB
│├─077. Shapes.mp4 33.5MB
│├─078. Shape Class.mp4 13.4MB
│├─078. Shape Class.srt 8.7KB
│├─078. Shape Class.vtt 9KB
│├─079. Shape Class Implementation.srt 19.9KB
│├─079. Shape Class Implementation.vtt 20.6KB
│├─079. Shape Class Implementation.mp4 35.8MB
│├─080. Circle Shape.srt 9.9KB
│├─080. Circle Shape.vtt 10.5KB
│├─080. Circle Shape.mp4 24.9MB
│├─081. Angular Velocity & Angular Acceleration.mp4 47.4MB
│├─081. Angular Velocity & Angular Acceleration.srt 13.5KB
│├─081. Angular Velocity & Angular Acceleration.vtt 15KB
│├─082. Torque & Moment of Inertia.mp4 79.9MB
│├─082. Torque & Moment of Inertia.srt 23.2KB
│├─082. Torque & Moment of Inertia.vtt 25.6KB
│├─083. Circle Shape Angular Motion.mp4 44.6MB
│├─083. Circle Shape Angular Motion.srt 22.7KB
│├─083. Circle Shape Angular Motion.vtt 24.4KB
│├─084. Box Vertices.srt 19.9KB
│├─084. Box Vertices.vtt 20.8KB
│├─084. Box Vertices.mp4 53.9MB
│├─085. Local Space vs. World Space.mp4 45.7MB
│├─085. Local Space vs. World Space.srt 19.4KB
│├─085. Local Space vs. World Space.vtt 20.5KB
│├─086. Body Update Function.srt 5.2KB
│├─086. Body Update Function.vtt 5.3KB
│├─086. Body Update Function.mp4 9.5MB
│├─087. Why Not a Shape Draw Function.mp4 15.5MB
│├─087. Why Not a Shape Draw Function.srt 3.4KB
│├─087. Why Not a Shape Draw Function.vtt 3.4KB
│├─088. No Draw Method in the Shape Class.mp4 11.8MB
│├─088. No Draw Method in the Shape Class.srt 2.4KB
│├─088. No Draw Method in the Shape Class.vtt 2.6KB
│├─089. Circle-Circle Collision Detection.mp4 51.3MB
│├─089. Circle-Circle Collision Detection.srt 13.2KB
│├─089. Circle-Circle Collision Detection.vtt 14.2KB
│├─090. Circle-Circle Collision Class.mp4 32.6MB
│├─090. Circle-Circle Collision Class.srt 12.4KB
│├─090. Circle-Circle Collision Class.vtt 13.5KB
│├─091. Circle-Circle Collision Implementation.mp4 21.6MB
│├─091. Circle-Circle Collision Implementation.srt 10.8KB
│├─091. Circle-Circle Collision Implementation.vtt 11.3KB
│├─092. Collision Contact Information.srt 12.6KB
│├─092. Collision Contact Information.vtt 14.1KB
│├─092. Collision Contact Information.mp4 48.1MB
│├─093. Collision Information Code.mp4 63.2MB
│├─093. Collision Information Code.srt 33.9KB
│├─093. Collision Information Code.vtt 36.4KB
│├─094. Broad Phase & Narrow Phase.srt 15.2KB
│├─094. Broad Phase & Narrow Phase.vtt 16.3KB
│├─094. Broad Phase & Narrow Phase.mp4 61.3MB
│├─095. The Projection Method.mp4 64.4MB
│├─095. The Projection Method.srt 16.6KB
│├─095. The Projection Method.vtt 18.9KB
│├─096. Objects with Infinite Mass.mp4 30MB
│├─096. Objects with Infinite Mass.srt 16.7KB
│├─096. Objects with Infinite Mass.vtt 17.9KB
│├─097. Impulse Method & Momentum.srt 14.2KB
│├─097. Impulse Method & Momentum.vtt 15.5KB
│├─097. Impulse Method & Momentum.mp4 44.7MB
│├─098. Impulse.srt 13.4KB
│├─098. Impulse.vtt 15KB
│├─098. Impulse.mp4 47.1MB
│├─099. Deriving the Linear Impulse Formula.srt 26.3KB
│├─099. Deriving the Linear Impulse Formula.vtt 28.9KB
│├─099. Deriving the Linear Impulse Formula.mp4 118MB
│├─100. Simplifying the Impulse Method Formula.mp4 61.6MB
│├─100. Simplifying the Impulse Method Formula.srt 12.6KB
│├─100. Simplifying the Impulse Method Formula.vtt 13.5KB
│├─101. Coding the Linear Impulse Method.srt 16.7KB
│├─101. Coding the Linear Impulse Method.vtt 17.9KB
│├─101. Coding the Linear Impulse Method.mp4 34.3MB
│├─102. Is Linear Collision Response Enough.srt 9.2KB
│├─102. Is Linear Collision Response Enough.vtt 9.8KB
│├─102. Is Linear Collision Response Enough.mp4 31.1MB
│├─103. AABB Collision Detection.srt 15.9KB
│├─103. AABB Collision Detection.vtt 17.1KB
│├─103. AABB Collision Detection.mp4 57.8MB
│├─104. SAT Separating Axis Theorem.mp4 85.9MB
│├─104. SAT Separating Axis Theorem.srt 27.9KB
│├─104. SAT Separating Axis Theorem.vtt 30KB
│├─105. Finding Minimum Separation with SAT.srt 16.8KB
│├─105. Finding Minimum Separation with SAT.vtt 18.3KB
│├─105. Finding Minimum Separation with SAT.mp4 63.2MB
│├─106. Polygon-Polygon Collision Code.mp4 32MB
│├─106. Polygon-Polygon Collision Code.srt 14.8KB
│├─106. Polygon-Polygon Collision Code.vtt 15.4KB
│├─107. Code to Find SAT Minimum Separation.mp4 61.7MB
│├─107. Code to Find SAT Minimum Separation.srt 29KB
│├─107. Code to Find SAT Minimum Separation.vtt 31.3KB
│├─108. Refactoring the SAT Separation Function.mp4 16.3MB
│├─108. Refactoring the SAT Separation Function.srt 8.7KB
│├─108. Refactoring the SAT Separation Function.vtt 9.1KB
│├─109. Finding Extra Collision Information with SAT.mp4 28.1MB
│├─109. Finding Extra Collision Information with SAT.srt 16.7KB
│├─109. Finding Extra Collision Information with SAT.vtt 18.6KB
│├─110. Polygon-Polygon Collision Information.mp4 30.7MB
│├─110. Polygon-Polygon Collision Information.srt 17KB
│├─110. Polygon-Polygon Collision Information.vtt 18.6KB
│├─111. Linear & Angular Velocity At Point.srt 15.9KB
│├─111. Linear & Angular Velocity At Point.vtt 17.6KB
│├─111. Linear & Angular Velocity At Point.mp4 61.1MB
│├─112. Post-Collision Velocity At Point.mp4 71.9MB
│├─112. Post-Collision Velocity At Point.srt 15.5KB
│├─112. Post-Collision Velocity At Point.vtt 17.5KB
│├─113. Computing Linear & Angular Impulse.mp4 56.4MB
│├─113. Computing Linear & Angular Impulse.srt 14KB
│├─113. Computing Linear & Angular Impulse.vtt 15.6KB
│├─114. Collision Distance Vectors Ra-Rb.mp4 39.5MB
│├─114. Collision Distance Vectors Ra-Rb.srt 18.7KB
│├─114. Collision Distance Vectors Ra-Rb.vtt 21KB
│├─115. 2D Cross Product Simplification.mp4 33.8MB
│├─115. 2D Cross Product Simplification.srt 19.2KB
│├─115. 2D Cross Product Simplification.vtt 20.9KB
│├─116. Coding the Impulse Along Normal.srt 19.6KB
│├─116. Coding the Impulse Along Normal.vtt 21.1KB
│├─116. Coding the Impulse Along Normal.mp4 32MB
│├─117. Exercise Impulse Along Tangent.mp4 50.1MB
│├─117. Exercise Impulse Along Tangent.srt 16KB
│├─117. Exercise Impulse Along Tangent.vtt 17.4KB
│├─118. Friction Impulse Along Tangent.mp4 29.6MB
│├─118. Friction Impulse Along Tangent.srt 13.8KB
│├─118. Friction Impulse Along Tangent.vtt 14.8KB
│├─119. Removing Window Boundaries Check.mp4 12.1MB
│├─119. Removing Window Boundaries Check.srt 5.9KB
│├─119. Removing Window Boundaries Check.vtt 6.2KB
│├─120. Circle-Polygon Collision Detection.mp4 30.5MB
│├─120. Circle-Polygon Collision Detection.srt 14.4KB
│├─120. Circle-Polygon Collision Detection.vtt 15.3KB
│├─121. Finding Polygon’s Nearest Edge with Circle.mp4 13.6MB
│├─121. Finding Polygon’s Nearest Edge with Circle.srt 9.4KB
│├─121. Finding Polygon’s Nearest Edge with Circle.vtt 10KB
│├─122. Exercise Circle-Polygon Edge Regions.srt 6.8KB
│├─122. Exercise Circle-Polygon Edge Regions.vtt 7.5KB
│├─122. Exercise Circle-Polygon Edge Regions.mp4 18.7MB
│├─123. Circle-Polygon Collision Information.mp4 57.5MB
│├─123. Circle-Polygon Collision Information.srt 31.9KB
│├─123. Circle-Polygon Collision Information.vtt 35.1KB
│├─124. Circle-Polygon Collision Resolution.srt 10.9KB
│├─124. Circle-Polygon Collision Resolution.vtt 11.3KB
│├─124. Circle-Polygon Collision Resolution.mp4 23.8MB
│├─125. Exercise Polygons with Multiple Vertices.srt 21.9KB
│├─125. Exercise Polygons with Multiple Vertices.vtt 22.5KB
│├─125. Exercise Polygons with Multiple Vertices.mp4 49.7MB
│├─126. Polygon with Multiple Vertices.mp4 13.8MB
│├─126. Polygon with Multiple Vertices.srt 6.3KB
│├─126. Polygon with Multiple Vertices.vtt 6.6KB
│├─127. Loading SDL Textures.srt 13.1KB
│├─127. Loading SDL Textures.vtt 13.7KB
│├─127. Loading SDL Textures.mp4 30.9MB
│├─128. Rendering Circle Texture.srt 11.8KB
│├─128. Rendering Circle Texture.vtt 12.1KB
│├─128. Rendering Circle Texture.mp4 23.8MB
│├─129. World Class.srt 19.1KB
│├─129. World Class.vtt 19.9KB
│├─129. World Class.mp4 32.3MB
│├─130. Implementing World Functions.srt 22.3KB
│├─130. Implementing World Functions.vtt 23.1KB
│├─130. Implementing World Functions.mp4 43.8MB
│├─131. Refactoring Function to Update Vertices.mp4 21.5MB
│├─131. Refactoring Function to Update Vertices.srt 10KB
│├─131. Refactoring Function to Update Vertices.vtt 10.4KB
│├─132. Local Solvers vs. Global Solvers.srt 12.1KB
│├─132. Local Solvers vs. Global Solvers.vtt 13KB
│├─132. Local Solvers vs. Global Solvers.mp4 37.7MB
│├─133. A Naive Iterative Positional Correction.srt 14.6KB
│├─133. A Naive Iterative Positional Correction.vtt 15.7KB
│├─133. A Naive Iterative Positional Correction.mp4 58MB
│├─134. Constrained Rigid-Body Physics.mp4 87.4MB
│├─134. Constrained Rigid-Body Physics.srt 25.6KB
│├─134. Constrained Rigid-Body Physics.vtt 28.2KB
│├─135. Position vs. Velocity Constraints.mp4 71.8MB
│├─135. Position vs. Velocity Constraints.srt 19.3KB
│├─135. Position vs. Velocity Constraints.vtt 21KB
│├─136. Example Velocity Constraint & Bias Factor.mp4 26MB
│├─136. Example Velocity Constraint & Bias Factor.srt 13.6KB
│├─136. Example Velocity Constraint & Bias Factor.vtt 14.6KB
│├─137. Example Distance Constraint & Bias Factor.mp4 17.3MB
│├─137. Example Distance Constraint & Bias Factor.srt 10.7KB
│├─137. Example Distance Constraint & Bias Factor.vtt 11.5KB
│├─138. Constraint Forces & Constrained Movement.srt 17.6KB
│├─138. Constraint Forces & Constrained Movement.vtt 19.4KB
│├─138. Constraint Forces & Constrained Movement.mp4 72.1MB
│├─139. Force-Based vs. Impulse-Based Constraints.mp4 85.6MB
│├─139. Force-Based vs. Impulse-Based Constraints.srt 18.2KB
│├─139. Force-Based vs. Impulse-Based Constraints.vtt 20.2KB
│├─140. The Constraint Class.srt 9KB
│├─140. The Constraint Class.vtt 9.5KB
│├─140. The Constraint Class.mp4 13.2MB
│├─141. VecN Class.srt 17.5KB
│├─141. VecN Class.vtt 18.3KB
│├─141. VecN Class.mp4 36.6MB
│├─142. Implementing VecN Functions.srt 11.1KB
│├─142. Implementing VecN Functions.vtt 11.5KB
│├─142. Implementing VecN Functions.mp4 17.7MB
│├─143. VecN Operator Overloading.srt 9.2KB
│├─143. VecN Operator Overloading.vtt 9.8KB
│├─143. VecN Operator Overloading.mp4 20MB
│├─144. Matrices.srt 22.8KB
│├─144. Matrices.vtt 24.6KB
│├─144. Matrices.mp4 40MB
│├─145. MatMN Class.srt 8KB
│├─145. MatMN Class.vtt 8.5KB
│├─145. MatMN Class.mp4 19.1MB
│├─146. Matrix Transpose.srt 7KB
│├─146. Matrix Transpose.vtt 7.8KB
│├─146. Matrix Transpose.mp4 21.6MB
│├─147. Matrix Multiplication.srt 14.4KB
│├─147. Matrix Multiplication.vtt 16.2KB
│├─147. Matrix Multiplication.mp4 52MB
│├─148. Matrix Multiplication Function.srt 6KB
│├─148. Matrix Multiplication Function.vtt 6.7KB
│├─148. Matrix Multiplication Function.mp4 9.8MB
│├─149. Seeing Beyond the Matrix.mp4 21.3MB
│├─149. Seeing Beyond the Matrix.srt 4.7KB
│├─149. Seeing Beyond the Matrix.vtt 5.1KB
│├─150. Generalized Velocity Constraint.srt 21.7KB
│├─150. Generalized Velocity Constraint.vtt 23.6KB
│├─150. Generalized Velocity Constraint.mp4 92.5MB
│├─151. Solving Violated Velocity Constraints.mp4 78.8MB
│├─151. Solving Violated Velocity Constraints.srt 20.4KB
│├─151. Solving Violated Velocity Constraints.vtt 22KB
│├─152. Constraint Class Inheritance.srt 11.1KB
│├─152. Constraint Class Inheritance.vtt 12.2KB
│├─152. Constraint Class Inheritance.mp4 15.6MB
│├─153. Distance Constraint.srt 23KB
│├─153. Distance Constraint.vtt 24.7KB
│├─153. Distance Constraint.mp4 85.3MB
│├─154. Joint Constraint Class.srt 9.7KB
│├─154. Joint Constraint Class.vtt 10.3KB
│├─154. Joint Constraint Class.mp4 17MB
│├─155. Converting World Space to Local Space.mp4 13.8MB
│├─155. Converting World Space to Local Space.srt 7.5KB
│├─155. Converting World Space to Local Space.vtt 8.1KB
│├─156. World List of Constraints.mp4 32.8MB
│├─156. World List of Constraints.srt 13.3KB
│├─156. World List of Constraints.vtt 13.8KB
│├─157. Refactoring Body Update.srt 25.3KB
│├─157. Refactoring Body Update.vtt 27.5KB
│├─157. Refactoring Body Update.mp4 59.9MB
│├─158. Deriving the Distance Jacobian.mp4 101MB
│├─158. Deriving the Distance Jacobian.srt 28.8KB
│├─158. Deriving the Distance Jacobian.vtt 31.2KB
│├─159. Populating the Distance Jacobian.mp4 28.7MB
│├─159. Populating the Distance Jacobian.srt 15.4KB
│├─159. Populating the Distance Jacobian.vtt 16.3KB
│├─160. Solving System of Equations (Ax=b).mp4 62.5MB
│├─160. Solving System of Equations (Ax=b).srt 19.9KB
│├─160. Solving System of Equations (Ax=b).vtt 21.1KB
│├─161. Gauss-Seidel Method.srt 6KB
│├─161. Gauss-Seidel Method.vtt 6.4KB
│├─161. Gauss-Seidel Method.mp4 12.9MB
│├─162. Constrained Pendulum.srt 14.7KB
│├─162. Constrained Pendulum.vtt 15.2KB
│├─162. Constrained Pendulum.mp4 27.9MB
│├─163. Solving System of Constraints Iteratively.srt 19.9KB
│├─163. Solving System of Constraints Iteratively.vtt 20.6KB
│├─163. Solving System of Constraints Iteratively.mp4 52MB
│├─164. Warm Starting.srt 23.6KB
│├─164. Warm Starting.vtt 24.4KB
│├─164. Warm Starting.mp4 63.2MB
│├─165. Adding the Bias Term.mp4 18.7MB
│├─165. Adding the Bias Term.srt 10.5KB
│├─165. Adding the Bias Term.vtt 10.8KB
│├─166. Ragdoll with Joint Constraints.mp4 36.1MB
│├─166. Ragdoll with Joint Constraints.srt 16.1KB
│├─166. Ragdoll with Joint Constraints.vtt 17KB
│├─167. Preventing NaN Errors.srt 3.4KB
│├─167. Preventing NaN Errors.vtt 3.6KB
│├─167. Preventing NaN Errors.mp4 7.8MB
│├─168. Penetration Constraint.srt 16.7KB
│├─168. Penetration Constraint.vtt 18.3KB
│├─168. Penetration Constraint.mp4 57.8MB
│├─169. Deriving the Penetration Jacobian.mp4 43.1MB
│├─169. Deriving the Penetration Jacobian.srt 10.5KB
│├─169. Deriving the Penetration Jacobian.vtt 11.6KB
│├─170. Penetration Constraint Class.srt 28KB
│├─170. Penetration Constraint Class.vtt 29.8KB
│├─170. Penetration Constraint Class.mp4 67.3MB
│├─171. Solving Penetration Constraints.srt 6.3KB
│├─171. Solving Penetration Constraints.vtt 6.6KB
│├─171. Solving Penetration Constraints.mp4 15.7MB
│├─172. Penetration Warm Starting.srt 7.2KB
│├─172. Penetration Warm Starting.vtt 7.3KB
│├─172. Penetration Warm Starting.mp4 13.4MB
│├─173. Penetration Constraint Friction.srt 16.3KB
│├─173. Penetration Constraint Friction.vtt 17.3KB
│├─173. Penetration Constraint Friction.mp4 34.7MB
│├─174. Clamping Friction Magnitude Values.mp4 17.2MB
│├─174. Clamping Friction Magnitude Values.srt 10.4KB
│├─174. Clamping Friction Magnitude Values.vtt 11.3KB
│├─175. Penetration Constraint Bounciness.mp4 23.6MB
│├─175. Penetration Constraint Bounciness.srt 9.5KB
│├─175. Penetration Constraint Bounciness.vtt 10.5KB
│├─176. Unstable Stack of Boxes.mp4 43.2MB
│├─176. Unstable Stack of Boxes.srt 17.6KB
│├─176. Unstable Stack of Boxes.vtt 18.5KB
│├─177. Allowing for Multiple Contact Points.srt 16.4KB
│├─177. Allowing for Multiple Contact Points.vtt 17.1KB
│├─177. Allowing for Multiple Contact Points.mp4 48MB
│├─178. Reference & Incident Edges.srt 13.4KB
│├─178. Reference & Incident Edges.vtt 14.5KB
│├─178. Reference & Incident Edges.mp4 37.4MB
│├─179. Finding Incident Edge.mp4 55.4MB
│├─179. Finding Incident Edge.srt 27KB
│├─179. Finding Incident Edge.vtt 29.2KB
│├─180. Getting Ready for Clipping.mp4 47.5MB
│├─180. Getting Ready for Clipping.srt 21.9KB
│├─180. Getting Ready for Clipping.vtt 23.6KB
│├─181. Clipping Function.srt 22.3KB
│├─181. Clipping Function.vtt 23.5KB
│├─181. Clipping Function.mp4 40.3MB
│├─182. Testing Multi-Contact Boxes.mp4 11.1MB
│├─182. Testing Multi-Contact Boxes.srt 5.7KB
│├─182. Testing Multi-Contact Boxes.vtt 5.6KB
│├─183. Testing Multiple Objects & Constraints.mp4 43.8MB
│├─183. Testing Multiple Objects & Constraints.srt 13.2KB
│├─183. Testing Multiple Objects & Constraints.vtt 13.5KB
│├─184. Contact Caching.srt 20.3KB
│├─184. Contact Caching.vtt 21.7KB
│├─184. Contact Caching.mp4 60.7MB
│├─185. Continuous Collision Detection.srt 10KB
│├─185. Continuous Collision Detection.vtt 10.5KB
│├─185. Continuous Collision Detection.mp4 30.7MB
│├─186. Broad & Narrow Split.srt 5.3KB
│├─186. Broad & Narrow Split.vtt 5.6KB
│├─186. Broad & Narrow Split.mp4 13.1MB
│├─187. Euler Integration Review.srt 33.5KB
│├─187. Euler Integration Review.vtt 36.1KB
│├─187. Euler Integration Review.mp4 102.3MB
│├─188. MidPoint & RK4 Integrators.mp4 65.5MB
│├─188. MidPoint & RK4 Integrators.srt 15.5KB
│├─188. MidPoint & RK4 Integrators.vtt 16.5KB
│├─189. Verlet Integration.srt 25.9KB
│├─189. Verlet Integration.vtt 28.3KB
│├─189. Verlet Integration.mp4 86.5MB
│├─190. Stick Constraints.srt 27.6KB
│├─190. Stick Constraints.vtt 29KB
│├─190. Stick Constraints.mp4 96.9MB
│├─191. Conclusion & Next Steps.srt 18KB
│├─191. Conclusion & Next Steps.vtt 19.1KB
│├─191. Conclusion & Next Steps.mp4 60MB
│├─2D Game Physics Engine Programming.txt 5.4KB
│├─code.zip 11.4MB