Popular Post CrosRoad95 Posted April 10, 2022 Popular Post Share Posted April 10, 2022 (edited) I need your help! After long time, long discussion with other contributors what initial release should containi spent a lot of time polishing, fixing bullet physics feature people first would see almost 3 years ago. Meanwhile API got limited to bere usable minimum to limit points of failure, all cool features i was showing got moved to different branch as a reference for future updates. Whole logic got moved to "shared" section to let you use all of it's feature both client and server side! Core devs are busy, pull request is HUGE and nice to give them tested, cleaned up code they can review and because it is not a trivial task testing even limited amount of feature i need your help If you have some free time, and minimum lua/mta experience you can download latest build of mta, client and server and test it yourself, maybe you find an issue i was unable to spot? Download newest custom build of mta with bullet physics at https://github.com/multitheftauto/mtasa-blue/suites/6176759056/artifacts/216790429 Download test resource ( if you want ), v1: https://github.com/multitheftauto/mtasa-blue/files/8459389/tests.v1.zip it should yield a result the same as on the video below. Documentation: All availiable both client and server side except "physicsDrawDebug" Bullet physics functions: physics-shape-box physicsCreateBoxShape( float xyzSize ) -- creates cube of given dimensions, 1 means 1x1x1. physics-shape-box physicsCreateBoxShape( float x, float y, float y ) -- creates box of given dimensions. physics-rigid-body physicsCreateRigidBody(physics-shape, float x, float y, float z [, float rx, float ry, float rz [, table options ] ] ) -- spawns rigid body from given shape at given position and rotation with options: -- "mass" - float between 1.0 to 1000000.0, default: 1.0 -- "localIntertia" - vector, default: 0,0,0 -- "centerOfMass" - vector, default: 0,0,0 physics-static-collision physicsCreateStaticCollision(physics-shape, float x, float y, float z [, float rx, float ry, float rz ]) -- spawns static collision at given position and rotation. table physicsGetDebugLines( float x, float y, float z, float radius ) -- returns table of lines in format { fromX, fromY, fromZ, toX, toY, toZ, color } of all collisions in given radius - mostly used to debug server side physics. bool physicsDrawDebug() -- draws debug collision in 500 meters radius, availiable only client side, use in onClientRender event. bool isPhysicsElement( physics-element physicsElement ) -- isElement equivalent for physics elements Extended functionality: setElementPosition, setElementRotation, getElementPosition, getElementRotation -- accepting physics-world-element as first parameter setElementVelocity, setElementAngularVelocity, getElementVelocity, getElementAngularVelocity -- accepting physics-rigid-body as first parameter destroyElement -- accepting physics-element Bullet physics introduces new user-data / element types ( they are not acctual elements like vehicle, player ). Used lighter version of elements to increate overall performance, simillar to how "setTimer" return timer handle, functions above return simillar handle. New user-data/elements types and it's hierarchy: Default, current physics settings: Gravity: 0.0, 0.0, -10.0 Simulation step: fps independent, 10 substeps Fixed time step: 1.0 / 60.0 Other useful informations: 1. One shape can ( should ) be used in many rigid bodies, static collisions ( in future as a part of compound shape ) 2. Spawning many rigid bodies at one position will lead to high memory usage. 3. If you destroy shape, all referenced rigid bodies and static collision will be removed as well - removing static collision or rigid body never removes shape 4. Physics is frame indendent and not perfectly deterministic. 5. Yellow/White wireframe indicate active rigid body, blue are "about to sleep", green are sleeping. Sleeping rigid body behave like static collision until get hit, reactivated ( changing position, applying forces activates body, in future i have a plan to introduce function to wake up them on demand ) 6. Physics elements created server or client side are not synced at all. You have to do this manually but in plan is to add build in customizable synchronization. Pull request: https://github.com/multitheftauto/mtasa-blue/pull/1246 Read more about bullet physics: https://github.com/bulletphysics/bullet3 https://pybullet.org/wordpress/ More at mta dev discord: https://discord.gg/GNN6PRtTnu Do you have any idea of physics applications in mta? Let us know in the comment down below! Thanks in advance for help! Patch 19.04.2022 - "getUserdataType" now returns exact shape type not only general shape type - clientside draw debug no longer render debug when game minimalized. Download newest custom build of mta with bullet physics at https://github.com/multitheftauto/mtasa-blue/suites/6176759056/artifacts/216790429 Edited April 19, 2022 by CrosRoad95 Added patch note 8 2 Link to comment
CrosRoad95 Posted April 12, 2022 Author Share Posted April 12, 2022 Fixed few crashes, still waiting for people who willing to help me with testing Don't forget to download updated build: https://github.com/multitheftauto/mtasa-blue/suites/6097623305/artifacts/211522093 Link to comment
CrosRoad95 Posted April 17, 2022 Author Share Posted April 17, 2022 (edited) I want to remaind everyone this topic. If you tested it please let me know in the comment, if your game crashed please let me know as well thanks in advance. Edited April 17, 2022 by CrosRoad95 Link to comment
-ffs-PLASMA Posted April 18, 2022 Share Posted April 18, 2022 Game freezes if you tab out and in too quickly, not sure if its a general issue but I dont have it on official client. No crashes so far, everything works fine, though game drops frames real bad when finalizing physics before boxes turn green if you have too many (>1000) of them but I guess theres no solution/workarround to it. 1 Link to comment
CrosRoad95 Posted April 19, 2022 Author Share Posted April 19, 2022 (edited) > Game freezes if you tab out and in too quickly, not sure if its a general issue but I dont have it on official client. known bug, https://github.com/multitheftauto/mtasa-blue/issues/1103 BUT! bp could increase frequency of occurring. Apart of that, patch has been pushed that prevents rendering debug wireframe while game minimalized Be sure you downloaded latest build! Edited April 19, 2022 by CrosRoad95 Link to comment
Einheit-101 Posted July 28, 2022 Share Posted July 28, 2022 I have not seen a single issue yet. Link to comment
Recommended Posts