[UPD] «Дискретная математика» или «Догнать горизонт»

Day 956, 23:38 Published in Ukraine Ukraine by S.Petliura

Собственно, сразу к сути. Нашлась достаточно срочная и важная тема, по которой потребовалось пораскинуть мозгами и захотелось поделиться выводами. О чем и пишу.

Итак, речь пойдет о миграции скилов. А также о новой схеме прокачки. Собственно, темы к обсуждению на сегодня:

1) Дискретность скилов

2) Экспоненциальная шкала опыта

3) Как рассчитать проценты для оптимальной миграции

Как можно увидеть из набросков (которые, я надеюсь, не отличаются существенно от окончательных формул) формул расчета производительности, эта самая производительность будет дискретно изменяться с прокачкой. Т.е. если раньше у нас в формулу производительности линейно входил параметр «скил», который изменялся со временем линейно малыми шагами (по 0.02), то теперь в формулу входит параметр «уровень(level)», который изменяется с обучением дискретно, причем по экспоненциальной шкале. Т.е. олдфаги смогут мигрировать на уровень «Guru**», но вряд ли найдется кто-либо, кто сможет достичь уровня «Guru***». При этом производительность «Guru**» (+900😵 будет всего в 1.5 раза превышать среднюю по стране производительность, соответствующую уровню «Expert» (+600😵.

То же относится и к военным скилам. Если посмотреть на формулу урона:

((1 + (skill with the active weapon - 1) / 10) * active weapon damage) + random variation

то мы также вместо прежнего непрерывно изменяющегося параметра «сила» обнаруживаем дискретный параметр «skill with the active weapon», который изменяется дискретно с экспоненциальным ростом. Большинство олдфагов будут иметь кол-во очков боевого навыка в диапазоне 180000-360000, что соответствует 10 уровню (Veteran). Достичь следующего, 11-го уровня будет практически нереально, а те, кто все же достигнут, смогут увеличить свой базовый урон с 1+(10-1)/10=1,9 до 1+(11-1)/10=2, т.е. аж на целых 5%!

Итак, пока что какие напрашиваются выводы:

1. Не нужно стремиться поднять навык выше 10, так как на достижение 11-го уровня уйдет слишком много усилий, а выгоды от этого слишком мало

2. Не будет элитных бойцов, живущих в игре с начала времен и прокачавших силу до 45+. Они будут иметь тот же 10-й уровень (максимум 11-й), и не будут отличаться от остальных середнячков, которые также добрались до 10-го уровня навыка (это соответствует примерно уровню теперешней силы 23)

3. При распределении навыков при миграции не стоит выставлять ползунок на 100% - достаточно будет меньшей части для достижения 10-го уровня, а остальные очки можно пустить на другую профессию (которая может оказаться однажды более востребованной/оплачиваемой)

*************************************

Теперь собственно ответ на вопрос «Что делать»? Т.е. посмотрим как можно рассчитать оптимальные значения для параметров миграции.

Показывать будут на своем примере. Нам понадобиться зайти в свой профиль в бете. Там по умолчанию все скилы были выставлены поровну. Поэтому для того, чтобы определить полное кол-во доступных при миграции очков, достаточно умножить на 4 очки военного скила, который вы не прокачивали в бете)



Например, у меня не прокачивалась артиллерия – 52008. Умножаем на 4, получаем 208032. Для достижения 10-го уровня нужно 160000 очков. Это составляет 160000/208032 = 0,769 = 77%.

Итак, я выставляю ползунок своего уровня «танк» на 77%, а остальные 23% вкладываю в «вертолеты», что составит 208032-160000=48032 и позволит мне сразу достичь 8-го уровня навыка (40000+). В дальнейшем я уже не буду прокачивать навык «танк», а буду заниматься тренировкой навыка «вертолет», набрав 80000 очков, я получу 9-й уровень.



Теперь по поводу рабочих специальностей. Здесь методика расчета сложнее. Во-первых, нам понадобится подсчитать кол-во дней, которые мы работали за всю свою еЖизнь. Для этого воспользуемся табличкой



Далее смотрим на свои трудовые навыки:



Берем наибольший навык (9,24), вычитаем ближайшее снизу целое число из таблицы (от 1 до 7). В моем случае это 7, получаем: 9,24-7=2,24. Далее остаток делим на прирост скила (начиная с 4-го скила прирост составляет +0,02 в день), получаем 2,24/0,02=112 дней. Складываем этот остаток с целой частью, которую берем из таблицы (для 7-го скила, который я вычел получаем из таблицы 186дней). На выходе получаем 186+112=298 дней. Повторяем то же с остальными рабочими скилами (мануфактура, строительство). В моем случае добавляется один день за мануфактуру. Окончательно получается 299 дней. Для проверки сравниваем со своим возрастом:



Сегодня у нас 956 день, значит мой возраст 956-656=300 дней. Одни день я таки просачковал с работой 🙂.

Теперь, имея на руках кол-во честно отработанных дней, мы можем определить, во что они превратятся при миграции. Для этого заходим на страничку с описанием новых профессий.

Что мы видим:



Моего кол-ва в 299 дней будет больше, чем нужно для 9-го уровня, но меньше, чем потребуется для 10-го. Сложный выбор. Или же вложить все в один скил. Если я выберу 100%, например, в харвестера, то получу уровень 9-й (Гуру😉 и мне нужно будет еще 394-299=95 дней работать/тренироваться для достижения 10-го уровня, что даст мне прирост производительности 900/800=12%. Или же я могу удовлетвориться 9-м уровнем (Гуру😉 без надежды на его повышение и вложить оставшиеся 299-226=73 дня в другой скил, что даст мне практически сразу (без 3-х дней) уровень Эксперта.

Например, можно выбрать какую-либо из строительных специальностей – вдруг стране понадобятся дефенсы, госпитали и дома? В этом случае я должен выставить на основной скил 226/299=76%, а остаток в 24% использовать на вторичный скил.



Собственно, главная идея новой системы прокачки заключается в том, что догнать горизонт все таки возможно. Вы больше не будете чувствовать себя безнадежно отставшими от олдфагов. Рано или поздно вы доберетесь до той же ступени, потому что чем дальше – тем медленнее становится прокачка. И это есть хорошо. ИМХО 🙂

P.S.
Отвечая Olesxander по поводу нелинейности роста военного скила:

Да, по-видимому, у админов методика расчета тоже идет по дням, т.е. сила переводится в дни, а дни - в скилпойнты. Однако, нелинейность зависимости скилпоинтов от дней тренировки ничего не меняет. Я брал за основу расчета суммарное кол-во очков, которое админы выделили моему персу в бете. Как они рассчитали это кол-во очков - я не берусь предсказать, главное, что админы это суммарное кол-во очков разбросали поровну. Если же я выставлю разные проценты - то то же самое кол-во скилпоинтов разбросается пропорционально процентам.

Прув:

* Citizens will be able to distribute their total skill gained so far to every profession available in Rising, in percents (e.g. 70% carpenter, 20% builder, 10% architect, 0% to the rest);

* Their skills values will be reverted to the amount of total worked days in eRepublik; the percentage set above will be applied to this amount;

...

* Skill migrations will have a default (equally distribution to all professions); if citizen will not change this during the time the panel will be available, he will enter Rising with these default migrations

Единственная ожидаемая погрешность - это то, что распределение очков произошло еще дней 6-8 назад, когда появился ваш перс в бете. С того времени вы еще 6-9 дней работали и тренировались в в1, так что суммарное кол-во скилпоинтов будет немного выше, чем расчетное по предлагаемой методике.

************************************* ************
[UPD]

Небольшая коррекция. Так как еще неизвестно как именно конвертируется сила в скилпоинты военных навыков, то в этой статье использовалось предположение, что очки, выданные в бете соответствуют тому, что мы получим в релизе.

Далее Olesxander справедливо заметил, что по-видимому, в бете между всеми скилами были равномерно распределены не скилпоинты, получающиеся из текущей силы, а дни тренировок, получающиеся из текущей силы (сила/0,04). Однако один день тренировок в Райзинг дает разное кол-во скилпоинтов на разном уровне скила. Исходя из предположительно недостоверных, но по-видимому близких к реальности, формул расчета прироста скилпоинтов от тренировок, мы видим, что этот прирос пропорционален текущему уровню скила. Т.е. один день тренировок на уровне скила 9 будет приносить в 9/8 больше скилпоинтов, чем на 8-м уровне.

В результате, расчет проведенный в моей статье дает заниженную оценку кол-ва получаемых скилпоинтов, если распределять их неравномерно. В связи с этим, прошу отнестись к приведенным рекомендациям исключительно как к оценочным и использовать их на свой страх и риск. Это относится только к военным скилам, экономические скилы по приведенной методике можно рассчитать точно.

Если вы считаете, что сможете достигнуть 11-го скила (Ветеран😉, что даст вам преимущество в 5% в уроне, и вы считаете, что это будет выгоднее, чем прокачать дополнительно вертолеты - то устанавливайте ползунок в 100%.

Хотелось бы еще отметить, что навык вертолета в принципе не нужен для использования вертолетов в игре в качестве транспортных средств. Но ненулевой навык поможет вам выжить в случае нападения на вас врагов из засады на марш-броске.

Дело в том, что засада является одной из довольно успешных тактик ведения боя в в2. Многие игроки высадившись на карте вблизи предполагаемого маршрута движения противника уходят из боя (Отступают) и ждут, пока поблизости от точки выхода(она же точка респауна) не объявится пролетающая мимо жертва. В нужный момент игрок из засады делает Redeploy и в течение того же хода, включив при необходимости бустер, атакует ничего не ожидающую цель. Если этой целью окажетесь вы, в ку1 транспортном вертолете (да хоть в ку5 штурмовике), то никакой ку5 танк в кармане и 11-й скил по танкам вас не спасут. А вот наличие 8-го скила по вертолетам и перемещение в ку5 вертолете могут если не предотвратить атаку (с вами не станут связываться во избежание 🙂 ), то хотя бы повысят шансы выжить в бою.

P.P.S.
Согласно последним формулам потребность в труде харвестеров будет в 10 раз меньше, чем в труде мануфактурщиков (см. "Напоследок про В2"). Поэтому возможно имеет смысл пересмотреть свой выбор профессии, в связи с перенасыщением рынка труда харвестерами гораздо выше ожидаемой потребности в 10%.