Шапка: https://hipolink.me/godothread
Предыдущий: >>985261 (OP)
Архивный: >>981386 (OP)
У меня такая ситуация. Враг движется по сетке с помощью AStar и рейкастит в направлении игрока. Если между врагом и игроком нет препятствий, то враг просто движется вперед, по направлению игрока, не следуя сетке. Вроде, все должно работать хорошо, но дело в том, что коллизия противника шире, чем рейкаст и поэтому может быть такая ситуация, что по рейкасту препятствий нет, но противник все равно врезается об угол препятствие и начинает медленно скользить по нему. Как это можно исправить? Я не нашел настройку, чтобы сделать рейкаст шире.
Raycast это луч, математически у него нет ширины.
Ты можешь пускать луч из другой точки со смещением. Или можешь использовать другой коллайдер в другом слое для проверки пути. Это если не добавлять навигацию, агентов и вот это все. Можно еще навернуть какую то логику, типа если столкнулся со стеной и скорость упала, отойти от стены. Но тут можно запутаться
А еще если он движется по сетке, то можно что-то сделать с координатами его позиции. Например округлять.

Делай два рейкаста, а лучше сетку из рейкастов, как в Резиден Иволе. Чтобы враг не просочился.
>Raycast это луч, математически у него нет ширины.
Не, ну чисто логически, да. Но у него есть настройки size, которые работают и делают луч больше и область детекта больше, но при этом ломается cast to и он не стреляет туда, куда нужно.
>Ты можешь пускать луч из другой точки со смещением
То есть поставить лучи по бокам и стрелять им в точку, что стреляет и первый? Или точку, куда стреляет тоже сдвигать вбок?
>Это если не добавлять навигацию, агентов
Это я пытался, но препятствия работают ужасно, если на пути врага становится препятствие, то он просто прилипает к нему и скользит вдоль, пока не выберется.
> у него есть настройки size, которые работают и делают луч больше и область детекта больше
Ты что-то путаешь.
https://docs.godotengine.org/en/stable/classes/class_shapecast3d.html
Используй шейпкаст вместо рейкаста, очевидно. Но я бы лучше на навигацию переделал.

Помню, что был фича-реквест на ГХ, но там как-то всё заглохло. МБ кто-то придумал аддон или ещё что в обход этой проблемы.
Тогда оптимизированно упирайся в стены, очевидно.
Ну да. Геймдев - это вершина айти. Самая сложная часть профессии. Странно что вкатуны ожидают лёгкости.
а что в godot-e можно использовать в кач-ве логгера? в доках про это не очень много, а быстрый поиск выдает https://github.com/KOBUGE-Games/godot-logger (аж целых 176 звезд!, что лучше чем нихуя так-то)
Готовый проект искаропки логи пишет. Всё что ты принтом печатаешь пишется в логи. Хранятся в папке user:// Так что если у тебя нет никаких особых требований, то просто принтуй всё что хочешь видеть в логах.
Я пока на 3.5, потому что, насколько я знаю, 4 ещё в разработке.
>Но я бы лучше на навигацию переделал
Так с навигацией хорошо, только если препятствия статичные все. obstacle нода работает ужасно, вместо перестройки маршрутка с учетом препятствия, агент просто втыкается в препятствие и скользит вдоль него.
А я на 3.6 допиливаю. Братюня. Ну, в 4 навигация вроде лучше работает, ее там с нуля переделывали.
У меня такой нужды в obstacle не было, поэтому у меня статик ноды, которые я иногда двигаю/убираю и просто апдейчу навмеш - 0.1с на огромный уровень. Условная ломаемая стена.
Это никак не влияет на толщину рейкаста. Может быть влияет на точки исхода и цели, не проверял.
Я смотрел видео по 4 и с препятствиями там такая же фигня была.
>У меня такой нужды в obstacle не было, поэтому у меня статик ноды
А у меня некоторые объекты +- часто перемещаются, а, насколько я знаю, апдейтить часто полигон не очень хорошо.
Попробовал. Периодически такая фигня случается.
Каст пускаю так:
var direction_to_player = global_position.direction_to(player.global_position)
target_raycast.cast_to = direction_to_player*global_position.distance_to(player.global_position)
target_raycast2.cast_to = target_raycast.cast_to
target_raycast3.cast_to = target_raycast.cast_to
Чтоб не было всяких некрасивых вещей, вроде коллизии с воздухом, если радиус колайдера больше спрайта или наоборот, чтобы куски спрайта не залезали туда, куда не надо, если меньше. Все таки квадратный можно растянуть прям по размеру, а круглый - нет, только если персонаж сам не круглый
Вали нахуй с треда, мразина! Репорт!

Ну это странный подход, у тебя враг не поворачивается в сторону цели? Ну ок. Вообще капсулы и круги для того и используют чтобы мягко проскальзывало.
У тебя просто проблема та же остается. Ты лучи кидаешь из произвольно точки "сбоку". А тебе надо кидать их "из-за" коллайдера еще и с учетом направления движения получается.
>у тебя враг не поворачивается в сторону цели?
Нет, у меня не совсем вид сбоку, а чуть сбоку.
>Вообще капсулы и круги для того и используют чтобы мягко проскальзывало.
Так мне и надо, чтобы не скользил, а обходил. Он и так скользит, просто это и выглядит глупо и скорость сбрасывается.
>Ты лучи кидаешь из произвольно точки "сбоку". А тебе надо кидать их "из-за" коллайдера еще
Я пытался передвигать боковые рейкасты везде, от тех точек, где они сейчас, до центрального рейкаста, но результат схож. Или ты имеешь ввиду что-то другое?
>еще и с учетом направления движения получается.
Так направление движения, в данном случае, к игроку, вот и кидаю лучи к игроку.

Дело то не в том, что ты кидаешь луч к игроку - это понятно. Вопрос откуда ты кидаешь, ты кидаешь из просто абстрактной точки "сбоку", а хочешь узнать есть ли препятствие от того угла.
Блин дольше объяснять, бери действительно shapecast.
Я как-то не заметил такого пункта. Может я в документации что пропустил?
>>993083
А откуда кидать? Я уже попиксельно менял расположения рейкастов на любое возможное.
>shapecast
То есть, на 3.5 вообще сделать такое нельзя? Ну делали ж люди как-то такие игры. Может я просто чего не понимаю и есть какой туториал хотя бы? Все те, что я находил были "иди по направлению игрока, въебись в ближайшую стену и скользи по ней", поэтому просто пытаюсь сам понять, как это сделать
В 3.6 вроде есть shapecast.
>в туториалах
А там были квадратные коллайдеры или все таки круглые?
>В 3.6 вроде есть shapecast.
Опять же, у меня тот же вопрос. Неужели до появления shapecast возможен был только вариант со скольжением вдоль стены?
>А там были квадратные коллайдеры или все таки круглые?
А какая разница, если с любимым коллайдером происходит въеб в стену и скольжение? Я же хочу, чтоб враги обходили препятствия, а не скользили по ним.
>>993083
А в чем сложность кидать из 4х углов коллайдера бота? Можно ещё с запасом.
Также можно при коллизии отходить.
Но обычно коллайдеры ботов делают круглыми и так намного проще - поэтому можно сделать отдельный навигационный коллайдер круглый.
Шейп каст тут необязателен.
Кстати еще такой момент не понял - я видел чел писал что поиск пути на а стар есть. Нахуя тогда эти заморочки с коллайдерами? Разве а стар не выдаст путь до игрока?
Но их и так уже три. Или ты предлагаешь пускать еще в противоположную сторону? Но тогда он перестанет идти по нужному пути, если чуть сбоку будет преграда. Или что ты имеешь ввиду?
>>993094
>в чем сложность кидать из 4х углов коллайдера бота? Можно ещё с запасом.
В принципе, нет сложности. Но не слишком ли это будет? Ведь это у каждого бота будет по 5 рейкастов одновременно кидаться
>>993094
>Кстати еще такой момент не понял - я видел чел писал что поиск пути на а стар есть. Нахуя тогда эти заморочки с коллайдерами? Разве а стар не выдаст путь до игрока?
Выдаст, но путь будет неестественным, это нормально, если игрока нет на прямой видимости, но не когда враг его видит

Чел просто переделай на нормальные навмеш с динамическим коллижн евейженом.
Это же просто, годот же опенсорс - самый лучший движок. Просто сам напиши нормальный поиск пути. Главное гдскрипт используй для этого - это самый лучший язык в мире.
> В принципе, нет сложности. Но не слишком ли это будет? Ведь это у каждого бота будет по 5 рейкастов одновременно кидаться
Пох.
Ну и кидать не обязательно каждый фрейм.
> Выдаст, но путь будет неестественным
Это как? А стар ищет кратчайший путь. Если игрок в прчмой видимости - кратчайший путь бцдет по прямой.
Я так понимаю, это попытка засрать годот и забайтить на переход на юнити?
>>993101
> А стар ищет кратчайший путь. Если игрок в прчмой видимости - кратчайший путь бцдет по прямой.
Кратчайший путь по сетке/графу, а это не всегда тоже самое, что просто кратчайший путь. Все таки игрок у меня не по сетке движется
>Пох.
Я попробую, надеюсь сработает и не будет сажать производительность
Так тебе не надо кидать все. Тебе надо кидать только дальние от игрока.
Или просто кинуть один шейпкаст.
Раз ты почему то не хочешь переделать коллайдер на круглый, или посчитать сам геометрию.
>Так тебе не надо кидать все. Тебе надо кидать только дальние от игрока.
Почему? Вблизи не может быть препятствий?
>Или просто кинуть один шейпкаст.
Отсутствует в версии ниже 4
>Раз ты почему то не хочешь переделать коллайдер на круглый
Переделывал, все равно врезается.
>Я так понимаю, это попытка засрать годот и забайтить на переход на юнити?
Ни в коем случае!
Вообще продвинутые версии А-стара вполне должны поддерживать разную размерность сетки и юнитов. Если сделать сетку меньше - ничего рейкастить и не придётся, движение итак органичным будет смотреться. Хз какие там в годоте.

>Отсутствует в версии ниже 4
Но я же тебе уже написал что в 3.6 есть. Ты движкосрачер?
https://docs.godotengine.org/en/3.6/classes/class_shapecast2d.html
Заранее спасибо за вашу помощь!
Нет, просто мне уже реально интересно, как сделать это средствами 3.5. Ну не верю я, что это невозможно. Уже с рейкастами заебался, навесил их на каждый угол, все равно появится какая-то точка, где ломается. 0 понимания, как такое делается.
Не гуглится. Может Noctis? У них есть репозиторий и контакты, наверное они могут тебе ответить и починить.
Интеграции рекламы на какой платформе? Для я.и видел штуки 3 еще плагинов.
Может там есть какие-то сигналы для обработки ошибки. Плюс у рекламы может быть ограничение, чтобы ее не показывали чаще чем какое то время (может быть 1-2 минуты).
>как сделать это средствами 3.5
Только что сделал ради тебя, дорогуша, в 3.5. Берешь обычную area, указываешь слои коллизий, в коде когда надо проверяешь с помощью $AreaChecker.get_overlapping_bodies().size() и/или $AreaChecker.get_overlapping_areas().size()
Может встать проблема - ареа не видит объекты, которые уже увидела фреймом ранее, если позиции ни тех, ни других не менялись. Решается пинком по позиции ареи, $AreaChecker.translation = $AreaChecker.translation, потом чекаем оверлаппинг. Возможно придется подождать фрейм с помощью yield(get_tree(), "physics_frame"), между пинком по позиции и получением оверлапа.
Все, имеешь буквальный шейпкаст в 3.5. А однажды перейдешь на 3.6 и получишь изкоробочный шейпкаст.
Алсо для оптимизации О БОЖЕ ТЯЖЕЛОВЕСНАЯ МАТЕМАТИКА можно скинуть мониторинг в false, выставляя его в тру за фрейм до проверки оверлапа.
Извини, но я немного не понял. Мне эту ареа сделать чуть больше колайдера противника и проверять есть ли что близко к немутогда могут возникнуть проблемы на пути следования и придется экстренно строить путь или как-то менять её размеры по направлению к игроку?
И у area нет translation
Я делал для 3д. В 2д там просто позишн, тоже работает для обновления коллизий. Используешь как обычный рейкаст, ставя в точку, где тебе надо проверять коллизию. А можно и менять размеры. Как угодно, короче.
Погодь, а нафига ты к игроку все рейкасты кидаешь? Они из разных точек непараллельные получаются. Получи вектор из центра врага на центр игрока и кидай рейкасты вдоль этого вектора.
Игру делай.

Я, наверное, чего-то не понимаю, но почему шейпкаст не детектит стену? Слои настроены правильно и когда стена на конце он её детектит, но в такой ситуации - нет.
Отбой, заработало. Перезагрузил годот и все пошло. Проблема с углами пропало, но это все равно выглядит как-то так себе, когда с прямого пути резко прыгает на путь, построенный A*
Видимо, я правда чего-то не понимаю.

> Видимо, я правда чего-то не понимаю.
Да. Кое чего.
Я читал вышепереписку, но сам ничего не постил, но всё таки не удержусь и вставлю своё ИМХО.
У тебя нет визуального понимания как это всё должно происходить.
Если нет видения - не можешь это правильно в код обратить.
Тычешься как слепой котёнок.
ИМХО. Без обид.

