AfterAll14 Posted December 23, 2016 Share Posted December 23, 2016 На вики мало информации про модули. Если писать модуль - будут ли функции доступны на клиенте? Link to comment
Kenix Posted December 23, 2016 Share Posted December 23, 2016 (edited) Клиентские модули написать для МТА нельзя, как бы это банально не звучало, но если бы они были, то была бы проблема с безопасностью. Поэтому в модуле вы можете писать только функции, которые могут выполняться на стороне сервера. Вот вам первые шаги по написанию модуля. MTA WIKI: https://wiki.multitheftauto.com/wiki/Modules Модули для МТА на Git Hub'e: https://github.com/multitheftauto/multitheftauto-modules Edited December 23, 2016 by Kenix Link to comment
AfterAll14 Posted December 23, 2016 Author Share Posted December 23, 2016 Ну я так и понял, спросил чтобы убедиться (а вдруг). Увы, модули со стороны сервера не решат проблем с нехваткой вычислительной мощности на клиенте . Link to comment
Kenix Posted December 23, 2016 Share Posted December 23, 2016 (edited) Вы можете написать патч для МТА, который бы добавлял функционал, который вам нужно, тогда никаких проблем не было бы. А вообще, напишите суть, а то не совсем понятно про что идет речь. Edited December 23, 2016 by Kenix Link to comment
AfterAll14 Posted December 23, 2016 Author Share Posted December 23, 2016 Суть: я пишу физику автомобилей которая полностью заменяет стандартную физику RenderWare. Соответственно там существует огромная нагрузка со стороны математических операций (преобразования векторов/матриц, вычисления). В принципе конкретно у меня с процессором i5 3.4гГц все хорошо. Но вот пробовал запускать на i3 1.6гГц - фпс провисает с 80 до 30. Соответственно было бы неплохо все вычисления перенести на С++, чтобы хорошо было у всех. Но видимо не судьба. Link to comment
Kenix Posted December 23, 2016 Share Posted December 23, 2016 (edited) В МТА был бранч добавляющий LuaJIT (более ускоренную версию Lua), возможно если он бы был готов, то ваша проблема была бы решена. На данном этапе вы можете создать отдельный бранч с измененной физикой автомобилей и работать над ним. Других выходов я пока не вижу. Но перед этим я бы рекомендовал вам поговорить на irc канале с разработчиками МТА. Возможно ваш бранч смогут объединить с основной веткой МТА. -- UPD (13:04) На счет производительности это дело случая, но вот вам советы, которые могут помочь при решении ресурсоёмких задач. 1) Определяйте функции заранее, которые вы хотите использовать. Доступ к локальным функциям происходит намного быстрее нежели чем к глобальным. local getElementPosition = getElementPosition; 2) При очень сильных ресурсоёмких задачах никогда не используйте ООП в MTA (где используется setmetatable), очень сильно падает производительность, особенно на циклах. И ещё я хотел бы порекомендовать вам использовать ресурс performancebrowser, чтобы узнать где у вас самые сильные проседания и нагрузки. Попробуйте проанализировать, чтобы найти проблемный участок кода, также вы можете его скинуть сюда, возможно мы что-нибудь придумаем. Edited December 23, 2016 by Kenix Link to comment
AfterAll14 Posted December 23, 2016 Author Share Posted December 23, 2016 Спасибо за советы. Про оптимизацию кода я в курсе, там уже все оптимизировано по максимуму. А вот без ООП размер кода вырастет раз в 5-10. Да и не особо хочется рушить структуру классов, править/находить ошибки потом будет почти невозможно. LuaJIT выглядит более реально, может быть займусь его внедрением потом. Но там может возникнуть проблема - где-то на этом форуме вычитал что разработчики МТА не хотят внедрять новые версии LUA из-за проблем с совместимостью. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now