>>1063674 По этому случаю, тем кто не знает сообщаю. На канале Godot Engine проводятся стримы Godot Tomorrow https://www.youtube.com/@GodotEngineOfficial/streams на которых довольно приятный Эмилио лампово рассказывает о нововведениях и отвечает на вопросы из чата, так что посещайте
Я думал что смогу упростить разработку нейронками, просто сгенерить модель и довести до ума в блендере. А я по итогу этот блендер уже видеть не могу, как же от него тошно
>>1063773 Пытаться лбом пробить стену тупая затея. Обмануть работу мозга не получится. За любой работой стоит беграунд опыта. Хочешь меньше тратить усилий на моделинг? Набей руку в этом.
>>1063773 Пересилил себя снова открыть редактор. Почти закончил ретопологию, теперь нуно скачать какую-нибудь халявную голову. Как же блять этим заниматься.
>>1063860 Судя по модельке, в которой полигонов больше чем во всей моей игре, которой понадобится скелет, куча сложных анимаций и дохуя какой контроллер - ты уже порвал штаны, братан. Снижай скоп раз в 10.
>>1063879 Пробовал. И отдельным софтом и плагином для блендера. Возни получается не меньше, а то и больше, в нейронке я хотя бы просто промт вбиваю и жду подходящий результат без ебли с ползунками для каждой титьки.
>>1063895 Чем выше детализация, тем сложнее делать. Он там голову отлепить-прилепить не может, и, скорее всего, с 3д вообще не работал, но сразу йоба-графон хочет на нейросетях.
Надо здраво оценивать уровень своих скиллов и начинать с посильного.
Окей, сделал лоуполи голову. Так же сгенерил референсы через нейронку, затем по этим референсам сгенерировал хайполи модель, вокруг которой уже строил лоуполь. В итоге основа персонажа готова. Каждый раз как сюда поныть захожу нет-нет, да что-то сделаю. Надо чаще тут ныть.
>>1063933 > сгенерил референсы через нейронку, затем по этим референсам сгенерировал хайполи модель, вокруг которой уже строил лоуполь Вот против этого я и возражал всю дорогу, пока ты приходил ныть. В мейкхумане автоматически искаропки подставляется тебе лоуполи моделька, когда тебе надо выгрузить. Затем просто в блендере доделываешь особые приметы. А с появлением блендер-адона (ссылка выше) и вовсе переезжать не надо. Сразу в блендере генеришь модельку. Нужно просто день посидеть разобраться, вместо того чтобы ебаться с нейронкой, выгадывая бесплатные токены, а то и приплачивая. Признайся, проплатил премиум, а, а?
>>1063946 Чем быстрее эти вкатунцы нажрутся говна, тем быстрее ИИ пузырь лопнет и перестав окупаться. Эти гандоны уже и так память накрутили в 8-10 раз, даже старые плашки, которые на вряд ли используют, hdd стоит как SSD ппц.
Так что все норм, пусть говно страдает. Мне потребовалось меньше дня с перебором, чтобы понять, насколько это в реале кал (правда в другой области).
>>1063967 >перестав окупаться Так там и нет окупания, каждая генИИ компания пока просто сжигает деньги инвесторов. Но нет, как бы оно не лопалось, оно здесь, с нами, навсегда, и надо приспосабливать свой воркфлоу чтобы не отстать. Я например активно перевожу свою игру на годоте с помощью ИИ. Даже откопал старую ММО, в которую когда-то гонял, и зашел спросить у еще живых испанских и португальских гильданов, насколько им перевод - сказали заебись, как нативно.
Указывать тег "ИИ" в стиме я, конечно же, не буду.
>>1063946 Какие бесплатные токены, о чем речь? Все генерится из коробки в ComfyUI на видюхе с пк который собрал в сентябре. Вся сборка 80к из которых видюха 20. Да, не 4к генерация, но 1024х1024+ тянет. Короткие видосики в малом разрешении на случай необходимости анимировать спрайт, даже с прозрачным фоном, какая-никакая музыка, надомная или на основе понравившегося тебе автора с CC0 лицензией.
Пробема с MH в том что я опять вынужден работать с художкой, от которой уже тошно. А с нейронками я превращаю прцоесс в конвейер автоматических действий.
>>1063997 > пк который собрал в сентябре Эх, а у меня не было денег на пк в сентябре. А щас и подавно нет. И в ближайшие годы не будет. Буду пилить тривряды и тетрисы на годоте, потому что зион-комплект и ПЕЧ 1060
Кто тут топит за MH, заебень мне персонажа как на пикрил. Не один в один модель, а базовую чиби которую нужно будет просто оденть. И я уверую и буду тунелить MH. Не понтов ради, сейчас серьезный вопрос во что вкладывать больше времени. Нейронки пока выигрывают.
Растапырил таки руки в Т-позу, вроде получилось окей. Закинул модельку в миксамочтобы прочекать как пойдет анимация. Думаю, результат приемлемый, смысла задрачивать модель еще больше нету, все равно не художник. Нашел модельку электро колхозника на скетчфабе, повезло. Модель курьерского рюкзака заделать будет несложно. Почистил лишнюю топологию и у него все равно 20к треугольников. Скорее всего тупо из-за колес, нужно подумать как сделать зубастый протектор менее полигональным.
Теперь надо думать как текстурить персонажа. Гляну решения от нейронки.
>>1064217 Прикольно вышло. Моя первая тня была хуже
>Теперь надо думать как текстурить персонажа. Гляну решения от нейронки. Ненад. Хуйня выйдет. Покрась сам в сабстенсе. Там никаких специфичных кистей или текстур нихуя не надо. АО, градиенты, генераторы и ручная правка. За 20 минут сделаешь.
> Где почитать-посмотреть, как делать скайбокс как на пикриле В гугле. > (смена дня и ночи, звезды, движение луны и солнца)? godot dynamic skybox with day and night, sun, moon, stars
В общем, хочу тик менеджер времени. Подобный как у игр параходов или римволд (1,2,3 скорость игры).
Идея в том что один тик - один _physics_process(). Но проблема, что при ускорении времени в 3раза, все решения предлагают прогнать tick три раза в _physics_process (в цикле). Что как бы зло и вроде как просрет всю физику (три вычисления за вызов _physics_process).
У меня вопрос, а что если сделать чтобы ускорение х3 было базовой скоростью в игре (1 tick == _physics_process), а при включение скорости 1х ты просто меняешь Engine.time_scele = 1 / 3 (соответственно тик для логики вызываешь 1 раз из 3)?
Насколько это вообще нормально сделать тик систему основываясь на замедлении Engine.time_scele?
>>1064349 >Насколько это вообще нормально сделать тик систему основываясь на замедлении Engine.time_scele? Обычный подход. У меня используется для фриз-фреймов при ударе. Time Scale это не что-то обскурное, в демках и туториалах я его регулярно встречал.
>при ускорении времени в 3раза, все решения предлагают прогнать tick три раза в _physics_process (в цикле) >(в цикле) Вот этот твой маневр я не понял. Ты хочешь сам, циклом, повторять physics_process? Чтобы что?
>>1064368 >Вот этот твой маневр я не понял. Ты хочешь сам, циклом, повторять physics_process? Чтобы что?
Нет, там реализуют так:1 тик на 1 physics_process вызов (чтобы потом делать некоторые вызовы при 250 и 2500 тиках - так в римке), но во время ускорения, например в 3 раза, они дергают tick три раза в одном вызове physics_process. Это советуют как ИИшки все, так и не которые пасты в инете. Но у меня прям душа не лежала.
В общем, я адаптировал тики совместно с Engine.time_scele и вроде все норм. Получилось даже проще.
>>1064371 > но во время ускорения, например в 3 раза, они дергают tick три раза в одном вызове physics_process Не улавливаю зачем. Римворлд на юнити, возможно какие-то её особенности.
>>1064368 >обскурное Просто я засомневался, тут реализация в том что большая часть геймплея будет на 1/2 и 1/3 скорости. Но так как это просто множитель дельты, то думаю ничего страшного.
>Не улавливаю зачем. Римворлд на юнити, возможно какие-то её особенности. Чтобы ускорить игру в 3 три раза, это обычное ускорение времени. Менеджер тиков нужен чтобы распределять нагрузку, чтобы сложные расчеты дергать реже (проблема начинается для одного тика во время ускорения).
В доке пишут, если ты ускоряешь через Engine.time_scele, нужно ускорить и physics_ticks_per_second. Возможно по производительности это выйдет даже хуже, чем просто кастомный цикл в дергать в _physics_process, но мне лень тестить, мне нужно было только замедление (сверх ускорение только для дебага).
>>1064375 >Просто я засомневался, тут реализация в том что большая часть геймплея будет на 1/2 и 1/3 скорости. Хотя я забыл про звук. Не зря засомневался.
Input.is_action_pressed Input.is_action_pressed Input.is_action_pressed Input.is_action_pressed Input.is_action_pressed Та еще мина замедленного действия. Зло во плоти.
>>1064629 Шарпиком не пользуюсь, нахуй нужен, просто имею релизнутые игры, которые надо поддерживать, плюс допиливаю еще одну большую, которую начал еще при 3.3 и поленился обновлять до 4.х.
Прекрасен будет день, когда получится взяться за новый проект на 4.х. Хотя кто знает, вдруг и 5.х успеют к тому моменту.
>>1064638 Это для художников, которые не могут в программирование. Так же как я генерирую модели и арты, так как не могу в художку.
Только когда художнику разрабатывают системы чтобы обходиться без программистов, это прекрасно и заебись, а когда программистам разрабатывают системы, чтобы обходиться без художников, это фу хуисос так нельзя и вообще воровство чужой работы на которых художники могли бы заработать.
>>1064654 >Это для художников, которые не могут в программирование Что бы не мочь в программирование нужны быть лоботомизированым не меньше, а вот >так как не могу в художку Проблема распространенная, вот вас и говнят
Что я понял о годот: сообщество годот - такое же токсичное сообщество недочеловеков которые срут друг на друга. Чего я не понял о годот: почему его сообщество на серьезных щах себя считает более дужелюбным, когда это такое же сборище выродков как и везде, а то и хуже.
>>1064713 Это в первую очередь для игроков с айсикью больше ста. Вот в чем главная проблема..
Изменить координаты UV сетки на одном меше
Аноним13/12/25 Суб 18:37:20№106472995
Всем привет. У меня в блендере есть одна и та же модель с одинаковым материалом, но с разным координатами UV сетки. Я как то могу в самом годоте задавать UV координаты для модели чтоб не засорять сцену мешами, а закинуть один и в скрепте изменять ему координаты? Может есть видео с объяснениями или такого нельзя сделать в годот? Я просто новичё и не совсем понимаю. А забив в поисковик гуг, он меня отпраляет в блендр или иной 3д редактор
В общем gdscript позволил закрыть все задачи, чутка были затыки, есть претензии немножо, но в целом всё хорошо. Самое бесячее - не совместимость PackedStringArray и Array[String] несмотря на то, что у Array есть конструктор такой var t: PackedStringArray = ["1","2","3"] var tt: Array[String] = t причём это райнтайм проверка. На второй строке будет > Trying to assign a value of type "PackedStringArray" to a variable of type "Array[String]".
Вкатываюсь в годотю, возник вопрос - как лучше отделять плеер контроллер от персонажа игрока: 1. PlayerInput как часть сцены Character (т.е., по сути компонент, который управляет персонажем). Вероятно, это нарушает принцип "signal up, call down" и плеер контроллер начинает знать о деталях имплементации родителя, что пахнет говной. 2. PlayerController как родитель над Character, который получает ссылку на Character и, соответствует, двигает персонажа как ему заблагорассудится через вызов публичных методов. 3. Забить и делать всё в одной сцене - и инпут, и всё остальное по персонажу.
>>1064903 Зачем что? Зачем на gdscript?! - Просто так. Заодно посмотреть позволяет ли он решать такие задачи + напороться на разные грабли, например что Vector2i держит int32 и ничего не говорит о потере данных. Зачем решать в принципе - чтобы стать лучше и это интересно, многие задачи так или иначе пересекаются с играми.
CharacterBody2D - главный скрипт ---Node - скрипты с импутами ---Node - скрипты с чем нибудь еще ---Node - скрипты с чем нибудь еще ---Node - скрипты с чем нибудь еще ---CollisionShape2D ---Sprite2D ---Еще ноды, много нод ------Ноды в нодах ---------Ноды в нодах в нодах
---Нода где хранятся ноды со скриптами!!! ------Node - скрипты ------Node - скрипты ------Node - еще одна "папка" c нодам, да что же он творит, остановите его!!! ------------Node - скрипты ------------Node - скрипты
Сделал на годоте подобие ренпай, так как не хотел нбаться с лицензиями. Ебало мое представили когда руками для трех локалей и структурой: основной скрипт + 4 концовки заполнял? Нет? А я вот да
Если достаточно востребовано будет: могу урезать проект без своих шейдеров и чистый билдер в безвозмездное пользование дать. Только вот зачем.
>>1064921 Основная проблема: ЕБУЧИЕ МАТРЕШКИ Да, визуально можно сделать и структуру с поинтами на концовки и вторую структуру с конкретными выборами, которые собирают финальный рут. Но изначально я думал что визуально будет проще собирать. А эта вложенность. Я её маму ебал
>>1064910 >Зачем что? Зачем мериться письками? Ну типа в промышленном программирование надо чтобы кабанчик выбрал самую красивую на конкурсе красоты олимпиаде. А тут ради чего? Мы пишем игры для себя.
> Заодно посмотреть позволяет ли он решать такие задачи Язык полный по Тьюрингу - может.
>например что Vector2i держит int32 и ничего не говорит о потере данных. Какие потери? Там между векторами нет преобразования, или зачем тогда я писал "обрезатель" без округления (пик)
>Зачем решать в принципе - чтобы стать лучше Чел, если навык не поддерживать он рассосется в голове, ты свой код через год откроешь (да какой год, месяц) - там будет как-будто другой человек писал. Это как с мышцами, они атрофируются. В геймдеве не надо продавать себя кабанчикам, просто делай игры.
>>1064910 >>1064925 А то что int в скриптах 64бит, а многое апи работает с 32бит? Это да, это ппц не только в векторе есть. Чувствуется рука питономакак.
>>1064921 > подобие ренпай >так как не хотел нбаться с лицензиями ??? Ты маладца что сделал, конечно, но ренпай - свободный и опенсорный софт, как и годот под МИТ лицензией.
>>1064926 Еще один повод читать документацию, а не бегло юзать код, ожидая одинаковое поведение.
Но я согласен, это просчёт и надо помнить. Как например что randi() возвращает unsigned int, а FastNoiseLite работает только в диапазоне signed int и в доках об этом нет инфы (забавно видеть как рисунки не совпадают но в целом все работает).
>>1064937 Какой аддон? Все руками на чистом гдскрипт
>>1064929 Был соблазн накачать всяких ассетиков и готовых решений, а ебаться с лицензиями не хотелось. Плюс остальные игры тоже на годоте. Решил сделать билдер и заодно некоторые наработки потом переиспользовать
>>1064925 >Зачем мериться письками? На AoC ты мереешься писькой только с собой, с этого года так точно, т.к. убрали таблицу лидеров, т.к. в прошлом году вот те самые меретели писькой писали автоскрипт скармливания задания АИ говну
>А тут ради чего? Я сказал уже, чтобы стать лучше, но это не поймёшь пока сам не попробуешь.
>Язык полный по Тьюрингу - может. Это не про тьюринговость, например заданного стека среды выполнения gdscriipt могло не хватать для решения с рекурсией, в общем если память не изменяет я видел ошибку что превышена рекурсия в 1000 раз, но то был мой косяк
>Какие потери? Там между векторами нет преобразования, или зачем тогда я писал "обрезатель" без округления (пик) var a:int = 999999999999 var b: Vector2i = Vector2i(a,a) print(b) простыми словами a:int это a:int64 тогда как b это Vector2i(int32, int32)
>ты свой код через год откроешь (да какой год, месяц) - там будет как-будто другой человек писал спасибо за мнение конечно, но думаю у меня опыта побольше
>>1064940 А, понял тебя. Круто. Я себе похожее делал, но проще. У меня и диалоги попроще - линейные и без выебонов. Зато саунд прикрутил к typewriter effect.
>>1064945 Да таймер это самое нежное, что из ебки тут было. Все начиналось тоже с линейных диалогов. Это сделал за вечер. Новелла как промо к основной игре. Потом мне сказали что линейная новелла на 15 минут хуета. Ну и в итоге появились и концовки, и сторипоинты и тепловизоры и шейдеры огня и ANXIETY LEVEL где сгенерированный голосом звук усиливает писк в ушах во время стресса Ебал я эту разработку короче. Надо было на Юнити из готовых ассетов хоррор бродилки с записками делать
>>1064948 Там наверное кроме как через логику инспектора и создание в схожем стиле и не сделать графический сторителлер. Думал попробовать сделать аналоги блюпринтов из анрила только для сборки диалога и эвентов через ноды. На новогодних если будет время - попробую
>>1064950 Логика инспектора - нет. Аналоги-блюпринтов - нет. ИМХО, конечно, но если делать, то только на своих виджетах, и форму выводить отдельным табом в редактор, как делают все диалоговые аддоны.
Просто на ровном месте отвалился и нихуя не хочет возвращаться. Я уже и кеш чистил, и скрипт переименовывал и лез в сцену в текстовом формате менял там пути и айдишники. Нихуя не помогает. Так же думал, что ошибка в скрипте, но проверил все 10 раз - все нормально, да и до этого все месяцами работало. Как понять произошедшее? Жиды не хотят чтобы я выпустил игру?
>>1064944 >спасибо за мнение конечно, но думаю у меня опыта побольше С этим феноменом сталкиваешься когда начинаешь сопровождать код, то есть работать программистом (или поддерживать многолетнюю разработку, пускай и свою), у меня большие вопросы по твоему опыту.
>чтобы стать лучше Судя по попыткам самоутвердиться и проблемам юношеского максимализма тебе еще 25 нет. Либо ты старше, но у тебя до сих пор не сформировалась лобная кора головного мозга, отвечающие за критическое мышление.
>убрали таблицу лидеров, И ты решил нам эту помойку из аськки графики сюда принести? Зачем? Чтобы похвалили или что? Молодец, осилил гдскрипт. Лучший.
я нихуя не понимаю, кроме if else и var. чему учиться, как вообще полировать механики, ну не все же строится на if и else и блять почему у меня такая уёбищная гравитация и рывки extends CharacterBody2D
var gravity = ProjectSettings.get_setting("physics/2d/default_gravity") var is_dashing = false var dash_time = 0.0 var dash_direction = 0
func _physics_process(delta: float) -> void:
if not is_on_floor(): velocity.y += gravity delta
var direction := Input.get_axis("ui_left", "ui_right")
if Input.is_action_just_pressed("ui_reject") and direction != 0 and not is_dashing: is_dashing = true dash_time = MAX_DASH_TIME dash_direction = direction
>>1064983 >match он че делает? Матчит, лол. Синтаксис следующий var test: int = 3 match test: 1: return false 2: nihuya() 3: funkciya() Думаю интуитивно ясно, что он делает.
>и что такое табуляция Не пизди, ты не можешь этого не знать. Пробелы перед кодом, своего рода { }
>>1064975 >И ты решил нам эту помойку из аськки графики сюда принести? Зачем? Чтобы похвалили или что? Чтобы у тебя жопа сгорела, получается. Я её ещё в шапку треда занёс. Не видел?! Странно. Ты видимо не очень внимательный.
>Судя по попыткам самоутвердиться Попытки?! Так самоутвердился, 12 из 12. А ты на мне пытаешься самоутвердиться, рассказывая какой ты опытный и знающий и отвечая "от всего треда"?!
>С этим феноменом сталкиваешься когда начинаешь сопровождать код, то есть работать программистом (или поддерживать многолетнюю разработку, пускай и свою), у меня большие вопросы по твоему опыту. Трудовыми книжками хочешь померяться?
>>1064984 блять, я настолько тапок, что не понял match а табуляция, ты имеешь в виду эти стрелки перед текстом кода? как я понял, они разбивают отдельные действия и делают "дочерние". или устанавливают зависимости. или пошел я нахуй
>>1064969 Хз, не встречал. Удали скрипт полностью через файловый док движка (предварительно скопируй контент), и создай новый, с другим названием. Поможет - был некий баг с кешем/uid или чем-то таким. Не поможет - надо смотреть контент скрипта. В вебдеве, например, говнюки любят пихать тебе в инпут непечатаемые символы и прочие радости, которые сводят с ума начинающих макак.
>>1064985 >Я её ещё в шапку треда занёс. Не видел?! Странно. Ты видимо не очень внимательный. Ты настолько жалок, что перекатил тред со свой чепухой? Ну ты же понимаешь насколько это все плохо?
>Трудовыми книжками хочешь померяться? Чем еще будем компенсировать, ты же не покажешь? Чел ты попал в ловушку переполнения 32битного инта, зная что под капотом API на плюсах. Первое что ты должен был проверить, это стали ли они переписывать на плюсовые int64_t (нет не стали). О чем ты, джунище :)
Я не думаю, что людям интересно читать наш срачь, поэтому покормил последний раз (но трудовую жду, оператор эвм).
>>1064217 >Теперь надо думать как текстурить персонажа. Гляну решения от нейронки. Вот ето да, что нейронка могет прямо из блендера. Да, косяков навалом, но 80% работы с текстурой автоматизируется, остается только запечь и отпалировать стыки, пальцы, швы, мелкие детали.
Процесс оказался намного тривиальнее чем я думал: 1. Скрипт рендерит карту глубин с нескольких камер в разных ракурсах. 2. С каждой камеры скрип генерирует UV развертку в процекции камеры. 3. Скрипт передает каждую отрендеренную карту глубины в ComfyUI для генерации на ее основи изображения по прому. 4. Скрип строит замысловатый материал, который накладывает каждую сгенерированную картинку на персонажа и суммирует с остальными проекциями получая итоговый результат.
Собсно на пикриле тот же самый процесс только вручную, сначала отрендерил карту глубин модели в разных проекциях с разных камер, затем сгенерировал персонажа по этой карте глубин в ComfyUI, после чего можно накладывать эту картинку в Blender и запекать на модели с последующей шлифовкой. Но аддон StableGen просто автоматизирует рутину и мне остается только этам шлифовки.
>>1065019 > по сигналам даже не узнаешь что реализовано что нет Эмм.., что? Сигналы для того и нужны, чтобы им было похуй, реализованы они или нет. Если не реализовано - ничего не произойдёт. Это суть сигналов.
>>1065052 Я предпочитаю шину сигналов. Вместо того чтобы объявлять кучу разномастных сигналов в различных игровых системах и менеджерах, я один раз делаю шину и прописываю её в автозагрузках. Все могут сказать шине: > пш-пшш, йоба в эфире, я скозал, йоба в эфире 11 > bus.emit(yoba, 11) А так же все могут сказать шине: > если кто-то скажет в эфир про йобу, я выполню вот этот метод, и если в сообщении будет число, передай его мне аргументом > bus.connect(yoba, func(x): print(x)) И всё. Система непотопляема. Даже объяснять лень.
>>1065153 На самом деле, даже прописывать в автозагрузках не обязательно (ИТТ многие боятся этого), можно сделать класс, скажем, SignalBus у которого будет внутренняя переменная bus, которой присваивается ссылка на корневую ноду ($"/"), далее все операции класс производит с этой шиной. При коннекте сигналов, он лениво создаёт на шине кастомный сигнал, если того не было, и подписывает поданный коллбэк на этот кастом-сигнал. При эмите сигналов он смотрит, есть ли сигнал с указанным кодом, если есть, переизлучает этот сигнал с поданным на вход аргументом. Если сигнала нет, можно насрать в лог, я разрешил, если уровень логгирования в проекте - подробный. Элегантно же, ёпт. Мы спрятали целый синглтон на самом видном месте, цена синглтона - ноль, потому что мы его не создавали. Это корень дерева, и он создаётся самим движком.
>>1065153 Только не забывай делать единый источник истины для данных. Например глобальный кеш. События должны оповещать об изменении данных в источнике, а не передавать все что вздумается. Если ты начнешь синхонизировать локальные состояния, то это ивент говно быстро перестанет быть отлаживаемым и вообще понимаемым что в нем приосходит.
>>1065005 Вопрос решил. Рассказываю. У меня в коде упоминался мой класс. Условно if some_node is MyDegenerateClass: По какой то причине годот передумал конпилировать этот класс раньше скрипта, в котором содержится его упоминание (как я понял эту процедуру) и по этому на уровне инициализации, еще при запуске движка, игнорировал этот файл как скрипт. Решилось мягкой проверкой if some_node.get_class() == "MyDegenerateClass":
>>1065153 Потребность в шине, в микросервесной архитектуре является скорее костылем решающие проблемы этой архитектуры. Но в бэкенде там настоящие независимые сервисы. В годоте смысла вообще нет, у тебя игра это и так монолит, у тебя не будет одна игра к другой подключаться, то что у тебя полоска хп игрока в HUD как то независима от игрока, ну ок, а что это дает? Это остается частью элемента персонажа, просто вынесено отдельно для удобства (ты ее не переиспользуешь нигде).
>>1065173 Полностью подтверждаю. Это действительно так.
>>1065203 > у тебя полоска хп игрока в HUD как то независима от игрока, ну ок, а что это дает? Возможность работать над UI в отдельной сцене, настраивать и отлаживать на болванчиках, не трогая основные сущности и системы. Это удобно даже в соло-разработке.
А так же можно: Полностью заменить весь UI не трогая остальной проект. На лету менять разные отображения UI по мере игры, отражая развитие сюжета. В монолитном проекте, где зелёная нода прибита гвоздём к красной/синей ноде - это будет пиздец.
>>1065174 Ох как же годот-команда ещё обожжётся об uid-дрисню, которую они внедрили. Самый пиздец ещё впереди. Критикуя предлагаю: идентификаторы сериализованных ресурсов хранятся прямо внутри текста файлов. Поэтому и в скриптах нужно было так же сделать. Добавить первой строкой uid-коммент, который вырезается редактором из отображения скрипта, который создаётся, если отсутствует. В настройках добавить галку "отображать uid в скриптах" для любителей всё держать под контролем. Но вот эти добавочные файлы - это... это пиздец.
>>1065222 То что ты предлагаешь - пиздец куда больший, оно будет руинить файлы, не будет давать возможность открывать пнгшки внешними редакторы изза внедряемой годотом хуйни. Нормально работающие юиды - куда меньшее зло чем стандартное "путевое" решение и уж тем более если сравнивать этот вариант с твоим предложением.
>>1065222 И тут прихожу я с внешним редактором, и вижу эту дрысню в начале каждого файла в своем вскоде/зеде. А потом еще охуеваю от моих сломанных жсонов, которые я использую как дататейблы, ведь их теперь парсер не ест, сообщая мне что в их начале сидит неведомая ебаная хуйня. А еще у меня в проекте пара бинарников и файлов на питоне, которые я не дергаю напрямую из годота, а запускаю из консольки для генерации того или этого. Слышь, нафига мой бинарник сломал?
Они ну ооочень долго обсуждение вели, как и бывает у годота, рассматривая разные подходы. Но вообще не думаю что у того анона проблема из-за uid всплыла. Может регрессия какая. По-хорошему надо четко поймать как повторяемый баг и нести на гитхабю
>>1065221 >Возможность работать над UI в отдельной сцене, настраивать и отлаживать на болванчиках, не трогая основные сущности и системы. Ты это можешь и так сделать, если у тебя сцена. Плюс коннект имеет так же хардовую ссылку (что в реале плюс). Коннект в коде и зеленная ссылка - не имеют архитектурной разницы, это просто разный подход.