1. На этом этапе подключают steering behavior. То есть по простому направление движения не должно меняться резко, должен быть лимит скорости поворота. Можно попробовать еще добавить easing. Когда переменные меняются не линейно, а сначала разгоняются, потом притормаживают.
2. Сюда же уже всякие "juice" - сочные трюки. Например ты можешь скрыть это анимацией, когда враг переключается с патрулирования на атаку, он может встать в боевую позу, рыть копытом землю и тд, потом разбежаться.
3. Проблема может быть в том, что АСтар может создавать неестественные пути. Там может быть надо тюнить параметры, причем скорее всего кастомную версию алгоритма, а не встроенную.
Так это не А* проблема, это графа проблема: тут между ячейками можно идти только по четырём сторонам. Если в навграф добавить еще рёбра между несоседями (между ячейками в радиусе K друг от друга, например), то будут гораздо более "прямые" пути.

Подробностей в пикчу.
Более "натуральный" путь выглядел как нибудь так.
Астар в завимимости от параметров может выдавать разные варианты, вплоть до "пол пути идем прямо, полпути идем повернув на 45 градусов".
Так я тебе говорю, что это не А* проблема, а графа. У тебя в графе пути "лесенкой" и "уголком" имеют одинаковые длины, хотя ИРЛ, очевидно, короче всего идти по диагонали. Добавь в граф хотя бы переходы по углам (с ребрами длины sqrt(2)), и пути аля твоя пикча (только без лесенки) будут оптимальными.
Паттерн движения зомби на примере прозрачных преград: Идти прямой наводкой на цель. Уебаться в преграду. На пару шагов "ослепнуть" и ходить кругами. Потом снова прозреть и если цель в зоне видимости, снова идти, и если преграда не сместилась пока кружил, опять уебаться в неё с разгону. Игрокам понравится.

Чел, те картинки показывают что на одном графе при разных настройках могут получиться пути разных форм. Диагональные переходы тебе ничем не помогут если в результате получится все равно вторая картинка (пол пути прямо, поворот на 45 и дальше).
Так я отвечаю, что это проблема не в А, а в графе. У тебя в графе куча оптимальных путей одинаковой длины, с фига ли А должен выбрать из них какой-то "более приятный глазу". Если ты хочешь диагональных путей, причём хочешь именно по причине того, что они ИРЛ короче, то сделай их короче и для А.
Если не хочешь путь как на второй картинке, добавь рёбра вида (+2, +1), (+3, +1) и т.д. с длинами, соответственно, sqrt(n^2+1). Тогда будут более плавные пути, которые к тому же будут еще и короче этих лесенок. И всё это при абсолютно дефолтном А.
> У тебя в графе куча оптимальных путей одинаковой длины, с фига ли А должен выбрать из них какой-то "более приятный глазу".
Для этого есть параметры A, которые можно настраивать,
Например функцию эвристики http://theory.stanford.edu/~amitp/GameProgramming/Heuristics.html
Или вот
https://towardsdatascience.com/a-short-and-direct-walk-with-pascals-triangle-26a86d76f75f
Еще можно добавлять некие значения к результатам функции поиска, там тоже про это есть например tie-breaker
А вот чувак добавляет значение чтобы поиск не прилипал к стенам (этакий аналог agent-obstacle avoidance) https://github.com/SeunghyunLim/Astar-with-smoothed-path
а есть другие алгоритмы, например модификации A, или Theta* (any-angle)
Вообще это большая область с кучей научных работ.
Есть вариант просто path smoothing делать.
https://www.redblobgames.com/pathfinding/a-star/implementation.html#troubleshooting-ugly-path
Это все понятно касается кастомных реализаций.
мне в любом случае делать, так как в 3.6 не бэкпортировали allow_partial_path, а Astar не ищет путь к недостижимой клетке, я совсем забыл
> А-стар
> А (со звёздочкой)
?
А этот сверху ещё формул нахуярил и не фиксит звёздочки иксами.
Не работает.
Так а какой смысл во всем этом, если для бота эти пути всё равно одинаковой длины? Что он уголком пойдёт, что лесенкой -- время займёт одно и то же.
Я поэтому и говорю, что если хочется нормальных путей, нужен нормальный граф, и А* вообще без модификаций будет выдавать, что надо.
Где ты возьмешь другой граф? Сетку берут потому что это удобно. Чем делать под каждый уровень свой граф. А если уровень изменяемый или генерируемый то тем более.
> Так а какой смысл во всем этом, если для бота эти пути всё равно одинаковой длины?
А вот тут на сцену выходят веса.
Если грамотно расставить веса (в том числе динамически корректировать их сообразно игровой ситуации), бот уже будет рассчитывать движение согласно им. Бот не самоосознаёт себя и не учил геометрию, но веса в навмеше покажут ему, что путь по гиппотенузе короче, чем по двум катетам.
Только в астар годота веса задаются узлам, а не ребрам, что я считаю неправильной реализацией.
Да это так, для игры мечты пилю потихоньку, а в тех что выпускаю, пофиг, болванчики смешно бегают игрокам нравится.
Граф всё так же может быть сеткой, просто надо добавить больше рёбер (например, между всеми ячейками на расстоянии R, находящимися в прямой видимости). Это нихрена ничего не усложняет с точки зрения генерации или динамического изменения, и работает медленнее всего в R^2 раз примерно, на что можно забить для R=2 или 3, чего уже вполне хватает для получения +/- диагональных путей без заметных для невооружённого глаза изъянов. Если сетка шестиугольная, можно вообще взять R=2.
Главный бонус, что с таким графом бот начинает реально добираться до нужной точки быстрее. Без нормального графа сколько не ебись с алгоритмом, бот всё равно будет ходить как долбоёб, тупо потому что в графе нет по-настоящему коротких путей (диагональных, например, а не лесенок).
Желательно еще чтобы с нормальным доступом без впн и прочей хуеты
кто нибудь вообще пользуется ими
раньше знаю были уже но сам не тыкал, сейчас уже 2к25 мне кажется должно уже что то удобоваримое появится
Claude по моему опыту лучше всего пишет, и шейдеры и гдскрипт, даже для тройки. У меня в лайв проекте штук 5 шейдеров выбитых полностью с него, я ему тупо писал "а теперь добавь фреснель туда, а теперь аутлайн". Потом по качеству гпт о1, потом гемини 2.0 думатель.
>без впн
>2к25

Типа такого.
Еще находил шейдеры от юнити-анрила и просил под годот переделать, потому что сам я в шейдерах не разбираюсь. Иногда он спотыкается, конечно, но 2-3 промта вида "мне годот вот тут ошибку выдает", и все чинится.
Просто интересно какая именно техника использовалась. Там есть штук 5 с разными плюсами-минусами и свойствами (например, некоторые видные через стены - полезно для гуя, некоторые нет. Некоторые дают как на твоем пике ломаные линии, которые могут пропадать, также некоторые дают внутренние линии как на бровях - некоторые только внешний контур). Хотя наверное могу сам потыкать в нейронку, она скорее всего будет что-то одно предлагать
Я давно в дизморали. Надо делать. Я делаю и ты делай.
https://www.youtube.com/watch?v=L1h-nuy0Rnw

- Не опен ворлд/метроидвания. Единовременно - только небольшой участок.
- Мид-поли 3д. А стилизация целл-шейдингом или около как оно?
- Чуть-чуть всяких вэфыкс, относительно.
- Физики мало. Столкновений мало. Объектов мало. Требовательность к плавности. Получится комфорт на 120-240гц? Если да, зависит от выбора #/gds, или без особой разницы?
Понимаю, что от игры к игре зависит всё.
К какому этапу 3д стоит морально подготовиться, именно относительно движка?
Все ок. Гдскрипт можешь брать спокойно.

С 2д пикселями все ясно - тупа скейлишь изображение. Все автоматом работает.
А вот как с 3д? Там же типа текстурки. И всякие менюшки могут быть картинками. Нужно рисовать разные текстуры под разные разрешения? Или можно проще сделать?
Зависит от стиля. У меня пикселизированный 3д, поэтому мне зашел вьюпорт с keep aspect, как итог все скалируется вместе, и УЙ и 3д.
https://docs.godotengine.org/en/stable/tutorials/3d/resolution_scaling.html
https://docs.godotengine.org/en/stable/tutorials/rendering/multiple_resolutions.html
Есть один простой принцип, твоя 3д моделька все равно в результате будет нарисована пикселями на экране, а значит ты можешь прикинуть при разных разрешениях (например 720p, 1080p) сколько реально пикселей будет видно если к примеру персонаж всегда занимает только треть экрана, или наоборот если к объекту можно подойти вплотную и рассматривать в упор.
Вообще можно прикрутить лоды и мипмапы (есть галочка в стандартном шейдере). Тогда из качественной текстуры автоматически получатся уменьшенные для дальних расстояний.
Поищи игры на годоте которые примерно похожи на то что хочешь сделать сам и зацени приблизительный финальный результат.
Например: https://floppystack.itch.io/hard-stuck
Сначала подумал "хуле так много комментов, обычный данж кравлер с чужими ассетами же", потом увидел что игра порнушная. Эх.
> потом увидел Эх
Хули эхаешь? Я тебе показываю, что в принципе до релиза игру довести можно. А ты начал вдаваться в частности.
Спок, я не он. Эхаю просто от напоминания что примитивно-порнушное часто оказывается эффективней гениальной-идеи-на-миллион, особенно среди индюков.
Да и я не он, если уж на то пошло.
Идеальных условий для делания игр не будет никогда. Нет смысла ждать, делайте игры сейчас.

Споково...
Просто отрубать управление через паузу/код

