Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Разработка мода на github? No way... Или?
GAMEINATOR forums > S.T.A.L.K.E.R. > Мастерская: создание модов для S.T.A.L.K.E.R.
aka_sektor
Вот интересно, можно ли разработкой мода заниматься на github? Наскока эт удобно вообще? Пока один плюс, коммиты

UPD:
Ха, ну конечно, второй плюс, можно ещё кого нить подключить на это дело
Mirus
aka_sektor, помню попадалось статья, что гитхаб интегрировали в среду юнити, ток что если плакат думаю можно найти информацию
Trollz0r
Цитата(aka_sektor @ 04.07.2018, 00:54) *
можно ли разработкой мода заниматься на github
Нильзя, потому что за скрытные репозитории гитхуб хочет денежку, а в открытых все стестняются.

Цитата(aka_sektor @ 04.07.2018, 00:54) *
Наскока эт удобно вообще?
Плюсы:
1) удобная доставка контента каждому участнику
2) возможность быстро откатить сломанное
3) история правок
Минусы:
1) малый объём хранилища на гитхубе или битбукете
Поэтому в репо пихается не абсолютно всё, а только то, что часто изменяется.
ForserX
aka_sektor, вот не надо гитхаб забивать модами, плиз.
abramcumner
Цитата(ForserX @ 04.07.2018, 12:52) *
aka_sektor, вот не надо гитхаб забивать модами, плиз.

z_lol1.gif
ForserX
abramcumner, я не шучу. Был "SOCIAL CODING", станет "SOCIAL MODDING"...
abramcumner
Цитата(ForserX @ 04.07.2018, 13:20) *
abramcumner, я не шучу. Был "SOCIAL CODING", станет "SOCIAL MODDING"...

И что? Мод - это тоже программное обеспечение. Ну станет "сошиал моддинг" пятой по важности фичей гитхаба вместо "сошиал кодинг", чем это тебе помешает?

А вот ограничения по размеру на гитхабе вполне реальны. У меня помнится гитхаб не принимал папку SDK(та, в которой сторонние библиотеки, необходимые для сборки движка) из-за превышения 250Мб.
aka_sektor
Цитата(Mirus @ 04.07.2018, 08:12) *
гитхаб интегрировали в среду юнити

Да не, касаемо сталкера.

Цитата(Пачкулио Пестрини @ 04.07.2018, 11:25) *
за скрытные репозитории гитхуб хочет денежку

Предполагал такое, так а если разработка открытая? Ограничить же тех кто может вносить правки можно должно быть.


Цитата(Пачкулио Пестрини @ 04.07.2018, 11:25) *
малый объём хранилища на гитхубе или битбукете
Поэтому в репо пихается не абсолютно всё

Ну да, похоже ток конфиги, да скрипты.

Интересно, как устроено у разработчиков Lost Alpha: https://youtu.be/TJaE8fo4bSk?t=6162
ForserX
Цитата(aka_sektor @ 04.07.2018, 14:33) *
Интересно, как устроено у разработчиков Lost Alpha: https://youtu.be/TJaE8fo4bSk?t=6162

Битбакет же. Сорцы движка они недавно на GitLab перенесли.
aka_sektor
К вопросу о свободном месте, можно же коммит написать, и просто приложить, например, текстура для скачивания с облака какого-нить.

Цитата(ForserX @ 04.07.2018, 14:42) *
Битбакет же

Он удобнее ГитХаба?
Cossack-HD
Social Development/Modding уже реализован в скуриме, а вообще начиная с TES III. Разрабы пилят правки, пакуют их в патчи, патчи загружаются в определённом порядке и одновременно мержатся. Да, можно мержить несколько патчей в один патч, но прелесть в том, что это вовсе не обязательно делать.

Даже на примере ванильного скурима с DLC:
Грузим мастер файл skyrim.esm
Грузим патч update.esm и мержим
Грузим DLC dawnguard.esm и мержим (оверрайдим скурим и апдейт)
Грузим DLC dragonborn.esm и мержим (оверрайдим скурим и апдейт)
Грузим моды типа betterDawnguard.esp и мержим

