Torn Posted November 19, 2012 Posted November 19, 2012 Создаю динамическую онлайн кампанию. В редакторе сделал 3 миссии, которые загружаются по триггеру LOAD MISSION в зависимости от исхода битвы или других условий. Проблема в том, что размер этих миссий стал 4-7 Мб. Миссия весом в 7 Мб загружается для клиентов сервера 5 минут! Очень долго. Эти же миссии без триггеров с LOAD MISSION весят 0.23 Мб. Если в миссии "А" весом 0.23 Мб сделать ссылку по триггеру LOAD MISSION на саму эту миссию "А", то вес миссии будет в 2 раза больше. Из-за постоянных отладок миссий, их размер все время растет т.к. в них пользуется 3-4 триггера с LOAD MISSION. Сейчас, думаю, если создам 10 миссий, то их размер из-за этой проблемы будет под 50Мб Можно ли исправить ситуацию, что бы триггерные миссии не загружались в основную миссию?
ED Team USSR_Rik Posted November 19, 2012 ED Team Posted November 19, 2012 Вызываемая миссия включается в контейнер вызывающей. Вообще лучше бы конкретный пример приложить (или в почту). Men may keep a sort of level of good, but no man has ever been able to keep on one level of evil. That road goes down and down. Можно держаться на одном уровне добра, но никому и никогда не удавалось удержаться на одном уровне зла. Эта дорога ведёт вниз и вниз. G.K. Chesterton DCS World 2.5: Часто задаваемые вопросы
Torn Posted November 20, 2012 Author Posted November 20, 2012 Да, именно в этом, на мой взгляд и есть две серьезные проблемы для создания связанных миссий. Пример обычной схемы динамической кампании: Есть ряд миссий в строгой последовательности N1,...,D1, C1 ,B1, А, B2, C2, D2,..., N2 , где "А" - начальная миссия и пусть начальный размер каждой миссии 1Мб. Нужно сделать так, чтобы при победе красных в "А" загружалась миссиия "В2", при поражении - "В1", ничья - перезагруз "А". В миссии "В2" логика такая же: при победе красных загружается "С2", при поражении загружается "А", при ничьей перезагружается "В2". Смысл для красных в том, чтобы последовательно пройти от "А" до "N2" и выиграть кампанию (войну). Смысл для синих зеркальный - пройти от "А" до "N1" и выиграть эту же кампанию. То есть идея перетягивания каната двумя командами. Это, как я знаю, было реализовано на серверах Авиасибирь, РФ, РАФ. Идея не нова, но все еще интересна. Проблема 1. "Самораздутие миссий" Чтобы кампания заработала, связываем триггерами Load Mission миссию "А" с соседними "В1", "В2" и с "А". Т.к. эти триггерные миссии загружаются в контейнеры, то имеем конечный размер "А" = 4Мб. Теперь также связываем миссию "В2" с "А" и "С2" в итоге имеем размер "В2" = 7Мб, т.к. "А" у нас весит не 1, а уже 4Мб. Дальше видно, что миссия "С2" будет весить 10Мб, миссия "D2" - 13Мб, а миссия "N2" = (3*N+1) Мб. То есть имеем сумму арифметической прогрессии и чем больше миссий в динамической кампании тем больше размер последних миссий. У меня загрузка миссии идет со скоростью 1 Мб за 1 мин., а соответственно миссии в 13Мб - 13 минут. Обычно после 2х минут ожидания клиент жмет Cancel и идет на другой сервер. Проблема 2. "Цепной эффект" Если требуется поправить одну миссию в такой динамической кампании, то придется перегружать эту поправленную миссию во все остальные миссии! Т.е. если мы нашли баг в миссии "А" и поправили его, то требуется сначала удалить все триггеры Load Mission во ВСЕХ миссиях кампании и переписать их всех (6*N-5) штук заново. На мой взгляд, если я нигде тут не ошибся, нужно сделать не загрузку миссии в контейнер, а просто указать имя загружаемого файла в Load mission, тогда не будет "самораздутия" и не будет влияния одной миссии на другую. Ведь даже в случае однонаправленной кампании имеем размер файлов в ~2 раза больше и цепной эффект при исправлении одной из них.
Torn Posted November 21, 2012 Author Posted November 21, 2012 Rik, какие комментарии? Косяк или нет? Я посмотрел миссии ЛокОн2, которые также связанны как я описал выше, но размер файлов везде небольшой (0.3 Мб). Похоже, что в Ло2 было реализовано все правильно в отличие от ДКС. Т.е. миссии, вызываемые по триггеру, не грузились в контейнер основной миссии. Так? Возможно от такой реализации загрузки миссий у нас периодически виснет сервер при смене карт, хотя в Ло2 все работало как надо. Если надо миссии напиши е-мэйл в личные сообщения, куда слать пример. Хотя и так вроде все понятно?
zerol Posted December 11, 2012 Posted December 11, 2012 Можно все таки услышать разъяснения? Если можно верните старый вариант миссий когда они не растут в объеме от миссии к миссии, есть желание сделать динамическую компанию, а не получается. Все же это баг или это так задумано и БСЭЖ? =Alpha=
ED Team USSR_Rik Posted December 11, 2012 ED Team Posted December 11, 2012 Я получил информацию, которая была нужна. Ответ был дан топикстартеру в переписке. Баг записан. На логику собственно кампании он не влияет - только на размер файла. Какие именно разъяснения нужны? Men may keep a sort of level of good, but no man has ever been able to keep on one level of evil. That road goes down and down. Можно держаться на одном уровне добра, но никому и никогда не удавалось удержаться на одном уровне зла. Эта дорога ведёт вниз и вниз. G.K. Chesterton DCS World 2.5: Часто задаваемые вопросы
zerol Posted December 11, 2012 Posted December 11, 2012 Я получил информацию, которая была нужна. Ответ был дан топикстартеру в переписке. Баг записан. На логику собственно кампании он не влияет - только на размер файла. Какие именно разъяснения нужны? Те которые я сейчас увидел выше. Думаю многим важна информация, что баг записан и при возможности его устранят. Спасибо. Ps Думаю, тем, кто делает динамические компании надо предупреждать в брифе, что следующие миссии будут загружаться продолжительное время. =Alpha=
Zart Arn Posted March 12, 2013 Posted March 12, 2013 ЕД! Почините связку миссий, пожалуйста. Эта идея с контейнерами - плохая. Нереально связать больше двух миссий, не говоря уже о динамической кампании, которую мы пытаемся сделать.
ААК Posted March 12, 2013 Posted March 12, 2013 Причём чинить надо срочно, в 1.2.4. Иначе не понятно, как комплектовать миссиями сервера. С логикой миссий-контейнеров, если у нас более 4-5 миссий - получаем уже нереальный размер, который никогда не подгрузится у клиента за приемлемое время. А на нормальных игровых серверах миссий 10 минимум должно быть. Пока что получается, что вы сами свой симулятор делайте неиграбельным такими вот багофичами. P.S. Того, кто придумал такую логику миссий-контейнеров - расстрелять за вредительство )
prok Posted March 12, 2013 Posted March 12, 2013 Странно, почему у меня такого не происходит? Одна миссия при завершении триггером ззапускает следующую, и так 5 штук. ★★★ ★★★
ED Team USSR_Rik Posted March 12, 2013 ED Team Posted March 12, 2013 Пока могу только посоветовать удалить вложенные миссии из вызывающей, сохранив их на диске в том же каталоге. Men may keep a sort of level of good, but no man has ever been able to keep on one level of evil. That road goes down and down. Можно держаться на одном уровне добра, но никому и никогда не удавалось удержаться на одном уровне зла. Эта дорога ведёт вниз и вниз. G.K. Chesterton DCS World 2.5: Часто задаваемые вопросы
Zart Arn Posted March 14, 2013 Posted March 14, 2013 Пока могу только посоветовать удалить вложенные миссии из вызывающей, сохранив их на диске в том же каталоге. Ну, здорово, спасибо! Как минимум, моя тестовая динамическая кампания из 12 миссий по этому методу работает и переключается отлично. Кому надо пусть контейнеры пользует, кому не надо пусть следит за тем, чтобы загружаемые файлы лежали в одном месте.
Recommended Posts