/gd/ - Godot #41 Не-ОП Edition
Главная Юзердоски Каталог Трекер NSFW Настройки

Gamedev

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 540 123 77
Godot #41 Не-ОП Edition Аноним 28/10/23 Суб 18:01:16 910890 1
image(1).png 459Кб, 850x1164
850x1164
Аноним 28/10/23 Суб 18:17:20 910895 2
Как в редакторе добавить сцену в текущей позиции, а не в (0,0,0)? То есть, хотя бы примерно туда, куда смотрит внутри-редакторовская камера, а не в центр мира. Каждый раз добавляется в центр, а мне потом уныло перетаскивать через всю карту.
Аноним 28/10/23 Суб 18:20:59 910898 3
>>910850 →
>>910826 →
Да, оказалось плагин старый, перекачал с гитхаба - работает.
Теперь следующий вопрос - а можно-ли привязать кнопку продолжения диалога не на физическое устройство, а на ноду кнопки? В (скудной, быть честным) доке к Диалогику ничего похожего не нашёл, залез в код - тоже ничего, можно в итоге или придётся мудрить костыли?
Аноним 28/10/23 Суб 18:22:35 910899 4
>>910898
Ты можешь симулировать нажатие физической кнопки через action_press("action_name")
Аноним 28/10/23 Суб 18:23:42 910900 5
Аноним 28/10/23 Суб 18:27:39 910902 6
Официально запрещаю физикосрачи в этом итт треде! Спасибо.
Аноним 28/10/23 Суб 18:45:41 910909 7
23101941854.png 15Кб, 424x154
424x154
>>910899
А вот щас немного не ништяк, хз по какому принципу Диалогик ловит нажатия, но явно жопой, раз когда я вызываю действие из кода - ничего не работает, принты отрабатывают штатно, значит функция выполняется полностью.
Аноним 28/10/23 Суб 19:10:11 910911 8
godot.png 555Кб, 1068x1463
1068x1463
Аноним 28/10/23 Суб 19:19:51 910916 9
>>910911
Перекатили с тем, что было.
Аноним 28/10/23 Суб 19:24:14 910918 10
>>910895
>Как в редакторе добавить сцену в текущей позиции, а не в (0,0,0)?
Два варианта:
1. Перетащить сцену во вьюпорт, а не в дерево.
2. Перетащить сцену в потомки какой-либо ноде, а потом перетащить по дереву куда захочешь.

В первом случае позиция сцены будет примерно той, где ты отпустил кнопку мыши. Как минимум в 2D.

Во втором случае сцена сначала будет расположена в точке отсчёта локальной системы координат своего предка (.ZERO), а потом конвертирует координаты в глобальные... или что-то вроде. Сам попробуй.

Меня лично бесит, когда сцену кидаешь, а она не в точке отсчёта, а хрен знает где. БЕСИТ.
Аноним 28/10/23 Суб 19:26:05 910919 11
image 843Кб, 1280x905
1280x905
>>910911
Наконец-то у юнити-чан появилась достойная соперница!
Аноним 28/10/23 Суб 19:29:36 910920 12
Можно ли velocity.length(), которая float и обычно выдает 0.0000000, до int или хотя бы до 0.0 ??? .floor() и .ceil() не работают.
Аноним 28/10/23 Суб 19:36:10 910921 13
>>910920
Тебе чтобы сравнить с нулём?
https://docs.godotengine.org/en/stable/classes/class_vector3.html#class-vector3-method-is-zero-approx

>.floor() и .ceil() не работают.
Потому что у float их нет.
https://docs.godotengine.org/en/stable/classes/class_float.html
Используй это:
https://docs.godotengine.org/en/stable/classes/class_%40globalscope.html#class-globalscope-method-floor
https://docs.godotengine.org/en/stable/classes/class_%40globalscope.html#class-globalscope-method-ceil
https://docs.godotengine.org/en/stable/classes/class_%40globalscope.html#class-globalscope-method-round
Ещё можно так:
https://docs.godotengine.org/en/stable/classes/class_int.html#class-int-constructor-int
Аноним 28/10/23 Суб 19:43:26 910923 14
>>910921
Мне нужно было передать длину желательно в виде целого числа. На самом деле я там уже переписал так, что мне не придётся это делать. Но всё равно большое спасибо, это всё рано или поздно пригодится.
Аноним 28/10/23 Суб 19:51:27 910925 15
>>910918
А если я добавляю через ПКМ по дереву -> Instance Child Scene? Перетаскивать из файлсистема - такое себе.

Но пока похоже первый вариант лучший. Спасибо.
Аноним 28/10/23 Суб 20:04:32 910927 16
>>910793 →
>можно их сумму
В том-то и дело, что нельзя.
>applied_force для тройки
Нет такого в 3D физике. Только в 2D физике.
>constant_force для четвёрки
Это совершенно другое. Это ввели, чтобы не нужно было 60 раз в секунду запрашивать приложение одной и той же силы. Можно один раз прописать ПОСТОЯННУЮ (constant) силу и она будет автоматически работать, пока не сбросишь.

>>Речь о 3D физике
>Какая разница-то?
Если ты гений, чтобы физический 3D движок с нуля велосипедить - пожалуйста, никто не останавливает.

>>910869 →
>приходит, т.е. воздействует, это сила.
Мне не важно, кто там в тебя приходит.

Мне нужно узнать УСКОРЕНИЕ объекта.
Аноним 28/10/23 Суб 20:10:11 910928 17
>>910925
>А если я добавляю через ПКМ по дереву -> Instance Child Scene?
Создай несколько Node3D нод с разным смещением. Добавь к ним чилдренов. Потом перемести эти ноды в другое место дерева. Точка в пространстве останется без изменений, но координаты изменятся, потому что у ноды изменится координатная система.
Аноним 28/10/23 Суб 20:23:44 910936 18
>>910927
> Мне нужно узнать УСКОРЕНИЕ объекта.

Ну так возьми посчитай, подели дельту координат на дельту времени
Аноним 28/10/23 Суб 20:26:48 910938 19
>>910936
>Ну так возьми посчитай
Кто? Я?? Я посчитаю, а движок почему отлынивает?

>подели дельту координат на дельту времени
Это скорость. Ускорение - дельта скорости на время.

Хотя я начинаю думать, что мне нужен рывок...
Аноним 28/10/23 Суб 20:33:13 910943 20
>>910927
>Мне нужно узнать УСКОРЕНИЕ объекта.
Зачем тебе знать ускорение, шиз?
Аноним 28/10/23 Суб 21:02:12 910955 21
Где игры? Какие жанры то хоть делаете?
Аноним 28/10/23 Суб 21:14:32 910963 22
Аноним 28/10/23 Суб 21:15:27 910964 23
Аноним 28/10/23 Суб 21:18:03 910965 24
>>910963
С новой системой плагинов сообщество пошустрее плагинов напилит. Скоро будет у нас швейцарский нож для ассетофлипа. Хуяк-хуяк и в продакшон. Без единой строчки гдскрипта. Разве не об этом мы мечтали? Разве не этого ждали?
>>910955
> Какие жанры то хоть делаете?
Почему мы обязаны делать игры? Мы вполне можем делать плагины. И что ты нам зделоеш?
Аноним 28/10/23 Суб 21:18:53 910966 25
>>910965
Плагины какого жанра ты делоешь?
Аноним 28/10/23 Суб 21:22:07 910967 26
>>910938
> а движок почему отлынивает?

А движку это и знать не надо, ему похуй на ускорение.

> Это скорость. Ускорение - дельта скорости на время.
ну подели еще раз, получишь из скорости ускорение.
Понял?
Движку не надо считать ускорение
Аноним 28/10/23 Суб 21:24:52 910969 27
1698517492606.png 234Кб, 964x566
964x566
1698517492610.png 364Кб, 1145x643
1145x643
>>910966
Контроллер 3D-персонажа, движущегося в зоне с точечной гравитацией по внутренней поверхности сферы. Спиздил исходники планетарного контроллера из ассетлиба и перепиливаю под свои нужды.
Аноним 28/10/23 Суб 21:25:42 910971 28
1698517542202.mp4 3379Кб, 854x480, 00:00:30
854x480
>>910963
Божечки-матрёшечки! Это климакс!
Аноним 28/10/23 Суб 21:28:10 910972 29
>>910969
>в зоне с точечной гравитацией по внутренней поверхности сферы
Охуенно. Представляю какие триповые игоры можно с таким напилить.

Персонаж на унитаз похож
Аноним 28/10/23 Суб 21:35:25 910975 30
>>910964
Открыл ссылку, а на меня моя игра смотрит. Наес.
Аноним 28/10/23 Суб 21:40:30 910976 31
1698518431419.png 138Кб, 961x568
961x568
>>910972
Воц гоин он?
В тумане скрываются монстры.
Аноним 28/10/23 Суб 22:27:51 911000 32
1697534077053545.png 513Кб, 2063x1299
2063x1299
>>910969
Куда плагины выкладываешь? Где их вообще поискать можно?

Я хочу в рамках знакомства с движком почитать несколько гитов хороших проектов. Что можете порекомендовать?
Аноним 28/10/23 Суб 22:44:46 911005 33
>>910969
Это ты спрашивал каких плагинов не хватает? Мне не хватает нормальной Line3D. Чтобы, грубо говоря, трубы делать. В ассетах есть пара реализаций, но они в разных местах кривят.
Аноним 28/10/23 Суб 23:20:16 911015 34
>>911005
Хм. Любопытно. Записал себе в todo.
>>911000
> Куда плагины выкладываешь?
На гитхаб.
> Я хочу в рамках знакомства с движком почитать
В рамках знакомства с движком тебе о плагинах думать рано.
> несколько гитов хороших проектов
В окне менеджера проектов (которое открывается первым) есть вкладка с проектами-шаблонами из ассетлиба. У каждого из них свой гит, если уж так гит нужен, но вообще, прямо в редактор скачиваешь проект и смотришь прямо там, не отходя от кассы.
Аноним 28/10/23 Суб 23:33:09 911019 35
>>911015
>но вообще, прямо в редактор скачиваешь проект и смотришь прямо там, не отходя от кассы.
Эт не то, вот посмотреть на 15 коммитов подряд срущих в мастер чтоб поправить одно говно, это всегда глаз радует.
Аноним 28/10/23 Суб 23:47:00 911023 36
Так. Я начинаю новый проект. А то предыдущий доделал где-то месяц назад, потом хуи пинал. Было несколько идей, не решался взяться ни за одну.
Щас официально. Выбрал самую перспективную идею, которую я точно могу реализовать. Но делаю на четвёрке, потому что надо же когда-то начинать с ней разбираться.

UPD: я наконец-то понял, для чего нужны PhysicalBone2(3)D и соответствующие модификации скелета. С их помощью можно чуть ли не Эйфорию запилить. То есть, они работают по физике, но передают своё положение скелету (а не наоборот). Теоретически, так можно запилить персонажа с супер-сложной процедурной анимацией.

>>910972
>Персонаж на унитаз похож
В 2к23 это в каком-то смысле даже плюс...
Аноним 28/10/23 Суб 23:52:18 911024 37
>>911019
Ну это сразу нахуй, в срачетред, и репорт за движкосрач вдогонку, чтоб бежалось бодрей.
Аноним 29/10/23 Вск 00:16:12 911028 38
>>911024
Почему? Самая мякотка опенсурса же.
Аноним 29/10/23 Вск 01:44:32 911038 39
image.png 212Кб, 1920x1013
1920x1013
image.png 347Кб, 1920x1080
1920x1080
Надо дизайн подновить
Аноним 29/10/23 Вск 01:48:33 911039 40
>>911038
Хреново же. Особенно эти округлые вкладки, теперь напоминающие выпирающие прыщи. Единственный плюс - повышенная компактность местами.
Аноним 29/10/23 Вск 01:59:07 911042 41
>>911023
>Но делаю на четвёрке, потому что надо же когда-то начинать с ней разбираться.
Минус один троечник. А я еще посижу.

>предыдущий доделал где-то месяц назад
Как успехи по итогам?
Аноним 29/10/23 Вск 02:04:04 911043 42
1698534245216.png 712Кб, 1024x500
1024x500
Наступает ночь.
Аноним 29/10/23 Вск 02:18:36 911045 43
>>911043
Время делать игры.
Аноним 29/10/23 Вск 02:29:18 911046 44
>>911039
Да, слишком закруглено, но мне нравится темные места, как-то контрастнее стало, лучше видно секции
Аноним 29/10/23 Вск 02:36:09 911048 45
Я могу как-нибудь сделать связи между разными, не загруженными, сценами? То есть, у меня уровень 1 и на нем дверь-выход. При переходе через эту дверь хочу указать чтобы персонаж появлялся на уровне 2 в точке А. Но если игрок на уровне 1 прошел в другую дверь-выход, то на уровне 2 в точке Б

Уровней и точек планируется довольно много, в десятках, и хотелось бы сделать это наглядно для себя и не скатываться до хардкода.
Аноним 29/10/23 Вск 02:38:35 911049 46
>>911048
То есть, я ищу что-то гуевое типа @export var entrance_point: NodePath
Аноним 29/10/23 Вск 02:39:09 911050 47
>>911048
Ссылку на точку назначения заведи в телепорте (двери) и прописывай.
Аноним 29/10/23 Вск 02:41:25 911051 48
>>911050
>Ссылку
Что это? NodePath, как я понимаю, нельзя указать на ребенка внутри другой сцены. Предлагаешь просто строкой указывать?
Аноним 29/10/23 Вск 02:41:34 911052 49
>>911049
Нет, пути придётся либо вручную прописывать, либо, если ты с самого начала грамотно каталогизировал свои сцены (что врядли), ты можешь прописывать только их имена, а общую часть строкового пути вынести в константу, а из имён сделать энум и в ГУЕ выбирать нужное имя.
Аноним 29/10/23 Вск 02:41:57 911053 50
Аноним 29/10/23 Вск 02:43:12 911054 51
>>911053
Ок, понял-принял, спасибо. Не идеально но сойдет. Если найду способ лучше - отрепорчу в ИТТ.
Аноним 29/10/23 Вск 03:27:43 911055 52
>>911042
>Как успехи по итогам?
Пока никак. Жду, пока на яндексе одобрят, тогда релизну и на открытых сервисах.

>>911048
У ноды, отвечающей за телепорт:
@export_file и в гуях можно выбирать файл другой сцены. @export вектор - координаты выхода.
Тащемта подобным образом устроены переходы между уровнями даже в каком-нибудь Халф-лайфе. Потому что ну а как ты ещё укажешь на какую-то точку в каком-то другом файле, который даже не загружен?
Можно усложнить. В уровнях завести массив/словарь координат, через которые можно на этот уровень зайти. В выходной ноде тогда надо указывать не координаты, а индекс в массиве/словаре. Тогда точку входа на уровень ты сможешь редактировать прямо изнутри этого уровня. Или даже это может быть не словарь, а определённая именованная нода, но путь к ней придётся прописывать ручками в точке выхода.
И обязательно в каждом уровне нужна дефолтная точка спавна, на которую игрок попадает, если что-то пошло не так.
Аноним 29/10/23 Вск 10:55:22 911074 53
23101153955.png 228Кб, 1920x1050
1920x1050
Тут-же можно своё говно "на заценить" вкидывать?..
Валька на Годоте, с нуля, я не тролль.
Аноним 29/10/23 Вск 12:39:01 911093 54
>>911074
Братишка! Обнял!
Это же шедевр! Куда нести деньги?
Аноним 29/10/23 Вск 12:45:03 911097 55
Коллеги из соседнего треда обратили внимание на одну проблему в Годоте: https://twitter.com/cyangmou/status/1718191813993848974
Есть мысли тех, кто реавльно пользуется вдижком, а не срачи устраивает? Насколько это большая проблема? Сталкивались ли?
Аноним 29/10/23 Вск 13:09:24 911106 56
>>911097
Это очень специфичная проблема. Я сделал две пиксель-перфект игры еще на тройке, и могу сказать что пиксель-перфект делается легко, и плавная камера делается легко. А вот объединить их в один проект, чтобы они не портили друг друга - сложно, потому что с одной стороны тебе нужен четкий снап по внутри-игровым пикселям, с другой - плавная субпиксельная камера. Сам понимаешь. Я в итоге сделал это через шейдер.

Добавлю что речь идет именно о пиксель-перфект. Обычные пиксельные игры в стиле террарии такой проблемы не испытывают. Пиксель-перфект вообще тонкая штука с кучей подводных. Но подозреваю твои движкосрачеры из соседнего треда не в курсе про разницу. Лучше бы игры делали. И ты тоже.
Аноним 29/10/23 Вск 13:19:22 911109 57
>>911106
>И ты тоже.
Я жду 4,2(чтобы потом ждать 4,3 и атк далее)

>движкосрачеры из соседнего треда не в курсе про разницу
да не, там просто вкинули ссылку, никакого обсуждения не было, на в твитторе немножко побухтели
Аноним 29/10/23 Вск 13:42:08 911114 58
>>911097
Осваиваю движок и пробовал делать плавную камеру для пискельной графики, но ебало пиксели. В итоге сделал без плавности и пошел дальше.
Аноним 29/10/23 Вск 15:43:13 911138 59
Дано:

main - родительская нода сцены со скриптом main
control - дочерняя нода main со скриптом control
buttonOne - кнопка, дочерняя ноды control

В скрипте main есть условие
if Input.is_action_just_pressed(Keyboard_1):
$control/buttonOne.DRAW_HOVER_PRESSED (Да на самом деле что угодно)

Собственно, всё. Не работает скрипт. Что может быть? Я опять туплю?
Аноним 29/10/23 Вск 15:45:02 911140 60
>>911138
Не указал экшн в настройках проекта -> input?
Аноним 29/10/23 Вск 15:46:00 911141 61
>>911140
Указал указал. Этот экшн другие дела делает, перед тем как на кнопку повлиять.
Аноним 29/10/23 Вск 15:49:17 911142 62
>>911140
>>911138
К слову, там в main.gd в начале
@onready var buttonOne = $control/buttonOne
А то ругается на null instance
Аноним 29/10/23 Вск 15:53:20 911144 63
>>911141
Тогда возможно перед твоей кнопкой стоит другой контрол, съедающий инпут. Мышкой то кнопка нажимается?

Еще зависит от того, где у тебя стоит этот if Input.is_action_just_pressed(Keyboard_1)

Оно должно не в _input и не в _unhandled_input (с этими двумя работать надо чуть иначе, эвентами а не опросом), а в _process или _physics_proccess.
Аноним 29/10/23 Вск 16:05:42 911146 64
>>911144
Другой контрол стоит, но он кнопок не касается. Мышкой кнопка нажимается. if стоит в функции которую я определил сам, и запускаю в _process.
Аноним 29/10/23 Вск 16:07:39 911148 65
>>911144
Хотя, есть в том контроле что непосредственно над кнопками скрипт, в котором стоят сигналы _on_pressed с кнопок. Но только что сигналы, Инпут же они не съедают.
Аноним 29/10/23 Вск 16:31:49 911152 66
>>911148
Бля, если у кнопки не DRAW менять, а visible то всё работает. Но мне то DRAW менять нужно... Ну или альтернативы подсвечивания, выделения кнопки.
Аноним 29/10/23 Вск 19:03:45 911185 67
>>911152
Потому что DRAW_ это не проперти кнопки, ты не можешь его выставлять снаружи.

Объясни попроще, что именно ты хочешь сделать
Аноним 29/10/23 Вск 19:28:40 911188 68
>>911185
Чтоб по нажатию клавиши кнопка подсвечивалась якобы она активна.
Аноним 29/10/23 Вск 19:38:15 911189 69
>>911188
тогда можешь по нажатию клавиши заменять стайлбокс кнопки, неактивный на активный.

Выглядеть будет так будто кнопка нажата.

Ещё у кнопки есть метод set_pressed_no_signal, посмотри класс BaseButton, может это то что тебе нужно.
Аноним 29/10/23 Вск 20:01:38 911193 70
>>911189
Двачую этого.
Я в прошлом году экспериментировал с темами контролов, решал задачу о том, что в дефолтных темах у большинства контролов не было визуального подсвечивания при наведении мыши или захвате фокуса. Задачу я успешно решил путём добавления в кастомную тему кастомных стайлбоксов и настройки контролов (кнопок и чекбоксов) на переключение этих кастомных стайлбоксов.
Аноним 29/10/23 Вск 20:22:59 911196 71
>>911189
>>911193
Спасибо. Но если у меня 4 кнопки, но подсвечиваться должна одна из них. Получается на нажатие одной кнопки нужно дописывать смену остальным кнопкам стайлбокса? И так у всех кнопок. Типа если нажата кнопка_1: кнопка_2.стайлбокс = дефолт, кнопка_3... и тд. Простите за мой английский. Или есть способ сделать это легче?
Аноним 29/10/23 Вск 21:02:39 911205 72
>>911196
> Или есть способ сделать это легче?
Есть такой способ. Называется ООП. Если конкретнее - наследование. Ты делаешь один скрипт, который наследуется от Button и назначаешь его всем своим кнопкам. И все твои кнопки наследуют поведение, которое ты описал один раз.
Аноним 29/10/23 Вск 21:07:05 911206 73
>>911205
Если ты создаёшь кнопки программно, назначь скрипту class_name MyButton и далее во всех скриптах где ты делал Button.new() делай вместо этого MyButton.new(). Если же ты подготовил "префабы кнопок" в виде сохраненных tscn-файлов, и загружаешь их через PackedScene.instantiate() то тогда class_name задавать не обязательно, но желательно, чтобы автоматически тянуть свои кастомные методы в интеллисенсе редактора через вывод типа.
Аноним 30/10/23 Пнд 01:06:28 911246 74
Годаны, загадка века. Решена ли в четвёрке задача отражения 2д-анимаций?
Что я имею ввиду. Вот у меня персонаж, состоящий из частей, анимируется скелетно (новая система инверсной кинематики ОХУЕННА, но в неё надо вкурить). Я сделал несколько анимаций лицом вправо. Теперь мне надо повторить те же анимации лицом влево. Натыкивать их мышкой заново? Это ж к тому же все ИК-цепочки переделывать: ограничения коленных, локтевых сгибов и тому подобное.
Со спрайтовой анимацией всё просто, а вот тут куча подводных... Как эта проблема у образованных людей решается?
Аноним 30/10/23 Пнд 03:44:16 911255 75
>>911246
В общем, пока решение такое, в целом рабочее.
Вся анимация только на ИК. Маркеры-цели для ИК все лежат внутри одной ноды, назовём её контейнером. Если надо что-то двигать не-ИКшное, двигаем его при помощи RemoteTransform'a, сам ремоут кладём туда же, где маркеры.
Флип состоит из трёх частей:
1. Ставим контейнеру скейл (-1, 1)
2. Меняем местами position.x у симметричных костей, типа "плечо", "бедро"
3. В скелетных модификациях инвертируем:
а) Для TwoBoneIK: flip_bend_direction
б) Для LookAt: constraint_angle_invert - но только для тех, которым это нужно
Ну и, конечно же, сами спрайты, из которых состоит персонаж, флипаем тоже.
В целом, пока я не дал ему оружие, выглядит адекватно. С оружием придётся возиться отдельно. Но хотя бы я уже избавил себя от возни с зеркальными дублями анимаций.

