10BC0 GitHub - Source-Authors/source-physics: Source 1 physics engine (restored from assembly)โš™๏ธ๐Ÿ”„๐Ÿ’ง
[go: up one dir, main page]

Skip to content

Source 1 physics engine (restored from assembly)โš™๏ธ๐Ÿ”„๐Ÿ’ง

Notifications You must be signed in to change notification settings

Source-Authors/source-physics

ย 
ย 

Repository files navigation

Source Physics (VPhysics)๐Ÿ› ๏ธ

Source Physics is Source's VPhysics default implementation which uses IVP/Havok engine.

As there are no sources, it was partially restored from the assembly by https://github.com/nillerusr, https://github.com/er2off, https://github.com/steadyfield, https://github.com/exstrim401, https://github.com/HappyDOGE, https://github.com/RaphaelIT7, https://github.com/PiMoNFeeD and others.

Features

VPhysics is mostly feature complete!

Below is a feature table of Volt vs VPhysics and the Bullet VPhysics project from VPhysics Jolt.

Feature VPhysics Volt (VPhysics Jolt) Bullet VPhysics
Constraints (except Pulleys) โœ”๏ธ โœ”๏ธ โœ”๏ธ
Pulleys โœ”๏ธ โœ”๏ธ โŒ
Breakable constraints โœ”๏ธ โŒ โŒ
Motors (Motion Controllers) โœ”๏ธ โœ”๏ธ โœ”๏ธ
Motors (Constraint) โœ”๏ธ โœ”๏ธ โŒ
Ragdolls โœ”๏ธ โœ”๏ธ โœ”๏ธ
Triggers โœ”๏ธ โœ”๏ธ โŒ
Object touch callbacks โœ”๏ธ โœ”๏ธ โŒ
Prop damage/breaking โœ”๏ธ โœ”๏ธ โŒ
Fluid events โœ”๏ธ โœ”๏ธ โŒ
Prop splashing effects โœ”๏ธ โœ”๏ธ โŒ
Wheeled Vehicles โœ”๏ธ โœ”๏ธ โœ”๏ธ
Raycast Vehicles (ie. Airboat) โœ”๏ธ โŒ ใ€ฐ๏ธ (janky)
NPCs/Doors (Shadow Controllers) โœ”๏ธ โœ”๏ธ โœ”๏ธ
Save/Restore Support โœ”๏ธ โœ”๏ธ โŒ
Portal Support โœ”๏ธ โœ”๏ธ โŒ
Game per-object collide callback support
eg. no-collide
โœ”๏ธ โœ”๏ธ โŒ
Crash-resistant solver โŒ โœ”๏ธ (no data)
Supports thousands of objects without lag โŒ โœ”๏ธ โŒ
Multithreaded โŒ โœ”๏ธ โœ”๏ธ (partially)
Proper player controller โœ”๏ธ โœ”๏ธ โœ”๏ธ (partially)

Bugs

VPhysics is not without its flaws, however. See the issue tracker for bugs that are known.

There are definitely going to be bugs that we don't know about or haven't encountered, or different quirks across engine branches.

How to build

The VPhysics code is provided as-is, it is up to you to build it for your SDK, etc.

VPhysics should build fine against Source SDK 2013 and Alien Swarm SDK on a MSVC, Clang or GCC compiler with at least C++17 support.

If you are building directly against the public SDK 2013 and Alien Swarm SDKs, you will need to do minor work to memoverride.cpp to make it compatible with the newer compilers and newer Windows SDKs.

About

Source 1 physics engine (restored from assembly)โš™๏ธ๐Ÿ”„๐Ÿ’ง

Topics

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rich Text Format 69.3%
  • C++ 30.7%
0