FIREMAST - physics engine in roblox (again)

-------------------------------------------------------------------------------------------------                                                             
| `7MM"""YMM `7MMF'`7MM"""Mq.  `7MM"""YMM  `7MMM.     ,MMF'      db       .M"""bgd MMP""MM""YMM |
|   MM    `7   MM    MM   `MM.   MM    `7    MMMb    dPMM       ;MM:     ,MI    "Y P'   MM   `7 |
|   MM   d     MM    MM   ,M9    MM   d      M YM   ,M MM      ,V^MM.    `MMb.          MM      |
|   MM""MM     MM    MMmmdM9     MMmmMM      M  Mb  M' MM     ,M  `MM      `YMMNq.      MM      |
|   MM   Y     MM    MM  YM.     MM   Y  ,   M  YM.P'  MM     AbmmmqMA   .     `MM      MM      |
|   MM         MM    MM   `Mb.   MM     ,M   M  `YM'   MM    A'     VML  Mb     dM      MM      |
| .JMML.     .JMML..JMML. .JMM..JMMmmmmMMM .JML. `'  .JMML..AMA.   .AMMA.P"Ybmmd"     .JMML.    |
-------------------------------------------------------------------------------------------------



Previously i had a framework that uses this algorithm for handling collision “Collide and Slide” from Kasper Fauerby with shapecast involved, it was derived from my current indev game “DVN: Warfare” since vanilla physics is banned except reading the values, however it had flaws that my game didn’t meet it’s needs, it’s mainly due to collision handling


from the outside it works perfectly fine but shapecasts aren’t build to handle dynamic objects like spinning walls at all, if you simply collided with anything it’ll just let you noclip through it, for a game that optimizes collision (updating only once) it will fit but mine is aimed to have dynamic objects interact with char controller seamlessly so i’ve decided to make a physics engine

it’s not rlly finished as of now, im testing some of the functions mostly the “intersect with various shapes” to see if it works as intended

rn this only has 3 parts

  • Rigidbody
  • Force Generators (used for buoyancy, gravity etc.)
  • Contact Generation (defined by normal, point and penetration depth, it’s used for upcoming contact resolution)
2 Likes