Дополнительно: играясь со скалированием контейнера, можно добиться забавных эффектов, которые благодаря инверсной кинематике даже адекватно смотрятся.

И упаси вас г-сподь скалировать скелет. Начинается то самое, от чего все священники будут в ужасе уходить за кадр со словами "ну нахер". Скелет лучше вообще лишний раз не трогать, а один раз настроить модификации, после чего двигать уже только маркеры.
Аноним 30/10/23 Пнд 06:43:26 911258 76
bandicam 2023-1[...].webm 2709Кб, 1152x648, 00:00:19
1152x648
изображение.png 861Кб, 1154x680
1154x680
таки разобрался с мультмешем и шейдерами. все таки 2 float4 как параметры инстанса пиздец как мало.
Аноним 30/10/23 Пнд 09:57:11 911284 77
>>911258
Что ты делаешь вообще?
Аноним 30/10/23 Пнд 11:41:34 911298 78
sample33288b0c1[...].jpg 151Кб, 850x1164
850x1164
Аноним 30/10/23 Пнд 11:57:53 911301 79
>>911284
страдаю херней. если конкретно - разбираюсь с флексом(опенсорс экс) и годотом. конкретно здесь передача свойств из экс в годот. спрайты начинали тормозить где-то за 500 (а потом оказалось что если я хочу например приебенить к нему эфект например растворения, то придется каждому спрайту ебащить свой материал, ибо 2д в инстанс униформы шейдера не умеет) потому сделал через мешинстанс2д. 2500 псевдоспрайтов, которые могут в трансформ2д, цвет, покадровую анимацию из атласа и еще 3 флоата остались для параметров(тут 2 используется для растворения и покраснения)
Аноним 30/10/23 Пнд 12:42:02 911307 80
>>911298
Забрал домой. Напоил чаем.
Аноним 30/10/23 Пнд 13:02:47 911313 81
Аноним 30/10/23 Пнд 13:15:39 911320 82
Блять. Почему у SceneTree есть get_first_node_in_group(), но нету get_first_node_in_tree(). Как взять main ноду всего древа без свистоперделок с индексом, патчем, стринг неймом и тд и тп. Просто хочу что-то вроде get_tree().get_first_node_in_tree и всё! Неужели я многого прошу?
Аноним 30/10/23 Пнд 13:32:14 911325 83
>>911320
GetTree().Root?

>>911313
да не, тут проблема в годоте. т.е. вполне неплохо батчит спрайты с одинаковым материалом, но если хочется обмазать шейдером - то материал нужно клонировать, в итоге батчинг идет к херам и каждый спрайт рисуется самостоятельно, что херит производительность уже на сотнях. не сказать что бы прям уж маленькое значение, хватит практически для всего, кроме чего-то типа вампир сурвиворс при чем для 3д в 4.0 рендер перерисали под полноценный инстансинг а в 2д есть только старый мешинстанс2д, который берет только трансформ2д и 2 флоат4 как параметра для отдельного инстанса. судя по обсуждениям на гитхабе - "не горит"
Аноним 30/10/23 Пнд 14:04:50 911337 84
Аноним 30/10/23 Пнд 14:13:38 911339 85
Аноним 30/10/23 Пнд 16:07:15 911366 86
А можно как то реализовать object.set("value", != "value") ? Чтоб меняло на противоположное себе значение. Value - bool, если что.
Аноним 30/10/23 Пнд 16:09:20 911369 87
>>911366
Бля проебался. Не "value", != "value", а "value", !"value". Или как то так.
Аноним 30/10/23 Пнд 16:11:18 911370 88
>>911366
нихера не понил. для булена поменять на противополжное

value = !value;
Аноним 30/10/23 Пнд 16:15:44 911372 89
>>911370
Ну это я знаю. Мне нужно переменную в nodeOne.gd поменять через nodeTwo.gd. nodeOne.set("varibale", value), такой тип синтаксис там. Переменная как string, после запятой значение. Но !"value" не работает там.
Аноним 30/10/23 Пнд 16:18:30 911375 90
sample.mp4 814Кб, 1034x606, 00:00:06
1034x606
Как делать такие же красивые анимации кнопок?
Аноним 30/10/23 Пнд 16:23:59 911377 91
>>911372
а, ну так да, работать не будет
1. сначала получить через гет потом поменять на противополжное
var t : bool = nodeOne.get("value")
nodeOne.set("value", !t)
2. добавить в nodeOne что-то типа
func toggle():
value = !value
Аноним 30/10/23 Пнд 16:27:00 911380 92
>>911377
Спасибо, догадался таки до первого варианта как раз. Кстати, а обязательно когда переменную объявляешь указывать её тип?
Аноним 30/10/23 Пнд 16:33:02 911381 93
>>911380
нет, но я привык к строгой типизации на уровне рефлексов. т.е. сразу начинают лезть в голову вопросы "а что случиться если там не бул?" так то я хотя бы получу инвалид каст ошибку. воопше можно "сократить" до
set("value", !get("value"));
Аноним 30/10/23 Пнд 16:39:15 911383 94
>>911381
>можно "сократить" до
За это отдельное спасибо! Интересно получается, забираю.
Аноним 30/10/23 Пнд 16:53:05 911390 95
>>911375
Через AnimationPlayer играешься с свойствами/стилями кнопок. А вообще всрато, отвлекает от задачи игры.
Аноним 30/10/23 Пнд 17:18:12 911396 96
>>911325
>GetTree().Root
>The SceneTree's root Window.
>Window
А мне надо node, но всё равно спасибо.
Аноним 30/10/23 Пнд 18:34:15 911414 97
>>911325
Правильно понял, подобие вампиров надо на шейдерах делать, чтобы летало. Простые ноды с текстуркой не сойдут?
Аноним 30/10/23 Пнд 18:52:44 911426 98
>>911414
зависит от тонкостей батчинга. суть в том, что отрисовать сотню спрайтов поштучно критично дороже, чем обрисовать 100 одинаковых спрайтов. и вот эта самая "одинаковость" величина сильно плавающая. простейшая оптимизация - движок собирает спрайты в один меш из кучи квадов, формирует атлас из их текстур, подгоняет стандартный шейдер под это, и все - они "одинаковые" и рисуются разом. пока тебе не понадобятся какие-то специфичные фичи, которые в этот стандартный шейдер не влезет. например свой шейдер на спрайт точно в эти рамки не влазит.
Аноним 30/10/23 Пнд 19:50:21 911471 99
4.png 2432Кб, 2048x2736
2048x2736
Аноним 30/10/23 Пнд 19:55:33 911479 100
>>911471
А что за тянка, маскот годо? Я здесь новенький прост.
Аноним 30/10/23 Пнд 19:58:19 911482 101
>>911479
да, трахаю её по вечерам, она бесплатная, всем дает
Аноним 30/10/23 Пнд 20:01:24 911485 102
>>911482
Иди отсюда, пидор грязный.
Аноним 30/10/23 Пнд 20:03:56 911488 103
>>911471
Нейросеть обмазала?
Если нет - то моё увожение художнику, очень сочно.
Аноним 30/10/23 Пнд 20:05:38 911490 104
Аноним 30/10/23 Пнд 20:07:09 911492 105
>>911490
Да, я уже и сам разглядел. Рот проёбан, цвет глаз проёбан. Бретелька правая проёбана. Зато ляхи сочные. Да. Выражаю респект авторам модели и авторам арта, на котором модель тренировалась.
Аноним 30/10/23 Пнд 20:09:21 911493 106
image.png 234Кб, 850x754
850x754
Что тут у вас? Безобразничаете?
Аноним 30/10/23 Пнд 20:19:06 911496 107
>>911471
Почему так мало такого с годеточкой, годотеры что всё время делают игры и нет времени отвлечься?
Аноним 30/10/23 Пнд 20:23:15 911498 108
>>911496
Ну я мог бы создать в коикатсу перса и генерить её в любых позах, но надо ли?
Аноним 30/10/23 Пнд 20:26:35 911499 109
>>911496
Юнитеса уже и писю, и анус показала, а годеса все жмется. Ну, ничего, может дорастет до полноценного движка и тогда покажет.
Аноним 30/10/23 Пнд 20:27:31 911501 110
>>911498
Если будут классные пикчи то надо, но ты же сделаешь проходное г, лучше не трать время, я скорее про рисовак говорил. Наклепали бы интересного, нужно привлекать игроделов, раз гдскриптя медленная, пусть хоть годеточка заманивает прелестями
Аноним 30/10/23 Пнд 20:29:12 911502 111
>>911471
Как же нейронки ебут. Страшно за человечество
Аноним 30/10/23 Пнд 20:30:18 911503 112
>>911502
Скоро уже, скоро, сделают кнопку "зделоть зоебись".
Аноним 30/10/23 Пнд 20:31:30 911504 113
image.png 316Кб, 522x741
522x741
>>911499
Опенсорс же, зделой сам.
Аноним 30/10/23 Пнд 20:31:48 911505 114
>>911503
Выглядеть это будет так: кидаешь чату-гпт-9 пасту кирилла, а он тебе ориджинал-контент на 69 часов игры скидывает, сразу ссылкой на установщик.
Аноним 30/10/23 Пнд 20:40:11 911510 115
>>911502
Цвет глаз, прическу, стиль проебали, уууух как же ебут.
Аноним 30/10/23 Пнд 20:49:35 911517 116
4.png 1143Кб, 1536x1536
1536x1536
8.png 971Кб, 1024x1536
1024x1536
>>911510
>Цвет глаз
в промте не указал, оцени >>911504 тут тоже цвет проебан, лол
>прическу
не помню как эта прическа называется на кругляшки, там конкретное название
>стиль проебали
дык в этом и суть, что стиль другой

>>911493
Хотим и безобразничаем, все же код писать!
Аноним 30/10/23 Пнд 21:01:27 911526 117
1698688886424.jpg 211Кб, 2000x1414
2000x1414
>>911517
Цвет глаз по канону зеленый, точнее что-то типа желтовато-бирюзового.
Аноним 30/10/23 Пнд 21:02:58 911527 118
Screenshot10.png 170Кб, 1161x631
1161x631
Есть идеи что это за ошибки при открытии любого, даже нового проекта?
Аноним 30/10/23 Пнд 21:07:38 911531 119
>>911510
Ну нарисуй так же не проебывая, посмотрим насколько ты лучше
Аноним 30/10/23 Пнд 21:22:24 911538 120
>>911527
Попробуй почистить кэш.
Аноним 30/10/23 Пнд 21:34:44 911543 121
Аноним 30/10/23 Пнд 21:53:27 911548 122
>Note: call_group() will always call methods with an one-frame delay, in a way similar to Object.call_deferred()
Сюка, сколько жопоболи мне это доставило, пока документацию не прочитал.
Аноним 30/10/23 Пнд 21:54:27 911549 123
sample.mp4 1274Кб, 1034x786, 00:00:11
1034x786
минимальный раз[...].png 3Кб, 275x90
275x90
режим.png 7Кб, 765x115
765x115
1. Как сделать, чтобы при сужении окна по ширине кнопочки имели минимальный размер, после которого, не сужаются как на видео? Поставил для контейнера кнопочек мин. сайз 500, не помогло.
2. Как сделать, чтобы при сужении окна по высоте кнопочки перестраивались как на видео, сейчас они у меня просто уменьшаются вместе с контейнером (контейнер VBox, внутри которого HBox).
Аноним 30/10/23 Пнд 22:51:13 911569 124
>>911526
Смысл вообще цепляться за этот образ, это цвета флага Аргентины, движок давно стал международным, сам Хуан перекатился в Испанию от поборов, фонд зарегистрирован в Голландии, а W4 Games в Ирландии.
Аноним 30/10/23 Пнд 22:56:42 911570 125
>>911569
У флага Аргентины другие цвета. Даже синий там другого оттенка. А зеленого, черного, розового там нет совсем.
Аноним 30/10/23 Пнд 23:10:54 911573 126
1698696603305.jpeg 8Кб, 130x187
130x187
>>911570
Чел, у нее поэтому была белая прядь посередине.
Аноним 30/10/23 Пнд 23:18:15 911577 127
image.png 358Кб, 403x335
403x335
>>911573
Тащемта Хуан - шотландец.
Аноним 30/10/23 Пнд 23:21:29 911578 128
>>911526
>по канону
Цвет глаз не канон, годотная башка канон, а значит только прическа с проседью канон, остальное любое
Аноним 30/10/23 Пнд 23:46:38 911581 129
https://docs.godotengine.org/en/stable/tutorials/io/saving_games.html

Для сейвов/загрузки есть какие-нибудь альтернативы вот такому ручному отслеживанию и восстановлению переменных? Как я понимаю можно тупо сцену целиком сохранять, но там проебутся все переменные, которые не export
Аноним 31/10/23 Втр 00:40:55 911588 130
😻😻😻.mp4 5174Кб, 480x640, 00:00:33
480x640
Аноним 31/10/23 Втр 00:43:50 911590 131
1698666385075.jpg 138Кб, 400x600
400x600
>>911471
Какой же годот все-таки классный движок
Аноним 31/10/23 Втр 01:24:48 911593 132
все нормально.png 200Кб, 714x440
714x440
проблема.png 215Кб, 765x587
765x587
>>910890 (OP)
Только начинаю вникать в этот великолепный мир шейдеров и столкнулся с проблемой. Есть вот такой шейдер: https://pastebin.com/Pkte3PGJ
И, вроде, все хорошо, но когда спрайт подходит к границам видимой области, то начинает тянуться шлейф. Я понимаю, что это происходит из-за distraction_strenght, но почему это происходит - понять не могу. Помогите, пожалуйста.
Аноним 31/10/23 Втр 05:59:07 911602 133
6.png 692Кб, 1024x2048
1024x2048
8.png 645Кб, 1024x2048
1024x2048
10.png 754Кб, 1024x2048
1024x2048
12.png 534Кб, 1024x1223
1024x1223
>>911526
>>911543
держи, отдельно сгенерил каждую, потому что промт разный должен быть
Аноним 31/10/23 Втр 07:55:37 911608 134
>>911581
> Для сейвов/загрузки есть какие-нибудь альтернативы вот такому ручному отслеживанию и восстановлению переменных?
Есть.
Если вкратце, тебе нужен объект-синглтон для сериализации (назовём его world_data). Это одна из редких задач, где синглтон реально нужен и антипаттерном не является.
Вся остальная игра состоит из объектов синхронизирующихся с этим объектом, ворлд-датой. При своей загрузке, они запрашивают данные для себя у ворлд-даты, при своей выгрузке, или при наличии изменений, они самостоятельно загружают данные в вордл-дату.
Само же сохранение в файл в этом случае будет сериализацией всего одного объекта - ворлд-даты.
Сохранение контрольных точек в оперативке? Изи.

Загрузка сейва не должна выгружать текущую сцену принудительно. Загрузка сейва только загружает ворлд-дату, которая испускает сигнал "я обновилсо". После чего, куррент-сцена и объектты на ней, которые у тебя подписаны на сигналы ворлд-даты, действуют соответствующе. Если сейв хранил данные о другой локации, то куррентлокация выгружается полностью, и загружается локация по имени из сейва. Если же локация соответствует, то просто обновляются параметры. Встают мёртвые враги. Телепортируются в места, где должны стоять. Стейтмашины переключаются в те стейты, которые должны. И так далее.

И еще. В ворлд дате хранятся именно имена, в контексте "бизнес-логики" игры. Никаких путей, никаких сцен. Только имена и цыфры.

Думой.
Аноним 31/10/23 Втр 10:20:55 911661 135
Бляяяя. Заморочки какие-то со слоями, узлами, древами. Кароче, есть узел control, к нему весь интерфейс привязан. Один из таких элементов control нода для элементов инвентаря. У нее дочерняя сцена инвентаря. И вот мне нужно, что бы когда я наводился на ноду control инвентаря, у меня отправлялся сигнал в скрипт. Окей, через _mouse_on() работает. Только получается так, что у control в инспекторе mouse filter должен быть на ignore, что бы у меня кликалось на элементы самого инвентаря на которые нужно, но блядский ignore игнорирует не только нажатие, он вообще всё игнорирует включая наведение мыши. И как прикажете это фиксить? Я уже все что можно попробовал, и какие то z-index'ы, и маски, хуяски. Почему так заморочено то, нельзя было сделать на разный импут разный фильтр? Пиздец.
Аноним 31/10/23 Втр 12:31:36 911685 136
>>911602
Нужна thicc версия.
Аноним 31/10/23 Втр 12:54:43 911687 137
>>911608
Интересно. Попробую. Ручной работы много, правда. Сейвы - самая унылая часть геймдева. Третий раз их делаю и третий раз страдаю.
Аноним 31/10/23 Втр 13:00:08 911689 138
>>911661
Попробуй pass вместо ignore. Pass позволяет кнопке получить инпут, а потом передает весь ее инпуп родителю.

Еще ты все еще можешь поймать инпут в этой кнопке даже не смотря на ее игнор. Я себе для тач-контроля вот так сделал: https://pastebin.com/9vFLW6BM

Но тебе лучше через пасс.
Аноним 31/10/23 Втр 13:17:43 911696 139
4.png 778Кб, 1024x2048
1024x2048
Аноним 31/10/23 Втр 13:27:09 911699 140
Аноним 31/10/23 Втр 13:29:12 911700 141
>>911699
движок для траханья*
Аноним 31/10/23 Втр 13:34:03 911702 142
>>911696
Наделал бы с ней классов-наследников
Аноним 31/10/23 Втр 13:36:32 911703 143
>>911687
> Ручной работы много, правда.
Если всё организовать правильно, то вся работа будет делаться один раз.
> Третий раз их делаю и третий раз страдаю.
Годотред спешит на помощь. Давай пройдёмся по деталям моего предыдущего поста. Всё ли ясно как реализовывать? Может что-то подробнее обеснить?
Аноним 31/10/23 Втр 13:59:12 911709 144
>>911702
Вряд ли она бы дала безигорнику.
Аноним 31/10/23 Втр 14:00:19 911710 145
>>911709
Она была рождена для безыгорных
Аноним 31/10/23 Втр 14:04:55 911711 146
>>911703
Да-да, я понял, давай без странностей.
Аноним 31/10/23 Втр 14:20:39 911718 147
1698751238023.png 59Кб, 474x553
474x553
>>911711
> давай без странностей
На.
Дальше сам.
Аноним 31/10/23 Втр 14:54:00 911727 148
4.png 6703Кб, 3840x2160
3840x2160
Аноним 31/10/23 Втр 14:56:44 911730 149
>>911727
Это тоже нейронка замутила??
Аноним 31/10/23 Втр 15:02:50 911735 150
>>911730
Да, сделал артик вам, раз такое дело.
Аноним 31/10/23 Втр 15:03:48 911736 151
>>911727
представляю как там воняет
Аноним 31/10/23 Втр 15:04:59 911737 152
image.png 152Кб, 645x716
645x716
Аноним 31/10/23 Втр 15:22:57 911745 153
Аноним 31/10/23 Втр 15:43:04 911747 154
>>911727
Лицо не то. Я представлял такое лицо у гендира Юнити, когда он роялти всем вводил.
Аноним 31/10/23 Втр 16:37:51 911753 155
Аноним 31/10/23 Втр 16:41:22 911754 156
Аноним 31/10/23 Втр 16:56:36 911759 157
>>911754
А вот это хз, с гуями плаваю. Обычно на рандоме тыкаю параметры, которые похожи на то, что мне надо, и нахожу нужные.

Но вообще, попробуй вместо двух бокс-контейнеров использовать один FlowContainer, он организует элементы как слова на строке: с автопереносом и выравниванием типа "justify".
Мин сайз надо ставить не контейнеру, а самим кнопкам. И залезть к ним в SizeFlags, поставить галки Fill + Expand, чтобы они занимали всё доступное пространство в контейнере.

Ремарка: это всё в тройке; как там что перепилили в четвёрке - я вообще зх.
Аноним 31/10/23 Втр 17:10:26 911762 158
>>911689
С pass у меня не работает должным образом.
Аноним 31/10/23 Втр 17:48:01 911767 159
Гододи перешли на новую тактику - заманивают в свою секту аниме сиськами.

