multitheftauto / mtasa-blue

Multi Theft Auto is a game engine that incorporates an extendable network play element into a proprietary commercial single-player game.
https://multitheftauto.com
GNU General Public License v3.0
1.42k stars 437 forks source link

Increase range of collision detection #1153

Open Einheit-101 opened 5 years ago

Einheit-101 commented 5 years ago

Description Currently everything beyond 300 meters distance has no collision. This should be changed, if possible. Feel free to close this issue if the bullet physics implementation of @CrosRoad95 already handles this problem and makes it possible to physically interact beyond 300 meters.

Additional information I guess we need to increase draw distance for elements aswell because the maximum draw distance for MTA elements is 1500 meters, while default GTA objects can be seen across the map if farClipDistance is large enough (they can be seen thousands of meters). But thats another issue.

Why? Everyone knows that i dont like limits and i am working on a project that includes giant space ships on giant maps, it simply looks terrible when the rear of a space ship already fades out when you reach the front because the ship is 1000 meters long and you can't shoot at it because its further away than 300 meters.

Pirulax commented 5 years ago

Its probably not possible even with this implementation of bullet, because he takes the data from GTA, and GTA unloads collision data after 300m. Correct me if im wrong. @CrosRoad95

CrosRoad95 commented 5 years ago

yes, you have to fly around world to load collision for bullet, then you can cast rays through the world

Einheit-101 commented 5 years ago

So you have to fly 1 time through the entire world and THEN you have the entire world as collision loaded with "unlimited" range?

Wouldnt it be possible to do this process once and then pre-compile this collision data (for a custom map for example) to make it available for all next starts? Of course this would not account for moving objects, but it would be very good for static objects.

Pirulax commented 5 years ago

Well, i guess having all collision data stored in the memory does eat it(not sure tho how much, but i guess quite a bit), so..

Einheit-101 commented 5 years ago

I dont want to store a whole world, only a few stationary, large objects, it would run fine :)