>>992896 (OP) У меня такая ситуация. Враг движется по сетке с помощью AStar и рейкастит в направлении игрока. Если между врагом и игроком нет препятствий, то враг просто движется вперед, по направлению игрока, не следуя сетке. Вроде, все должно работать хорошо, но дело в том, что коллизия противника шире, чем рейкаст и поэтому может быть такая ситуация, что по рейкасту препятствий нет, но противник все равно врезается об угол препятствие и начинает медленно скользить по нему. Как это можно исправить? Я не нашел настройку, чтобы сделать рейкаст шире.
>>992931 Raycast это луч, математически у него нет ширины. Ты можешь пускать луч из другой точки со смещением. Или можешь использовать другой коллайдер в другом слое для проверки пути. Это если не добавлять навигацию, агентов и вот это все. Можно еще навернуть какую то логику, типа если столкнулся со стеной и скорость упала, отойти от стены. Но тут можно запутаться А еще если он движется по сетке, то можно что-то сделать с координатами его позиции. Например округлять.
>>992933 >Raycast это луч, математически у него нет ширины. Не, ну чисто логически, да. Но у него есть настройки size, которые работают и делают луч больше и область детекта больше, но при этом ломается cast to и он не стреляет туда, куда нужно.
>Ты можешь пускать луч из другой точки со смещением То есть поставить лучи по бокам и стрелять им в точку, что стреляет и первый? Или точку, куда стреляет тоже сдвигать вбок?
>Это если не добавлять навигацию, агентов Это я пытался, но препятствия работают ужасно, если на пути врага становится препятствие, то он просто прилипает к нему и скользит вдоль, пока не выберется.
Анон, что-нибудь известно про custom data в отдельных тайлах (не в типах тайлов, как сейчас). То есть чтобы данные были привязаны к инстансам тайлов в TileMapLayer. Понятно, что есть решение с Dictionary[Vector2i, YourDataType], но у него существенный минус - нельзя мышкой в GUI расставлять данные по карте.
Помню, что был фича-реквест на ГХ, но там как-то всё заглохло. МБ кто-то придумал аддон или ещё что в обход этой проблемы.
а что в godot-e можно использовать в кач-ве логгера? в доках про это не очень много, а быстрый поиск выдает https://github.com/KOBUGE-Games/godot-logger (аж целых 176 звезд!, что лучше чем нихуя так-то)
>>992950 Готовый проект искаропки логи пишет. Всё что ты принтом печатаешь пишется в логи. Хранятся в папке user:// Так что если у тебя нет никаких особых требований, то просто принтуй всё что хочешь видеть в логах.
>>992942 Я пока на 3.5, потому что, насколько я знаю, 4 ещё в разработке.
>Но я бы лучше на навигацию переделал Так с навигацией хорошо, только если препятствия статичные все. obstacle нода работает ужасно, вместо перестройки маршрутка с учетом препятствия, агент просто втыкается в препятствие и скользит вдоль него.
>>992965 А я на 3.6 допиливаю. Братюня. Ну, в 4 навигация вроде лучше работает, ее там с нуля переделывали.
У меня такой нужды в obstacle не было, поэтому у меня статик ноды, которые я иногда двигаю/убираю и просто апдейчу навмеш - 0.1с на огромный уровень. Условная ломаемая стена.
>>992967 Я смотрел видео по 4 и с препятствиями там такая же фигня была.
>У меня такой нужды в obstacle не было, поэтому у меня статик ноды А у меня некоторые объекты +- часто перемещаются, а, насколько я знаю, апдейтить часто полигон не очень хорошо.
>>992997 Чтоб не было всяких некрасивых вещей, вроде коллизии с воздухом, если радиус колайдера больше спрайта или наоборот, чтобы куски спрайта не залезали туда, куда не надо, если меньше. Все таки квадратный можно растянуть прям по размеру, а круглый - нет, только если персонаж сам не круглый
>>992998 Ну это странный подход, у тебя враг не поворачивается в сторону цели? Ну ок. Вообще капсулы и круги для того и используют чтобы мягко проскальзывало. У тебя просто проблема та же остается. Ты лучи кидаешь из произвольно точки "сбоку". А тебе надо кидать их "из-за" коллайдера еще и с учетом направления движения получается.
>>993049 >у тебя враг не поворачивается в сторону цели? Нет, у меня не совсем вид сбоку, а чуть сбоку. >Вообще капсулы и круги для того и используют чтобы мягко проскальзывало. Так мне и надо, чтобы не скользил, а обходил. Он и так скользит, просто это и выглядит глупо и скорость сбрасывается.
>Ты лучи кидаешь из произвольно точки "сбоку". А тебе надо кидать их "из-за" коллайдера еще Я пытался передвигать боковые рейкасты везде, от тех точек, где они сейчас, до центрального рейкаста, но результат схож. Или ты имеешь ввиду что-то другое?
>еще и с учетом направления движения получается. Так направление движения, в данном случае, к игроку, вот и кидаю лучи к игроку.
>>993072 Дело то не в том, что ты кидаешь луч к игроку - это понятно. Вопрос откуда ты кидаешь, ты кидаешь из просто абстрактной точки "сбоку", а хочешь узнать есть ли препятствие от того угла. Блин дольше объяснять, бери действительно shapecast.
>>993077 Я как-то не заметил такого пункта. Может я в документации что пропустил?
>>993083 А откуда кидать? Я уже попиксельно менял расположения рейкастов на любое возможное.
>shapecast То есть, на 3.5 вообще сделать такое нельзя? Ну делали ж люди как-то такие игры. Может я просто чего не понимаю и есть какой туториал хотя бы? Все те, что я находил были "иди по направлению игрока, въебись в ближайшую стену и скользи по ней", поэтому просто пытаюсь сам понять, как это сделать
>>993090 >В 3.6 вроде есть shapecast. Опять же, у меня тот же вопрос. Неужели до появления shapecast возможен был только вариант со скольжением вдоль стены?
>А там были квадратные коллайдеры или все таки круглые? А какая разница, если с любимым коллайдером происходит въеб в стену и скольжение? Я же хочу, чтоб враги обходили препятствия, а не скользили по ним.
>>993072 >>993083 А в чем сложность кидать из 4х углов коллайдера бота? Можно ещё с запасом.
Также можно при коллизии отходить.
Но обычно коллайдеры ботов делают круглыми и так намного проще - поэтому можно сделать отдельный навигационный коллайдер круглый.
Шейп каст тут необязателен.
Кстати еще такой момент не понял - я видел чел писал что поиск пути на а стар есть. Нахуя тогда эти заморочки с коллайдерами? Разве а стар не выдаст путь до игрока?
>>993093 Но их и так уже три. Или ты предлагаешь пускать еще в противоположную сторону? Но тогда он перестанет идти по нужному пути, если чуть сбоку будет преграда. Или что ты имеешь ввиду?
>>993094 >в чем сложность кидать из 4х углов коллайдера бота? Можно ещё с запасом. В принципе, нет сложности. Но не слишком ли это будет? Ведь это у каждого бота будет по 5 рейкастов одновременно кидаться
>>993094 >Кстати еще такой момент не понял - я видел чел писал что поиск пути на а стар есть. Нахуя тогда эти заморочки с коллайдерами? Разве а стар не выдаст путь до игрока? Выдаст, но путь будет неестественным, это нормально, если игрока нет на прямой видимости, но не когда враг его видит
>>992931 Чел просто переделай на нормальные навмеш с динамическим коллижн евейженом.
Это же просто, годот же опенсорс - самый лучший движок. Просто сам напиши нормальный поиск пути. Главное гдскрипт используй для этого - это самый лучший язык в мире.
>>993099 > В принципе, нет сложности. Но не слишком ли это будет? Ведь это у каждого бота будет по 5 рейкастов одновременно кидаться Пох. Ну и кидать не обязательно каждый фрейм.
> Выдаст, но путь будет неестественным Это как? А стар ищет кратчайший путь. Если игрок в прчмой видимости - кратчайший путь бцдет по прямой.
>>993100 Я так понимаю, это попытка засрать годот и забайтить на переход на юнити?
>>993101 > А стар ищет кратчайший путь. Если игрок в прчмой видимости - кратчайший путь бцдет по прямой. Кратчайший путь по сетке/графу, а это не всегда тоже самое, что просто кратчайший путь. Все таки игрок у меня не по сетке движется >Пох. Я попробую, надеюсь сработает и не будет сажать производительность
>>993099 Так тебе не надо кидать все. Тебе надо кидать только дальние от игрока. Или просто кинуть один шейпкаст. Раз ты почему то не хочешь переделать коллайдер на круглый, или посчитать сам геометрию.
>>993108 >Я так понимаю, это попытка засрать годот и забайтить на переход на юнити? Ни в коем случае!
Вообще продвинутые версии А-стара вполне должны поддерживать разную размерность сетки и юнитов. Если сделать сетку меньше - ничего рейкастить и не придётся, движение итак органичным будет смотреться. Хз какие там в годоте.
Я использую плагин Notik Salamander для интеграции рекламы в мою игру на движке Godot 3.5, но столкнулся с проблемой: баннерная реклама загружается только один раз и не обновляется во время игры. Подскажите, пожалуйста, есть ли аналогичные плагины для Godot 3.5, которые могли бы решить эту проблему?
>>993147 Нет, просто мне уже реально интересно, как сделать это средствами 3.5. Ну не верю я, что это невозможно. Уже с рейкастами заебался, навесил их на каждый угол, все равно появится какая-то точка, где ломается. 0 понимания, как такое делается.
>>993163 Не гуглится. Может Noctis? У них есть репозиторий и контакты, наверное они могут тебе ответить и починить. Интеграции рекламы на какой платформе? Для я.и видел штуки 3 еще плагинов. Может там есть какие-то сигналы для обработки ошибки. Плюс у рекламы может быть ограничение, чтобы ее не показывали чаще чем какое то время (может быть 1-2 минуты).
>>993167 >как сделать это средствами 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 и получишь изкоробочный шейпкаст.
>>993186 Извини, но я немного не понял. Мне эту ареа сделать чуть больше колайдера противника и проверять есть ли что близко к немутогда могут возникнуть проблемы на пути следования и придется экстренно строить путь или как-то менять её размеры по направлению к игроку?
>>993193 Я делал для 3д. В 2д там просто позишн, тоже работает для обновления коллизий. Используешь как обычный рейкаст, ставя в точку, где тебе надо проверять коллизию. А можно и менять размеры. Как угодно, короче.
>>993072 Погодь, а нафига ты к игроку все рейкасты кидаешь? Они из разных точек непараллельные получаются. Получи вектор из центра врага на центр игрока и кидай рейкасты вдоль этого вектора.
>>992896 (OP) Я, наверное, чего-то не понимаю, но почему шейпкаст не детектит стену? Слои настроены правильно и когда стена на конце он её детектит, но в такой ситуации - нет.
>>993209 Отбой, заработало. Перезагрузил годот и все пошло. Проблема с углами пропало, но это все равно выглядит как-то так себе, когда с прямого пути резко прыгает на путь, построенный A* Видимо, я правда чего-то не понимаю.
>>993213 > Видимо, я правда чего-то не понимаю. Да. Кое чего. Я читал вышепереписку, но сам ничего не постил, но всё таки не удержусь и вставлю своё ИМХО. У тебя нет визуального понимания как это всё должно происходить. Если нет видения - не можешь это правильно в код обратить. Тычешься как слепой котёнок. ИМХО. Без обид.
>>993213 1. На этом этапе подключают steering behavior. То есть по простому направление движения не должно меняться резко, должен быть лимит скорости поворота. Можно попробовать еще добавить easing. Когда переменные меняются не линейно, а сначала разгоняются, потом притормаживают. 2. Сюда же уже всякие "juice" - сочные трюки. Например ты можешь скрыть это анимацией, когда враг переключается с патрулирования на атаку, он может встать в боевую позу, рыть копытом землю и тд, потом разбежаться. 3. Проблема может быть в том, что АСтар может создавать неестественные пути. Там может быть надо тюнить параметры, причем скорее всего кастомную версию алгоритма, а не встроенную.
>>993224 Так это не А* проблема, это графа проблема: тут между ячейками можно идти только по четырём сторонам. Если в навграф добавить еще рёбра между несоседями (между ячейками в радиусе K друг от друга, например), то будут гораздо более "прямые" пути.
>>993229 Более "натуральный" путь выглядел как нибудь так. Астар в завимимости от параметров может выдавать разные варианты, вплоть до "пол пути идем прямо, полпути идем повернув на 45 градусов".
>>993231 Так я тебе говорю, что это не А* проблема, а графа. У тебя в графе пути "лесенкой" и "уголком" имеют одинаковые длины, хотя ИРЛ, очевидно, короче всего идти по диагонали. Добавь в граф хотя бы переходы по углам (с ребрами длины sqrt(2)), и пути аля твоя пикча (только без лесенки) будут оптимальными.
>>993231 Паттерн движения зомби на примере прозрачных преград: Идти прямой наводкой на цель. Уебаться в преграду. На пару шагов "ослепнуть" и ходить кругами. Потом снова прозреть и если цель в зоне видимости, снова идти, и если преграда не сместилась пока кружил, опять уебаться в неё с разгону. Игрокам понравится.
>>993234 Чел, те картинки показывают что на одном графе при разных настройках могут получиться пути разных форм. Диагональные переходы тебе ничем не помогут если в результате получится все равно вторая картинка (пол пути прямо, поворот на 45 и дальше).
>>993238 Так я отвечаю, что это проблема не в А, а в графе. У тебя в графе куча оптимальных путей одинаковой длины, с фига ли А должен выбрать из них какой-то "более приятный глазу". Если ты хочешь диагональных путей, причём хочешь именно по причине того, что они ИРЛ короче, то сделай их короче и для А.
Если не хочешь путь как на второй картинке, добавь рёбра вида (+2, +1), (+3, +1) и т.д. с длинами, соответственно, sqrt(n^2+1). Тогда будут более плавные пути, которые к тому же будут еще и короче этих лесенок. И всё это при абсолютно дефолтном А.
>>993332 Где ты возьмешь другой граф? Сетку берут потому что это удобно. Чем делать под каждый уровень свой граф. А если уровень изменяемый или генерируемый то тем более.
>>993332 > Так а какой смысл во всем этом, если для бота эти пути всё равно одинаковой длины? А вот тут на сцену выходят веса. Если грамотно расставить веса (в том числе динамически корректировать их сообразно игровой ситуации), бот уже будет рассчитывать движение согласно им. Бот не самоосознаёт себя и не учил геометрию, но веса в навмеше покажут ему, что путь по гиппотенузе короче, чем по двум катетам.
>>993354 Граф всё так же может быть сеткой, просто надо добавить больше рёбер (например, между всеми ячейками на расстоянии R, находящимися в прямой видимости). Это нихрена ничего не усложняет с точки зрения генерации или динамического изменения, и работает медленнее всего в R^2 раз примерно, на что можно забить для R=2 или 3, чего уже вполне хватает для получения +/- диагональных путей без заметных для невооружённого глаза изъянов. Если сетка шестиугольная, можно вообще взять R=2.
Главный бонус, что с таким графом бот начинает реально добираться до нужной точки быстрее. Без нормального графа сколько не ебись с алгоритмом, бот всё равно будет ходить как долбоёб, тупо потому что в графе нет по-настоящему коротких путей (диагональных, например, а не лесенок).
Анчоусы у годота есть какой нибудь годный ай хелпер, чтобы код за меня писал??? Желательно еще чтобы с нормальным доступом без впн и прочей хуеты кто нибудь вообще пользуется ими раньше знаю были уже но сам не тыкал, сейчас уже 2к25 мне кажется должно уже что то удобоваримое появится
>>993402 Claude по моему опыту лучше всего пишет, и шейдеры и гдскрипт, даже для тройки. У меня в лайв проекте штук 5 шейдеров выбитых полностью с него, я ему тупо писал "а теперь добавь фреснель туда, а теперь аутлайн". Потом по качеству гпт о1, потом гемини 2.0 думатель.
Еще находил шейдеры от юнити-анрила и просил под годот переделать, потому что сам я в шейдерах не разбираюсь. Иногда он спотыкается, конечно, но 2-3 промта вида "мне годот вот тут ошибку выдает", и все чинится.
>>993455 Просто интересно какая именно техника использовалась. Там есть штук 5 с разными плюсами-минусами и свойствами (например, некоторые видные через стены - полезно для гуя, некоторые нет. Некоторые дают как на твоем пике ломаные линии, которые могут пропадать, также некоторые дают внутренние линии как на бровях - некоторые только внешний контур). Хотя наверное могу сам потыкать в нейронку, она скорее всего будет что-то одно предлагать
Привет. А какие подводные, если собраться делать небольшую 3д игру на годо?
- Не опен ворлд/метроидвания. Единовременно - только небольшой участок. - Мид-поли 3д. А стилизация целл-шейдингом или около как оно? - Чуть-чуть всяких вэфыкс, относительно. - Физики мало. Столкновений мало. Объектов мало. Требовательность к плавности. Получится комфорт на 120-240гц? Если да, зависит от выбора #/gds, или без особой разницы? Понимаю, что от игры к игре зависит всё. К какому этапу 3д стоит морально подготовиться, именно относительно движка?
С 2д пикселями все ясно - тупа скейлишь изображение. Все автоматом работает. А вот как с 3д? Там же типа текстурки. И всякие менюшки могут быть картинками. Нужно рисовать разные текстуры под разные разрешения? Или можно проще сделать?
>>993669 Есть один простой принцип, твоя 3д моделька все равно в результате будет нарисована пикселями на экране, а значит ты можешь прикинуть при разных разрешениях (например 720p, 1080p) сколько реально пикселей будет видно если к примеру персонаж всегда занимает только треть экрана, или наоборот если к объекту можно подойти вплотную и рассматривать в упор. Вообще можно прикрутить лоды и мипмапы (есть галочка в стандартном шейдере). Тогда из качественной текстуры автоматически получатся уменьшенные для дальних расстояний.
>>993706 Спок, я не он. Эхаю просто от напоминания что примитивно-порнушное часто оказывается эффективней гениальной-идеи-на-миллион, особенно среди индюков.
Находя в стиме игры похожие на свою я говорю себе что анализирую их, ворую удачные идеи или ищу причины провала, но на самом деле просто играю в них. Такие дела.
господа, я тупой. У меня есть сцена состоящая из текста. Я нашел шейдер который добавляет глитч эффект. Зашел в материалы, выбрал новый шейдер, скопировал туда код, поменял параметры, ничего не происходит. Ну и в целом другие шейдеры тоже эффекта не дают. Что это может быть? В туториалах у людей все сразу работает.
>>993950 > Зашел в материалы Вот этот момент проясни. Я конечно не телепат, но вот это твоё "зашёл в материалы" попахивает заходом в файловую систему, копированием и сохранением файла с шейдером там. Потому и не работает, что ты просто файл создал.
>>993950 >сцена состоит из текста Сцена обычно состоит из всяких нод типа Label. >шейдер глитч эффект Такой шейдер обычно применяется ко всей картинке - либо всему экрану (в тексте таких шейдеров часто мелькает SCREEN), либо сделать какой-то корневой элемент. Иногда шейдер вешают на некий прямоугольник (в 2д это может быть ColorRect или TextureRect) который выводится поверх всего.
Грдачеры, а у меня к вам вопрос про музыку. Но не простую, а классическую, например, Вагнер или Бетховен. Что мне мешает ее тупо спиздить с ютаба, слегка изменить но не так сильно, как делал Бобби Принс для дума и использовать? Ну кто там будет с лупой у ноунейм проекта ползать и пытаться понять, какому аркестру принадлежит исполнение. Еще и хер докажешь. В чем не прав?
>>994038 На саму музыку нет, но ведь ее кто-то исполняет. Типа Лондонский аркестр говна пирога. И вот если конкретно их исполнение требует лицензии, то уже просто так брать нельзя, насколько я понял
>>994037 На похожую тему - я периодически натыкаюсь на игры, слепленные из паблик домейн ассетов, вроде тех средневековых мемных котов, чбшных зарисовок времен колонизации Америки, и прочее. Видимо вполне рабочая идея.
>>994037 >Что мне мешает ее тупо спиздить с ютаба >Ну кто там будет с лупой у ноунейм проекта ползать Ты в курсе что ютаб это автоматически задетектит? Например если кто-то выложит запись игры. >классическую, например, Вагнер или Бетховен. А стоит ли? Ну как то совсем странно сейчас в игре будет смотреться. Даже лет 20 назад уже странно было.
Аноны, подскажите. Делаю игру с этакими нотками вайба ps графики, в низком расширении, короче говоря. У меня стоит 320x180, и viewport_scale соответсвенно. Как выглядят модельки - меня устраивает, а вот текст - беда. Он не читаемый стал. Использую label3d пикрелейтед. Какие настройки подкрутить? Можно это как то починить, прошу умоляю прям на коленях стою, с меня тонна нефти (((
>>994166 Не знаю что тут посоветовать, кроме "не делайте так". Ну возьми шрифт в 2 раза крупнее пикселями и без обводки. Отключи ему еще антиалиасинг есть там есть такая галочка
>>994166 Тебе надо наоборот. Текст и игру рендери в высоком разрешении. Пикселизированное 3д пихай во вьюпорт контейнер в низком разрешении, потом этот контейнер пихай в игру (которая в высоком).
Либо шейдеры на 3д-без-текста. Либо делай текст обычным 2д.
>>994226 В прошлых тредах мне один еблан доказывал что всё надо делать руками. Я ему грю мекйхуман же. А он мне грит, а если собака понадобится у тебя есть мейкдог? Интересно, где он сейчас?
>>994232 Вся суть безигорных, которые в процессе создания своей игры мечты, ближе к релизу выдумывают собак добавить. Таких даже и слушать не надо анон.
>>994244 А я согласен с тем аноном. По поводу того, что стоит делать самому. Мейкхуман и модельки в видосе невероятно всратые. И это даже не столько про исполнение, сколько про стиль. Ноль вкуса, ноль уникальности. Заебал уже этот "реализм". Понятно, почему этим ААА студии занимаются. А индюкам это зачем?
>>994247 Дак а нахуй ты мейкуман берешь под стилизацию? А потом бугуртишь что аряя это хуйня. Все равно все мы знаем, что игру мечты вы не доделайте скребя все только ручками >Понятно, почему этим ААА студии занимаются. А индюкам это зачем? Владик брутал сделал норм шутанчик в реализме, че не так?
>>994248 >а нахуй ты мейкуман берешь под стилизацию? Я не беру. >что игру мечты вы не доделайте скребя все только ручками Я доделаю. Это вполне реалистично. У меня только музыка не моя. Ну и парочка картинок-плейсхолдеров в паблик билде. >Владик брутал сделал норм шутанчик в реализме Вспомни еще тот шутер от китайца из бесплатных ассетов, который продался на мильен/трильен долларов (или сколько?) Они выстрелили не благодаря отсутствию стиля, а вопреки. Большая часть успешных инди игр сделано в стилизации. И очень многие из них заработали дополнительные очки в глазах игроков благодаря этой самой стилизации. На реализм уже давно не встает. Это просто дженерик графон. Минимум, который можно терпеть.
>>994248 >игру мечты вы не доделайте скребя все только ручками Я доделаю. Возможно уже в этом году. Да, я совершил ошибку вообще взявшись за игру мечты, но после релиза гештальт будет закрыт, опыта получено много, и пойду клепать небольшие экспериментальные игрульки по месяцу-два.
>>994250 >На реализм уже давно не встает. Это просто дженерик графон. Минимум, который можно терпеть Реализм в 2к25 это RTX DLSS апскейлутный мыльный слоп под 200гб весом, с инпут лагом, смазыванием фреймов, ИИ-галюнами и статтером, и все это на шикарных 30 фпс на моей 4090. Стало настолько душно, что я тупо скипаю.
>>994291 Я не знал. Ну ладно. Пусть существует тогда, я не против. На твоих пиках кстати треш совсем. Даже я уверен, что можно получить гораздо лучше результат.
Перестали работать кнопки в проекте godot. Создаю новую сцену с одной единственной кнопкой - не нажимается. Создаю новый проект с этой же кнопкой - работает. Вот вам и кек пук. На форумах есть люди с такой проблемой, а решения нет. Хорошо хоть проект небольшой, можно пересоздать.
4:19 > У меня шейдеры не работают я тут открыл, вставил, сохранил, а оно не работает > > Ну так тебе же нода нужна которая шейдер покажет, обычно юзают колор-рект на весь экран 4:20 > У меня кнопки не работают, хорошо что проект новый можно пересоздать
Компоненты и экспорт-переменные - круто. Думал пару дней страдать буду, делая очередного врага, а получилось собрать из компонентов старых нпс. Заменил значения, заменил анимации и меши, заменил хитбоксы и нпс готов. Кайф.
>>994435 >Компонентно-ориентированное программирование (англ. component-oriented programming, COP) — парадигма программирования, существенным образом опирающаяся на понятие компонента — независимого модуля исходного кода программы, предназначенного для повторного использования и развёртывания и реализующегося в виде множества языковых конструкций (например, «классов» в объектно-ориентированных языках программирования), объединённых по общему признаку и организованных в соответствии с определёнными правилами и ограничениями.
>>994434 >опубликовано 22 часа назад О, вы Кешью ОлдДью?
>>994436 >>994441 >>994450 То же говно, что и ООП, только вид сбоку. Опять айтишники напридумывали сложных терминов, чтобы потешить ЧСВ и поднять порог входа в айти, лол
Анонче. Юзаю диалоджик и появилась такая трабла. Юзаю кастом спрайт с 4к текстуркой и анимацией, в общем довольно тяжелый ресурс получается. Подгрузка его происходит с пропуком. Открывал исходный код аддона и пробовал переписать в много потоке, но так же ловлю пропук. Загуглил и понял, что годотьяка оказывается написана обезьяной хуангом который на одном потоке загрузку визуала запилил и пропуки не фиксануть, но я то знаю, что аноны 100% решили подобный косяк. Пока что обошел костыльно и когда загружается таймлайн, я просто загружаю всех в память персов, а в конце таймлана удаляю их, очищая память.
>>994584 >Thread.start() Либо я неправильно написал(но это работало, запускалось, загружалось) Либо нихуя не помогло и дристануло так же. >В видеокартах ограниченное кол-во VRAM, так что все свои спрайты ты туда никак не сложишь В таймлайне вряд ли будет больше 10 персонажей, а это около максимум отжор на 1гб видеопамяти суммарно.
>>994575 >>994584 Окей аноны, я вырубил мозг, засунул в deepseek весь скрипт и сказал сделай много поток пидор пиши с табуляций ептыть, await раставь нахуй. Он на удивление сделал и все работает 0 пердолинга. Я даже код не писал, походу программисты рили ВСЁ. Это лол.
>>994666 Можно порнуху с кошкой женой обсуждать, что критично для меня. Про партию или другую хуйню говорить похуй. Самое главное что не триггерится на сиськи письки и т.д, плюс перевод приемлемый, можно ручками поправить и сойдет дайте ему стул
>>994749 >репарент Если ты имеешь в виду перенести ноду в другое место в иерархии, то да это дорого (и не всегда безглючно - вполне реально пропустить кадр с коллайдером например) >гет_перент.гет_перент Не знаю как у них по производительности, возьми и замерь сам Но вообще советуют по архитектурным соображениям не прибегать к нему. Идея в том, что парент знает какие у него ноды и может вызывать их методы, а также может подписаться на их сигналы, или просто перебирать их в цикле, а вот чайлду стоит посылать обратно сигнал.
>>994752 Понял, не буду. >>994754 Ок. Просто у меня есть часть персонажа которая, которая отрывается от него и имеет свое поведение, чтоб ничего не наследовалось от игрока и т. д. - я сделал реперент. И юай тоже пока через гет_перенты сделал.
>>994760 Правильнй способ вне зависимости от движка и языка: отдельно спавнить "оторвавшийся" кусок. Перестань мыслить об игре как игрок. Игроделы - это фокусники. У тебя постоянно появляются и исчезают карты в рукавах, в конечном итоге для игрока создаётся цельный непротиворечивый мир, но ты как фокусник знаешь, что этот мир - иллюзия, собранная из копий и кусочков.
Animation player умеет анимировать "с момента, который есть"? То есть, у меня есть постоянное вращение с помощью кода, rotation_degrees.y постоянно меняется, и с помощью анимации я хочу повернуть эту ноду на rotation_degrees.y+180
План надёжен как швейцарские часы. Никаких конфочек и емейлов. Если у вас проблема - выкладывайте в годотред - другие годотеры фиксят проблему и постят в тред результат, забираете результат и девелопите дальше. Максимум что можно юзать - файлообменники для обмена файлами. Все обсуждения вопросов связанных с девелопом - прямо здесь. Таким образом часть анонов которые делают игры для ТВГ получают годот-силу сообщества, а те аноны, которые по разным причинам не делают игры, поучаствуют хоть опосредованно.
>>995080 Я вообще не понимаю сути джемов. Зачем мне тратить время-силы на наколенную игру, тем более для двачеджема, где в нее поиграет полторы калеки, когда я могу пилить свой проект с релизом как минимум в гугл-плей?
Разве что темы и ограничения у джемов бывают интересными - позволяет почерпнуть вдохновение.
А ещё следует понимать, что ценность времени разная. Самое ценное время у каждого из нас с 20 до 30 лет, до этого ценность времени растёт, после ценность начинает падать по экспоненте. К 40 годам каждый твой день стоит копейки, а к 50-ти уже целый год дешевле доширака.
Именно с 20 до 30 лет ты работаешь на имя. После 30-ти имя работает на тебя.
Прежде чем наивныши будут мне оппонировать знаменитой пикчей, я запощу её сам и напомню, что это черрипикинг гениальными одиночками, ради того чтобы ты лучше работал не на своё имя, а на фирму.
>>995107 > надо много участников Там во множественном числе написано. >>995080 > часть анонов которые делают игры для ТВГ Это же множественное число? Почему же ты возражаешь, говоря >>995107 > Наоборот ?
>>995080 Смотрел что-то такое на ютубе, там дохуя блогеров типа добавляли по какой-то одной фиче и были ограничены одним днем, и под конец какая-то игра про акулу и сумоиста получилась
>>995110 На конкурсы обычно 1 участник может послать 1 игру. Может неловко выйти если твою игру не примут, потому что ты уже участник другой игры, где кому-то 5 минут помогал.
>>995172 Очевидно, что в предложенном выше варианте коллаба через тред, тебе никто ничего не удолит. Но вангую, у нас будет обратная проблема. Никто ничего не будет и делать. 3,5 годотера напишут "сделайте мне стейтмашину" "сделайте мне анимации" и на том всё заглохнет.
>>995173 Например есть два участника. Вот этот анон >>995039 И я. Мы оба сделали по 1 игре. Я в своей игре использовал его код из его поста. Покажи мне методику, по которой выйдет неловко.
Не смотря на все плагины для расставления 3д ассетов, ассет доки, ассет драверы и прочие, я нахожу что удобней сделать себе "палитру" из ассетов прямо на уровне, потом дублировать их и перетаскивать мышью куда надо. Почему? Потому что позволяет преднастроить каждый ассет и посадить его на нужный ему слой. Есть ли воркфлоу удобней?
>>995243 > Есть ли воркфлоу удобней? Вот в ближайшем будущем подтянется виар, девелоперы будут прямо внутри матриц ходить и расставлять ассеты взмахом руки.
И так, учитывая, что и разработчиков в скором времени заменить AI хайтек лоулайф ад на земля грядет, то смысла играть в благородство я не вижу.
Мне осталось решить вопрос 3д моделек, текстур и анимации. Если с последним поможет casccockadeur, то какая аишка мне годно запилит модельки и текстурки в ХОРОШЕМ PSX стиле? Хоть и платно. Или пока что они с таким не справятся?
>>995250 Майки под конец уже прошлого года выкатили, в бесплатной веб версии он генерит по 2д изображениям текстовые промты недоступны нужно локальную версию качать а нвидии за 2к баксов у меня нет такчто не тестил, но вообще народ плюется вроде как за пределами демо материалов и промо оно не так хорошо делает...
да и вообще сам же говоришь аи апокалипсис грядет, народ чет не очень встречает все эти ии поделия все больше и больше хейтит, а со временем чем больше людей ии каснется тем больше негатива будет
>>995250 >вопрос 3д моделек, текстур и анимации алсо на сегодня уже такое количество ассетов и всего что можно нахуячино в таких ебейших масштабах что я даже незнаю нахуя тебе их генерить когда можно просто чуть времени потратить чтобы найти подходящии ассеты моделек бесплатных с готовым ригом тоже полно
>>995274 >народ чет не очень встречает все эти ии поделия все больше и больше хейтит Это пока ИИ можно заметить. Когда качество неизбежно вырастет зацепиться станет не за что.
>>995274 >вообще народ плюется вроде как Ну да... На пиках не то чтобы что-то хорошее
>я даже незнаю нахуя тебе их генерить Ну для тестов, оно понятно, нах не надо. А вот уже для готового продукта. Хочется индивидуальные текстуры, даже если они похоже на уже готовые, но сделанные конкретно под мой проект...
Ладно, похуй. Цеховая солидарность она такая. Лучше бедного студента найму. Зато потом гордо на иргу налиплю плашку "NO AI MATERIALS" но то, что мне подсказывает чатбот говорить конечно не буду, лол
>>995279 >параллельно хейта тоже все больше и больше становится Опять же, только там где видно что это ИИ. Если арт подозрений к своей ИИшности не вызывает то он получает восторженные отзывы. Я сам таким артом на реддите пару раз карму фармил, после минимальной обработки в ФШ для удаления косяков. Хуй кто заметил, а как следствие хуй кто зайхетил.
>>995347 Вообще пофигу. Зависит от твоих целей. у меня в среднекрупной игре визуал и коллайдеры вообще разнесены в разные части дерева, по понятным причинам.
>>995347 А еще есть подход, например у Пети Сканера, когда модельки без коллизий, импортируются из блендера. И есть специальная служебная сцена-коллизия, которую он вешает на модельки в редакторе при настройке сцены. У неё есть красный куб в качестве показа границ. Красный куб отключается при старте игры.
>>995243 Любой воркфлоу который себе напишешь на @tool скриптах. Только представь - ты там дублируешь и таскаешь мышью ассеты, а редактор тебе сам их сажает на нужный слой.
Можно ли запилить на гдскрипте свою систему террейна? Вроде бы ограничений не вижу, есть даже небольшой прототип, но боюсь на полпути столкнуться с какой-нибудь хуйней на уровне движка, чтобы обойти которую нужно будет переписывать все на сишарп.
>>995805 > боюсь на полпути столкнуться с какой-нибудь хуйней на уровне движка, чтобы обойти которую нужно будет переписывать все на сишарп. Низкая производительность. Очень.
>>995805 Можно, но нельзя. То есть, по факту, пишешь ты на гдскрипте, сисярпе или плюсах - непосредственно само смещение вершин всё равно придётся делать на шейдере.
>>995860 >У годота из коробки нет существующей системы террейна Зато есть куча аддонов. В чем оказалась причина написания своего, а не подстройки существующего? >На гдскрипте буду писать непосредственно сам код Код чего, какой именно функционал? >что за вопросы? Обычные вопросы. Ты же спрашиваешь подойдет ли тебе гдскрипт, но как ответить на этот вопрос не зная что именно ты собрался реализовать? Может все подумали про обычную генерацию в редакторе карты высот, а ты имеешь в виду какой то реалтайм воксельный копатель.
Есть вариант делать дочерние узлы и назначать на них скрипты, а затем в родительском узле обращаться к скриптам через get_node или $.
Также есть вариант создавать прямо в папке со сценой новые скрипты, и соединять их в родительском скрипте, получая их при помощи preload.
Варианты вроде как рабочие, но выглядят дико костыльными и неудобными. На других языках я без проблем распределял код на множество файлов, с которыми было приятно работать. А в годоте например если обращаться к скрипту через get_node, не работает автодополнение, так как он не понимает, какие объекты содержатся внутри. Каждому скрипту задавать класс вручную тоже не выглядит как что-то адекватное
А как можно сбросить эту полосочку анимации? Хочу чтобы она один раз воспроизвелась, а потом сбросилась до следующего вызова. Это вроде можно сделать через OneShot, но мне интересно можно ли это сделать проще, потому что с оншот я уже хз куда сувать провода
Шарписты есть? Какой блокнотик или IDE используете в контексте Годота? Пока сижу на Visual Studio Code, подружил её с дебагингом, вроде неплохо Visual Studio у меня почему-то перманентно тормозит даже после перехода на х64 (2022 и новее), хотя железо мощное
>>996008 CSG официально для прототипирования. Накидал кубами-сферами уровень, потом замоделил нормально или хотя бы экспортировал в OBJ Просто чтобы не переключаться постоянно в блендер с Boolean, а двигать кубы прямо в годоте
>>995973 >Каждому скрипту задавать класс вручную тоже не выглядит как что-то адекватное Но ведь " На других языках я без проблем распределял код на множество файлов" ты именно это и делал.
Аноны, поясните ньюфагу принцип создания игровых 3D-пропсов.
Допустим я делаю 3D-ассет фрагмента забора. Я импортирую из блендера GLB-файл (бленд-файлы - не предгалать, ибо дохуя весят для репозитория Git), желательно с уже добавленной коллизией и на основе него делаю унаследованную сцену с с именем будущего ассета где задаю материал и прочее, а задем уже вставляю на уровень эту сцену-ассета, по необходимости. Я всё правильн понимаю?
Просто видел вариант, где чел из импортированного GLB-файла вручную сохранял сетку в res-файл, а уже её вручную добавлял в сцену ассета. Но я не понял в чём принципиальная разница (разве что во втором случае добавляется лишний res-файл с сеткой, которая по сути всё равно есть в исходном GLB-файле).
>>996572 Годот не использует GLTF/GLB, он его импортирует, и при импорте он в любом случае создает этот самый res с мешем во внутреннем формате. Ресурсы в годоте могут храниться внутри сцен, а могут отдельными файлами. Когда чел сохраняет res, то грубо говоря на этот размер уменьшается размер сцены. Вообще сцену после этого можно и удалить, и glb удалить, а дальше уже использовать в игровой сцене MeshInstance с mesh. Дальше уже вопрос удобства, наверное. Если ты активно редактируешь модельку, то она будет авто-реимпортироваться. С другой стороны это значит что изменения в этой сцене удалятся (а я там к примеру BoneAttachment навешиваю) - мне проще тоже уже меши отдельно хранить как ресурс
>>996572 Я на тройке, в четверке процесс экспорта поменяли. Но я делаю так. Леплю модель, экспортирую в gltf, в годоте открываю gltf, копирую топ-ноду внутри которой меши, и вставляю ее в свою сцену. Коллизии предпочитаю делать сам, упрощенные, поэтому при импорте не заморачиваюсь. GLTF закрываю, иногда удаляю иногда храню как бекап.
Если модель активно редачу и ее надо оценить сразу в лайв-режиме в игровом мире, то использую gltf вставленный в сцену.
>>997180 Если ты имеешь в виду - разработка на пк и запуск на андройд, то годо едитор зппускается на андройде нативно. Синхронизируешь прлект через гит и никакой компиляции.
> 997346 > кок-пок годоти кудах >>997351 > Не толсти Щас бы всерьёз отвечать что-то залётному срачеживотному (которое я уже зарепортил за движкосрач), что он там толстил-перетолстил. Давай, продолжай кормить.
>>997368 >зарепортил Какой ты чувствительный мальчик, ещё товарищу майору напиши что на двощах обидели >>997351 Ну тебе бредовый, а юнитибеженцы его просили с сентябрьского обсера (и я тоже его ждал)
>>997381 Я пишу не про встраивание в редактор, на этот режим мне пох (я просто никогда не буду заходить во вкладку плей, да и вообще ее легко убрать аддоном в 5 строчек который скрывает лишние кнопки-вкладки) А про то что теперь по умолчанию когда запускаешь игру по F5 в ОТДЕЛЬНОМ окне оно обвешано как новогодняя гирлянда, и даже издевательски пишет в углу 1652х926, когда в проекте задано 1920х1080 и ФУЛЛСКРИН блдджад. Так вот держу в курсе 1920:1080 = 1,7(7) ratio, а 1652:1,77 = 1646 а не 1652, удачи потом искать почему игру перекосило на 6 пикселей у игрока.
Сложный прекол Я корректирую высоту при root motion (меня интересует только движение в плоскости) И тут оказывается в годоте настолько хорошо уже многопоток сделан, что анимации в своем потоке крутятся и переписывают значение. Пришлось отключать для анимейшен плеера и загонять его в главный поток. (хотя нормальный способ наверное будет подправить экспорт скрипт блендера (mixamo2godot.py) и сразу там обнулять)
А еще два раза крашнул бету 4.4, давно такого не было. По ощущениям, это было когда я ставил ✓Editable Children и копался в дочернем AnimationPlayer, потом переключался на какое-то другое поле ввода.
>>997586 У меня АА игра. Там 4 постпроцесс шейдера миллионы пикселей каждый кадр перерисовывают. А еще там ретаргетинг анимаций, ага, и бленд с активным рэгдоллом. И тут как в анекдоте про ящик пива и торт. Одно присвоение все прям уронит да ага. Но вообще у меня это прототип поскольку пайплайн с 3д еще не отработан. Смысл мне переделывать десяток анимаций, а потом их будет сотня, если это решается тремя строчками кода? Не занимайся преждевременными оптимизациями в общем, и думай в общем масштабе стоимости каждого элемента.
>>997589 >У меня АА игра. Эти буквы означают бюджет игры...
>Одно присвоение все прям уронит да ага. Здесь у тебя присвоение, там у тебя прибавление, в третьем месте у тебя умножение. Так и получится неиграбельное говно, в которое ты $100 млн слил. Впрочем, судя по новинкам - так и задумано...
>Но вообще у меня это прототип >пайплайн с 3д еще не отработан Зачем ты тогда какие-то кости бёдер дёргаешь, лол?
Накидай грубыми мазками прототип на кубах, а всю красоту пускай твои 3D мартышки наводить будут. Должны же они зряплату свою отрабатывать.
>если это решается тремя строчками кода Просто не решай отсутствующие проблемы.
>>997637 > В чем вообще код пишете? Во встроенном редакторе. > Rider IDE > We are sorry, but we are currently unable to provide our products or services to you due to export control regulations. Пусть нахуй идёт.
>>997674 Rider можно бесплатно скачать и установить, воспользовавшись прокси/VPN. Тот же Тор тоже бесплатный
Но вместо того, чтобы получить преимущества полноценной среды разработки, над которой каждый день работают сотни профессионалов, ты выражаешь свой протест на треде в имиджборде. Герой нашего времени
>>997694 Догадаешься, почему в треде опенсорс движка предпочитают vscodium, а не проприетарные редакторы которые чет там проверяют и требуют впн, который вообще то может и исчезнуть (а то бывают еще случаи когда сайт банит аккаунт если резко сменился ip)
>>997699 Чего вы так трясетесь? Вас же не заставляет никто его устанавливать
Rider работает даже без подключения к интернету. Скачал, установил, заблокировал выход в интернет через файрволл. Или снова очень сложно? Судя по тому, что вы на гдскрипте пишете, где даже интерфейсов нет нормальных, вам и правда IDE ни к чему. В VSCode даже нормальной отладки для Шарпа нет, не говоря уже про VSCodium, на который официальные плагины и пакеты не накатить. Там у многих при альтернативном компиляторе отладки нет вообще Разработчики блять))
>>997637 >В чем код пишете? Когда как, но часто правлю в обычном "Блокноте".
>>997694 >каждый день работают сотни профессионалов Сколько программистов нужно, чтобы сделать то, что существует как минимум с 90-х годов прошлого века? Буквально единственное нововведение 21-го века - встраивание "LLM автодополнений" прямо в IDE.
>>997720 >Свой гит поднял с бэкапами? Зачем нужен гит, если можно просто делать архивы? Можно подумать, вы тут все командами по 2+ кодера шедевры индустрии пишете, а не копипастите почти готовый год в свои пикселявые 2D хэллоу ворлды.
Гит нужен всяким ракетным прошивкам и т.п., где единственная опечатка может стоить миллиарды и необходимо знать, на кого свалить ответственность. Индюшачья разработка игр примерно как детская импровизация на самодельных инструментах, и нет совершенно ничего плохого в таком подходе (это же игрушки всего лишь, никто от них ничего не требует).
Сука, блядская. На 30 раз прочитал, но так и не прнял разницу между: Surface material override и Geometry material override (да, это гуглоперевод). Помогите разобраться.
>>997705 Можно называть паранойей, а можно просто информационной безопасностью. Причем это именно уже сложившиеся практики, просто ждали опасности со стороны жадных корпораций (типа трактора Джон Дере), а сработало с трансграничной связью. Вообще это уже не первый год идет и все как бы в курсе должны быть - сколько физических продуктов превратилось в тыкву, от всяких игрушек-роботов до "умных домов" или телевизоров когда фирма загнулась/продалась/стала соблюдать санкции и до серверов стало не достучаться. А так же все утечки всяких данных, поскольку стало модно требовать номер телефона и указывать о себе все от имени до фотографии. А это еще не поднимая вопроса стоит ли вообще пользоваться инструментами которые куда-то там отправляют весь твой набранный код (а если строго говоря то вообще кейлоггер всего) (когда ты делаешь запросы к автодополнениям/ии), где он там складывается и для каких целей потом будет использоваться. И что туда может утечь - в какую нибудь обучающую подборку потом попадет твой секретный пароль или ключ подписи или что-то еще, иногда случайно оставшееся в буфере обмена или если ты редактировал файл конфигурации. Опять же в этом плане редакторы с исходным кодом позволяют хотя бы проверить что они ничего по сети не отправляют.
>>997790 Это такой вид "ООП" / наследования Mesh это ресурс. Материал ресурса распространяется на все экземпляры мешинстанса с этим мешем. У MeshINSTANCE (конкретного спавна) можно задать свой Surface Mat Override или Geometry Mat Override. Surface это поверхность в единственном числе. Поверхностей у модельки может быть много и у них могут быть разные материалы. Например стекло окон одна поверхность с прозначным материалом, стена кирпич с другим. Так ты можешь конкретные домики покрасить крыши в разные цвета не меняя свет стен. Geometry это замена материала на всю модельку (на все поверхности). а так же GeometryInstance это базовый класс, а значит материал например шейдерный можно задать таким нодам как Sprite3D и Label3D у которых модельки нет Ну и последнее Overlay это способ рисовать поверх модельки. Например татухи, спецэффекты, кровь, ржавчину
>>997793 Проблема таких аргументов в том, что 99% юзеров не работают с совершенно секретной информацией, твои говнокоды в говноигрушке для яндексигр никому не нужны - они только отупят генерирующие нейронки.
А у тех, кто реально работает с ценной секретной информацией, обычно есть деньги на свой софт.
>>997826 >кто-то в репу залил ключ >every fifth works >http://...?appid= Это какой-то рандомный публичный ключ. Ты же не будешь пароли через HTTP GET слать?
>видишь это банально случается А что случилось-то, кто от этого пострадал?
Так можно и на генератор случайных чисел жалобы писать, потому что раз в сколько-то запросов он тебе выдаёт чей-то пароль. А ещё часы, счётчики и прочее. Можно пойти в ЗАГС с просьбой запретить чью-то фамилию, которую ты как пароль использовал...
>А что случилось-то, кто от этого пострадал? В этом и фишка, выполняя правила гигиены ты сразу исключаешь себе возможность пострадать от такого класса вещей, это так же просто как не переходить дорогу не поглядев есть ли машина и так далее.
Одна из недавних познавательных историй была с Disney. Женщина спросила в ресторане безопасная ли еда, и офианты ей несколько раз сказали что аллергена нет, но она, поев, задохнулась и умерла. Когда муж попытался подать на Дисней в суд, они сказали - а нет, ты не можешь, помнишь ты подписывался на месяц демо бесплатного онлайн кинотеатра? Так вот ты там подписал EULA в который был пункт, что ты отказываешься подавать в суд на Дисней в любых ситуациях ))) Чувак поднял шум и общественность надавила на корпорацию. А у меня нет сил, здоровья и желания бодаться в таких случаях, поэтому мне в разы проще изначально в такие ситуации не попадать и не подпистывать ничего сложнее MIT, BSD или GPL. Да от некоторых инструментов придется отказаться, ну так что поделать раз к ним в комплекте идет ведро говна.
>>997885 Ну всё, просто не копируй свой пароль от Сбербанка в инспектор нод Godot, а то вдруг Хуан украдёт у тебя все кредиты и даст тебе лишних денег на вклады.
И главное, если подавишься чипсами за компом - не забудь закрыть Godot, а то вдруг Хуан проиграет суд с твоими родственниками и движок закроется.
>>997894 Ну и к чему ты начал переводить стрелки на годот? Главное не забывай проверять аддоны, благо они тоже в опенсорсе распространяются, а то я пару раз видел аддоны которые лезут в интернет с "телеметрией".
>>997770 >можно делать архивы А можно делать нормально. Нет, дело не в ракетной разработке, а дело в том что это удобно блять. И что, с какой периодичностью делать архивы? А если в игре куча графики, как прикажешь упаковываться? А если захочешь откатиться к определённому изменению, которое произошло между архивациями? Я то могу коммиты на каждый чих делать, и они ничего не будут весить (измененный файл полностью). А могу вообще ради теста начать вести отдельную ветку, куда из основной буду сбрасывать функционал, а в ветке колхозить что-то эдакое, например новую реализацию какой-то сложной фичи, а потом просто сведу эти ветки 3 кликами клавиш. Могу посмотреть, не обосрался ли где я в момент коммита, не уснул ли на клаве и не выпилил ли что-то важное, или наоборот, какой-то лишней параши набросал, могу увидеть визуально результат работы в комплексе, тоже очень полезно, особенно если работа была многофайловая по реализации какой-либо сквозной фичи.
>>998017 ПИШЕШЬ МАКСИМАЛЬНО МАЛЕНЬКИЕ ДИАЛОГИ @ ПОБОЛЬШЕ ЗАГАДОЧНОСТИ, ПОМЕНЬШЕ СМЫСЛА @ ПОДАЕШЬ ЭТО АЛЯ ДИАЛОГИ ДАРК СОУЛЗ @ ВСЕ РУКОПЛЕЩУТ, САМИ ВЫДУМЫВАЮТ И ДОДУМЫВАЮТ СМЫСЛАЫ, НАЗЫВАЮТ ГЕНИЕМ
Есть ли для годота либы или фреймворки с готовыми дегенеративными ИИ а-ля чатЖПТ? Чтоб в скрипте вызвал функцию, передал стринг промта, получил стринг ответа, который потом можно вывести игроку, скажем, в диалоге. Такое вообще кто-нибудь пытался имплементировать в играх? Гугл по запросу "godot generative ai" выдает только про генерацию кода, а мне это нахуй не надо.
>>998155 ИИ будут спасать корпоративный сектор. В инди всё будет так же. Цениться будет уникальное авторское видение избитого геймплея. Берешь кучу старых игор, херетик, например там, гоночки какие, пару ритм-игр, скроллеры, скримеры, аномалии, карты, файтинги, тамагочи, засовываешь в один картридж, сверху закидываешь анимешных тяночек, посыпаешь морковкой, поливаешь любовным соусом и контрастным взглядом на мир - ХУЯК! Хит декабря готов. Главное, не заглядывай в духовку.
>>998155 >всех инди разрабов заменят А зачем ты игру делаешь? Ради бабла? Если тебя беспокоит искусство, то оно никак не пострадает. А зарабатывать на инди ты б и раньше не смог. Просто продолжай заниматься творчеством как своим хобби.
>>998156 >уникальное авторское видение Да всем насрать, будет 5 отзывов от друзей и всё. В геймдеве главное не продажи, а удовольствие от творческого процесса, даже если результат - >пук. >Хит декабря готов. Если ты про MiSide, то они несколько лет пиарились. Экономически это не то, что соло двачер потянет...
>чтобы не тратить время на велосипед Велосипед полезно написать ради опыта...
>>998017 >Теперь осталось диалоги написать Начни с описания личностей персонажей. Диалог - это продолжение личности, её реализация. Рассматривай литературу как ООП, тогда всё станет намного проще.
>а ИИ всегда пишут кринжатину Смотря на чём обучены и как ты их спрашиваешь. Но глобальные идеи из них почерпнуть полезно, только запрашивать нужно на английском языке, конечно. В общем, опиши сначала персонажа, тогда чатботу (как и твоему мозгу) будет проще подстроиться.
Алсо, помним про GIGO: >garbage in - garbage out По-русски: >без внятного ТЗ результат ХЗ
>>998024 >коммиты на каждый чих делать Мне кажется, в этом скрыта большая психологическая проблема. Когда у тебя есть свободный доступ к ctrl+z, становишься зависим от этой функции настолько, что перестаёшь самостоятельно мыслить. Вместо поиска конкретной ошибки ты просто откатываешь всё назад в прошлое и в результате не учишься на ошибках, не понимаешь, где именно и почему ты ошибся. Т.е. ты отказываешься от разработки в пользу магической, решающей все проблемы кнопки "откатить назад".
Что-то подобное сейвскаму. Нездоровая практика, приводящая тебя к обсессивно-компульсивному расстройству психики в долгосрочной перспективе. Вместо удовольствия от игры - постоянные загрузки "наиболее удачных" сохранений игры...
>начать вести отдельную ветку Это тоже проблемная фича, но в другом плане: ты перестаёшь видеть проект в общем и целом, вместо глобального обзора видишь только одну фичу, что, возможно, может быть интегрирована с другими, а, возможно, будет для игры как телеге пятое колесо. Буквально делаешь независимый проект, а зачем?
>увидеть визуально результат работы Что ты имеешь в виду? Число строчек +/- в файле? Сомнительная информация, поскольку результаты работы программиста неизмеримы числом строк.
Моя главная проблема с гитом - неудобный GUI и отсутствие лёгкого доступа с любой платформы.
Не видел ещё ни одного разумного аргумента, чтобы убедить меня пользоваться этой неудобной системой контроля версий вместо простых файловых операций. Существует ли система контроля версий, которая бы оперировала только файлами в ручном режиме? Т.е., например, чтоб скинуть файл на флешку и сохранить доступ даже если вставить флешку в свой смартфон (архиваторов много на Android, все с удобными GUI). Желательно чтобы был прямой доступ через SMB.
А помните, пару тредов назад, я загружал скрипт-наследник SceneTree в get_tree() инстанс через set_script? Так вот, оказалось, что это делается штатно, безо всяких предварительных загрузчиков, прямо в настройках проекта. Написал скрипт, задал ему имя класса, прописал в настройках, вуаля! Антипаттерн год-обджект грузится прямо на старте. Вперёд, к Великому Антипаттерну!
>Зачем нужен гит, если можно просто делать архивы?
>Гит нужен всяким ракетным прошивкам и т.п., где единственная опечатка может стоить миллиарды и необходимо знать, на кого свалить ответственность.
>>998193 >Мне кажется, в этом скрыта большая психологическая проблема. Когда у тебя есть свободный доступ к ctrl+z, становишься зависим от этой функции настолько, что перестаёшь самостоятельно мыслить. Вместо поиска конкретной ошибки ты просто откатываешь всё назад в прошлое и в результате не учишься на ошибках, не понимаешь, где именно и почему ты ошибся. Т.е. ты отказываешься от разработки в пользу магической, решающей все проблемы кнопки "откатить назад".
>Вместо поиска конкретной ошибки ты просто откатываешь всё назад в прошлое и в результате не учишься на ошибках, не понимаешь, где именно и почему ты ошибся. Т.е. ты отказываешься от разработки в пользу магической, решающей все проблемы кнопки "откатить назад".
>Это тоже проблемная фича, но в другом плане: ты перестаёшь видеть проект в общем и целом, вместо глобального обзора видишь только одну фичу, что, возможно, может быть интегрирована с другими, а, возможно, будет для игры как телеге пятое колесо. Буквально делаешь независимый проект, а зачем?
Угар, бля. Такую дикую поеботу может нести только тот, кто так и не постиг философию ГИТа. Сиди свои архивы архивируй, ебанько.
>Моя главная проблема с гитом - неудобный GUI и отсутствие лёгкого доступа с любой платформы. Ты погуглить-то пробовал? Миллиард ГУЁв под ГИТ написано. Я SourceTree юзаю, например.
>Существует ли система контроля версий, которая бы оперировала только файлами в ручном режиме? Т.е., например, чтоб скинуть файл на флешку и сохранить доступ даже если вставить флешку в свой смартфон (архиваторов много на Android, все с удобными GUI) Существует-ли система контроля версий, которая сможет сварить мне кофе?
>>998205 Смотри в консольку, если не ругается, значит все нормально. Пустой мешинстанс вряд-ли производит вычисления, следовательно в плане производительности аналогичен любой пустой ноде.
>>998141 Анон выше написал пример с олламой, но можно и просто llama.cpp взять. Ollama по сути это оболочка над лламой для пользователей - чтобы он мог скачивать и заменять модели, в том числе на лету, чтобы он мог скармливать картинку чтобы получить ее описание. Но возможно тебе это все не надо, если ты сам решишь что будет за нейронка. А у лламы тоже есть режим сервера. Или его можно встроить как cpp модуль. Или можно просто запускать экзешник в процессе и читать ответ.
>>998193 Тебе кажется. Я нехотя начал пользоваться гитом лет 5 назад. Так вот никогда я не использовал его как undo. Кроме пары случаев когда что-то совсем сломалось (ну это то же самое как если бы ты распаковал вчерашний .zip). Но, зато есть способ сравнить с чем-то в произвольной точке времени. Посмотреть как был написан кусок кода месяц назад, и сравнить реализацию. Альтернатива этому хз, я в блокнотике сниппеты кода разные варианты писал, или стены закомментированного кода, это все неудобно. или переименовывать функцию в old_ready и писать новую _ready... да и так можно
>>998193 >Моя главная проблема с гитом - неудобный GUI и отсутствие лёгкого доступа с любой платформы. А это попросту не так. К гиту как раз легчайший доступ с любой платформы из консольки (да да, на андроид тоже есть termux). >GUI Логично, это графический юзер интерфейс, а там есть TUI (text user interface) и CLI (command line interface)... >Оперировала файлами Дальше будет немного шизофилософии что такое файл? Это запись в каталоге, что в непрерывном потоке байтов на диске (а в случае текстового файла - символов) некий диапазон от и до - помечен как являющийся этим файлом (фрагментацию и пр. для простоты игнорируем) что такое строка? Это диапазон от и до какого то символа в непрерывном потоке символов Внезапно это одно и то же... Все есть файл, все есть строка. Гит работает со строками как с файлами... Инб4 таблетки
>>998193 Или это так толсто, что даже тонко, или ты реально феерический аутист с спгс. >Мне кажется, в этом скрыта большая психологическая проблема. Когда у тебя есть свободный доступ к ctrl+z, становишься зависим от этой функции настолько, что перестаёшь самостоятельно мыслить. Вместо поиска конкретной ошибки ты просто откатываешь всё назад в прошлое и в результате не учишься на ошибках, не понимаешь, где именно и почему ты ошибся. Т.е. ты отказываешься от разработки в пользу магической, решающей все проблемы кнопки "откатить назад".
Я веду одновременно 4 проекта - рабочий на работе, свой собственный фреймворк для моих игр, клиент и сервер. Я просто физически не смогу "мыслить" идеально во всех 4 проектах, чтобы без истории коммитов точно помнить а чем я там занимался не просто на прошлой неделе, а чем я там занимался вчера вечером, и ориентироваться по диффам коммитов очень удобно. Нет, я не ищу ошибку откатами, я ищу её отладчиком, это тестировщики и девопсы ищут падающий билд откатами, если в этот момент дева на месте нету. А иногда я ищу её не просто отладчиком, а глазами изучаю инструкции и понимаю где собака зарыта. И я скорее заработаю какое нибудь расстройство мозга когда начну шерстить архивные копии если мне вдруг понадобится удаленный код, который я буду искать через meld по архивам, а то и вовсе мне потребуется сопоставить 3 версии файла из разных коммитов для моих целей, например в целях изучить что было до очередной итерации рефакторинга.
>Это тоже проблемная фича, но в другом плане: ты перестаёшь видеть проект в общем и целом, вместо глобального обзора видишь только одну фичу, что, возможно, может быть интегрирована с другими, а, возможно, будет для игры как телеге пятое колесо. Буквально делаешь независимый проект, а зачем?
У меня может быть сразу 3 варианта физики или 2 варианта интерфейса, и ещё много всего может быть. С 3 типами физики было неиронично. Есть релиз и дев ветки, это уже классика, чтобы тестить совместимость и не только.
>Что ты имеешь в виду? Число строчек +/- в файле? Сомнительная информация, поскольку результаты работы программиста неизмеримы числом строк.
Ты мой текст жопой читал? >Могу посмотреть, не обосрался ли где я в момент коммита, не уснул ли на клаве и не выпилил ли что-то важное, или наоборот, какой-то лишней параши набросал, могу увидеть визуально результат работы в комплексе. Я в диффе вижу все что я сделал, это значит я могу дополнительно проконтролировать как я реализовал фичу, где что написал и не написал ли чего лишнего, потому что некоторые сложные фичи могут занять недели с лопатингом всей кодовой базы, и я по хорошему должен иметь возможность изучить проведенные мероприятия чтобы точно убедиться что я вообще сделал то что хотел.
>Существует ли система контроля версий, которая бы оперировала только файлами в ручном режиме? Т.е., например, чтоб скинуть файл на флешку и сохранить доступ даже если вставить флешку в свой смартфон (архиваторов много на Android, все с удобными GUI). Желательно чтобы был прямой доступ через SMB. Этот текст писала чатгпт 3? 3.5 и то такого дебилизма не выдаст. Хочешь чисто андроид - подымай гитсервер и цепляйся к нему через puppygit, либо параллельно держи расшареную папку проекта плюс gitweb - таскай файлы из gitweb а затем закачивай по smb в проект. Для андроида действительно нету вот прям хороших инструментов типа sourcetree, если убрать гитхаб из уравнения по некоторым причинам. Но как причина для отказа от удобств Гита в виде того что он кофе не варит - это смешно, впрочем каждый дрочит как хочет.
>>998246 Потому что думающие, преисполнившиеся люди, свободные, не скованные ограничениями, кроме объективно существующих еще не реализованных функций, творцы, креативно ищущие способы эти ограничения покорить или обойти, архитекторы, стоящие выше взаимозаменяемости офисных винтиков. >>998247 Это крайне искаженное описание. Во перввх бесплатное много где дают, а кое где и побольше чем тут. Туда получается еще больше маргиналов должно слетаться. А все потому, что ты обратил внимание только на один аспект - брать, но упустил другой - дарить в ответ. Дарить коммиты в коде, дарить знания об устройстве. Это скорее свободные каменщики или мужики в деревне собирающиеся помогать друг другу строить дом. Поэтому в комьюнити годота когда кто-то показывает, что он сделал - то чаще отвечает как, дает ссылку на репозиторий, показывает бесплатный видеотуториал. А не пишет, это я сделал покупайте за $8.99 а чтобы узнать как покупайте курсы.
>>998281 То ли дело обеспечивать себе гемор с архивацией, а когда вследствие скудоумия где подход с архивацией скорее всего распространяется на все аспекты продукта (зачем делать нормальную архитектуру, если можно ебануть монолит на синглтоне и радоваться жизни, зачем сразу оптимизировать сцену/сетку используя мешинстансы и организовуя работу батчинга кэшируя меши и материалы, создавая генерируемые ресурсы с атласспрайтами для 2д) а зачем, если везде пишут чтоб не занимались преждевременными оптимизациями, при том что они практически ничего по времени не стоят, в отличии от дальнейшего отлова этой проблемы через мониторинг. А потом год полируют проект, ищут баги, либо релизят говно сломанное, а то и вовсе не релизятся. Зато не красноглазик, епта.
>>998291 R&D в инди везде, на каждом шагу. Просто когда подойдёт момент сборки элементов r&d в цельную игру - надо не обосраться и не забить. При чем вышеописанные оптимизации часть r&d, чтобы понять насколько вообще движок может раскрыться, если нужно скажем создать что-то большое и многообьектное. Я впринципе согласен что в игре все аспекты кроме архитектуры и кор механик могут быть днищными, даже оптимизаций фич может не быть, потому что архитектура и её внедрение - это сэкономленные недели и месяцы работы и стабильный рабочий процесс от абстракций к реализации, а тяжёлая кривая фича - и так сойдёт, даже выбросить не жалко при неосиливании, или написать в требованиях 3090 с учётом апскейлинга, и так сойдёт. Главная задача - не дать обеспечить продукту тебе бессонные ночи, а не вылизать его до блеска. И при решении этой задачи - лучше не экономить, если элементы прототипирования утверждают что все нормально. Плюс некоторые вещи лучше не прототипировать, это относится к механикам стат и циферок, потому что во первых - прототипировать нечего, во вторых она слишком завязана с игрой, и либо придётся изобретать прокси абстракции для взаимодействия сущностей и их стат чтобы не было прямой связи, либо изначально выбирать особую архитектуру где это заложено (ecs), ещё прототипировать не стоит систему лута по схожим причинам.
>>998294 Правильная архитектура - залог успеха, согласен. Что ты или другие аноны можете порекомендовать почитать/посмотреть на эту тему? Мало опыта у меня, я джун, но уже сейчас на практике понимаю важность архитектуры
>>998281 Советую Дебиан. Четкий, надежный. Генту и Арч не советую новичку, который даже с гитом трудности испытвает. Хотя конечно это true way собирать софт из исходников, а не слепо доверять репам. Всякую экспериментальщину типа НиксОс тоже сложно. Убунту же слишком далеко отходит уже от свободного софта.
>>998296 Кто-то посоветует смотреть в сторону DI, и будет в некоторой степени прав, хоть в годоте и нет своего DI. Я могу только от себя посоветовать что ты должен избегать как огня общеигровых шин событий, когда на одну шину сыпятся события отовсюду и обо всем (урон по сущности, обновление стат, применение эффектов) если ты захочешь делать это через такой интересный паттерн чтобы избежать ecs и строгой вертикали. Постарайся их хотябы разделить по группам где в каждой группе не более 10 видов событий, так ты убережешь себе нервы если эта херня начнёт по какой-либо причине ломаться и проще будет отслеживать потоки данных в отладчике и воспроизводить ошибки, ведь локализация проблемной группы систем на лицо. При чем старайся группы генераторов событий избавлять от сайд эффектов других шин, они должны работать изолировано и только между собой внутри своей шины и не должна возникать ситуация когда событие из сущности одной группы приводит к событию из сущности другой группы, между ними всегда обязано быть глобальное состояние хоть в каком либо виде - как часть вертикали приложения или как синглтон сохранения состояния игры. Для гиперказуалок сойдёт шина + жёсткая абстракция либо просто жесткая абстракция. Для чего-то помощнее - стоит осваивать сущностно компонентную либо ecs. При чем это не значит что нужно в точности повторять, стоит импровизировать, и не бить золотым молотком, не пытаться натягивать сову на глобус. Если чувствуешь что паттерн от тебя просит производить действия, которые по ощущениям усиливают связность разных областей программы, которые по хорошему бы не должны связываться - значит делаешь что-то не так. Абстракции становятся неуклюжими и громоздкими - делаешь что-то не так. Хорошая архитектура на жёстких абстракциях - DI + представь код как дерево, где конец каждой ветки и каждого листика - точка выполнения инструкций, а данные текут как бы по краям левой и правой стороны, данные по краю справа "втекли" на конец ветви, выполнялись и "вытекли" назад в основание ветки по левому её краю. То есть данные идут из корня - и возвращаются в корень в том или ином виде, то есть нужна иерархия владельцев и подчиненных. Любая потребность во взаимодействии между ветвями - либо решается на верхних уровнях двух ветвей, либо костылится через шину событий на верхнем уровне для веток которым нужна связь. Последнее - ecs это круто, это заебумба, но не надо натягивать сову на глобус, данные это данные, а представление - это совершенно иной мир. Если хочешь иметь максимум свободы и минимум перегруза из-за потребностей паттернов в определённых абстракциях - учись "дружить" несколько концепций единовременно, например дружить ecs в области управления данными о геймплее и его сущностях и MVC в области представления сущностей ecs на экране, таким образом возьмёшь лучшее из двух миров. Будь творцом, старайся понять когда нарушаешь KISS, но чувство прекрасного в коде - увы пока приходит только с опытом, можно хоть обмазаться этими аббревиатурами которые понапридумывали - но в итоге нужно именно прочувствовать эту красоту, насладиться ей, уловить пропорции того и иного в коде. Только практика, изучение уже существующих решений и чувство прекрасного. надеюсь мой поток сознания не очень кринжовый, потому что я хуй знает как объяснять такие вещи нормально, нужны книжки, хуижки, статьи, исследования, практические примеры, а не высеры на двощах
>>998376 >свободного софта Тебя Столлман покусал? Свободное ПО и эффективность твоей работы имеют тенденцию к расхождению, зачем нужен дебиан когда он сосёт по юзабилити у убунты, которая такой же линукс? Гента это вообще пиздец, нашёл что советовать. Арч - ну допустим, там нету dependency hell однако троллинг релиз бдит и обновляться без бэкапов крайне не рекомендуется.
>>998402 >Тебя Столлман покусал Будто бы идеи свободного ПО - что то плохое. И уж точно не место закручиванию гаек в флагманах опенсорса типа линукса. > Свободное ПО и эффективность твоей работы имеют тенденцию к расхождению Слишком сильное обобщение (нет, во многих областях моя эффективность только выросла отказом от мышетаскания) >зачем нужен дебиан когда он сосёт по юзабилити у убунты На двух разных компах наловил кучу проблем от убунты, которые ушли при смене на дебиан, так что по юзабилити для меня он выигрышнее. Делаю вывод что дебиан это база без кривого говна которое убунта наворотила поверх > Гента это вообще пиздец, нашёл что советовать. Я написал почему ее упомянул - благодаря софту с опен сорс аддонами (годот, блендер, асепрайт, вскод, gnome de и так далее) я понял силу именно source-based дистрибутивов.
>>998402 >Тебя Столлман покусал? >Тред по Годоту Где-то ты свернул не туда.
>>998376 Ее дистросрач в моём годаче. Кароч положняк такой. Бубунта или Минт - идеально для новичка в линухах. Если новичок хочет что-то покрасивше и позабористей - пусть ставит бомжа в кедах (Manjaro KDE). Всё остальное не для нубов, чётко и однозначно. Уж дебиан точно, слишком там много подводных камней, типа какой-нибудь драйвер не установлен по умолчанию, потому что недостаточно свободный. Нубский дистр должен искаропки работать без использования напильника.
>>998427 >Manjaro О да, самое то троллить новичка троллинг релизами, хоть предупреждай что перед запуском апдейта надо бы свечку поставить за здравие системы, или хотябы сделать бэкап, лучше уж реально дебиан, даже если монитор не заработает (потому что драйвер недостаточно свободный).
Привет. Вопрос, может, не по движку, а по графике. В общем, у меня полупрозрачная стена, т.е. меш с трансперенси + модулейт с низким альфа. У меня при отходе камерой на ~20м пропадает меш, без прозрачности всё ок. Какой настройкой это можно исправить?
>>998205 >использовать пустой МешИнстанс как Spatial Как минимум выделяется больше RAM под ноду.
В идеале нужно использовать базовый Node всегда, когда тебе ничего не нужно из остальных нод. Или вообще RefCounted, если не нужно дерево сцены. Но экономия памяти станет заметна, когда у тебя таких объектов тысячи, т.е. для одного объекта не страшно.
Как статик боди научить реагировать на коллизии? Например у меня есть непроходимый барьер (статик боди), и я хочу чтобы при ударе по нему он делал визуальный ВЖУХ.
Реализовал добавив Area с хитбоксом чуть больше чем размер статик боди. Чуть больше - чтобы снаряды успевали зарегистрироваться перед тем, как отскочат от барьера. Но по сути это 2 области на 1 объект. Есть ли путь оптимальней?
>>998456 Так же с ним чем-то сталкиваешься. Вот у другого объекта можно узнать о столкновении, и вытащить данные с чем столкнулся, и если с барьером то в какой точке и под каким углом.
>>998457 Не очень удачное решение. Предлагаешь пихать код столкновения со стеной во все объекты кроме стены? Логично, что если эффект связан со стеной, то и код столкновения должен быть у стены, а не у каждого возможного объекта, который с ней столкнётся.
>>998456 >Но по сути это 2 области на 1 объект StaticBody должен быть практически бесплатным. Стоимость Area зависит от того, кого она детектит. Полагаю, что барьеров со спецэффектами у тебя по определению меньше, чем обычных декораций, т.е. нагрузка от дополнительной Area несущественная.
>>998204>>998221>>998225>>998238 Всем спасибо за ответы, прочитал внимательно и в очередной раз убедился, что пока что мне не нужна специальная система контроля версий. Не какой-то кабанчик, не работаю на кабанчика и в опенсурс не выкладываю ничего, так что могу спать спокойно...
Мне просто удобнее, когда весь код в моих файлах, конкретных, а не абстрактных бинарных блобах в специальном "облаке" (даже когда оно локальное - проблема в отсутствии лёгкого доступа к данным).
>>998288 >зачем делать нормальную архитектуру Всё совсем наоборот. Любители делать монолит на синглтонах оправдываются тем, что всё возможно пофиксить простым откатом всего проекта. Я же тщательно планирую архитектуру, чтобы, в идеале, никогда не открывать старые архивы проекта. Т.е. фактически мой подход стимулирует модульную, расширяемую архитектуру, поскольку он ставит определённые ограничения на работу с файлами.
>>998461 >во все объекты А кто тебе сказал что у него этих объектов больше чем 1 игрок? Или даже больше чем 10 пропсов? >код столкновения должен быть у стены, Вот только стена может иметь очень сложную форму. Или придется делить на сотни объектов. Думай что предлагаешь.
>>998396 Спасибо, интересно было почитать и что-то вроде даже понял. Изучаю уже паттерны, оказывается, парочку использовал, сам того не зная. Это интересная тема, зависну надолго
>>998465 >Мне просто удобнее, когда весь код в моих файлах, конкретных, а не абстрактных бинарных блобах в специальном "облаке" В каких "твоих" файлах", ебанько? Для тебя какая принципиальная разница между 7z и блобом гита?
>проблема в отсутствии лёгкого доступа к данным. Какие у тебя проблемы с "доступом к данным", если любой коммит расчехляется двумя кликами мыши в ГУЕ, либо полутора коммандами в консоли (я консоль не юзаю вообще)?
У тебя проблемы с головой. Ниасилил ГИТ - так и напиши, все эти самооправдания уровня "мне просто оно не нужно" -- это смехотура. У Стэнфорда есть балдёжная книга "Волшебство Git", по которой даже моя бабуля смогла бы освоить сабж. http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/ru/ (да, есть и на русском языке).
>>998494 Из гитовского блоба можно хотябы файлы вытащить, в отличии от поврежденного архива, из которого уже нихрена не вытащишь
>Какие у тебя проблемы с "доступом к данным", если любой коммит расчехляется двумя кликами мыши в ГУЕ, либо полутора коммандами в консоли (я консоль не юзаю вообще)?
Он ведро хочет (хз зачем, может он там рисует). Ну не хочет гит - не надо. Конечно такие люди вызывают сопереживание потому что сам вспоминаешь как ебланил с архивами до момента перехода на VCS, но тут рил пока он не проебет свои архивы или пока не столкнется с вышеописанными потребностями - пущай пострадает, потом от перехода больше кайфа будет
Про меши и их материалы. Что будет если с помощью кода установить albedo.a в больше чем 1? Выглядит интересно, мне бы этот эффект пригодился, но хуй знает насколько это надежно - через редактор >1 не установить даже переключившись в raw.
>>998513 >>998516 Похоже на color burn, да. У партиклей белый аутлайн проявляется когда альбедо_а пирамиды >1. Еще глоу докинул и охуенная цветомузыка вышла.
Три дня моделировал квартиру мечты в свит хоме. Такой моделировал себе и думал > щас замоделю, потом в годот экспортирую, и локация для ТВГ готова Ага, щас блять. Свитхомя ескпортирует только в один OBJ. При импорте OBJ файла годот молча крошится. При импорте в блендер тот показывает кошмарную геометрию, переполненную лишними рёбрами. Поучайствовал в ТВГ, блять. Всё настроение мгновенно улетучилось.
А как можно синхронизировать анимации в мультиплеере? Через MultiplayerSynchronizer я синхронизировал позицию и вращение всего нужного, и коллизии. Но у другого игрока проигрывается только анимация idle.
Анимации работают через animation tree, там они смешиваются и тп
>>998524 > При импорте в блендер тот показывает кошмарную геометрию, переполненную лишними рёбрами. Если я все правильно понял судя по скриншоту, у тебя root сцены находится в точке 0.0, а сам объект (дом) смещен. По какой-то причине построились соединения между root сцены и какими-то элементами объекта? Возможно, тебе нужно сделать origin to geometry? Если топология поехала, есть плагины на Blender, которые ее упрощают. У тебя дом состоит из геометрических примитивов, проблем быть не должно
Давно не работал в 3D контексте, мог фигни наговорить, но как будто бы проблема не выглядит нерешаемой. Отдохни и вернись к проблеме позже. Поймешь где ошибся - либо прогуглишь и найдешь таких же, как ты, кто уже нашел решение. Не бывает такого, что проблема только у тебя. Расстраиваться в любом случае не стоит, всех благ
>>998527 > Через MultiplayerSynchronizer я синхронизировал позицию и вращение всего нужного, и коллизии. Но у другого игрока проигрывается только анимация idle. Что ты синхронизировал, то у другого игрока и проигрывается. Машина состояний инициализируется вместе с объектом персонажа, в состоянии покоя проигрывается анимация idle. Синхронизировал ты pos, angle, коллизия, видимо, привязана к геометрии персонажа, а та к pos. Почему должны проигрываться анимации ходьбы? Необходимо синхронизировать состояние машины состояний, которая отвечает за проигрывание анимаций. Выводи состояние машины состояний на обоих клиентах, сравни разницу, убедись, что нужные данные передаются
>>998533 >Необходимо синхронизировать состояние машины состояний, которая отвечает за проигрывание анимаций Да, кароче я запутался, и не проигрывал нужный код. Щас поставил его выше, и всё заработало. Спасибо!
>>998494>>998496 У меня только один вопрос: что именно мне нужно сохранять в архив, в виде резервной копии проекта, используя систему контроля версий?
Допустим, я сохранил копию репозитория. Потом навернулся диск с основной версией. Я пытаюсь восстановить репозиторий из копии, и что я вижу? Современный софт не открывает мою копию, и приходится ручками выковыривать каждый файл.
Если я сохранил только копию папки проекта, то вся история изменений просто исчезает и всё. Зачем я мучился с настройкой и использованием системы, данные которой я никуда не сохранил и утратил?
Получается, мне нужно регулярно делать бэкапы не только проекта, но и системы контроля версий... И приложения, которое может прочитать данные... И инструкций по его настройке и использованию, т.к. обязательно забуду когда-нибудь, а интернета нет...
Ну т.е. это дополнительные траты сил, а ради чего? Я ковыряюсь в своих hello world сам по себе, никого не трогаю. Зачем мне умножать количество движений, необходимых для создания надёжной копии данных? Вообще, зачем мне хранить все эти промежуточные состояния, если я на них никогда не взгляну даже?
Т.е. система контроля версий не избавляет меня от создания резервных копий, но заставляет меня дополнительно создавать резервные копии этой малополезной системы контроля версий. Если бы получаемая польза перевешивала затраты, я бы использовал её и не жаловался, а так - смысла нет.
Короче, хватит пропагандировать коммит каждой отдельной строчки print("hello world"), раздражает. Затраченные усилия не стоят получаемой выгоды.
Вот этому >>998536 нужно научиться писать что-нибудь сложнее строчки print("hello world") и пару раз обжечься, тогда он поймет зачем нужна система контроля версий Не срите больше в ветку, пожалуйста, бесполезно
>>998536 Бэкап гита делается одной командой - git push. (В любое кол-во подключенных точек - от другого твоего компа, до приватного/публичного аккаунта github, хоть до какой нибудь частной ноды лично у Столлмана) Ну то есть я во время джемов им как бекапом только и пользуюсь, например раза 2-3 в день
>>998536 Тупой селюк, почитай хотя бы введение документацию Гита, или тот же учебник Стенфорда (>>998494), буквально каждый твой вопрос - это смехотворная хуйня, из которой понятно что ты даже основы основ не путался вкурить.Не хочешь вникать - сиди архивы архивируй, и больше не сри сюда своими шизоразмышлениями по поводу того, в чём ты даже не пытался разобраться.
>>998532 > и вернись к проблеме позже > Расстраиваться в любом случае не стоит, всех благ Да пожалуй, шёл он нахуй тот ТВГ. Всё равно у меня соответствие теме минимальное. Буду неспешно пилить проект в блендере, с хорошей геометрией изначально. Конечно накидать по быстрому локаций в свитхоме звучало заманчиво, но это изначально была тупая идея.
>>999047 Бле, я залип на видяшку. Ребёнок явно находится в том возрастном периоде, когда исследуется физика: бросать предметы, бить, вот это всё. А свинья думала, что ей люди, может, пожрать чего дадут. Но, судя по скорости съёба, она хорошо знакома с пиздюлями, причём гораздо более серьёзными. И вроде и жалко животинку, а с другой стороны её ж всё равно рано или поздно съедят. А ещё ребёнок явно какой-то узкоглазый, что в контексте данного поста воспринимается как-то неоднозначно.
> Делайте игры Не получается. И так не получается. И эдак не получается. Ну и пожалуйста, блять. Ну и не надо. Ну и пошло оно всё в пизду! Не очень-то и хотелось.
>>999610 Есть разные методу чтобы довести свою делалку до рабочего состояния. Например такая идея, готовить свои дела для передачи кому-нибудь другому. Представь что ты передаешь проект другому челу чтобы он закончил игру за тебя. Ты приводишь в порядок проект чтобы другие могли в нем разобраться. Пишешь небольшой мануал как сориентироваться в проекте, и то что ты хочешь от человека коьорый должен его доделать. Ты так-же можешь проделать со своей квартирой, представь что ты уезжаешь на два года и оставляешь ее полностью, на время, другому заселенцу, ты убираешься, ремонтируешь что сломано, и избавляешься от вещей которыми он не будет пользоваться. Ты так можешь поступить со своей жизнью. Представь что ты играешь в игру и кто-то попросил у тебя сохранение, и ты смотришь что без особого труда можешь улучшить состояние игрогово персонажа, чтобы тот кому ты передаешь сохранение, меньше заморачивался, и получил больше удовольствия от игры, окунувшись в наиболее интересные моменты геймплея.
Хорошее упражнение для тренировки собственной самоорганизации, убрав часть мозгоебки и смазав колесики успеха.
>>999700 >так-же можешь проделать со своей квартирой, представь что ты уезжаешь на два года и оставляешь ее полностью Я бы растяжки на окна и двери поставил, чтобы никакой пидор не влез
>>999784 https://www.youtube.com/watch?v=MUr1iRdMywo стейбл дифужен оч годно делает, но нужна видяшка холтябы с 6 гигами врама и терпение чтобы разобраться -моделька из видоса пики 1 и 2 есть еще платный ретродифужен, который встраевается в асепрайт, с ним сильно проще начать + сразу в асепрайте, но он платный и много ебли с покупкой - моделька ретродифужена этол пик 3
Да был план делать порно игру, но я чет сел, набросал диздок и перегорел от количества работы.
>>999803 алсо, все это в любом случае требует постобработки, если конечно тебе не похуй вот например я сгенерил в ретродифужене сразу спрайтлист и собирал из него анимацию, да там определенно косяк в позах, но работы в целом над чисткой анимации - дохуя, один ток фон убирать - уже много работы но в целом офкорс это в разы быстрее и качественнее, чем рисовать самому, как минимум фоны, окружение и чисто придумать чтото с нуля сильно проще с таким инструментом
Аноны, а каков куррент стейт C# в гадоу? Как там с интерфейсами обстоят дела, абстрактными классами? Движок с таким дружит, общается? Насколько моно билд тяжелее не-моно? LSP сильно подводит? Как там с фишками движковыми, вроде сигналов?
>>999873 А вот содержимое готовых архивов экспорта 4.4. beta 2. Тоже что то в Mono не наблюдаю web*
Вот большой issue который я пока не прочитал. https://github.com/godotengine/godot/issues/70796 Там что то про трудности линковки. Может ты с чем то путаешь? Или видел какой то кастомный способ билда?
>>999876 Сделай билд для итча и погляди. Я свой билд сделал, тестанул даж на 730 и работает стабильно, напрягают только подгрузки с пропуками, хотя реализован многопоточные загрузки в игре. Ну и пропуки самих шейдеров бесят, при первой инициализации их.
Привет. Я сделал небольшую игрушку в 3д. Всё ок, кроме коллизий. Ситуация такая: в один момент времени в общей сложности около 500-1000 коллиженов. Каждый прикреплен к ригидбоди, т.е их столько же. Игрок имеет арею, которая должна их детектить. Не всегда срабатывает.
Мои варианты: 1) слишком много коллиженов => какие-то объединить в один? 2) слишком много ригидбоди => прикреплять к одному или пункт 1? 3) коллижен игрока маленький - где-то 0.05 метра по каждой оси - мб дело в этом? 4) игрок быстро перемещается и... не успевает происходить детект? Честно, не очень в этом разбираюсь. Какой вариант наиболее правдоподобный? Или на что-то еще обратить внимание?
>>999889 3 - да, это обычно плохо, попробуй всю игру увеличить раз в 100. 4 - да, тоже. 1,2 - тут вообще хз вытянет ли столько. Возможно тут надо просто переходить на свою упрощенную математику с радиусами.
Не подскажете почему PhysicalBoneSimulator3D проваливается сквозь коллизии при включении симуляции? Ну скелет в целом насквозь падает. Слои и маски одинаковые поставлены
>>1000479 Двачую. Вчера тоже начал рефакторить. У меня много данных в рефкаунтедах хранится, а примеры годошней композиции обычно на белых нодах на сцене показывают. Почему-то в голову не приходило, что разницы особо и нет.
>>1000479 Можешь пример привести? Плохой реализации, которую ты сделал в начале и то, что у тебя получилось сейчас с композицией. Пытаюсь разобраться в теме, я новичок
>>1000503 Пример моей плохой реализации: старый тип врагов, сделанный через наследование и сцены и скрипта. Я бегаю по родителю и ребенку, меняю содержимое нод, выключаю-включаю коллизии и слои, добавляю ребенку новые ноды, перезаписываю-перегружаю функции которые отличаются минимально, либо пытаюсь сделать один-единственный настраиваемый мега-класс для всех врагов разом. 4-5 типов врагов и это превратилось в кашу.
Пример реализации, которая мне подошла больше: новый тип врагов, где я разделил их на куски - кусок зрения, кусок хитбокса, кусок жизни, кусок оружия, кусок "ног" с навигацией и тд. Каждый кусок - своя сцена со своим скриптом, с настраиваемыми опциями (хп, дамаг, скорость), сигналами и путями для соединения. В итоге никто ни от кого не наследуется и не приходится перегружать функции ради любого изменения. Я собираю каждого нового врага по кусочкам компонентов, как лего. Нужен статичный враг, аля ловушка-статуя? Минус "ноги" с навигацией. Нужен тот же нпс, но с АОЕ атакой? Меняю кусок оружия.
>>1000479 А еще изучи ресурсы. Многие вещи намного проще через композицию ресурсов делаются, чем через композицию нод. Этот момент тоже не сразу начинаешь чувствовать. Из примеров, элементы инвентаря выгодно делать ресурсами, переносимые инструменты и оружие, крафтовые вещи. Всё это можно делать ресурсами, у которых спавнящаяся нода (при необходимости) прописана как поле.
>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 И далее по списку.
>>1000510 Спасибо за пример. Похоже, я еще больше начал задаваться вопросом - разве это не то же наследование? Просто множественное (от нескольких классов) и статическое. Звучит так, словно это более узкий юзкейс того же partial class C# Надо, видимо, штудировать статьи и другие источники не тему. Поделитесь если у кого есть
>>1000528 Основных отличий 2 Во-первых в наследованном есть жесткая структура, из которой ничего нельзя исключить, только дополнять и модифицировать. В компонентах - ее нет. Пример: может быть компонент ходьбы, может быть компонент прыжка, могут быть компоненты ходьбы и прыжка, может не быть никакого. Более того, они могут добавляться/удаляться динамически. Partial class, наследование - потребует создавать для каждой комбинации свой класс - Walker, Jumper, WalkerJumper, ... Или заводить GodClass в котором что-то отключается ифами. Тут же у тебя один класс Unit, и компоненты занимающиеся только своим - Walkable, Jumpable.
Во-вторых, в наследовании у тебя 1 имя переменной, а компонентов может быть несколько одного типа. В случае с позицией это смысла не имеет, а например с источниками урона и регенерации - имеет. Конечно в наследовании можно вместо переменной сделать массив, но тогда придется каждый раз код править с доступа к 1 переменной на доступ к элементам массива.
В-третьих, даже если ты не пользуешься неименованными безликими компонентами, а даешь им имя, прибиваешь гвоздями, получая наследование-подобную структуру (вместо foreach component of Type делаешь var aiComponent = AiComponent) то ты все еще можешь сменять реализации компонентов, не меняя класс куда они включены композицией. Т.е. у одного может быть AiDummy , у другого AiSmart. В наследовании тебе бы пришлось на каждую комбинацию все еще заводить новый класс (WalkerDummy, WalkerSmart, WalkerJumperDummy, ...)
>>1000584 Спасибо, разобрался. Полезная концепция и хорошо идет рука об руку с системой нодов, особенно если учесть, что каждый скрипт - тоже нода (что может быть не так в других движках, например)
>>998193 >проблема с гитом - неудобный GUI К слову. Понадобилось сегодня посмотреть историю кода, который я перезаписал другим. В общем git log чтобы узнать список коммитов git show HEAD~3:script/controller.gd чтобы посмотреть файл 3 коммита назад Все...
>>1000696 Вечером посмотрю видос. Этот шаблон подойдёт для имёрсива в стиле резидент ивола? С загадками и головоломками, взаимодействием с окружением и стелсом от НЁХ?
>>1000701 Я сам не пробовал. Видос минуту идет. Он там переносит стул, открывает дверцу, лутает бумажку в инвентарь, ездит на платформе, открывает проход поставив бочку на кнопку, среляет рейкастом и проджектайлом. Еще написано система квестов, хз что там. так то я 4-кой не пользуюсь
>>1000774 > Окей. Ждём до вечера по МСК. Надеюсь не утонем. Времени маловато, даже датасет толковый не собрать, не говоря уж про тренировку. Как получилось - так получилось, к следующему треду может получше сделаю...
>>1000838 Для того, чтобы это сделать, тебе нужно воспользоваться шейдерами. У шейдеров унифицированные язык, свойства и принципы. В зависимости от движка/графического API меняется лишь их представление, и то не всегда. Если у тебя есть готовый шейдер для любого другого графического API/движка - тогда остается адаптировать это решение под Godot
В общем, для начала тебе нужно узнать как это сделать в целом, а потом уже связываться с движком
>>1000850 Конечно, я попытаюсь, но ты на меня не рассчитывай - давно не генерил, очень многое забыл уже, и параллельно рабочий рендер стоит... дедлайны горят как и всегда
>>1000864 Что ж, ожидаемо, далеко я не продвинулся. Больше времени нужно, по крайней мере при моем подходе. Не хочется генерировать абы как и предавать чувство прекрасного. Надеюсь к концу следующего треда довести Лору до ума