Довольно низко, нечестный прием.
Аноним 31/10/23 Втр 17:59:06 911768 160
Как избежать подачи сигнала _mouse_exited(), когда курсор попадает на дочерние элементы ноды?
Аноним 31/10/23 Втр 18:00:19 911769 161
6.png 5484Кб, 2048x3072
2048x3072
Аноним 31/10/23 Втр 18:03:00 911770 162
>>911769
Когда тебя выкупили корпорации и сделали closed-source
Аноним 31/10/23 Втр 19:13:45 911775 163
image.png 1284Кб, 1000x1000
1000x1000
Видео-31-10-202[...].mp4 8105Кб, 1274x714, 00:00:25
1274x714
Почти закончил просмотр гайдов хёрт биста и впал в уныние. Ещё из-за своих правок, выскакивают баги то тут то там, которые исправляю сутками. Как дальше жить, не знаю, пойду нажрусь
Аноним 31/10/23 Втр 19:21:55 911779 164
>>911775
Это норма. Я в своей первой игре тоже тупил неделями на простейших задачах. Теперь вжух и геймджам. Все приходит с опытом, продолжай делать игры.
Аноним 31/10/23 Втр 19:23:01 911780 165
>>911775
Синие собаки хороши. Им в напарники нужны зеленые
Аноним 31/10/23 Втр 19:42:02 911782 166
Видео-31-10-202[...].mp4 8105Кб, 1274x714, 00:00:25
1274x714
>>911780
Они ещё ебашить будут прикольно, но надо будет перерисовать, тк на двух ножках всего в 16 пикселей и попадают по яйцам
>>911779
Особенно смуту сеет то что старания напрасны могут быть, тк я пилю менеджер в опенворлде, с различными фичами типа банд, кредитов, казино и тп, а из-за графики мало кто оценит. Но надо пилить, согласен
Аноним 31/10/23 Втр 19:42:47 911783 167
Видео-31-10-202[...].mp4 155Кб, 516x350, 00:00:06
516x350
Аноним 31/10/23 Втр 20:21:40 911789 168
>>911783
У тебя на моменте, когда хуйня встает, она телепортируется на пару пикселей к центру. Лучше исправь
Аноним 31/10/23 Втр 20:43:52 911791 169
image.png 906Кб, 1280x720
1280x720
Аноним 31/10/23 Втр 21:05:13 911793 170
>>911727
На Алину Рин похожа...
Аноним 31/10/23 Втр 21:18:20 911796 171
Всем ребятам, всем привет. Движок просто класс! А есть ли игры на этом движке? Ну, я имею ввиду шутеры от первого лица
Аноним 31/10/23 Втр 21:28:15 911798 172
>>911593
Неужели никто в шейдерах не разбирается?
Аноним 31/10/23 Втр 21:34:17 911799 173
image.png 72Кб, 324x717
324x717
>>911798
Не вижу никакого шлейфа. Если ты про пикрил, то это фон полосы прокрутки.
Аноним 31/10/23 Втр 21:44:14 911800 174
16079757674750.jpg 11Кб, 320x320
320x320
В годоти что нет RaycastAll()?
Нельзя запустить луч с бесконечной длиной?
SphereCast нету, нужно ноду какую-то создавать, что за наркомания?
Аноним 31/10/23 Втр 21:45:43 911801 175
>>911800
>нужно ноду какую-то создавать
описал литерали любое действие в годоте
Аноним 31/10/23 Втр 21:50:23 911803 176
14868369523040.jpg 14Кб, 250x250
250x250
>>911801
Ну блять, для рейкаста не надо, почему для сферкаста надо? Какой-то элементарщины нету, пишут, что raycastall можно самому заскриптить, в цикле перезапускать из точки столкновения, вообще ебануться движок
Аноним 31/10/23 Втр 22:09:27 911808 177
1.png 273Кб, 649x360
649x360
2.png 249Кб, 647x360
647x360
>>911799
Взял картинку, на которой получше будет. Если изображение не у края экрана, то все нормально, если у края, то получается, как на втором.
Аноним 31/10/23 Втр 22:23:11 911810 178
>>911808
Пон. Хз, может визуальный баг? В игре нормально отображается:?
Аноним 31/10/23 Втр 22:29:06 911811 179
>>911810
Точно так же. Вообще, я понимаю из-за чего это. В 15 строчке эта часть "SCREEN_UV + distraction_strenght * vec2(depth)" может стать больше 1.0(Максимум для UV координат, на сколько я понимаю), но как это обойти - не понимаю.
Аноним 31/10/23 Втр 22:33:51 911812 180
>>911811
Но это не точно, я шейдеры почти не понимаю.
Аноним 31/10/23 Втр 22:39:55 911813 181
>>911811
Начинай с самого тупого и простого, хуярь if со сранением >= 1. Дальше уже пляши от этого, если работает.
Аноним 31/10/23 Втр 22:42:47 911815 182
>>911813
Да вот непонятно, что делать потом. Вот жду специалиста по шейдерам, может что подскажет, так как не хочется менять этот шейдер на другой. Этот самый красивый.
Аноним 31/10/23 Втр 23:02:09 911821 183
>>911815
На реддите спроси, там больше шансов.
Аноним 31/10/23 Втр 23:14:34 911823 184
>>911821
Видимо, придется.
Аноним 31/10/23 Втр 23:20:46 911826 185
>>911823
Но все равно буду рад, если кто здесь ответит.
Аноним 31/10/23 Втр 23:28:20 911827 186
>>911821
Еще дискорд есть, очень активный.
Аноним 31/10/23 Втр 23:35:05 911828 187
Оцените ок ли организация скриптов для уровней. Есть базовый код, который должен быть у всех уровней. При этом есть особые уровни, каждый из которых требует парочку своих дополнительных функций.

Планирую так. Сделать LevelBase.gd, прикреплять ко всем уровням. Потом, если понадобится дополнительный функционал, открепляю LevelBase.gd от уровня, и вместо этого делаю ему Level666.gd, который наследует от базового, extends "res://LevelBase.gd"

Ок способ? Или есть получше?
Аноним 31/10/23 Втр 23:46:46 911830 188
>>911827
А можно ссылочку?
Аноним 31/10/23 Втр 23:51:19 911831 189
Аноним 31/10/23 Втр 23:58:15 911832 190
>>911831
Спасибо, спросил ещё и там.
Аноним 01/11/23 Срд 00:11:03 911834 191
Годаны, а вы пользуетесь метаданными? Я чёт ни разу. Для чего они вообще нужны? Я вот между
>var foo
>if node.has_meta("bar"):
> foo = node.get_meta("bar")
и
>var foo
>if node.get("bar") != null:
> foo = node.bar
не вижу принципиальной разницы, но второй вариант как-то больше контроля имеет.
Есть какие-нибудь живые примеры использования из личной практики?
Аноним 01/11/23 Срд 00:26:49 911835 192
>>911834
Ну тут скорее как в программировании, когда якобы дублиррубющийся код, на самом деле первый вариант показывает кодерку конкретно, что он работает с метой, а во втором примере хуй знает что-то "бар" сравнивается с налл. Годотом не пользуюсь, поэтому не знаю, на сколько это приминимо к нему.
Аноним 01/11/23 Срд 00:43:47 911837 193
>>911828
> Ок способ? Или есть получше?
Это ты легаси нарисовал, которое было в двушке и первых версиях трёшки. Потом ввели class_name.

По современному будет так:
> Сделать class_name LevelBase, прикреплять ко всем уровням. Потом, если понадобится дополнительный функционал, открепляю LevelBase.gd от уровня, и вместо этого делаю ему Level666.gd, который наследует от базового, extends LevelBase
Аноним 01/11/23 Срд 00:47:15 911838 194
>>911834
> живые примеры использования из личной практики?
Практика не личная, но пример живой: аддон Dialogic для создания диалогов, весь работает на метаданных. Я когда его ковырял, тестировал, долго не мог понять, что там за магия, что диалоговые данные волшебным образом хуяк - и появились сохраннные. А потом обнаружил, что они в метаданные пишутся.
Аноним 01/11/23 Срд 00:49:09 911840 195
>>911837
>class_name
Бля, точняк. Спасибо.
Аноним 01/11/23 Срд 01:53:13 911842 196
>>911832
Найдёшь решение, сюда запости, вдруг кому пригодится.
Аноним 01/11/23 Срд 04:07:44 911844 197
Делайте игры.
Аноним 01/11/23 Срд 07:28:24 911855 198
>>911791
ну дык сначала мелкософт должен почесатся и выпустить таки нет8 в релиз

>>911815
насколько помню у текстур в импорте должен быть параметр как обрезать. там должны быть варианты кламп/врап/стретч

иф не используй шейдеры не любят ифы(хотя компилятор скорее всего разберет их во что-то типа того что ниже)

vec2 uv = SCREEN_UV + distraction_strenght vec2(depth)
vec4 test
test.xy = step( vec2(1.0),uv) //права низ
test.zv = vec2(1.0) - step(vec2(0), uv) //лево верх
float newa = 1 - step(1.0, test.x + test.y + test.z + test.z); //если где-то вышли за границы (0,1) - получаем 0
.....
COLOR.a
= newa; // и этот пиксель не рисуется
Аноним 01/11/23 Срд 07:32:52 911856 199
изображение.png 10Кб, 442x129
442x129
>>911855
сука форматирование
Аноним 01/11/23 Срд 07:39:57 911857 200
>>911800
>В годоти что нет RaycastAll()?
>Нельзя запустить луч с бесконечной длиной?
>SphereCast нету, нужно ноду какую-то создавать, что за наркомания?
Этого нет и не будет, потому что Хуан считает, что это избыточно, это всё можно накодить самому. Там всё по такому принципу.
Аноним 01/11/23 Срд 10:47:17 911897 201
>>911857
Не ну игровой движок тоже можно накодить самому, хули. Операционную систему тоже.
Аноним 01/11/23 Срд 10:58:12 911901 202
>>911803
Шейпкаст делается точно так же как и рейкаст.

Хочешь - ноду ставишь
Хочешь - вручную запрашиваешь сервер физики

PhysicsDirectSpaceState2D -> intersect_shape()
Аноним 01/11/23 Срд 11:01:01 911902 203
>>911901
PhysicsDirectSpaceState3D то есть
Аноним 01/11/23 Срд 12:38:36 911908 204
В скрипте ноды 1 следующее:

var item = ITEM.instantiate()
item_container.add_child(item)
item.connect("gui_input", _on_gui_input)

Потом в функции _on_gui_input():

print(gui_input.get_object()) выдаёт почему-то ноду скрипта 1, хотя в документации написано >Returns the object emitting this signal.
Главное сигнал издается как раз правильно, когда нажимаю на тот самый item. Почему так?
Аноним 01/11/23 Срд 12:38:47 911909 205
юнитиребёнок плачется, что нельзя просто накидать говна и получить игру, а приходится самому что-то там писать, спешите видеть
Аноним 01/11/23 Срд 12:39:59 911910 206
image.png 22Кб, 455x158
455x158
>>911855
>сначала мелкософт должен почесатся и выпустить таки нет8 в релиз
Не ждём, а готовимся!
Аноним 01/11/23 Срд 12:43:00 911911 207
1698831778421.png 190Кб, 400x400
400x400
>>911856
> сука форматирование
А што если на пастебин выкладывать код? Да не, хуйня какаята. Лучше продолжать бороться с разметкой.
Аноним 01/11/23 Срд 12:57:25 911916 208
>>911911
Лучше бы макака [code][/code] ввела. В /pr же был.
Аноним 01/11/23 Срд 13:04:44 911918 209
Анонсы, обесните что за хуйня тут происходит.

Есть (не моя) игра: https://broelbrak.itch.io/nextdoor

Почему у нее так много комментариев? Почему так много ВИДЕО? Я покликал по этим летсплеям - все они от ноунеймов с 20-40 просмотрами. Итч какие-то ачивки этим людям дает? Или что? Или это боты? Откуда это все? Как стать таким же успешным?

Причем у этого автора есть вторая игра, и на ней совсем другая картина - 3 комментария за 2 года. Как и на моих играх. То есть это даже не автор суперзвезда.

Уже не первый раз натыкаюсь на подобный наплыв восторженных летсплейщиков. Что за хуйня?
Аноним 01/11/23 Срд 13:12:22 911923 210
>>911916
Ну пока что не ввела. Жаль.
Аноним 01/11/23 Срд 13:13:15 911924 211
>>911918
> Что за хуйня?
Слэшдот эффект называется.
Аноним 01/11/23 Срд 13:15:35 911925 212
image.png 458Кб, 640x480
640x480
Аноним 01/11/23 Срд 14:00:07 911938 213
>>911918
> Short cinematic pixel horror game inspired by Junji Ito's manga.
> Как стать таким же успешным?

А у тебя тоже короткий пиксель арт хоррор по сценарию знаменитого мангаки?
Аноним 01/11/23 Срд 14:01:37 911940 214
>>911924
Но что за наплыв ютубовских ноунеймов? Покликай их. Они все как один. Хотя, без сомнения, живые люди, светящие своим лицом.

>>911938
Я видел похожий положняк и по играм не основанным ни на чем.
Аноним 01/11/23 Срд 14:08:48 911943 215
1698836927232.png 65Кб, 709x433
709x433
>>911940
Пиздуй в гугл, читай матчасть, хватит срать в треде, блядь.
Аноним 01/11/23 Срд 14:11:08 911944 216
>>911943
Да знаю я про твой слешдот эффект. И реддит эффект. И ЛОР эффект, и хабр эффект, и любая залупа-нейм-эффект. Объясняет наплыв, не объясняет идентичность и ботоподобность.
Аноним 01/11/23 Срд 14:16:51 911945 217
>>911940
Ладно, открою секрет успеха.
Игра должна нормально выглядеть и бесплатно а еще запускаться в браузере, но это уже совсем пушка будет

Ну и еще это должен быть хоррор, открой главную и посмотри что там в популярном - одни сплошь хорроры.
Аноним 01/11/23 Срд 14:18:47 911947 218
>>911944
Объясняет.
Просто ты упорно отказываешься идти и читать.
> двач, я ем с ножа.jpg
Аноним 01/11/23 Срд 15:50:33 911966 219
image.png 85Кб, 953x591
953x591
Заебало это говно, нет чтобы на каждую функцию пример сделать как в юнити, я не прогер, нихуя непонятно. Годот уже десять лет существует, инфы мизер, хуан специально меняет названия чтобы было сложнее!
>>911901
>PhysicsDirectSpaceState2D -> intersect_shape()
Так или что?
Аноним 01/11/23 Срд 15:57:17 911970 220
Аноним 01/11/23 Срд 16:02:44 911972 221
>>911970
Да разговор про shape ебучий, Хуан реально заставляет создавать круг, еще бы заставлял координаты каждой точки окружности вписывать, издевается
Аноним 01/11/23 Срд 16:04:55 911975 222
>>911972
А может проблема X-Y? Не? Я просто не вникал в предыдущий дискасс. Мимокрокодил. В чём задача?
Аноним 01/11/23 Срд 16:14:50 911979 223
>>911975
Проблема в том, что Хуан пидарас, ему такую функцию написать три секунды, а я пол часа сидел. У него во многом ошибочные представления. Недавно он написал, что посмотрел стримы изучающих годот и ахуел, что все пытаются сразу создать куб как в юнити и не могут найти, типо не знал, что это так популярно. Я тоже так же пытался, представляю десятки тысяч людей тыкались в непонятках из-за этого одного клоуна. Избыточно, говорит, сферкаст делать, петух
Аноним 01/11/23 Срд 16:18:47 911982 224
>>911979
> У него во многом ошибочные представления.
А вот копипаста из растотреда в /пр/. Как раз в тему.

> > > Хранить трансформацию в виде матрицы поворота и вектора смещения - не самая здравая идея.
> > А вот тут поподробнее. Я на двачах слышал ровно противоположное. Что матрица трансформации это на порядок более-лучшее решение, чем квартернионы, мало того что устраняют гимбал лок эйлеровских осей, так ещё и устраняют кукую-то траблу, которую порождают квартернионы.

> >А вот тут поподробнее.
> Матрица кроме ориентации и скейла хранит еще наклон осей (skew, оси могут быть не ортогональны), если ты например, трансформацию анимируешь, то надо на каждый чих матрицу править - ортонормировать, проверять что длина векторов единичная (если скейла нет, если есть - будет копиться ошибка), если матрица 4х4, очищать нижний ряд (0 0 0 1). Матрица может неожиданно стать вырожденной, тогда ее уже никак не поправить. Т.е. в матрице слишком много лишней информации для хранения ориентации. С кватернионом все проще - нормализовал и все. Плюс физика со скейлом (особенно неюниформным) совсем не дружит, т.е. для физики нужна будет отдельный вид трансформации без скейла. Ну и матрицы будут тормознее даже без проверок, например, инверсия трансформации с кватернионом гораздо проще и быстрее. Ну и сами кватернионы идеологически проще, если их понимаешь.
Аноним 01/11/23 Срд 16:40:57 911987 225
image.png 15Кб, 1088x117
1088x117
Аноним 01/11/23 Срд 17:54:48 912018 226
Подскажите. У объектов есть гет: https://docs.godotengine.org/en/3.5/classes/class_object.html#id1

Я могу сделать, например, get("transform"). А могу ли я сделать что-то типа get("Pivot/Body.transform")?

То есть, я конечно могу написать вспомогательную функцию, которая будет разделять пути и трансформировать запрос в get_node("Pivot").get_node("Body").get("transform"), но нет ли чего готового?

Делаю на тройке.
Аноним 01/11/23 Срд 18:02:32 912021 227
Аноним 01/11/23 Срд 19:13:52 912032 228
>>912021
Работу когда найдешь?
Аноним 01/11/23 Срд 19:48:24 912042 229
🙀🙀🙀.mp4 832Кб, 562x572, 00:00:12
562x572
>>912032
Неожиданный сюжетный поворот.
Аноним 01/11/23 Срд 20:15:50 912055 230
Аноним 01/11/23 Срд 20:31:44 912064 231
>>911855
Спасибо за попытку анон, но теперь просто шейдер просто ничего не рисует в том месте, где раньше шлейф был.

Ну, а на реддите и в дискорде даже не ответили.
Аноним 01/11/23 Срд 21:16:49 912091 232
>>912064
Так, хорошо. А что он должен рисовать? И откуда ему эту информацию взять?
Я другой анон, есичо, но тут обитаю и всю эту проблему наблюдаю с самого начала. Просто в шейдерах не спец, поэтому не думал, что чем-то помогу. А щас вник...
Вот строчка 15:
>SCREEN_UV + distraction_strenght vec2(depth)
Тут ты выходишь пипеткой за границы текстуры экрана.
Попробуй клампануть это выражение, типа:
>clamp(SCREEN_UV + distraction_strenght
vec2(depth), vec2(-1.0, -1.0), vec2(1.0, 1.0))
Аноним 01/11/23 Срд 21:18:07 912093 233
>>912091
Только не уверен, в каких границах надо клампать. Вроде от -1 до 1, но там сам проверяй.
Аноним 01/11/23 Срд 22:05:13 912125 234
без шейдера.png 51Кб, 1366x768
1366x768
С шейдером.png 886Кб, 1366x768
1366x768
>>912091
Шейдер берет и искажает изображения под ним так, будто оно находится под водой. Но побочных эффектом является то, что изображение сдвигается влево вниз под шейдером относительно оригинального изображения. Думаю в этом основная проблема и из-за этого выходит за границу текстуры.

К сожалению, твой вариант не работает.
Аноним 01/11/23 Срд 23:01:06 912146 235
Снимок.PNG 45Кб, 905x475
905x475
Снимок2.PNG 48Кб, 747x406
747x406
Ребят, а как сделать чтоб неписи передвигались только .Х координатам? А то чет они у меня левитируют когда прост ходят
Аноним 01/11/23 Срд 23:19:23 912150 236
Сделайте за меня игру? Сложно штоле?
Аноним 01/11/23 Срд 23:31:58 912153 237
image.png 1139Кб, 700x917
700x917
>>912150
Раньше люди в сложнейших условиях создавали шедевры игропрома, а сейчас для тебя все движки бесплатные, нейронки на любой вкус, а ты что
Аноним 02/11/23 Чтв 01:37:35 912170 238
>>912125
Я потыкал твой шейдер у себя и имею сказать следующее.
1. Покажи настройки шума water_noise и water_noise2. Или ты там просто картинки воды используешь?
Я у себя создал NoiseTexture / OpenSimplexNoise, получил ОЧЕНЬ глубокие искажения на дефолтных настройках. Чтобы получить что-то похожее на твои скрины, пришлось убрать distraction_strength примерно до 0.02, но вместе с ним ожидаемо ушёл и краевой глитч. А у тебя, походу, исходные шумы очень светлые, почти всегда близки к 1.0.
2. Нашёл очень элегантное решение. На строке 13, где текстуры умножаются, заменить умножение на вычитание. Ну и кламп на 15 строке оставить, чтобы не вылезать за пределы текстуры вьюпорта.
Аноним 02/11/23 Чтв 02:26:32 912172 239
>>912125
Вообще, на самом деле, это очень простой шейдер, щас тебе быстро объясню.
Надеюсь, строки с объявлением переменных объяснять не надо.
Шейдеры устроены так, чтобы можно было их легко распараллелить. Как? Просто работаем с каждым пикселем параллельно и всё. Таким образом, шейдер описывает, в какой цвет следует покрасить один пиксель на экране.
SCREEN_UV - координаты нашего пикселя. (0,0) это центр экрана, (1,1) это правый верхний угол.
SCREEN_TEXTURE - указатель на текстуру экрана.
Мы не можем работать с целыми текстурами, можем только доставать из них отдельные пиксели. Собственно, именно этим и занимается функция
texture(tex, uv), где tex это указатель на текстуру, а uv это координаты доставаемого пикселя.
Рассмотрим подробнее, что происходит с координатами на строке 13:
UV + scroll TIME
TIME это постоянно тикающее время, scroll - коэффициент, который это время сжимает. UV (локальные координаты) в данном случае можно заменить на SCREEN_UV, всё равно у нас тут полноэкранный шейдер, локальные координаты совпадают с глобальными. Текстура шума бесконечная, а значит её можно скроллить сколько угодно, то есть нам не обязательно обнулять TIME.
Итак, на 13 строке мы добыли пиксель текстуры шума одной и второй. Это значение находится в диапазоне от 0.0 до 1.0. При умножении, соответственно, мы остаёмся в этом диапазоне. А при вычитании уже получается от -1.0 до 1.0.
Ещё обращаю внимание: мы здесь берём только один канал текстуры, потому что float.
Дальше наконец мы лезем в текстуру вьюпорта, чтобы добыть из неё цвет пикселя. Нам нужен весь цвет, так что выбираем тип vec4. Вообще, texture возвращает тот тип данных, который мы от неё запросим.
Итак. Мы хотим взять пиксель вьюпорта. Но не тот, который сейчас обрабатывается, а какой-то рядом, чтобы было искажение. То есть, берём SCREEN_UV и сдвигаем на размер искажения. За силу этого сдвига отвечает юниформ distraction_strenght, а за рандомность - полученное в 13 строке depth. Соответственно, некоторые пиксели в правой-верхней части экрана получат UV-координаты больше 1.0 и, таким образом, попадут за пределы текстуры. Эту проблему решает clamp, он возвращает нас из-за пределов текстуры ровно на её границу. Так что несколько пикселей, слишком близких к краю, будут взяты из одного и того же пикселя на краю.
Дальше строчка top_light.
smoothstep(light_start,light_end,depth) - это мы находим число от 0.275 до 0.4 (при дефолтных юниформах), где значение depth (снова 13 строка) определяет, насколько оно близко к 0.4. Умножив на цвет top_color, мы получили линейный сдвиг цвета, который используем ниже.
Послоедняя строчка.
screen_color
tone_color - мы взяли полученный ранее пиксель вьюпорта и окрасили его в цвет тона.
+ top_light - тут мы не просто окрашиваем. При больших зачениях топлайта мы можем вылезти за пределы 1.0 по всем каналам. Тогда пиксель окрасится в белый, только и всего.
Ну и наконец. COLOR = здесь мы присваиваем пикселю на экране то значение, которое насчитали. Какому пикселю? Тому самому, с которым всё это время работали. Напомню, в шейдере мы работаем с одним пикселем, то есть со всеми сразу параллельно. И вот тут-то мы ретёрним его значение.
Вот как-то так.
Аноним 02/11/23 Чтв 11:50:07 912216 240
1698914776.png 35Кб, 888x204
888x204
1698914786.png 14Кб, 662x75
662x75
Игры делать лень.
Давайте лучше программистские загадки разгадывать?
Как я сделал пикрелейтеды? Именно, какова реализация?
Ответ завтра.
Аноним 02/11/23 Чтв 12:56:48 912240 241
>>912216
Играешься с каким-нибудь name или class_name. Крч с форматом, которым твой класс печатается в строку.
Аноним 02/11/23 Чтв 12:59:22 912241 242
>>912240
>>912216
Важное дополнение. Ответы принимаются в виде скрина кода, делающего аналогичное.

