Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 28/12/21 in all areas

  1. Hi people! Same drill as usual. The year is nearing to an end, so here is a freshly baked summary post for you. Read on and learn about all the interesting things that happened in the MTA community in 2021. 2021 in Recap Early this year, we have restructured our Moderation team a bit by adding the Specializations divisions (such as: Management, Tech and Infrastructure, Social Media). The aim of this was to refine extra talents of our Moderators and put them to a better use. As one of the results of that, the Management division has introduced a new way for more-involved-but-not-quite-there-yet MTA supporters to contribute - a Helper role. Curious about what it is? Check out the post by Tut. At the end of July, our developer and designer, Patrik, has revived the live streaming idea a bit and played some MTA:SA on our Twitch channel. He focused on visiting various servers ran by the community. In case you have missed it, you can check the stream capture here: https://www.youtube.com/watch?v=n2KcspT0F0A There were a few recurring requests that you guys have kept asking us about over the years. One of them was to release the mobile version of MTA:SA - apologies, but unfortunately that is still not going to happen ?. But another request was to make it possible to buy some official MTA merchandise. And guess what - we have listened to you on that one! Patrik has prepared some neat designs and we have put them for sale - although please keep in mind, we do not make any profits of these sales. Want to see the goods? Check them out here: https://multitheftauto.myspreadshop.net/all Not that long ago, in early October, we have released Multi Theft Auto: San Andreas 1.5.9. This release was focused on wrapping up the contributions made to the mod so far and put them in a single package for your convenience. Same month, Rockstar Games has announced an upcoming release of "Grand Theft Auto: The Trilogy - The Definitive Edition", a remake/remaster of the original 3D era GTA trilogy (GTA3, GTA:VC and GTA:SA). Not only was it a sudden announcement, but also the release was coming really soon. The remastered games were released, but received mixed reactions from gamers and reviewers. Technical-wise, they are a feat, as games were remade in a different and well-established game engine and are available for multiple platforms. Sadly, the same could not be said about the actual quality of these games as it was inconsistent. Hopefully, the improvements planned by Rockstar will bring them up to the quality they deserve. It is important to note that MTA mods (GTA3:MTA, MTA:VC and MTA:SA) do not work with the remastered games from the GTA: The Trilogy. We currently have no plans of making them compatible, as it would require an insane amount of effort, considering the technical differences between the original games and their remastered equivalents. Lately, our Development and Infrastructure divisions have been working on improving the reliability and performance of our web services. You may have noticed that for instance, our forums have been running faster - it is all a result of CiBeR's hard work. One of our distinguished community members, Haxardous, has prepared a list of interesting MTA:SA servers. If you are looking for a new MTA:SA server to play on, then you might want to check out one of his recommendations. You can find them here. ModDB has recently featured all of the mods that won the "Mod of the Year" award in the last 20 years. We had won this award ten years ago, so naturally we are on the list too! A bunch of interesting MTA:SA-related YouTube videos from this year [DM] NikotiN ft. Lost ft. Driver ft. SKooD - Enormous Cataclysm - video by CHRS / map by Nikotin, Lost, Driver and SKooD MTA-SA: Welcome to San Andreas Trailer (WTSA) #1 by ヌルぽ / Nurupo #MTA:SA: ~ TACTICS / STEALTH by notzz & the_bestteam Grafuroam drift handling update by Unity SHORT ONE | NON-STOP MTA DAYZ by BuczU YouTube in Car - Interactive Dashboard (MTA:SA) by Chemical Creations MTASA Dangerous Experiments by Toliak Purple Current player counts and version fragmentation statistics Type Amount of players Date / Time Recent peak number of concurrent unique players 37 487 players 2021.12.19 (at 19.13 GMT) Highest recorded number of concurrent unique players 52 098 players 2020.04.02 (at 18.00 GMT) Recent number of daily unique players 148 783 players 2021.12.19 (Sunday) Highest recorded number of daily unique players 185 818 players 2018.02.03 (Saturday) Recent number of monthly unique players 626 613 players November, 2021 Highest recorded number of monthly unique players 805 903 players January, 2018 MTA:SA version or series Percentage of players using that version or series as of 25th of December, 2021 1.6.0 (alpha; custom) 0.2% 1.5.9 97.6% 1.5.8 1.9% 1.5.7 (and older) 0.2% 1.4.x + 1.3.x 0.1% Still looking good. On a side note, our community on Discord keeps growing. We went from 20k users last year to nearly 40k this year. Our presence on social media (Twitter, YouTube, Twitch, Facebook and Reddit) is improving too - thanks to work done by Patrik and the Social Media division. --- Enjoy the holidays and hope to see you back in the next year! -- MTA Team
    3 points
  2. nice system, need to download it and try it, keep up the good work.
    1 point
  3. It does, there is code included for: exports.resourceName1:createLuaTimer("exports.resourceName2:exportedFunction", 3000, 1) <export function="createLuaTimer" type="client"/> But it can be a bit unreliable, since it doesn't check if an resource has been restarted. It will not destroy the timer, you will have to add that yourself.
    1 point
  4. Hi, Just done a little grep on my code and it would be around 50 to 60 timers total, roughly 60% of those timers would be client-side, I would suppose that might be enough to impact performance. I've checked the implementation you sent and I like the idea, might do this soon and see how it goes. Would this work from external resources? For example an AI resource, which accesses local variables from the resource itself, then creating this custom timer and letting it execute from there, or would that fail? Agree with your points, I use other methods for operations that need precision, in this case it's usually things like loops that I don't really care if they happen a couple seconds later (maybe it delays too much but haven't found issues with this personally, but now that you mentioned the synchronous nature of events it might scale really badly in the future). A couple of questions about this: Do/can timers execute in another thread? Is there any alternative to events/exports that could be executed in another thread? SQL comes to mind. Thank you
    1 point
  5. I think it more or less depends on the quantity of timers. As The_GTA mentioned triggerEvent can be very expensive, but if the amount of timers exceed a specific amount, it might become beneficial at some point. But the amount ???. I came with the following concept, which can handle lots of timers and is just as accurate(or better) as a normal timer. Note: Only when your resource(s) use a lot of timers, else it is not beneficial. Feel free to use/modify/inspiration. https://gitlab.com/IIYAMA12/draw-distance/-/blob/master/scripts/timer_c.lua
    1 point
  6. Hello DRW, the reference Lua implementation is not made for time-critical applications. The reasons are many: the virtual machine that acts as interpreter does pad the runtime through debug logic and garbage collection interleaving. Such runtime padding does negatively affect the responsiveness of Lua applications if taken to the extreme (for example 50ms). the MTA event system is implemented (or even at this point "designed") to be synchronous. That is why a call to triggerEvent can be very expensive. Imagine that the event call has to wait for all the resources to complete that registered an event handler. At some point you might not even fit your own deadline guarantees anymore. apart from offering very tight deadlines, your implementation is flawed. You are expecting that between each call of your Timer callback exactly 50ms have passed but in all reality at least 50ms have passed thus an offset that is invisible to your implementation is building up in the time, making your event system more and more unreliable. I am reading this as your understanding of the matter because you are adding an exact value of 50 to the timePassed variable instead of calculating the real time difference between invocations. You have asked about the difference between the MTA timer system and a custom Lua based variant. By reading your post I got the impression that you might think that keeping as much things Lua internal as possible would improve performance, as sometimes advertised on the internet (C barrier of the implementation). This is not a good idea in this case, as pushing as much of the time-critical mathematics and dispatching to the underlying C++ timer system is better than just writing a Lua based thing (for reasons already touched on above). How do you know that the user would be interested in steps of fixed time intervals anyway? The beauty of the MTA timer system is that it allows to check for elapsation of a custom time difference approximation > 50ms and that is better than what your idea of "performance improvements" provides. Think about this before you do too much of this "work". Hope this helps!
    1 point
  7. What I would recommend is: Add a the "onClientResourceStart" event and call the server with triggerServerEvent (let's call it "requestServerTime") so to ask for the server's time. Implement the event on the server, then return the server's real time with triggerClientEvent (let's call this one "returnServerTime"). Implement "returnServerTime" in client, then do a comparison with the server time you just received and the client time. Make sure you compare the hour AND day, and do the difference (try to round this to the next half hour as probably you'll be off by a second or so). The difference should return the differences in time zone. Save the difference in a variable, create a function to retrieve the realTime of the client + difference, and now you have a good way to get the time of the server with just a couple initial setup requests.
    1 point
  8. Hello @Carl Rayanitch DZ As you're asking a question related to MTA client/settings I've gone ahead and moved this into a better section for you!
    1 point
  9. Great recap, keep up the good work guys! Happy New Year to you all.
    1 point
×
×
  • Create New...