Ну и так далее.

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

Так что лучше курить систему иерархии мастеров и плагинов Creation Engine - там зачастую совмещается гесовместимое. Скрипты нормально и независимо друг от друга и разных плагинов подвешиваются на евент триггеоы и таймеры. А ещё есть моды на моды (на моды).
У меня больше сотни плагинов в загрузчике скурима и все они нормально сосуществуют.

Курите программку tesvedit - ей можно редактировать моды/плагины и там легко понять структуру/иерархию. У каждого плагина есть мастер файл т.е. dependency. У некоторых мастеров тоже есть dependency (DLC или update.esm сам по себе работать не будет).

В сталкере есть зачатки похожей системы (папка mods, которая любит архивы), но сталкер оверрайдит файлы целиком, а не мержит секции. С учётом завязанности кучи модов на all.spawn и всякие xr_motivator.script/bind_stalker.script, один большой мод просто затирает другой. А в скуриме всё мержится на лету.
aka_sektor
А посоветует кто Гит для локального использования, как раз без ограничений по месту получится.

Говорят tortoisegit неплохой.

Пока непонятно, как работать с ними и где качать. Мож видео есть какие.
mortan
Цитата(Cossack-HD @ 04.07.2018, 14:49) *
А в скуриме всё мержится на лету.

в скайриме почти все интересное зашито в движок, учитывая что сталкер наполовину написан на скриптах то это не совсем то к чему можно стремиться
ForserX
Цитата(aka_sektor @ 04.07.2018, 14:47) *
Он удобнее ГитХаба?

Нет. Мне перестал нравиться из-за апдейтов, которые сделали его медленным.
Цитата(aka_sektor @ 04.07.2018, 15:07) *
Говорят tortoisegit неплохой.

Олдскульный и стабильный. Но сложный для новичка. Пользуюсь им время от времени. Но совету GitHub desktop.
aka_sektor
Кароч потестил локальную систему:
https://gitforwindows.org/
https://tortoisegit.org/download/

Создал ветку Dev через Switch/Checkout

Дальше добавил gamedata с .ltx файликом, кликнул по папке и выбрал Git commit -> Dev

Имя юзера и мыло ввел.

Ввел текст коммита, поставил галку на Show Unversioned Files, выделил файл.
Эт кстати когда много файлов изменено может стать головняком ещё тем. Либо есть способ сделать чтобы автоматом все файлы выбирало.

Но этот Show Unversioned Files в логе коммитов, потом в списке выводит какой файл был изменен или добавлен, и получает значок в Actions.
Так что по любому нужен.

Попробовал .dds текстуру добавить. С ней уже галочка изменений так не работает. .dds в логе, и имеет значок, ток если добавляешь.
Поэтому ориентация изменений видимо ток по тексту коммита, прям в нём надо писать какая текстура изменилась.

Аналогично видимо будет с остальными НЕ текстовыми файлами, звуками, анимками, моделями, .xr

Цитата(ForserX @ 04.07.2018, 17:32) *
совету GitHub desktop.

Он работает локально без связи с сайтом?
abramcumner
Цитата(aka_sektor @ 04.07.2018, 17:40) *
Ввел текст коммита, поставил галку на Show Unversioned Files, выделил файл.
Эт кстати когда много файлов изменено может стать головняком ещё тем. Либо есть способ сделать чтобы автоматом все файлы выбирало.

Над списком файлов есть строка со словами: All, None, Unversioned, ... Если нажать на all, выберутся все файлы, на Unversioned - выберутся все еще не добавленные файлы.

Цитата
Попробовал .dds текстуру добавить. С ней уже галочка изменений так не работает. .dds в логе, и имеет значок, ток если добавляешь.
Поэтому ориентация изменений видимо ток по тексту коммита, прям в нём надо писать какая текстура изменилась.

Не понятно. В измененных файлах коммита показываются все файлы(и текстовые и бинарные), затронутые коммитом.
aka_sektor
Цитата(abramcumner @ 04.07.2018, 17:48) *
Над списком файлов есть строка со словами

Сэнькаю. Понял.