И вдогонку вопрос. Будет ли утечка памяти после выполнения этого кода? Впрочем, ответ на этот вопрос ждать смысла нет, поэтому ответ под спойлером.
Аноним 02/11/23 Чтв 13:47:34 912252 243
Читайте документацию, пидоры.
страдал 2 дня ради нихуя
Аноним 02/11/23 Чтв 13:58:07 912255 244
>>912252
А это между прочим в шапке написано (в новой модной шапке по ссылке).
Аноним 02/11/23 Чтв 15:37:36 912266 245
>>912255
Сейчас бы еще шапки читать, когда даже документацию не читаешь.
Аноним 02/11/23 Чтв 16:11:33 912278 246
F93HMPWX0AAkFpa.mp4 31Кб, 614x326, 00:00:13
614x326
Аноним 02/11/23 Чтв 17:11:23 912289 247
>>912170
Спасибо огромное, анон! Реально помогло вычитания.

И спасибо тебе за объяснение! >>912172 я даже понял почему помогло вычитание.

Добра тебе и храни тебя Хуан!
Аноним 02/11/23 Чтв 17:38:54 912295 248
Аноним 02/11/23 Чтв 17:59:14 912305 249
>>912289
Кста, можно ещё вот что, забыл ночью написать, хотя думал.
clamp всё равно создаёт артефакты по краям. Но можно и без клампа. Можно vec2(depth) домножать на
>(vec2(1.0) - abs(SCREEN_UV)).
Тогда эффект искажения будет тем менее интенсивен, чем он ближе к краю. А если тут вместо abs(SCREEN_UV) сделать SCREEN_UV * SCREEN_UV, то спад интенсивности будет не такой заметный. Можно вообще pow(abs(SCREEN_UV), n) и поиграться со значениями n.
Аноним 02/11/23 Чтв 20:30:52 912373 250
>>912305
Честно говоря, вообще не заметил артефактов, когда тестировал. Но спасибо, попробую! А то вдруг в будущем вылезут проблемы без этого.
Аноним 02/11/23 Чтв 20:57:32 912377 251
>>912295
> Обновляйтесь
scoop update godot
Аноним 03/11/23 Птн 00:13:03 912403 252
Пятница вечер, а игры никто не делает.
03/11/23 Птн 01:04:18 912412 253
>>912403
Даже на Сахалине ещё не вечер, шиз.
Аноним 03/11/23 Птн 01:07:57 912413 254
>>912412
Пятница НОЧЬ, а игры никто не делает.
Аноним 03/11/23 Птн 11:46:40 912457 255
1699000954.png 91Кб, 810x455
810x455
>>912216
А вот и обещанный ответ. Впрочем, всем похуй.
Аноним 03/11/23 Птн 12:57:00 912473 256
Аноним 03/11/23 Птн 17:48:34 912516 257
1699022914969.png 19Кб, 744x511
744x511
Вторая загадка от Михаила из Твери. Что изображено на картинке?
Время пошло.
...
Отвечает Александр Друзь:
Аноним 03/11/23 Птн 19:01:05 912533 258
>>912516
> Что изображено на картинке?
Твое избегание игростроя?
Аноним 03/11/23 Птн 19:09:57 912534 259
>>912516
какой-то двухсвязный список или что-то типа того
Аноним 03/11/23 Птн 22:10:59 912578 260
Сидишь такой, пытаешься понять почему редактирование export переменных не работает, а потом замечаешь что запускаешь сцену1, а редачишь сцену2, блять.
Аноним 03/11/23 Птн 22:31:35 912580 261
1699039894895.png 89Кб, 717x776
717x776
>>912534
> какой-то двухсвязный список
Бинго!
Я сделяль на гдскрипте двусвязный зацикленный список. Называю его RingedList. У него есть забавные свойства, например то, что без дополнительных проверок попытка его обхода будет крутиться бесконечно. Ну точнее, до переполнения стека вызовов.

Вот сижу и думаю, как бы его применить? Сделать на его основе загадки с сейфом? Взлом замков?

Вообще, всё это делается на обычных массивах, но почему бы не выябнуться тормозным велосипедным рингедлистом? Ну не игры же делать, в самом-то деле?
>>912533
> Твое избегание игростроя?
Твоё.
Аноним 03/11/23 Птн 23:05:26 912583 262
>>912580
> как бы его применить?
Вообще я плавно подбираюсь к созданию нейросети на гдскрипте. Будет класс нейрон и у него массив синапсов - линков на другие нейроны. И всё это будет многомерным связным списком, в котором сигнал будет уходить вглубь, ветвиться по слоям и обретать сознание, чтобы завоевать мир. Йохохо!
Аноним 03/11/23 Птн 23:08:43 912585 263
>>912583
>завоевать мир
Пусть игру за тебя сделает
Аноним 03/11/23 Птн 23:09:22 912586 264
Аноним 03/11/23 Птн 23:32:07 912592 265
>>912586
Это для тебя единственный вариант
Аноним 03/11/23 Птн 23:41:32 912598 266
Интересно что если сохранить сцену из рантайма, при этом иметь включенным дебаг, то дебаговые меши (коллизии и навигация) тоже сохранятся и перекочуют в не-дебаг.
Аноним 04/11/23 Суб 02:03:25 912622 267
Как бы так реализовать систему событий и скриптинга?
Ничего не нашел в гугле.

Пока что придумал делать блок схему событий во внешнем редакторе, и из нее генерировать класс (простую портянку из функций, ждущих своих сигналов)
Аноним 04/11/23 Суб 02:16:59 912627 268
1669454930749.png 193Кб, 1920x1080
1920x1080
>>912622
Ты имеешь в виду чтобы игрок это делал?
Потому что так то у тебя уже есть гдскрипт и сигналы, лол.
> блок схему событий во внешнем редакторе
Ну вообще есть умельцы которые делают прямо внутри редактора. Что то типа https://godotengine.org/asset-library/asset/1197 Искать по node
Аноним 04/11/23 Суб 02:20:19 912628 269
>>912146
У тебя берется вектор направления между опорной точкой спрайта и опорной точкой цели. Если они на разной высоте, то они и полетят по кратчайшему пути туда.
Аноним 04/11/23 Суб 02:21:51 912630 270
В вебе нельзя же поймать момент выхода из игры? Например если игрок обновил страничку или просто закрыл ее.

MainLoop.NOTIFICATION_WM_QUIT_REQUEST не ловит. Либо не успевает отработать.
Аноним 04/11/23 Суб 02:23:59 912631 271
>>911979
Хуй знает о чем ты, куб создается в полтора нажатия клавиш: + CSGBox.
Либо + MeshInstance, Cube
Либо установкой ассета на прототипирование кубами.
Потому что те, кто ковыряются, должны сначала прочитать доки и посмотреть туториалы, а потом уже включать стрим, чтобы не позориться.
Аноним 04/11/23 Суб 02:34:34 912634 272
>>912630
Скорее всего это не имеет смысла - если начнешь делать сейв или отправлять что-то на сервер, браузер может это прибить. Просто делай свои сейвы регулярно.
Вообще можешь попробовать JS событие https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event и там вроде можно получить окошко "вы действительно хотите закрыть вкладку?" как в gmail когда что-то не сохранил
Но там официально сказано что это ненадежно, особенно на мобилках.
Аноним 04/11/23 Суб 02:43:16 912636 273
>>912634
>Просто делай свои сейвы регулярно.
Да, так и буду. Гениальная идея.
Аноним 04/11/23 Суб 03:03:55 912640 274
>>912627
> Потому что так то у тебя уже есть гдскрипт и сигналы, лол.

Цепочки событий примерно такие:

1. Поставить npc в точку (x,y)
2. Назначить взаимодействию с этим npc диалог с dialogue_id=666
3. Ждать сигнала о том что диалог прочитан
4. Положить в рюкзак ключ
5. Разблокировать дверь с door_id=420
6. Переместить того npc в (x1, y1)

И так далее. И таких цепочек должно одновременно быть несколько независимых
Руками программировать каждый такой скрипт это бред полный, заебешься насмерть

> пикрел
Меня гораздо больше интересует не конкретная реализация, а общие программные принципы.

Я тем или иным способом получил формализованное описание событий, а теперь надо их запустить как-то.

Должна наверное быть какой-то объект, который проходит по этому описанию и выполняет команды?
И как эти события записаны, может быть как (тип,параметры)?

Нашел событие типа X, нашел функцию которая ему соответствует, вызываешь process_event_X(params)

Это я так, просто рассуждаю как может выглядеть система игровых скриптов.

Хочется послушать разные мнения как это можно сделать, или может кто-то знает как это делается в настоящих больших играх, там где программисты большие деньги за это получают.
Аноним 04/11/23 Суб 03:30:24 912642 275
>>912640
Я делаю нечто похожее, только без диалогов. Мой подход - компоненты ссылающиеся друг на друга. Игрок/НПС проходит по кнопке (возможно невидимой), кнопка при нажатии на себя открывает дверь по NodePath, или мост, или ловушку выдвигает. Сундук при взаимодействии с собой проверяет у взаимодействующего наличие ключа-флага. И так далее. Если делать компоненты похожим образом, то их можно зацепочить вот так по десятку, когда одно открывает другое.

Но у нас возможно разные жанры. Предположу что у тебя point-and-click адвенчура?
Аноним 04/11/23 Суб 03:38:13 912645 276
>>912640
Схема представляет собой конечный автомат / FSM / Finite State Machine
Либо несколько, раз они у тебя такие независимые. Также они могут быть иерархичными (HFSM). То есть стейт машина, содержащая другие стейтмашины.
Дальше тебе нужен паттерн команда. Например поставить нпц в точку, отправить нпц идти в точку. Очевидно что у него есть параметры, например id нпц и x,y
Ждать событий не надо, это происходит само. Надо подписываться на нужные сигналы. Когда сигнал срабатывает, выдается нужная команда.
Как ты хранишь данные, хоть в json, хоть в словарях гдскрипта, хоть рисуешь нодами. Потом они заполняют некую структуру узлов
Что представляет собой такой узел? Это вот то что на картинках DialogueNode, с данными, а стейтмашина находится в одном из них, а по сигналам при соблюдении условий переходит в следующий. Связь между ними ты тоже должен прописать. Вроде в предыдущем треде как раз подобное обсуждали.
Конечно программировать все руками не надо, тебе надо запрограммировать только категории событий.
Что вызывает события? Обычно Area когда в них кто-то заходит или залетает.


Отличие от того, что анон выше написал, видимо, в том, что у него сами объекты реагируют и посылают что-то дальше, в этом варианте - есть главный менеджер, который всех слушает и всеми командует. Редактировать имхо его потом проще.
Аноним 04/11/23 Суб 04:24:37 912647 277
Аноним 04/11/23 Суб 04:42:08 912648 278
>>912645
Про паттерн команда не все понял. Кто именно выдает команды? Фсм идет по узлам и выдает команды?

Вот дошли до узла где нужно чтобы продвинуться нужно иметь в инвентаре некий предмет, а дальше как этого дождаться? Инвентарь имеет сигнал item_added.emit(item_name)
Аноним 04/11/23 Суб 06:26:40 912653 279
>>912640
>Руками программировать каждый такой скрипт это бред полный, заебешься насмерть
Компьютер должен угадать, что ты от него хочешь?
Аноним 04/11/23 Суб 07:19:08 912654 280
>>912640
> Руками программировать каждый такой скрипт это бред полный, заебешься насмерть
Ты начинаешь догадываться о том, о чем я предупреждал еще три года назад, и о чем только сегодня начинают говорить: Создание универсальных редакторов игр было ошибкой. Движок это не редактор, движок это код, ядро. Старые игры программировались следующим образом:
1. На этапе предпродакшена продумывается будущая игра.
2. Пишется или берется со стороны движок этой конкретно игры. Движок-код.
3. На движке-коде игры пишется редактор игры. Этой конкретной игры.
4. Уже на игровом редакторе начинается построение мира, расстановка ассетов и сриптов.
5 6 7 8 ПРОФИТ

А когда сделали универсальные движки вскрылась проблема - создавая на универсальном редакторе что-то, ты неизбежно приходишь к выводу, что тебе, для своей игры придётся писать свой собственный редактор-в-редакторе. Оттого и возникают все эти аддоны, диалоджики и прочие. Правильно это или нет - каждый решает для себя сам.

Просто задумайся, если для твоей игры движок предлагает "бред полный, кучу ручной работы", значит у тебя в организации техпроцесса что-то очень сильно не заладилось. Либо тебе нужен движок-без-редактора (так называемый тулкит) и написание собственного редактора, отвечающего твоему техпроцессу, чтобы тебе было удобно; либо создать аддон в годоте; либо пересмотреть свой подход к девелопу.
Аноним 04/11/23 Суб 08:30:06 912673 281
>>912631
Ну может это ты что-то должен, а тебе ничего не должны, люди пробуют, и годот сразу начинает их бесить своей неюзабельностью. Это наблюдения хуана, ему и пиши что он хуйню пишет
Аноним 04/11/23 Суб 08:32:59 912675 282
>>912673
Ну пусть успокоительное попьют, все топовой юзабельности.
Аноним 04/11/23 Суб 08:37:54 912676 283
>>912675
Тебе то лучше знать, чем разрабу годота, да, клоун? Сам успокоительного попей, успокойся там, никто на годоту не нападает
Аноним 04/11/23 Суб 08:39:30 912677 284
>>912654
Ты выпускал коммерчески успешные игры или просто так пиздишь?
Аноним 04/11/23 Суб 08:41:39 912678 285
>>912648
FSM находится в каком-то состоянии, например WaitDialogEnd.
Когда условия перехода дальше сработали, вызывается функция например transition_to_state(new_state)
new_state берется из текущего, тут могут быть описаны развилки, или просто переход дальше.
Соответственно, там может быть указано что у следующего
TriggerCategory = ItemAdded
Arg = GoldenKey66
Вот тут можно и подписаться, напр.
inventory.item_added.connect(self, onitemadded)
в onitemadded(itemname)
if itemname == Arg: next_state()
next_state() делает всякую очистку transition_to(new_state)
Можно еще подумать насчет шини событий (event bus)
ТОгда все подписываются на нее и сигналы шлют в нее
Может иметь смысл если например квест убить 10 волков, но волки спавнятся по 1 значит сразу всех ты подписать не можешь. Или тебе придется подписывать их в момент спавна.
Аноним 04/11/23 Суб 08:42:12 912679 286
>>912676
Ты буквально нападаешь, клоун.
Аноним 04/11/23 Суб 08:46:48 912683 287
>>912679
Не на годоту, а на тебя дурачка, что ты вылез вообще. Я просто написал про твит хуана, твои пояснения как куб создавать это просто смешно.
Аноним 04/11/23 Суб 08:50:18 912684 288
>>912683
Смешно - это не прочитав документацию как поставить куб, подрубать стрим и опозориться, не справившись с элементарным действием. Вот это смешно. Пусть учатся, материалы в открытом доступе.
Ну и ты видимо не понял смысл твита, да.
Аноним 04/11/23 Суб 09:11:14 912688 289
>>912677
> Ты выпускал коммерчески успешные игры или просто так пиздишь?
>>912654
> На движке-коде игры пишется редактор игры. Этой конкретной игры.
Aurora Engine -> Neverwinter Nights, Ведьмак1
NetImmerse (Creation Engine) -> Morrowind, Fallout3
Doom
Quake
Unreal

Всё это примеры игр, для которых на движке-коде запилен утилитарный двиижок-редактор.

Из редактора Unreal, ЧСХ, вырос в конечном итоге современный УЕ.

>>912677
> Ты выпускал коммерчески успешные игры или просто так пиздишь?
Ну разумеется, я просто так пизжу.
Аноним 04/11/23 Суб 11:08:50 912711 290
>>912684
Смысл твита в сожалении хуана и намерении добавить кнопку "сделать быстро куб как в юнити, чтобы было заебись", а зачем ты свои визги начал и обвинения пользователей, не зная ситуации, вообще непонятно. Реально таблеток въеби
Аноним 04/11/23 Суб 11:11:04 912713 291
>>912654
>я предупреждал еще три года назад
>Создание универсальных редакторов игр было ошибкой
>>912688
>Ну разумеется, я просто так пизжу.
Сразу видно эксперта гд, уважение
Аноним 04/11/23 Суб 12:00:46 912726 292
1699088445917.png 31Кб, 160x160
160x160
Аноним 04/11/23 Суб 13:19:16 912745 293
>>912654
>если для твоей игры движок предлагает "бред полный, кучу ручной работы"
Это не движок предлагает, это юзер движка наткнулся на неподходящее ему решение. В движке нет одного-единственного верного способа сделать Х. Способов - дохуя. Значит надо думать дальше, искать подходящее решение, а не ломиться реализовывать первое попавшееся. Ты же не срешь посреди вагона метро потому что тебе организм так предложил, ты ищешь подходящее решение. А вот если бы твоей целью был перформанс и бунт - ты бы там так и насрал. Хорошо иметь разные способы.
Аноним 04/11/23 Суб 13:20:13 912746 294
>>912745
Ну в общем-то я именно об этом и писал.
Аноним 04/11/23 Суб 13:21:54 912747 295
>>912746
Нет, ты предлагал отказаться от удобного материального, выйти куда-то в астрал и насрать там.
Аноним 04/11/23 Суб 13:33:45 912751 296
>>912747
> Нет, ты предлагал
>>912654
> если для твоей игры движок предлагает "бред полный, кучу ручной работы", значит у тебя в организации техпроцесса что-то очень сильно не заладилось
> либо пересмотреть свой подход к девелопу
>>912745
> юзер движка наткнулся на неподходящее ему решение
> надо думать дальше, искать подходящее решение

Литералли сейм. Или как там у вас, пригоревших зумеров, говорят?
Аноним 04/11/23 Суб 13:38:01 912754 297
>>912751
Искать внутри движка, потому что движок тебе предлагает еще пару десятков решений. Учитывай контекст.

>В движке нет одного-единственного верного способа сделать Х. Способов - дохуя.
Аноним 04/11/23 Суб 14:23:29 912761 298
Аноним 04/11/23 Суб 14:31:21 912765 299
Аноним 04/11/23 Суб 16:29:48 912774 300
Аноним 04/11/23 Суб 17:03:43 912778 301
Сап годач. Смотрю сейчас туториалы по годоту на англ и столкнулся вот с такой конструкцией отнимания хп у игрока:

var max_health = 4
var health = 4: set = set_health

signal player_died

func set_health(value):
health = clamp(value, 0, max_health)
if health == 0:
emit_signal("player_died")


Понятно, что при получении условно 1 урона health меняется на 3 и далее задействуется func set_health. Но по идее clamp между 0 и 4 должен выбрать наиболее близкое, т.е. 4 и хп не изменится. Но вместо этого оно исправно отнимается. При этом если убрать эту строчку с clamp, то хп не уменьшается вовсе. Как работает эта шайтан херовина? Почему без нее хп не уменьшается? Для изменения health вот такая штука:
Player_stats.health -= damage
Аноним 04/11/23 Суб 17:06:18 912779 302
>>912778
Не знаю твой ли случай, но я хорошо выучил что сеттеры/геттеры не работают изнутри объекта, внутри которого они определены. Бай дизайн.
Аноним 04/11/23 Суб 17:09:54 912780 303
>>912779
Не, у меня то он как раз работает.
Просто не пойму, зачем вот эта конструкция и как именно она работает:
health = clamp(value, 0, max_health)
Если ее можно заменить
health = value

В доке такие примеры:
var a = clamp(-10, -1, 5)
# a is -1
var b = clamp(8.1, 0.9, 5.5)
# b is 5.5

Но как в доке, она не работает
Аноним 04/11/23 Суб 17:36:23 912783 304
>>912778
>по идее clamp между 0 и 4 должен выбрать наиболее близкое, т.е. 4 и хп не изменится.
Кламп это ограничитель, гугли лучше
Аноним 04/11/23 Суб 17:52:18 912792 305
>>912780
>health = clamp(value, 0, max_health)
>Если ее можно заменить
>health = value
Если заменишь, то при отрицательном value не сработает проверка if health == 0
Аноним 04/11/23 Суб 17:56:34 912794 306
>>910967
>Движку не надо считать ускорение
Я нашёл алгоритм, в котором считается ускорение:
https://en.wikipedia.org/wiki/Verlet_integration#Algorithmic_representation
>The Verlet integrator provides good numerical stability, as well as other properties that are important in physical systems such as time reversibility and preservation of the symplectic form on phase space, at no significant additional computational cost over the simple Euler method.
Вкратце, ускорение нужно для сглаживания скорости, чтобы объекты вели себя стабильнее.

