Sequential impulses physics engine made for learning purposes

Related tags

Game physics
Overview

A 3D physics engine that uses Separating Axis Test for collision detection, the clipping method for generating contact manifold, contact point reduction as outlined in [1] and a sequential impulses constraint solver as popularized by Erin Catto.

There's still a lot of issues and improvements to be made for this. The biggest ones being

  • Stable stacking
  • Improved broadphase with dynamic AABB tree
  • Verlet integration instead of Euler
  • Implement quickhull to generate more interesting hulls than just boxes
  • Optimize SAT with edge pruning by using gauss maps
  • Linux support (currently only builds on Windows)
  • The code is a bit of a mess and could use some refactoring

References

  1. Dirk Gregorius. 2015. "Robust Contact Creation for Physics Simulations" GDC
  2. Erin Catto. 2006. "Fast and Simple Physics using Sequential Impulses" GDC
  3. Gin van den Bergen and Dirk Gregorius. 2010. "Game Physics Pearls"
  4. Christer Ericson. 2005. "Real-Time Collision Detection"
  5. Dirk Gregorius. 2013. "The Separating Axis Test Between Convex Polyhedra" GDC
  6. Dirk Gregorius. 2014. "Implementing QuickHull" GDC
  7. Erin Catto. 2019. "Dynamic Bounding Volume Hierarchies" GDC
  8. Erin Catto. 2014. "Understanding Constraints" GDC
Owner
Ahmad Saleh
Ahmad Saleh
Godot bindings for the Rapier3D physics engine

Godot bindings for the Rapier3D physics library How to use There are two parts: A Godot module which must be compiled with the engine.

David Hoppenbrouwers 20 Oct 26, 2021
SKR_Physics is a lightweight and easy to use 2D physics engine which is written in C++.

SKR_Physics SKR_Physics is a lightweight and easy to use 2D physics engine which is written in C++. Features Rectangle based collision system Very sim

Şükrü 1 Nov 30, 2021
C++ library for multi-physics simulation

Project Chrono represents a community effort aimed at producing a physics-based modelling and simulation infrastructure based on a platform-independent, open-source design.

null 1.2k Nov 29, 2021
A multi core friendly rigid body physics and collision detection library suitable for games and VR applications.

Jolt Physics Library A multi core friendly rigid body physics and collision detection library suitable for games and VR applications. A YouTube video

null 309 Nov 29, 2021
This repository is about a school project about games with physics, written in C++.

Eight Ball Pool ?? A game about playing physics-based eight ball pool. ?? Table of Contents About Getting Started Usage Built Using About the creators

Valeri Ivanov 9 Dec 6, 2021
A game with basic physics and platforming.

Physgun A simple game with basic physics and platforming. Planned features Work in progress: Physics engine. Swept AABB collision algorithm. Elastic a

Bad Games Studio 25 Oct 10, 2021
Third-person survival game for Unreal Engine 4 made entirely in C++.

Third-person survival game for Unreal Engine 4 made entirely in C++. Originally built as a 6 section tutorial series, now available as open-source C++ sample project.

Tom Looman 2.4k Dec 4, 2021
Building Escape is a simple room escape game made with Unreal Engine 4.27 and C++.

Building-Escape Building Escape is a simple room escape game made with Unreal Engine and C++. The main purpose of the game is to find a way to escape

Christine Coomans 1 Nov 5, 2021
Godot Engine – Multi-platform 2D and 3D game engine

Godot Engine 2D and 3D cross-platform game engine Godot Engine is a feature-packed, cross-platform game engine to create 2D and 3D games from a unifie

Godot Engine 44.3k Dec 5, 2021
Improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World.

OpenXRay OpenXRay is an improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World. S

null 1.8k Dec 5, 2021
Flax Engine – multi-platform 3D game engine

Flax Engine – multi-platform 3D game engine

Flax Engine 3.1k Dec 6, 2021
CLUSEK-RT is a complex game engine written in C++ and the successor of the CLUSEK game engine

CLUSEK-RT is a complex game engine written in C++ and the successor of the CLUSEK game engine. This engine has been designed with a cross-platform design in mind. Thanks to Vulkan API it delivers a next-gen experience with ray tracing to both Linux and Windows platforms

Jakub Biliński 20 Dec 5, 2021
MAZE (My AmaZing Engine) - 🎮 Personal open-source cross-platform game engine

MAZE (My AmaZing Engine) is the self-written open-source cross-platform game engine in the active development stage. At the moment it is my main pet project, developed for the purpose of learning and preserving different game dev technologies.

Dmitriy Nosov 11 Dec 6, 2021
Ground Engine is an easy to use Game Engine for 3D Game Development written in C++

Ground Engine is an easy to use Game Engine Framework for 3D Game Development written in C++. It's currently under development and its creation will b

 PardCode 43 Nov 30, 2021
Project 1945 is a top down scroller game made with SDL2, CMake and programmed in C as a project of study for the Italian Videogames Academy for the 3rd year course of Videogames programming.

Project 1945 is a top down scroller game made with SDL2, CMake and programmed in C as a project of study for the Italian Videogames Academy for the 3rd year course of Videogames programming. The game is based on the old videogame 1945: The Final Front of the 2002.

null 17 Sep 27, 2021
tiny game made in ~15 hours on stream

A small game made entirely on live stream over about 15 hours. I intend to add more documentation and clarify some of the code and assets over the next few days.

Noel Berry 166 Nov 18, 2021
A procedural sprite animation tool made with the nCine

SpookyGhost A procedural sprite animation tool made with the nCine. You can read the manual online or you can access it by pressing F1 in the program.

SpookyGhost 176 Nov 29, 2021
A (broken) SDL2 game made in 48 hours

Twini-Golf Twini-Golf is a game created in 48 hours for the 2021 GMTK Game Jam using C++ and SDL2. It can be played on itch.io. Screenshots Background

PolyMars 91 Nov 29, 2021
A simple snake game made in C language.

My-snake-game This is my first game more to come! to play the game execute the snake.exe and press X to start. W to go up / D to go right / A to go le

Ayman Baioumy 3 Sep 14, 2021