"С балансом вот что происходит..." (романс)
Добавлено: 26 май 2014, 11:34
Уже несколько недель я занимаюсь перебалансировкой юнитов под КК
Проблема состоит в следующем. Раньше юниты были сбалансированы "в целом". Т.е. их характеристики - цена, атака, защита, щиты, скорость итд - были выравнены друг относительно друга. Грубо говоря, средняя цена эффективности всех боевых юнитов была равна единице. Т.е. не было юнитов, которые принципиально по эффективности были лучше или хуже других - все юниты были полезны на любом этапе игры (при рейтах от х20 и ниже - на рейтах от х100 баланс искажается за счет сверхвысоких скоростей постройки). При чем у каждого отдельного юнита была своя специфика - юниты были эффективнее против одних юнитов и одновременно менее эффективны против других.
Балансировка всего этого добра была относительно проста. Боевых юнитов было всего около двух десятков, да помножить на параметры - всего пара сотен варьируемых метапараметров (т.е. совокупностей "юнит-параметр"). Ветку из дохулиарда вариантов хорошо подрезали граничные условия - была заранее известна роль юнита, его цена, приблизительные параметры (т.е., например, ЛИ не может имет 2.000.000 брони) и так далее. Даже со взаимным влиянием юнитов друг на друга (если уменьшить атаку у, скажем, Эсминца, то это одновременно увеличит эффективность ВСЕХ ОСТАЛЬНЫХ юнитов) балансировать было (как оказывается теперь - раньше я так, понятно, не считал) относительно легко. Ведь был коэфициент мощности залпа - меняя его по отношению к отдельному кораблю можно было тонко настраивать взаимную эффективность юнитов. С балансом для КК всё иначе. СОВСЕМ иначе.
Начнем с того, что параметр "коэфициент мощности залпа" (далее - КМЗ) должен высчитываться автоматически по неким формальным параметрам, таким как скорость юнита, его размер, коэфициент защитованности итд. Это нужно для того, что бы получив укомплектованный игроком юнит, игра могла вычислить мощность залпа этого юнита против любого другого корабля в игре и, главное, вычислить тот же параметр всех кораблей в игре против этого юнита. Этот параметр напрямую влияет на соотношения экономической эффективности юнита. А нужен он для того, что бы сохранялось разнообразие кораблей, а не было бы так, что ЛИ - это увеличенный в 4 раза по параметрам ТИ. Запомним и продолжим
В эпоху до КК параметры юнитов были атомарными. Т.е. просто была абстрактная "атака" - без конкретики. В КК параметры составные. Т.е. "атака" - это сумма огневой мощности всего установленного на корабле вооружения. На секундочку - только на атаку влияет: сколько видов вооружения установлено на юнит; какие типы вооружений установлены на юнит; какое количество каждого типа установлено на юнит. Т.е. параметр из атомарного сразу становится составным. Вроде не страшно, да? Всего лишь увеличилось в три раза количество параметров - мелочи вроде. Только есть НЮАНС - каждый из этих параметров ТАК ЖЕ влияет на КМЗ. Ведь, например, ионка лучше бьет по щитам, а гаусс - наоборот, по броне. Уже интересней, да? А теперь вспоминаем, что кроме оружия есть еще и броня (несколько типов) и щиты (несколько типов)
А еще есть корпус. Раньше он вообще не фигурировал в расчётах, как отдельная величина. Корпус и корпус - фигли его учитывать? На самом деле у корпуса есть некая "вместимость" - сколько разного вида деталей можно забить в этот корпус так, что бы он не лопнул. Ну, еще один параметр - ну, ерунда, право! А вот и нет - раз у корпуса есть вместимость, это значит, что у деталей - двигателей, оружия, щитов - появился новый параметр "размер". Ну, что бы не получилось, что в ЛИ впихнули гауссовку - и понеслась!
Еще не запутались? Ладно, продолжим. Что мы там еще не упомянули? А, двигатели. Та же история. Раньше у двигателей было два параметра - скорость и потребление. Атомарные, понятно. Теперь они составные. Ну, почти. Потребление, например, простое. Ну, хоть что-то простое. Потребление тупо зависит от типа двигателя. Но потребление - само по себе входит в параметр "дальность полёта" - т.е. как далеко может улететь данный конкретный корабль на имеющихся запасах топлива. Ой, забыл. Есть еще параметр - запас топлива. Это остаток вместимости корпуса после того, как в него впихнули все нужные детали. Т.е. размер корпуса надо подбирать очень осторожно - делать его достаточно большим, что бы впихнуть всё оборудование и при этом - достаточно мелким, что бы ЛИ в базе без апгрейдов вдруг не стал летать на 20 галактик туда-сюда. Чуть не забыл про скорость.
Скорость влияет на время полёта. Ну, раньше так было. Она и сейчас влияет. Проблема в том, что раньше скорость была просто волевым параметром. Мы говорили, что, скажем, на этом корабле ионный двигатель дает такую скорость, а вот на этом - другую. И ниипёт! Теперь так нельзя. Скорость должна зависить от комплектации корабля. Взяли корпус Уника, впихнули туда кучу плазменных орудий и поставили химический движок? Да ради бога! Игрок в своём праве! Только вот летать эта улитка будет медленнее, чем ЗС. Ай, забыл! Еще у КАЖДОЙ детали корабля, включая броню, есть собственный ВЕС. Стоп. Не вес. Масса (тут я опускаю несколько абзацев, которые будут описывать встреченные проблемы с размерностью величин. Упомяну только аббревиатуры СИ, МКГСС, единицы измерения Н, кгс, м/с (при чем это совсем не скорость!), т.е.м. (это не мат - это "техническая единица массы") и другие, а так же опущу с пол-десятка формул). А у двигателей есть тяга. И вот формула из массы и тяги уже дает скорость. Блин! Совсем забыл! Четырьмя абзацами выше я же писал, что скорость влияет на КМЗ! И это всё надо одновременно держать в голове... А я еще не закончил!
Продолжаем. Еще есть цена. Традиционно - цена корабля раньше была атомарной и декларативной, а теперь составная и жестко определяется суммой стоимости всех компонент корабля. Естественно, она непосредственно влияет на боевую эффективность! Ну, подумайте сами - ТИ стоит тыщи в метале, СН стоит десятки миллионов. Но при этом ТИ против СН ЭФФЕКТИВНЕЕ! А всё дело в волшебных пузырьках - цене. Потому что мы не можем просто сравнивать оружие, щиты и броню двух кораблей. Мы должны сравнить - а сколько эти корабли стоят? И если мы возьмем цену 1й СН и на эти деньги накупим ТИ, а затем стравим их друг с другом - только тогда мы сможем сказать, что да, эффективнее первый юнит (или второй - тут уж как карта ляжет).
А еще есть броня. Бла-бла-бла атомарный бла-бла-бла составной. Броня рассчитывается из ёмкости корпуса. Ёмкость корпуса - это т.н. "заброневой объем". И как не бейся - для защиты этого объема нужно вполне конкретное количество броневых плит. Т.е. броня однозначно определяется типом брони и объемом корпуса. В который должны влезть определенное количество деталей - ровно такое, количество оружия, щитов и двигателей, что бы осталось достаточно места для бака. При чем ровно такое, что бы корабль не получился инвалидом, который не может долететь до луны, но и не получился "быстрым Гонзалесом" - который может облететь всю Вселенную и еще останется пол-бака. При чем все компоненты имеют вес. Который напрямую влияет на скорость, которая определяется тягой двигателя. Который тоже имеет вес и объем... И всё это влияет на КМЗ. И КАЖДЫЙ из параметров влияет на боевую эффективность корабля. И каждый - по-своему. И всё это нужно забалансировать. И не забыть особенности оружия. И не забыть сделать так, что бы корабли были уникальными...
Как голова, не кружится? А ведь я только начал, на самом деле! Поверху этого всего пиршества есть еще и сторонние соображения, а так же дополнительные ограничения.
Например - все компоненты должны отличаться между собою, что бы игрок перед выбором компонент ДЕЙСТВИТЕЛЬНО думал и выбирал. А еще - компоненты не должны сводится друг к другу. Т.е. их параметры и УДЕЛЬНЫЕ ПАРАМЕТРЫ должны быть уникальными. Если ионный двигатель по характеристикам - это 40 химических, то зачем ионный нужен в игре? Правильно, незачем.
Например - нельзя поставить часть детали. Если получается, что до нужных характеристик тебе не хватает четверти мощности ионки, то нельзя поставить 1,25 двигателя - нужно заново перебалансировать весь корабль. А это отразится на эффективности ВСЕХ ОСТАЛЬНЫХ кораблей - т.е. надо перебалансировать ВСЁ.
Например - при всех ограничениях на компоновку кораблей, у игроков должен быть выбор даже при создании ЛИ. Т.е. даже для само малого корпуса должны оставаться варианты комплектации.
Например... Впрочем, здесь я пожалуй остановлюсь. Не буду выбалтывать все секреты - пусть игрокам будет интереснее изучать варианты и пробовать что-то новое. Я гарантирую, что заметная часть базовых кораблей будет неоптимальна так что останется место для экспериментов даже с базовой комплектацией. Не говоря уже о том, что всегда на основе любого из корпусов можно придумать что-то своё, уникальное.
Собственно, итог. За две недели я ТРЕТИЙ раз начал балансировку с нуля. При чем я имею ввиду не просто "рядовую перетряску" - когда изменение одного корабля приводит к перебалансировке остальных, а именно концептуально, когда меняются сами базовые соотношения между фундаментальными параметрами, типа соотношения атаки и защиты корабля. Или отношение тяги к массе. А сколько работы было проделано, что бы просто найти эти величины?!
В общем, процесс идет. Уже видны его очертания, но всё еще может поменятся. Про игру я помню и уделяю ей всё свободное от работы и ИРЛ дел время.
Проблема состоит в следующем. Раньше юниты были сбалансированы "в целом". Т.е. их характеристики - цена, атака, защита, щиты, скорость итд - были выравнены друг относительно друга. Грубо говоря, средняя цена эффективности всех боевых юнитов была равна единице. Т.е. не было юнитов, которые принципиально по эффективности были лучше или хуже других - все юниты были полезны на любом этапе игры (при рейтах от х20 и ниже - на рейтах от х100 баланс искажается за счет сверхвысоких скоростей постройки). При чем у каждого отдельного юнита была своя специфика - юниты были эффективнее против одних юнитов и одновременно менее эффективны против других.
Балансировка всего этого добра была относительно проста. Боевых юнитов было всего около двух десятков, да помножить на параметры - всего пара сотен варьируемых метапараметров (т.е. совокупностей "юнит-параметр"). Ветку из дохулиарда вариантов хорошо подрезали граничные условия - была заранее известна роль юнита, его цена, приблизительные параметры (т.е., например, ЛИ не может имет 2.000.000 брони) и так далее. Даже со взаимным влиянием юнитов друг на друга (если уменьшить атаку у, скажем, Эсминца, то это одновременно увеличит эффективность ВСЕХ ОСТАЛЬНЫХ юнитов) балансировать было (как оказывается теперь - раньше я так, понятно, не считал) относительно легко. Ведь был коэфициент мощности залпа - меняя его по отношению к отдельному кораблю можно было тонко настраивать взаимную эффективность юнитов. С балансом для КК всё иначе. СОВСЕМ иначе.
Начнем с того, что параметр "коэфициент мощности залпа" (далее - КМЗ) должен высчитываться автоматически по неким формальным параметрам, таким как скорость юнита, его размер, коэфициент защитованности итд. Это нужно для того, что бы получив укомплектованный игроком юнит, игра могла вычислить мощность залпа этого юнита против любого другого корабля в игре и, главное, вычислить тот же параметр всех кораблей в игре против этого юнита. Этот параметр напрямую влияет на соотношения экономической эффективности юнита. А нужен он для того, что бы сохранялось разнообразие кораблей, а не было бы так, что ЛИ - это увеличенный в 4 раза по параметрам ТИ. Запомним и продолжим
В эпоху до КК параметры юнитов были атомарными. Т.е. просто была абстрактная "атака" - без конкретики. В КК параметры составные. Т.е. "атака" - это сумма огневой мощности всего установленного на корабле вооружения. На секундочку - только на атаку влияет: сколько видов вооружения установлено на юнит; какие типы вооружений установлены на юнит; какое количество каждого типа установлено на юнит. Т.е. параметр из атомарного сразу становится составным. Вроде не страшно, да? Всего лишь увеличилось в три раза количество параметров - мелочи вроде. Только есть НЮАНС - каждый из этих параметров ТАК ЖЕ влияет на КМЗ. Ведь, например, ионка лучше бьет по щитам, а гаусс - наоборот, по броне. Уже интересней, да? А теперь вспоминаем, что кроме оружия есть еще и броня (несколько типов) и щиты (несколько типов)
А еще есть корпус. Раньше он вообще не фигурировал в расчётах, как отдельная величина. Корпус и корпус - фигли его учитывать? На самом деле у корпуса есть некая "вместимость" - сколько разного вида деталей можно забить в этот корпус так, что бы он не лопнул. Ну, еще один параметр - ну, ерунда, право! А вот и нет - раз у корпуса есть вместимость, это значит, что у деталей - двигателей, оружия, щитов - появился новый параметр "размер". Ну, что бы не получилось, что в ЛИ впихнули гауссовку - и понеслась!
Еще не запутались? Ладно, продолжим. Что мы там еще не упомянули? А, двигатели. Та же история. Раньше у двигателей было два параметра - скорость и потребление. Атомарные, понятно. Теперь они составные. Ну, почти. Потребление, например, простое. Ну, хоть что-то простое. Потребление тупо зависит от типа двигателя. Но потребление - само по себе входит в параметр "дальность полёта" - т.е. как далеко может улететь данный конкретный корабль на имеющихся запасах топлива. Ой, забыл. Есть еще параметр - запас топлива. Это остаток вместимости корпуса после того, как в него впихнули все нужные детали. Т.е. размер корпуса надо подбирать очень осторожно - делать его достаточно большим, что бы впихнуть всё оборудование и при этом - достаточно мелким, что бы ЛИ в базе без апгрейдов вдруг не стал летать на 20 галактик туда-сюда. Чуть не забыл про скорость.
Скорость влияет на время полёта. Ну, раньше так было. Она и сейчас влияет. Проблема в том, что раньше скорость была просто волевым параметром. Мы говорили, что, скажем, на этом корабле ионный двигатель дает такую скорость, а вот на этом - другую. И ниипёт! Теперь так нельзя. Скорость должна зависить от комплектации корабля. Взяли корпус Уника, впихнули туда кучу плазменных орудий и поставили химический движок? Да ради бога! Игрок в своём праве! Только вот летать эта улитка будет медленнее, чем ЗС. Ай, забыл! Еще у КАЖДОЙ детали корабля, включая броню, есть собственный ВЕС. Стоп. Не вес. Масса (тут я опускаю несколько абзацев, которые будут описывать встреченные проблемы с размерностью величин. Упомяну только аббревиатуры СИ, МКГСС, единицы измерения Н, кгс, м/с (при чем это совсем не скорость!), т.е.м. (это не мат - это "техническая единица массы") и другие, а так же опущу с пол-десятка формул). А у двигателей есть тяга. И вот формула из массы и тяги уже дает скорость. Блин! Совсем забыл! Четырьмя абзацами выше я же писал, что скорость влияет на КМЗ! И это всё надо одновременно держать в голове... А я еще не закончил!
Продолжаем. Еще есть цена. Традиционно - цена корабля раньше была атомарной и декларативной, а теперь составная и жестко определяется суммой стоимости всех компонент корабля. Естественно, она непосредственно влияет на боевую эффективность! Ну, подумайте сами - ТИ стоит тыщи в метале, СН стоит десятки миллионов. Но при этом ТИ против СН ЭФФЕКТИВНЕЕ! А всё дело в волшебных пузырьках - цене. Потому что мы не можем просто сравнивать оружие, щиты и броню двух кораблей. Мы должны сравнить - а сколько эти корабли стоят? И если мы возьмем цену 1й СН и на эти деньги накупим ТИ, а затем стравим их друг с другом - только тогда мы сможем сказать, что да, эффективнее первый юнит (или второй - тут уж как карта ляжет).
А еще есть броня. Бла-бла-бла атомарный бла-бла-бла составной. Броня рассчитывается из ёмкости корпуса. Ёмкость корпуса - это т.н. "заброневой объем". И как не бейся - для защиты этого объема нужно вполне конкретное количество броневых плит. Т.е. броня однозначно определяется типом брони и объемом корпуса. В который должны влезть определенное количество деталей - ровно такое, количество оружия, щитов и двигателей, что бы осталось достаточно места для бака. При чем ровно такое, что бы корабль не получился инвалидом, который не может долететь до луны, но и не получился "быстрым Гонзалесом" - который может облететь всю Вселенную и еще останется пол-бака. При чем все компоненты имеют вес. Который напрямую влияет на скорость, которая определяется тягой двигателя. Который тоже имеет вес и объем... И всё это влияет на КМЗ. И КАЖДЫЙ из параметров влияет на боевую эффективность корабля. И каждый - по-своему. И всё это нужно забалансировать. И не забыть особенности оружия. И не забыть сделать так, что бы корабли были уникальными...
Как голова, не кружится? А ведь я только начал, на самом деле! Поверху этого всего пиршества есть еще и сторонние соображения, а так же дополнительные ограничения.
Например - все компоненты должны отличаться между собою, что бы игрок перед выбором компонент ДЕЙСТВИТЕЛЬНО думал и выбирал. А еще - компоненты не должны сводится друг к другу. Т.е. их параметры и УДЕЛЬНЫЕ ПАРАМЕТРЫ должны быть уникальными. Если ионный двигатель по характеристикам - это 40 химических, то зачем ионный нужен в игре? Правильно, незачем.
Например - нельзя поставить часть детали. Если получается, что до нужных характеристик тебе не хватает четверти мощности ионки, то нельзя поставить 1,25 двигателя - нужно заново перебалансировать весь корабль. А это отразится на эффективности ВСЕХ ОСТАЛЬНЫХ кораблей - т.е. надо перебалансировать ВСЁ.
Например - при всех ограничениях на компоновку кораблей, у игроков должен быть выбор даже при создании ЛИ. Т.е. даже для само малого корпуса должны оставаться варианты комплектации.
Например... Впрочем, здесь я пожалуй остановлюсь. Не буду выбалтывать все секреты - пусть игрокам будет интереснее изучать варианты и пробовать что-то новое. Я гарантирую, что заметная часть базовых кораблей будет неоптимальна так что останется место для экспериментов даже с базовой комплектацией. Не говоря уже о том, что всегда на основе любого из корпусов можно придумать что-то своё, уникальное.
Собственно, итог. За две недели я ТРЕТИЙ раз начал балансировку с нуля. При чем я имею ввиду не просто "рядовую перетряску" - когда изменение одного корабля приводит к перебалансировке остальных, а именно концептуально, когда меняются сами базовые соотношения между фундаментальными параметрами, типа соотношения атаки и защиты корабля. Или отношение тяги к массе. А сколько работы было проделано, что бы просто найти эти величины?!
В общем, процесс идет. Уже видны его очертания, но всё еще может поменятся. Про игру я помню и уделяю ей всё свободное от работы и ИРЛ дел время.