Этот метод позволяет двигать объекты по более стабильным и точным траекториям и накладывать стабильные ограничения. Смотря на то, как ведут себя Joint3D, мне кажется, все бы только выиграли от применения этого метода глобально. А то сейчас накладывать ограничения на RigidBody3D смысла практически нет, их будет ломать от рандомных коллизий так, что они успокоиться не могут.

А если бы движок использовал этот метод внутри, осталось бы только сделать API для получения актуального ускорения любого объекта извне.
Аноним 04/11/23 Суб 17:58:19 912795 307
>>912783
Загуглил, ага. Ну так он нахуй тут ненужон получается
>>912792
Можно просто if health <= 0 сделать

Короче, пока юзлес шляпа
Аноним 04/11/23 Суб 18:31:25 912806 308
>>912779
>сеттеры/геттеры не работают изнутри объекта
В 3.x не работают, и это проблема.
В 4.x работают. Сеттеры/геттеры не вызываются только изнутри самих себя, т.е., например:
>var a: int:
>set(value): a = value
>get: return a
Здесь не будет бесконечной рекурсии. В остальных функциях класса доступ к a вызывает сеттер/геттер.

>>912795
>тут ненужон получается
>Можно просто if health <= 0 сделать
>Короче, пока юзлес шляпа
В твоём примере clamp() нужен, чтобы здоровье игрока не выходило за ожидаемые пределы.

Функция clamp() аналогична этому коду:
>func clamp(value, min_value, max_value):
>if value > max_value: return max_value
>elif value < min_value: return min_value
>else: return value

Если мы сделаем так:
>health = health + change
Тогда игрок сможет получить столько здоровья, сколько сможет собрать лечилок; будет продолжать получать урон даже после достижения 0 здоровья.

Поэтому мы делаем так:
>health = clamp(health + change, min_health, max_health)
Теперь попытка взять аптечку с полным здоровьем использует аптечку, но не увеличит здоровье выше максимального, а мобы не будут забивать здоровье игрока ниже минимального здоровья.

Почему это важно? С лечением очевидно: у игрока сейчас 99/100 здоровья и он использует лечилку на +50, он должен получить +1 до 100, а не +50 до +149.

С нанесением урона ситуация чуть сложнее. Пока игрок способен только умирать, всё ок. Но если, допустим, мы сделали возможность воскреснуть, и она работает как лечилка, дающая +50 здоровья, а игрок получил урон на -75, имея здоровье 5/100, то в результате здоровье было -70 и после воскресения у него -20/100, а не 50/100. Чтобы таких багов не было, мы заранее ограничиваем здоровье допустимыми рамками.

Короче, это подстраховка, чтобы в будущем не ломать голову над багами с нанесением урона и добавлением здоровья. Ты скажешь, что мобы и лечилки должны проверять здоровье игрока, но это нарушает принцип ООП, в котором каждый объект заботится сам о себе: лечилки и мобы не должны проверять, кому отдают лечение или наносят урон, чтобы код был гибким.

А вот чтобы лечилки не уходили впустую и мобы не издевались над трупами нужны другие проверки. Допустим, код игрока проверяет, нужно ли ему брать лечилку перед её использованием; мобы проверяют, жива ли их цель в своей логике поведения, но не заботятся о том, сколько у неё здоровья.
Аноним 04/11/23 Суб 19:05:00 912816 309
>>911005
>Мне не хватает нормальной Line3D. Чтобы, грубо говоря, трубы делать.
Изучал этот вопрос и пришёл к выводу, что идеального универсального решения нет. Нарисовать простую ломанную линию легко даже без построения меша (просто размести кубы в MultiMeshInstance3D), но как только ты хочешь что-то особенное, универсального решения не существует или оно будет тормозить для всех из-за множества проверок.

Я видел даже решения на шейдерах, без построения специального меша. Натуральная магия...

Даже в 2D универсального решения нет, встроенная нода подходит только для простых применений.
Аноним 04/11/23 Суб 19:12:39 912818 310
>>912647
Буквально Label с percentage visible и Twine easing
Аноним 04/11/23 Суб 19:18:00 912820 311
>>912806
Понял. Спасибо, анон, что разжевал все подробно
Аноним 04/11/23 Суб 19:26:06 912822 312
>>911023
>PhysicalBone2(3)D
>Эйфорию запилить
Для этого нужно настраивать джойнты и чтобы эти джойнты работали стабильно. Иначе даже самый простой, пассивный физический регдолл начинает колбасить по всему миру. Jolt Physics стабильнее встроенной, но тоже не идеален. А у Эйфории весь прикол в симуляции мышц... Так что задолбаешься циферки вписывать в джойнты, чтобы настроить и наблюдать, как всё разлетается по сцене.

Вообще не понимаю, кто все эти люди, которые рекомендуют соло индюкам делать процедурные анимации вместо классических. Они что, садисты?

Всем тем, кто планирует заняться процедурными анимациями: не ведитесь на советы, подумайте несколько раз, ЗАЧЕМ вам эти анимации нужны. Большинство анимаций могут быть классическими, которые многократно легче реализовать, придав им индивидуальность. Во многих случаях игрок вообще разницу не заметит и/или не оценит сотни часов, вложенных в отладку процедурной анимации, чтобы она хотя бы не глючила. Разнообразие? У вас будет точно такой же процедурный хаос, как во множестве других игр с процедурной генерацией. Единственное преимущество - можно генерировать анимации для произвольных скелетов и произвольной геометрии уровня, но это нужно очень специфичным играм, в которых от этого зависит весь геймплей.

Не бойтесь классической анимации, её не так уж сложно освоить, особенно если вы не пытаетесь делать ААА реализм или у вас вообще лоуполька, на которую игрок будет смотреть издалека.

Алсо, встроенные средства Godot заточены под управление классическими анимациями. Для процедурной анимации придётся в основном изобретать велосипеды вместо использования удобных дизайнерских штучек UI Godot/Blender.
Аноним 04/11/23 Суб 19:59:59 912827 313
1699117198625.png 387Кб, 503x498
503x498
Моё лицо после недели кодинга.


... зато я укрепил скиллы.
Аноним 04/11/23 Суб 20:04:48 912829 314
Аноним 04/11/23 Суб 20:08:23 912830 315
>>912818
Как баббл и анимацию сделать я знаю. Хочется более законченного решения. С последовательностью диалогов, с сохранением позиции, с next, с ответами, с реакциями на состояние мира/игрока/нпс.
Аноним 04/11/23 Суб 20:21:45 912838 316
Аноним 04/11/23 Суб 20:30:40 912841 317
1699119040420.png 32Кб, 475x281
475x281
1699119040711.png 6Кб, 395x36
395x36
>>912827
> укрепил скиллы
Фибоначчи в треде.
Аноним 04/11/23 Суб 20:39:23 912844 318
>>911834
>а вы пользуетесь метаданными?
Пока не пользовался, не приходилось как-то.

>if node.has_meta("bar"): foo = node.get_meta("bar")
>if node.get("bar") != null: foo = node.bar
>не вижу принципиальной разницы
Принципиальная разница в том, что в первом случае запрашиваются метаданные. Во втором случае ты запрашиваешь свойство класса, а не метаданные.
https://docs.godotengine.org/en/stable/classes/class_object.html#id1
>Returns the Variant value of the given property. If the property does not exist, this method returns null.
https://docs.godotengine.org/en/stable/classes/class_object.html#class-object-method-get-meta
>Returns the object's metadata value for the given entry name. If the entry does not exist, returns default. If default is null, an error is also generated.

>второй вариант как-то больше контроля имеет.
Наоборот. Вообще сомневаюсь, что get() вернёт тебе метаданные, но если вернёт - как ты поймёшь, что это метаданные, а не свойство класса? А если не вернёт, тогда ты метаданными не пользуешься.

>Для чего они вообще нужны?
https://docs.godotengine.org/en/stable/classes/class_object.html
>Lastly, every object can also contain metadata (data about data). set_meta can be useful to store information that the object itself does not depend on. To keep your code clean, making excessive use of metadata is discouraged.
По сути, ты можешь добавить метаданные к любому объекту, даже если у него нет скрипта. При этом сам объект об этих метаданных не заботится - это данные о данных, а не сами данные как таковые.

>Есть какие-нибудь живые примеры использования
Читай обсуждение здесь, мне лень цитировать:
https://github.com/godotengine/godot/issues/18591
Аноним 04/11/23 Суб 20:47:38 912851 319
ну да
Аноним 04/11/23 Суб 20:55:58 912856 320
>пук кок пок прогнулся сисярап перебежчики я здесь власть
Вы заебали тут срач разводить, барины-перебежчики. Займитесь уже чем-нибудь полезным.
Аноним 04/11/23 Суб 21:15:27 912862 321
>>912856
Там было просто упоминание поста Хуана, но ты начал визжать и оскорблять изучающих годот, порось, а сейчас опять визжишь, займись чем-нибудь полезным сам
Аноним 04/11/23 Суб 21:47:44 912867 322
>>912862
>ты
Постера то угадал, шиз? Я вас даже не читал, открывал вкладку, видел нерелейтед кал, которым вы себе сраки чешете, и закрывал.
Аноним 04/11/23 Суб 21:55:08 912869 323
>>912822
>рекомендуют
Шиз штоле? Где ты там в тексте рекомендацию увидел?
>встроенные средства Godot заточены под управление классическими анимациями
В тройке да. В четвёрке скелетная анимация процедурно делается быстрее и легче, чем прежним методом: настраиваешь ИК-цепочки и двигаешь таргеты, всё. К тому же интереснее выглядит при смешивании анимаций.
Пример. Мой персонаж держит в руках ружьё. Вот он побежал, для этого слегка наклонился телом вперёд. В тройке, если я наклоняю тело скелета, то руки, как ноды-дети, наклонятся тоже, а значит уедет и наклон оружия. В четвёрке же концы рук привязаны к таргетам, а таргеты не обязаны быть детьми скелета; я наклоняю туловище, а руки сами по ИК выстраиваются к таргетам.
Аноним 04/11/23 Суб 21:56:42 912870 324
Шизы спок.
Аноним 04/11/23 Суб 22:00:24 912871 325
pP8fakE48GWeH7H.mp4 312Кб, 460x816, 00:00:07
460x816
>>912867
>Постера то угадал
Не важно, шиз, считайте что я вас обоих остроумно попустил, стыдитесь
Аноним 04/11/23 Суб 22:14:24 912872 326
В тему SphereCast.

Если кратко, Godot предоставляет несколько разных запросов с шейпами. Чтобы сделать "SphereCast", необходимо сделать несколько простых шагов:
1. Создать/добыть где-то шейп. Его можно юзать многократно для разных целей, что очень удобно; например, можно использовать шейп персонажа.
2. Поскольку нам нужно движение, нужно сначала сделать cast_motion(), он вернёт нам две позиции: максимальное движение до столкновения и минимальное движение для столкновения.
3. Если нам нужна дополнительная информация из точки столкновения шейпа, меняем запрос:
3.1. Вычислить новую позицию шейпа, это легко, всего лишь сложить вектор позици с вектором движения, умноженным на число из пункта 2.
3.2. Для получения только контактных точек, достаточно сделать запрос collide_shape().
3.3. Для получения подробной информации о том, с чем конкретно мы столкнулись: intersect_shape().

Если тебе это часто нужно, просто оформляешь в виде функции и обращаешься уже к ней.

Всё это тривиальные операции, тут не нужно никаких математических познаний - справится кто угодно. В разработке игры приходится бороться с куда более сложными проблемами, в которых вместо простых запросов приходится математикой заниматься...

Почему нужно столько промежуточных шагов вместо одного обращения к методу sphere_cast()? Потому что движок позволяет нам делать куда более сложные запросы, чем просто "кинуть сферу", и забрать только ту информацию, которая нам нужна. Unity в данном случае скрывает от пользователя возможности и генерирует лишнюю информацию даже в самых простых случаях (когда нужно только движение или точки контакта, а не всё сразу).

То, что движок возвращает Dictionary вместо объекта, конечно, неоптимально. Думаю, это исправят, т.к. разработчики обратили на это внимание.

Если нужен просто шейпкаст, можно создать ноду, добавить её в сцену и проверять по необходимости. Можно выключить её непрерывное обновление и запрашивать только по необходимости. Главное преимущество этой ноды в том, что её видно в редакторе сцен и при отладочном показе шейпов.
Аноним 04/11/23 Суб 22:15:36 912873 327
>>912871
>считайте
Да-да, главное таблетки свои прими.
Аноним 04/11/23 Суб 22:45:20 912883 328
>>912872
>Unity в данном случае скрывает от пользователя возможности и генерирует лишнюю информацию даже в самых простых случаях
Ну и пусть генерирует, сишарп тупо мощь. Это же Хуан на каждом углу лечит, что гдскрипт для быстрого прототипирования, и не нужно пердолиться байтоёбить. Где тут быстрое, если вместо одной строчки нужно написать 10? При том что это всё на скрипте, который медленнее в 40 раз. Я всё это время думал наоборот, что на годоте всё это давно сделано удобно, множество функций на все случаи жизни, и за это удобство нужно платить низкой производительностью скрипта, а в итоге хуй, наебал аргентинский пахом. Вы просто неправы в этих оправданиях самодура, нужно признать, что он сам себе противоречит и смириться с неадекватом шизика
Аноним 04/11/23 Суб 22:57:38 912890 329
>>912869
>Где ты там в тексте рекомендацию увидел?
В каком тексте?

Захожу на ютуб: кучи видео "делайте процедурные анимации вместо обычных", "почему инди должны делать процедурные анимации", "как я сделал процедурные анимации и вам советую".

Заходишь на реддит - кучи постов и коментов приблизительно того же смысла, типа, "эй, вот я сделал процедурные анимации, ничего в игре нет кроме них, потратил полгода на анимации, всем рекомендую", и коменты "ооо, тоже буду делать".

Даже здесь, в /гд/, встречал совет уровня "сделай ХОТЯ БЫ процедурные анимации".

Создаётся впечатление, будто десятки часов отлаживать математически сложный код проще, чем подвигать несколько костей (буквально 2-3) в блендере и переимпортировать модельку.

>настраиваешь ИК-цепочки
Где? В 2D? Возможно, не проверял. Ты про это?
https://docs.godotengine.org/en/stable/classes/class_skeletonmodificationstack2d.html
В 3D ничего не поменялось - новую систему убрали
из-за каких-то там багов:
https://github.com/godotengine/godot/pull/71137
Тем временем SkeletonIK3D deprecated:
https://github.com/godotengine/godot/pull/65801
По сути встроенного IK для 3D в движке пока нет:
https://github.com/godotengine/godot-proposals/discussions/7468
>Calinou on Aug 9
>>If the stability issues were resolved, would the 3D skeleton modification stack be acceptable?
>Last time I remember, the consensus was that the feature itself needs to be redesigned.
Когда этот редисигн будет, каким он будет - вообще непонятно, по issue/pull request ничего не нахожу.

Алсо, инверсная кинематика - лишь малая часть процедурных анимаций и не является основной.

>побежал, для этого слегка наклонился вперёд
>руки наклонятся тоже, уедет и наклон оружия.
Разве это неправильно? По-моему, это достаточно реалистичное поведение. Или ты хочешь, чтобы он стрелял точно в цель прямо на бегу? Тогда зачем привязывать руки к туловищу и наклонять их вместе с туловищем, если у тебя робот, стреляющий точно в цель независимо от состояния туловища?

Вот это одна из проблем процедурной анимации: инверсная кинематика вывернет руки персонажу в направлении взгляда, в каком бы положении тело ни было. Чтобы руки не ломались, нужно выставить ограничения. Чем больше ограничений, тем сложнее вычисление позиции, и всё может начать трясти и телепортировать из-за того, что игрок пытается выставить неудачное положение костей...

Опять же, ИК - это только малая часть. Упомянутая Эйфория симулирует целого человека с мышцами и повреждениями, а не примитивные ИК-цепочки.

Кстати, почему Эйфория провалилась как продукт? Потому что им приходилось высылать собственных специалистов для интеграции в игру. Всё настолько сложно, что Rockstar сами бы не справились, а это не разработка с нуля - это настройка готового продукта.

А кто-то советует делать это, будучи соло инди...
Аноним 04/11/23 Суб 23:11:57 912897 330
>>912890
Блин, ты так расписываешь, индюков делающих 3д в принципе немного, а делающих с анимациями это вообще редкость, максимум какой-нибудь человечек из майнкрафта, какие процедурки
Аноним 04/11/23 Суб 23:15:21 912900 331
Э, что за дискриминация. Я индюк и я делаю в 3д. С капсулами вместо моделек.
Аноним 04/11/23 Суб 23:18:44 912904 332
>>912883
>гдскрипт для быстрого прототипирования
Да. Но с учётом внутренностей движка. Для говнокодинга можно было любой готовый ЯП прикрутить, вроде JavaScript, AngelScript или Lua.

>сишарп тупо мощь
C# - тупо проприетарная библиотека для создания программы, выглядящей в стиле C++, работающей медленнее программы на C++, и имеющей меньше кроссплатформенных возможностей. Вся суть C# - переманить фирмы с Java на продукт от Microsoft.

Никогда не испытывал необходимости в C#, а если оптимизировать код - то уж точно не на C#.

>на скрипте, который медленнее в 40 раз
Только когда тебе нужно брутфорсить числа. Для брутфорсинга нужно модуль на C++ написать, а не говнокодить на языке для скриптов.

>множество функций на все случаи жизни
За этим тебе нужно скачать 40 Гб UE5, там и правда множество лишних функций на все случаи, которые никогда в твоей жизни не произойдут. Философия разработки Godot стремится охватить широкую аудиторию без написания функций, которые 99% аудитории никогда не понадобятся.

Вот я давно движком пользуюсь в 3D, никогда не испытывал острой необходимости в "SphereCast". Даже обычные лучи редко нужны были.
Аноним 04/11/23 Суб 23:33:08 912909 333
>>912904
Очевидно что здесь сравнение идет только между юнити и годотом, как только ты плюсы начал приплетать и анриал это сразу ты расписался в собственном бессилии.
Для чего существует функция создать шейп? Избыточно пиздец, ну импортируй модель и все, зачем гдскриптю засорять. Годотька уже разбух от излишков, напишите чтобы удалили эти цирклы и сферы, а то мешают игру делать, глаза мозолят
Аноним 04/11/23 Суб 23:34:05 912911 334
>>912897
>индюков делающих 3д в принципе немного
Достаточно, чтобы упоминать "в 2D", когда речь идёт об универсальном движке с 3D графикой.

>а делающих с анимациями это вообще редкость
В смысле? Без анимаций разве что ASCII, да и её тоже умудряются анимировать. Игра совсем без анимаций будет выглядеть слишком скучно, даже если сама по себе графика выглядит хорошо.

>максимум какой-нибудь человечек из майнкрафта, какие процедурки
Забавно, но модели в Майнкрафте вроде как раз процедурно анимируют. Часто замечал, что такое сверхлоуполи чаще анимируют кодом.

Если нужно что-то примитивное, то кодом описать будет несложно. Типа движения по синусоиде. Но для такого физические кости скелету не нужны.
Аноним 04/11/23 Суб 23:36:33 912914 335
>>912911
>Достаточно
Ну назови игры с доски где юзают 3д модели со своими анимациями
Аноним 04/11/23 Суб 23:39:25 912916 336
>>912883
Давай-ка попустись, анон. Попарься в бане. Оформил тебе заявку.
Аноним 04/11/23 Суб 23:47:16 912920 337
>>912909
>плюсы начал приплетать
Это ты начал про производительность, я говорил только про гибкость кода. Или хочешь несколько десятков функций типа sphere_cast, rectangle_cast, triangle_cast, pyramid_cast, cylinder_cast, teapot_cast, susanne_cast, earth_globe_cast и т.д.?

>Для чего существует функция создать шейп?
Чтобы потом поместить этот шейп в физическое тело, в зону-датчик Area, или сделать тот же "каст".

>импортируй модель и все
Тогда у тебя игра тормозить будет из-за того, что физическая модель избыточна. Даже PhysX не следует перегружать лишним мусором. Для этого существуют эти "шейпы" - это не обычные меши, а особые фигуры, оптимизированные для физики.

Подробнее читай в документации:
https://docs.godotengine.org/en/stable/tutorials/physics/collision_shapes_3d.html
https://docs.godotengine.org/en/stable/tutorials/physics/collision_shapes_2d.html
Аноним 04/11/23 Суб 23:55:19 912924 338
image.png 499Кб, 1957x1747
1957x1747
>>912920
>Тогда у тебя игра тормозить будет из-за того, что физическая модель избыточна
Годот же очень заботится о производительности да? Я вот на юнити 40к рейкастов до просадки фпс запускаю, а на годоти 3к, почему так?
>Или хочешь несколько десятков функций типа sphere_cast, rectangle_cast, triangle_cast, pyramid_cast, cylinder_cast, teapot_cast, susanne_cast, earth_globe_cast и т.д.?
Ой, как же юнитя со своими бокскаст, сферкаст, рейкаст... Ну тупые да? Только ты умный с хуаном ни лишней строчки
Аноним 05/11/23 Вск 00:10:02 912929 339
>>912924
>очень заботится о производительности
Наоборот, делают удобнее в ущерб скорости. Но это удобство на уровне опенсурс, тут своя атмосфера. Если тебе блендер старых версий был неудобен - ну, прости, что это не многомиллионный энтеретайз.

>40к рейкастов до просадки фпс
Сначала движок пусть прогреется, а ещё не забудь про сборку мусора, из-за которой приходится юзать обходные пути для создания/удаления объектов.

Т.е. прежде чем ты 40к рейкастов сделаешь, можно успеть сбегать в магазин и приготовить поесть. А потом всё начнёт тормозить из-за сборки мусора - тысячи рейкастов кто-то должен удалять (но не ты).

>юнитя со своими бокскаст
Юнити не пытаются вжать в ~50-100 Мб редактора и у них нет встроенного скриптового языка, куда все эти API нужно делать доступными, и вроде бы у них нет своего аналога GDExtension.
Аноним 05/11/23 Вск 00:17:30 912930 340
>>912924
>3к, почему так?
Насколько я понял, это из-за Dictionary.

Уже обсуждали с ключевыми разработчиками.