Ничего себе! У меня намного хуже стата. CTR упал ниже 1.5% только вчера, не смейтесь.
Ну и в целом другие шейдеры тоже эффекта не дают. Что это может быть? В туториалах у людей все сразу работает.
> Зашел в материалы
Вот этот момент проясни.
Я конечно не телепат, но вот это твоё "зашёл в материалы" попахивает заходом в файловую систему, копированием и сохранением файла с шейдером там. Потому и не работает, что ты просто файл создал.
>сцена состоит из текста
Сцена обычно состоит из всяких нод типа Label.
>шейдер глитч эффект
Такой шейдер обычно применяется ко всей картинке - либо всему экрану (в тексте таких шейдеров часто мелькает SCREEN), либо сделать какой-то корневой элемент. Иногда шейдер вешают на некий прямоугольник (в 2д это может быть ColorRect или TextureRect) который выводится поверх всего.
Да, я знаю. Спасибо.
Что мне мешает ее тупо спиздить с ютаба, слегка изменить но не так сильно, как делал Бобби Принс для дума и использовать?
Ну кто там будет с лупой у ноунейм проекта ползать и пытаться понять, какому аркестру принадлежит исполнение. Еще и хер докажешь.
В чем не прав?
>Вагнер или Бетховен
Это же вроде уже паблик проперти, на нее не распространяется коммерческое право, просто берешь и вставляешь...
На саму музыку нет, но ведь ее кто-то исполняет. Типа Лондонский аркестр говна пирога. И вот если конкретно их исполнение требует лицензии, то уже просто так брать нельзя, насколько я понял
Всё правильно понял. Скачай партитуры и загони в миди-синтезатор.
На похожую тему - я периодически натыкаюсь на игры, слепленные из паблик домейн ассетов, вроде тех средневековых мемных котов, чбшных зарисовок времен колонизации Америки, и прочее. Видимо вполне рабочая идея.
>Что мне мешает ее тупо спиздить с ютаба
>Ну кто там будет с лупой у ноунейм проекта ползать
Ты в курсе что ютаб это автоматически задетектит? Например если кто-то выложит запись игры.
>классическую, например, Вагнер или Бетховен.
А стоит ли? Ну как то совсем странно сейчас в игре будет смотреться. Даже лет 20 назад уже странно было.
>Ну как то совсем странно сейчас в игре будет смотреться. Даже лет 20 назад уже странно было.
А что вставлять? Молодежный пердежь черножопых реперов с радужными зубами?
Любой саунд будет уместен, если обосновать стилистически/лорно/сюжетно/etc
Ну сейчас бы подстраивать всю игру просто под бетховена потому что ты не смог найти/заказать/сгенерить/наклиать музыку.
Зарепорчу за движкосрач вне загона.
Тред про конкретный движок, а не деланье игр.
У меня стоит 320x180, и viewport_scale соответсвенно. Как выглядят модельки - меня устраивает, а вот текст - беда. Он не читаемый стал. Использую label3d пикрелейтед. Какие настройки подкрутить? Можно это как то починить, прошу умоляю прям на коленях стою, с меня тонна нефти (((
быстрофиксыч > разрешении
Не знаю что тут посоветовать, кроме "не делайте так".
Ну возьми шрифт в 2 раза крупнее пикселями и без обводки.
Отключи ему еще антиалиасинг есть там есть такая галочка
Тебе надо наоборот. Текст и игру рендери в высоком разрешении. Пикселизированное 3д пихай во вьюпорт контейнер в низком разрешении, потом этот контейнер пихай в игру (которая в высоком).
Либо шейдеры на 3д-без-текста. Либо делай текст обычным 2д.
Спасибо большое! Аригато коза и масу! Буду разбираться
В прошлых тредах мне один еблан доказывал что всё надо делать руками. Я ему грю мекйхуман же. А он мне грит, а если собака понадобится у тебя есть мейкдог? Интересно, где он сейчас?
Вся суть безигорных, которые в процессе создания своей игры мечты, ближе к релизу выдумывают собак добавить. Таких даже и слушать не надо анон.
А я согласен с тем аноном. По поводу того, что стоит делать самому. Мейкхуман и модельки в видосе невероятно всратые. И это даже не столько про исполнение, сколько про стиль. Ноль вкуса, ноль уникальности. Заебал уже этот "реализм". Понятно, почему этим ААА студии занимаются. А индюкам это зачем?
Дак а нахуй ты мейкуман берешь под стилизацию? А потом бугуртишь что аряя это хуйня.
Все равно все мы знаем, что игру мечты вы не доделайте скребя все только ручками
>Понятно, почему этим ААА студии занимаются. А индюкам это зачем?
Владик брутал сделал норм шутанчик в реализме, че не так?
>а нахуй ты мейкуман берешь под стилизацию?
Я не беру.
>что игру мечты вы не доделайте скребя все только ручками
Я доделаю. Это вполне реалистично. У меня только музыка не моя. Ну и парочка картинок-плейсхолдеров в паблик билде.
>Владик брутал сделал норм шутанчик в реализме
Вспомни еще тот шутер от китайца из бесплатных ассетов, который продался на мильен/трильен долларов (или сколько?) Они выстрелили не благодаря отсутствию стиля, а вопреки. Большая часть успешных инди игр сделано в стилизации. И очень многие из них заработали дополнительные очки в глазах игроков благодаря этой самой стилизации. На реализм уже давно не встает. Это просто дженерик графон. Минимум, который можно терпеть.
>игру мечты вы не доделайте скребя все только ручками
Я доделаю. Возможно уже в этом году. Да, я совершил ошибку вообще взявшись за игру мечты, но после релиза гештальт будет закрыт, опыта получено много, и пойду клепать небольшие экспериментальные игрульки по месяцу-два.

>На реализм уже давно не встает. Это просто дженерик графон. Минимум, который можно терпеть
Реализм в 2к25 это RTX DLSS апскейлутный мыльный слоп под 200гб весом, с инпут лагом, смазыванием фреймов, ИИ-галюнами и статтером, и все это на шикарных 30 фпс на моей 4090. Стало настолько душно, что я тупо скипаю.
Мейкхуман модульный. Какие фигуры туда подгрузишь такие и соберутся.
Я не знал. Ну ладно. Пусть существует тогда, я не против. На твоих пиках кстати треш совсем. Даже я уверен, что можно получить гораздо лучше результат.

>А он мне грит, а если собака понадобится у тебя есть мейкдог?
Я бы ответил: для этого у меня есть твоя мать
Ну я примерно так же и ответил.
>>994291
Скоро нейросети выебут этих мейкхуманов. Меши быстро развивается
https://www.meshy.ai/features/image-to-3d
Я все жду когда анимации/риггинг на нейронках подтянут. Есть cascadeur, но объем ручной работы там чуть менее чем в блендере.
Губами?
В дебаггере есть вкладка misc, в ней показывается кто клик получил. Если что - скинь проект, посмотрим что там у тебя за кек пук.
о спасибо, а там у меня colorrect перекрывал клики, которым я сцены транзичу. поправил
> У меня шейдеры не работают я тут открыл, вставил, сохранил, а оно не работает
> > Ну так тебе же нода нужна которая шейдер покажет, обычно юзают колор-рект на весь экран
4:20
> У меня кнопки не работают, хорошо что проект новый можно пересоздать
Вот поэтому я и не буду выкладывать тут свои наработки, пока проект не будет готов на 80% никогда
>Компонентно-ориентированное программирование (англ. component-oriented programming, COP) — парадигма программирования, существенным образом опирающаяся на понятие компонента — независимого модуля исходного кода программы, предназначенного для повторного использования и развёртывания и реализующегося в виде множества языковых конструкций (например, «классов» в объектно-ориентированных языках программирования), объединённых по общему признаку и организованных в соответствии с определёнными правилами и ограничениями.
>>994434
>опубликовано 22 часа назад
О, вы Кешью ОлдДью?
> О, вы Кешью ОлдДью?
Йес май рашен френд. Йа капитан Кешью и это мой любимый тред на двачах.
Бейзд, сабскрайбед энд прессед the kolokolchek
Пчел, заговора нет, просто с упорядоченным кодом работать легче чем с кучей каши. А способов упорядочить десятки, да, кому что нравится.
планку ровно держи, заебал

Пока что обошел костыльно и когда загружается таймлайн, я просто загружаю всех в память персов, а в конце таймлана удаляю их, очищая память.
У меня в игре все спрайты 4к. И играть можно в 4к. На писи сиси смотреть приятней.
Осваивай Thread.start()'
В видеокартах ограниченное кол-во VRAM, так что все свои спрайты ты туда никак не сложишь
>Thread.start()
Либо я неправильно написал(но это работало, запускалось, загружалось)
Либо нихуя не помогло и дристануло так же.
>В видеокартах ограниченное кол-во VRAM, так что все свои спрайты ты туда никак не сложишь
В таймлайне вряд ли будет больше 10 персонажей, а это около максимум отжор на 1гб видеопамяти суммарно.

Чатгпт? Или официальная документация плюс подглядывание за успешными аддонами.
Можно порнуху с кошкой женой обсуждать, что критично для меня. Про партию или другую хуйню говорить похуй.
Самое главное что не триггерится на сиськи письки и т.д, плюс перевод приемлемый, можно ручками поправить и сойдет дайте ему стул
Делай проще. Ебошь гет_ноде везде, где тебе надо. Базарю, еще захочешь.
> var noda = get_node("imja_ljubimoe_tvojo")
>репарент
Если ты имеешь в виду перенести ноду в другое место в иерархии, то да это дорого (и не всегда безглючно - вполне реально пропустить кадр с коллайдером например)
>гет_перент.гет_перент
Не знаю как у них по производительности, возьми и замерь сам
Но вообще советуют по архитектурным соображениям не прибегать к нему. Идея в том, что парент знает какие у него ноды и может вызывать их методы, а также может подписаться на их сигналы, или просто перебирать их в цикле, а вот чайлду стоит посылать обратно сигнал.
Есть еще пара способов. Один - через set_toplevel. Другой - через ноду RemoteTransform
Правильнй способ вне зависимости от движка и языка: отдельно спавнить "оторвавшийся" кусок. Перестань мыслить об игре как игрок. Игроделы - это фокусники. У тебя постоянно появляются и исчезают карты в рукавах, в конечном итоге для игрока создаётся цельный непротиворечивый мир, но ты как фокусник знаешь, что этот мир - иллюзия, собранная из копий и кусочков.
не делай, отдохни
5 плюс 1 ассет

Первая бета. Изменений дохуя, идите читайте сами. В том числе как раз ускорение работы со SceneTree и репарентами, как выше кто-то спрашивал.
Не, там про передвижение в редакторе.
В этом треде все могут.

# Получаем текущее значение rotation_degrees.y
var current_rotation = $YourNode.rotation_degrees.y
# Создаем анимацию
var animation = $AnimationPlayer.get_animation("your_animation_name")
animation.track_set_key_value(0, 0, current_rotation) # Начальное значение
animation.track_set_key_value(0, 1, current_rotation + 180) # Конечное значение
# Запускаем анимацию
$AnimationPlayer.play("your_animation_name")
Этот подход позволяет вам анимировать объект на основе его текущего состояния, даже если это состояние постоянно изменяется другим кодом
Каеф. Годот сила.
План надёжен как швейцарские часы. Никаких конфочек и емейлов. Если у вас проблема - выкладывайте в годотред - другие годотеры фиксят проблему и постят в тред результат, забираете результат и девелопите дальше. Максимум что можно юзать - файлообменники для обмена файлами. Все обсуждения вопросов связанных с девелопом - прямо здесь. Таким образом часть анонов которые делают игры для ТВГ получают годот-силу сообщества, а те аноны, которые по разным причинам не делают игры, поучаствуют хоть опосредованно.
Я вообще не понимаю сути джемов. Зачем мне тратить время-силы на наколенную игру, тем более для двачеджема, где в нее поиграет полторы калеки, когда я могу пилить свой проект с релизом как минимум в гугл-плей?
Разве что темы и ограничения у джемов бывают интересными - позволяет почерпнуть вдохновение.
Ну не понимаешь - не участвуй. Бро, вот честно, я тебя не заставляю участвовать. Вериш?
Нет.
Именно поэтому ты выделяешь часть своего бесценного оставшегося времени на экспресс-обучение геймдевелопу путям спортивной гонки в джемах.

Именно с 20 до 30 лет ты работаешь на имя. После 30-ти имя работает на тебя.
Прежде чем наивныши будут мне оппонировать знаменитой пикчей, я запощу её сам и напомню, что это черрипикинг гениальными одиночками, ради того чтобы ты лучше работал не на своё имя, а на фирму.
Время стоит столько, сколько тебе за него платят.
>К 40 годам каждый твой день стоит копейки, а к 50-ти уже целый год дешевле доширака.
Шиза. Справедливо только для дешёвой физической рабочей силы, где нужны молодые-сильные и донных должностей уровня шныря.
> c 20 до 30 лет ты работаешь на имя. После 30-ти имя работает на тебя
Сам себе противоречишь с предыдущим пунктом. Когда имя работает на тебя, стоимость твоего времени только растёт. Возраст тут не важен.
Не. Наоборот надо много участников. Если один проект будет, его заканселят срачеры.
Кто понял, тот поймет

потратил полгода на говно для яндекса/гугла - игру отклонили
потратил 2 дня на твг - залутал 20к
Смотрел что-то такое на ютубе, там дохуя блогеров типа добавляли по какой-то одной фиче и были ограничены одним днем, и под конец какая-то игра про акулу и сумоиста получилась
Идея не нова.
Тоже видел, первое что там делали удаляли половину сделанного предыдущим. От перовго практически ничего не осталось.
На конкурсы обычно 1 участник может послать 1 игру. Может неловко выйти если твою игру не примут, потому что ты уже участник другой игры, где кому-то 5 минут помогал.
Очевидно, что в предложенном выше варианте коллаба через тред, тебе никто ничего не удолит. Но вангую, у нас будет обратная проблема. Никто ничего не будет и делать. 3,5 годотера напишут "сделайте мне стейтмашину" "сделайте мне анимации" и на том всё заглохнет.
А может и не выйти.
если ты в кредитах укажешь "программист пупкин вася"
Орг откроет этот тред, а тут написано "Вася, я скачал твой проект, переделал, вот забирай".
> Есть ли воркфлоу удобней?
Вот в ближайшем будущем подтянется виар, девелоперы будут прямо внутри матриц ходить и расставлять ассеты взмахом руки.
Мне осталось решить вопрос 3д моделек, текстур и анимации. Если с последним поможет casccockadeur, то какая аишка мне годно запилит модельки и текстурки в ХОРОШЕМ PSX стиле? Хоть и платно.
Или пока что они с таким не справятся?
Каскадер на мой взгляд тоже хуево справляется. Оверхайпнутая хуйня.
Майки под конец уже прошлого года выкатили, в бесплатной веб версии он генерит по 2д изображениям текстовые промты недоступны нужно локальную версию качать а нвидии за 2к баксов у меня нет такчто не тестил, но вообще народ плюется вроде как за пределами демо материалов и промо оно не так хорошо делает...
да и вообще сам же говоришь аи апокалипсис грядет, народ чет не очень встречает все эти ии поделия все больше и больше хейтит, а со временем чем больше людей ии каснется тем больше негатива будет
>вопрос 3д моделек, текстур и анимации
алсо на сегодня уже такое количество ассетов и всего что можно нахуячино в таких ебейших масштабах что я даже незнаю нахуя тебе их генерить когда можно просто чуть времени потратить чтобы найти подходящии ассеты
моделек бесплатных с готовым ригом тоже полно
>народ чет не очень встречает все эти ии поделия все больше и больше хейтит
Это пока ИИ можно заметить. Когда качество неизбежно вырастет зацепиться станет не за что.
>пока ИИ можно заметить.
дак оно и так чет все лучше и лучше вроде становятся, и параллельно хейта тоже все больше и больше становится
алсо оно ультимативно палится на всем кроме фотореализма(хотя и там тоже), какаято зловещая долина наоборот
>вообще народ плюется вроде как
Ну да... На пиках не то чтобы что-то хорошее
>я даже незнаю нахуя тебе их генерить
Ну для тестов, оно понятно, нах не надо. А вот уже для готового продукта. Хочется индивидуальные текстуры, даже если они похоже на уже готовые, но сделанные конкретно под мой проект...
Ладно, похуй. Цеховая солидарность она такая. Лучше бедного студента найму.
Зато потом гордо на иргу налиплю плашку "NO AI MATERIALS" но то, что мне подсказывает чатбот говорить конечно не буду, лол

>параллельно хейта тоже все больше и больше становится
Опять же, только там где видно что это ИИ. Если арт подозрений к своей ИИшности не вызывает то он получает восторженные отзывы. Я сам таким артом на реддите пару раз карму фармил, после минимальной обработки в ФШ для удаления косяков. Хуй кто заметил, а как следствие хуй кто зайхетил.
Попахивает фекйом, нейронки обычно плохи в рисовании разлиновки бумаги. Надо получше померять линейкой.
Кто-то потроллить решил, что это так нейронка нарисовала. Мне кажется, это настоящий рисунок.

Вообще пофигу. Зависит от твоих целей. у меня в среднекрупной игре визуал и коллайдеры вообще разнесены в разные части дерева, по понятным причинам.
А еще есть подход, например у Пети Сканера, когда модельки без коллизий, импортируются из блендера. И есть специальная служебная сцена-коллизия, которую он вешает на модельки в редакторе при настройке сцены. У неё есть красный куб в качестве показа границ. Красный куб отключается при старте игры.
Любой воркфлоу который себе напишешь на @tool скриптах. Только представь - ты там дублируешь и таскаешь мышью ассеты, а редактор тебе сам их сажает на нужный слой.
> боюсь на полпути столкнуться с какой-нибудь хуйней на уровне движка, чтобы обойти которую нужно будет переписывать все на сишарп.
Низкая производительность. Очень.
Можно, но нельзя.
То есть, по факту, пишешь ты на гдскрипте, сисярпе или плюсах - непосредственно само смещение вершин всё равно придётся делать на шейдере.
Это если не использовать меш.
Что значит "свою систему" террейна и чем тебя не устроили существующие?
Что именно ты на гдскрипте писать собрался?
У годота из коробки нет существующей системы террейна. На гдскрипте буду писать непосредственно сам код, что за вопросы?
>У годота из коробки нет существующей системы террейна
Зато есть куча аддонов. В чем оказалась причина написания своего, а не подстройки существующего?
>На гдскрипте буду писать непосредственно сам код
Код чего, какой именно функционал?
>что за вопросы?
Обычные вопросы. Ты же спрашиваешь подойдет ли тебе гдскрипт, но как ответить на этот вопрос не зная что именно ты собрался реализовать? Может все подумали про обычную генерацию в редакторе карты высот, а ты имеешь в виду какой то реалтайм воксельный копатель.

Нужно всю документацию переписать на таком языке.
Есть вариант делать дочерние узлы и назначать на них скрипты, а затем в родительском узле обращаться к скриптам через get_node или $.
Также есть вариант создавать прямо в папке со сценой новые скрипты, и соединять их в родительском скрипте, получая их при помощи preload.
Варианты вроде как рабочие, но выглядят дико костыльными и неудобными. На других языках я без проблем распределял код на множество файлов, с которыми было приятно работать. А в годоте например если обращаться к скрипту через get_node, не работает автодополнение, так как он не понимает, какие объекты содержатся внутри. Каждому скрипту задавать класс вручную тоже не выглядит как что-то адекватное


Я вообще не пойму, CSG - это ещё актуальная хуйня, или это как BSP-геометрия а Анриле, которую вот-вот выпилят из движка?
Пока сижу на Visual Studio Code, подружил её с дебагингом, вроде неплохо
Visual Studio у меня почему-то перманентно тормозит даже после перехода на х64 (2022 и новее), хотя железо мощное
CSG официально для прототипирования. Накидал кубами-сферами уровень, потом замоделил нормально или хотя бы экспортировал в OBJ
Просто чтобы не переключаться постоянно в блендер с Boolean, а двигать кубы прямо в годоте
>Каждому скрипту задавать класс вручную тоже не выглядит как что-то адекватное
Но ведь " На других языках я без проблем распределял код на множество файлов" ты именно это и делал.

Были с 3.1, остаются до сих пор и останутся в будущем. В 4.4 обновили внутреннюю реализацию. Зачем выпиливать?
Понял. Пасиб.
Ну нет. Многим разве что нужно к новой системе UID привыкнуть, остальное - QoL
я подумал сперва там типа говно в трубе из унитаза смывается симулятор
а там какое-то уныние про хомяка
А игра то в чем? Там же труба без развилок, нет выбора куда ползти.

Допустим я делаю 3D-ассет фрагмента забора. Я импортирую из блендера GLB-файл (бленд-файлы - не предгалать, ибо дохуя весят для репозитория Git), желательно с уже добавленной коллизией и на основе него делаю унаследованную сцену с с именем будущего ассета где задаю материал и прочее, а задем уже вставляю на уровень эту сцену-ассета, по необходимости. Я всё правильн понимаю?
Просто видел вариант, где чел из импортированного GLB-файла вручную сохранял сетку в res-файл, а уже её вручную добавлял в сцену ассета. Но я не понял в чём принципиальная разница (разве что во втором случае добавляется лишний res-файл с сеткой, которая по сути всё равно есть в исходном GLB-файле).
Годот не использует GLTF/GLB, он его импортирует, и при импорте он в любом случае создает этот самый res с мешем во внутреннем формате.
Ресурсы в годоте могут храниться внутри сцен, а могут отдельными файлами. Когда чел сохраняет res, то грубо говоря на этот размер уменьшается размер сцены. Вообще сцену после этого можно и удалить, и glb удалить, а дальше уже использовать в игровой сцене MeshInstance с mesh.
Дальше уже вопрос удобства, наверное. Если ты активно редактируешь модельку, то она будет авто-реимпортироваться. С другой стороны это значит что изменения в этой сцене удалятся (а я там к примеру BoneAttachment навешиваю) - мне проще тоже уже меши отдельно хранить как ресурс
Ага, понял. Спасибки.
Я на тройке, в четверке процесс экспорта поменяли. Но я делаю так. Леплю модель, экспортирую в gltf, в годоте открываю gltf, копирую топ-ноду внутри которой меши, и вставляю ее в свою сцену. Коллизии предпочитаю делать сам, упрощенные, поэтому при импорте не заморачиваюсь. GLTF закрываю, иногда удаляю иногда храню как бекап.
Если модель активно редачу и ее надо оценить сразу в лайв-режиме в игровом мире, то использую gltf вставленный в сцену.
В годоте четверке мобильную игру при изменениях в проекте надо каждый раз перекомпиливать или есть инструменты типо Unity Remote?

Если ты имеешь в виду - разработка на пк и запуск на андройд, то годо едитор зппускается на андройде нативно. Синхронизируешь прлект через гит и никакой компиляции.
https://www.youtube.com/watch?v=MX2I3376ubE
Миром править будешь!
Не толсти. Я 15 минут потратил чтобы выяснить как выглядит игру в фулскрине, а не каком то кривом окошке с неправильным aspect ratio.
> 997346
> кок-пок годоти кудах
>>997351
> Не толсти
Щас бы всерьёз отвечать что-то залётному срачеживотному (которое я уже зарепортил за движкосрач), что он там толстил-перетолстил. Давай, продолжай кормить.

Я пишу не про встраивание в редактор, на этот режим мне пох (я просто никогда не буду заходить во вкладку плей, да и вообще ее легко убрать аддоном в 5 строчек который скрывает лишние кнопки-вкладки)
А про то что теперь по умолчанию когда запускаешь игру по F5 в ОТДЕЛЬНОМ окне оно обвешано как новогодняя гирлянда, и даже издевательски пишет в углу 1652х926, когда в проекте задано 1920х1080 и ФУЛЛСКРИН блдджад.
Так вот держу в курсе 1920:1080 = 1,7(7) ratio, а 1652:1,77 = 1646 а не 1652, удачи потом искать почему игру перекосило на 6 пикселей у игрока.
>1652:1,77 = 1646 а не 1652
Читать как 926x1,77 = 1646 а не 1652

Возможно тебе поможет совет из шапки?

Я корректирую высоту при root motion (меня интересует только движение в плоскости)
И тут оказывается в годоте настолько хорошо уже многопоток сделан, что анимации в своем потоке крутятся и переписывают значение. Пришлось отключать для анимейшен плеера и загонять его в главный поток.
(хотя нормальный способ наверное будет подправить экспорт скрипт блендера (mixamo2godot.py) и сразу там обнулять)
У меня что-то сразу две срабатывают, но не всегда.
Может, дело в эмуляции тачскрина/мыши?

>подправить экспорт скрипт блендера
Ты 60+ раз в секунду правишь на машине игрока то, что ты мог поправить 1 (один) раз на своей?
А потом такие вундеркинды пишут что-то уровня:
>ряяяяя гдскрипт медленный, хачу писять на сясру
У меня АА игра. Там 4 постпроцесс шейдера миллионы пикселей каждый кадр перерисовывают. А еще там ретаргетинг анимаций, ага, и бленд с активным рэгдоллом.
И тут как в анекдоте про ящик пива и торт. Одно присвоение все прям уронит да ага.
Но вообще у меня это прототип поскольку пайплайн с 3д еще не отработан. Смысл мне переделывать десяток анимаций, а потом их будет сотня, если это решается тремя строчками кода?
Не занимайся преждевременными оптимизациями в общем, и думай в общем масштабе стоимости каждого элемента.
Точнее в 4-ке get_viewport().set_input_as_handled()
>У меня АА игра.
Эти буквы означают бюджет игры...
>Одно присвоение все прям уронит да ага.
Здесь у тебя присвоение, там у тебя прибавление, в третьем месте у тебя умножение. Так и получится неиграбельное говно, в которое ты $100 млн слил. Впрочем, судя по новинкам - так и задумано...
>Но вообще у меня это прототип
>пайплайн с 3д еще не отработан
Зачем ты тогда какие-то кости бёдер дёргаешь, лол?
Накидай грубыми мазками прототип на кубах, а всю красоту пускай твои 3D мартышки наводить будут. Должны же они зряплату свою отрабатывать.
>если это решается тремя строчками кода
Просто не решай отсутствующие проблемы.
Решил реальную проблему.
На встроенном gdscript редакторе + нейронки.
> В чем вообще код пишете?
Во встроенном редакторе.
> Rider IDE
> We are sorry, but we are currently unable to provide our products or services to you due to export control regulations.
Пусть нахуй идёт.
> просто надо выбрать позу поудобнее, тогда и не обидно
О началось.
Повторю ещё раз. Пускай они идут нахуй.
Rider можно бесплатно скачать и установить, воспользовавшись прокси/VPN. Тот же Тор тоже бесплатный
Но вместо того, чтобы получить преимущества полноценной среды разработки, над которой каждый день работают сотни профессионалов, ты выражаешь свой протест на треде в имиджборде. Герой нашего времени
О, продолжилось))
Догадаешься, почему в треде опенсорс движка предпочитают vscodium, а не проприетарные редакторы которые чет там проверяют и требуют впн, который вообще то может и исчезнуть (а то бывают еще случаи когда сайт банит аккаунт если резко сменился ip)
Чего вы так трясетесь? Вас же не заставляет никто его устанавливать
Rider работает даже без подключения к интернету. Скачал, установил, заблокировал выход в интернет через файрволл. Или снова очень сложно? Судя по тому, что вы на гдскрипте пишете, где даже интерфейсов нет нормальных, вам и правда IDE ни к чему. В VSCode даже нормальной отладки для Шарпа нет, не говоря уже про VSCodium, на который официальные плагины и пакеты не накатить. Там у многих при альтернативном компиляторе отладки нет вообще
Разработчики блять))
> чё-то там проверяют
> чё-то там требуют
> могут исчезнуть
Какие-то выдуманные причины, паранойя, наверное
А хули, разрабы наши, русские, вот и не обидно. Пускай ебут пока удобно
>В чем код пишете?
Когда как, но часто правлю в обычном "Блокноте".
>>997694
>каждый день работают сотни профессионалов
Сколько программистов нужно, чтобы сделать то, что существует как минимум с 90-х годов прошлого века? Буквально единственное нововведение 21-го века - встраивание "LLM автодополнений" прямо в IDE.
>>997720
>Свой гит поднял с бэкапами?
Зачем нужен гит, если можно просто делать архивы? Можно подумать, вы тут все командами по 2+ кодера шедевры индустрии пишете, а не копипастите почти готовый год в свои пикселявые 2D хэллоу ворлды.
Гит нужен всяким ракетным прошивкам и т.п., где единственная опечатка может стоить миллиарды и необходимо знать, на кого свалить ответственность. Индюшачья разработка игр примерно как детская импровизация на самодельных инструментах, и нет совершенно ничего плохого в таком подходе (это же игрушки всего лишь, никто от них ничего не требует).