Цитата(abramcumner @ 04.07.2018, 17:48) *
В измененных файлах коммита показываются все файлы

Я понял в чем дело.

Изначально добавил текстуру абакана, а потом заменил её на АК74, переименовав в абаканскую.
Но прикол в том, что у них байт в байт одинаковый размер, и видимо tortoisegit не увидел никаких изменений.
abramcumner
Цитата(aka_sektor @ 04.07.2018, 18:08) *
Изначально добавил текстуру абакана, а потом заменил её на АК74, переименовав в абаканскую.
Но прикол в том, что у них байт в байт одинаковый размер, и видимо tortoisegit не увидел никаких изменений.

Так точно. Хитрый гит отслеживает переименования файлов по хешам. И все равно в изменениях должно значиться переименование.

Да еще, если смотришь изменения по иконкам, то они довольно глючные. Только хардкор, только "Show log" в тортоисгите или "git status" в консоли.
Cossack-HD
Цитата(mortan @ 04.07.2018, 18:33) *
Цитата(Cossack-HD @ 04.07.2018, 14:49) *
А в скуриме всё мержится на лету.

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

Тем не менее, в скуриме можно вызывать кастомные анимации по скриптам и даже делать прон. Можно спавнить интерактивные обьекты типа костры/палатки. Есть даже мод а-ля симулятор строителя и прочая чушь - но это всё есть, несмотря на "всё зашито в движок". А ещё в скуриме классно работают меши, которые аттачатся на скелеты и свопаются - я про экипировку и "NPC несёт вязанку дров/имитирует уборку пола шваброй". Под это дело в скуриме около 50 слотов на человекоподобном скелете. Моды активно юзают этот щедрый запас.
SKSE даёт много скриптовых возможностей.

Вообще речь шла о том, что скурим как-бэ делает самосборку со всеми мержами мастеров и плагинов во время запуска, так что моддеры могут просто разделить один проект на отдельные плагины чтобы не вставлять друг другу палки в колёса и работать с учётом модульности.

Рентген по своей сути очень монолитный - один основной спавн, один game.graph, всё нужно компилировать и т.п. То есть для совместной разработки придётся шарить ресурсы SDK (*.level файлы и прочее) и после мержев всё это компилировать и дебажить. Гиблое это дело. Лучше запилить WYSIWYG и автомерж ресурсов и скриптов с конфигами и прочими спавнами. Чтобы спавны и геометрия склеивались (как в скуриме) без перекомпиляций. Т.е. один большой мод разделён на несколько независимых архивов.

Я не говорю что гит столкиромод бесполезен, но он не решает первопричину, а как-бэ костыль к последствиям архитектуры движка.
aka_sektor
Цитата(abramcumner @ 04.07.2018, 18:29) *
все равно в изменениях должно значиться переименование

Нету!

Сам проверь, и доложи о результатах, если не лень.

Пришлось чекбокс ставить, только сообщение. Чтобы коммит принялся.
abramcumner
Цитата(aka_sektor @ 04.07.2018, 18:44) *
Сам проверь, и доложи о результатах, если не лень.

У меня тоже самое. Из-за того, что размер и дата не изменились, гит считает, что файл не изменился. Печально.
mortan
Cossack-HD, увы, маловероятно что кто-нибудь возьмётся переписать сталкер под такую же систему. Ну и про скайрим не совсем правда, ограничения есть и от них никуда не деться, к примеру нельзя создать полностью свой класс НПС а только использовать уже существующий. SKSE вообще волшебная штука, если бы подобное появилось в сталкере раньше то актуальность сорцов была бы под большим вопросом) Ну, для модеров, а те кто сорцами заинтересовался всё равно бы ими и занимались.
[Codepoet]
Вообще гит в своём "ванильном" виде работает только с текстовыми данными из-за особенностей того, как принимаются изменения. Нас на работе по бошке били за загрузку бинарников в репо... Есть, правда, приблуда под названием Git LFS специально для больших файлов - может с этой фигнёй будет пучком.
ForserX
Цитата([Codepoet] @ 04.07.2018, 20:01) *

Нас на работе по бошке били за загрузку бинарников в репо...