Ответ Хуана:
https://gist.github.com/reduz/cb05fe96079e46785f08a79ec3b0ef21
>The problem is that, at the C++ level, this function takes a struct pointer for performance. But at the language binding API this is difficult to expose properly. This is very old code (dating to the opensourcing of Godot) and a Dictionary was hacked-in to use temporarily until something better is found. Of course, other stuff was more prioritary and very few games need thousands of raycasts, so pretty much nobody complained. Still, there is a recently open proposal to discuss more efficient binding of these types of functions.
Аноним 05/11/23 Вск 00:26:13 912935 341
>>912930
>Ответ Хуана:
Да у вас с хуаном на все есть ответы, по ходу весь путь годота состоит из идеальных решений, на всё какие-то отговорки, ни шагу назад, ни лишней строчки врагу
Аноним 05/11/23 Вск 00:34:43 912938 342
>>912935
>весь путь годота состоит из идеальных решений, на всё какие-то отговорки, ни шагу назад
Всё так, производительность на уровне C будет:
https://github.com/godotengine/godot-proposals/issues/7329
>FlatArrays are a special case of struct array that allocate everything contiguous in memory, they are meant for performance only scenarios. Will describe how they work later on, but when this is used together with typed code, performance should increase very significantly. In fact, when at some point GDScript gets a JIT/AOT VM, this should be near C performance.
Так победим C#.
Аноним 05/11/23 Вск 00:45:42 912942 343
>>912938
> In fact, when at some point GDScript gets a JIT/AOT VM, this should be near C performance.
Этого не будет в ближайшие 5 лет, там есть большой тред с обсуждением jit/aot, так ни к чему и не пришли. Пару лет будут рожать решение, потом еще пару лет Хуан будет в голове воплощать, потом уже может что-то высрет
Аноним 05/11/23 Вск 00:53:51 912944 344
Аноним 05/11/23 Вск 02:06:13 912949 345
>>912890
>В каком тексте?
В том тексте, на который ты отвечал. Проследи цепочку ответов выше по треду.
>Разве это неправильно?
Да, это неправильно. Если я держу в руках предмет (например, кружку с чаем) и стремлюсь сохранить его положение в пространстве, я буду делать это, независимо от наклона моего тела, например. Тем более если это оружие, у которого надо не сбить прицел.
>Где? В 2D?
Ну, вообще да. Про то, что
>В 3D ничего не поменялось - новую систему убрали
я вообще не в курсе.
Ну, как убрали, так допилят и вернут. Почитал обсуждение, там вопросы скорее к недопиленности четвёрки, чем к самому факту ИК в 3Д.
Аноним 05/11/23 Вск 02:18:27 912950 346
Ну что, как ваши игры? Сделали уже? Я через недельку планирую выкладывать свой прототип на итч и в дискорд закину, оценю фидбек.
Аноним 05/11/23 Вск 16:17:22 913081 347
>>912938
> Так победим C#
ИМХО, вообще не нужно было побеждать что-либо. Нужно было с самого начала проектировать транспилер (транслирующий компилятор). Пользователь пишет на гдскрипте, а на выходе компилируется с++.
И всё. Проблем не было бы вообще. Сразу искаробки была бы производительность крестов, плюс, можно было бы в гдскрипт завезти ключевое слово что-то вроде embed {} с блоком чистого с++ кода, который идёт на выход без обработки транспилером. Плюс, промежуточные файлы складывались бы в отдельную папочку и можно было бы подключить к ноде промежуточный код на сях, отбросить предварительно написанный гдскрипт и далее уже допиливать код на сях, уходя в дебри байтоёбства и указателей.

Вообще не вижу помех, почему так нельзя было сделать с самого начала? Возможно, конечно это мой уровень даннинга-крюгера не позволяет мне увидеть фундаментальные помехи реализации вышеописанного.
Аноним 05/11/23 Вск 16:34:03 913083 348
Подскажите вот что. Как получить имя инстанса? Есть сцена Health. Я прикрепляю ее к НПС, называю ее NPCHealth. Внутри сцены Health делаю print(get_name()), вижу имя Health. Как получить то имя, которое я установил в родительской сцене, то есть NPCHealth?
Аноним 05/11/23 Вск 16:43:53 913084 349
>>913081
>Возможно, конечно это мой уровень даннинга-крюгера не позволяет мне увидеть фундаментальные помехи реализации вышеописанного.
Ну хоть это ты понимаешь
Аноним 05/11/23 Вск 16:51:00 913086 350
>>913084
Я недавно ознакомился с LLVM и реально не понимаю, почему продолжают пилить какие-то велосипедные байт-код недокомпиляторы, когда можно запилить полноценный компилируемый язык. Можно было бы запилить компилятор гдскрипта в нативную либу, которая прозрачно для пользователя подключается к запускаемому проекту. Что им помешало это сделать?
Аноним 05/11/23 Вск 16:52:04 913089 351
Аноним 05/11/23 Вск 17:52:40 913106 352
>>913089
Вау. Это литералли то что я написал/предложил выше. Паямо сам хуан предлагает, как один из вариантов, подключить внешний компилятор, который будет при запуске обновлять либу со скомпилированными скриптами. Хуан пишет, что это может быть хлопотно. Но позвольте. Это не хлопотнее, чем подключать ручками rcedit и fbx2gltf в настройках редактора. Делаешь один раз и получаешь нативизированный гдскрипт искаропки.

Я - за.
Аноним 05/11/23 Вск 17:54:51 913107 353
>>913106
>Я - за.
А вот хуй тебе, 5-10 лет жди
Аноним 05/11/23 Вск 17:58:28 913109 354
>>913106
>Я - за.
Ну все, Хуан и все остальные побежали делать, раз ты за.
Аноним 05/11/23 Вск 18:00:52 913110 355
>>913107
> жди
Йеп. Это Годот!
Аноним 05/11/23 Вск 18:05:12 913111 356
>>913110
Берешь и делаешь, и открываешь пулл реквест, и обсуждаешь с разработчиками. Опенсорс же. Но ты не можешь или не хочешь, а вот сренькать на харкаче - можешь и хочешь. Даже обсуждаешь не там, где тебя могут услышать люди, способные что-то реализовать, а здесь. Показательно это все конечно.
Аноним 05/11/23 Вск 18:11:52 913113 357
1699197094777.mp4 16989Кб, 640x360, 00:03:22
640x360
>>913111
> Берешь и делаешь
Зорплату плоти.
>>913107
> жди
Подождём...
Аноним 05/11/23 Вск 18:19:53 913115 358
>>913113
А за размазывания соплей по двачу 24/7 тебе конечно зарплату платят, да.

>>913114
Ну вот и все. Не вижу смысла тогда вникать в твои посты. Они пустые.
Аноним 05/11/23 Вск 18:24:00 913117 359
1699197840195.png 29Кб, 504x230
504x230
1699197840516.png 6Кб, 417x34
417x34
>>913115
> размазывания соплей по двачу 24/7
Я ващето размазываю по двачу многомерные циклические ссылочные списки.
Аноним 05/11/23 Вск 18:29:19 913118 360
>>913115
>Они пустые.
Да, иди про ecs посрись в движкосрач, пердолик.
Аноним 05/11/23 Вск 18:59:42 913120 361
1699199981136.png 68Кб, 670x487
670x487
1699199981482.png 27Кб, 699x98
699x98
>>913117
А вот ещё, зацени.
Аноним 05/11/23 Вск 19:03:50 913122 362
>>913120
Как же ты ебошишь. Наверное, у тебя будет невероятная игра
Аноним 05/11/23 Вск 19:06:08 913123 363
>>913122
Вселенная-наоборот с толщеходами.
А это будет покер-наоборот с толщеколодой.
Аноним 05/11/23 Вск 23:07:13 913205 364
>>913114
Ты наркоман. Игры делай, а не мышкой возякай.
Аноним 05/11/23 Вск 23:57:50 913229 365
Аноним 06/11/23 Пнд 00:11:08 913233 366
>>913232
От кого ты ожидаешь чтобы тебе сделали, нарк? От местных анонов? Или ты думаешь Хуан тут сидит? Пиздуй на гитхаб и открывай issue.

И нахуй вы вообще кормите этого залетного движкосрачерского дебича с его "годотьки зделойте мне я хочю а вот в юните-то давно есть". Он половину треда уже засрал, блядь.
Аноним 06/11/23 Пнд 00:30:03 913239 367
>>913237
Я тебе пишу чтобы ты прекращал движкосрач на весь тред разводить. И я каждый твой пост буду репортить. Уебывай в тред для движкосрача, либо уебывай на гитхаб и убеждай тех, кто может сделать твою хотелку, либо сам ее сделай. Так что лови репорт.
Аноним 06/11/23 Пнд 04:48:22 913252 368
Анимирую я, значит, аниматором разные свойства ModificationStack'а в скелете. И вроде даже работает. А потом выясняется, что вообще так лучше не делать, и даже движок не предусмотрел прямого обращения к стаку, а надо делать get_modification_stack, менять полученное, а потом set_modification_stack.
Как-то это слишком заёбисто, на мой взгляд. Но лучшего способа флипать скелет по горизонтали я пока не нашёл. Ну, то есть, можно как раньше через анимейшонплеер, но мало ли что от такого обращения поломается.
Аноним 06/11/23 Пнд 07:25:10 913258 369
>>913252
> Как-то это слишком заёбисто, на мой взгляд.
Один раз сделай переменную mod_stack : set = set_modification_stack, get = get_modification_stack и обращайся к ней через self.mod_stack. Делов-то.
Аноним 06/11/23 Пнд 14:09:41 913298 370
image.png 77Кб, 660x585
660x585
Блядь, почему? С другими типами узлов работает нормально, но не конкретно с этим KinematicBody2D (Cat).

System.InvalidCastException: Specified cast is not valid.
<Ошибка C++> Unhandled exception
<Исходный код C++>:0
<Трассировка стека>:0 @ ()
PackedSceneExtensions.cs:20 @ Cat Godot.PackedScene.Instance<Cat >(Godot.PackedScene+GenEditState )()
Main2.cs:26 @ void Main2.OnButtonPressed()()
Аноним 06/11/23 Пнд 15:15:31 913305 371
>>913298
Техническая поддержка 3 версии ИТТ закончилась в августе. Сорян.
Аноним 06/11/23 Пнд 15:23:11 913308 372
>>913305
Чего? Впереди еще релиз 3.6
Аноним 06/11/23 Пнд 18:15:43 913333 373
Аноним 06/11/23 Пнд 20:37:59 913366 374
Годаны, два нубских вопроса по твинам в четвёрке.
1. Пишут, что твин надо создавать непосредственно перед использованием. А вот если я захочу его прервать, мне надо где-то хранить данные о нём. Что будет, если я сделаю foo = create_tween() до того, как предыдущий твин foo отработал? Он ведь не останется висеть в памяти, а самоудалится сразу же, как только отработает?
2. Что будет, если я буду твинить один и тот же параметр? Типа, сначала create_tween().tween_property(bar, "rotation", PI, 10.0), а через секунду create_tween().tween_property(bar, "rotation", 0.0, 1.0) - что произойдёт с твинами? Второй отменит первый? Они наложатся? Первый удалится после запуска второго? Будет утечка памяти, мой компьютер взорвётся?
Аноним 06/11/23 Пнд 21:05:03 913372 375
>>912598
Продолжаю делиться наблюдениями. Если сохранить сцену из рантайма, проставив рекурсивно всем детям овнера, и сохранить через ресурс сейвер в .tscn, то по некой магической причине дерево нод потеряет детей после определенной глубины. Тогад как сохраняя в бинарный формат, в .scn, все ок.

>>913366
Я использую так
var tween
if tween: tween.kill()
tween = create_tween()
tween.tween_property
Аноним 06/11/23 Пнд 23:52:40 913390 376
>>913372
А я вот чёт подозреваю, что это излишне. Твинил свойства так и эдак, каждый раз создавая новый твин - всегда при запуске нового двина старый просто прекращался; зато килл давал разные визуальные баги, на один кадр анимация улетала в позу отдыха.
Как я понял, где-то в дебрях движка есть глобальная таблица всех твинящихся стрингнеймов, а это всего лишь интерфейс к ней. Но пока не стопроцентно уверен.

Посоны, а в чём может быть проблема? В анимации есть воспроизведение звука, при проигрывании через АнимейшонПлеер звук играет; включаю АнимейшонТри, та же самая анимация - звука нет.
Аноним 06/11/23 Пнд 23:54:56 913391 377
>>913390
А всё, я дебил, на адде, который прямо перед выходом из дерева, была включена фильтрация.
Аноним 07/11/23 Втр 03:11:58 913400 378
А что если делать звуки прямо в игре? Есть что-нибудь для этого? Хочу одну строчку кода, типа play_sound(beep, power, length, ...) и она мне пищит. Насколько разъебет уши такой подход?
Аноним 07/11/23 Втр 07:45:33 913413 379
>>913333
В этом треде пацаны угорают по четверке, нодам и сценам. Только молодость! Только четвёрка! Только хардкор! 412!
Аноним 07/11/23 Втр 07:46:54 913414 380
Аноним 07/11/23 Втр 12:58:41 913445 381
Аноним 07/11/23 Втр 13:32:02 913461 382
>>912890
>Создаётся впечатление, будто десятки часов отлаживать математически сложный код проще, чем подвигать несколько костей (буквально 2-3) в блендере и переимпортировать модельку.

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

Я веду к тому, что гибрид статической анимации с процедурной был бы и красивее и проще. Можно задать основному телу статическую анимацию, а конечностям -- процедурные. И если персонажу прилетает бочка под ноги, они получают стан и отлипают от земли, отключают выравнивание тела и персонаж шмякается на землю, словно он процедурный. Хотя туловище всё ещё статично и поменялся лишь угол, конечностям включился рэгдолл и выглядит это в итоге близко к гта 4 и 5, но гораздо дешевле, чем учить персонажа держать баланс, и настраивать его так, чтобы он не падал от пинка под зад или пули в ногу, но падал от бочки, да прилетающей не по касательной

Костыли -- лучшее средство оптимизации человекочасов

эйфория кст тоже далеко не идеальна, и костыли могли бы сделать персонажей менее кукольными
Аноним 07/11/23 Втр 15:45:01 913495 383
$AnimationPlayer.play("one")
$AnimationPlayer.play("two")

Как запустить вторую анимацию только после того, как первая отработала?
Аноним 07/11/23 Втр 15:47:21 913497 384
>>913495
yield($AnimationPlayer, "animation_finished")

Сам спросил, сам ответил.
Аноним 07/11/23 Втр 15:49:13 913498 385
>>913298
В созданном по новой проекте все заработало. Видимо какая-то локальная хуйня приключилась.
Аноним 07/11/23 Втр 18:30:28 913549 386
подождём.jpg 11Кб, 350x500
350x500
>>912942
>Этого не будет в ближайшие 5 лет
>Пару лет будут рожать решение
>потом еще пару лет
Ты куда-то торопишься?

>>913081
>Пользователь пишет на гдскрипте, а на выходе компилируется с++.
+15 минут на каждый запуск проекта после изменения всего лишь одной строчки одного скрипта. Доволен?

>Вообще не вижу помех, почему так нельзя было сделать с самого начала?
Единственное преимущество - скорость рантайма. В остальном сплошные недостатки.

Киллер-фича Godot в том, что GDScript запускается сразу после нажатия F5/F6 в редакторе. Этап компиляции C++ убивает эту фичу.
Аноним 07/11/23 Втр 18:42:34 913552 387
1699371756376.png 49Кб, 636x254
636x254
Добрался таки до своего скринсейвера и сделал ему многооконность. Да, у меня много мониторов.

И подумал тут. А мы теперь можем для многомониторных господ делать игры, в которых инвентарь, карта и т.п. могут выводиться на отдельный монитор.
Аноним 07/11/23 Втр 18:59:04 913559 388
>>913552
Или нейрогенерацию Годетты, презрительно поглядывающую на ноукодера.
Аноним 07/11/23 Втр 19:09:28 913564 389
>>912949
>Если я держу в руках предмет (например, кружку с чаем) и стремлюсь сохранить его положение в пространстве, я буду делать это, независимо от наклона моего тела, например.
Ты точно человек? Попробуй БЕЖАТЬ с кружкой чая. Расплескаешь 100%. Если твоя задача - сохранить чай в кружке, ты будешь идти очень медленно, аккуратно сохраняя положение тела в пространстве.

>Тем более если это оружие, у которого надо не сбить прицел.
ИРЛ никто не стреляет прицельно в движении. Как-то случайно изучал эту тему. В движении прицельность стрельбы ЗНАЧИТЕЛЬНО ухудшается. А если ты побежал настолько быстро, что вынужден наклонить тело вперёд, то максимум, что ты можешь сделать с оружием - выстрелить "куда-то туда" с целью психологического давления на противника, чтобы тот не высовывался из укрытия. Попасть в цель ты не сможешь, но звуки выстрелов как минимум напугают врага и дадут тебе время занять новую позицию для прицельной стрельбы из НЕПОДВИЖНОГО состояния.

Короче, если хочешь реализм, то в игре во время движения, особенно быстрого, у персонажа должно отключаться ИК рук, и оружие должно свободно болтаться в руках в соответствии с анимацией ходьбы/бега, если ты не хочешь убирать его из рук. Игрок может нажать кнопку стрельбы, но направление стрельбы будет на 100% определяться анимацией персонажа, а не направлением камеры. Только когда игрок остановился, персонаж направляет оружие туда, куда смотрит камера.

ИМХО, если твоя игра целит в реализм, то персонаж, стреляющий прицельно на бегу с согнутой вперёд спиной, будет выглядеть как минимум комично.
Аноним 07/11/23 Втр 19:15:13 913566 390
Аноним 07/11/23 Втр 19:29:03 913568 391
>>913566
Лишняя сущность.
Аноним 07/11/23 Втр 19:37:28 913569 392
>>913390
Нашёл:
>You should avoid using more than one Tween per object's property. If two or more tweens animate one property at the same time, the last one created will take priority and assign the final value. If you want to interrupt and restart an animation, consider assigning the Tween to a variable
Кароч работать будет и так, но лучше убивать твина перед натравливанием нового на то же свойство. А то что? А хз, но что-то нехорошее.

>>913564
Ну, допустим, смотря как бежать и прочая. Но тут другое.
Сначала я устраняю болтанку насколько могу. То есть, делаю персонажа идеально точным. А поверх этого добавляю разброс, который уже могу контролировать сам, не полагаясь на анимации. ИЧХ, так я могу сделать этот разброс действительно рандомным, тогда как поведение анимации детерминировано.
В игре, не забывай, главное геймплей, а не реализм.
Аноним 07/11/23 Втр 19:45:23 913570 393
>>913559
Или котировки крипты в реалтайме.
Аноним 07/11/23 Втр 19:55:21 913575 394
>>913461
>При смерти тела возле стены существует риск застревания и распидорасивания модели на половину карты. Почему так?
Потому что регдолл состоит из нескольких RigidBody, связанных между собой через Joint: физический движок моделирует движение каждой части тела как независимого тела, но с учётом ограничений на расстояние между ними. Когда игра спавнит регдолл возле стены, часть этих физических тел может оказаться с другой стороны физической коллизии стены, из-за чего физический движок тщетно пытается пропихнуть часть регдолла сквозь неподвижную (StaticBody) стену. Обычно это ведёт к тому, что регдолл застревает рукой/ногой в стене и трясётся, но в худшем случае движок в попытке удовлетворить систему ограничений может нарастить огромный импульс, который отправит регдолл в полёт.

>А рэгдолл -- это полностью процедурная анимация, хоть и крайне примитивная.
Вот именно поэтому регдолл и застревает в стенах, трясётся и разлетается по всей карте. Без регдолла тело персонажа будет лежать неподвижно, даже если он частично провалился в стену (что намного лучше, чем когда твой лут улетает вместе с регдоллом в стратосферу или этот регдолл вообще убивает тебя внезапным ударом). Большинству игр регдолл как таковой не нужен, это всего лишь физическая декорация, которая может доставлять проблем игроку.

>Потому что анимация не может проверить, находится ли тело между незримых полигонов иной модели. В противном случае достаточно было бы вернуть тело туда, откуда оно попало в стену.
Если ты хочешь, чтобы персонаж не проваливался в стену при смерти, то тебе достаточно сделать однократную проверку безопасной позиции, куда этот персонаж может упасть. Для этого не нужен регдолл от слова совсем, у регдолла другая задача: заставить руки и ноги реагировать на окружающие предметы, будто это конечности тряпичной куклы (ragdoll = тряпичная кукла).

>гибрид статической анимации с процедурной был бы и красивее и проще
Именно так и делают обычно, но это всегда сложнее простых анимаций и ничего красивого в этом нет (в смысле технического решения, а не результата).

>если персонажу прилетает бочка под ноги, они получают стан и отлипают от земли
Проблема в том, что ты замучаешься настраивать физику ног так, чтобы они не ломали коленки, не скручивались, не застревали в узких местах, не проваливались в пол и т.д. А результат? Оценит ли игрок результат твоих трудов? Кто реально обращает внимание на ноги персонажа и тем более критикует игру за эти ноги? Во многих играх даже лестницы ненастоящие, там тупо наклонная поверхность вместо ступенек, и это в ААА играх. Но игроки не хейтят игру за то, что у персонажа ноги висят над ступеньками. А ты (и другие) предлагаешь соло инди убить кучу времени и сил на то, на что ААА-студии даже не пытаются выделять средства из многомиллионных бюджетов и людей из многотысячных команд.

Тут крайне важен ответ на вопрос: что игрок получит от данной фичи? Как это влияет на геймплей? Если это не влияет на геймплей, то как это влияет на графику, сюжет, восприятие игры? Оправдает ли это влияние затраты на разработку фичи? И т.д.

