Перейти к содержанию
Mawrak

Call of Misery SDK (Экспериментальная сборка)

Рекомендуемые сообщения

 

Перенос всех объектов, моделей и текстур из Call of Misery на CoC SDK. Позволяет создавать кастомный спавн для Call of Misery с нуля, а также пересобирать оригинальный спавн Call of Misery (правда, с оговорками). 

За основу взят X-Ray SDK 0.7 RePack by DaaGuda, затем сверху накинут CoC SDK, а на него перенесены конфиги и ресурсы из CoM-а.

Присутствует тестовая локация, основанная на комбинации первой и второй версиях локации Way in zone (текстуры террейна и трава от первой, остальное от второй). На локации просто заспавнены объекты и мутанты без особой логики, чисто чтобы проверить, что все работает как надо. Ничего особенного от нее не ждите.

В основном архиве СДК в gamedata\levels и в rawdata\levels за исключением тестового уровня Way in zone лежит всякий мусор (архив заливал давно, тогда еще не очень понимал, что важно, а что нет), рекомендую все это почистить перед работой.

Важные моменты:

1) Запускать SDK нужно только через батник от Kontro-zzz. Иначе не будет работать.

2) С выходом Патча 1 стало возможно пересобирать изначальный спавн из Call of Misery. Для этого нужно перенести в геймдату СДК в папку levels уровни из геймдаты Call of Misery (удалив предварительно оттуда весь мусор), затем взять level.spawn и level.game из приложенного архива (это актуальные файлы, выдранные напрямую из all.spawn от Call of Misery) и закинуть их в геймдату СДК в папку levels с заменой по всем уровням. После этого можно декомпилировать и редактировать все локации, которые вам нужны, а затем пересобрать all.spawn.

При перекомпиляции оригинального спавна могут возникнуть следующие проблемы:

  • Состояние изначально лежащих на уровне пушек станет 100% (лечится исправлением параметра в СДК).
  • Изменения в активности симуляции (Возможно придется изменить коэффициенты).
  • Стекла в некоторых местах будут находится под неправильными углами (нормального решения я лично не нашел).

Но в целом спавн должен быть вполне рабочий.

3) При использовании не оригинальных локаций из CoM, необходимо удалить из скрипта игры itms_manager.script следующие строчки:

Спойлер

    if not has_alife_info("start_equipement_damaged") then
        xr_effects.damage_actor_items()
        --wild territory
        local sec = "itm_repairkit_tier_1"
        local pos = vector()
            pos.x = -214.39
            pos.y = 3.40
            pos.z = 102.27
        local gv_id = 1880
        local lv_id = 22625
        alife():create(sec,pos,lv_id,gv_id)
        --red forest
        sec = "itm_repairkit_tier_2"
        pos.x = -139.86
        pos.y = -6.19
        pos.z = -64.10
        gv_id = 2772
        lv_id = 6166
        alife():create(sec,pos,lv_id,gv_id)
        --agro underground
        sec = "itm_repairkit_tier_3"
        pos.x = 117.16
        pos.y = -7.06
        pos.z = -58.85
        gv_id = 3616
        lv_id = 230
        alife():create(sec,pos,lv_id,gv_id)
        
        give_info("start_equipement_damaged")
    end

Рабочий itms_manager.script приложен в архиве вместе с тестовой локацией. Если не удалить строчки, игра будет пытаться спавнить предметы на несуществующих уровнях, и это сломает скрипты (перестанут работать базовые механики и будет вылет при попытке созранить игру).

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

Скачать SDK

Скачать Патч 1 (Обязателен к установке)

Скачать тестовую локацию со спавном отдельно

Скачать распакованные level.spawn и level.game из Call of Misery

 

Спойлер

1) Исправлена регистрация класса Сидоровича в скриптах.

2) Восстановлена недостающая секция [smart_terrain].

 

Изменено пользователем Mawrak
26.05.2024 - добавлен Патч 1, обновлено описание
  • Лайк 5
  • Хабар 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Катапультируюсь.

  • Хабар 1

Берегите патроны, особенно если он последний.

IC i5-8400 CPU @ 2,80 GHz, 16 OGB RAM, GF GTX 1060 6GB.

%D1%82%D0%B5%D0%BD%D1%8C121.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Не знаю, сюда ли надо писать, но всё же:
Level editor работал с теми локациями, что уже были в СДК
Но я заменил геймдату в СДК на геймдату от COM и успешно декомпилировал COM-овскую  локацию, после чего level editor начал вылетать при запуске. Может что-то еще надо настроить, чтобы LE работал с COM?
 

Спойлер

FATAL ERROR
 
[error]Expression    : fatal error
[error]Function      : X:\stalker_addon\sources\trunk\xrCore\Xr_ini.cpp
[error]File          : X:\stalker_addon\sources\trunk\xrCore\Xr_ini.cpp
[error]Line          : 455
[error]Description   : <no expression>
[error]Arguments     : Can't open section 'prefetch_visuals_weapons'. Please attach [*.ini_log] file to your bug report
 

stack trace:

 
FATAL ERROR
 
[error]Expression    : fatal error
[error]Function      : X:\stalker_addon\sources\trunk\xrCore\xrDebugNew.cpp
[error]File          : X:\stalker_addon\sources\trunk\xrCore\xrDebugNew.cpp
[error]Line          : 230
[error]Description   : <no expression>
[error]Arguments     : nodefault reached
 

stack trace:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