Классика же. В окси тоже за такое по бошке бьют. Да и в любом большом OpenSource проекте. Допускается они SDK бинарки.
autistic
Цитата(aka_sektor @ 04.07.2018, 04:54) *
Вот интересно, можно ли разработкой мода заниматься на github?

Заниматься разработкой можно и нужно. Только не следует путать инструменты и средства. Под инструментами мы понимаем такие привычные штуки как: Bug tracker, Version Control, Code collaboration tools, Continuous Integration, Build System, Integrated Development Environment ип пр. Под средствами мы понимаем человеческие ресурсы, знания, опыт, денежные средства и пр.
Соответственно, разработкой имеет смысл заниматься если есть средства, можно с минимальным набором инструментов (в зависимости от задачи). А вот наоборот разрабатывать что-либо исходя из наличия инструментов, но при этом не имея средств, категорически невозможно.
RayTwitty
А зачем вообще на гитхаб лить бинарники? Он же как бы для другого задумывался.

Лично я сторонник того, что каждый инструмент имеет свое назначение и не нужно заниматься колхозом.

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

Цитата(aka_sektor @ 04.07.2018, 02:54) *
Наскока эт удобно вообще? Пока один плюс, коммиты

Я бы почитал про то, что такое системы контроля версий в целом и git в частности. При наличии понимания этих вопросов, сабж "удобно ли юзать в моддинге" отпадет сам собой.

Если моддинг заключается в правке программного кода (в т.ч. разметка интерфейсов, конфиги и т.д.), то конечно будет удобно. Если ты правишь текстуры, собираешь васянку - вряд ли.
aka_sektor
Цитата(RayTwitty @ 04.07.2018, 22:21) *
А зачем вообще на гитхаб лить бинарники?

Незачем, верно. Эт отдельный репо с сырцами ток, и релизить там.

Цитата(RayTwitty @ 04.07.2018, 22:21) *
не нужно заниматься колхозом

Цитата(RayTwitty @ 04.07.2018, 22:21) *
Если ты правишь текстуры, собираешь васянку - вряд ли.

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

Может это и не верно, и по старинке по памяти, либо в блокнот писать. А если чет на полпути бросил, поди вспомни, че где менял, и че не дописал. Ты ж не будешь вот так прям в блокнот выписывать это все.
В случае чего удобно откат сделать.
RayTwitty
Цитата(aka_sektor @ 04.07.2018, 23:13) *
А если чет на полпути бросил, поди вспомни, че где менял, и че не дописал.

Для этого есть, например канбан-доска, которая отражает весь рабочий процесс (что делается, что было сделано и т.д.). Гит в любом случае не покажет тебе дифы в бинарниках.
Diesel
RayTwitty, я прочитал сперва кабан-доска.

Trollz0r
Репозиторий нужен, если над модом работает больше одного человека и мы говорим о моде с новыми локациями (типа боржча smile.gif ).

Вот живой пример. Есть моделер в городе А, и есть левелдиз в городе Б.
Моделер моделит, левелдиз ставит пропсы и компилирует локу. Как нам доставить контент от моделера к левелдизу? Вариант 1 - при каждом изменении вручную собирать архив, стараясь не пропустить ни единого изменённого файла. Вариант 2 - написать программку, которая будет это делать автоматически (как раз для этого КД написал rc.pl https://xray-engine.org/index.php?title=Resource_copier). Оба варианта предполагают, что моделер должен сам залить полученный архив куда-то, и затем передать ссылку на него дизигнеру. Это нудно, скучно и
неудобно.

Есть вариант 3 - использовать систему контроля версий. Как это работает?
Моделер единожды прокликивает нужные файлы и добавляет их под контроль системы, фиксирует изменения и тем самым получает некую отправную точку, к которой всегда можно будет вернуться, если что-то сломается или сотрётся ненароком. Затем полученный коммит проталкивается на сервер и становится виден всем остальным участникам. Левелдиз заходит на сервер, видит, что есть свежие изменения, и затягивает их к себе, одним кликом получая копию тех файлов, что есть у моделера. Расставив сотню деревьев, левелдиз тоже делает фиксацию и коммит. Ну и так далее. Все участники занимаются делом и не тратят время на бессмысленное лазание по папкам и файлообменникам.

Про незаменимость СКВ для программистов и писать не имеет смысла, всё и так понятно.

В борще используется меркуриал+битбакет. Почему? Потому что:
1) есть удобный клиент с русским интерфейсом (tortoise hg)
2) битбакет позволяет использовать непубличные репо для 6 человек бесплатно
3) на битбакете ограничение по размеру репо - 2ГБ, и этого вполне достаточно для нормальных модов
4) битбакет тоже имеет русский интерфейс, который всегда можно доперевести

Что мы пихаем в репо, кроме скриптов, конфигов и шейдеров? Бинарники движка и СДК, все .part в текстовом формате, группы, изменённые .object и .ogf, изменённые звуки и нетяжеловесные текстуры. Фиксировать частоизменяемые файлы типа ai_map.part, detail_object.part или маски террейна с разрешением 16к - плохая идея.

Сколько репозиториев делать? У нас их три:
1) равдата+геймдата
2) исходники движка и сдк (будем считать, что это один репо smile.gif )
3) исходники сцен в майе

Что будет, когда закончится место в хранилище? Тут можно применить метод, разработанный Мигой и Жулио в знаменитом блокбастере Н. Носова: загадим один репо, и перейдём в другой. Загадим другой, перейдём в третий, и так далее smile.gif а когда выгонят с сервиса - там видно будет. При этом, по идее, с каждой итерацией объём хранилища должен уменьшаться или как минимум не увеличиваться кардинально, т.к. в каждом новом репо из-под контроля должны изыматься файлы ресурсов, достигшие финальной версии.

Конечно, лучше всего запустить битбакет сервер на своём сервере, но это надо уметь.
aka_sektor
Цитата(RayTwitty @ 05.07.2018, 00:12) *
Гит в любом случае не покажет тебе дифы в бинарниках

Ааа... ты не про двиг, а про файлы которые не сравниваются.

Ну да, но для этого коммиты есть. Можно же по конкретному файлу получить список коммитов наверное.


Цитата(Пачкулио Пестрини @ 05.07.2018, 00:51) *
В борще используется меркуриал+битбакет

А вот интересно, как команды модов прошлых лет работали.

Насколько я читал на форумах, они скидывали наработки одному человеку и уже он все собирал.

С гитами много проще, но ведь они и не первый год существуют. Наверняка и в то время были, почему не использовали, не знаю... мож инет был дорогой.
DJ_Yar
Цитата(Пачкулио Пестрини @ 05.07.2018, 00:51) *
Расставив сотню деревьев, левелдиз тоже делает фиксацию и коммит.


... тем самым создавая мердж-конфликт бинарных файлов, который ты потом не сможешь разрешить и в итоге работа моделлера или дизайнера улетит в трубу. Подумай об этом ещё раз, а пока что по VCS не зачёт.
Молния в вакууме
Цитата(DJ_Yar @ 07.07.2018, 01:18) *
Цитата(Пачкулио Пестрини @ 05.07.2018, 00:51) *
Расставив сотню деревьев, левелдиз тоже делает фиксацию и коммит.


... тем самым создавая мердж-конфликт бинарных файлов, который ты потом не сможешь разрешить и в итоге работа моделлера или дизайнера улетит в трубу. Подумай об этом ещё раз, а пока что по VCS не зачёт.

Внезапно, начиная с 0.5 версии уровни(и не только) хранятся в текстовом формате.
По знанию сталкерского СДК не зачёт.
Trollz0r
Цитата(aka_sektor @ 04.07.2018, 23:49) *
А вот интересно, как команды модов прошлых лет работали.
Кидали архивы через обменники, а скрипты через скайп.
Цитата(DJ_Yar @ 06.07.2018, 23:18) *
... тем самым создавая мердж-конфликт бинарных файлов, который ты потом не сможешь разрешить и в итоге работа моделлера или дизайнера улетит в трубу. Подумай об этом ещё раз, а пока что по VCS не зачёт.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.