飞豹客 · 课能看,资料也能带走
飞豹客体系课 会员免费

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

这门课解决什么问题 在 2D 游戏开发中,物理引擎是保证游戏真实感和可玩性的核心工具。市面上现成的物理引擎如 Box2D 高效但封闭,开发者难以理解其内部机制,遇到特殊需求时束手无策。本课程的核心问题是:如何从零开始构建一个可定制的 2D 物理引擎,既能满足常见游戏场景(如 rigid body 碰

单课价¥19.90新品 上架
会员价 会员免费开通会员后本篇可直接下载套餐详情
207 人关注 更新于 2026-03-26 永久有效
发货

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

保障

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

客服

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

会员可免费下载本篇月会员、年会员、永久会员可按日额度下载(每篇扣 1 次)。

开通会员 ›
购买本课销量 0 · 永久有效
会员价 · 单课标价 ¥19.90

会员 A · 按档位折扣

永久免费可下
年免费可下
月免费可下
周免费可下

会员 B

VIP¥3.98低至
SVIP单买¥200 内可领

游客按标价购买,不享受上表折扣。

支付成功后自动发放网盘链接,链接失效可找客服免费补

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

这门课解决什么问题

在 2D 游戏开发中,物理引擎是保证游戏真实感和可玩性的核心工具。市面上现成的物理引擎如 Box2D 高效但封闭,开发者难以理解其内部机制,遇到特殊需求时束手无策。本课程的核心问题是:如何从零开始构建一个可定制的 2D 物理引擎,既能满足常见游戏场景(如 rigid body 碰撞、重力模拟)的需求,又能灵活扩展。课程通过系统化讲解,填补开发者从“会用”物理引擎到“懂原理会开发”的空白。例如,在原型开发阶段,学员能快速实现自定义的弹跳体逻辑;在后期优化阶段,可针对性调整碰撞检测算法,避免移动端卡顿。针对的问题还包括:为何简单的矩形碰撞检测需要分离轴定理(SAT),如何通过时间步长控制物理模拟的稳定性,以及如何用空间分区减少不必要的碰撞计算。这些问题贯穿模块 2-4,最终导向“完全自主可控的物理系统”这一目标。

学完能独立做什么

课程完成后,学员能独立完成一套轻量级 2D 物理引擎的核心模块。具体表现为:在 2D 游戏中实现刚体运动,包括线性/角速度的精确计算、力与扭矩的响应;处理常见碰撞场景,如弹性碰撞、摩擦力传递、关节约束(如旋转的平台);模拟物理环境,如可调节的重力系数、不同表面的弹性差异。交付物不仅是代码片段,还包括一套完整的测试用例(如测试不同形状的碰撞穿透问题)。例如,学员可以基于课程知识开发一款 2D 平台跳跃游戏的物理系统,或为射击游戏实现子弹与箱体的碰撞响应。更进阶的应用包括,为物理引擎添加“软体物理”模块,用于开发布料或绳索效果,这需要结合模块 5 中的数据结构优化技巧。

适合什么基础

课程对硬件基础有明确要求:学员需熟悉 C++ 中的内存管理(指针、动态分配)和面向对象编程(如虚函数、继承)。游戏开发相关经验会带来额外优势,但非必需。核心难点集中在数学与算法结合,如刚体动力学中的欧拉积分、碰撞检测的 SAT 算法。课程会提供可视化辅助(如用 Unity 伪代码演示),但不会绕过数学推导。建议基础者先完成“数据结构与算法”或“游戏物理数学基础”的铺垫,避免在时间步长稳定性或凸多边形简化的几何计算上卡壳。对于有经验的开发者,课程的价值在于“底层重构能力”的培养——当现有引擎无法支持自定义碰撞事件时,可参考模块 5 的空间分区优化方法,直接修改源码。

建议先看哪几块

对于零基础学员,建议优先学习模块 1 和 2,理解刚体的基本运动范式。模块 1 的牛顿定律是后续所有计算的起点,而模块 2 的积分器设计直接影响物理模拟的精度。例如,刘老师会用“积分器数值漂移”的动画演示为何需要变步长算法。模块 3(碰撞检测)适合在完成基础模块后学习,此时学员已理解物体如何移动,但尚未解决“如何知道它们碰了在一起”。分离轴定理(SAT)的讲解会结合 GIMP 等工具进行凸多边形可视化,降低抽象理解门槛。而模块 5(引擎构建)应在具备完整知识体系后进行,重点学习四叉树等空间分区的应用场景,如减少 100 个刚体两两检测的计算量。

资料怎么配合练习

课程配套资料包含模块化代码片段,需与“问题驱动式”练习结合。例如,学习“碰撞响应”时,学员需用 VS Code 运行基础代码,然后逐步修改参数(如弹性系数 0.3 变为 0.8),观察物体反弹高度的变化。每模块都有“调试技巧”文档,指导学员如何用 GDB 定位积分器溢出错误或 SAT 算法中的几何错误。模块 4 的物理模拟部分,推荐配合 Unity 或 Godot 进行对比测试:先用课程代码实现重力模拟,再对比引擎自带模块的帧率差异。资料中隐藏了 2 个进阶案例:一个是“软体物理”的简化实现,需要学员改造模块 4 的约束系统;另一个是“流体动力学”的伪代码,仅提供思路,要求学员用 CUDA 优化。这些案例的参考答案会以加密压缩包形式提供,避免直接抄袭。

如何避免踩坑

最常见的误区是“过度追求完美算法”。模块 2 中的欧拉积分和龙格-库塔法(RK4)各有优劣,课程会强调具体场景的选择依据。例如,在资源受限的移动端,欧拉积分的稳定性问题可用“速度阻尼”弥补,无需盲目追求 RK4。另一个陷阱是“照搬学术论文”。某些高级物理效果(如模块 6 的软体物理)虽理论完善,但工程实现复杂,课程会提供“简化版代码”作为起点,如用弹簧-质点系统近似布料。资料中的“常见 Bug 集合”特别收录了学员在实现 SAT 时遇到的圆与菱形碰撞计算错误,以及四叉树中“叶节点过小”导致性能下降的问题。此外,课程强调“调试比理论更重要”,学员需学会用 Per_SEC 的帧追踪工具观察物理计算占比,而非仅依赖理论推导。

课程目录

课程目录192 集
  • /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