baraholschik а зачем вы брали геймдату от COM-а? В этом SDK уже подготовленная геймдата, чтобы работать именно со спавн-элементами COM-а. Если брать чистую от COM-а, то тогда ничего вообще не будет работать, потому что там не прописаны секции корректно. Или я что-то неправильно понял в вашем сообщении?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Mawrak хех, да вы всë правильно поняли... это я чего-то не понял) 

Просто я сделал сборку на COM, а теперь решил ещё и с еë локациями поработать. Теперь, если я правильно понимаю, придётся сначала работать с локациями, а потом как-то накатывать сборку на это дело? 

Вообще для меня удивительно, что по сути сборка на COC настолько отличается от самого COC,  что СДК с ней не может работать. Как этот COM  создавали тогда? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

baraholschik так мой SDK сделан для работы с COM. Просто берете свой COM, берете из него levels, копируете это в мой SDK и декомпилируете. Потом там редактируете, компилируете что надо (если все открывается, а оно должно), берете результат и пихаете в игру обратно. Геймдаты SDK и игры держите отдельно, их вообще не надо перемешивать или переставлять, они должны быть всегда раздельны и жить отдельно (в обычном SDK тоже). Даже если вы в своей сборке добавляли секции, то вы все равно если берете изначальный спавн Call of Misery, там этого ничего не будет, и все должно открываться (при необходимости можно их просто прописать в SDK тоже).

Основные отличия COM от COC, которые мешают SDK просто работать с подставленной геймдатой, это параметры $spawn в секциях всего и вся. Это параметры нужны только SDK для того, чтобы сформировать спавн-листы объектов. В игре ничего не делают. Так вот, в Call of Misery в конфигах все эти параметры прописаны вообще на пофиг, прописаны неправильно, прописаны одинаковые по несколько раз, там вообще никто не предполагал, что это будут пихать в SDK. Соответственно, приведение всего этого безобразия в порядок и есть результат моей работы по конфигам. И если вы мою геймдату заменяете, то тогда вы по сути отменяете всю эту работу (и не только), и нужно все заново делать. Так что этого делать не нужно, SDK спокойно все будет собирать для игры и так.

А по локациям вы вообще что хотите сделать? Спавн или геометрию? Если только геометрию, то это вообще можно делать с пустым спавном на обычном SDK и не париться с этим монстром франкенштейна, так как я честно говоря не уверен, сможет ли он вообще это сделать. По идее должен, но я не тестировал, эта сборка SDK в первую очередь нацелена именно на сбор спавна. А если спавн, то собранный all.spawn должен быть более чем рабочим.

Изменено пользователем Mawrak
  • Аплодисменты 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Mawrak , вот оно как... достойнейшая работа, в таком случае, могу лишь выразить преогромнейшую благодарность. 

А насчёт локаций - хотелось бы просто наполнить уровни разными объектами, транспорт раскидать, хлам всякий, по мере прокачки умений расставить здания, тайники и ящики с лутом (разрушаемые) 

Принцип работы понял, СДК восстановлю до исходного и попробую заново

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

baraholschik надо понимать, на локациях есть статичные (геометрия) и динамичные (спавн) объекты. И они собираются совершенно по-разному. Добавить транспорт (с физикой), хлам, тайники, ящики - это все легко, это все идет в спавн. Добавить здания - это уже геометрия, там нужно будет компилировать всю локу снова, запекать освещение, пересобирать ИИ сетку, и т.д. Это просто другой процесс. Рекомендую ознакомиться с порядком сбора и того, и другого, тогда и понятнее будет, как СДК работает, то есть принципы его.

  • Хабар 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Mawrak вот это полезная инфа, спасибо

Я так понял, что например, поставить на локу нерабочий транспорт (декорация) и поставить здание - это технически одно и то же? Я когда то давно в СДК для ТЧ пытался работать, и поставив на локу тот же декоративный транспорт, мне приходилось менять ИИ сетку

И ещё вопрос есть: вот в билдах было много разрушаемых объектов, но они все были по итогу убраны - по какой причине? Движку тяжело обрабатывать столько динамических объектов? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
1 час назад, baraholschik сказал:

Я так понял, что например, поставить на локу нерабочий транспорт (декорация) и поставить здание - это технически одно и то же? Я когда то давно в СДК для ТЧ пытался работать, и поставив на локу тот же декоративный транспорт, мне приходилось менять ИИ сетку

В СДК отдельная вкладка под объекты геометрии. Если оттуда ставите транспорт, здание и т. д., то да, это все компилится в геометрию потом. Монстры, интерактивные объекты, динамические светильники, вейпоинты и всякое такое - в спавн. Единственное исключение - лестницы, по которым можно лазать - сам невидимый объект для "лазанья" ставится как объект геометрии, но собирается внутрь all.spawn (странно, но факт).

1 час назад, baraholschik сказал:

И ещё вопрос есть: вот в билдах было много разрушаемых объектов, но они все были по итогу убраны - по какой причине? Движку тяжело обрабатывать столько динамических объектов? 

Почему убраны - не скажу. Не знаю. Может потому что НПС не видят их, и застревают в них? Хотя им можно по идее убивать коллизию...

Могу сказать, что слишком много объектов может крашить 32-битный движок по памяти (по дефолту в CoM-е именно такой). Но обычно это НПС, когда прям море НПС устраивают бои стенка-на-стенку. Но вообще по памяти крашить что угодно может, и слишком активная симуляция тоже.

  • Хабар 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Для СДК выпущен Патч 1, который исправляет ошибки, и позволяет пересобирать оригинальный all.spawn из Call of Misery. Смотрите подробности в шапке.

Огромное спасибо @baraholschik за тестирование СДК и помощь в поиске багов!

  • Жму руку 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу