Годнота от анона: Для приверженцев опенсорца существует возможность распрострянять проекты в незапакованном формате. Просто скачай темплейт с оф.сайта и положи экзешник/эльфешник в папку с проектом, этого достаточно. Дополнительно можешь вшить свою иконку в экзешник. После этого, запустившийся файл темплейта обнаружит рядом с собой файл project.godot и начнет грузить проект из него и из файлов, лежащих в распакованном виде в той же директории. Редактор персонажей на основе makehuman: https://github.com/Lexpartizan/Go_MakeHuman_dot Все языки в одном месте: https://vk.com/topic-70467171_35982467 Тест-бенчмарк: Веб-версия - https://govdot.herokuapp.com Вишмастер для винды - https://govdot.herokuapp.com/4Anon.rar
Да спокуха, это просто зондер-команда горелых ренпаепетушков после провала очередного рувн-контеста пришла позориться. В прошлом году позорились молнией-джемом, а щас уже у них там массовая графоманская шиза пошла. Рекомендую прочитать пост их мода, касаемый отношению к /гд https://2ch.hk/ruvn/res/85998.html#86226
Это просто какая-та дичь. Вместо того чтобы создать тред с реквестом провести им нормальный контест чел невразумительно пишет "я стою за полусотней новел"
>>617519 >канул в лету Я не сильно шарю в летосфере, но если у модера-хуесоса отобрать модерку - то он просто станет хуесосом. Ещё один яркий персонаж для ассетфлипов и промоушена фандома гд.
>>617517 > Слушаем MC Godot-а Бля, ну где же ты был, когда я искал пикчу на оп-пост? >>617520 > Пускай выражается теперь через разработку игор. Вот это двачую. Кто бы с кем не срался, главное - делать игоры!
>>617522 Годот своей простотой и доступностью привлекает шизофреников, даунов, умственно отсталых и прочий весёлый контингент. Чего только вот этот пиздец стоит - >>617517 Инвалиды с умственными отклонениями самовыражаются в интернете через вот такое своеобразное творчество. Но ты можешь просто спокойно делать игры с 20 фпс и не вариться в этом котле с поехавшими, никто не запрещает.
>>617522 Коммьюнити годота это зумерки, которые вкатились в геймдев только что. Набрали в гугле "лучший двиг" и им выдало годот, так как на каком-то сайте с рейтингом софта в списке движков годот залайкан фанбоями до первого места с большим отрывом от преследователей.
>>617627 Нет, крыса, про тебя. >>617630 > я не даун, я тестил А про multimesh_instance_get_transform_2d при этом ты не знал, и постил свои результаты под дружный смех годотеров.
>>617632 >Раньше еще находились полуразумные годотеры, признававшие, что для 3д годот не подходит, но хотя бы для 2д то норм Ты преувеличиваешь, годот можно юзать для 3д игр. Не для всех, конечно. Но если у тебя игровой процесс происходит на одном экране, нет скроллинга, не слишком много мешей - штук 10-15 на экран, то в принципе годот вполне подходит. Еще желательно не использовать rigid body физику, если уж очень надо - то не больше 10 физических объектов в сцене, а то фпс начинает просаживаться, но мы в прошлых тредах пришли к выводу, что больше 10 и не нужно для современных игр. Так что для части 3д игр годот вполне юзабелен, можно например сделать 3д тетрис, или 3д клон бомбермена с денди.
>>617647 >если у тебя игровой процесс происходит на одном экране, нет скроллинга, не слишком много мешей - штук 10-15 на экран, то в принципе годот вполне подходит репорт
Я как-то мало внимания раньше обращал на NodePath, а это между прочим охуенный класс оказывается. в редакторе указываешь ноду, которую тебе надо видеть в скрипте. Далее в скрипте заводишь переменную и в _ready инициализируешь её через get_node(node_path). Далее уже работаешь с внутренней переменной. Если создаёшь объекты динамически в игре - то просто игнорируешь экспортный NodePath и сразу прописываешь нужный инстанс внутренней переменной. Для удобства в скриптах делаешь функцию, которая чекает все переменные-ссылки на нуль и возвращает булево, тру если все содержат ссылку на инстанс или фолс, если хоть одна содержит нуль. Далее в начале каждого метода достаточно одной строчки: if !check(): return
>>617987 >>617956 > как-то вяло нынче ИТТ К сожалению, пиздобольство на дваче игру сделать не поможет. Иди игры делай. Появятся вопросы - задавай в треде.
>>618398 Но если бы тред был мертвым, он бы утонул и его снесло. Если же ты просишь снести тред, значит ты боишься что этого не произойдет. Ты боишься годотеров, боже, как же ты жалок.
>>618507 Да всем похуй, тред умер, раздел умер. У каких ребят ты спрашиваешь? Ребят больше не осталось, последние из тех, кому не было похуй на годот - уже сидят в бане неделями, дорепортились - пожинайте плоды.
Когда я хочу тишины - вы молчите в бане. Когда я хочу набампать 10 перекатов, вы траллируете меня - набивая бамплимиты ИТТ, наивно полагая, что я обижен. ТАК. КАК. Я. ХОЧУ. Я - Бог этого мира.
Не беспокойтесь о треде. Он не утонет. Потому что я, БОГ, этого пока что не хочу.
>>618520 Раньше тут сидел много народу, нормально общались, обсуждали всякие темы, срались, потом пришли обиженные и начали репортить все посты, в которых ты не вылизываешь кому-то очко и позволяешь себе не соглашаться с чьим-то мнением. Пришел модератор и всех перебанил, он чей-то приятель из элитной закрытой конфочки вниманиеблядей раздела, видимо его попросили почистить раздел от неугодных. С тех пор постинга нет, кто-то просто ушел с этой помойки, кто-то до сих пор сидит в бане, а ОП сидит в пустом ИТТ треде и уверяет всех (и видимо себя), что всё нормально и просто все ушли делать игры.
>>618521 > Пришел модератор и всех перебанил, он чей-то приятель из элитной закрытой конфочки вниманиеблядей раздела, видимо его попросили почистить раздел от неугодных. Назогач, шизик. Не нравится модерация - предъяви Абу в /d/
В скрипте объекта игрока есть одна из двух функций ниже (не обе сразу): 1) translate(V*delta) 2) move_and_slide(V, Vector3(0,1,0)) При нажатии клавиши 'W': в случае 1 все нормально - игрок перемещается в направлении взгляда, в случае 2 - тупо вдоль оси z, независимо от того, куда смотрит объект игрока. В чем прикол?
>>618929 Ну, точнее, скорее всего разница в том, что в одном случае идет перемещение по локальному вектору z, в другом по глобальному. Это я понимаю. Но я хз, как для второй функции использовать локальный вектор оси z. Уже заколебался искать решение.
>>618943 Чуть позже. Я решил вопрос через dir = to_global(Basis().z)-to_global(Vector3(0,0,0)). Твой код не шибко опрятнее, особенно если to_global(Basis().z) и to_global(Vector3(0,0,0)) распихать по переменным. Но спасибо за ответ.
>>618943 Есть другой вопрос: is_on_floor() работает для проверки прыжков через жопу. Правильно ли я сделал, заменив его на небольшой test_move вниз? Мб есть способ грамотно настроить пол?
Ребят, вопрос есть. Можно ли модели как нибудь из Source пихнуть в Godot? Если через blender делать obj,dae и т.д. то нету костей, но мне нужно именно с костями.
>>618969 > Твой код Код не мой. Я просто разместил ссылку на туториалу. >>618971 > Мб есть способ грамотно настроить пол? Есть: >>618969 > Чуть позже. Нет, сейчас. Встань и пройди по ссылке. > vel = move_and_slide(vel, Vector3(0, 1, 0), 0.05, 4, deg2rad(MAX_SLOPE_ANGLE))
>>618979 Добейся, чтобы в блендере все анимации работали. Если заработают в блендере, то заработают и при экспорте в годот. Видосрелейтед.
>>618943 >Блять, Абу! Убери вакабамарк, ретроград, бля! Это в /d/ можно поднять в треде о багофичах. Я так добился фикса стикеров, когда они отвалились, а всем как будто было похуй.
Тревожная Маркиза де Бренвилье# OP22/10/19 Втр 19:17:53№61900678
А как мне к спрайту прикрепить маску такoй фoрмы? Тупo сoздаю КoнкейвПoлайгoнШейп2д и там че тo хуе мoё какиетo сегменты, ничегo не пoлучается. В гугле не нашел, в тутoрах различных Ректангл шейпы oнли
>>619200 Основная непонятка тут в том, что есть отдельная нода для таких дел. В ней имеется удобный интерфейс для натыкивания полигона мышкой. В шейпах же предполагается, что ты будешь строить полигон кодом, потому никакого интерфейса там нет, только прямой доступ к массиву точек.
>>619200 Если тебе прям срочно надо чтобы это коллижоншейп был и при этом хочется строить мышкой, то могу предложить такой хак: 1. Делаешь CollisionPolygon2D 2. Рисуешь форму. 3. Делаешь CollisionShape2D 4. Создаёшь ей новый ConvexPolygonShape2D 5. Закидываешь туда хотя бы одну ненулевую точку, чтобы он сохранился в файл. 6. Сохраняешь сцену с двумя нодами-шейпами. 7. Закрываешь сцену в годоте. 8. Открываешь сцену в блокноте. 9. Копипастишь значение строки polygon в строку points. 10. Сохраняешь, открываешь в годоте == PROFIT! 11. Далее можно удалить CollisionPolygon2D или наполнить его новыми точками и повторить пункты для нового CollisionShape2D/ConvexPolygonShape2D
>>619284 > Я сделал тo чтo нужнo? Да, это вполне допустимо. >>619286 > кoнкейв Вообще мутная тема. Значок не отражает её сути. Мне пока конвексов хватает.
>>619290 >Вообще мутная тема. Значок не отражает её сути
Bот! А я смотрю - вогнутая фигура, значит наверное то что мне надо. А оказывается нет, там какая та фигура из фигур пoлучается. А в конвекс по точкам, прям как в констракте с которого перешел. Спасибо пацантрэ
>>619293 Маска, если чисто философски, это любой слой, наложенный поверх предыдущего. Соответственно, маска коллизии это коллижоншейп. Что за шейдеры, поподробнее?
>>617485 (OP) Бля, как устранять подрагивания при движении мышкой? FP-Шутан. У меня нихуя не получается от них избавиться. А в коммерческих играх такого подрагивания нет. В чём секрет?
>>620004 Ну прост в настройках проекта во вкладке Display-Window есть опция поставить галочку always on top, видимо функционал есть, вот только мне надо чтобы always on top было не всегда, а когда выполняется определённое условие в игре.
>>620258 Не передёргивай, онанист проклятый. Автогенерация сеттеров-геттеров и прочего бойлерплейта была уже в 90х годах в таких IDE как Delphi и разумеется, есть сейчас в современных IDE. Хуан, ЗДЕЛОЙ!!
Зацените, кокое я дерево вырастил. Главный переключатель состоит из трёх состояний (idle, move, dead) К idle подключён единственный блендпейс из четырёх анимаций бездействия. К dead подключена простая анимация погибания (в дальнейшем можно туда тоже блендспейс ебануть). К move подключены включатель (action_start) и переключатель (action). К переключателю подключены блендспейсы действия (стрелять из лука, кастовать спелл, тыкать копьём, махать ножиком). После этого выход переключателя проходит через одиночный включатель, к которому дополнительно подключён блендспейс ходьбы. Логика токова: Когда мы просто ходим, работает анимация move, если мы совершаем действие, то оно одноразово проигрывается. Если мы прекращаем двигаться, включается простой. Если перса убивают, включается анимация помирания. Прыжков и падений нет, потому что это топдаун.
>>620453 Удваиваю этого острослова. Если человек не может найти курсы, то ему нужно учиться искать. >>620376 Хорошо, подловил. Дело в том, что я использую спрайтщит LPC в котором только этот набор анимаций.
>>620562 Вообще-то он постил. Да пусть постит, интересно, и картинка под конец неплохая получается (хотя у него пробы для интерьера и экстерьера разные, говно полное, в крайенжине уже лет десять это решено без ебалы и производительность лучше в реалтайме чем у гуана с запеканием).
Котаны, объясните мне плес, как делать норм терраин опенворлд гаемс? ну ок, я сделал меш лендскейпа, но онж не натурален, один плейн ничего не решает, как делать чтобы прям километры были и норм было все? соединять плейны в гриде? как вообще большие левелы делать?
Можно как-то сделать, чтобы у SpinBox-а при получении фокуса с таба/стрелочек становилось поле ввода активным? Почему-то когда он получает фокус от других контролов (в Focus соседи прописаны), с ним ничего нельзя сделать вообще. Годот 3.11
Сделал в годоте специфический таймер для одной браузерной игры, экспортировал проект, всё работает, вот только вес экзешника 27 Мб. Ну полный пипец, там всего пару иконок и несколько строчек кода. На пеке запускается, на ноутбуке нет, типа ошибка вывода 3Д, лол. Думаю как отрубить ненужные функции, чтобы экспортировать только 2д. Люди пишут что 3д можно отрубить для своих проектов, но походу там нужно специально компилировать сам Годот под 2д нужды. Есть ли где урезанный годот чисто под 2д, сам я вряд ли смогу скомпилировать как надо.
>>621010 > вес экзешника 27 Мб. В 2к20 для пк это ничто. > На пеке запускается, на ноутбуке нет, типа ошибка вывода 3Д, лол. Это плохо, попробуй переключить в gles2.
>>621071 Пишут, что при кастомном билде годота можно урезать конечный файл чуть ли не в половину. Попытался скомпилить годот для 2д и ожидаемо соснул, кастомная версия не запускается, отсутствует .pck файл. Прочитал что такая херня получается когда прописываешь в scons tools=no но без этого параметра модули не отключить. Ну хз, ладно, буду стоковым пользоваться.
>>621108 Да это нужно было для одной браузерки, уже неактуально, хэллоувинский ивент закончился, просто охуел с размера таймера. Просто таймер со звуковым сигналом оповещающий о спавне тыкв. Проще было на js реализовать, но хотелось в годоте поковыряться. Кликер я тоже хотел сделать, но не успел.
>>621154 Ну ты дал стране угля. Участвовать в конкурсах НА ВРЕМЯ, не обладая навыками в выбранном инструменте. > Проще было на js реализовать И делал бы на жс, а в годоте бы практиковался в стол. Кто тебя умным назовёт?
По существу вопроса: Изучаешь файл конфига сконса. Понимаешь, что делает опция сконс=но, проделываешь аналогичные тебе операции. (Забегая наперёд, скажу, опция сконс=но делает примерно такое: модуль1 = выкл, модуль2 = выкл, модуль3 = выкл) (И ещё раз забегая наперёд скажу, в конфиге есть и опция триде=но, РТФМ, БИЧ) Для браузерки, я так понял, ты собираешь выходной файл? Это, я так понял, будет файл васм, да? Ну и двачую этого >>621156 пцк - это и есть твоя игра. Это пластинка, а файл васм - её граммофон. Если ты хочешь прям ваще в один файл упаковать всё, то тут либо сторонние инструменты юзать (что-то типо васм декомпилятора, если есть, а если найду?), либо кодить на плюсах свои модули, прописывать их в конфиг сконса и конпелировать движок вместе с твоими модулями. Но тут возникает другой вполне резонный вопрос, если ты можешь в плюсы, без редактора, зачем тебе вообще ИГРОВОЙ движок? Возьми СДЛ/СФМЛ с БУЛЛЕТОМ и ебашь по хардкору с подливой под себя. >>620997 ХЗ, что ты там нахуевертил. Показывай говнокод. УМВР.
>>617485 (OP) Едрить колотить! 300 строк кода и ещё и половины работы не сделано: Раса Внешность, пол социальный конструкт, лицо, нос, уши, борода, тапки, перчатки. А еще остались плащи, платья, штаны, аксессуары.
и еще, есть какой-то нормальный способ получить проект для студии? то что там по гайду - это хрень. например нельзя сделать плеер, через студию компилируется только редактор. нельзя по нормальному дебажить, потому что это не студийный проект а тупо скрипт для make
>>621728 Так ты поменяй конфигурацию, га какой нибудь release_debug, где в скрипте не будет tools=yes тогда и будет игра а не редактор. Про отладку сейчас не поясню. Гуглится что у людей получалось подключиться.
>>621767 не, я хочу работать с кодом из студии. например ставить бряки в нужных мне местах. то что предлагает разраб - не дает этого - потому что там проект - это просто makefile, а не vsporj
>>621793 Один хуй нужны дебаг-символы, чтобы студия показывала анону, как он хочет: строку исходника с исключением и брекпоинты. А дебаг-символы, насколько я знаю, Хуан не распространяет, следовательно, нужно собирать бинарник самому.
>>621799 Ты мог бы накидать этот колхоз за то же время, пока писал свой пост с возражениями. Ведь это нужно сделать всего один раз, после чего у тебя уже будет свой собственный вс-проджект.
>>621800 Так онон как я понял и так собирает сам. Просто он собирает редактор с флагом tools=yes. Хотя имхо даже редактор можно дебажить, если в параметрах запуска указать какой то ключ, запускать сразу проект..
>>621809 он генерирует не вс проект, а говняный мейкфайл с которым ну вот вообще никак не поработать, а вся студия сводится к подсветке синтаксиса уровня notepad++ и чуток работающего intellisense (который больше пердит не понимая что за код и куда ведет, так как не умеет в конфиг этого мейкфайла)
бряка не цепляется. я не могу пошагово пройти по коду. потому что это не проект, а мейкфайл. Да, дебагер можно там подцепить через жопу процессы - но это всё говно
>>621831 ну я же и пишу что через опу там всё(иногда, оно все таки доходит до бряк, и даже дает пошагово пройтись. а иногда отваливается. или отваливается в процессе). ну тяжело студии работать с makefile (посмотри свойства проекта)
>>621832 > (посмотри свойства проекта) Так, падажжи. А если всё говно оттуда вычистить и добавить туда команды сборки майковскими сборщиками? Например, создать пустой проект и скопировать оттуда? Ща попробую.
а вообще я вот этого не понимаю. На дворе 2020 год, а серьезные программисты код пишут в блокноте и дебажат на листочке бумаги и им это всё не нужно...
иначе я просто не понимаю любви в мире С++ делать makefile... И дело ведь не в сложном пайплане из всяких тестов и сборок под стопятсотплатформ - все это делается через студию
>1107 ошибки В общем, на этом я умываю руки. Хуан явно пользуется НЕ студией, а какими-то линуксовыми инструментами. >>621843 > код пишут в блокноте Это вряд ли. Линуксовые гнусь-иде дают пасасать майковской студии. Вон посмотри видосы того же Пети-сканера, которые не про годот, а про жс. Он там в каких-то опиздохуительных идешках работает.
>>621850 Тебе просто - мне сложно. Да и цели у меня нет собирать движок в дебаг-режиме из под студии с поддержкой брекпоинтов. Поэтому я дальнейшие эксперименты дропнул. Этому анону если надо, пусть красноглазит сам >>621826 Я умываю руки.
>>622111 Из-за фильтрации текстур, включенной по умолчанию при импорте. Самое простое решение: переимпортировать пикчу для тайлмапа с пресетом "2D Pixel". Более сложные решения (если ты ненавидишь пиксельную графику) - подгонять размеры отфильтрованных тайлов, чтобы они немного пересекались и швы заполнялись.
>>622305 >тред обсуждения движка >за обсуждение движка банят и удаляют посты На самом деле непонятно, зачем этот тред и на какие темы в нём можно общаться.
>>622303 >(Автор этого поста был предупрежден.) А модер то кажется действительно умом тронулся.
>>622308 >Тред, в котором пользователи движка задают вопросы по движку и получают подсказки как и что сделать А потом моча эти подсказки удаляет и всех банит.
Вам самим не противно в этом треде находится? Над вами даже потешаться уже не очень хочется. Просто уже грустно от этого.
>>622314 А что ты в фалькотред не идёшь и не спрашиваешь, "а чего вы не объединились и не сделали Кирандию"? На фалькоэнжине как раз игорей нет.
>Над вами даже потешаться уже не очень хочется. Просто уже грустно от этого. Ути-пути. Животному не дают вмешивать в разговор годотоспод, животное выгнали в загон для сранья. Животному теперь грустно.
>>622316 Вы попали в неловкую ситуацию, когда бешеная собака стала лаять и на своих хозяев. Вы теперь сами не можете нормально постить в треде, дрожите что моча и вас укусит за жопу. Ну что, дожаловались? Разбудили кракена? Не нравилось свободное общение? Ну теперь сидите в душном цифровом гулаге, где пернуть страшно.
>>622878 Короче например хочу передвинуть свой копрокуб на 200 пикселей со скоростью 10пикселей/секунду, и чтобы он потом медленно замедлился перед остановкой. Как ето сделать?
Допустим у меня есть сцена Car, инстанс которой есть внутри сцены World. Я хочу скриптом внутри сцены Car (а эта сцена инстансом находится в сцене world) менять что-то в сцене World (например текст и т.д.). Как это возможно реализовать? нибейте, просто не привык к нодам годота, а в доках что-то не нашел подобной темы
>>622924 get_parent() как минимум, но бывают и другие способы. Пока что тебе и этого хватит. >>622948 Это пенсия, старик. Это матушка-земля тебя зовёт уже.
>>622948 > опыт в кодинге уже 4 года, но на совершенно другом стеке Опыт в кодинге 12 лет. Джва года назад решил вкатываться в игоры. Обнаружил, что во всех движках одинаковый "стек" - мейнлуп с коллбэками. С лёгкостью перекатываюсь между движками, не испытывая проблем.
>>622961 Какой нахуй мэйнлуп с колбеками, ты вообще понимаешь о чем речь? Давай назовем это паттерном хотя бы. Стек это языки+базы+сторонние тулзы которые ты используешь на проекте. Везде фантазеры, ору нахуй.
>Опыт в кодинге 12 лет. А, ну тогда у меня все 20, если считать когда впервые на паскале в школе хэловрот высрал, ебать ты ньюфаня.
>>622965 Извини пожалуйста, я не хотел с ноги врываться на самом деле. Просто очень отвык уже чувствовать себя беспомощным в иде и испытатьвать ступор от: "хуй пойми куда тут тыкать что бы достичь желаемово", вот и прорвало на поплакаться. На самом деле надеюсь преодолеть лень, разобрать пару тьюториалов во внерабочее время пятница и суббота уже проебана, осталось ток завтра, и поселиться у вас тут надолго с мини-проектами для тренировок.
>>623060 То есть, у тебя по обычным коллайдерам ездит, а по CSG с включённой коллизией - нет? Я правильно понял? Ну показывай. Что там у тебя нахуеверчено. Скринами, видосами показывай.
>>623075 Короче включил у csg коллизии, но там надо ещё отдельно staticbody и collisionshape добавить, без этого не работало (хотя на ютубе у некоторых и так работало)
>>623090 > импортировать целую сцену из блендера Про суффиксы знаешь? Если добавить к имени блендер-меша суффикс -convcol то он импортнётся в годот, как выпуклый коллижоншейп (convex). Таким образом, тебе не придётся дополнительно настраивать коллайдеры в годоте, всё сможешь сделать в блендере. В сцене для каждой поверхности накидываешь дополнительный меш, называешь его, например Моя-ваза-2-convcol и вуаля - при импорте у тебя объект с коллизией автоматически подхватывается. Даже есть блендер-плагин, который делает из одного вогнутого меша набор выпуклых https://github.com/kmammou/v-hacd по ссылке ниже есть скрины, насколько это удобно.
>>623171 От папки res:// ожидается доступ только на чтение в системе потребителя (игрока). От папки user:// ожидается чтение и запись. Соответственно, изменяемые данные (сейвы, конфиги) тебе рекомендуется хранить во второй.
>>623183 >>623171 Кроме того, папка res:// это функциональный аналог виртуальной папки программы ModOrganizer, широко известной в узких кругах. Если тебе это о чем-то говорит, то дальнейшие объяснения излишни. Если же нет, то если вкратце, при запуске игры существует возможность подключать несколько файлов архивов, причём более поздние при загрузке заменяют файлы с совпадающими именами в конечном результате. Это даёт гибкий механизм для патчинга, моддинга и довнлоадконтентинга.
>>623193 Fbx пока что только в бета-версии реализован. Оптимальный вариант сейчас GLTF. Но в будущем конечно даже я на fbx перекачусь, ибо негласный стандарт. Если нужно прямо сейчас, то пока что только конвертировать. Насчёт какой формат лучше, это вопрос субьективный - удобства и привычки, ибо все современные форматы поддерживают и анимации, и материалы.
>>617485 (OP) Реализация генератора персонажей из LPC идёт полным ходом. Уже даже есть, чем похвастаться. Принимаю советы и пожелания по интерфейсу. Пока что интерфейс через свойства (пик 4). Скорее всего по окончании работ буду регаться на ассетлибе и выкладывать ассет в паблик.
>>625059 Плюсы: опен сорс - не надо никаких разрешений и процентов. Самое живое комьюнити опен сорс движков сегодня. Довольно удобный редактор. Есть 3д. Много туториалов. Поддержка кучи платформ (но нет консолей). Продолжает развиваться и оптимизироваться. Минусы: мало ассетов, какую нибудь воду с волнами и плавучестью придется писать самому. Не очень быстрый, но с простой игрой скорее всего ты не упрешься в ограничения. Спорная архитектура, сложно модифицировать. Развивается медленно, серьезные улучшения вводятся за год. Языки: питоноподобный свой язык. Можно писать прямо на c++. Сейчас добавляют c#, пока не все платформы. Есть биндинги на разные языки, типа. Rust, Haskell и т.д.
>>625213 Регулярно обновляет, ибо я им пользуюсь. >>625206 Я не о том, что их надо совмещать, а о том, что раз конпелировать движок с модулями, то можно сразу и этот добавить. >>625213 Алсо, этот модуль в хайтмаповом режиме тоже работает, но очевидно быстрее.
Пикча 1: простая камера внутри персонажа (следите за углом стены). Видос 2: интерполяц.камера в сцене (следите за пушкой и тенью).
Трисётся триде сцена, когда я перемещаюсь по ней KinematicBody'ей при помощи move_and_slide. Трисётся мой говнокод, трисутся скачанные ассеты, трисутся скачанные демки. Вопрос. Это у меня пека хуёвый или одно из двух? Может там где-то нужно какую-то галку отметить?
Всем привет! Как бросить объект в триде? Вот я скажем, взял в руки бомбу риджидбоди, задал ей режим KINEMATIC, чтобы не тревожила физический движок, выставил collision_mask исключающий персонажа, чтобы не толкала, если этого не сделать, получается красивый, но нежелательный эффект: если засунуть бомбу в свою капсулу коллизии, начинаешь взлетать и летишь, летишь, летишь. И вот я наконец решил бросить бомбу во вражину. Я возвращаю ей режим RIGID, возвращаю маску коллизии и она просто падает вниз, как бы я не замахивался. Я конечно, сразу подумал, что надо вычислять вектор, куда ей бросать и задавать ей силу броска через add_force, но она продолжает просто падать вниз. ЧЯДНТ?
>>625973 И ещё проблема. Когда объект закреплён у персонажа, на него не действуют коллизии (маска соответствует стенам) но сквозь стены он проходит. Я уже 100% уверен, что я делаю это неправильно. Но правильные способы не гуглятся.
>>626010 > минимальный проект Берёшь пустой проект. Качаешь туда ассет FP контроллера ( https://github.com/aarroz/simplefps ). Кидаешь на сцену персонажа, пару статиков на пол и стены, пару кубов - риджид боди. В сцене персонажа добавляешь рейкаст из головы вперед на 3 метра. В скрипте персонажа пишешь пик 1.
>>626262 > Причины рефакторинга > > Этот рефакторинг может помочь, если у вас в коде есть условные операторы, которые выполняют различную работу, в зависимости от: > > класса объекта или интерфейса, который он реализует; Нет. > значения какого-то из полей объекта; Нет. > результата вызова одного из методов объекта. Нет.
На скриншоте код тестовой кнопки, которая переключает вид ифами, в зависимости от пола, да, но в реальный код это не пойдёт. Будет внутренний генератор, выдающий персонажа и жсон-файл с его характеристиками, которые без условных операторов будут грузиться в объекты-нпц.
>>625165 Вот так работает если сделать по туториалу. Не работает с гридмапом по понятной причине, но думаю несложно прикрутить будет по принципу камеры в думе.
>>626888 >1993 >молодые шутливые программисты из id пишут движок, который автоматом собирает уровень в бинарное дерево и использует его для куллинга, работая на 4 мегабайтах оперативки >2020 >для использования куллинга в годоте нужен сторонний модуль, который заставляет тебя РУКАМИ размечать комнаты и РУКАМИ рисовать порталы Скорее так.
>>626918 Такие вещи бесплатно не раздают. Ну, до 2001-го точно не раздавали. Даже ты если придумаешь охуенно крутой алгоритм, я уверен, что ты не побежишь исходники на гитхаб выкладывать.
>>626963 Лично я даже что-то просто неплохое не буду выкладывать, никогда не понимал это желание публиковать исходники. Сделал что-то хорошее - продавай, плохое - спрячь и не позорься. Единственное исключение, если бесплатность является частью модели монетизации, как у того же блендера.
Я приостанавливаю выполнение функции on_btn_pressed с помощью yield и таймера (допустим на десять секунд). Но цикл for, в котором я остановил функцию (который в первую очередь находится внутри on_btn_pressed), продолжает считаться до бесконечности в этом время. Что за хрень?
>>627109 >>627117 Лапшу потом уберу, пока лишь бы заработало, так что за код извени адин ден в гадоти Попробовал сделать так, теперь лучше, но временные промежутки между выполнением блоков всё равно не идеальные. В идеале хочу, чтобы после выполнения одного moveforward/back сразу выполнялся другой
>>627118 Чот внатуре какая-то лапша. > В идеале хочу, чтобы после выполнения одного moveforward/back сразу выполнялся другой Вот с этого и надо было начинать: "Я делаю задачанейм, для этого я сделал такой код, он работает не так, как мне надо". Через стейт мащин делай.
>>627121 Как так сделать? Пробовал с помощью yield останавливать функцию btnpressed, посылая сигнал в функцию moveforward, и когда выполнение в moveforward заканчивается, посылать обратный сигнал на завершение yield. Но в итоге что-то идёт не так, btnpressed не дожидается выполнения другого блока, а идёт дальше; и цикл внутри btnpressed становится бесконечным. Куда копать и как сделать лучше?
Как в годоте заниматься режиссурой? Допустим, мне надо сделать затухание одной сцены и плавное появление другой или запилить катсцену, где объекты будут перемещаться из одной точки в другую и проигрываться звуки в конкретные моменты времени.
>>627251 Через анимации. Кидаешь animation player в сцену, и можешь анимировать любые проперти у любых нод. Но ты заебешься это делать, я бы тебе рассказал, какой аниматор неудобный, но тут за это банят
>>627251 > сделать затухание одной сцены и плавное появление другой Можно через шейдер либо анимацией, изменять альфу или например свет мирового окружения. > катсцену, где объекты будут перемещаться из одной точки в другую Кинематикбоди, навмеши либо скрипты.
>>627251 > сделать затухание одной сцены и плавное появление другой В камере плавно затемняешь светофильтр, затем загружаешь новую сцену и в камере плавно засветляешь светофильтр. При этом камера является синглтоном. > запилить катсцену, где объекты будут перемещаться из одной точки в другую и проигрываться звуки в конкретные моменты времени анимейшонплеер >>627256 Если тебя всё время банят, значит тебе здесь не рады. Уйди отсюда и больше не приходи.
>>627189 >>627121 >>627118 >>627103 >>627117 >>627282 Суть такова: на Вики нихуя не нашел по этому поводу, но нашел ответ на годот qa и таки запилил подобие собственной стейтмашины. Оказывается тут даже сигналы не нужно посылать, тупо вставляешь функцию в елду и ждёшь ответ о завершении функции. Всё! yield(puknut_v_thread(),'completed') А сигнал completed посылается автоматом при завершении функции puknut_v_thread(), даже свои сигналы не нужны. Я хочу, чтобы это было написано в Вике, вместо этого там ненужная поеботина про сигналы.
Посаны, кто как делает присед? Я начал делать и столкнулся с фундаментальным ограничением. Колиженшейпы нельзя двигать. При попытке менять длину капсулы, она проваливается под пол. Стало быть, я сделал два шейпа: шар на уровне ног и капсула сверху. При нажатии ктрл, капсула выключается, голова с камерой перемещается ниже, на уровень ног. При отжатии включается капсула и камера/голова возвращается на свое место. Теперь появилась вторая проблема. Если отжать контрол в низком проходе (ползанье по вентиляции, класека), включившаяся капсула моментально выталкивается из прохода наружу. Мне что, делать рейкасты, чтобы определять высоту потолка над головой и ширину стен по бокам? Или я изобретаю велосипед, и есть функционал искаропки?
Анон, подскажи какой-нибудь гайд для 2Д платформеров, как делать хватание за края платформ (типа как в метроиде). Я чет нигде таких не могу найти. Я вроде бы сам свелосипедил (см. гифрелейтед). Кидаю 2 рейкаста. И по условию, если (игрок касается стены && горизонтальный рейкаст == false && вертикальный рейкаст == true) выполняется, то перевожу игрока в стейт "висеть". Вроде бы все работает как надо, но может есть какие-нибудь еще способы лучше и правильнее?
>>628575 Я нихуя в этом не разбираюсь, но на ум приходят два варианта.
1) Кидать рейкасты во все стороны
или
2) Рисовать на карте, там где узкие проходы, невидимые области, попадая в которые игра знает, что это узкий проход и не дает игроку встать, пока он не покинет эту зону.
>>628575 В нормальных играх это делается путем рисования ручками на карте всех узких проходов, где нельзя встать. Всё остальное - васянство и нагромождение костылей, которые рано или поздно сломаются.
>>628866 Как мне нравится этот код. Это прямо гопнический код с того мема "ПАДАЖЖИ ЁБАНА". Вы только вглядитесь в эти строки. Если кроучин есть, то "слыш, давай сюда". Если, кроучина нет, код как бы переспрашивает у анкроучина "а если найду?" и если действительно находит, то "слыш, давай сюда" если же не находит, то "свободен до следующего тика".
Как сделать уборку пшеницы? Например, поле состоит из тысячи квадратов, каждый из которых триггерится при столкновении с трактором. Можно ли все это дело оптимизировать батчингом?
>>629030 Как трактор подъезжает к полю - он подъезжает к одному из чанков и эта чанк из одного прямоугольника превращается в набор маленьких прямоугольников, заполняющих этот чанк.
>>629487 Нет. Сначала делаешь экземпляр всей упакованной сцены, потом можешь из него вытянуть конкретный чайлд и поменять ему родителя.
Однако, ничто не мешает тебе сделать отдельной сценой интересующую тебя ноду и грузить её отдельно. Например, в сцену грузится упакованная сцена "бомба", в составе которой есть нода "огонь". Нода огонь это тоже сцена, и если она понадобится тебе отдельно, то ты просто грузишь упакованную сцену "огонь". Мысли нодами.
>>629502 > похоже сам разобрался Всё равно пости решение в тред. Для ньюфагов. Для архива. Нужно что-то вроде такого: old_parent.call_deferred("remove_child", node) new_parent.call_deferred("add_child", node) Но надо проверять. Возможно ещё set_owner придётся дёргать.
>>629504 На основе такого принципа теоретически можно организовать автоподгрузку открытого мира убираем ноду из сцены, а она остаётся в памяти. Формируем пул из этих нод. Если игрок АТАШОЛ достаточно далеко, ноды выгружаются из памяти. Если подошёл близко - снова добавляются в дерево сцены. на дистанции N метров от игрока ноды понемногу загружаются, чекая нагрузку и не перегружая систему. Ммм.... Писечка. Надо тестить.
Я правильно понимаю, что _ready() запускается только после того, как были созданы все братья, потомки, и потомки братьев узла? Можно в нем прописывать имена племянников узла?
>>629691 Правильно. А ещё есть сладкий деревенский ONREADY. С его помощью можешь объявлять сватьев и братьев без функции? главной области скрипта (или как там). Например: onready my_var = $path/to/node или onready my_var = get_node("path/to/node") Это объявление сработает перед вызовом _ready() но после того, как скрипт полностью активируется, объявится, наготовится, так что эти переменные там тоже будут видны.
>>629758 Был ещё ублюдок нико-дев, но слился недавно. И он не совсем уроки делал просто девлог. Есть ещё ублюдок айрвикар, но он просто всякие фишки показывает, да еще на версии 2. Был ещё некий ШЕМ, но он слился практически мгновенно. Ещё ублюдок сканер пиарил потаскуху вебгёрл, но она выкладывает очень вяло, вангую что уже слилась по тихому. В общем, русскоязычный рыночек открыт. Я уже даже сам подумываю а не вкотиться ли?
>>629761 Хейтеров бояться - в хайп не ходить. >>629762 То. Создание объекта из сохраненного в файл состояния. Файл tscn - это таковое и есть. Полностью описанный объект Node с установленными свойствами.
>>629769 Задача - максимально подробно изучить тему. Насчет сериализаци - пони. Но не очень пони как (а самое главное зачем?) на практике реализовать подобное. Это же дополнительная ебля на пустом месте, а я наоборот хотел как проще.
И еще, если я более или менее въехал в суть этого термина - сериализация позволяет упакованным сценам работать быстрее? То-бишь лучше не ебать мозги, и делать как в туториалах?
>>629772 Я отвечал на этот вопрос: >>629756 > Экземпляры могут быть только у упакованной сцены? Других вариантов расплодить ноду не существует? Поэтому такой ответ. Экземпляры ты можешь делать классическим способом: var new_obj = Node.new() Этот код создаст в памяти новый экземпляр объекта типа (класса) Node. Что делать с ним дальше - решать тебе. >>629772 > сериализация позволяет упакованным сценам работать быстрее? Сериализация позволяет упаковывать объекты для передачи в стороннюю среду: файл на диске, абонент по сети. Насчёт скорости ты понял не совсем верно. Скорее всего имелось ввиду что тебе не нужно изобретать свою сериализацию, а БЫСТРО использовать имеющуюся. > лучше не ебать мозги, и делать как в туториалах? На начальном этапе да. Если ты новичок в программировании вообще, советую параллельно смотреть/читать материалы по общему программированию. Когда ты освоишься, ты увидишь, что туториалы дают неоптимальные для профессионала, но понятные для новичка методики.
>>629774 >Насчёт скорости ты понял не совсем верно. Скорее всего имелось ввиду что тебе не нужно изобретать свою сериализацию, а БЫСТРО использовать имеющуюся.
Не, я в том плане, что последовательность битов должна выполняться побыстрее в плане производительности? Тут же вроде питоноподобный язык, и все такое...
>>629778 > последовательность битов должна выполняться побыстрее в плане производительности? Сейчас пекарни такие, что выигрыш от байтоёбства будет виден только под микроскопом. Пруф ми вронг.
>>629962 Когда надо чтобы метод вызвался не сразу, а когда объект с ним связанный не будет никем занят. Иначе могут быть случаи, когда вызываешь - и хуяк - крош на десктоп.
>>629974 Здравия желаю, капитан! Я, собственно, спрашиваю, как определить, когда это действительно необходимо, а когда можно пренебречь. Я просто пока еще не до конца въехал в то, каким образом различные ноды и сцены ведут себя в течение программы. Где бы про это поподробнее прочитать?
>>629985 > объясни тогда хотя-бы логику применения этой функции вот здесь Удаление чайлда и добавление в другого парента происходят в одном фрейме. Это может вызывать падения, потому что добавляемый чайлд ещё не удалился из одной ветви дерева, а его уже пихают в другую ветвь. Причём происходить это может рандомно. Потому и отложенный вызов.
>>629962 Из того что я читал, делал такие выводы: движок каждый кадр выполняет всем нодам process, physics process и input, деферред выполняется после этого всего, перед следующим кадром (т.е. между кадрами). Таким образом туда надо слать все, что может повлиять на непосредственно используемое. Примеры: переключать сцены (ресурсы сцены используются). Менять формы коллижнов (могут быть в процессе сравнения в физическом движке) Подозреваю что добавление-удаление чайлдов в ready тоже может пошатать. Также если ты запускаешь отдельный поток то из него надо взаимодействовать через деферред.
>>629987 Воооот! Спасибо тебе анон! Я это и реквестил. >>629986 >Причём происходить это может рандомно. Ясно. Я просто делал в качестве эксперимента без отложенного вызова и все работало.
>>629988 > и все работало Оно будет работать. А потом внезапно на момент удаления чайлда, чайлд окажется заблокирован собственным коллбэком и его удаление отложится до конца фрейма. Как верно написал анон выше. Тут-то ошибка и выскочит. Причем не у тебя, а у твоих игроков и они тебе телефоны на саппорте оборвут. :)
>>629989 >Причем не у тебя, а у твоих игроков и они тебе телефоны на саппорте оборвут. :) Вот потому и хочу въехать в эту функцию. Т.к. это очень коварная херь.
Вообще, хорошо бы нашелся какой-нибудь Антон-альтруист, который бы запили по этой теме подробный гайд "от" и "до", со всеми нюансами, чтобы раз и навсегда закрыть тему. Но спасибо что хоть дали направление в котором думать, когда используешь эту функцию. Лучше чем ничего.
В годоти можно взять цветастый или бесцветный спрайт и изменить его цвет, отредактировав какой-нибудь параметр импорта или типа того? В игре нужно, условно, много кирпичных стен, но делать кирпичи везде красными - скучно, а а делать много кирпичей разных цветов - тупо.
>>630027 Миллионом способов. Выбирай какой тебе по душе. 1. При столкновении физических объектов каждый из них получает инфу о соседнем объекте. Если игрок и говно — физические, то говно просто напрямую открывает у игрока поле "кем является" и вписывает туда "говноед". 2. Если это просто спрайты, можно реализовать велосипедистую проверку коллизий через ААББ. 3. Можно передвигаться по клеточкам и сам факт перехода в клеточку с говном автоматически обмазывает. 4. Сообщения. Игрок куда-то вступил, посылает сообщение "игрок вступил" в менеджер сообщений. Говно подписано на сообщения типа "вступление". В сообщении нужно указать какую-либо идентифицирующую инфу, например координаты. Говно чекает координаты в сообщении и если они совпадают со своими, посылает сообщение "атака говном". Игрок подписан на сообщения типа "атака" и получив сообщение "атака говном", считает возможность увернуться от атаки. Но уворот не работает, потому что он только что вступил куда-то , что вызвало кулдаун уворота. В итоге, игрок признаёт, что он вступил в говно. И т.д. и т.п.
>>630053 Можно. Смысл в такой компоновке найти можно. Трансформ игрока остаётся в центре мира, в то время, пока трансформ тела игрока перемещается по миру. В любой момент ты можешь применить некую глобальную трансформацию. Например повернуть на одинаковый угол всех персонажей внутри сферической локации — полости вселенной наоборот с толщеходами. Но вообще, смысл ещё может быть в том, чтобы хранить общий скрипт в такой корневой ноде, который будет иметь естественный доступ ко всем нодам-детям. И ты сможешь без задней мысли менять функционал игрока. Например, у игрока два тела: человек и камера-дрон, по клавише ты переключаешься между ними.
>>630053 Ты ещё не видел как люди корневую ноду просто 2д координатой делают. Это как раз то, что годот поощеряет, вроде как, челик выше всё правильно написал.
Бля, ещё бы нормальное ООП завезли, а не это говно.
Но вообще, нахуй ООП в играх? В играх лучше ЕЦС (все игровые данные - это таблицы сериализованных на диске данных, обращение к свойству игровой сущности поднимает с диска виртуальный столбец таблицы (поле) со всеми строками (записями) и ты можешь быстро пробежаться по одному полю сотпицоти объектов).
>>630047 Сделал через ареа2д проверку касания с говном и дебагг в виде слова jopa. Слово jopa выводиться при касании с говном, но при попытке сделать get_node("kakashka").set_visible(true): годот шлёт меня нахуй, типа такого нода нет. Нод kakashka - это спрайт в сцене с ареа2д.
>>617485 (OP) Господа, а можно ли как-то в 2д проекте сделать тени у объектов короткими? Здесь у меня справа сверху источник света (обычный Light2D) и на объекты повешены LightOccluder2D. Хочется чтобы тени были не бесконечно длинными, а примерно как у нарисованных сверху бочек. В голову приходят разве что шейдеры и маски, но пилить такое для каждого объекта я замучаюсь, хотелось бы найти какое-то универсальное решение.
>>630206 Я на этом проекте занимаюсь только всякими свистелками и перделками (свет, эффекты, анимации и т.д.), весь основной код пишет другой программист, и он не хочет добавлять в игру 3Д ни в каком виде. Поэтому я и вынужден искать решение в рамках 2Д.
>>630211 >Попробуй два источника света Пробовал, из-за того что у нас много объектов то там начинается черти что, появляются всякие лишние тени и т.д. >нашёл вот это Ага, я тоже уже нагуглил этот тред, там много болтовни вокруг да около, но в итоге ничего дельного не посоветовали человеку
У меня умственная неполноценность или в документации Годота и вправду всё непонятно написано? Инглиш около школьного уровня, свободно смотрю английские видоски и гайды на ютубе.
как импортить в аниматедсприт анимацию? если тупо перетащить все файлы, то они добавляются в рандомные места таймлайна. Не тратить же время на пересортировку кадров?
Посоны, как запустить функцию по фрейму AnimatedSprite? Я пробовал в физикс_процецц это: if animate.get_frame() == 5: myfunc()
На первый взгляд все работает нормально, но когда игра слегка перегружена с объектом вообще какая то дичь начинает твориться, а потом он просто замертво встает. Похоже я что то не так делаю, как правильно?
Начал недавно годот, понравилось после C+OpenGL Но вопрос, а удобно ли на нём делать какие-нибудь сложные игры с процедурной генерацией мира типа клона майнкрафта или рогалика (лол) или для этого лучше использовать по старинке обычные ЯП? А что насчёт кастомных форматов файлов? Могу ли я сам сгенерить файл ресурсов и загружать их через мой код? Можно ли таким образом и DLC/моды создавать? Или свои форматы сейвов. Или свой свпособ обращения к серверу через сокеты? Ещё я слышал, что можно написать свой модуль для годота, но чтобы его использовать, придётся весь годот перекомпилить?
>>631564 > Но вопрос, а удобно ли на нём делать какие-нибудь сложные игры с процедурной генерацией мира типа клона майнкрафта или рогалика (лол) или для этого лучше использовать по старинке обычные ЯП? Это возможно https://youtube.com/watch?v=12pQxYm2MOY И рогалики тоже, есть видеотуториалы, есть ассеты.
> А что насчёт кастомных форматов файлов? Могу ли я сам сгенерить файл ресурсов и загружать их через мой код? Да возможно, я часто генерю текстовые файлы ресурсов если много копипаста объектов. > Можно ли таким образом и DLC/моды создавать? Можно, где то в треде писали, как сделать > Или свой свпособ обращения к серверу через сокеты? Можно. > Ещё я слышал, что можно написать свой модуль для годота, но чтобы его использовать, придётся весь годот перекомпилить? Придется. Это не очень сложно, один раз разобраться и потом все аатоматически.
>>631564 А моды у нас как в Скайриме с мод-органайзером. При запуске игры движок опрашивает прописанный в конфигурации главный файл архива. Аналог esm. Далее имеется функция, с помощью которой ты можешь загрузить дополнительные архивы, аналоги esp, bsa. И самое главное: при загрузке архивов строится виртуальная папка res:// в которой ресурсы при совпадении имён берутся из более поздних архивов. Ты сможешь организовать систему патчей и модов с проверкой зависимостей и порядка загрузки. Ммм... Писечка!
Почему текстуры интерполируются и как это исправить? Я делал модель в блендере, там в материалах closest интерполяция, а в годоте, что в эдиторе, что в самой игре интерполируется. Я имортировал модель как glTF (.glb) и вместо текстур импортировались сразу материалы.
>>631692 >>631696 Так там нет filter! Там только filter script. Этот >>631647 анон не я. Я не импортирую никаких текстур, только glTF-модель в виде .glb, а вместе с ним приходят 2 материала с текстурами, но у них нет никаких полей в Import.
Сап годотаны, платиновый вопрос, годится ли Годо для создания игры уровня Animal Super Squad? Есть прототип платформера, написанного на JS, хотим развить прототип, но учить юнити не хочется мимо-пользователь-линдукса, ставил юнити на попробовать, всё плохо. Ранее в треде видел упоминание, что Годо не оче с 3d, а если ещё и с физикой, то совсем всё плохо. Так ли это анон? Анон? Ответь анон?
>>631994 Годится. В тридэ там будут проблемы если ты замахнёшся на опенворлд уровня ведьмака-3. Платформеры типа твоего пика там нормально зайдут. Физика там — общепризнанный bullet. Правильно расставь массу предметов и будет тебе неплохая симуляция.
>>631881 В атласе ты хранишь не отдельные фреймы, а спрайт-листы целиком. Доставай из атласа спрайт-лист, после чего дроби на спрайты. У меня это именно так работало.
Сап. драг&дроп более менее разобрал. Рисую пазл игру. Как оптимальнее задать конечное положение кусочков пазла (место куда кусочек должен встать), не вручную же координаты конца ставить.
Изначально думал сделать так, когда экспортишь спрайт кусочка, то делаешь это с прозрачностью цельной картинки, без обрезания краев. Получается что центр это всегда конечная точка для любого куска пазла. Где я ошибся?!
>>632083 > центр это всегда конечная точка для любого куска пазла Що? > не вручную же координаты конца ставить Пусть скрипт запоминает начальные координаты кусочков. Или ЯХЗ что там у тебя за пазл. Это обширное понятие.
>>632113 Нет, абсолютно такое же программирование, единственное где проще это в констракте, еще проще только готовыми шаблонами, но это уже не программирование
>>632116 Ну есть гдевелоп, но он неудобный, они пошли по провальному пути гимпа и закономерно обдристались. Контракт он как фотошоп, чем меньше аналоги на них похоже тем хуже аналогам
>>632117 Тебе делать нехуй? Я сказал - годот проще и доступнее всего в кодинге. Ты вылез спорить, при этом сам же говоришь, что аналоги менее удобные. Я не видел ничего проще объектного дерева годота. Идеально по полочкам разложенный функционал, каждый класс на своём месте и не тянет от предков ничего лишнего. Вот на мой взгляд одна из самых важных составляющих годота.
>>632120 Благодаря этому, кодится в годоте легко и непринуждённо, многие вещи я постиг самостоятельно, даже не прибегая к документации, ибо названия методов и аргументов грамотно спланированные говорят сами за себя. В движках-конкурентах я не мог ни шагу ступить без документации. Даже в платных. По этому параметру они на несколько шагов отстают.
Вот поэтому я назвал кодинг в годоте самым лёгким, а не из-за питоноотступов, как многие наверняка подумали. Срал я на отступы. Когда умеешь кодить, эти частности не отвлекают.
Emission specifies how much light is emitted by the material (keep in mind this does not include light surrounding geometry unless GI Probes are used). This value is added to the resulting final image and is not affected by other lighting in the scene.
>>632147 Удваиваю. Давай поиграем в игру: Ты должен найти на пикрелейтеде точку входа в функцию, пока не наполнилась яма с кислотой. Но дверь из ямы ты сможешь открыть только если укажешь точное количество строк обычного скрипта, которым заменяется пикрелейтед.
Зяблики, а как настроить тени от объектов так, чтобы они были точными? В прикрепленных пиках видно, как под объектом проходит свет, сбоку тоже, хотя он "утоплен в пол".
>>632458 > и bias, и contact в глес3 шейдере, и про шаг сетки рейтрейсера и про его режимы работы Есть-то оно есть, но выглядит всё равно мерзко. Я как ни крутил настройки, так и не добился красивых теней. Ну, впрочем, может это я ниасилил. Контакт фикс на второй пикче тоже мерзко выглядит.
>>632458 Спасибо, анончик, вроде помогла подкрутка биаса (контакт вообще лучше не трогать), теперь тени относительно кошерные. Боже, как же обожаю эту трассировку лучей в запеченном свете!
Зяблы, поясните за оптимизацию. Почему при запекании света всех этих объектов через GIProbe в разрешении 512 сцена начинает дико лагать? 3 ФПС в комплект вошли. Я думал свет должен запекаться в файл и тем самым снимать нагрузку на процессор. По-че-му? Еще вопрос, почему при включении MSAA 16x сцена так же начинает лагать, хотя на ней не так уж и много объектов.
>>632600 П.с. про мсаа х16 не могу ничего сказать, всегда считал что -30фпс это норма, там же для отображения 1 пикселя нужно в 16 раз больше рассчетов, то есть примерно равно увеличению разрешения в 4 раза??
>>632787 Чудеса оптимизации. Куеуе-фри не удаляет объект сразу, а ставит в очередь на удаление. Пока он в очереди, он будет обрабатывать процессы. Поэтому, останавливай колбэки если удаляешь объекты таким образом (через очередь).
Здравствуй анон. Как называется такой вид игры, когда какие-либо элементы располагаются на плитках, хексах (как в CIV). Вроде и сам понимаю, но думаю есть конкретное определение для данного типа игр.
И есть ли какие-либо материалы, как организовать это в годо. Пикрелейтед взят с примеров на годо https://shmellyorc.itch.io/shipwreck, так что скорее всего инфа где-то может да и есть.
>>633183 Tilemap, имхо, это же просто принцип построения 2D окружения из набора некоторых визуальных данных, но никак не принцип взаимодействия с объектами внутри игры. Пишу относительно текущих знаний, но могу ошибаться.
>>633251 > принцип взаимодействия с объектами внутри игры. Принцип везде один: получаешь ссылку на объект, вызываешь метод объекта. Опционально получаешь возвращаемые данные. Опционально отдаёшь работу по получению ссылок обсерверу и просто шлёшь ему сообщения. Опционально получая возвращаемые данные. Это было до движков. Есть в движках. И будет после движков.
>>633499 Если я не ошибаюсь да и в шапке написано, есть примеры в магазине. Качаются через сам движок. Не знаю, если ли какие-то примеры не от тамошних Кириллов, но может какой годный пример да будет. Удачи в поисках!
>>633499 Если устанавливаешь версию из стима, она сразу с сэмпл-проектами скачается. Для версии с официального сайта там же есть ссылки на скачивание. Кроме того, как верно замечено, через вкладку шаблонов их можно скачивать по одному прямо в менеджере проектов.
Что можете сказать про реализацию >>633501 в годоте? Я пока думаю что нужен плейн под воду, над ним с небольшим оффсетом плейны под землю Плейны под землю текстурятся тайл-мапой, но с прозрачностью чтоб не пришлось рисовать все вариации Переход между двумя типами определять по соседству и в материале подкладывать на нижний слой текстурку соседнего биома. Где-то наверно обосрамсы вскроются но я пока не знаю.
>>633646 Накладка слоёв на двадэ-канве ничем не отличается от накладки слоёв в фотошопе/гимпе/крите - вот как ты в растровом редакторе накладывал слои, так и здесь делай.
Объявление! На время ТВГ частота ответов на вопросы может быть снижена очень сильно.
Ребят помогите нюфагу. В общем есть вот такая сцена, синие плитки - это путь по которому должен ходить персонаж. Ходить он должен как по рельсам, раз в две секунды перемещаясь точно в центр соседней клетки. Вопрос в том как реализовать поиск пути. У меня есть массив который содержит все клетки синего цвета, выглядит это так - [(96, 96), (160, 96), (224, 96) ..... ] Мне нужно чтобы при клике на одну из клеток, выстраивался ближайший путь к этой клетке. Синие клетки - это объекты типа Area2D. Собственно с тем чтобы понять на какой клетке был клик - я уже разобрался. Осталось только поиск пути сделать. Задачка скорее всего элементарная, а я туповат похоже ))).
>>633975 Для этого использовать A* ? Я так понял что это алгоритм который ищет путь по графу, у меня же уже есть массив с координатами по которым можно ходить. То етсть мне же не надо определять где препятствие и т.д.
Так а как реализовать очередь в godot? Я так понял что там нет структуры типа Queue как в Python.
>>633980 > как реализовать очередь в godot? Я так понял что там нет структуры типа Queue как в Python Учи документацию. Просмотри видосы, что советовал анон выше. Я питона в глаза не видел, поэтому хз что ты подразумеваешь под очередью. Список тебе не подходит? var Spisok = [1,2,3]
Тут еще дело в том, что мне не подходит встроенная в Godot система, мне нужно именно чтобы персонаж перемещался в соседнюю клетку ровно раз в 2 секунды. Получается что мне надо как то получить массив с точками кротчайшего пути, а потом просто перемещать персонажа по этим точкам раз в две секунды..
>>631686 (Продублирую) А знаешь, я проверил, и действительно нельзя поменять фильтрацию при импорте модельки целиком. Оказывается, в доках так и написано - лучше импортируйте раздельно gltb + текстуры. Но. Есть невероятно простой лайфхак. Буквально на 5 секунд. Сразу после импорта твоей gltf надо нажать сохранить как - tscn. И потом работать с моделькой как с родной сценой движка. Зайти в свойства меша, там в материал, там в текстуру, и вуаля. Все галочки на месте.
Кстати парни, вот не хочу вас троллить, но почитал тред и понял, что вы тут пытаетесь заставить работать простые вещи. (я про 3д).
Почему вы не выбрали Юнити? Ну объективно там вся эта "база" уже давно реализована. Да, потратишь недельку-другую на переход от Годота, на понимание Юнити, но блин, чуваки, потом один сплошной буст будет по времени. Будете игры делать, а не вот это вот всё изобретать.
>>634991 > префабы в геймдеве Да, это "префабы". И они у нас искаропки. Причём это у нас "нестед префабы" и они были фкаропке всегда, а не приделаны костылём в прошлом году.
>>634991 >читай про префабы в геймдеве Шизоид, юнити не равно геймдев. Если в юнити ПРЕФАБЫ, это не значит, что в любом другом движке такая же терминология.
>>634991 Префабы - это какое доисторическое говно, когда в первой халве уровни рисовались не мешами, а брашами. И вот слепленные фигурки из брашей назывались префабами. Какому идиоту может придти в 2020 таким пользоваться, когда можно пользоваться вложенными сценами, со всеми объектами, модельками, скриптами, светом и так далее.
>>629494 Тогда во многих случаях практичным будет загрузить в память некий пул (сцену) из экземпляров сцен, дубликаты которых наиболее часто используются, чтобы лишний раз программа не лезла на жесткий диск. В идеале, - грузить все, до чего игра может дотянуться в пределах данного левла. И грузить этот пул при загрузке собсно левла. Я теперь Кодзима Кармак?
>>635128 > Тогда во многих случаях практичным будет Будет. Пулы в движке тоже есть. > Я теперь Кодзима Кармак? А игры у тебя есть? На словах я тоже Тодд Говард.
Делал по тьюториалу обучалку @ press f6 что бы запустить сцену
- ну ок, а в редакторе где эта кнопка? Вижу f5 вот - play, следом f7 - pause scene. Блин а f6 почему нету между, ладно хуй с ним, буду через хоткей делать.
Потом чет наворотил, сцена уже не запускается, в итоге случайно закрыл консоль вместо запущенной сцены @ весь прогресс за час идет нахуй @ ))
Моё лицо кароче от сегодняшнего прогресса в разработке игор.
>>637910 В смысле не на кол-во элементов, а на количество измерений, то есть: в случае arr[N1,N2,..., Nx], чему равно x max, прежде чем годо пошлет меня на хуй?