А ничё так идея, собрать свою толпу игроков-примархов, раскидать их по галактическим сервакам и призывать случайных аборигенов к Согласию, запуская "Эпсилон", если нубы и не слышали.
Энивей, сегодня, кажись, самый большой отчёт за всё их время существования.
*****
8 июля. Отчёт от Kyren.
Она таки переехала в Орландо. 420 миль с двумя людьми и двумя кошками - не так весело, как это звучит, но теперь у неё есть стол и кровать, так что дела должны пойти в гору.
Bartwe потратил весь день в давке багов по всем фронтам, некоторые по кроватям, некоторые по статусным эффектам, ну и далее по мелочам.
Omni работает над завершающими штрихами для крюка ниндзя. Это идёт уже несколько дней, но судя по описанием от него, выйдет что-то такое, чего точно стоит подождать.
Legris работает над интро расы Glitch, которое все ждут, и прогресс которого идёт плавно и без проблем.
Сама Kyren, как ранее упоминал Tiy, работает над уровневой системой для... всего. Это та часть цикла разработки, когда игра начинает обретать форму настоящей игры, и всё должно быть сделано правильно. А так же достаточно гибко, чтобы можно было легко и гибко менять баланс всего подряд.
А теперь присядьте, будут технические детали.
Из-за того, что очень многое в игре создаётся динамически, или имеет крайне гибкие параметры, огромному числу вещй попросту нельзя "приписать" какие-то параметры - это слишком ограниченно и скучно. Например, возьмём случайного монстра с определённым типом лап, которые должны давать ему бонус к скорости передвижения. Должен этот бонус быть одинаковым на каждом уровне генерации для всех монстров, которые получат этот же тип лап, или же монстры более высокого уровня развития должны получать больший прирост к скорости? Можно взять похожий сценарий, но с бонусом к прыжку, или бонусом к толщине брони, и так далее. Некоторые основные параметры *будут* вписаны в код игры (hardcoded), или будут определяться каким-нибудь фактором множителей, но суть одна - параметров для ввода катастрофически много, и столько же работы нужно провести над балансом. И не всё будет работать именно по такой схеме.
Любой случайно сгенерированный монстр имеет целую тонну параметров, которые *могут* быть зависимы от системы уровней. Неполный список: здоровье, энергия, физический урон, показатель отброса, сопротивление статусам, масса, скорость ходьбы и бега, скорость плавания, и так далее, и так далее. Далее идёт список статусных эффектов, их продолжительность и интенсивность, затем есть снаряды и прочие "летящие боеприпасы" (projectiles), у которых есть своя скорость, время существования, физический урон, статусные эффекты...
И назревает вопрос: как сбалансировать ВСЕ ЭТИ ПАРАМЕТРЫ, которые почти всегда хаотичны и случайны? Трюк в том, что тут нет определённых значений, каждый параметр - это функция системы уровней. Никто не хочет забивать всё в неизменяемом виде в код игры, потому что на правках баланса это сказывается крайне плохо в виду огромного числа работы. Так что, лучший вариант, к которому пришла команда, это выставление значений в виде *функций* системы левелинга в виде JSON.
Kyren не хочет писать математический парсер, который будет обрабатывать настоящие математические функции, но это нормально, так как никто не хочет использовать эти самые функции. Вместо них, тонны тонн и тонны параметров в параметрах будут работать вот так:
“baseMaxHealth” : ["cubic", "clamp", [1, 20.0], [50, 500], [80, 1000], [100, 3000]]
Понять эту штуку достаточно просто, это таблица <уровней> и <данных>. Но, благодаря чуду *интерполирования кубического сплайна* всё это превращается в прекрасную и плавную кривую, которую Kyren лень рисовать. Благодаря этому можно установить зависимость изменения параметров с изменением уровня, вместо выставления параметров напрямую. Ну и ещё это позволит проделать гигантскую работу над балансом с меньшей болью, хотя это всё равно будет боль 
Этот механизм уже прицеплен к некоторым формам основных штуковин, которые используют систему повреждений и характеристик, но всё ещё *много* чего осталось нетронутым, и далеко не всё, что имеет уровень, так просто. Ещё есть распределение биомов и распределение руд, существующий генератор оружия и щитов должен быть математически пересмотрен, а большая часть параметров в генерации монстров и NPC останется в виде таблиц, а не кривых, так как на данном этапе это нормально, ну и так далее.
Такие дела, надеюсь, никто не устал это читать.
EDIT.

Havoc из сообщества отметил, что кривая с применением кубической интерполации будет выглядеть жутко, и это правда! На самом деле это были а) цифры с потолка, и б) пример из кода, который идёт линейной интерполацией, а не кубической, но Kyren поменяла пример, так как кубическая выглядит более интересной для такого сообщения. На самом деле всё серьёзно, и нужно правильно выбирать разные типы интерполации, иначе можно получить не кривую, а прямую в рассчёте увеличения функции.
Сообщение отредактировал Caliber .50: 10 July 2013 - 9:16