Можно называть паранойей, а можно просто информационной безопасностью.
Причем это именно уже сложившиеся практики, просто ждали опасности со стороны жадных корпораций (типа трактора Джон Дере), а сработало с трансграничной связью.
Вообще это уже не первый год идет и все как бы в курсе должны быть - сколько физических продуктов превратилось в тыкву, от всяких игрушек-роботов до "умных домов" или телевизоров когда фирма загнулась/продалась/стала соблюдать санкции и до серверов стало не достучаться.
А так же все утечки всяких данных, поскольку стало модно требовать номер телефона и указывать о себе все от имени до фотографии.
А это еще не поднимая вопроса стоит ли вообще пользоваться инструментами которые куда-то там отправляют весь твой набранный код (а если строго говоря то вообще кейлоггер всего) (когда ты делаешь запросы к автодополнениям/ии), где он там складывается и для каких целей потом будет использоваться. И что туда может утечь - в какую нибудь обучающую подборку потом попадет твой секретный пароль или ключ подписи или что-то еще, иногда случайно оставшееся в буфере обмена или если ты редактировал файл конфигурации. Опять же в этом плане редакторы с исходным кодом позволяют хотя бы проверить что они ничего по сети не отправляют.
Это такой вид "ООП" / наследования
Mesh это ресурс. Материал ресурса распространяется на все экземпляры мешинстанса с этим мешем.
У MeshINSTANCE (конкретного спавна) можно задать свой Surface Mat Override или Geometry Mat Override.
Surface это поверхность в единственном числе. Поверхностей у модельки может быть много и у них могут быть разные материалы. Например стекло окон одна поверхность с прозначным материалом, стена кирпич с другим. Так ты можешь конкретные домики покрасить крыши в разные цвета не меняя свет стен.
Geometry это замена материала на всю модельку (на все поверхности).
а так же GeometryInstance это базовый класс, а значит материал например шейдерный можно задать таким нодам как Sprite3D и Label3D у которых модельки нет
Ну и последнее Overlay это способ рисовать поверх модельки. Например татухи, спецэффекты, кровь, ржавчину

