Шапка: 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.
Я как-то не заметил такого пункта. Может я в документации что пропустил?
>>3083
А откуда кидать? Я уже попиксельно менял расположения рейкастов на любое возможное.
>shapecast
То есть, на 3.5 вообще сделать такое нельзя? Ну делали ж люди как-то такие игры. Может я просто чего не понимаю и есть какой туториал хотя бы? Все те, что я находил были "иди по направлению игрока, въебись в ближайшую стену и скользи по ней", поэтому просто пытаюсь сам понять, как это сделать
В 3.6 вроде есть shapecast.
>в туториалах
А там были квадратные коллайдеры или все таки круглые?
>В 3.6 вроде есть shapecast.
Опять же, у меня тот же вопрос. Неужели до появления shapecast возможен был только вариант со скольжением вдоль стены?
>А там были квадратные коллайдеры или все таки круглые?
А какая разница, если с любимым коллайдером происходит въеб в стену и скольжение? Я же хочу, чтоб враги обходили препятствия, а не скользили по ним.
>>3083
А в чем сложность кидать из 4х углов коллайдера бота? Можно ещё с запасом.
Также можно при коллизии отходить.
Но обычно коллайдеры ботов делают круглыми и так намного проще - поэтому можно сделать отдельный навигационный коллайдер круглый.
Шейп каст тут необязателен.
Кстати еще такой момент не понял - я видел чел писал что поиск пути на а стар есть. Нахуя тогда эти заморочки с коллайдерами? Разве а стар не выдаст путь до игрока?
Но их и так уже три. Или ты предлагаешь пускать еще в противоположную сторону? Но тогда он перестанет идти по нужному пути, если чуть сбоку будет преграда. Или что ты имеешь ввиду?
>>3094
>в чем сложность кидать из 4х углов коллайдера бота? Можно ещё с запасом.
В принципе, нет сложности. Но не слишком ли это будет? Ведь это у каждого бота будет по 5 рейкастов одновременно кидаться
>>3094
>Кстати еще такой момент не понял - я видел чел писал что поиск пути на а стар есть. Нахуя тогда эти заморочки с коллайдерами? Разве а стар не выдаст путь до игрока?
Выдаст, но путь будет неестественным, это нормально, если игрока нет на прямой видимости, но не когда враг его видит
Чел просто переделай на нормальные навмеш с динамическим коллижн евейженом.
Это же просто, годот же опенсорс - самый лучший движок. Просто сам напиши нормальный поиск пути. Главное гдскрипт используй для этого - это самый лучший язык в мире.
> В принципе, нет сложности. Но не слишком ли это будет? Ведь это у каждого бота будет по 5 рейкастов одновременно кидаться
Пох.
Ну и кидать не обязательно каждый фрейм.
> Выдаст, но путь будет неестественным
Это как? А стар ищет кратчайший путь. Если игрок в прчмой видимости - кратчайший путь бцдет по прямой.
Я так понимаю, это попытка засрать годот и забайтить на переход на юнити?
>>3101
> А стар ищет кратчайший путь. Если игрок в прчмой видимости - кратчайший путь бцдет по прямой.
Кратчайший путь по сетке/графу, а это не всегда тоже самое, что просто кратчайший путь. Все таки игрок у меня не по сетке движется
>Пох.
Я попробую, надеюсь сработает и не будет сажать производительность
Так тебе не надо кидать все. Тебе надо кидать только дальние от игрока.
Или просто кинуть один шейпкаст.
Раз ты почему то не хочешь переделать коллайдер на круглый, или посчитать сам геометрию.
>Так тебе не надо кидать все. Тебе надо кидать только дальние от игрока.
Почему? Вблизи не может быть препятствий?
>Или просто кинуть один шейпкаст.
Отсутствует в версии ниже 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. Стало настолько душно, что я тупо скипаю.
Мейкхуман модульный. Какие фигуры туда подгрузишь такие и соберутся.
Я не знал. Ну ладно. Пусть существует тогда, я не против. На твоих пиках кстати треш совсем. Даже я уверен, что можно получить гораздо лучше результат.
>А он мне грит, а если собака понадобится у тебя есть мейкдог?
Я бы ответил: для этого у меня есть твоя мать
Ну я примерно так же и ответил.
>>4291
Скоро нейросети выебут этих мейкхуманов. Меши быстро развивается
https://www.meshy.ai/features/image-to-3d
Я все жду когда анимации/риггинг на нейронках подтянут. Есть cascadeur, но объем ручной работы там чуть менее чем в блендере.
Губами?
В дебаггере есть вкладка misc, в ней показывается кто клик получил. Если что - скинь проект, посмотрим что там у тебя за кек пук.
о спасибо, а там у меня colorrect перекрывал клики, которым я сцены транзичу. поправил
> У меня шейдеры не работают я тут открыл, вставил, сохранил, а оно не работает
> > Ну так тебе же нода нужна которая шейдер покажет, обычно юзают колор-рект на весь экран
4:20
> У меня кнопки не работают, хорошо что проект новый можно пересоздать
Вот поэтому я и не буду выкладывать тут свои наработки, пока проект не будет готов на 80% никогда
>Компонентно-ориентированное программирование (англ. component-oriented programming, COP) — парадигма программирования, существенным образом опирающаяся на понятие компонента — независимого модуля исходного кода программы, предназначенного для повторного использования и развёртывания и реализующегося в виде множества языковых конструкций (например, «классов» в объектно-ориентированных языках программирования), объединённых по общему признаку и организованных в соответствии с определёнными правилами и ограничениями.
>>4434
>опубликовано 22 часа назад
О, вы Кешью ОлдДью?
Бейзд, сабскрайбед энд прессед the kolokolchek
Пчел, заговора нет, просто с упорядоченным кодом работать легче чем с кучей каши. А способов упорядочить десятки, да, кому что нравится.
планку ровно держи, заебал
Пока что обошел костыльно и когда загружается таймлайн, я просто загружаю всех в память персов, а в конце таймлана удаляю их, очищая память.
Осваивай 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 скриптах. Только представь - ты там дублируешь и таскаешь мышью ассеты, а редактор тебе сам их сажает на нужный слой.