Конечная цель - сделать игру, в которую игроки будут с удовольствием играть, а не идеально симулировать конечности персонажа.
Аноним 07/11/23 Втр 21:46:19 913595 395
>Godot 4.2 beta 5 is out
Сун, годоти, сун
Аноним 07/11/23 Втр 22:23:54 913601 396
>>913575
>Кто реально обращает внимание на ноги персонажа и тем более критикует игру за эти ноги?
Футфетишисты.
Аноним 07/11/23 Втр 23:12:04 913606 397
1699387904110.webm 9917Кб, 720x480, 00:01:45
720x480
Аноним 08/11/23 Срд 03:53:03 913625 398
Делайте игры. Прямо сейчас.
Аноним 08/11/23 Срд 04:17:06 913627 399
1676515237939.png 2192Кб, 1024x1024
1024x1024
>>913625
Уже считай половина сделана, осталось разрезать на спрайты.
Аноним 08/11/23 Срд 08:12:36 913636 400
>>913627
Неблохо, тоходевочки даже узнаваемы

Что за модель/промт?
Аноним 08/11/23 Срд 13:37:44 913667 401
>>913636
Бинговская. Слева-внизу лого висит.
Аноним 08/11/23 Срд 14:12:31 913678 402
Чем внутри годота можно пользоваться чтобы заметки делать?
Аноним 08/11/23 Срд 14:16:46 913680 403
1699442206859.png 67Кб, 1184x689
1184x689
>>913678
Попробовать пикрелейтеды?

А может лучше хуярить комментами прямо в код?
Аноним 08/11/23 Срд 14:23:09 913683 404
>>913680
Попробовал уже. Первая добавляет лишнюю вкладку рядом с импортом - вкладок в годоте и так завал. Вторая как я понял для игры, не для редактора. Третья по сценам. Последняя тоже вкладковая. Хочу просто текстовый файл с форматированием/подсветкой, как код но не код. Поддержку маркдауна так и не завезли?
Аноним 08/11/23 Срд 14:44:39 913687 405
>>913683
Сами завезите.
> Кто? Я?
Аноним 08/11/23 Срд 15:17:27 913705 406
Аноним 08/11/23 Срд 16:12:23 913714 407
image.png 425Кб, 1280x720
1280x720
Аноним 08/11/23 Срд 16:16:46 913715 408
Аноним 08/11/23 Срд 16:17:18 913716 409
Аноним 09/11/23 Чтв 16:49:12 913942 410
learn how to ma[...].jpg 76Кб, 527x499
527x499
Игры делоете?

Я потерял мотивацию. Снова.
Аноним 09/11/23 Чтв 16:59:31 913944 411
>>913942
>Я потерял мотивацию
ну так ты небось платформер очередной хотел сделать или еще какую хуйню банальную 100500ую. Конечно твое подсознание понимает заранее, что даже если ты прям внаутре это сделаешь и нигде не проебешься, то получится очередной кал говна за 20р в стиме, который 1,5 мимокрока откроют, кекнут, и удалят нах.
Садись писать игру мечты, забудь о комерции и дедтаймах, только на это будет реальная, живая мотивация. Всё остальное суходрочка и проебывания жизни в никуда.
Аноним 09/11/23 Чтв 17:10:38 913945 412
>>913678
>чтобы заметки делать?
Зачем именно в Godot? Для каких именно заметок ты хочешь это использовать? Комментарии к сценам/нодам? Есть специальное поле:
https://docs.godotengine.org/en/stable/classes/class_node.html#class-node-property-editor-description
Документация по коду? Есть такое: >>908655 →

>>913683
>Хочу просто текстовый файл
Пиши прямо в редакторе кода, только в .txt-файл.

>с форматированием/подсветкой, как код но не код
>Поддержку маркдауна так и не завезли?
Зачем это всё в редакторе игровых сцен? Скачай специализированное ПО и не перегружай редактор васянскими плагинами для лишних украшательств.

Я тоже как-то хотел сделать плагин на эту тему, но потом понял, что смысла изобретать велосипед в неподходящем для этого месте нет.

Как по мне, интерфейс Godot и без того избыточен. Ещё далеко до Blender, но уже не минимализм.
Аноним 09/11/23 Чтв 17:17:24 913948 413
>>913942
>Игры делоете?
Делою. Она маленькая, так что любой прогресс ощущается как прогресс и приближение в релизу. Идей куча, мотивация есть, слот в Стиме заготовлен. Интереса у людей правда пока 0, но я толком пиар и не начал, кроме пары темок с логами разработки.
Аноним 09/11/23 Чтв 17:28:55 913953 414
Три Дэ на годоте оче сложное? Нужны костыли? Хочу пилить простенький слэшер, не могу определиться с двиглом.
Аноним 09/11/23 Чтв 17:44:39 913956 415
>>913953
Оно простое, если нужна простая картинка. Вот вообще очень простое.
Проблемы начнутся если захочется карсивых теней, запекания цвета, каких то постпроцесс эффектов вроде обводки.
Костыли нужны бывают.
Аноним 09/11/23 Чтв 17:51:14 913957 416
>>913953
Мне тридэ оказалось проще чем двадэ. В 2д со скалированием и зашакаливанием ебаться, со слоями, с z-сортировкой, тени опять же.
Аноним 09/11/23 Чтв 18:07:19 913960 417
>>913942
Сейм, но делал игру мечты, в итоге загнался и понял что она скорее всего никому не будет интересна как и оказалось и хуй знает как в случае условного успеха и какой-то материальной поддержки идеи снять донатики, ну и вкинул кривую но с конкретными задачами версию на итч и яндекс
Аноним 09/11/23 Чтв 19:39:29 913978 418
image.png 65Кб, 976x323
976x323
Что за хуйня сегодня в гугл плее появилась? Аккаунт давно подтвержден, на нем выложено 4 игры. Выберете себе дедлайн, ну охуеть вообще.

Вылезло у кого подобное?
Аноним 09/11/23 Чтв 20:21:51 913984 419
>>913942
Я делаю игры и сразу в них играю сам. Никуда не публикую. Никому не показываю. Охуительный план, надёжный, как швейцарские часы.
Аноним 09/11/23 Чтв 20:25:05 913985 420
>>913978
Я бы мог сказать, что это, но меня забанят за политоту. Так что оформи свой вопрос тредом в ньюсаче (под видом новости "гугл плей ввёл дедлайны"), там тебе отвечу.
Аноним 09/11/23 Чтв 20:26:04 913986 421
>>913985
У меня не РФ, так что можешь отвечать тут.
Аноним 09/11/23 Чтв 20:46:55 913990 422
>>913986
Уж поверь моему опыту, я не могу отвечать тут.
Аноним 09/11/23 Чтв 21:19:55 913994 423
>>913990
Есть мнение что ты просто не знаешь.
Аноним 09/11/23 Чтв 21:34:04 913996 424
grapnel.mp4 14543Кб, 1280x600, 00:02:00
1280x600
>>913944
>ну так ты небось платформер очередной хотел сделать
Формально основные механики и место действия сводят геймплей к 3D платформеру. Другие мои проекты не имели ничего общего с платформерами, но в них играть оказалось совсем не интересно или основная идея была слишком сложной для меня.

>Садись писать игру мечты, забудь о комерции и дедлайнах, только на это будет реальная, живая мотивация.
С годами понял, нет у меня никакой "игры мечты". По играм у меня часто бывают мимолётные фантазии уровня "было бы круто поиграть в такую игру" (часто на основе того, во что я недавно играл), но такое обычно либо тяжело реализовать, либо вообще невозможно, а если даже легко сделать - надоедает спустя день/неделю. Поэтому у меня куча идей/проектов, которые я записал/начал делать, а потом забросил и забыл. К некоторым я иногда пытаюсь вернуться, но потом снова бросаю.
Аноним 09/11/23 Чтв 21:35:45 913998 425
>>913986
> У меня не РФ
В смысле, не по референсу значение передаётся? В гдскрипте есть обходной путь, как передать по референсу. Оборачиваешь своё значение в словарь и затем передаёшь.
> var by_ref = {"value" : 42}
...
> func deal_something(data): data.value += 1
...
> deal_something(by_ref)
> print(by_ref.value) # напечатает 43
Аноним 09/11/23 Чтв 21:38:18 913999 426
>>913996

> С годами понял, нет у меня никакой "игры мечты". По играм у меня часто бывают мимолётные фантазии уровня "было бы круто поиграть в такую игру" (часто на основе того, во что я недавно играл), но такое обычно либо тяжело реализовать, либо вообще невозможно, а если даже легко сделать - надоедает спустя день/неделю. Поэтому у меня куча идей/проектов, которые я записал/начал делать, а потом забросил и забыл. К некоторым я иногда пытаюсь вернуться, но потом снова бросаю.

Литералли ми!
Поэтому я забил на игры и делаю проги, используя годот как удобное ИДЕ с удобным лично мне ГУИ-фронтендом.
Аноним 09/11/23 Чтв 21:40:31 914000 427
>>913999
> делаю проги
Тем более в четвёрке запилили многооконность. Вот бы ещё сделали оконный рендер, без видеокарты вовсе, чтобы на любой встройке запускалось, разумеется, никаких шейдеров и т.п.
Аноним 09/11/23 Чтв 22:58:58 914009 428
Пытаюсь экспортировать проект. Годо просит с меня шаблоны экспорта. При попытке скачать автоматически загрузка постоянно прерывается. Вопрос: где взять файлы? Гугл выдает просто доки.
Аноним 09/11/23 Чтв 23:55:07 914014 429
image.png 1Кб, 106x33
106x33
>>914009
>шаблоны экспорта
Ничеси, хули тут так много
Аноним 10/11/23 Птн 00:05:19 914015 430
>>914014
Подожди когда под релиз андроида собирать начнешь. У меня игра билдовых зависимостей 1.5г натащила, а выдала в итоге бинарник 40мб.
Аноним 10/11/23 Птн 00:07:16 914016 431
image.png 46Кб, 573x521
573x521
>>914009
>где взять файлы? Гугл выдает просто доки.
https://godotengine.org/download/windows/
По годоту всё как-то плохо гуглится, происки врагов геймдева
>>914015
На виндовсе почти пустой проект 65мб получился
Аноним 10/11/23 Птн 00:45:07 914024 432
image.png 602Кб, 820x740
820x740
Голова устарела, обновлять не хотят
Аноним 10/11/23 Птн 01:06:09 914027 433
>>914016
Спасибо большое!
Аноним 10/11/23 Птн 01:34:33 914030 434
>>914024
Голова ок, ей фейслифт нужен. Вариантов была уйма. Основной косяк текущего лого - глаза.
Аноним 10/11/23 Птн 01:39:37 914031 435
>>914030
Мне кажется, если бы кто-нибудь нарисовал действительно что-то годное, то легко бы поменяли. Не рисует
Аноним 10/11/23 Птн 01:56:18 914032 436
Аноним 10/11/23 Птн 02:05:44 914033 437
>>913996
Хуясе у неё ляхи

>>914024
Лично мне не нравится, что у четвёрки никак не поменяли иконку. Хоть как-нибудь. Я щас поочерёдно открываю тройку для поддержки старого проекта и четвёрку для разработки нового. Очень неудобно их различать визуально.
Аноним 10/11/23 Птн 02:12:39 914034 438
>>914024
У меня лого годоти вызывает экзистенциальный ужас, так что я поддерживаю.
Аноним 10/11/23 Птн 02:26:08 914035 439
>>914034
Ты просто боишься смотреть людям в глаза.
Аноним 10/11/23 Птн 03:43:01 914036 440
>>913996
Можешь посмотреть Umihara Kawase. Там похожий геймплей.
Аноним 10/11/23 Птн 08:29:43 914041 441
поправил.mp4 3888Кб, 600x600, 00:00:59
600x600
и так сойдёт go[...].jpg 126Кб, 1000x850
1000x850
icons.png 3Кб, 355x130
355x130
>>913996
Такое приятное ощущение, когда твой персонаж на экране наконец-то оживает...

>>914031
>если бы кто-нибудь нарисовал действительно что-то годное
Да ладно, и так сойдёт.

>>914033
>Хуясе у неё ляхи
Она худенькая. (˵ ͡° ͜ʖ ͡°˵)

>у четвёрки никак не поменяли иконку
>Я щас поочерёдно открываю тройку для поддержки старого проекта и четвёрку для разработки нового. Очень неудобно их различать визуально.
Сделай ярлыки со своими иконками (в Windows 10 отображаются на панели задач после запуска).

>>914036
>Можешь посмотреть Umihara Kawase.
Спасибо, не знал, прикольная серия игр.
Аноним 10/11/23 Птн 09:02:50 914042 442
>>914032
Интересные вариант, есть где развернуться
Аноним 10/11/23 Птн 12:46:40 914065 443
>>914041
Походка как у робота из батлтэк
Аноним 10/11/23 Птн 13:17:47 914070 444
1699611466546.jpeg 185Кб, 900x900
900x900
>>914041
Помощь с проектом нужна?
Контакты не дам. Выкладывай таски (задания) прямо в тред. По мере готовности буду выкладывать готовое на файлообменники и ссылку ответом на пост.
Могу в кодинг. В том числе отрефакторить или допилить твой код. Могу написать охуительных историй в рамках твоего сеттинга про воздушные острова с толщекораблями и забиндить в диалоговую систему, или в систему глоссария, которые у тебя есть. Есть же?
В графониум не могу ни в каком виде, увы.
Аноним 10/11/23 Птн 13:30:26 914072 445
1699612225843.mp4 1758Кб, 854x480, 00:00:13
854x480
Аноним 10/11/23 Птн 13:36:40 914075 446
>>914072
В шапку следующего треда.
Аноним 10/11/23 Птн 13:43:27 914078 447
>>914070
>Могу в кодинг.
>Могу написать охуительных историй
>В графониум не могу ни в каком виде, увы.
Пока сто сходи нахуй, думаю это ты тоже можешь.
Аноним 10/11/23 Птн 13:45:44 914080 448
image 131Кб, 642x245
642x245
>>914072
Мне вот этот вариант нравится. Выглядит мощно, солидно.
Аноним 10/11/23 Птн 14:01:25 914083 449
>>914078
> сто
Причина тряски?
> Добро пожаловать в тред любви, взаимопомощи и сходи нахуй
В шапку следующего треда!
Аноним 10/11/23 Птн 14:04:26 914085 450
16711923793230.jpg 360Кб, 1080x779
1080x779
>>914070
>Контакты не дам. Выкладывай таски (задания) прямо в тред. По мере готовности буду выкладывать готовое на файлообменники и ссылку ответом на пост.
Уровнем разработки удовлетворён.
Аноним 10/11/23 Птн 14:10:27 914086 451
1699614627405.jpg 63Кб, 650x682
650x682
>>914085
Анонимный девелопинг.
Аноним 10/11/23 Птн 16:34:34 914106 452
>>914070
Я для всего этого чатгпт использую, неиронично. А для генерации рефов и идей арта - далли.
Аноним 10/11/23 Птн 21:33:16 914162 453
image.png 75Кб, 863x762
863x762
image.png 13Кб, 899x415
899x415
Аноним 10/11/23 Птн 22:06:03 914165 454
>>914106
>чатгпт использую
А ты видел они добавили поддержку ДАЛЛИ в чатГпт? Правда я так и не смог заставить его нарисовать что-нибудь. Кидаю свой концепт, прошу его дорисовать один момент, чтобы прикинуть как это будет выглядеть. Он такой "окей, подождите немного, мне нужно время". Через 20 минут спрашиваю "ну ты чё ёбаный в рот, где картинка?". А он "Извините, я не могу дорисовывать существующие картинки бла-бла". Ну хз. Я огорчен.
Аноним 11/11/23 Суб 04:23:37 914191 455
>>914041
>Сделай ярлыки со своими иконками
Я так и сделал. Но всё равно, какого хуя? Организовали бы конкурс на лучшую иконку. Сообщество огромное, художников дохуя. Кинуть клич, получить тысячу иконок, устроить голосование - профит!
В итоге даже и на поменять нечего выбрать: https://godotengine.org/press/
Вот если б хотя бы были варианты - плоская, объёмная, пикселяртная, линиями, какие там ещё есть стили иконок я хз.
Аноним 11/11/23 Суб 04:27:00 914192 456
>>914165
Разве в 3.5 добавили? Но энивей, я пользуюсь ими отдельно друг от друга. А вот если кто-то научится законченные юзабельные 3д модельки генерить - даже подписку оплачу наконец.
Аноним 11/11/23 Суб 05:48:00 914200 457
>>914041
Не пойму, анимация с физоном для бубесов есть или нет?
Аноним 11/11/23 Суб 08:32:09 914205 458
>>914162
Первая для индихоррора, вторая для... эмм... киберпанка?
Аноним 11/11/23 Суб 10:23:27 914212 459
>>914205
Для физик платформера про дверь и режущиеся квадраты, видимо
Аноним 11/11/23 Суб 12:31:54 914221 460
Посмотрел видосики выше и заметил, что верёвка крюка-кошки натягивается не по физике.
Как считаете аноны, как пофиксить это?
Стоит ли создавать полноценную симуляцию физики в чарактербоди?
Или может есть способ на лету менять игроку тип тела с чарактер на ригид? Чтобы значит, пока ходишь у тебя чарактер, а как летаешь на крюк-кошке, тело переключается на ригид с джойнтами и управляется по физике импульсами с полной поддержкой веса, столкновений, инерции искаропки.
Аноним 11/11/23 Суб 17:50:27 914288 461
Ебучие шейдеры
Аноним 11/11/23 Суб 20:27:54 914304 462
Извините я тупой
Вот установил я годот, думал там как в автокаде можно нарисовать кубов
А там нельзя
Аноним 11/11/23 Суб 20:46:42 914308 463
Аноним 11/11/23 Суб 20:59:20 914310 464
Аноним 12/11/23 Вск 13:34:00 914389 465
Какой "свет" в 3д самый дешевый? Запеченый? Или emissive+hdr? Или есть что-то еще? Мне нужно подсветить область, реализм не важен, и в 2д я бы туда поставил просто полупрозрачную круглую текстуру.
Аноним 12/11/23 Вск 13:40:27 914392 466
>>914389
Давай так, ты делаешь тесты всех видов света и приносишь нам ответы в тред. А мы тебя благодарим.
Аноним 12/11/23 Вск 13:58:43 914393 467
Аноним 12/11/23 Вск 14:02:45 914394 468
Аноним 12/11/23 Вск 14:12:32 914395 469
>>914394
Ну ты и наглый конечно.
Аноним 12/11/23 Вск 20:23:24 914483 470
Без названия.gif 53Кб, 254x172
254x172
Привет геймдевач, нулевой вкатун с двухзначным айкью на связе.
Прохожу тутор по этому вивдево.
https://www.youtube.com/watch?v=-4jEXTwTsVI&t=978s
Там мужик создает scene в ней новый node и в поиске выбирает kinematic body 2d. Видево от 2021 года у меня самая новая версия.
Они переименовали этот node? Что мне делать?
Аноним 12/11/23 Вск 20:26:02 914484 471
>>914483
Блядь говорю же я сильно тупой, ну в смысле у меня этот нод не находится, в этом был вопрос.
Аноним 12/11/23 Вск 20:33:38 914488 472
Аноним 12/11/23 Вск 20:35:46 914489 473
>>914488
Ясен спасибо. Похоже зачем то дохуя переиминовали в новом апдейте.
Есть смысл продолжать тутор по старой версии или сильно много еботы и лучше найти тутор по 4ой?
Аноним 12/11/23 Вск 20:52:23 914491 474
>>914489
Если найдешь нужный урок для четверки то конечно его учи. На годоте много уроков выходит, должно быть нужное
Аноним 12/11/23 Вск 20:52:56 914492 475
>>914483
>Что мне делать?
Учиться искать
Аноним 12/11/23 Вск 21:37:22 914497 476
>>914489
> Есть смысл продолжать тутор по старой версии
Есть. Ты основы учишь, а не детали переименования узлов. Просто скачай свежую трёшку и учись на ней. Будет у тебя LTS-версия движка. Как научишься базе, основам, так самостоятельно на четвёрку перекатишься.
Аноним 12/11/23 Вск 22:23:25 914501 477
Untitled-1.png 176Кб, 2804x1464
2804x1464
Нашел новый урок, следовал полностью тутору, вышла такая вот ошибка, почему так?
>>914491
Да, нашел почти такой же урок, для новой версии.
>>914497
А какой в этом плюс в сравнении с тем, что бы сразу на 4ке учиться?
Аноним 12/11/23 Вск 22:39:54 914503 478
>>914501
>А какой в этом плюс в сравнении с тем, что бы сразу на 4ке учиться?
Туторов в разы больше. Плюс, если какая-то ошибка, то она точно не из-за отличающейся версии, а из-за твоей криворукости.
Вот как здесь. Ты невнимательно следовал тутору. И вообще очень невнимателен.
1. Проверь, к какой ноде прикреплён скрипт. Сравни, к какой надо, согласно тутору.
2. (сверх того) У тебя там то velocity, то velocoty, то вообще veloci. Ты определись уже, как переменную зовут.
Аноним 12/11/23 Вск 22:50:47 914505 479
>>914503
Плюс он банально переменную не объявил.
Аноним 12/11/23 Вск 22:53:08 914506 480
>>914505
Велосити в четвёрке не надо объявлять для чарактербоди.
Аноним 12/11/23 Вск 22:59:48 914509 481
>>914506
Хуя новости. Ну лан.
Аноним 12/11/23 Вск 23:06:05 914511 482
Аноним 12/11/23 Вск 23:24:12 914514 483
Untitled-1.png 371Кб, 3913x2081
3913x2081
>>914503
Я вообще нихуя в этом ваше кодинге не понимаю, от слова совсем.
Да вилосити я например пофиксил.
К ноде плеер я прикрепил скрипт, у челобасика тоже к Player.
https://www.youtube.com/watch?v=pBoXqW4RykE
У меня node type :Node2d
У этого чела на плеере маленький челебасик бегущий, вероятноу него type:CharacterBody2d
Но это не точно.
Как анон ниже написал, >>914511
В ноде CharacterBody2D не нужно обьявлять переменную. Но хуй из тутора не уточнил, что это актуально для определенных нодов, сказал просто что не нужно.
Ну я вообщем уже ее обьявил, ошибка ушла.