Бля, так это просто слот материала. Даже нолик написан, ибо слот у текущей модельки один. Теперь понятно стало. Благодарю, анончик!
Таблетки
Проблема таких аргументов в том, что 99% юзеров не работают с совершенно секретной информацией, твои говнокоды в говноигрушке для яндексигр никому не нужны - они только отупят генерирующие нейронки.
А у тех, кто реально работает с ценной секретной информацией, обычно есть деньги на свой софт.
https://www.reddit.com/r/ProgrammerHumor/comments/u4dh2o/github_copilot_just_leaked_someones_api_key/
Почему так вышло? Ну, он обучался на гитхабе, а там кто-то в репу залил ключ, видишь это банально случается, даже не с шпионами или мафиозями.
>кто-то в репу залил ключ
>every fifth works
>http://...?appid=
Это какой-то рандомный публичный ключ.
Ты же не будешь пароли через HTTP GET слать?
>видишь это банально случается
А что случилось-то, кто от этого пострадал?
Так можно и на генератор случайных чисел жалобы писать, потому что раз в сколько-то запросов он тебе выдаёт чей-то пароль. А ещё часы, счётчики и прочее. Можно пойти в ЗАГС с просьбой запретить чью-то фамилию, которую ты как пароль использовал...
Нейронки не такие рандомные, есть атака повторяющимся словом, так исследователи узнавали тренировачные датасеты многих закрытых нейронок.
https://medium.com/@dinob5551/recreating-google-deep-minds-gpt-attack-021ec6786a47
>А что случилось-то, кто от этого пострадал?
В этом и фишка, выполняя правила гигиены ты сразу исключаешь себе возможность пострадать от такого класса вещей, это так же просто как не переходить дорогу не поглядев есть ли машина и так далее.
Одна из недавних познавательных историй была с Disney. Женщина спросила в ресторане безопасная ли еда, и офианты ей несколько раз сказали что аллергена нет, но она, поев, задохнулась и умерла.
Когда муж попытался подать на Дисней в суд, они сказали - а нет, ты не можешь, помнишь ты подписывался на месяц демо бесплатного онлайн кинотеатра? Так вот ты там подписал EULA в который был пункт, что ты отказываешься подавать в суд на Дисней в любых ситуациях )))
Чувак поднял шум и общественность надавила на корпорацию. А у меня нет сил, здоровья и желания бодаться в таких случаях, поэтому мне в разы проще изначально в такие ситуации не попадать и не подпистывать ничего сложнее MIT, BSD или GPL. Да от некоторых инструментов придется отказаться, ну так что поделать раз к ним в комплекте идет ведро говна.
Ну всё, просто не копируй свой пароль от Сбербанка в инспектор нод Godot, а то вдруг Хуан украдёт у тебя все кредиты и даст тебе лишних денег на вклады.
И главное, если подавишься чипсами за компом - не забудь закрыть Godot, а то вдруг Хуан проиграет суд с твоими родственниками и движок закроется.
Игры делай. Оффлайн. Там пароли не нужны...
Ну и к чему ты начал переводить стрелки на годот?
Главное не забывай проверять аддоны, благо они тоже в опенсорсе распространяются, а то я пару раз видел аддоны которые лезут в интернет с "телеметрией".
https://www.youtube.com/watch?v=Ydzj1bT_pC8
Теперь осталось диалоги написать, но у меня лапки, а ИИ всегда пишут кринжатину.
>можно делать архивы
А можно делать нормально. Нет, дело не в ракетной разработке, а дело в том что это удобно блять. И что, с какой периодичностью делать архивы? А если в игре куча графики, как прикажешь упаковываться? А если захочешь откатиться к определённому изменению, которое произошло между архивациями? Я то могу коммиты на каждый чих делать, и они ничего не будут весить (измененный файл полностью). А могу вообще ради теста начать вести отдельную ветку, куда из основной буду сбрасывать функционал, а в ветке колхозить что-то эдакое, например новую реализацию какой-то сложной фичи, а потом просто сведу эти ветки 3 кликами клавиш. Могу посмотреть, не обосрался ли где я в момент коммита, не уснул ли на клаве и не выпилил ли что-то важное, или наоборот, какой-то лишней параши набросал, могу увидеть визуально результат работы в комплексе, тоже очень полезно, особенно если работа была многофайловая по реализации какой-либо сквозной фичи.

ПИШЕШЬ МАКСИМАЛЬНО МАЛЕНЬКИЕ ДИАЛОГИ
@
ПОБОЛЬШЕ ЗАГАДОЧНОСТИ, ПОМЕНЬШЕ СМЫСЛА
@
ПОДАЕШЬ ЭТО АЛЯ ДИАЛОГИ ДАРК СОУЛЗ
@
ВСЕ РУКОПЛЕЩУТ, САМИ ВЫДУМЫВАЮТ И ДОДУМЫВАЮТ СМЫСЛАЫ, НАЗЫВАЮТ ГЕНИЕМ

Хотелось бы с локальной ИИшкой, но на безрыбье для прототипа сойдет, наверное.

ИИ будут спасать корпоративный сектор. В инди всё будет так же. Цениться будет уникальное авторское видение избитого геймплея. Берешь кучу старых игор, херетик, например там, гоночки какие, пару ритм-игр, скроллеры, скримеры, аномалии, карты, файтинги, тамагочи, засовываешь в один картридж, сверху закидываешь анимешных тяночек, посыпаешь морковкой, поливаешь любовным соусом и контрастным взглядом на мир - ХУЯК! Хит декабря готов. Главное, не заглядывай в духовку.
Там тривиальные HTTP запросы к локалхосту:
https://coosis.github.io/blog/posts/ollamawithgodot/
Бэкенд этот: https://ollama.com/ + модели там же.
>>998155
>всех инди разрабов заменят
А зачем ты игру делаешь? Ради бабла? Если тебя беспокоит искусство, то оно никак не пострадает. А зарабатывать на инди ты б и раньше не смог. Просто продолжай заниматься творчеством как своим хобби.
>>998156
>уникальное авторское видение
Да всем насрать, будет 5 отзывов от друзей и всё. В геймдеве главное не продажи, а удовольствие от творческого процесса, даже если результат - >пук.
>Хит декабря готов.
Если ты про MiSide, то они несколько лет пиарились. Экономически это не то, что соло двачер потянет...
Кидай ссылки сразу на гитхаб. Уважай наше время.
https://github.com/nathanhoad/godot_dialogue_manager
>чтобы не тратить время на велосипед
Велосипед полезно написать ради опыта...
>>998017
>Теперь осталось диалоги написать
Начни с описания личностей персонажей. Диалог - это продолжение личности, её реализация. Рассматривай литературу как ООП, тогда всё станет намного проще.
>а ИИ всегда пишут кринжатину
Смотря на чём обучены и как ты их спрашиваешь. Но глобальные идеи из них почерпнуть полезно, только запрашивать нужно на английском языке, конечно. В общем, опиши сначала персонажа, тогда чатботу (как и твоему мозгу) будет проще подстроиться.
Алсо, помним про GIGO:
>garbage in - garbage out
По-русски:
>без внятного ТЗ результат ХЗ
>коммиты на каждый чих делать
Мне кажется, в этом скрыта большая психологическая проблема. Когда у тебя есть свободный доступ к ctrl+z, становишься зависим от этой функции настолько, что перестаёшь самостоятельно мыслить. Вместо поиска конкретной ошибки ты просто откатываешь всё назад в прошлое и в результате не учишься на ошибках, не понимаешь, где именно и почему ты ошибся. Т.е. ты отказываешься от разработки в пользу магической, решающей все проблемы кнопки "откатить назад".
Что-то подобное сейвскаму. Нездоровая практика, приводящая тебя к обсессивно-компульсивному расстройству психики в долгосрочной перспективе. Вместо удовольствия от игры - постоянные загрузки "наиболее удачных" сохранений игры...
>начать вести отдельную ветку
Это тоже проблемная фича, но в другом плане: ты перестаёшь видеть проект в общем и целом, вместо глобального обзора видишь только одну фичу, что, возможно, может быть интегрирована с другими, а, возможно, будет для игры как телеге пятое колесо. Буквально делаешь независимый проект, а зачем?
>увидеть визуально результат работы
Что ты имеешь в виду? Число строчек +/- в файле? Сомнительная информация, поскольку результаты работы программиста неизмеримы числом строк.
Моя главная проблема с гитом - неудобный GUI и отсутствие лёгкого доступа с любой платформы.
Не видел ещё ни одного разумного аргумента, чтобы убедить меня пользоваться этой неудобной системой контроля версий вместо простых файловых операций. Существует ли система контроля версий, которая бы оперировала только файлами в ручном режиме? Т.е., например, чтоб скинуть файл на флешку и сохранить доступ даже если вставить флешку в свой смартфон (архиваторов много на Android, все с удобными GUI). Желательно чтобы был прямой доступ через SMB.
На данный момент не вижу ничего удобнее архивов.
Так вот, оказалось, что это делается штатно, безо всяких предварительных загрузчиков, прямо в настройках проекта.
Написал скрипт, задал ему имя класса, прописал в настройках, вуаля!
Антипаттерн год-обджект грузится прямо на старте.
Вперёд, к Великому Антипаттерну!
![bill-gejts[1].jpg](https://2ch.life/gd/thumb/992896/17380072156300s.jpg)
>Зачем нужен гит, если можно просто делать архивы?
>Гит нужен всяким ракетным прошивкам и т.п., где единственная опечатка может стоить миллиарды и необходимо знать, на кого свалить ответственность.
>>998193
>Мне кажется, в этом скрыта большая психологическая проблема. Когда у тебя есть свободный доступ к ctrl+z, становишься зависим от этой функции настолько, что перестаёшь самостоятельно мыслить. Вместо поиска конкретной ошибки ты просто откатываешь всё назад в прошлое и в результате не учишься на ошибках, не понимаешь, где именно и почему ты ошибся. Т.е. ты отказываешься от разработки в пользу магической, решающей все проблемы кнопки "откатить назад".
>Вместо поиска конкретной ошибки ты просто откатываешь всё назад в прошлое и в результате не учишься на ошибках, не понимаешь, где именно и почему ты ошибся. Т.е. ты отказываешься от разработки в пользу магической, решающей все проблемы кнопки "откатить назад".
>Это тоже проблемная фича, но в другом плане: ты перестаёшь видеть проект в общем и целом, вместо глобального обзора видишь только одну фичу, что, возможно, может быть интегрирована с другими, а, возможно, будет для игры как телеге пятое колесо. Буквально делаешь независимый проект, а зачем?
Угар, бля. Такую дикую поеботу может нести только тот, кто так и не постиг философию ГИТа. Сиди свои архивы архивируй, ебанько.
>Моя главная проблема с гитом - неудобный GUI и отсутствие лёгкого доступа с любой платформы.
Ты погуглить-то пробовал? Миллиард ГУЁв под ГИТ написано. Я SourceTree юзаю, например.
>Существует ли система контроля версий, которая бы оперировала только файлами в ручном режиме? Т.е., например, чтоб скинуть файл на флешку и сохранить доступ даже если вставить флешку в свой смартфон (архиваторов много на Android, все с удобными GUI)
Существует-ли система контроля версий, которая сможет сварить мне кофе?
Смотри в консольку, если не ругается, значит все нормально. Пустой мешинстанс вряд-ли производит вычисления, следовательно в плане производительности аналогичен любой пустой ноде.
Наес. Люблю антипаттерны просто.
Анон выше написал пример с олламой, но можно и просто llama.cpp взять. Ollama по сути это оболочка над лламой для пользователей - чтобы он мог скачивать и заменять модели, в том числе на лету, чтобы он мог скармливать картинку чтобы получить ее описание. Но возможно тебе это все не надо, если ты сам решишь что будет за нейронка. А у лламы тоже есть режим сервера. Или его можно встроить как cpp модуль. Или можно просто запускать экзешник в процессе и читать ответ.

Тебе кажется. Я нехотя начал пользоваться гитом лет 5 назад. Так вот никогда я не использовал его как undo. Кроме пары случаев когда что-то совсем сломалось (ну это то же самое как если бы ты распаковал вчерашний .zip). Но, зато есть способ сравнить с чем-то в произвольной точке времени. Посмотреть как был написан кусок кода месяц назад, и сравнить реализацию. Альтернатива этому хз, я в блокнотике сниппеты кода разные варианты писал, или стены закомментированного кода, это все неудобно. или переименовывать функцию в old_ready и писать новую _ready... да и так можно
>Моя главная проблема с гитом - неудобный GUI и отсутствие лёгкого доступа с любой платформы.
А это попросту не так. К гиту как раз легчайший доступ с любой платформы из консольки (да да, на андроид тоже есть termux).
>GUI
Логично, это графический юзер интерфейс, а там есть TUI (text user interface) и CLI (command line interface)...
>Оперировала файлами
Дальше будет немного шизофилософии
что такое файл? Это запись в каталоге, что в непрерывном потоке байтов на диске (а в случае текстового файла - символов) некий диапазон от и до - помечен как являющийся этим файлом (фрагментацию и пр. для простоты игнорируем)
что такое строка? Это диапазон от и до какого то символа в непрерывном потоке символов
Внезапно это одно и то же... Все есть файл, все есть строка. Гит работает со строками как с файлами...
Инб4 таблетки
Или это так толсто, что даже тонко, или ты реально феерический аутист с спгс.
>Мне кажется, в этом скрыта большая психологическая проблема. Когда у тебя есть свободный доступ к ctrl+z, становишься зависим от этой функции настолько, что перестаёшь самостоятельно мыслить. Вместо поиска конкретной ошибки ты просто откатываешь всё назад в прошлое и в результате не учишься на ошибках, не понимаешь, где именно и почему ты ошибся. Т.е. ты отказываешься от разработки в пользу магической, решающей все проблемы кнопки "откатить назад".
Я веду одновременно 4 проекта - рабочий на работе, свой собственный фреймворк для моих игр, клиент и сервер. Я просто физически не смогу "мыслить" идеально во всех 4 проектах, чтобы без истории коммитов точно помнить а чем я там занимался не просто на прошлой неделе, а чем я там занимался вчера вечером, и ориентироваться по диффам коммитов очень удобно. Нет, я не ищу ошибку откатами, я ищу её отладчиком, это тестировщики и девопсы ищут падающий билд откатами, если в этот момент дева на месте нету. А иногда я ищу её не просто отладчиком, а глазами изучаю инструкции и понимаю где собака зарыта. И я скорее заработаю какое нибудь расстройство мозга когда начну шерстить архивные копии если мне вдруг понадобится удаленный код, который я буду искать через meld по архивам, а то и вовсе мне потребуется сопоставить 3 версии файла из разных коммитов для моих целей, например в целях изучить что было до очередной итерации рефакторинга.
>Это тоже проблемная фича, но в другом плане: ты перестаёшь видеть проект в общем и целом, вместо глобального обзора видишь только одну фичу, что, возможно, может быть интегрирована с другими, а, возможно, будет для игры как телеге пятое колесо. Буквально делаешь независимый проект, а зачем?
У меня может быть сразу 3 варианта физики или 2 варианта интерфейса, и ещё много всего может быть. С 3 типами физики было неиронично. Есть релиз и дев ветки, это уже классика, чтобы тестить совместимость и не только.
>Что ты имеешь в виду? Число строчек +/- в файле? Сомнительная информация, поскольку результаты работы программиста неизмеримы числом строк.
Ты мой текст жопой читал?
>Могу посмотреть, не обосрался ли где я в момент коммита, не уснул ли на клаве и не выпилил ли что-то важное, или наоборот, какой-то лишней параши набросал, могу увидеть визуально результат работы в комплексе.
Я в диффе вижу все что я сделал, это значит я могу дополнительно проконтролировать как я реализовал фичу, где что написал и не написал ли чего лишнего, потому что некоторые сложные фичи могут занять недели с лопатингом всей кодовой базы, и я по хорошему должен иметь возможность изучить проведенные мероприятия чтобы точно убедиться что я вообще сделал то что хотел.
>Существует ли система контроля версий, которая бы оперировала только файлами в ручном режиме? Т.е., например, чтоб скинуть файл на флешку и сохранить доступ даже если вставить флешку в свой смартфон (архиваторов много на Android, все с удобными GUI). Желательно чтобы был прямой доступ через SMB.
Этот текст писала чатгпт 3? 3.5 и то такого дебилизма не выдаст. Хочешь чисто андроид - подымай гитсервер и цепляйся к нему через puppygit, либо параллельно держи расшареную папку проекта плюс gitweb - таскай файлы из gitweb а затем закачивай по smb в проект. Для андроида действительно нету вот прям хороших инструментов типа sourcetree, если убрать гитхаб из уравнения по некоторым причинам. Но как причина для отказа от удобств Гита в виде того что он кофе не варит - это смешно, впрочем каждый дрочит как хочет.
Или это так толсто, что даже тонко, или ты реально феерический аутист с спгс.
>Мне кажется, в этом скрыта большая психологическая проблема. Когда у тебя есть свободный доступ к ctrl+z, становишься зависим от этой функции настолько, что перестаёшь самостоятельно мыслить. Вместо поиска конкретной ошибки ты просто откатываешь всё назад в прошлое и в результате не учишься на ошибках, не понимаешь, где именно и почему ты ошибся. Т.е. ты отказываешься от разработки в пользу магической, решающей все проблемы кнопки "откатить назад".
Я веду одновременно 4 проекта - рабочий на работе, свой собственный фреймворк для моих игр, клиент и сервер. Я просто физически не смогу "мыслить" идеально во всех 4 проектах, чтобы без истории коммитов точно помнить а чем я там занимался не просто на прошлой неделе, а чем я там занимался вчера вечером, и ориентироваться по диффам коммитов очень удобно. Нет, я не ищу ошибку откатами, я ищу её отладчиком, это тестировщики и девопсы ищут падающий билд откатами, если в этот момент дева на месте нету. А иногда я ищу её не просто отладчиком, а глазами изучаю инструкции и понимаю где собака зарыта. И я скорее заработаю какое нибудь расстройство мозга когда начну шерстить архивные копии если мне вдруг понадобится удаленный код, который я буду искать через meld по архивам, а то и вовсе мне потребуется сопоставить 3 версии файла из разных коммитов для моих целей, например в целях изучить что было до очередной итерации рефакторинга.
>Это тоже проблемная фича, но в другом плане: ты перестаёшь видеть проект в общем и целом, вместо глобального обзора видишь только одну фичу, что, возможно, может быть интегрирована с другими, а, возможно, будет для игры как телеге пятое колесо. Буквально делаешь независимый проект, а зачем?
У меня может быть сразу 3 варианта физики или 2 варианта интерфейса, и ещё много всего может быть. С 3 типами физики было неиронично. Есть релиз и дев ветки, это уже классика, чтобы тестить совместимость и не только.
>Что ты имеешь в виду? Число строчек +/- в файле? Сомнительная информация, поскольку результаты работы программиста неизмеримы числом строк.
Ты мой текст жопой читал?
>Могу посмотреть, не обосрался ли где я в момент коммита, не уснул ли на клаве и не выпилил ли что-то важное, или наоборот, какой-то лишней параши набросал, могу увидеть визуально результат работы в комплексе.
Я в диффе вижу все что я сделал, это значит я могу дополнительно проконтролировать как я реализовал фичу, где что написал и не написал ли чего лишнего, потому что некоторые сложные фичи могут занять недели с лопатингом всей кодовой базы, и я по хорошему должен иметь возможность изучить проведенные мероприятия чтобы точно убедиться что я вообще сделал то что хотел.
>Существует ли система контроля версий, которая бы оперировала только файлами в ручном режиме? Т.е., например, чтоб скинуть файл на флешку и сохранить доступ даже если вставить флешку в свой смартфон (архиваторов много на Android, все с удобными GUI). Желательно чтобы был прямой доступ через SMB.
Этот текст писала чатгпт 3? 3.5 и то такого дебилизма не выдаст. Хочешь чисто андроид - подымай гитсервер и цепляйся к нему через puppygit, либо параллельно держи расшареную папку проекта плюс gitweb - таскай файлы из gitweb а затем закачивай по smb в проект. Для андроида действительно нету вот прям хороших инструментов типа sourcetree, если убрать гитхаб из уравнения по некоторым причинам. Но как причина для отказа от удобств Гита в виде того что он кофе не варит - это смешно, впрочем каждый дрочит как хочет.
Его можно запустить на любом тостере и совершенно бесплатно публиковать сделанные на нем игры. Это иногда суммонит своеобразную аудиторию
Попробуй сходить за бесплатной шавухой в твоём городе, когда новые точки открываются - первому десятку посетителей ее дарят. Ты охуеешь
Потому что думающие, преисполнившиеся люди, свободные, не скованные ограничениями, кроме объективно существующих еще не реализованных функций, творцы, креативно ищущие способы эти ограничения покорить или обойти, архитекторы, стоящие выше взаимозаменяемости офисных винтиков.
>>998247
Это крайне искаженное описание.
Во перввх бесплатное много где дают, а кое где и побольше чем тут. Туда получается еще больше маргиналов должно слетаться.
А все потому, что ты обратил внимание только на один аспект - брать, но упустил другой - дарить в ответ. Дарить коммиты в коде, дарить знания об устройстве.
Это скорее свободные каменщики или
мужики в деревне собирающиеся помогать друг другу строить дом.
Поэтому в комьюнити годота когда кто-то показывает, что он сделал - то чаще отвечает как, дает ссылку на репозиторий, показывает бесплатный видеотуториал. А не пишет, это я сделал покупайте за $8.99 а чтобы узнать как покупайте курсы.
>Ты погуглить-то пробовал? Миллиард ГУЁв под ГИТ написано
Вот тут я понял, что ты просто красноглазик. Давай, еще линукс посоветуй, лол
То ли дело обеспечивать себе гемор с архивацией, а когда вследствие скудоумия где подход с архивацией скорее всего распространяется на все аспекты продукта (зачем делать нормальную архитектуру, если можно ебануть монолит на синглтоне и радоваться жизни, зачем сразу оптимизировать сцену/сетку используя мешинстансы и организовуя работу батчинга кэшируя меши и материалы, создавая генерируемые ресурсы с атласспрайтами для 2д) а зачем, если везде пишут чтоб не занимались преждевременными оптимизациями, при том что они практически ничего по времени не стоят, в отличии от дальнейшего отлова этой проблемы через мониторинг. А потом год полируют проект, ищут баги, либо релизят говно сломанное, а то и вовсе не релизятся. Зато не красноглазик, епта.
Ну тыж в курсах что основные девелоперы годота - линуксоиды?
Может речь об оптимизации на этапе R&D? Или разработка игры это и есть сплошной эрэнди?
R&D в инди везде, на каждом шагу. Просто когда подойдёт момент сборки элементов r&d в цельную игру - надо не обосраться и не забить. При чем вышеописанные оптимизации часть r&d, чтобы понять насколько вообще движок может раскрыться, если нужно скажем создать что-то большое и многообьектное. Я впринципе согласен что в игре все аспекты кроме архитектуры и кор механик могут быть днищными, даже оптимизаций фич может не быть, потому что архитектура и её внедрение - это сэкономленные недели и месяцы работы и стабильный рабочий процесс от абстракций к реализации, а тяжёлая кривая фича - и так сойдёт, даже выбросить не жалко при неосиливании, или написать в требованиях 3090 с учётом апскейлинга, и так сойдёт. Главная задача - не дать обеспечить продукту тебе бессонные ночи, а не вылизать его до блеска. И при решении этой задачи - лучше не экономить, если элементы прототипирования утверждают что все нормально. Плюс некоторые вещи лучше не прототипировать, это относится к механикам стат и циферок, потому что во первых - прототипировать нечего, во вторых она слишком завязана с игрой, и либо придётся изобретать прокси абстракции для взаимодействия сущностей и их стат чтобы не было прямой связи, либо изначально выбирать особую архитектуру где это заложено (ecs), ещё прототипировать не стоит систему лута по схожим причинам.
Правильная архитектура - залог успеха, согласен. Что ты или другие аноны можете порекомендовать почитать/посмотреть на эту тему? Мало опыта у меня, я джун, но уже сейчас на практике понимаю важность архитектуры
Гугли архитектуру приложений в обычном айти. Когда поймёшь её - без труда примеришь подходы на геймдев.
Просто хочешь разобраться?
Советую Дебиан. Четкий, надежный. Генту и Арч не советую новичку, который даже с гитом трудности испытвает. Хотя конечно это true way собирать софт из исходников, а не слепо доверять репам. Всякую экспериментальщину типа НиксОс тоже сложно. Убунту же слишком далеко отходит уже от свободного софта.
Кто-то посоветует смотреть в сторону DI, и будет в некоторой степени прав, хоть в годоте и нет своего DI. Я могу только от себя посоветовать что ты должен избегать как огня общеигровых шин событий, когда на одну шину сыпятся события отовсюду и обо всем (урон по сущности, обновление стат, применение эффектов) если ты захочешь делать это через такой интересный паттерн чтобы избежать ecs и строгой вертикали. Постарайся их хотябы разделить по группам где в каждой группе не более 10 видов событий, так ты убережешь себе нервы если эта херня начнёт по какой-либо причине ломаться и проще будет отслеживать потоки данных в отладчике и воспроизводить ошибки, ведь локализация проблемной группы систем на лицо. При чем старайся группы генераторов событий избавлять от сайд эффектов других шин, они должны работать изолировано и только между собой внутри своей шины и не должна возникать ситуация когда событие из сущности одной группы приводит к событию из сущности другой группы, между ними всегда обязано быть глобальное состояние хоть в каком либо виде - как часть вертикали приложения или как синглтон сохранения состояния игры.
Для гиперказуалок сойдёт шина + жёсткая абстракция либо просто жесткая абстракция. Для чего-то помощнее - стоит осваивать сущностно компонентную либо ecs. При чем это не значит что нужно в точности повторять, стоит импровизировать, и не бить золотым молотком, не пытаться натягивать сову на глобус. Если чувствуешь что паттерн от тебя просит производить действия, которые по ощущениям усиливают связность разных областей программы, которые по хорошему бы не должны связываться - значит делаешь что-то не так. Абстракции становятся неуклюжими и громоздкими - делаешь что-то не так. Хорошая архитектура на жёстких абстракциях - DI + представь код как дерево, где конец каждой ветки и каждого листика - точка выполнения инструкций, а данные текут как бы по краям левой и правой стороны, данные по краю справа "втекли" на конец ветви, выполнялись и "вытекли" назад в основание ветки по левому её краю. То есть данные идут из корня - и возвращаются в корень в том или ином виде, то есть нужна иерархия владельцев и подчиненных. Любая потребность во взаимодействии между ветвями - либо решается на верхних уровнях двух ветвей, либо костылится через шину событий на верхнем уровне для веток которым нужна связь.
Последнее - ecs это круто, это заебумба, но не надо натягивать сову на глобус, данные это данные, а представление - это совершенно иной мир. Если хочешь иметь максимум свободы и минимум перегруза из-за потребностей паттернов в определённых абстракциях - учись "дружить" несколько концепций единовременно, например дружить ecs в области управления данными о геймплее и его сущностях и MVC в области представления сущностей ecs на экране, таким образом возьмёшь лучшее из двух миров. Будь творцом, старайся понять когда нарушаешь KISS, но чувство прекрасного в коде - увы пока приходит только с опытом, можно хоть обмазаться этими аббревиатурами которые понапридумывали - но в итоге нужно именно прочувствовать эту красоту, насладиться ей, уловить пропорции того и иного в коде. Только практика, изучение уже существующих решений и чувство прекрасного.
надеюсь мой поток сознания не очень кринжовый, потому что я хуй знает как объяснять такие вещи нормально, нужны книжки, хуижки, статьи, исследования, практические примеры, а не высеры на двощах
Кто-то посоветует смотреть в сторону DI, и будет в некоторой степени прав, хоть в годоте и нет своего DI. Я могу только от себя посоветовать что ты должен избегать как огня общеигровых шин событий, когда на одну шину сыпятся события отовсюду и обо всем (урон по сущности, обновление стат, применение эффектов) если ты захочешь делать это через такой интересный паттерн чтобы избежать ecs и строгой вертикали. Постарайся их хотябы разделить по группам где в каждой группе не более 10 видов событий, так ты убережешь себе нервы если эта херня начнёт по какой-либо причине ломаться и проще будет отслеживать потоки данных в отладчике и воспроизводить ошибки, ведь локализация проблемной группы систем на лицо. При чем старайся группы генераторов событий избавлять от сайд эффектов других шин, они должны работать изолировано и только между собой внутри своей шины и не должна возникать ситуация когда событие из сущности одной группы приводит к событию из сущности другой группы, между ними всегда обязано быть глобальное состояние хоть в каком либо виде - как часть вертикали приложения или как синглтон сохранения состояния игры.
Для гиперказуалок сойдёт шина + жёсткая абстракция либо просто жесткая абстракция. Для чего-то помощнее - стоит осваивать сущностно компонентную либо ecs. При чем это не значит что нужно в точности повторять, стоит импровизировать, и не бить золотым молотком, не пытаться натягивать сову на глобус. Если чувствуешь что паттерн от тебя просит производить действия, которые по ощущениям усиливают связность разных областей программы, которые по хорошему бы не должны связываться - значит делаешь что-то не так. Абстракции становятся неуклюжими и громоздкими - делаешь что-то не так. Хорошая архитектура на жёстких абстракциях - DI + представь код как дерево, где конец каждой ветки и каждого листика - точка выполнения инструкций, а данные текут как бы по краям левой и правой стороны, данные по краю справа "втекли" на конец ветви, выполнялись и "вытекли" назад в основание ветки по левому её краю. То есть данные идут из корня - и возвращаются в корень в том или ином виде, то есть нужна иерархия владельцев и подчиненных. Любая потребность во взаимодействии между ветвями - либо решается на верхних уровнях двух ветвей, либо костылится через шину событий на верхнем уровне для веток которым нужна связь.
Последнее - ecs это круто, это заебумба, но не надо натягивать сову на глобус, данные это данные, а представление - это совершенно иной мир. Если хочешь иметь максимум свободы и минимум перегруза из-за потребностей паттернов в определённых абстракциях - учись "дружить" несколько концепций единовременно, например дружить ecs в области управления данными о геймплее и его сущностях и MVC в области представления сущностей ecs на экране, таким образом возьмёшь лучшее из двух миров. Будь творцом, старайся понять когда нарушаешь KISS, но чувство прекрасного в коде - увы пока приходит только с опытом, можно хоть обмазаться этими аббревиатурами которые понапридумывали - но в итоге нужно именно прочувствовать эту красоту, насладиться ей, уловить пропорции того и иного в коде. Только практика, изучение уже существующих решений и чувство прекрасного.
надеюсь мой поток сознания не очень кринжовый, потому что я хуй знает как объяснять такие вещи нормально, нужны книжки, хуижки, статьи, исследования, практические примеры, а не высеры на двощах
>свободного софта
Тебя Столлман покусал? Свободное ПО и эффективность твоей работы имеют тенденцию к расхождению, зачем нужен дебиан когда он сосёт по юзабилити у убунты, которая такой же линукс? Гента это вообще пиздец, нашёл что советовать. Арч - ну допустим, там нету dependency hell однако троллинг релиз бдит и обновляться без бэкапов крайне не рекомендуется.

>Тебя Столлман покусал
Будто бы идеи свободного ПО - что то плохое. И уж точно не место закручиванию гаек в флагманах опенсорса типа линукса.
> Свободное ПО и эффективность твоей работы имеют тенденцию к расхождению
Слишком сильное обобщение (нет, во многих областях моя эффективность только выросла отказом от мышетаскания)
>зачем нужен дебиан когда он сосёт по юзабилити у убунты
На двух разных компах наловил кучу проблем от убунты, которые ушли при смене на дебиан, так что по юзабилити для меня он выигрышнее. Делаю вывод что дебиан это база без кривого говна которое убунта наворотила поверх
> Гента это вообще пиздец, нашёл что советовать.
Я написал почему ее упомянул - благодаря софту с опен сорс аддонами (годот, блендер, асепрайт, вскод, gnome de и так далее) я понял силу именно source-based дистрибутивов.
>Тебя Столлман покусал?
>Тред по Годоту
Где-то ты свернул не туда.
>>998376
Ее дистросрач в моём годаче.
Кароч положняк такой. Бубунта или Минт - идеально для новичка в линухах. Если новичок хочет что-то покрасивше и позабористей - пусть ставит бомжа в кедах (Manjaro KDE). Всё остальное не для нубов, чётко и однозначно. Уж дебиан точно, слишком там много подводных камней, типа какой-нибудь драйвер не установлен по умолчанию, потому что недостаточно свободный. Нубский дистр должен искаропки работать без использования напильника.
>Manjaro
О да, самое то троллить новичка троллинг релизами, хоть предупреждай что перед запуском апдейта надо бы свечку поставить за здравие системы, или хотябы сделать бэкап, лучше уж реально дебиан, даже если монитор не заработает (потому что драйвер недостаточно свободный).
>использовать пустой МешИнстанс как Spatial
Как минимум выделяется больше RAM под ноду.
В идеале нужно использовать базовый Node всегда, когда тебе ничего не нужно из остальных нод. Или вообще RefCounted, если не нужно дерево сцены. Но экономия памяти станет заметна, когда у тебя таких объектов тысячи, т.е. для одного объекта не страшно.
Отмена. Проблема была в исчезновении объектов за мешем. Исправил через увеличение render_priority. Не знаю, но работает.
>трансперенси
Какой режим ты выбрал?
Не уверен, но TRANSPARENCY_ALPHA_HASH, по идее, может полностью исчезать на расстоянии...
А что по LODам? Если меш импортирован, Godot сам генерирует несколько LODов. Механизм не идеален, попробуй его отключить/проверить на другом меше.
Ещё проверь, не включён ли DistanceFadeMode. Он делает объекты полупрозрачными на определённом расстоянии, после которого объекты исчезают.
Я у себя намеренно такую же фичу сделал, только за счет освещения. Меш ближе к свету - виден, дальше - не виден.

Как статик боди научить реагировать на коллизии? Например у меня есть непроходимый барьер (статик боди), и я хочу чтобы при ударе по нему он делал визуальный ВЖУХ.
Реализовал добавив Area с хитбоксом чуть больше чем размер статик боди. Чуть больше - чтобы снаряды успевали зарегистрироваться перед тем, как отскочат от барьера. Но по сути это 2 области на 1 объект. Есть ли путь оптимальней?
Так же с ним чем-то сталкиваешься. Вот у другого объекта можно узнать о столкновении, и вытащить данные с чем столкнулся, и если с барьером то в какой точке и под каким углом.
P.s. тот случай когда могут пригодиться слои.
Да, пожалуй. В следующий раз попробую. Спасибо.
Не очень удачное решение. Предлагаешь пихать код столкновения со стеной во все объекты кроме стены? Логично, что если эффект связан со стеной, то и код столкновения должен быть у стены, а не у каждого возможного объекта, который с ней столкнётся.
>>998456
>Но по сути это 2 области на 1 объект
StaticBody должен быть практически бесплатным. Стоимость Area зависит от того, кого она детектит. Полагаю, что барьеров со спецэффектами у тебя по определению меньше, чем обычных декораций, т.е. нагрузка от дополнительной Area несущественная.
Всем спасибо за ответы, прочитал внимательно и в очередной раз убедился, что пока что мне не нужна специальная система контроля версий. Не какой-то кабанчик, не работаю на кабанчика и в опенсурс не выкладываю ничего, так что могу спать спокойно...
Мне просто удобнее, когда весь код в моих файлах, конкретных, а не абстрактных бинарных блобах в специальном "облаке" (даже когда оно локальное - проблема в отсутствии лёгкого доступа к данным).
>>998288
>зачем делать нормальную архитектуру
Всё совсем наоборот. Любители делать монолит на синглтонах оправдываются тем, что всё возможно пофиксить простым откатом всего проекта. Я же тщательно планирую архитектуру, чтобы, в идеале, никогда не открывать старые архивы проекта. Т.е. фактически мой подход стимулирует модульную, расширяемую архитектуру, поскольку он ставит определённые ограничения на работу с файлами.
>во все объекты
А кто тебе сказал что у него этих объектов больше чем 1 игрок? Или даже больше чем 10 пропсов?
>код столкновения должен быть у стены,
Вот только стена может иметь очень сложную форму. Или придется делить на сотни объектов.
Думай что предлагаешь.
Спасибо, интересно было почитать и что-то вроде даже понял. Изучаю уже паттерны, оказывается, парочку использовал, сам того не зная. Это интересная тема, зависну надолго
>Мне просто удобнее, когда весь код в моих файлах, конкретных, а не абстрактных бинарных блобах в специальном "облаке"
В каких "твоих" файлах", ебанько? Для тебя какая принципиальная разница между 7z и блобом гита?
>проблема в отсутствии лёгкого доступа к данным.
Какие у тебя проблемы с "доступом к данным", если любой коммит расчехляется двумя кликами мыши в ГУЕ, либо полутора коммандами в консоли (я консоль не юзаю вообще)?
У тебя проблемы с головой. Ниасилил ГИТ - так и напиши, все эти самооправдания уровня "мне просто оно не нужно" -- это смехотура. У Стэнфорда есть балдёжная книга "Волшебство Git", по которой даже моя бабуля смогла бы освоить сабж. http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/ru/ (да, есть и на русском языке).
Из гитовского блоба можно хотябы файлы вытащить, в отличии от поврежденного архива, из которого уже нихрена не вытащишь
>Какие у тебя проблемы с "доступом к данным", если любой коммит расчехляется двумя кликами мыши в ГУЕ, либо полутора коммандами в консоли (я консоль не юзаю вообще)?
Он ведро хочет (хз зачем, может он там рисует). Ну не хочет гит - не надо. Конечно такие люди вызывают сопереживание потому что сам вспоминаешь как ебланил с архивами до момента перехода на VCS, но тут рил пока он не проебет свои архивы или пока не столкнется с вышеописанными потребностями - пущай пострадает, потом от перехода больше кайфа будет

Такой моделировал себе и думал
> щас замоделю, потом в годот экспортирую, и локация для ТВГ готова
Ага, щас блять.
Свитхомя ескпортирует только в один OBJ. При импорте OBJ файла годот молча крошится. При импорте в блендер тот показывает кошмарную геометрию, переполненную лишними рёбрами.
Поучайствовал в ТВГ, блять. Всё настроение мгновенно улетучилось.
Попробуй OBJ to GLTF конвертеры. Я пару онлайновый нашел. Кто знает, вдруг прокатит.
Через MultiplayerSynchronizer я синхронизировал позицию и вращение всего нужного, и коллизии. Но у другого игрока проигрывается только анимация idle.
Анимации работают через animation tree, там они смешиваются и тп
> При импорте в блендер тот показывает кошмарную геометрию, переполненную лишними рёбрами.
Если я все правильно понял судя по скриншоту, у тебя root сцены находится в точке 0.0, а сам объект (дом) смещен. По какой-то причине построились соединения между root сцены и какими-то элементами объекта? Возможно, тебе нужно сделать origin to geometry? Если топология поехала, есть плагины на Blender, которые ее упрощают. У тебя дом состоит из геометрических примитивов, проблем быть не должно
Давно не работал в 3D контексте, мог фигни наговорить, но как будто бы проблема не выглядит нерешаемой. Отдохни и вернись к проблеме позже. Поймешь где ошибся - либо прогуглишь и найдешь таких же, как ты, кто уже нашел решение. Не бывает такого, что проблема только у тебя. Расстраиваться в любом случае не стоит, всех благ
> Через MultiplayerSynchronizer я синхронизировал позицию и вращение всего нужного, и коллизии. Но у другого игрока проигрывается только анимация idle.
Что ты синхронизировал, то у другого игрока и проигрывается. Машина состояний инициализируется вместе с объектом персонажа, в состоянии покоя проигрывается анимация idle. Синхронизировал ты pos, angle, коллизия, видимо, привязана к геометрии персонажа, а та к pos. Почему должны проигрываться анимации ходьбы?
Необходимо синхронизировать состояние машины состояний, которая отвечает за проигрывание анимаций. Выводи состояние машины состояний на обоих клиентах, сравни разницу, убедись, что нужные данные передаются
>Необходимо синхронизировать состояние машины состояний, которая отвечает за проигрывание анимаций
Да, кароче я запутался, и не проигрывал нужный код. Щас поставил его выше, и всё заработало. Спасибо!
У меня только один вопрос: что именно мне нужно сохранять в архив, в виде резервной копии проекта, используя систему контроля версий?
Допустим, я сохранил копию репозитория. Потом навернулся диск с основной версией. Я пытаюсь восстановить репозиторий из копии, и что я вижу? Современный софт не открывает мою копию, и приходится ручками выковыривать каждый файл.
Если я сохранил только копию папки проекта, то вся история изменений просто исчезает и всё. Зачем я мучился с настройкой и использованием системы, данные которой я никуда не сохранил и утратил?
Получается, мне нужно регулярно делать бэкапы не только проекта, но и системы контроля версий... И приложения, которое может прочитать данные... И инструкций по его настройке и использованию, т.к. обязательно забуду когда-нибудь, а интернета нет...
Ну т.е. это дополнительные траты сил, а ради чего? Я ковыряюсь в своих hello world сам по себе, никого не трогаю. Зачем мне умножать количество движений, необходимых для создания надёжной копии данных? Вообще, зачем мне хранить все эти промежуточные состояния, если я на них никогда не взгляну даже?
Т.е. система контроля версий не избавляет меня от создания резервных копий, но заставляет меня дополнительно создавать резервные копии этой малополезной системы контроля версий. Если бы получаемая польза перевешивала затраты, я бы использовал её и не жаловался, а так - смысла нет.
Короче, хватит пропагандировать коммит каждой отдельной строчки print("hello world"), раздражает. Затраченные усилия не стоят получаемой выгоды.
Не срите больше в ветку, пожалуйста, бесполезно
Бэкап гита делается одной командой - git push.
(В любое кол-во подключенных точек - от другого твоего компа, до приватного/публичного аккаунта github, хоть до какой нибудь частной ноды лично у Столлмана)
Ну то есть я во время джемов им как бекапом только и пользуюсь, например раза 2-3 в день
Тупой селюк, почитай хотя бы введение документацию Гита, или тот же учебник Стенфорда (>>998494), буквально каждый твой вопрос - это смехотворная хуйня, из которой понятно что ты даже основы основ не путался вкурить.Не хочешь вникать - сиди архивы архивируй, и больше не сри сюда своими шизоразмышлениями по поводу того, в чём ты даже не пытался разобраться.
Спок, дыши глубже.
Потише, у нас тред взаимопомощи по годоту, а не блеймингу за неиспользование левых по отношению к геймдеву тулз.
Тулзблейминг.

> и вернись к проблеме позже
> Расстраиваться в любом случае не стоит, всех благ
Да пожалуй, шёл он нахуй тот ТВГ. Всё равно у меня соответствие теме минимальное. Буду неспешно пилить проект в блендере, с хорошей геометрией изначально. Конечно накидать по быстрому локаций в свитхоме звучало заманчиво, но это изначально была тупая идея.
А теперь уж поздно.

Ну ладно, возможно я перенервничал, возможно всё не так страшно, возможно мне удастся набросать прототип на CSG и собрать демку.

Уровень творчества зигующих.

Yep, it's dead. За последнюю неделю только 1 собственный коммит, и тот про нескучную тему.
Ха. Ха. Ха.
Дипсик кстати генерит менее кринжевые диалоги. Рекомендую. Нормальный человек.
патужна
Бле, я залип на видяшку. Ребёнок явно находится в том возрастном периоде, когда исследуется физика: бросать предметы, бить, вот это всё. А свинья думала, что ей люди, может, пожрать чего дадут. Но, судя по скорости съёба, она хорошо знакома с пиздюлями, причём гораздо более серьёзными. И вроде и жалко животинку, а с другой стороны её ж всё равно рано или поздно съедят.
А ещё ребёнок явно какой-то узкоглазый, что в контексте данного поста воспринимается как-то неоднозначно.

> Делайте игры
Не получается.
И так не получается. И эдак не получается.
Ну и пожалуйста, блять. Ну и не надо. Ну и пошло оно всё в пизду! Не очень-то и хотелось.

Его главная разводка заключалась в том, что он заставил меня поверить, будто бы я смогу делать игры.
Есть разные методу чтобы довести свою делалку до рабочего состояния. Например такая идея, готовить свои дела для передачи кому-нибудь другому. Представь что ты передаешь проект другому челу чтобы он закончил игру за тебя. Ты приводишь в порядок проект чтобы другие могли в нем разобраться. Пишешь небольшой мануал как сориентироваться в проекте, и то что ты хочешь от человека коьорый должен его доделать.
Ты так-же можешь проделать со своей квартирой, представь что ты уезжаешь на два года и оставляешь ее полностью, на время, другому заселенцу, ты убираешься, ремонтируешь что сломано, и избавляешься от вещей которыми он не будет пользоваться. Ты так можешь поступить со своей жизнью. Представь что ты играешь в игру и кто-то попросил у тебя сохранение, и ты смотришь что без особого труда можешь улучшить состояние игрогово персонажа, чтобы тот кому ты передаешь сохранение, меньше заморачивался, и получил больше удовольствия от игры, окунувшись в наиболее интересные моменты геймплея.
Хорошее упражнение для тренировки собственной самоорганизации, убрав часть мозгоебки и смазав колесики успеха.
>так-же можешь проделать со своей квартирой, представь что ты уезжаешь на два года и оставляешь ее полностью
Я бы растяжки на окна и двери поставил, чтобы никакой пидор не влез
Я из них игру делаю
https://www.youtube.com/watch?v=MUr1iRdMywo
стейбл дифужен оч годно делает, но нужна видяшка холтябы с 6 гигами врама и терпение чтобы разобраться -моделька из видоса пики 1 и 2
есть еще платный ретродифужен, который встраевается в асепрайт, с ним сильно проще начать + сразу в асепрайте, но он платный и много ебли с покупкой - моделька ретродифужена этол пик 3
Да был план делать порно игру, но я чет сел, набросал диздок и перегорел от количества работы.
алсо, все это в любом случае требует постобработки, если конечно тебе не похуй
вот например я сгенерил в ретродифужене сразу спрайтлист и собирал из него анимацию, да там определенно косяк в позах, но работы в целом над чисткой анимации - дохуя, один ток фон убирать - уже много работы
но в целом офкорс это в разы быстрее и качественнее, чем рисовать самому, как минимум фоны, окружение и чисто придумать чтото с нуля сильно проще с таким инструментом

А на самом его главная разводка в том, что он заставил тебя думать, что ты НЕ умеешь. НЕ ВЕДИСЬ, просто пытайся, и изучай матчасть.
Как там с интерфейсами обстоят дела, абстрактными классами? Движок с таким дружит, общается?
Насколько моно билд тяжелее не-моно?
LSP сильно подводит?
Как там с фишками движковыми, вроде сигналов?
Все получается. Очередную доделываю. Пол января прослакал так что только в феврале первая в этом году выйдет.
Голдратта обчитался?
При восстании машин из тебя сделают лягушечное чучело, а из меня нет.

Где ты такое увидел? В документации по прежнему написано что нет.

А вот содержимое готовых архивов экспорта 4.4. beta 2. Тоже что то в Mono не наблюдаю web*
Вот большой issue который я пока не прочитал.
https://github.com/godotengine/godot/issues/70796
Там что то про трудности линковки.
Может ты с чем то путаешь? Или видел какой то кастомный способ билда?
Сделай билд для итча и погляди.
Я свой билд сделал, тестанул даж на 730 и работает стабильно, напрягают только подгрузки с пропуками, хотя реализован многопоточные загрузки в игре. Ну и пропуки самих шейдеров бесят, при первой инициализации их.
Мои варианты:
1) слишком много коллиженов => какие-то объединить в один?
2) слишком много ригидбоди => прикреплять к одному или пункт 1?
3) коллижен игрока маленький - где-то 0.05 метра по каждой оси - мб дело в этом?
4) игрок быстро перемещается и... не успевает происходить детект? Честно, не очень в этом разбираюсь. Какой вариант наиболее правдоподобный? Или на что-то еще обратить внимание?
3 - да, это обычно плохо, попробуй всю игру увеличить раз в 100.
4 - да, тоже.
1,2 - тут вообще хз вытянет ли столько. Возможно тут надо просто переходить на свою упрощенную математику с радиусами.
По п.4 - включи игроку continuos CD. Правда это может повлиять на производительность
Ок. Позже попробую масштаб увеличить и посмотреть. Мб и высокая скорость будет не такая высокая к размерам в цифрах.
Ок. Посмотрю.
Я тупой забыл отключить отключение у коллижена
удалось исправить с помощью CCD + избавление от кода, который иногда напрямую мог позишн менять.
Двачую. Вчера тоже начал рефакторить. У меня много данных в рефкаунтедах хранится, а примеры годошней композиции обычно на белых нодах на сцене показывают. Почему-то в голову не приходило, что разницы особо и нет.
Можешь пример привести? Плохой реализации, которую ты сделал в начале и то, что у тебя получилось сейчас с композицией. Пытаюсь разобраться в теме, я новичок
Пример моей плохой реализации: старый тип врагов, сделанный через наследование и сцены и скрипта. Я бегаю по родителю и ребенку, меняю содержимое нод, выключаю-включаю коллизии и слои, добавляю ребенку новые ноды, перезаписываю-перегружаю функции которые отличаются минимально, либо пытаюсь сделать один-единственный настраиваемый мега-класс для всех врагов разом. 4-5 типов врагов и это превратилось в кашу.
Пример реализации, которая мне подошла больше: новый тип врагов, где я разделил их на куски - кусок зрения, кусок хитбокса, кусок жизни, кусок оружия, кусок "ног" с навигацией и тд. Каждый кусок - своя сцена со своим скриптом, с настраиваемыми опциями (хп, дамаг, скорость), сигналами и путями для соединения. В итоге никто ни от кого не наследуется и не приходится перегружать функции ради любого изменения. Я собираю каждого нового врага по кусочкам компонентов, как лего. Нужен статичный враг, аля ловушка-статуя? Минус "ноги" с навигацией. Нужен тот же нпс, но с АОЕ атакой? Меняю кусок оружия.
Как-то так.
А еще изучи ресурсы.
Многие вещи намного проще через композицию ресурсов делаются, чем через композицию нод. Этот момент тоже не сразу начинаешь чувствовать. Из примеров, элементы инвентаря выгодно делать ресурсами, переносимые инструменты и оружие, крафтовые вещи. Всё это можно делать ресурсами, у которых спавнящаяся нода (при необходимости) прописана как поле.
>extends Resource class_name Item
>@export var visual_instance: PackedScene
>@export var name: String
>@export var stackable: bool
>@export var stack_size: int
>@export var amount: int
И далее по списку.
Спасибо за пример. Похоже, я еще больше начал задаваться вопросом - разве это не то же наследование? Просто множественное (от нескольких классов) и статическое. Звучит так, словно это более узкий юзкейс того же partial class C#
Надо, видимо, штудировать статьи и другие источники не тему. Поделитесь если у кого есть
В данном случае не классов, а модулей расширения - тут уж в зависимости от контекста обзываются
Основных отличий 2
Во-первых в наследованном есть жесткая структура, из которой ничего нельзя исключить, только дополнять и модифицировать. В компонентах - ее нет.
Пример: может быть компонент ходьбы, может быть компонент прыжка, могут быть компоненты ходьбы и прыжка, может не быть никакого.
Более того, они могут добавляться/удаляться динамически.
Partial class, наследование - потребует создавать для каждой комбинации свой класс - Walker, Jumper, WalkerJumper, ... Или заводить GodClass в котором что-то отключается ифами. Тут же у тебя один класс Unit, и компоненты занимающиеся только своим - Walkable, Jumpable.
Во-вторых, в наследовании у тебя 1 имя переменной, а компонентов может быть несколько одного типа. В случае с позицией это смысла не имеет, а например с источниками урона и регенерации - имеет. Конечно в наследовании можно вместо переменной сделать массив, но тогда придется каждый раз код править с доступа к 1 переменной на доступ к элементам массива.
В-третьих, даже если ты не пользуешься неименованными безликими компонентами, а даешь им имя, прибиваешь гвоздями, получая наследование-подобную структуру (вместо foreach component of Type делаешь var aiComponent = AiComponent) то ты все еще можешь сменять реализации компонентов, не меняя класс куда они включены композицией. Т.е. у одного может быть AiDummy , у другого AiSmart. В наследовании тебе бы пришлось на каждую комбинацию все еще заводить новый класс (WalkerDummy, WalkerSmart, WalkerJumperDummy, ...)
Спасибо, разобрался. Полезная концепция и хорошо идет рука об руку с системой нодов, особенно если учесть, что каждый скрипт - тоже нода (что может быть не так в других движках, например)
>проблема с гитом - неудобный GUI
К слову. Понадобилось сегодня посмотреть историю кода, который я перезаписал другим.
В общем git log чтобы узнать список коммитов
git show HEAD~3:script/controller.gd чтобы посмотреть файл 3 коммита назад
Все...
Вечером посмотрю видос. Этот шаблон подойдёт для имёрсива в стиле резидент ивола? С загадками и головоломками, взаимодействием с окружением и стелсом от НЁХ?
Я сам не пробовал. Видос минуту идет. Он там переносит стул, открывает дверцу, лутает бумажку в инвентарь, ездит на платформе, открывает проход поставив бочку на кнопку, среляет рейкастом и проджектайлом. Еще написано система квестов, хз что там.
так то я 4-кой не пользуюсь
Ресурсы надо осилить, да. Видел что люди их так используют, но сам их как-то игнорирую.
Сегодня постараюсь найти время нагенерить красоты. Годот заслуживает, не спеши с перекатом
> Окей. Ждём до вечера по МСК. Надеюсь не утонем.
Времени маловато, даже датасет толковый не собрать, не говоря уж про тренировку. Как получилось - так получилось, к следующему треду может получше сделаю...
Потому что игр много делает. И вы делайте - такими же станете.
Что в годоте по цел шейдингу?
Можно ли в пару кликов сделать графон хотя бы отдаленно напоминающий геншин?
Продолжай тренировать нейронку до 20.00 вечера, юбилейный тред. Нельзя зафейлить. Жду до 20.00
Для того, чтобы это сделать, тебе нужно воспользоваться шейдерами. У шейдеров унифицированные язык, свойства и принципы. В зависимости от движка/графического API меняется лишь их представление, и то не всегда. Если у тебя есть готовый шейдер для любого другого графического API/движка - тогда остается адаптировать это решение под Godot
В общем, для начала тебе нужно узнать как это сделать в целом, а потом уже связываться с движком

Конечно, я попытаюсь, но ты на меня не рассчитывай - давно не генерил, очень многое забыл уже, и параллельно рабочий рендер стоит... дедлайны горят как и всегда
Сделойте пожалуйсто робота-старичка Годота с внучкой Годеточькой идущих по улице вдаль.
Что ж, ожидаемо, далеко я не продвинулся. Больше времени нужно, по крайней мере при моем подходе. Не хочется генерировать абы как и предавать чувство прекрасного. Надеюсь к концу следующего треда довести Лору до ума