Open

Description
Is your feature request related to a problem? Please describe.
SA has many limits, and we need to lift them. When you're loading mods, it takes forever to wait. Some servers will cause clients to eat 90% of MTA process RAM and crash eventually. I played modern games, even they don't consume that much RAM. This happens because objects are loaded the moment you call engine functions, and loading is done on the main thread. We should have at least 2 threads for loading mods, and here we are loading on the main one. All of these issues are possible to fix since we have optimized memory pools #480.
Describe the solution you'd like
- Implement a new streamer for streaming in and out entities as the current one will cause massive lags when you have too many objects and players on screen @ArranTuna
- Loading DFF, COL, TXD, and IFP on a separate thread when using engine functions, GTA SA loads them on a separate thread using CdStream* functions, but MTA doesn't.
- Saving RAM by loading an object only when it needs to be streamed. engineReplace* functions will load it immediately, we need to only load it if the object is visible. Poor engineReplace* performance #748
- Maximum draw distance—ability to stream in entire map.
- Support for multiple low LODs for a single custom object or a GTA map object and set distance for each LOD. Depending on how far the object is from the camera, the low LOD will be rendered instead of the high LOD model, this would save lots of CPU.
- Removing ID limit—ability to add new objects without replacing current ones, this includes new vehicles with driving ability.
Optional
- Increasing map sectors, so mappers can create objects outside of the current -3000 to 3000 range. I think that something like -10000 to 10000 would suffice.
- Custom collisions for every object. We can make it object based rather than model based.
- general fix of collision detection, now you can affect fps drop when you're inside bounding box of collision bigger then ~300KB