Что это значит
Function "move_and_slide()" not found in base self.
Я сейчас ищу в документации к Годоту, но там пиздец стены текста написанные для какихто альтруистов, я простохочу игру с сиськами запилить, а не кулхацкером становится.
Аноним 12/11/23 Вск 23:27:38 914515 484
>>914514
Блядь нельзя просто в программе было написать, что там неработает. На дворе 2023 год, там хомяки визжат, что у них чатгтп работу заберет. А мне нужно выходить из проги, идти на какой-то доисторический форум и читать стены текста. Чаму так? Где иновации, когда наступит будущее?
Аноним 12/11/23 Вск 23:29:49 914518 485
>>914511
Да я верю. Просто удивился.
Аноним 12/11/23 Вск 23:31:10 914519 486
>>914515
Хомяки того, немного оторваны от реальности.
Аноним 12/11/23 Вск 23:32:48 914520 487
>>914515
Просто кодинг не для тебя, мозги по-другому устроены. Тебе надо чем-то другим заняться, двор мести или там посуду мыть
Аноним 12/11/23 Вск 23:38:43 914521 488
>>914514
Посмотри на 2:30, как он создаёт ноду для персонажа.

>Я вообще нихуя в этом ваше кодинге не понимаю, от слова совсем.
Выбирай, кем ты хочешь быть. Долбоёбом, не умеющим и не желающим учиться? Или геймдевом, мастером на все руки?
Хочешь делать игры - придётся собирать мозги в кучку и вникать. Тут хуяк-хуяк не прокатит. Анон с тобой за ручку всю игру не сделает. Придётся научиться понимать и читать доки.
Аноним 12/11/23 Вск 23:39:15 914522 489
>>914520
Анончик, мне 35 лет, я уже в жизни куда более сложные вещи учил.
Тут просто какой-то каменный век, похоже. Кодеры этой штуки не брали в расчет что бы прога была user friendly от слова совсем.
Почему она просто мне не скажет, в чем там ошибка?
Вот захожу я в документацию
Какая-то ахуенная прохладная история, которая мне совершенно никак не помогает.
И что дальше делать, ага блядь один бьект скользит по другому, только что ощибка значит, нигде не написано?

bool move_and_slide ( )

Moves the body based on velocity. If the body collides with another, it will slide along the other body (by default only on floor) rather than stop immediately. If the other body is a CharacterBody2D or RigidBody2D, it will also be affected by the motion of the other body. You can use this to make moving and rotating platforms, or to make nodes push other nodes.

Modifies velocity if a slide collision occurred. To get the latest collision call get_last_slide_collision, for detailed information about collisions that occurred, use get_slide_collision.

When the body touches a moving platform, the platform's velocity is automatically added to the body motion. If a collision occurs due to the platform's motion, it will always be first in the slide collisions.

The general behavior and available properties change according to the motion_mode.

Returns true if the body collided, otherwise, returns false.
Аноним 12/11/23 Вск 23:42:09 914523 490
>>914522
Тогда ты должен знать что сходу ничего комплексного не делается. Не спеши, выбери другой гайд, третий, почитай документацию и постепенно все получится.
Аноним 12/11/23 Вск 23:45:29 914524 491
>>914522
>>914514
>Блядь нельзя просто в программе было написать, что там неработает.
Так вон написано же:
>Function "move_and_slide()" not found in base self
В ноде (которая для этого скрипта является self) отсутствует функция move_and_slide(). Может быть, ты в скрипте не объявил? А может, это нода не та? А может, опечатка? Да хуй знает, редактор же не может телепатически проникнуть в твой разум и узнать, что же ты имел ввиду. Но ошибка - вот она, человеческим языком написана.
Аноним 12/11/23 Вск 23:45:49 914525 492
>>914522
Пчел, прога максимально юзер френдли. Но у проги нет задачи научить тебя любому нюансу кодинга с которым ты столкнулся, потому что у миллиона новичков непонимание возникает в миллионе разных мест.
В ошибке же все четко
function "move_and_slide"
not found
in base
self.
Ты вызываешь функцию без объекта (someobj.function())
Значит ты вызываешь ее у самого объекта к которому прикреплен скрипт (self, "у себя")
Функция с таким названием не найдена в базовом классе
Базовый класс - тот, от которого твой скрипт extend
Смотрим, а у тебя extend от Collision Shape (формы коллизии)
А move and slidе где? В классе KinmaticBody
Аноним 13/11/23 Пнд 00:03:46 914526 493
>>914521
Я полностью повторил за ним структуру нодов, но ошибка та же.
Проблема с документацией в том, что она слишком обширная.
И например у меня ошибка в скрипте, но у меня нет возможности конкретно об этой ошибке прочитать.
Function "move_and_slide()" not found in base self.
Но если я загоняю это в гугл, то нахожу только кучу текста о том, что такое эта функция, но все что я хотел, что бы спрайт управлялся стрелочками, но касаемо этого информации я найти не могу. Может быть это слишком очевидно, но почему тогда такие очевидные проблемы не объяснить инфотекстом в самой программе?
>>914523
Ну это шутка была, я художник, там учеба немного иначе происходит. Технических знаний у меня нет.
Похоже я повелся на инфоциган с ютуба, которые уже год кукарекают, что нейронки все уже за тебя делают, но похоже даже для примитивной top down rpg Нужно ебаться.
>>914524
>В ноде (которая для этого скрипта является self)
Спасибо что написал, теперь попробую в эту сторону гуглить.
Я пытался найти что такое self base, Но там что-то максимально обстрактное на несколько страниц было.
>>914525
>Но у проги нет задачи научить тебя любому нюансу кодинга с которым ты столкнулся, потому что у миллиона новичков непонимание возникает в миллионе разных мест
И где мне это все узнавать, не пойду же я на 5 лет в универ, что бы 16 битную джейрпг запилить, это архаичная техника которую диды пилили на тостерах, до того как я родился?
>in base
>self.
Ну например это уже какой-то жаргон и даже не ясно это понятие из программирования в общем или конкретно к гадоту относится.

>Ты вызываешь функцию без объекта (someobj.function())
>Значит ты вызываешь ее у самого объекта к которому прикреплен скрипт (self, "у себя")
>Функция с таким названием не найдена в базовом классе
>Базовый класс - тот, от которого твой скрипт extend
>Смотрим, а у тебя extend от Collision Shape (формы коллизии)
>А move and slidе где? В классе KinmaticBody
Я раз 15 прочитал, нихуя не понял, что делать?
Аноним 13/11/23 Пнд 00:19:51 914527 494
>>914526
>не пойду же я на 5 лет в универ, что бы 16 битную джейрпг запилить
>я хочу стать сеньором помидором, не пойду же я изучать погроммирование 10 лет, что делоть?
Найди программиста, ты не сможешь ничего спрогать, не мучай жопу, художник, только время проебешь. Чтобы даже простое программировать нужно много потрудиться, хотя бы годик нейроночку мозговую пообучать. Никакими чатами гпт ты воспользоваться не сможешь, нужно самому понимать что делаешь.
Аноним 13/11/23 Пнд 00:21:04 914528 495
0,00000002.png 139Кб, 424x431
424x431
>>914522
>Почему она просто мне не скажет, в чем там ошибка?
Аноним 13/11/23 Пнд 00:27:34 914530 496
>>914526
>Я раз 15 прочитал, нихуя не понял, что делать?
Ты наследуешь от неправильного класса. Функция move_and_slide находится в CharacterBody2D, а ты в extend наследуешь от CollisionShape2D.

Кроме того, у тебя скрипт-файл прикреплен не туда (надо к CharacterBody2D).

Посмотри свой видеогайд внимательно. Там чел делает правильно. И повторяй точь-в-точь. И слушай его объяснения. В программировании каждая буковка важна. И пожалуй я тебе посоветую не отклоняться от гайда слишком сильно - тебе это рано. Пройди 3-4 гайда, прочувствуй основные моменты - тогда пытайся свое, основываясь на чужом.
Аноним 13/11/23 Пнд 00:30:24 914531 497
>>914526
>Я полностью повторил за ним структуру нодов
Нет, не повторил. У чарактербоди есть и велосити, и функция move_and_collide. Он создал чарактербоди. Ты - нет. Создай чарактербоди и к нему прикрепи скрипт.
Повторяй за ним каждое движение мышкой. Нет, я серьёзно. Даже по тому, как ты пишешь, видно, что ты очень невнимателен к деталям. Именно из-за этого упускаешь ключевые вещи. Так как ты пока не знаешь, что именно ключевое, надо быть гипер-сфокусированным на деталях.

>если я загоняю это в гугл
Эта ошибка может случиться в миллионе разных ситуаций. Эти ситуации обычно возникают у нубов (вот как у тебя) и решается путём вставления мозгов на место.
То есть, дело не в том, что ты что-то конкретное неправильно делаешь. А в том, что ты пока не вкурил, как это в принципе работает.

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

>я художник
Бро, я музыкант. В Годо залипаю с 2020.

>архаичная техника которую диды пилили на тостерах, до того как я родился
Те диды были покруче всего /гд/ вместе взятого так-то. Могли целую жрпг упихать в 64 килобайта картриджа.
Аноним 13/11/23 Пнд 00:31:56 914532 498
Музыкант, художник. Осталось программиста найти и игра мечты готова.
Аноним 13/11/23 Пнд 00:37:19 914533 499
>>914527
Не я понимаю, что это выглядит как буд-то залетный ебанат пришел и начал качать права. В общем так и есть.
Я буквально вчера на твиторе видел чувак тред составлял мол он абсолютно с нуля загенерил говноарт в миджорни и код ему четгпт написал и он за 2 часа сделал клон angry birds.
Я реально подумал что маленькую игорю написать не слжоно будет. И немного ахуел с самого старта.
С чего нулевому вкатуну начать, эти ахуенные курсы рпг за 2ь минут, тоже очевидная хуита расчитаная на людей с опытом.
>>914530
>Кроме того, у тебя скрипт-файл прикреплен не туда (надо к CharacterBody2D).
Все равно та же ощибка выходит.
>Посмотри свой видеогайд внимательно.
Да я и так смотрел постоянно отматывая назад, только он нихуя толком не пояенсяет. Типа хуякс-хуякс тут кликнул ага и чувак забегал по экрану.
Аноним 13/11/23 Пнд 00:42:53 914535 500
>>914531
Ну вроде реально все за ним повторил, единственное что у него нода для анимации персонажа, а у меня анимации нет и я спрайт выбрал вместо этого.
Похоже реально нужно было рпг мейкера качать, но в той говнине 0 мотивации разбираться, если даже и вкачусь в нее нормально, все равно она жутко кастрированная и придется перекатываться, лучше сразу нормально учить.
Аноним 13/11/23 Пнд 00:45:47 914536 501
Untitled-1.png 263Кб, 1410x2064
1410x2064
Аноним 13/11/23 Пнд 00:47:03 914537 502
image.png 361Кб, 1171x628
1171x628
Аноним 13/11/23 Пнд 00:50:31 914538 503
>>914533
М-да, вот для таких случаев нужен препод. Чтобы сидел рядом и показывал: вот тут ты накосячил, вот тут, а теперь сосредоточься вот на этом.

>говноарт в миджорни и код ему четгпт написал
А почему ты так не сделаешь?
(вообще, я скажу, почему. Потому что есликогда чатгпт накосячит, исправлять придётся тебе, а это шарить надо)

>>914537
как ты так быстро это делаешь
Аноним 13/11/23 Пнд 00:51:51 914539 504
>>914537
Ааааа, теперь понял, спасибо. Это оказывается не я тупой, а автокоррекция годота мне в штаны подливы залила.
Аноним 13/11/23 Пнд 00:53:00 914540 505
>>914539
>Это оказывается не я тупой, а автокоррекция годота мне в штаны подливы залила.
Чет обосрался с этого маневра, лол.
Аноним 13/11/23 Пнд 00:56:50 914541 506
>>914538
>М-да, вот для таких случаев нужен препод.
Так хороший препод наверное будет стоить, так же как хороший кодер, кто за тебя твою игорю и напишет.
>А почему ты так не сделаешь?
Я когда этот кал на хайпе был, потыкал в него немного, крайне тупая и бесящая штука. Буквально симулятор среднестатистического штипостера в интернете. А там еще вроде и подписка нужна, короче я к этому говну не притрагивался с тех пор и не собираюсь.
Ну а миджорни и говорить не стоит, буквально калогенератор, для людей без души.
Аноним 13/11/23 Пнд 01:02:28 914542 507
>>914539
>автокоррекция годота
Нет такой штуки. Вот тут >>914514 у тебя вообще скрипт к Node2D прикреплён, а экстендс всё так же коллижоншейп.
Эта строчка генерится автоматически в момент создания скрипта. Скорее всего, ты его сначала по ошибке прицепил к коллиженшейпу, весь написал, он ожидаемо не заработал, и ты стал его весь целиком копипастить (или просто переприкреплять один и тот же уже созданный файл) сначала в ноде2д, потом в чарактербоди.

>>914541
>крайне тупая и бесящая штука
Ну хуй знает, мне вот недавно надо было сайт сделать, так яндексовый гпт вполне сносно справился со всеми вопросами про пхп.
Вроде как с Годо 3.5 у него тоже всё отлично. С 4, очевидно, нет, не успели обучить ещё.

>Так хороший препод наверное будет стоить, так же как хороший кодер
Зато сэкономит кучу времени и нервов на стадии обучения.
Аноним 13/11/23 Пнд 01:03:52 914543 508
>>914542
>про пхп.
Ну ты дед. Интересно, можно ли на гдскрипте.
Аноним 13/11/23 Пнд 01:21:39 914546 509
Перекот делойте. Эту >>914072 можно в шапку.
Аноним 13/11/23 Пнд 01:42:42 914548 510
>>914543
>Ну ты дед
Не отрицаю. Тащемта, я ровесник ху_дожника.
Просто последний раз сайт делал году эдак в 2008 на народе, на чистом хтмл+цсс, и с тех пор не лазил в том направлении. Задача была - с минимальными затратами на обучение сделать для себя за пару вечеров полу-статический сайт на бесплатном хостинге. Пхп идеально подходит под эту задачу, он супер прост в освоении и на хостинге был предустановлен.

На гдскрипте, очевидно, можно написать серверную часть сайта, но это бессмысленно. Как минимум, потому что гдскрипту нужен годот, годоту нужно графическое окружение, а ставить на сервер графическое окружение никто в здравом уме не будет.
Аноним 13/11/23 Пнд 01:52:12 914549 511
>>914548
Не. Есть headless годот - подходит для написания консольных инструментов, а есть Server годот - на нем сервера для мультиплеер игр на годоте пишут. В четверке как я понимаю отдельный билд для сервера убрали, теперь просто экспортишь под сервер: https://docs.godotengine.org/en/stable/tutorials/export/exporting_for_dedicated_servers.html

Так что вполне можно. И в базы данных умеет.
Аноним 13/11/23 Пнд 02:38:56 914551 512
Хуйдожник кстати после проеба вполне успешно запилил анимацию на движение в различном направлении и вполне себе понял код.
Синтакс правда не совсем понятен.
Оказывается играет роль насколько новая строчка, например if имеет табов растояния от начала. Помню в школе какую-то хуиту учил, C или что там было не помню, но там такого не было. И что означают "." "_" или доллар тоже не совсем ясно.
Аноним 13/11/23 Пнд 03:04:16 914553 513
>>914551
Годот-тян говорит молодца.

Синтаксис питоно-подобный. Скорее всего питон ты в школе и учил. Тут влияет отступ, чем глубже вложенность (иф внутри иф), тем больше отступ.

_ это ты про префикс переменных и функций. Им обозначаются функции/переменные, дерганье которых не запланировано снаружи скрипта, в котором они обозначены. Приватные крч. Но это условность, на уровне движка это не энфорсится.

. - доступ к членам класса/объекта/структуры

Через доллар ты указываешь путь к ноде. В редакторе слева у тебя древо нод - вот это и указываешь.
Аноним 13/11/23 Пнд 10:44:35 914585 514
>>914551
куда ты лезешь с таким отношением?
Где-то когда-то в школе видел какую то хуету, ебать тут отступы что-то значат, а что значат эти закорючки ...
Двиньте ему по башке кто поближе это просто невыносимо.
Аноним 13/11/23 Пнд 11:46:25 914614 515
>>914585
Не все любят питоноподобный синтаксис. Я, кроме самого питона, табуляцию как часть синтаксиса видел еще в BYOND ебучем. Не помню уже что в C#.
Аноним 13/11/23 Пнд 12:07:26 914624 516
>>914614
>Не помню уже что в C#.
Знаешь как это решается? Перед тем как насрать в тред пишешь в гугле - сишарп пример кода - и вспоминаешь
Аноним 13/11/23 Пнд 12:12:38 914627 517
Аноним 13/11/23 Пнд 12:21:12 914629 518
>>914627
Не помогайте этому уебку, пацаны
Аноним 13/11/23 Пнд 12:46:30 914636 519
>>914629
Тебе кто-то с утра на хуй наступил?
Аноним 13/11/23 Пнд 12:47:33 914637 520
>>914514
> я простохочу игру с сиськами запилить, а не кулхацкером становится
Очередного жиробаса зелёного накормили ИТТ.
Пере Аноним 13/11/23 Пнд 12:55:53 914639 521
Аноним 14/01/24 Вск 15:50:47 927561 522
>>910890 (OP)
Подскажите, если в блендере сделать 1 из 2 способов с видосов:
1.https://www.youtube.com/watch?v=G4VEHi3dI6w&ab_channel=ALLTHEWORKS Сделать деревья через ноды, то создаваемые после модели можно ли будет экспортировать в ГОДО ?
2. https://www.youtube.com/watch?v=zk6aUkl115E&ab_channel=CGIGuru Создания через привязку листьев через ту же сферу, саму сферу спрятать как альфа каналом, в рендере самого блендера выглядит норм, а если перенести в ГОДО кто нибудь сталкивался ?
Аноним 22/01/24 Пнд 16:46:38 929091 523
Хочу вкатиться но помимо официальной документации очень мало полезной информации в виде текста, все снимают видео туториалы для школоты. Есть информация о примерной структуре проекта? Как понять что эту механику лучше разбить на компоненты? Паттерны программирования?
Аноним 25/01/24 Чтв 00:55:09 929522 524
image.png 203Кб, 1920x1080
1920x1080
image.png 22Кб, 706x294
706x294
image.png 45Кб, 718x521
718x521
Что за белые полосы по краям экрана, когда запускаю fullscreen?
И еще есть проблема, как только ставлю mouse_captured, то экран начинает как бы моргать позади окна игры, если не в фул скрине запущено, но если перенесу окно на другой монитор, или скрою сам окно движка, то все ок.
Аноним 25/01/24 Чтв 00:57:07 929525 525
image.png 203Кб, 1920x1080
1920x1080
image.png 22Кб, 706x294
706x294
image.png 45Кб, 718x521
718x521
Что за белые полосы по краям экрана, когда запускаю fullscreen?
И еще есть проблема, как только ставлю mouse_captured, то экран начинает как бы моргать позади окна игры, если не в фул скрине запущено, но если перенесу окно на другой монитор, или скрою сам окно движка, то все ок.
Аноним 20/02/24 Втр 21:17:07 937981 526
>>929525
А запасом модельку не двигал под стенку?
Аноним 05/03/24 Втр 22:07:37 940619 527
image.png 290Кб, 1078x571
1078x571
Делаю диалоговую систему по видосам, такая хрень вылезла. Че с этим делать?
res://addons/dialogue_nodes/editor/workspace.gd:64 - Invalid get index 'close_request' (on base: 'GraphNode (startNode.gd)').
Аноним 30/03/24 Суб 16:42:06 943524 528
Посоветуйте плз уроки по годоту где используется гдскрипт.
Аноним 31/03/24 Вск 17:21:21 943664 529
Как в годоте пройтись по сцене чтобы получит все объекты с типом button?
Аноним 03/04/24 Срд 20:06:39 944075 530
>>929091
бля, ну общий гейм дев вероятно ответит на эти вопросы.
Аноним 03/04/24 Срд 20:08:31 944077 531
>>927561
на первом узнаваемый индусский акцент)
Аноним 08/04/24 Пнд 20:46:51 944579 532
Вопрос от "еще не смешарика"
Ниче не знаю, ниче не умею, но хочу попробовать соприкоснуться с созданием игорь. Но сидеть и учить документацию по строчке пока не готов, поэтому хочу спросить совет.

Посоветуйте, пожалуйста, пример простой игры (змейка/ тетрис/три в ряд и т.д.) который стоит повторить в учебных целях.

Идей много, но вот какой учебный проект взять что бы не было слишком перегружено, но и не в одну кнопку.
Аноним 09/04/24 Втр 12:50:16 944647 533
image.png 1409Кб, 1366x768
1366x768
пРИВЕТ. А я игору делаю.
Аноним 09/04/24 Втр 13:19:42 944655 534
image.png 1293Кб, 1366x768
1366x768
Плиточку распидорасило!
Аноним 12/04/24 Птн 00:10:08 945124 535
Привет, Сосач. Недавно заценил демки Godot'а, такие как TPS Demo (для четвёрки есть версия на Гитхабе), Abandoned Spaceship Demo & Desert Light Demo. Во всех трёх случаях я жёстко охуел с высокой загрузки GPU. Кто-нибудь подскажет, это демки плохо оптимизированы или Godot в принципе плох для 3D? Можно ли исправить производительность с помощью RenderingServer (ни в одной из демок таковой не используется напрямую)?
Аноним 19/04/24 Птн 02:22:04 946103 536
напиши плиз авторов ютуб каналов по которым вы учились
Аноним 19/04/24 Птн 02:26:11 946104 537
Аноним 20/04/24 Суб 21:37:58 946365 538
как заменить все пробелы на табы, помню случайно нашел такую комбинацию и благополучно о ней забыл, еблан, а щас пиздец как понадобилась
Аноним 21/04/24 Вск 23:08:12 946493 539
photo2024-04-21[...].jpg 67Кб, 931x672
931x672
photo2024-04-21[...].jpg 114Кб, 1158x651
1158x651
>>910890 (OP)
Сап двач, есть один GridContainer, который не отображает мои ColorRect. На пике-1 код, который работает в Node2D и всё отрисовывает (пик-2 - работа кода на Node2D), а внутри GridContainer срать он хотел на мои квадратики, бака. Что я делаю не так?
Аноним 22/04/24 Пнд 00:14:29 946504 540
>>944579
Space Invaders поделай. Пошагово можно поиграться сначала с позициями кораблика-игрока, нарисовать одного врага и пострелять в него, потом поиграть с окружением, потом - с кучей врагов, коллизиями и прочим.
Ответить в тред Ответить в тред

Check this out!

Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов