DPAKOLLIA
Новичок
Итак, имея мод BetterFPS можно изменить алгоритмы вычисления sin() и cos(), которые используются постоянно и вычисляются в больших количествах.
Начну с теории:
Ухудшают производительность в первую очередь:
Всего их 7:
Для этого нужно нажать Пуск -> набрать %appdata% -> перейти в папку hil.su -> затем выбрать папку с сервером, на котором вы играете (у меня это HiPower) -> зайти в папку Mods -> кликнуть правой кнопкой мыши на BetterFPS.jar -> открыть с помощью -> Java(TM)Platform SE binary
Какая папка за какой сервер отвечает:
hipower - я думаю, и так понятно
n_magick - сервер Magick
n_tmagick - сервер TechnoMagick
sandbox - удивлю, это Sandbox
tfcraft - сервер TFC
После этого откроется такое окно:
В нем нужно нажать кнопку Протестировать алгоритмы
После этого внизу появится кнопка "Изменить алгоритм на ...", запишите алгоритм, который вам предложен. Протестируйте еще 7-8 раз, нажав на "Снова сравнить", постоянно записывая алгоритм, который вам предлагают. По окончанию вы получите некоторое количество сравнений алгоритмов, которые вы записали. Выберите самый часто повторяющийся алгоритм В САМОЙ ИГРЕ.
Поздравляю, вы только что оптимизировали расчёты синуса и косинуса!
Начну с теории:
Ухудшают производительность в первую очередь:
- Частицы - дым от огня, частички травы от бега, капающая лава и многое другое.
- Маяк - использует неэффективный код как для отображения луча, так и для наложения эффектов на рядом находящихся игроков. Также луч маяка прозрачный, но возможности сделать луч непрозрачным, как с листвой деревьев, нет.
- Дроп - каждый такт происходит проверка на наличие рядом таких же выброшенных предметов для соединения в одну кучу
- Механизмы - можно до бесконечности вести список всего, что взаимодействует с соседними блоками, как например, почти любой механизм. Насколько эффективно они это делают - зависит от разработчика.
- Бессмысленные заводы - интересно, почему же лагает рядом с заводом булыжника длиной в 100 блоков?
Всего их 7:
- Алгоритмы Riven’s - их 3 штуки
Алгоритм Riven'a
Алгоритм Riven'a использует таблицы поиска, которые позволяют не вычислять функции, а просто их найти, что намного эффективнее, чем функция Math.sin() в Java. Но в некоторых моментах обращение к таблице поиска может быть даже более «дорогим» из-за обязательной проверки границ, включающей в себя дополнительные сравнения и ветвления для каждой операции поиска.
Частичный Алгоритм Riven'a
промежуточное решение, когда используют таблицу поиска в сочетании с простыми вычислениями — интерполяцией.
Полный Алгоритм Riven'a
Не знаю, что использует этот алгоритм, но он отличается от вышеперечисленных.
- Алгоритм Taylor’s использует ряд Тэйлора, который, между прочим, наряду с CORDIC (алгоритм Волдера), используется в калькуляторах для вычисления синуса и косинуса. Идея CORDIC заключается в сведении вычисления значений сложных (например, гиперболических) функций к набору простых шагов — сложению и сдвигу.
- Алгоритм Java-вычисления использует стандартные функции для вычисления синуса и косинуса, доступные в Java - Math.cos() и Math.sin()
- Алгоритм libGDX'a - вообще, libGDX это фреймворк для создания игр и приложений, написанный на Java с использованием C и C++. Как он находит синус и косинус я, к сожалению, не знаю
- Ну и стандартный алгоритм - использует стандартную реализацию вычисления синуса и косинуса, используемую в Minecraft
Для этого нужно нажать Пуск -> набрать %appdata% -> перейти в папку hil.su -> затем выбрать папку с сервером, на котором вы играете (у меня это HiPower) -> зайти в папку Mods -> кликнуть правой кнопкой мыши на BetterFPS.jar -> открыть с помощью -> Java(TM)Platform SE binary
Какая папка за какой сервер отвечает:
hipower - я думаю, и так понятно
n_magick - сервер Magick
n_tmagick - сервер TechnoMagick
sandbox - удивлю, это Sandbox
tfcraft - сервер TFC
После этого откроется такое окно:
В нем нужно нажать кнопку Протестировать алгоритмы
После этого внизу появится кнопка "Изменить алгоритм на ...", запишите алгоритм, который вам предложен. Протестируйте еще 7-8 раз, нажав на "Снова сравнить", постоянно записывая алгоритм, который вам предлагают. По окончанию вы получите некоторое количество сравнений алгоритмов, которые вы записали. Выберите самый часто повторяющийся алгоритм В САМОЙ ИГРЕ.
Поздравляю, вы только что оптимизировали расчёты синуса и косинуса!