Главная Юзердоски Каталог Трекер NSFW Настройки

Gamedev

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 506 122 83
Godot #39 Аноним # OP 21/09/23 Чтв 13:17:57 901894 1
1695291475672.png 324Кб, 1280x720
1280x720
Аноним 21/09/23 Чтв 13:27:07 901898 2
Очитались о выполнении задания >>895915 →!
Аноним 21/09/23 Чтв 13:30:30 901899 3
Докладывайте, кто сколько игор сделал?
Аноним 21/09/23 Чтв 13:32:23 901900 4
>>901898
>>901899
От себя - полторы. Микро-игру на 4 кнопки, но законченную. Сейчас жду одобрения в гугл плее и работаю над второй, побольше, в 3д.
Аноним 21/09/23 Чтв 14:47:24 901928 5
1695296843546.png 106Кб, 628x528
628x528
>>901899
> Докладывайте, кто сколько игор сделал?
Я недавно узнал о программе MagicaVoxel и сейчас пилю ассеты воксельные для своей игры мечты. А так же там есть прямой импорт прямо в двиг.
Аноним 21/09/23 Чтв 15:21:29 901932 6
>>901928
Хороший выбор, простой. А я в блокбенче хуярю. Тоже изи плюс в анимацию умеет.
Аноним 21/09/23 Чтв 15:49:35 901936 7
Ну чё там, годото разрабы отчитались, насколько трафик увеличился в свете последних событий?
Аноним 21/09/23 Чтв 16:17:14 901943 8
>>901936
На реддите мелькали статы по гугл-поиску и популярности сабреддита.
Аноним 21/09/23 Чтв 16:24:19 901945 9
>>901932
Не, блокбенч какой-то сложный. Вот бывает же такое, когда скачиваешь прогу, запускаешь и всё сразу ясно без туториалов.
Аноним 21/09/23 Чтв 17:34:32 901968 10
Работаю в вебе, решил попробовать вкатиться в геймдев. Уже недельку по чуть-чуть ковыряю туториалы. Несколько раз пробовал вкатиться в юнити, но что-то прям не заходило. А с godot все идет как по маслу, интерес не пропадает.

Круто мотивируют видосы челов, которые делают игры под game jam'ы. Подумываю самим попробовать как освоюсь, только вот немного удручает что надо самому учиться ассеты пилить
Аноним 21/09/23 Чтв 17:42:00 901969 11
>>901968
>надо самому учиться ассеты пилить
Бери готовые, CC0
Аноним 21/09/23 Чтв 17:53:54 901972 12
>>901969
Так и думал. Но все равно игра в таком случае кажется "не своей". Да и фантазия ограничивается доступными ассетами. Надо будет курсы по бленедеру пройти
Аноним 21/09/23 Чтв 18:21:22 901983 13
>>901972
Выше в комментах - блокбенч и магика воксель.
Аноним 21/09/23 Чтв 18:43:40 901990 14
Аноним 21/09/23 Чтв 18:52:51 901998 15
1695311569711.png 701Кб, 2500x1700
2500x1700
>>901972
> курсы по бленедеру
Годное решение. Одно из лучших в твоей жизни. Не откладывай. Вот тебе для затравки.
Аноним 22/09/23 Птн 00:01:39 902145 16
1000003215.jpg 545Кб, 941x1403
941x1403
Ананасы, нужен гайд от тех кто вкатился. Как начатать быстрее и эфективнее всего работу с годот имея базовые навыки в создании игр, спасибо.
Аноним 22/09/23 Птн 00:29:57 902151 17
>>902145
Пройди официальные гайды, your first 2d game, your first 3d game, валяются в официальной документации. Дальше делаешь свои проекты по документации и, опционально, подглядывая за гайдами на ютубе.
Аноним 22/09/23 Птн 00:45:27 902154 18
>>901899
Я вот прям щас выкладываю на итч.
Аноним 22/09/23 Птн 00:52:06 902158 19
>>902145
Сделай какую нибудь простую игру. Платформер 2д или run-n-gun или топдаун шутер что то такое. Чтобы попробовать все аспекты, от загрузки ресурсов, уровней, анимаций, физики прыжков, гуя, настроек, звуков. Поведения врагов, спавны, логику хитов, рестарта, смерти, базовую камеру, взаимодействие с предметами типа дверей. Потом можешь прикрутить фичи типа смены оружия, апгрейдов, визуальных спецэффектов, освещения, поиска пути, диалогов, катсцен, инвентарь и тд
Аноним 22/09/23 Птн 00:52:26 902159 20
>>901928
Кстати, для вокселей есть ещё вспомогательная утилита SLAB6. Узнал о ней из видосов чела, который дум в воксель перенёс: https://www.youtube.com/watch?v=RJ7MH2FqUIg
Аноним 22/09/23 Птн 00:54:01 902161 21
>>901899
Успел 0, сломался компьютер и перестал работать блендер. Придется вернуться к 2д проектам или тупо делать на чужих лоуполи ассетах
Аноним 22/09/23 Птн 00:56:22 902162 22
>>901932
Можно в самом годоте делать. Надо просто написать простенький редактор для csgpolygon который будет uv текстуру натягивать.
Аноним 22/09/23 Птн 01:09:14 902164 23
>>902162
>csgpolygon
Они же только для разработки предназначены, как плейсхолдеры, не? В том смысле, что роняют производительность.
Аноним 22/09/23 Птн 01:50:09 902167 24
>>902164
А ты потести. Ну и есть аддоны/скрипты для конвертирования в obj
Аноним 22/09/23 Птн 02:01:47 902170 25
>>902154
Мое почтение.
>>902161
А у этого собака домашку съела. Не сдавайся, делай, и помни что со временем приходит опыт, а с опытом все получится. Где бы время еще взять, бля.
Аноним 22/09/23 Птн 02:04:19 902172 26
>>902170
Мне этот опыт уже девать некуда блджад курсы что ли запустить уже.
Аноним 22/09/23 Птн 02:04:55 902173 27
Аноним 22/09/23 Птн 02:38:27 902174 28
>>901928
Да, но звуковой плеер очень пердежно импортирует огг. Нормальный звук эффекты можно только встроенным синтом сделать. Мне поэтому не подошел.
Аноним 22/09/23 Птн 10:49:17 902216 29
Аноним 22/09/23 Птн 10:50:20 902217 30
Аноним 22/09/23 Птн 12:19:01 902232 31
1695374154.png 97Кб, 698x741
698x741
1695374164.png 55Кб, 600x378
600x378
А я сейчас занялся изучением мультитрединга путём переписывания скриптов на шарпе обратно в гдскрипт. В качастве поциента выбран GodotManager (кажется, он есть в шапке).
Аноним 22/09/23 Птн 14:14:47 902257 32
>>902217
Блять, 11 часов, охуеть! Яндекс-переводчик отказывается озвучивать.
Аноним 22/09/23 Птн 14:33:09 902264 33
>>902257
Английский - самый полезный скилл для любого айтишника. А технический английский еще и простой. Даже индусы в него могут.

Теперь ты знаешь какой скилл тебе прокачивать.
Аноним 22/09/23 Птн 14:41:22 902268 34
Стив Каррел офис.gif 492Кб, 175x177
175x177
>>902264
>Английский
Из твоих уст доносятся мерзкие слова
Аноним 22/09/23 Птн 15:07:44 902278 35
>>902264
Ес айм гет вот эбаут ю спокен, бат лец американс го фак ёселф виз.ем тонг. Андестенд?
Аноним 22/09/23 Птн 16:05:17 902320 36
>>902278
Проиграл с этого корявого селючьего нахрюка.
Аноним 22/09/23 Птн 16:17:28 902325 37
>>902264
Учите китайский, чтобы не пришлось учить хинди.
Аноним 22/09/23 Птн 16:33:01 902328 38
image 123Кб, 480x260
480x260
image 64Кб, 1923x528
1923x528
>>902325
китайский кривой и тоновый, а хинди хоть на человеческий похож
Аноним 22/09/23 Птн 16:36:12 902332 39
Зарепортил нерелейтед. Игры делай.
Аноним 22/09/23 Птн 17:06:00 902349 40
qmk1pcewsspb1.png 1052Кб, 3492x2299
3492x2299
Шпаргалка про шейдеры. На англюсике, азаза
Аноним 22/09/23 Птн 17:20:39 902358 41
Плохое зло.jpg 148Кб, 720x540
720x540
>>902349
>На англюсике, азаза
Аноним 22/09/23 Птн 19:13:47 902384 42
>>902358
Ну сорян. Все равно полезно.
Аноним 22/09/23 Птн 20:58:54 902446 43
>>902328
Причём тут санскрит, если в индии хинди + множество местных + англ.
Аноним 22/09/23 Птн 22:14:57 902522 44
image.png 107Кб, 1832x1308
1832x1308
Аноним 23/09/23 Суб 01:34:52 902597 45
Где найти людей, способных потестить и дать подробные отзывы о ранней версии игры? Подразумевая что ты не ютубер с сотней тыщ подписчиков. На реддите овощи какие-то, хуй заставишь их.
Аноним 23/09/23 Суб 01:56:42 902599 46
>>902597
Если тебе нужны подробные отзывы, то ты находишься сейчас на этом ресурсе. Неиронично.
Аноним 23/09/23 Суб 02:01:03 902600 47
Только что узнал что 4й годот на шарпе не экспортируется на андроид, и в связи с этим возникла дилемма - делать на 4ке, но мучаясь с гдс скриптом, или откатиться на 3ю версию и спокойно делать на шарпе. Игру планирую сделать простенькую без 3д, так что склоняюсь к первому варианту. А как вы считаете, 4ка стоит того или разницы особой нет?
Аноним 23/09/23 Суб 02:02:21 902601 48
>>902600
Пока ты свою игру доведешь до релизного состояния уже годот 6 выйдет.
Аноним 23/09/23 Суб 02:07:16 902602 49
>>902599
Почему тогда никто ИТТ не показывает свое?
Аноним 23/09/23 Суб 02:27:20 902604 50
image.png 871Кб, 1200x1200
1200x1200
>>902602
трясутся что украдут
Аноним 23/09/23 Суб 03:32:41 902612 51
image.png 16Кб, 194x260
194x260
вовращаемся оброатно под камень гкйминдустрии
Аноним 23/09/23 Суб 03:39:58 902613 52
image.png 28Кб, 517x423
517x423
Тем временем пробили 50к донатов.
Аноним 23/09/23 Суб 03:43:15 902614 53
>>902612
Да, валите уже обратно, залетухи
Аноним 23/09/23 Суб 07:37:54 902622 54
Я валю обратно, но годот должен оставаться великим и становится лучше. Открытое ПО это православно, это правильно. Когда годот станет по настоящему крутым (а теперь, с 50 к донатов в месяц и их кол-во становится ещё больше) это будет по настоящему ультимативный двиг под все задачи. Для этого не хватает немногого - джолт, производительный рендер, какой нибудь аналог IL2CPP и всё. Вот тогда это будет
Аноним 23/09/23 Суб 09:35:40 902625 55
>>902622
Спич уровня нью васюки
Аноним 23/09/23 Суб 11:29:39 902633 56
Аноним 23/09/23 Суб 12:45:24 902642 57
>>902622
Увидимся снова когда ваш Джон решит выплатить положенное инвесторам. То есть скоро и неизбежно. Заходи.
Аноним 23/09/23 Суб 13:09:22 902648 58
Ну, хайпанули немножечко, можно и дальше сидеть на дне, не очень-то и хотелось становиться популярным движком.
Аноним 23/09/23 Суб 13:44:50 902654 59
>>902257
К сожалению, аудитория годота пока не на столько велика, чтобы было много качественных материалов на русском. Там в принципе язык не сложный, в крайнем случае - можно тупо за автором повторять
Аноним 23/09/23 Суб 14:21:45 902664 60
>>902257
Чё как лох-то? Скачай, раздели на половинки, а потом залей на ютаб и яндек переведёт.
Аноним 23/09/23 Суб 18:15:47 902710 61
>>902664
>>902654
Да ладно, я и на английском понимаю. Нет смысла заёбываться.
Аноним 23/09/23 Суб 19:03:14 902728 62
>>902217
Бля, братишка, это был лучший сон в моей жизни. Я всю ночь периодически просыпался и слушал его бубнёж, а потом опять засыпал и мне снились великолепные сны!
Аноним 23/09/23 Суб 19:05:03 902729 63
>>902633
> почему сисярп в годоте настолько лучше?
Потому что объекты создаются по паттернам, по классике, через инстансы, а не как богомерзкий монобех, через геткомпонент<T>
Аноним 23/09/23 Суб 19:05:15 902730 64
Ананасы, как сделать жесткий вкат если делал несколько базовых игр на юнити. Я до сих пор искренне не понимаю как сделать игру, читать документацию? Ну пиздец, не понятно ничего. Кто как вкатился в годот, может курсов сольете, спасибо.
Аноним 23/09/23 Суб 19:16:29 902734 65
>>902730
> Я до сих пор искренне не понимаю как сделать игру
> Ну пиздец, не понятно ничего.
> как сделать жесткий вкат
Бля, анон.
Всё, что тебе нужно уяснить это шесть вещей:
1. Start это _Ready
2. Update/FixedUpdate это _Process/_PhysicsProcess
3. Иерархия сцены состоит не из объектов Monobekh, а из объектов Node.
4. Объекты Node обладают несколькими уровнями наследования.
5. При создании игры ты опираешься на иерархию нод, а не на компоненты.
6. При желании, ты можешь самостоятельно реализовать компонентную систему, но в большинстве случаев она соснёт у иерархической системы.

Если остались вопросы, задавай. Я в равной степени знаком с обоими движками.
Аноним 23/09/23 Суб 19:20:21 902736 66
>>902730
Просто и без задней мысли берешь и делаешь. На десятый раз разберешься. Я только к третьей релизнутой игры получил ощущение хоть какого-то понимания, и научился ходить своими ногами, без туториалов/документации.
Аноним 23/09/23 Суб 19:21:35 902737 67
>>902734
Спасибо, но больше был вопрос "глобального вката". Курсы, документация, видео на ютубе, где точка старта, как понимать?
Аноним 23/09/23 Суб 19:21:59 902738 68
>>902736
Спасибо, принято
Аноним 23/09/23 Суб 19:42:04 902745 69
>>902737
Ща погодь, позже отвечу развёрнуто.
Аноним 23/09/23 Суб 19:49:38 902746 70
Аноним 23/09/23 Суб 19:56:24 902748 71
>>902730
Вот ещё это послушай https://www.youtube.com/watch?v=2efd_2SV1Z8
Но, если за неделю с начала юнитипиздеца ты не вкотился, то годот не твоё. Просто иди дальше, не еби мозги ни себе, ни нам.
Аноним 23/09/23 Суб 22:40:34 902789 72
Пишу в мёртвом треде мёртвого движка.
Сижу в оджидании 4.2, но выпустят ли его, надеюсь в этом году сделают.
Аноним 24/09/23 Вск 00:00:33 902802 73
Делайте игры
Аноним 24/09/23 Вск 01:09:03 902820 74
>>902734
>6.
Тащемта ноды прекрасно выполняют роль компонентов.

>>902737
Лично я вкатывался с видосов HeartBeast'a, его приятнее всех слушать. Но только для ознакомления с движком и общими принципами работы. Никогда никакие туторы не перепечатывал. Ну и переучиваться со всяких юнитей тогда тоже не приходилось, с нуля заходил, так что не знаю, насколько тебе такое подойдёт.
Аноним 24/09/23 Вск 13:07:58 902866 75
>>902734
>>6. При желании, ты можешь самостоятельно реализовать >>компонентную систему, но в большинстве случаев она соснёт у >>иерархической системы

Не совсем понял почему? Разве не удобно иметь независимые объекты с возможностью создавать префабы, чем зависимые ноды, изменение/использование которых тянет другие связи?
Аноним 24/09/23 Вск 13:42:24 902874 76
>>902820
> ноды прекрасно выполняют роль компонентов
Мы говорим о перекате. Челику нужно видеть перед глазами что-то знакомое, что он автоматически понимает. Поэтому, массив типа Array[Reference] ему на первых порах будет привычнее, чем искаробочный массив Array[Node] который мы получаем по get_children().
>>902866
> Не совсем понял почему?
Потому что там другая архитектура. И мы в данном случае (как я надеюсь) говорим о перекате готовых наработок вкатунов, при этом правки архитектуры должны быть минимальны. Если у вкатуна куча самописных скриптов, наследующихся от монобеха, то в годоте ему проще всего сделать абстрактный класс MonoBehaviourProxy extends Reference, а затем переписать все свои невизуальные компоненты под этот абстрактный класс. Затем в нодах, где нужно, он создаёт @export var components : Array[MonoBehaviourProxy] и спокойно, привычным для себя образом закидывает "компоненты" в ноду через инспектор редактора.

Но как я выше написал:
>>902734
> в большинстве случаев она соснёт у иерархической системы
Аноним 24/09/23 Вск 14:35:09 902891 77
пример иерархии 13Кб, 273x421
273x421
образец скрипта 40Кб, 734x321
734x321
как это в инспе[...] 6Кб, 266x86
266x86
>>902874
Но ваще вместо вышеописанного велосипеда, если есть потребность организовать "компоненты", лучше делать их на "белых" нодах, которые по сути пустые и содержат только минимальный функционал: добавление в дерево и обработка колбэков.
Таким образом, наш сферический юнитиперекатун добавляет своему объекту несколько нод, называет их ,как ему надо, а им пишет скрипты, которые при своём старте получают ссылку на хост-ноду, как показано на втором скрине, которая устанавливается через инспектор, как показано на третьем скрине.
Аноним 24/09/23 Вск 14:43:42 902896 78
>>902891
>Monobek
Казах что ли? здарова, заебал
Аноним 24/09/23 Вск 14:48:15 902897 79
>>902896
Мать полячка, отец латыш. Родился в Киеве, живу в Саратове. Кто я?
Аноним 24/09/23 Вск 14:49:05 902899 80
>>902897
судя по описанию, ты сверхчеловек
Аноним 24/09/23 Вск 15:14:39 902904 81
>>902899
Хватит срать, давайте лучше обсудим, подходит ли нода CharacterBody3D (бывшая KinematicBody) для реальной разработки игор с физикой? Потому что я тут подумал, в случаях, когда мне надо будет забрать у перса управление и включить ему рэгдол (например, после взрыва и т.п.), то с этой нодой мне придётся велосипедить движение.

Не проще ли делать персонажа на RigidBody3D в режиме Freeze.Kinematic?
Аноним 24/09/23 Вск 15:16:41 902908 82
>>902904
Не знаю. Попробуй оба варианта и расскажи плюсы и минусы в треде.
Аноним 24/09/23 Вск 16:23:47 902927 83
>>902908
Щас буду делать, но поскольку я нуб в физон-матане, буду юзать туториалы. Вот нашёл неплохой. Чувак с умным видом хуячит хелпер-классы с вычислением интегральной ошибки (какой-то). Похоже, это то, что нужно.
https://youtu.be/zTp7bWnlicY
Аноним 24/09/23 Вск 18:11:21 902951 84
>>902904
Я на тройке делал так. Кинематик - это сам персонаж. А внутри него части тела ригиды и джойнты между ними. Пока перс живой, физика кинематика включена, физика ригидов выключена; умер - кинематик и анимацию выключаем, ригиды включаем.

А вот что мне интересно - это PhysicalBone2D/3D в четвёрке (ну, в основном 2д). Судя по названию и описанию они больше подходят для рэгдоллов; но какие именно плюшки они дают и как именно ими правильно пользоваться, чёт я не вкурил.
Аноним 24/09/23 Вск 18:21:30 902955 85
Почему я не могу сделать get("position.x")?
Аноним 24/09/23 Вск 18:29:07 902958 86
104afc8f2c71ed3[...].jpg 36Кб, 720x505
720x505
>>896061 →
>Хорошо. Начну делать игру после 450-го поста.
>Разбудите меня, когда будет пора делать игру.
Вы меня так и не разбудили... >>901899
>Докладывайте, кто сколько игор сделал?
Я думаю захотеть попробовать начать делать прототип чего-то вроде https://ru.wikipedia.org/wiki/Виртуальный_питомец Ибо мучаюсь от одиночества и экзистенциального кризиса...
Аноним 24/09/23 Вск 18:44:05 902961 87
>>902904
>включить ему рэгдол
Просто делаешь отдельную физическую куклу и включаешь её, когда она нужна. Так почти все игры делают. Реально физическая кукла в обычных движениях применяется только в GTA IV благодаря Euphoria, которая давала возможность симулировать мышцы людей на достаточно точном рэгдолле так, что он буквально ходит как человек, а не как анимированная 3D сетка. Но это уже натуральный rocket science, эйфория была очень сложной и её компания разработчик вроде как разорилась, а Rockstar забросили и даунгрейднули персонажей в RAGE 2 (GTA 5). Были ещё какие-то игры с эйфорией, но так и не дожили до релиза. Сурово, в общем, в одиночку такое не осилить.

>Не проще ли делать персонажа на RigidBody3D в режиме Freeze.Kinematic?
Сложнее. У ригидов нет удобных проверок столкновения, придётся велосипедить свои. Кроме того, стандартный кинематик останавливается в миллиметрах от любого препятствия, а ригидбоди в режиме кинематика будет переть на таран, пока ты сам проверками не обмажешься. А если делать движение в стандартном режиме ригидбоди (через приложение физических сил), тогда твой персонаж будет плавно разгоняться и плавно замедляться - каким-то играм это выгодно (в той же GTA 4/5 персонажи делают всё с задержкой, а не резко бегут в любом направлении как раньше), но далеко не всем. Плюс эти силы действуют как ракетный двигатель, создавая парадоксы вроде опрокидывания грузовика бегом внутри его кузова (если бежать в борт кузова, ты как будто отталкиваешься от воздуха, а не от пола кузова), как это фиксить - я так и не понял, какие-то особые проверки коллизий нужны.
Аноним 24/09/23 Вск 18:45:10 902963 88
1695570311416.webp 33Кб, 1280x720
1280x720
>>902951
> Я на тройке делал так. Кинематик - это сам персонаж. А внутри него части тела ригиды и джойнты между ними.
Мне нужно бегать по шару (планете), синхронизируя вектор гравитации с центром шара. Может быть я впал в проблему икс-игрек? Может мне на кинематике будет проще сделать? Потому что я подумал "такс, в движке есть Area у которых можно сделать точечную гравитацию к центру. Я делаю планету, накидываю на неё сферическую область гравитации - и вуаля, персонаж автоматически синхронизирован со сферическим гравитационным полем".

А тут посидел джва часа в редакторе, параллельно смотря туториалы, и нихуя подобного. Чуваки лепят управление на плоскости. Поэтому мне от этого ригид-боди пользы ноль. Единственная польза - другие тела смогут воздействовать на тело игрока, отталкивать. Но это у меня не главная задача. Бля, кинематика сложная, сука.
Аноним 24/09/23 Вск 18:47:36 902966 89
>>901894 (OP)
Господа, я уже давно все собираюсь и собираюсь вкатиться в геймдев через юнити, но из-за собственного ебланства, дальше сделанным по видеогайдам катающихся по плоскости шаров не ушел, но это давно было, пару лет назад. Сейчас появились силы ебашить и снова попытаться вкатиться, но тут юнити поменял политику монетизации и из каждого утюга начали трубить, что все, нужно уходить.
Помимо юнити мне приглянулся годот, могут, ли те кто трогал то и то описать преимущества и недостатки обеих движков?
Есть ли большая разница в сложности вкатывания? Английским владею.
Насколько удобно и просто делать 2d игры? Простенькие стилизованные 3d?
Насколько тяжело в случае чего перекатиться из одного движка в другой?
Какие перспективы у обоих движков если я буду делать карьеру в геймдеве в качестве геймдизайнера?
Аноним 24/09/23 Вск 18:55:29 902972 90
>>902966
> Насколько удобно и просто делать 2d игры?
7/10
> Простенькие стилизованные 3d?
7/10
> Насколько тяжело в случае чего перекатиться из одного движка в другой?
Если ты используешь паттерн MVP - просто. С паттерном MVP ты можешь хуярить одну игру на нескольких движках сразу.
> если я буду делать карьеру
Если ты такие вопросы не гуглишь сам, а спрашиваешь на форумах - никакой карьеры тебе не светит. Без обид, анон, но таким не перезванивают.
Аноним 24/09/23 Вск 18:57:55 902975 91
>>902963
>Мне нужно бегать по шару (планете), синхронизируя вектор гравитации с центром шара.
А, тогда делай на ригидбоди, лол. Тебе в любом случае придётся вращать персонажа ногами в сторону центра планеты, а стандартный кинематик на такое не рассчитан - он для плоского мира.

>в движке есть Area у которых можно сделать точечную гравитацию к центру
Если они этот баг не пофиксили, то учитывай, что Area с гравитацией будет всасывать в себя объекты даже если они уже вылетели из её "области действия". Так что для симулятора "прыжка с луны" придётся велосипедить свою гравитацию, впрочем, это несложно (достаточно прикладывать силу гравитации ко всем ригидбоди, находящимся в зоне действия Area).

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

>Поэтому мне от этого ригид-боди пользы ноль.
Наоборот, такого персонажа проще всего на ригидбоди сделать, т.к. ему плевать, куда лететь.
Аноним 24/09/23 Вск 19:02:22 902979 92
>>902958
Удачная тема для детей и домохозяек. Те же бородатые тамагочи.

>мучаюсь от одиночества
тнуса заведи
Аноним 24/09/23 Вск 19:13:49 902990 93
>>902972
Для карьеры мне сначала нужно, хоть что-то сделать. А вопрос выбора движка слишком важен, помимо гугления хочется спросить самостоятельно на живом форуме.
Аноним 24/09/23 Вск 19:14:30 902991 94
>>902966
>преимущества и недостатки обеих движков?
Смотри Ютуб, читай форумы. Всё уже обсудили тысячу раз. Но Godot ты можешь сам быстро пощупать, он весит около 50 МБ в архиве и не требует установки, запускается за секунду на слабом ПК и для старта изучения не требует ничего дополнительного скачивать (если использовать стандартную сборку без C#).
>большая разница в сложности вкатывания?
Я считаю, Godot сильно проще для вката.
>Насколько удобно и просто делать 2d игры?
Очень удобно, легко и просто. Godot имеет отдельные субдвижки под 2D с оптимальным API, в отличие от костылей Unity (там "2D" на самом деле в 3D).
>Простенькие стилизованные 3d?
Очень просто, если у тебя маленький мирок без процедурного ландшафта и с маленьким числом объектов (несколько сотен прыгающих мячиков). Для чего-то большого и сложного нужно либо искать сторонние дополнения к движку (аддоны или модули), либо делать свои велосипеды.
>Насколько тяжело в случае чего перекатиться из одного движка в другой?
Несложно, они достаточно похожи по концепциям. Все основные отличия в современном геймдеве абстрагированы от пользователя под капотом.
>Какие перспективы у обоих движков если я буду делать карьеру в геймдеве в качестве геймдизайнера?
Unity имеет очень высокую популярность, но последние пару лет из-за руководства теряет былое доверие. Godot только недавно заметили и крупные студии его только "щупают", но недавно обратили больше внимания. В вакансиях давно как-то я видел что знание Godot будет плюсом даже если берут на другой движок; но конкретно геймдизайнеру, наверное, движок вообще не важен, потому что от геймдизайнера требуется написать чёткий дизайн-документ и потом следить за работой остальной команды, внося правки в документ по ходу работы. Короче, геймдизайнер больше с бумагами работает, чем с игровыми движками, его цель - формализовать конкретную задачу (которая принесёт профиты) для гребцов на галере. Но я могу ошибаться, я никогда нигде не работал.
Аноним 24/09/23 Вск 19:33:50 903002 95
>>902991
>я никогда нигде не работал.
Совсем?
Аноним 24/09/23 Вск 19:44:30 903005 96
>>902979
>Удачная тема для детей и домохозяек.
Мне не для маркета, а для себя, "для души". Маркет подобным переполнен, а после LLM/GPT подобные игрушки скорее всего для многих теряют смысл.

>Те же бородатые тамагочи.
Ага, в разные подобные игры играл. Но всё не то. Хочется чего-то реально своего, чисто под себя...

>тнуса заведи
Не хочу. Хочу собственную DIY роботян.
Аноним 24/09/23 Вск 20:30:01 903033 97
>>902963
На хабре была статья про шарообразный мир в годоте
Аноним 24/09/23 Вск 21:27:45 903053 98
>>902979
> тнуса заведи
А где их выдают? Я всё пропустил и теперь они не заводятся.
Аноним 24/09/23 Вск 21:53:52 903063 99
>>903053
>А где их выдают?
На дваче есть спецразделы.

>теперь они не заводятся
Аккумулятор замени, дурень, посадил же.

Я своей тян два аккумуляторных блока сделаю, чтобы можно было горячую замену делать...

Кстати, что там с Godot в автомобиле? Живой ещё?

>>903002
>Совсем?
Пробовал фрилансить, но забросил.
Аноним 24/09/23 Вск 22:38:31 903076 100
>>903063
>Кстати, что там с Godot в автомобиле? Живой ещё?
Читал что тесла на нем ГУЙ себе сделала.
Аноним 24/09/23 Вск 22:48:47 903078 101
>>902990
> вопрос выбора движка слишком важен
Заблуждаешься.
Алгоритмы везде одинаковы:
1. Есть главный цикл приложения. Он есть везде. В оконных приложениях главный цикл обрабатывает сообщения оконной подсистемы ОС. В графических главный цикл обрабатывает фреймы.
2. Ресурсы есть везде. Это общекомпьютерная база, не зависящая от движка. Како движок ты не выберешь - модели будут лежать на диске и тебе их нужно грузить в память.
3. Языки программирования все одинаковы, все начинаются с объявления переменных, продолжаются ветвлениями и циклами, заканчиваются выводом результатов.
4. Учитывая всё вышесказанное, ты можешь легко учить движки как иностранные языки. Самое трудное - выучить первый, а остальные учатся уже легче.
Аноним 24/09/23 Вск 23:03:37 903081 102
>>903078
Двачую этого. Люди на голом опенжл хуячат шедевры, а не вот это вот все, то тут не так, то там не так, то вот тут фича сыровата, то хуй сопливится, то в анус дует.

Просто и без задней мысли берете и делаете игры. Снова и снова и снова. Хватит отмазы лепить.
Аноним 24/09/23 Вск 23:58:27 903085 103
>>903078
>Языки программирования все одинаковы
Императивные - да, в основном. Другие парадигмы освоить сложнее, даже с опытом императивных. Но больше всего используются императивные ЯП.

>>903081
>Люди на голом опенжл хуячат шедевры
А на юнити ассетфлиперы в основном. Они не велосипеды изобретать хотят, а лёгкие бабки стричь.
Аноним 25/09/23 Пнд 00:01:01 903086 104
>>903085
> Другие парадигмы
Ветвления и циклы спрятаны за обёрткой маппинга списков. Как только ты это осознаёшь, все эти лиспы становятся всё той же парадигмой.
Аноним 25/09/23 Пнд 00:47:12 903092 105
>>903086
>маппинга списков
Ты не понял.

Как приготовить яичницу:
1. Найти яйцо.
2. Разбить яйцо в сковороду.
3. Разогреть сковороду.
4. Ждать приготовления.
Как_приготовить_яичницу();

Известно, что:
1. Яичница - это жаренное содержимое яйца.
2. Яйцо может быть разбито.
3. Из разбитого яйца вытекает содержимое.
4. В скороду можно поместить ингредиенты.
5. Содержимое яйца - ингредиент.
6. Огонь плиты нагревает посуду.
7. Сковорода - это посуда для плиты.
8. Горячая сковорода жарит ингредиенты.
9. Содержимое яйца жарится за 5 минут.
Требуется: 1 яичница.
Аноним 25/09/23 Пнд 15:21:44 903164 106
9rkrx2x285x91.jpg 143Кб, 576x576
576x576
А простому хую позволено контрибутить и репу? Или там только для уважаемых людей?
Аноним 25/09/23 Пнд 15:46:38 903172 107
Аноним 25/09/23 Пнд 16:07:54 903177 108
>>903164
Я контрибутил. Ну тут как. Если ты исправляешь очевидную мелочь то это легко. Если твое исправление неоднозначно, имеет влияние на архитектуру движка, или потом требует поддержки, то скорее всего выльется в обсуждение. Тут уж сначала имеет смысл пообщаться в дискорде или гитхабе и узнать нужно ли такое и реально ли пропихнуть. Запилить прототип, показать с пруфами и бенчмарками что это нужно. Так делали clayjohn и lawnjely. Если что то узко специальное, то скорее всего без шансов, философия такая чтобы движок не раздувать и все такое выносить в аддоны. В них кстати тоже можно контрибьютить, или пилить свои.
Аноним 25/09/23 Пнд 19:00:10 903251 109
>>903164
Мой кодер ебашит вообще адовые пулл-реквесты. Ну такой вот примерно рецепт усредненный, потому что вариаций масса. Берется код, он не читается, читать — это не про моего кодера. Он берет этот код, коммитит его в наш репозиторий и начинает оформлять пулл-реквест. Добавляет в него огромное количество описаний, ссылок, маркдауна и тегов HTML для вязкости, красивый заголовок сверху. Все это пулл-реквестится до комментариев. Потом требуемые правки обсуждаются в комментариях. Потом кодер заходит ко мне и щедро полив комментаторов матом начинает ругаться. При этом ругается с клавиатурой под мышкой, шкрябая по ней ногтями. Ругается и приговаривает полушепотом ух бля. При этом у него на лбу аж пот выступает. Любезно мне иногда предлагает самому лично комментарии к его пулл-реквесту глянуть, но я отказываюсь. Надо ли говорить о том какой дичайший пердеж потом? Вонища такая, что баги в легаси коде сами фиксятся.
Аноним 25/09/23 Пнд 20:38:47 903279 110
>>903266
Што ты несёшь?
>подрубать по IP
Не нужно, он сам работает (F5 - запуск проекта).
>который тебе даже сцену не выдаст
Так вот же:
https://docs.godotengine.org/en/stable/tutorials/scripting/debug/overview_of_debugging_tools.html#remote-in-scene-dock
>список нод
Ну, а что ты хочешь? Жми на хлопушку.

>>903268
>привык к удобству и пиздатости Юнити
Я пробовал делать прототипы в Юнити разных версий, она всегда была кривой и глючной, а C# вообще порождение корпорации зла. Не понимаю, кто может находить её удобной (кроме утят).

Тебе в Blender удобно работать? Скажи честно.
Аноним 25/09/23 Пнд 20:53:53 903283 111
>>903279
Зачем ты его кормишь?
Аноним 25/09/23 Пнд 21:45:53 903286 112
С движкосрачем в отдельный тред.
Аноним 25/09/23 Пнд 22:16:53 903298 113
Аноним 25/09/23 Пнд 22:26:17 903303 114
1599796811592.png 48Кб, 503x330
503x330
Ну что. Я тут начал на 3-ке пилить игру в яндекс, и тут вселенная подает сигнал что я на верном пути.
Аноним 25/09/23 Пнд 22:34:53 903311 115
>>903303
Ачевсмысле, разве там не просто экспортишь под веб и заливаешь как html?
Аноним 25/09/23 Пнд 22:37:24 903313 116
>>903311
Там по правилам обязан сдк интегрировать вроде. Да и лучше я это сделаю, там можно хранить инфу о микропокупках и прокачке на сервере яндекса, можно ник игрока подтягивать.
Аноним 25/09/23 Пнд 22:49:59 903317 117
>>903313
Неплохо. Я видел что на ньюграундс веб-игры умеют в ачивки и интеграцию с сайтом, но сам заморачиваться не стал. Видимо там оно через аналогичную интеграцию делается
Аноним 26/09/23 Втр 00:46:22 903347 118
А мне не нравится дефолтный шрифт в редакторе кода в четвёрке. В 3.х шрифт такой леденцовый, почти комик санс, но гейминг санс. Такой приятный и ламповый, будто с тяночкой на лавочке сидишь. А в 4.х сделали шрифт как у деда на старых чертежах для токарного. Не забалуешь. Ещё и собака эта перед экспортами. Оранжевая.

Начал новый проект, чтобы перелезть наконец уже с тройки на четвёрку. Такие дела.
Аноним 26/09/23 Втр 01:21:34 903348 119
>>903347
А я еще подожду, пока допиливаю текущий проект. Посижу с тянучькой на лавочке, так сказать.

В тройке кстати шрифты настраивались. В четверке тоже должны.
Аноним 26/09/23 Втр 09:03:31 903360 120
Подскажите книгу по годо.
Аноним 26/09/23 Втр 09:05:52 903361 121
>>903360
Официальная дока
Аноним 26/09/23 Втр 13:00:58 903376 122
Заработал 100 рублей за сентябрь на игре на Godot.
Аноним 26/09/23 Втр 13:13:03 903377 123
16858313963690.jpg 405Кб, 884x896
884x896
подожду выхода 4.2, тогда начну раздупляться
Аноним 26/09/23 Втр 13:50:37 903380 124
>>903376
Молодец, продолжай работать в этом направлении. Я вот пока нихуя не заработал.
Аноним 26/09/23 Втр 15:51:15 903398 125
>>903376
База на самом деле. Рассказывай стратегию поднятия трехзначных сумм.
Аноним 26/09/23 Втр 16:18:57 903404 126
>>903398
Я открыл самый простой туториал и просто добавил своего, просто то, что в голову приходило и мог сделать вообще без знаний и опыта. Старался понять каждую строчку кода, если была хоть одна строчка, где я чётко не могу понять, что она делает, то либо переписывал по-своему, либо переделывал вообще механику. Ещё сразу использовал новые элементы, про которые узнал из тутора. Например узнал, про горизонтальные контейнеры и сразу придумал, как их использовать. Дальше нарисовал всратый спрайт в аналоге асеспрайта за полчаса, из ассет-пака бесплатного взял проджектайлы, фон тоже взял бесплатный. Все слепил вместе, получилась игра. Очень невнятная, всратая, хуевая, маленькая и слабенькая. Потом залил и прошел модерацию, получил 100 рублей.
Аноним 26/09/23 Втр 16:20:58 903405 127
Аноним 26/09/23 Втр 16:35:01 903406 128
>>903404
Ну а куда залил хоть.
Аноним 26/09/23 Втр 16:37:36 903409 129
Аноним 26/09/23 Втр 22:02:55 903511 130
Годот есть на андроид, охуеть. С лопаты даже не слишком мелко. Надо тыкать, но на первый взгляд всё работает.
Это чтобы делать игори даже сидя на толчке?
Аноним 26/09/23 Втр 22:10:18 903514 131
>>903511
Ебало того кто на андроиде будет делать представили?
Аноним 26/09/23 Втр 22:51:29 903526 132
>>903514
Дети так и делают. На реддите уже пару раз видел как школьники на телефонах делают игори. Не то что вы, ноудевы.
Аноним 27/09/23 Срд 00:23:04 903552 133
>>903514
Это же в первую очередь не для мобилок, а для каких то планшетов или недонетбуков, без клавы там все равно делать нечего.
Аноним 27/09/23 Срд 04:26:36 903565 134
>>903405
>Не показывают код в видосе целиком.
Посмотрел видео, там показали весь основной код - достаточно, чтобы повторить проект своими руками.

>Не дают ссылку на код.
Бездумной копипастой ты ничему не научишься.
Аноним 27/09/23 Срд 10:57:29 903587 135
перекатился на 4.1, экспортирую apk, запускают под android 6.0 - "Ошибка при синтаксическом анализе пакета".
Мне нужно проспаться или они перестали шестерку поддерживать?
Аноним 27/09/23 Срд 12:41:14 903598 136
Аноним 27/09/23 Срд 13:54:27 903607 137
>>903565
> достаточно
Недостаточно.
Аноним 27/09/23 Срд 15:27:38 903617 138
>>903607
Это троллинг издевательски коротким ответом?

1. Опиши, что конкретно сделать хочешь.
2. Рассказывай, что там у тебя не получается.

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

В видео 3.3.1, вышла в мае 2021, это очень давно.
Аноним 27/09/23 Срд 16:14:55 903621 139
>>899096 →
>>899133 →
Вчера возился с 3д и вспомнил твой пост
Одна из причин - плохо работает импорт fbx.
Надо сначала загнать их блендером в gltf или glb
Одни и те же анимации у меня не работали из fbx и заработали из glb
Мой прошлый пост
>>876327 →
Вот скрипт https://github.com/baracil/Mixamo2Godot
При необходимости закомментируй вызов функции scale_animation() некоторым моделям со скетчфаба она мешает
Запускается командой blender --background --python mixamo2godot.py--/path/to/directory/of/animations
Этот скрипт добавляет root motion, но имхо для миксамо это имеет смысл
Аноним 27/09/23 Срд 16:18:28 903623 140
>>903621
>плохо работает импорт fbx
Ваще надо выпилить, вражеский закрытый стандарт, наследие древних монструозных 3D пакетов от тупых и жадных до денег автостолов. Либо blend, либо gltf.
Аноним 27/09/23 Срд 16:32:56 903625 141
>>903623
>>903621
кстати аноны, а есть фикс того, что экспорт шейп кейсов не переносится в годот? Юзаю 4 версию, пробовал разные варианты от blend до gltf и fbx, нихуя не работает и не переносятся шейп кейсы у анимации, это пиздец. Какого хуя?
Аноним 27/09/23 Срд 16:36:05 903627 142
Аноним 27/09/23 Срд 16:44:25 903630 143
Каким образом можно ограничить directional light на часть сцены? У меня огромная сцена, и этот свет роняет фпс, что для мобильной игры не ок.

Запекание не катит - нужны реалтаймовые тени. Нужно что-то типа "вот в этом квадрате свети, а в этом не свети". Комнаты/порталы - они для этого?
Аноним 27/09/23 Срд 16:45:43 903631 144
1695822308505.webp 12Кб, 640x348
640x348
>>903625
Не уверен о чем ты, бленд шейпы переносятся. Они не в анимациях, а в пропертях меша (под скином, скелетои), позже ты можешь их анимировать сам.
Аноним 27/09/23 Срд 16:47:06 903632 145
>>903631
дык а какого хуя они не переносятся в анимациях то? обезьяна пахом там совсем ебанулся что ли, это же основа основ анимации. аниматор делает контент в н-проге и переносит это, в а тут блядь в движке надо допиливать, это же пиздец
Аноним 27/09/23 Срд 16:48:46 903633 146
>>903630
У света есть "слои" (cull mask)
Соответственно помещаешь такой свет на слой 1 и он светит только на объекты слоя 1, и не светит на 0. Террейн придется нарезать как то, аозможно двигать кусок вместе с камерой, как трава рендерится.
Аноним 27/09/23 Срд 16:50:19 903635 147
>>903632
А почему они должны быть в анимациях, когда в блендере это данные групп вершин?
А вообще ответ такой - потому что годот это не блендер и не аддон к блендеру.
Аноним 27/09/23 Срд 17:07:11 903640 148
image.png 47Кб, 700x153
700x153
>>903633
Спасибо. Вариант геморройный, оставлю его на крайний случай. Сейчас пытаюсь заменить directional на spot и двигать вместе с камерой. Почти то, что нужно, но под необходимым мне углом у него ебучая теневая сыпь лезет, как на пике слева.

Играюсь с настройками пока.
Аноним 27/09/23 Срд 17:12:08 903641 149
>>903632
Не знаю, поищи в issues, а может и исправили уже.
Аноним 27/09/23 Срд 17:16:05 903643 150
>>903630
>вот в этом квадрате свети, а в этом не свети
>>903640
>Сейчас пытаюсь заменить directional на spot и двигать вместе с камерой
Что КОНКРЕТНО ты хочешь сделать?

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

А, погоди...
>для мобильной игры
>нужны реалтаймовые тени
Вообще бред. Я даже на ПК тени в играх отключаю, а на телефоне тени - просто издевательство.
Аноним 27/09/23 Срд 17:16:19 903644 151
>>903640
Падажжи, там есть настройка shadow max range, может ее хватит.
Аноним 27/09/23 Срд 17:17:41 903645 152
>>903643
Ну может у него артхаус где все дело в тенях
Аноним 27/09/23 Срд 17:21:51 903648 153
>>903644
>настройка shadow max range
Хотел сперва посоветовать, но это не то. Источник света, изображающий солнце, не находится в какой-либо точке пространства - он считается бесконечно далёким от налюдателя, поэтому у него параллельные лучи света. Поэтому эта настройка только сужает область вокруг наблюдателя (камеры), на которую накладываются тени. Если посмотреть вдаль, дальше этой величины теней никогда не будет. А от пишет, что ему нужны тени в отдельном "квартале".
Аноним 27/09/23 Срд 17:51:21 903657 154
>>903648
Так по идее в топ дауне это и поможет. А если нет, то чанки пилить не так уж сложно. Так то слой объекту на лету менять можно, вечером потестю. Может даже банально enter/exit area обработчика хватит (инб4 нет, это не оптимально, а что если там 3440 объекта)
Аноним 27/09/23 Срд 18:02:11 903658 155
>>903648
Вообще меня давно интересует вопрос как работает атлас directional shadow
Допустим у меня куб кидает тень на плошадку метр на метр. Теперь я добавляю объект в 1000км. Качество тени в эиот момент резко упадет? Ведь атлас старого разрешения теперь натянут на мир в разы больший. И я что то не припомню методов контролировать размер этого "затененного " участка, это черный ящик с автоопределением
Аноним 27/09/23 Срд 18:09:20 903659 156
>>903640
Скажу честно, за несколько лет и с большим опытом геймдева я подобрать не смог. Так что пока от смены дня ночи отказался. Возможно, надо просто сесть и подобрать массивчик значений на определенный набор углов, скажем с шагом 15 градусов. И это на группы объектов разного вида - и с учетом куда падает тень, на пол или стену, а также вдоль или поперек камеры. Но вот универсального значения похоже не подобрать
Аноним 27/09/23 Срд 19:40:35 903671 157
skhaf.png 75Кб, 1544x889
1544x889
Вопрос от юнити-дибила.
Сделал я "префаб" объекта, сохранил в ресурсы. Теперь когда я ставлю его на сцену, он появляеться там закрытой нодой. В юнити было очень удобно оверрайдить проперти у префаба, в данном случае я например хочу поставить уникальный звук каждому обьекту. Как такое вообще делаеться в годоте? Прицеплять к верхней ноде скрипт, который прокидывает оверрайды с моей колокольни какое-то извращение.
Аноним 27/09/23 Срд 20:20:08 903675 158
>>903671
ПКМ -> редактируемые потомки
Аноним 27/09/23 Срд 20:21:34 903676 159
>>903671
Есть несколько вариантов
1. Создать Inherited сцену. Не пользуюсь, может аноны пояснят.
2. Можно сделать объект Local to scene, заинстансить его по полной. Это уже будет не префаб
3. Можно сделать его Editable children. Тогда он будет префабом, но конкретику в нем можно перекрыть.
4. Я пользуюсь более программистским способом
В скрипте делаю export настроечных переменных
Сам скрипт tool, то есть работает в редакторе.
Например я могу сделать настройку цвета юнита или выбор спрайта прямо в инспекторе. Есть какие то подводные, не помню какие, мб со вложенными сценами
Аноним 27/09/23 Срд 21:40:44 903696 160
>>903623
Ну тут загвоздка в том, что анимации Mixamo раздаются только в Fbx. Уж не знаю зачем это адобе.
Аноним 27/09/23 Срд 22:52:08 903711 161
>>903696
Адобе забили на миксамо с момента покупки проекта. Все эти годы он ни жив. ни мертв. А жаль. Многообещающая штука была.
Аноним 27/09/23 Срд 23:11:03 903721 162
>>903711
Ждут, потом просто лицензию ретроактивно поменяют чтобы 2 цента за каждое проигрывание анимации брать
Аноним 28/09/23 Чтв 00:13:04 903733 163
1557627237706.png 42Кб, 296x282
296x282
1586911522255.png 93Кб, 318x324
318x324
Аноним 28/09/23 Чтв 02:07:44 903741 164
>>903659
>>903640
>>903630
В общем, решил свое освещение с помощью spotlight с reverse cull face и включенными тенями, эмбиент освещением через world properties и запеченными то тут то там омнилайтами без теней. Выглядит ок, тени динамичат, свет следует за персонажем без освещения всей огромной сцены, фпс упало с 1500 до 1200 на пеке.

Удивительно на что способна трешка и GLES2. Интересно даже чего там в четвертой годоти с вулканом можно накрутить.
Аноним 28/09/23 Чтв 12:58:33 903780 165
>>903696
>анимации Mixamo раздаются только в Fbx
Конвертируй. Blender вроде поддерживает fbx.

А вообще, мне лично не нравится идея брать анимации с какого-то сайта, тем более бесплатные. Это лишает игру уникальности, тем более если эти анимации используются повсеместно. Лучше запилить кривое говно, но своими руками, чем брать ассеты и флипать как попало, в надежде что незнакомый с играми ньюфаг схавает это.
Аноним 28/09/23 Чтв 12:59:30 903781 166
Аноним 28/09/23 Чтв 13:06:17 903785 167
>>903780
>Конвертируй. Blender вроде поддерживает fbx.
Там выше я же и дал скрипт для блендера.
>А вообще, мне лично не нравится идея брать анимации с какого-то сайта, тем более бесплатные. Это лишает игру уникальности, тем более если эти анимации используются повсеместно.
Анимации делать геморнее чем модельки. Да и узнать анимацию ходьбы на другом скелете - это уже надо савантом аутистом быть.
Аноним 28/09/23 Чтв 13:08:41 903786 168
>>903658
>атлас directional shadow
>Теперь я добавляю объект в 1000км. Качество тени в эиот момент резко упадет? Ведь атлас старого разрешения теперь натянут на мир
Ничего там не натягивается.

Как работают тени? Это отдельный рендеринг сцены от лица источника света. Т.е. движок поворачивает сцену лицом к источнику света и делает рендеринг всех видимых объектов в чёрном цвете. Затем полученная текстура используется в качестве теней на следующем этапе рендеринга уже от лица твоей игровой камеры. Поэтому источник света умножает число render calls в сцене - движок вынужден рендерить сцену +1 раз для каждого источника света. Чтобы сократить нагрузку на видеокарту, можно сказать "ладно, не рендерь объекты дальше N метров от источника света", а в случае атласа "рендерь дальние объекты в текстуру маленького размера (для скорости), а ближние объекты в текстуру большого размера (для более чётких краёв тени)". DirectionalLight отличается тем, что рендерит сцену в ортогональной проекции вокруг текущей камеры... или что-то вроде того, я точно не знаю.
Аноним 28/09/23 Чтв 13:51:46 903799 169
>>903676
>Создать Inherited сцену. Не пользуюсь, может аноны пояснят.
Это ООПышное же. Создаёшь item, который содержит всё необходимое для предметов в твоей игре, а затем - потомков item: knife, sword, shield, pistol, dildo... Если тебе нужно изменить общее для всех item свойство, ты меняешь его в item.tscn и это отразится везде сразу. Оригинальный item.tscn ты нигде использовать скорее всего не будешь, он нужен только как общий предок.
Аноним 28/09/23 Чтв 14:00:55 903805 170
>>903799
Некоторые моменты непонятны, например если навешивать новый скрипт на инхеритед, он же полностью заменяет старый скрипт. Еще там неочевидности могут быть с editable children
Аноним 28/09/23 Чтв 14:05:01 903807 171
>>903630
>этот свет роняет фпс
>>903741
>решил свое освещение
>фпс упало с 1500 до 1200 на пеке.
Я не понял, ты стремился снизить ФПС?

>>903741
>Интересно даже чего там в четвертой годоти с вулканом можно накрутить.
Там минимальная сцена больше нагружает, по обещаниям Vulkan лучше масштабируется - т.е. будет производительным на больших сценах, но по факту он оказался даже медленнее OpenGL на больших сценах.

Ключевым разработчикам давно известно:
https://github.com/godotengine/godot/issues/68959#issuecomment-1528132865
Аноним 28/09/23 Чтв 14:09:24 903809 172
>>903805
>если навешивать новый скрипт на инхеритед, он же полностью заменяет старый скрипт
Для этого достаточно сделать так:
>item.gd
>class_name Item extends Node
>dildo.gd
>extends Item
Наследуемость сцен касается только tscn файлов.
Аноним 28/09/23 Чтв 14:12:16 903811 173
raw.gif 981Кб, 414x498
414x498
>>903785
>Анимации делать геморнее чем модельки.
Думаю, зависит от требований.

>Да и узнать анимацию ходьбы на другом скелете - это уже надо савантом аутистом быть.
Как будто ты не узнаешь пикрил. А вот если я хочу в игре что-то вроде пикрила, но немного другое, оно на миксамо тоже есть? Вряд ли, там же унылый захват движений с каких-то актёров.
Аноним 28/09/23 Чтв 14:20:07 903813 174
>>903811
Половины нужных анимаций нет (правда есть некоторые другие сомнительные источники анимаций, но я ими пока не пользовался). Но это все равно в разы быстрее сделать прототип. Анимировать все это пришлось бы неделю или месяц, а так ты сразу качаешь пак и настраиваешь дерево анимаций за день. Будет время или деньги - перерисовывай сколько угодно.
Аноним 28/09/23 Чтв 14:53:03 903820 175
>>903813
>быстрее сделать прототип
А зачем в прототипе анимации? Я несколько лет цинидром по сценам ездил, проверяя свои идеи.

Если у тебя игра, в которой важны анимации героев, тогда их с самого начала нужно делать свои, потому что они влияют на атмосферу игры.
Аноним 28/09/23 Чтв 14:54:03 903821 176
>>903807
>Я не понял, ты стремился снизить ФПС?
Предыдущий сетап с directional light на всю сцену ронял с 1500 до 800. Этот быстрее, и выглядит ближе к тому, что мне надо.
Аноним 28/09/23 Чтв 14:54:09 903822 177
>>903820
>цинидром
Цилиндром. Точнее, капсулой. Нувыпоняли.
Аноним 28/09/23 Чтв 14:56:21 903823 178
>>903820
Ну сам подумай мне надо чтобы человечек ходил. Или пешеходы ходили. Зачем мне тратить время на анимирование их в начале разработки, когда мне надо просто чтобы они "ходили" и это делается двумя кликами?
Аноним 28/09/23 Чтв 14:56:46 903824 179
Аноним 28/09/23 Чтв 14:57:57 903825 180
>>903821
Ты бы лучше сразу на мобилке мерял, а то окажется, что подход на ПК не подходит. Вон там автор Айрон Мита в соседнем треде на соседнем движке писал, что у него перенесли выход на консоли из-за обилия вьюпортов.
Аноним 28/09/23 Чтв 14:59:22 903826 181
>>903821
>directional light на всю сцену
По умолчанию он охватывает только 100 метров вперёд от камеры, дальше теней нет. Не пробовал включать/выключать с помощью Area в зоне?

>быстрее, и выглядит ближе к тому, что мне надо.
Покажешь хоть скриншоты? А то все такие деловые, игры делают аж обои отклеиваются, а показать боятся, как будто это на что-то повлияет.
Аноним 28/09/23 Чтв 15:00:14 903827 182
>>903807
У меня от вулкана одни неприятности. На некроноуте не запускается вообще из-за дров, на мобилке 3д не рисовалось, веб версия 4-ки на опенжл недописана. Сначала хотел переходить, но совсем передумал. 4-ка это только для какого-то АА пека гейминга.
Аноним 28/09/23 Чтв 15:03:34 903828 183
>>903823
>мне надо чтобы человечек ходил.
>Или пешеходы ходили.
>мне надо просто чтобы они "ходили"
Ну вот капсулы по маршрутам ездят - и всё. Им не нужно двигать ногами и руками, потому что тебя должно волновать только что они с пути не сбиваются, не застревают и не проваливаются.

>это делается двумя кликами
А ведь можно вообще не кликать.
Аноним 28/09/23 Чтв 15:08:42 903829 184
>>903828
Зачем мне смотреть на парящие капсулы, когда я могу сразу смотреть на ходьбу?
Аноним 28/09/23 Чтв 15:55:55 903846 185
Есть какие-то гайды как лучше всего оптимизировать проект именно под веб?
Аноним 28/09/23 Чтв 16:09:05 903849 186
А жуан обитает на каком-нить форуме, чтоб у него напрямую спрашивать дибильные ответы?
Аноним 28/09/23 Чтв 16:12:35 903850 187
>>903829
>Зачем мне смотреть на парящие капсулы
Допустим, ты сделал пешеходов, вдруг видишь как один пешеход застрял и перебирает ногами в воздухе. Что делать будешь? Включать отображение коллизий. А мог бы просто капсулу оставить...

Алсо, даже ААА игры начинаются с капсул и парящих в Т-позе болванчиков. Почему? "Временные" ассеты с высокой детализацией отвлекают от геймплея, который и нужно в прототипе отточить, поэтому без них проще сфокусироваться на главном. Тебе же в первую очередь геймплей нужен; ножками двигать - это не геймплей, а декорация.
Аноним 28/09/23 Чтв 16:15:37 903851 188
>>903849
Да, твиттер и мастодон.
Аноним 28/09/23 Чтв 16:17:16 903852 189
>>903849
https://godotengine.org/community/
Он много где появляется, но
>напрямую спрашивать дибильные ответы
у него не стоит - во-первых, ему некогда с такими ньюфагами возиться, во-вторых, он не знает всех подробностей движка, т.к. части движка написаны разными людьми в разное время. Так что лучше в публичные коммьюнити заходить, кто-нибудь с достаточным свободным временем поможет.
Аноним 28/09/23 Чтв 16:28:21 903854 190
Аноним 28/09/23 Чтв 16:31:26 903856 191
>>903850
Ты говоришь о разных вещах. Естественно если я буду отлаживать коллизии, то буду смотреть коллизии. (Пропустим то, что я не говорил, что у меня человечки на физике). Но тебе нужно иметь дерево анимаций. Чтобы оно переключалось с ходьбы на удары на смерть на бег. И вот тут и нужны плейсхолдерные анимации.
Вот как раз чтобы пешеход не перебирал ногами в воздухе - если он застрял, то у него скорость 0 и он должен переключиться в стоять. Или, если ты считаешь, что у тебя тут противоречие, и он хочет идти но не может, пускай подпрыгивает и руками машет, привлекая твое внимание.
Аноним 28/09/23 Чтв 16:35:21 903857 192
1671976244963.png 54Кб, 942x222
942x222
>>903849
Здесь официально сказано, что ты можешь сконтактироваться с ними за платной поддержкой, включая почасовую. Правда, это писалось до основания W4, но думаю это уже детали, с каким юрлицом договор.
Аноним 28/09/23 Чтв 16:36:00 903858 193
>>903854
Дискорд полезней чата котрибьюторов. В рокете они пулл реквесты обсуждают, а в дискорде толпы пользователей движка, кто-нибудь да поможет.

Ненавижу ебучий дискорд с его ублюдочным поиском.
Аноним 28/09/23 Чтв 16:52:04 903864 194
>>903858
Не люблю дискорды как то заходил в некоторые и задавал вопрос но его все проигнорили потому что местный ероха в это время анекдоты рассказывал и все ему отвечали.
Аноним 28/09/23 Чтв 17:20:38 903870 195
>>903820
Я собираюсь сделать несколько штук для Я.Игр, как думаешь я буду заморачиваться с модельками и анимациями? Нет, я буду ассетфлипать все что можно. И только потом уже вернусь к игре мечты, которую пилю уже несколько лет.
Аноним 28/09/23 Чтв 19:57:46 903898 196
>>903870
>Я.Игр
Как там с аудиторией? Я полистал их главную страницу, игры в основном какой-то сблев полурабочий. Неужели там люди активно играют?
Аноним 28/09/23 Чтв 20:18:30 903903 197
>>903675
Недооцененный пост треда. Принялись какую-то хуйню обсуждать. Двачую этот пост.
Аноним 28/09/23 Чтв 20:36:05 903907 198
pri3.png 7Кб, 226x181
226x181
pri4.png 8Кб, 442x190
442x190
>>903827
Сеймщит. Джва месяца уже вожусь с четвёркой и всё очевиднее вырисовывается, что трёшка лучше. В четвёрке поломали сортировку интеллисенца. Вот тупо пишу pri и мне автодополняет как print() а в четвёрке простой print() в списке автодополнения торчит внизу. Что это? И так в большинстве случаев. Раньше в автодополнении очевидные частоиспользуемые строки подбивались вверх. Сейчас нет. Удобство кодинга скатилось в нулину. Версия уже 4.1.1 а трогать нет желания.
В код насрали спецсимволов. Непонятно ради чего? Похоже на саботаж. Был элегантный язык onready var foo. Теперь @onready. Нахуя? Чтобы что? Посмотрев на эти приколы руки опускаются просто.
В трёшку завезли асинхронную компиляцию+кэш шейдеров. В четвёрке с вулканом якобы это не надо. Я не поленился и скачал TPS Demo. И что я вижу? На хвалёном вулкане, при первом выстреле что? Оно самое. ПРОЛАГ ленивой компиляции шейдера пульки. А в трёшке нет. TPS Demo идёт ровно. Первый выстрел шмаляет уже предпрогруженным.

Короче. Четвёрка станет боли-лимени работоспособна года через два, не раньше, как трёшка, только через два года после релиза стала норм, а до того все олды на двушке ебашили по хардкору.
Аноним 28/09/23 Чтв 20:38:01 903908 199
>>903898
Без понятия, но от скуки буду что то делать. В стим пока не попадаю все равно
Аноним 28/09/23 Чтв 20:39:57 903910 200
>>903908
Поддерживаю. Пока платформа новая с кучей шлака, ты реально можешь стать легендой, запилив туда годноту.
Аноним 28/09/23 Чтв 21:55:32 903926 201
Там у эпиков массовые сокращения штата пошли. Уже предвижу ввод процента за установку игры на Унрыл Ынжине.

Годоти, вы готовы к новым беженцам?
Аноним 28/09/23 Чтв 22:00:46 903930 202
>>903926
Ну тут Хуан предвидел или имел инсайд, предусмотрительно выпилив вижуал скрипт. А плюсовики хорошо, такие могут сильно бустануть движок, в отличии от шарпомух сами знаете откуда
Аноним 28/09/23 Чтв 22:08:56 903935 203
>>903930
Хуан какой-то серый кардинал от геймдева нахуй.
Аноним 28/09/23 Чтв 23:38:41 903974 204
>>903972
Похуй, еще слово и в бан.
Аноним 28/09/23 Чтв 23:42:21 903975 205
>>903907
>В код насрали спецсимволов. Непонятно ради чего? Похоже на саботаж. Был элегантный язык onready var foo. Теперь @onready. Нахуя? Чтобы что? Посмотрев на эти приколы руки опускаются просто.
Если кратко, они ввели механизм аннотаций, чтобы перенести часть ключевых слов в аннотации, т.к. парсить все ключевые слова стало слишком сложно, особенно такие сложные, как export. Планировалось сделать это ещё в 2017/2018 году, ты просто не в теме.

Большинство поддержало:
https://github.com/godotengine/godot/issues/20318
https://github.com/godotengine/godot-proposals/issues/828
Аноним 29/09/23 Птн 00:22:49 903985 206
>>903972
>>903973
>>903970
Тут не крутость движка главное, а удобство. В этом разрабы годота правы. Нужно чтобы движком мог пользоваться не 100500 айкью гений квантового матана, а средний васян, как вы и я.

Вон, есть движок от того самого КРУЗИСА ЕБАНЫЙ В РОТ. Он же CryEngine, он же Lumberyard, он же O3DE - теперь даже опенсорсный. И никому нахуй не нужен, потому что без выворачивания наизнанку через жопу ты там банально спрайт не сдвинешь.

Так что сидите пилите игры на годоте и не бухтите, у Хуана все схвачено.
Аноним 29/09/23 Птн 00:34:05 903990 207
>>903985
>O3DE - теперь даже опенсорсный
Там в системных требованиях минимум 100 Гб для сборки, либо 40 Гб "using the pre-built installer":
https://www.docs.o3de.org/docs/welcome-guide/requirements/
А ведь это ещё компилировать... а это C++...

>от того самого КРУЗИСА
Крузис стал мемом из-за высокой нагрузки на видеокарту, а не из-за какой-то особой крутизны.
Аноним 29/09/23 Птн 01:49:12 903998 208
>>903971
>Блять, как я мог самое главное забыть?
Нет, анон, самое главное все забыли - ID Tech. Молодёжь.

>>903907
>Короче. Четвёрка
Помню, было в районе 3.3 какое-то обновление, там писали типа "всё, переключаем внимание на четвёрку, а тут теперь только улучшение производительности". И как улучшили, я аж прихуел, оно запускаться стало вообще моментально.
Аноним 29/09/23 Птн 02:26:43 904001 209
>>901894 (OP)
Есть ли Y Sort Original или что-то подобное для тайлсетов в 3.5?
Аноним 29/09/23 Птн 10:52:40 904024 210
>>901894 (OP)
Привет годотоаноны!
Прошу совета, на сколько приятно, быстро можно на годоте сделать трехмерный мультплеерный шутер? Просто приключение на 15 минут, зашел, пострелял, вышел. Я сейчас на анриле, и осваиваю его, пока не далеко зашел. Присматриваюсь к годоту, нравится его минимализм.
Аноним 29/09/23 Птн 12:41:58 904031 211
>>904024
>мультплеерный
На любом движке заебешься, а если не заебешься, то твой шутер поставит раком первый же школочитер.
Аноним 29/09/23 Птн 13:25:55 904043 212
>>904024
>трехмерный мультплеерный шутер
>Просто приключение на 15 минут
Ну смотри, для сессионки на 15 минут карты нужны совсем маленькие, так что возможностей Godot хватит без каких-либо хитрых оптимизаций, если не наглеть с 4К текстурами и миллионами полигонов.

Также есть встроенные инструменты для прототипирования карт, так что накидать тестовую карту можешь за пару минут, см. туториал здесь:
https://docs.godotengine.org/en/stable/tutorials/3d/csg_tools.html

Встроенного "ландшафта" нет, но тебе скорее всего будет лучше сделать ландшафт в Blender, т.к. у тебя статичные карты для сессионки, а не опенворлд. Но если очень нужно, есть аддоны от третьих лиц плюс вроде как обещают официальный аддон.

С контроллером персонажа не всё так просто, в отличие от UE у нас нет готового решения "кинул и играешь", нужно писать что-то своё под конкретную игру или искать готовый шаблон. Официальные демо самые простые, в современных шутерах контроллер персонажа учитывает намного больше.

Если хочешь ботов, то в Godot есть система навигации по навмешам и более абстрактные реализации AStar, а всю остальную логику придётся думать самому, но тут тоже есть сторонние решения, например, можешь погуглить Godot GOAP.

По мультиплееру есть встроенное решение, я его не использовал и мультиплеерных игр не делал, но оно выглядит больше подходящим для кооперативных игр, чем для сессионных DM/TDM/CTF:
https://docs.godotengine.org/en/stable/tutorials/networking/high_level_multiplayer.html
Для сессионки тебе вообще в первую очередь нужен мастер-сервер, который будет собирать всех клиентов и раздавать им список лобби/матчей. В смысле, если ты хочешь прям запустить игру и сразу с рандомами поиграть, как это обычно бывает.

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

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

Не забывай про документацию, она здесь очень хорошая, и обсуждения проблем/предложений на GitHub, также ты можешь копаться в исходниках и собирать движок сам, но в твоём случае это скорее всего вообще не понадобится.
Аноним 29/09/23 Птн 19:19:29 904082 213
Аноним 29/09/23 Птн 20:36:42 904095 214
>>904024
Проще всего порыться в ассетах и репозиториях, я там насчитывал штук 5 демок мультиплеера. Могу ближе к ночи посмотреть какие скачивал. И потом поверх них навернуть свою игру.
Аноним 30/09/23 Суб 02:27:28 904174 215
Игры-то делаете?
Аноним 30/09/23 Суб 02:53:11 904178 216
Аноним 30/09/23 Суб 03:54:22 904187 217
>>904178
Все правильно делаете. Я тоже посреди ночи.
Аноним 30/09/23 Суб 09:31:21 904227 218
Боюсь начинать делать 3д игру.
Сам в блендере не работал и в целом в моделировании или рисовании ноль, поэтому надо будет брать ассеты и анимации откуда-то... Либо учиться делать простые модели, но это дел на месяц, страшно думать о том, что чтобы сделать простую тестовую игру придется целый месяц учиться новому скиллу
Аноним 30/09/23 Суб 14:20:44 904272 219
Вкатываюсь в этот ваш годот, за вчера и сегодня разобрал первые уроки и почти доделал 2д игру из офф гайда. При этом даже что то понял в части скриптов, но общая логика работы главной сцены и узлов туманна, как оно там все с друг другом работает не понятно.

Есть ряд вопросов по планируемой игре мечты. Скажу прямо, планирую 2д порно игру с видом сверху, сначала думал вкатываться в рпг мейкер но вовремя одумался.

Насколько сложно реализовать диалоги как в визуальных новеллах, с выборами, картинками и прочим, инвентарь, простенькую боевую систему хотя бы по типу камень ножницы бумага?

Ну и вопрос не по движку, очевидно, что визуал должен быть на уровне чтобы можно было дрочить, а я не особо художник, поэтому надеюсь на нейросети, подскажите, какие из них могут внятные 18+ 2д картинки для игры сделать.
Аноним 30/09/23 Суб 14:57:01 904275 220
>>904272
Для ветвистых диалогов есть плагин - Dialogic, фактически на всем готовом ехать будешь. Но да, твоя главная проблема - арт. Вроде stablediffusion умеет в прон. Видел у анонов с форча гайды. Покопайся тут:
https://boards.4channel.org/g/thread/96309968
https://boards.4channel.org/g/thread/96312849

Полные нюдесы они там не постят потому что борда синяя.
Аноним 30/09/23 Суб 15:09:13 904276 221
>>904275
Спасибо! Буду изучать, хватило бы только моей ноутбучной затычки mx250 на рендер
Аноним 30/09/23 Суб 15:44:48 904281 222
>>904227
Во первых не бойся, не кусает.
Во вторых год это разве срок для такого навыка?
Делай по чуть чуть. Научись вставлять готовую модельку с анимацией. Научись добавлять другую готовую анимацию. Сделай свою анимацию. Сделай бублик из куба по гайду.Сделай свою модельку по гайду лоуполи за час. Сделай ей скелет для анимаций. Сами по себе это несложные задачи на час-день, надо только разобраться. Пара видосов для вдохновения
https://www.youtube.com/watch?v=59vKbXKuaNI
https://www.youtube.com/watch?v=WY2cN9uG6W8
https://www.youtube.com/watch?v=csR8LfgTKNE
https://www.youtube.com/watch?v=gJ-XW5xLNsw
Да, с первого раза не все понятно, не стесняйся ставить на паузу, пересматривать. Ищи другие если эти не понравятся.
Аноним 30/09/23 Суб 15:51:37 904283 223
image.png 281Кб, 634x400
634x400
>>904281
>Сделай свою анимацию. Сделай бублик из куба по гайду.Сделай свою модельку по гайду лоуполи за час. Сделай ей скелет для анимаций.
Аноним 30/09/23 Суб 22:33:41 904357 224
C виртуальными тач-стиками кто работал? Почему они ощущаются будто маслом намазанные? Это реально так люди играют на мобилках, или я что-то упускаю?
Аноним 01/10/23 Вск 06:04:10 904436 225
Поясните или скиньте гайд на логику сцен и узлов. Вот я накидал себе план из того, что хочу реализовать в игре. Мне начинать с отдельных элементов, а последная и главная сцена это будет главный экран, где после нажатия новой игры все запустится?
Аноним 01/10/23 Вск 10:10:35 904459 226
>>904436
надеюсь, что ты знаешь, что такое структура дерево, если нет, то погугли картинку

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

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

в принципе в ассетах есть много реализаций подобных штук, которых можно поискать по фразам "state ..." и тому подобных
Аноним 01/10/23 Вск 10:25:21 904461 227
На сколько заебно ннтот впш гойдот, если писать на крестах?
Аноним 01/10/23 Вск 11:59:46 904467 228
>>904461
у нас в команде новый проект начинают на гдскрипте, потом критичные участки переносят на плюсы (хотя большая часть требуемых задач уже перенесена, так что от программиста требуется только по больше части поддержка)

прямо писать особых проблем нет, хотя совсем верхнюю логику все равно проще держать в скриптах или модинг игры, если предусматривается
а так пишешь модули к движку и дергаешь

можно хоть сам движок собрать с нужными кусками в том числе своими, только там еще питон накатить нужно будет для системы сборки вроде бы
Аноним 01/10/23 Вск 13:04:34 904475 229
>>904467
Что за команда? Ты и твой кот?
Аноним 01/10/23 Вск 13:12:06 904477 230
1696155087549.png 370Кб, 1920x1080
1920x1080
>>904461
Вполне комфортно пишется, насколько это применимо к c++ в принципе, после единоразовой долгой настройки.
Я писал как то как у меня сделано. Игровая логика на c++ и она отделена от движков (там ecs модель мира и сущностей) собирается в dll/so.
И вторая либа, которая scons собирает gdnative/gdextension, эта либа инклюдит Godot.hpp, она дергает логику первой либы, при этом видна для гдскрипта как обычный класс. Гуй обычные сцены с гдскриптом. Итого MVVC. Пишу я в vscode или geany, сборка 5 секунд батником.

Также в качестве эксперимента я пепеписывал 1 в 1 туториалы, без особых проблем, но полностью так писать игру дольше, чем на гдскрипте, еще думать про все эти Ref<Type> и memnew()
Аноним 01/10/23 Вск 18:24:32 904531 231
>>901894 (OP)
Я уже спрашивал, но вопрос скорее всего никто не заметил. Как в годо поставить точку с которой будет сортироваться по Y тайлы для каждого тайла?
Аноним 02/10/23 Пнд 10:31:44 904636 232
>>904531
>вопрос скорее всего никто не заметил.
>поставить точку с которой будет сортироваться по Y тайлы для каждого тайла
Я тот раз заметил, но так и не понял, что ты хочешь.
Аноним 02/10/23 Пнд 10:39:51 904640 233
>>904436
>Мне начинать с отдельных элементов, а последная и главная сцена это будет главный экран, где после нажатия новой игры все запустится?
В разработке есть два подхода:
https://en.wikipedia.org/wiki/Bottom-up_and_top-down_design
Сверху-вниз: от главной сцены к отдельным нодам.
Снизу-вверх: от отдельных нод к главной сцене.
Godot поощряет подход снизу-вверх, но его можно использовать и в подходе сверху-вниз. На практике удобнее смешивать, что-то делая в виде пустышки и дополняя деталями, что-то делая мелкими частями и объединяя их в одну большую систему. Выбирай сам.
Аноним 02/10/23 Пнд 10:51:30 904644 234
>>904459
>>904640
Спасибо аноны! Более менее разбираюсь. Сейчас в тупике по поводу коллизий, мой игрок (characterbody 2d) почему то проходит сквозь объекты, хотя если я создам rigidbody 2d и на него накину скрипт управления, то он уже нормально себя ведёт. Маски и слои настроены одинаково, 2д вид сверху с 0 гравитацией если это важно
Аноним 02/10/23 Пнд 11:11:56 904648 235
>>904644
Все починилось само, если вчера ничего не работало, то сегодня вдруг стало работать как должно
Аноним 02/10/23 Пнд 17:09:47 904710 236
Screenshot16.png 31Кб, 573x324
573x324
Написал скрипт для перехода с подтверждением по кнопке, оцените. учусь писать скрипты
Аноним 02/10/23 Пнд 17:18:41 904712 237
>>904710
В целом всё верно.
В этот скрипт ещё прикрутить бы таблицу базы данных с именами сцен, куда возможно переходить, и менеджер сцен, который по имени производит фоновую загрузку сцены, и будет ваще мидл-левел.
Аноним 02/10/23 Пнд 20:34:39 904753 238
>>904636
Просто при сортировки тайлов в ноде Y-sort они используют точку сортировки из настроен tilemap, а именно настройки tile original и она для всех тайлов из tilemap одинаковая. А я хочу установить её для некоторых тайлов в другом месте. Например, не в центе, а в левом верхнем углу
Аноним 02/10/23 Пнд 22:02:49 904759 239
Делайте игры. Я последнее время не делал, но сейчас начну.
Аноним 02/10/23 Пнд 22:41:35 904769 240
Призываю в тред раст-куна, которого видел на неделе в каком-то из тредов. Раст-кун, приди. Научи как сделать свою сбоpку с волшебной интерполированной дельтой и скриптингом на расте.
Аноним 03/10/23 Втр 09:07:05 904805 241
grender.png 21Кб, 839x280
839x280
про GL Compatibility написано на чем он основывается при рендере, а другие что используют?
Forward видимо старается максимальный на платформе использовать типа DX на винде, Metal на маке или они все там в основе имеют Angle и просто разные прослойки вызовов с разным функционалом?
Аноним 03/10/23 Втр 10:07:37 904808 242
>>904805
>Forward видимо старается максимальный на платформе использовать типа DX на винде, Metal на маке или они все там в основе имеют Angle и просто разные прослойки вызовов с разным функционалом?
Forward и Mobile - два разных набора настроек Vulkan.
Подробнее: https://www.vulkan.org/
>Vulkan is a cross-platform industry standard enabling developers to target a wide range of devices with the same graphics API.
Наследник OpenGL от Khronos Group, он же glNext.
Аноним 03/10/23 Втр 10:45:55 904812 243
>>904808
да я в курсе, что такое вулкан, вопрос-то не в том был
Аноним 03/10/23 Втр 10:51:37 904813 244
>>904710
1. Если не планируется никаких модификаций строки, тогда лучше вместо String использовать StringName. Хотя в твоём случае разницы особо не будет.
2. Лучше явно указывать типы везде, где должен храниться только определённый тип данных, скажем, нужно указать var Vzone: bool, так как это флаг и он должен принимать только true или false.
2.1. Также лучше явно указать начальное значение, даже если это ноль/false: var Vzone: bool = false. Без явно указанного типа начальным значением по умолчанию вообще является null (если не ошибаюсь).
3. Тогда вместо Vzone == true достаточно будет указать Input.is_action(...) and Vzone: get_tree()... - новички часто переусложняют булевы выражения, так вот, следует упрощать: Vzone уже либо true, либо false.
4. Соблюдай правила именования, которые ты сам и принял: если у тебя одно поле называется next_scene, то поле Vzone должно называться v_zone.
5. И что за "v_zone"? "victory_zone"? Не жалей букв, тебе же потом читать этот код и вспоминать его смысл.
5.1. По смыслу лучше назвать "victory_achieved": это флаг, сообщающий о достижении игроком условия, а не хранилище объекта ("zone" - существительное, "achieved" - глагол в прошедшем времени).
5.2. Алсо, принято именовать приватные поля класса начиная с подчёркивания: "_victory_achived", несмотря на отсутствие приватных полей в GDScript.
6. В _body_entered и _body_exited имеет смысл сделать дополнительную проверку вроде if body is Player, если у тебя игрок имеет class_name Player. Да, ты можешь ограничить срабатывание Area отдельным слоем, но вдруг ты что-то напутаешь и сломаешь, потом будет сложно найти причину, почему рандомный предмет вызывает переход на следующий уровень.
7. change_scene_to_file имеет смысл только в очень простых играх с уровнями, где игрок стартует всегда в одном состоянии. В более сложной игре придётся переносить данные между локациями и сохранять предыдущее состояние локации. Просто напоминаю.

>>904712
>ещё прикрутить бы таблицу базы данных с именами сцен, куда возможно переходить
Зачем? У него этот скрипт висит на флажке в конце уровня, что-то по типу Марио получается.
>менеджер сцен, который по имени производит фоновую загрузку сцены
Зачем? В игре типа Марио лучше дать подождать загрузки уровня в конце уровня, чем тормозить игру асинхронной загрузкой в процессе уровня. Другое дело, сюда бы загрузочный экран прикрутить, если уровни действительно большие и долго грузятся...
Аноним 03/10/23 Втр 11:04:50 904817 245
>>904710
Почитай вот это ещё:
https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/static_typing.html
Можно где-то в настройках редактора включить добавление типов в заголовки стандартных функций.

>>904813
>Input.is_action(...) and Vzone: get_tree()
Ещё лучше будет сделать так:
>if victory_achived and Input.is_action...
Потому что значение флага известно заранее, а метод класса Input требует какой-то дополнительной работы. Поскольку выражение у нас and, если первый элемент false, то результат тоже false. Интерпретатор имеет возможность оптимизировать этот момент, исключив лишнюю работу по вызову функции. Хотя происходит ли это в GDScript - не знаю, но если нет, можно разбить условие на два: if victory_achived: if Input.is_action...

...вообще, самое главное я не увидел сразу: вместо _process здесь следует использовать _unhandled_input:
>func _unhandled_input(event: InputEvent) -> void:
> if victory_achived and event.is_action("ui_accept"): ...
Потому что _process происходит столько раз в секунду, сколько игра рендерит кадров, а _input срабатывает только при нажатии клавиш, и в свою очередь _unhandled_input работает только когда остальные элементы сцены проигнорировали нажатие клавиши.
Аноним 03/10/23 Втр 11:18:44 904819 246
>>904710 >>904817
А вообще, я бы сделал так:
1. Попадание игрока в финишную зону открывает окно "вы победили, перейти на следующий уровень?"
2. Игрок всё ещё может двигаться, если он уходит, окно скрывается, либо игрок может сам его убрать.
3. Скрипт перехода на следующий уровень - это уже часть окна "вы победили", а не часть финишной зоны.

Таким образом можно повторно использовать то же окно с тем же кодом для любого другого условия победы, вроде того, что игрок съел всю еду на уровне, убил всех мобов или выполнил все задания. Флажок в стиле Марио только вызывает это окно, ничего не зная о предназначении и дальнейших действиях окна.
Аноним 03/10/23 Втр 11:29:53 904822 247
>>904753
>при сортировки тайлов в ноде Y-sort
>точку сортировки из настроен tilemap
Как это вообще связано? Нода YSort в версиях 3.x нужна была для сортировки CanvasItem:
https://docs.godotengine.org/en/3.5/classes/class_ysort.html
Внутри TileMap тайлы сортируются автоматически.

Если тебе нужно расположить спрайты персонажей между высокими тайлами, тогда включи это:
https://docs.godotengine.org/en/3.5/classes/class_tilemap.html#class-tilemap-property-cell-y-sort
И расположи персонажей в потомках TileMap.

>она для всех тайлов из tilemap одинаковая. А я хочу установить её для некоторых тайлов в другом месте.
Так и не понял до конца, но ты пробовал создать отдельный второй TileMap с другими настройками?
Аноним 03/10/23 Втр 12:54:44 904838 248
Screenshot17.png 16Кб, 243x345
243x345
Screenshot18.png 7Кб, 148x200
148x200
Screenshot19.png 46Кб, 659x517
659x517
>>904819
>>904817
>>904813
>>904712
Спасибо за оценки, подправил немного
>менеджер сцен и фоновая загрузка
Пока что для меня это вообще темный лес
>разные названия переменных
переменную с _ я подсмотрел в гайде,поэтому так и написал, а самому ставить _ постоянно меня угнетает, Взоне буквально значит в зоне (рядом с дверью)
>unhandled_input
Я честно попытался понять как это работает и чем будет лучше в моем случае и не смог.
>переусложнение условий
единственный язык который я немного знаю это школьный паскаль, поэтому так пишу, а как упрощать я вообще не понял, так для меня код логику сразу теряет

Дополнительно прикрутил картинку-подсказку нажать кнопку для перехода, у меня 2д вид сверху с открытым миром если что, на примере это вход в здание. сами иконки и скрипт отдельной сценой, планирую во всех переходах ее ставить. И да, все спрайты всратые потому что я их спиздил на скорую руку. Сейчас даже не игру делаю, а технодемку, чтобы освоить механики, как доделаю, скину сюда проект я тот анон с порноигрой
Аноним 03/10/23 Втр 14:11:41 904850 249
>>904838
>самому ставить _ постоянно меня угнетает
Автодополнение в коде позволяет быстро набирать код, не набирая большую часть символов в словах.
>Взоне буквально значит в зоне (рядом с дверью)
Ясно, я неправильно понял.

>чем будет лучше в моем случае
Вот смотри, допустим, у тебя частота кадров 60. На твоей карте одна дверь, значит, ты 60 раз в секунду проверяешь условие:
>if Input.is_action_pressed()...
Если ты добавишь вторую дверь, эта проверка будет гоняться уже 120 раз в секунду. 10 дверей - 600 раз в секунду. Если теперь твою игру с десятью дверьми запустить на компьютере с монитором 120 Гц, тогда у тебя будет уже 1200 проверок в секунду.

А самое главное, тебе 99.99999% этих операций не нужны, т.к. игрок переходит от двери к двери редко. Так что ты просто впустую гоняешь процессор.

Yandere Simulator знаешь? Там одно время были дичайщие тормоза от того, что каждый студент 60 раз в секунду "смотрел на часы", чтобы узнать, не пора ли ему отправиться на урок - здесь суть та же.

>единственный язык который я немного знаю это школьный паскаль, поэтому так пишу
Я тоже с него начинал, там всё так же работает.
>а как упрощать я вообще не понял, так для меня код логику сразу теряет
Почему теряет-то? Ты буквально пишешь:
>ЕСЛИ нажата клавиша Enter И игрок находится в зоне действия двери ТОГДА: загрузить комнату
Зачем тебе писать Vzone==true, если ты можешь ПРОСТО написать Vzone и смысл будет тот же?

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

>спрайты всратые
Нормальные спрайты для таких игр. Мне нравится.
Аноним 03/10/23 Втр 14:34:24 904854 250
>>904850
>Там одно время были дичайщие тормоза от того, что каждый студент 60 раз в секунду "смотрел на часы", чтобы узнать, не пора ли ему отправиться на урок - здесь суть та же.
Вообще, тормоза были из-за того, как он использовал ассет на поиск пути, а эти проверки расписания почти не влияли на производительность
Аноним 03/10/23 Втр 17:06:10 904870 251
>>904850
>unhanded
Я переделал дверь под это, хотя я все ещё не понимаю логику этой функции, типо не игра проверяет нажатие кнопки каждую дельту, а кнопка запускает функцию сама?
Аноним 03/10/23 Втр 17:55:55 904880 252
>>904870
>все ещё не понимаю логику этой функции
Почитай документацию что ли:
https://docs.godotengine.org/en/stable/tutorials/inputs/inputevent.html
Даже перевод (частично) на русский есть:
https://docs.godotengine.org/ru/4.x/tutorials/inputs/inputevent.html
Для тройки перевод полный:
https://docs.godotengine.org/ru/3.x/tutorials/inputs/inputevent.html

>кнопка запускает функцию сама?
Не совсем. ОС генерирует т.н. "события", приложение (Godot) их принимает и что-то с ними делает. Есть стандартные обработчики, например, при клике на Button кнопка на экране меняет свой внешний вид, будто надавливается; при нажатии стрелок курсор (фокус) переходит с одного Control на другой или внутри одного (LineEdit). А есть ситуации, в которых ты хочешь сделать что-то сам, заложить какое-то специфическое поведение. Для этого существуют обработчики _input и два других. Они вызываются движком, когда возникает событие ввода, и ты там можешь что-то делать в зависимости от того, что за событие ты получил.

Хотя, я тут подумал, на самом деле _input вовсе не обязательно эффективнее _process. У меня мышка генерирует события ввода до 500 раз в секунду, так что моя игра начинала лагать просто из-за тысяч попыток сдвинуть камеру в 3D игре за секунду, лол. Вроде, не так давно в треде обсуждали, не помню, к чему пришли... Для дверей лучше какой-то другой подход, например, чтобы персонаж посылал двери запрос на взаимодействие, тогда у тебя обработка ввода будет только в одном месте - в персонаже, независимо от числа дверей. Двери вообще не будут проверять нажатие клавиш, а в персонаже ты в любом случае должен проверять ввод - тогда лишних операций проверки не будет. Короче, я с самого начала не туда глядел, извини, если запутал.
Аноним 03/10/23 Втр 18:04:28 904882 253
>>904880
>Двери вообще не будут проверять нажатие клавиш
Собсна, нужно было с самого начала задаться таким вопросом: почему дверь слушает ввод пользователя? Игровая дверь - пассивный объект игрового мира, она не управляется игроком напрямую. Игрок управляет персонажем, а уже персонаж активирует кнопки, рычаги, двери, раздвижные мосты и прочее. Ведь когда вы делаете в игре врага, вы не ставите ему обработчик кликов мыши, вы ставите ему обработчик попадания удара или пули, которые могли возникнуть со стороны персонажа игрока по нажатию кнопки мыши, а могли и по другой причине (ловушка, напарник игрока, общий враг и т.п.).

Т.е. дверь просто ждёт запрос от игрового персонажа, а игровой персонаж ждёт нажатий клавиш игроком.
Аноним 03/10/23 Втр 18:09:02 904885 254
>>904838
Я бы вообще немного архитектурно переделал.
Вот у тебя иконка двери же появляется когда подходишь.
Значит ты вообще можешь избавиться от Vzone
Алсо, есть такая функция, как set_process(bool)
То есть ты можешь включать process когда срабатывает твой on enter и выключать в on exit. Так скрипт вообще не будет молотить когда ты не зашел в триггер.
Аноним 04/10/23 Срд 11:32:24 904965 255
2023-10-04 11-2[...].mp4 22942Кб, 852x480, 00:01:17
852x480
Делою хиии.
Аноним 04/10/23 Срд 11:51:50 904969 256
изображение.png 389Кб, 1366x768
1366x768
Wtf man! Что он требует от меня?! Что там в ошибках? Что нормализовать надо?
Аноним 04/10/23 Срд 12:44:28 904975 257
Снимок экрана ([...].png 167Кб, 1366x768
1366x768
Снимок экрана ([...].png 187Кб, 1366x768
1366x768
>создал контейнер с полем для текста
>при нажатии кнопки должна проигриваться анимация на объекте и в поле для текста должен виводиться текст
>РРРРЯЯЯЯЯЯЯЯЯЯЯЯ НУУУЛЛЛЛЬ ИНСТАААААНССС НЕ НАЙДЕНААА ТАКОВАААААА
Аноним 04/10/23 Срд 13:27:31 904978 258
>>904882
>>904880
Я переделал логику, теперь в игроке идёт проверка нажатия ентера, если да то посылается сигнал. А дверь при получении смотрит, если игрок в зоне, то переключает лвл. Минус в том, что на каждом уровне надо вручную подключать каждую такую дверь к игроку, но это мелочи. Я нашел event bus, но так и не смог настроить у себя, и забил хуй, буду руками подключать.
Аноним 04/10/23 Срд 15:43:28 904990 259
>>904969
Ты вручную анимации делал? Проверь что масштаб не трогал.
Аноним 04/10/23 Срд 15:48:48 904992 260
>>904975
Вроде все очевидно, не? Ты вызываешь Head/BoxContainer относительно текущей ноды, но скрипт пишешь не в Player а на две ноды глубже. Тогда тебе надо что то вроде $"../../Head/Boxитд"
Аноним 04/10/23 Срд 15:52:34 904993 261
>>904978
Это можно сделать несколькими простыми способами.
Например при загрузке уровня игрок сам в цикле проверяет все объекты (по имени или группе) и добавляет двери. Или, наоборот, каждая дверь сама себя регистрирует. Можно вообще самому сделать без всяких eventbus. В скрипте уровня завести массив дверей, каждая дверь онреди себя туда записывает, при спавне игрока он подписываеи каждую дверь из массива на события
Аноним 04/10/23 Срд 16:52:16 905002 262
>>904993
Ладно, это уже для больших игр и студий, мне кажется проще 5 минут потратить на ручную настройку условных 100 дверей в игре, чем писать код как минимум несколько часов по крайней мере с моим уровнем
Аноним 04/10/23 Срд 16:58:51 905003 263
>>905002
Да не, это для любительского соло геймдева простой вариант, сложные для студии я не стал расписывать
Аноним 04/10/23 Срд 19:08:48 905047 264
>>904805
Не думаю что тут полно спецов по вулкану
В самой свежей бете 4.2.dev6 есть такая инфа
An optional ANGLE-backed OpenGL renderer was added for macOS and Windows (GH-72831). ANGLE is a compatibility layer for OpenGL on top of Metal and Direct3D 11, which allows us to work around the deprecated and unmaintained OpenGL drivers on macOS, and similarly outdated OpenGL drivers on Windows for some older integrated chipsets. This should increase the portability of Godot games on lower end devices.
Аноним 04/10/23 Срд 22:44:02 905091 265
Снимок экрана ([...].png 1017Кб, 1366x768
1366x768
>>904992
>>904990
Ой, поцики, забил сказать, шо я это пофиксил уже.
Часов в 13-14. Спасибо.
Аноним 04/10/23 Срд 22:44:59 905092 266
>>904992
>>904992
>Вроде все очевидно, не? Ты вызываешь Head/BoxContainer относительно текущей ноды, но скрипт пишешь не в Player а на две ноды глубже

Ну да, я это понял примерно где-то через минуту после постинга и пофиксил чуть позже. Так сложно на самом деле. Неприятно.
Спасибо.
Аноним 04/10/23 Срд 22:48:59 905094 267
>>905091
>чурч левел
Помолился хоть?
Аноним 04/10/23 Срд 22:52:13 905095 268
>>904978
>подключать каждую такую дверь к игроку
Не нужно подключать заранее ничего.

В 3D можно сделать так:
1. Из игрока торчит RayCast3D в направлении взгляда.
2. Когда игрок нажимает кнопку "использовать":
- проверяем, с чем пересекается наш луч взгляда:
>if ray.is_colliding(): var body := ray.get_collider()
- проверяем наличие метода и вызываем его:
>if body.has_method("interact"): body.interact(self)
3. Далее любой интерактивный объект должен реализовать свой метод interact(target), который реагирует на нажатие кнопки "использовать".

В 2D на квадратной сетке можно сделать проще, без бросания лучей и без Area, просто проверяя, на какой клетке стоит фигурка игрока и куда она смотрит. Но ради быстрого прототипа можно и RayCast2D...
Аноним 04/10/23 Срд 23:10:02 905099 269
>>905094
Так я ж бог этой игри. Что я, на себя молиться буду?!
Аноним 05/10/23 Чтв 06:05:34 905131 270
>>905047
ага, значит скорее всего просто стандартизовали api через Angle, чтобы удобно было
спасибо
Аноним 05/10/23 Чтв 09:59:08 905139 271
Какой плагин для диалогов как в визуальной новелле лучше? Пока остановился на dialogic от coppolaemilio, но в ассетах видел много других вариантов
Аноним 05/10/23 Чтв 10:12:34 905141 272
Аноним 05/10/23 Чтв 10:51:21 905145 273
Аноним 05/10/23 Чтв 10:58:53 905146 274
>>905145
Ну ты ну! По ссылкам переходи всё таки
> Q: What difference with Dialogic ?
> A: Our project use normal coding with our own scripting langue inspired by Ren'Py, instead of visual. Plus is just a core, simple as possible, autoloaded when you enabled the plugin. If you want more check our addons and kits bellow.
Аноним 05/10/23 Чтв 11:07:40 905148 275
>>905146
Я нашел это, но в чем лучше то? Отсутствие визуального программирования преподносится как плюс?
Аноним 05/10/23 Чтв 11:15:12 905152 276
>>905148
Как я понял диаложик в принципе для диалогов, тогда как ракуго специализируется именно на ВН, именно на подобии РенПу
Аноним 05/10/23 Чтв 12:52:11 905176 277
1696499531062.png 359Кб, 994x1400
994x1400
>>904769
> Призываю в тред раст-куна, которого видел на неделе в каком-то из тредов. Раст-кун, приди. Научи как сделать свою сбоpку с волшебной интерполированной дельтой и скриптингом на расте.
Призываю в тред раст-куна, которого видел на неделе в каком-то из тредов. Раст-кун, приди. Научи как сделать свою сбоpку с волшебной интерполированной дельтой и скриптингом на расте.
Аноним 05/10/23 Чтв 12:57:56 905179 278
>>905146
>with our own scripting langue
Я установил в твой собственный скриптовый язык еще один собственный скриптовый язык, чтобы ты мог скриптить пока скриптишь
Аноним 05/10/23 Чтв 13:40:22 905186 279
>>905139
> Какой плагин для диалогов как в визуальной новелле лучше?
> Пока остановился на
> но в ассетах видел много других
Позагружай все. В отдельные тестовые проекты, разумеется. Погоняй-посмотри. Выбери наиболее подходящий тебе.

Помни!
Лучших нет. Есть только подходящие.
Аноним 05/10/23 Чтв 13:41:07 905188 280
>>905186
> Лучших нет
Тот который ты пишешь сам - лучший
Аноним 05/10/23 Чтв 13:42:21 905189 281
Аноним 05/10/23 Чтв 13:50:38 905190 282
>>904769 >>905176
Отзываю из треда раст-куна, не хватало нам ещё ржавчины в движке, и без неё всё еле работает.

>сбоpку
Зачем? https://godot-rust.github.io/
Аноним 05/10/23 Чтв 13:51:25 905191 283
>>905188
>Тот который ты пишешь сам - лучший
Получается лучшая игра - та, которую ты написал? Все ГОТИ мои?
Аноним 05/10/23 Чтв 13:58:56 905192 284
>>905191
Да. Шайн он ю крейзи даймонд
Аноним 05/10/23 Чтв 14:05:34 905195 285
>>905188
>Тот который ты пишешь сам
Визуальные новеллы делают всякие писаки-забияки и яжхудожники, они не хотят разбираться в кодинге и изобретать велосипед с нуля, они хотят ЕХАТЬ.

Поэтому они берут готовое и пишут скрипты вроде:
>{Вася} Машка, го трахаться!
>{Маша} Ах, Василий, вы такой дерзкий!
>{sex_scene_69.png}
Вот и вся "разработка игры".

>>905179
>еще один собственный скриптовый язык
https://ru.wikipedia.org/wiki/Предметно-ориентированный_язык
>Предметно-ориентированный язык (англ. domain-specific language, DSL — «язык, специфический для предметной области») — компьютерный язык, специализированный для конкретной области применения (в противоположность языку общего назначения, применимому к широкому спектру областей и не учитывающему особенности конкретных сфер знаний). Построение такого языка и/или его структура данных отражают специфику решаемых с его помощью задач.

GDScript - язык общего назначения.
%твой язык в игре% - язык для конкретной игры, учитывающий особенности разработки этой игры.

Алсо,
>Строго говоря, деление языков программирования на языки общего назначения и предметно-ориентированные весьма условно, особенно, если учесть, что формально любой протокол или формат файлов является языком.
Так что в Godot кроме GDScript есть ещё безымянный декларативный язык сцен и ресурсов (tscn/tres) и наверняка что-то ещё, тоже специализированное.
Аноним 05/10/23 Чтв 14:12:58 905198 286
Короче я поебался с некоторыми плагинами диалогов, смог их запустить, но нормально интегрировать это все в мою игру не смог, где то я откровенно нихуя не понимал, а где то ничего не работало, так как код/документация были под годот 3 и я опять же нихуя не понимал и ловил ошибки. Поэтому буду делать собственную примитивную систему диалогов, благо нашел вроде рабочий гайд на ютубе
Аноним 05/10/23 Чтв 15:30:08 905213 287
>>905195
> безымянный декларативный язык сцен и ресурсов
На TOML похож.
Аноним 05/10/23 Чтв 15:31:51 905214 288
>>905198
Падажжи. Как так? В том же диалоджике вместе с ассетом поставляется сцена-пример. Ты не можешь её штоле открыть и тупо скопировать со своим текстом и артом?
Аноним 05/10/23 Чтв 15:44:23 905218 289
>>905214
Обычно сложно интегрировать чужие решения в свою игру. Например инвентарь. Хоть и есть прикольные проекты, но мне было проще сделать самому, чем пытаться впендюрить в свой код
мимо
Аноним 05/10/23 Чтв 16:18:20 905221 290
1696511900724.png 53Кб, 762x775
762x775
>>905198
> буду делать собственную примитивную систему диалогов
Ну вот тебе совет от бывалого участника ТВГ, занимавшего 10е-12е места, лол.
Юзай JSON для описания диалогов, его экстремально легко парсить, то есть, если он у тебя корректно написан, то при загрузке ты получаешь готовый словарь в котором просто обращаешься к ветвям по мере проигрывания диалога.
Фишка в том, что при написании парсера заложи, что каждое возвращаемое значение может быть либо словарём (типизированным, с полем "type" и строковым значением типа), либо массивом типизированных словарей, либо переменной системного типа. Благодаря этому, как показано на скрине, ты можешь писать небольшие фрагменты диалогов и ссылаться на них, а так же ты можешь в диалоге описать типизированные объекты и опять же ссылаться на них, но тебе ничего не помешает внутри одного файла описать несколько ветвей диалога, а поскольку корневой элемент имеет имя, то между ветвями можно ссылаться на другие ветви по имени корневого элемента в поле "next".

В строке 26 я написал образно просто строку с якобы обращением к игровому синглтону, но если ты решишь реализовывать этот вариант, то там будет немного иначе, есть пара подводных камней, но в целом ты и такую строку сможешь распарсить, движок в этом тебя не ограничит.
Аноним 05/10/23 Чтв 16:42:55 905225 291
>>905221
Теперь подробно распишу алгоритм парсинга скрина.
Сначала парсер ожидает словарь типа "диалог-файл", если получено иное, выдаёт ошибку. У этого типа словаря парсер ожидает найти поля "персонажи" и "беседы" каждый из которых может быть как встроенным словарём, так и строкой-ссылкой на общий файл в базе данных.
Далее парсер загружает словарь с персонажами, и держит их в переменной, чтобы ссылаться на них.
Далее парсер загружает словарь с беседами, если у него нет данных о том, с какого корневого узла начать/продолжить, он открывает первую по индексу (помним, что словарь всё равно массив) и ожидает типизированный словарь "строчка", у которого ожидает наличие поля "условия".
Далее парсер парсит условия по списку, если найдены условия "на_старте", то выполняет их, и если они тру, выводит текст на экран, выводит имя на экран, находя его по ссылке, иконку, так же.
Далее парсер рекурсивно загружает типизированный словарь из поля "следующий". Если в поле строковый путь к файлу - предварительно загружает файл.
И так пока весь диалог не покажет.

Система охуенно масштабируема. Можно тупо в одном файле всё описать, а можно навернуть сложнейшее эрпоге с базой данных персонажей, стат/скилл-чеками, дайс-роллами, и прочими блек-джеками.

Систему условий ты тоже реализуешь сам. Можно реализовать енум из трёх констант: на_старте, в_середине, в_конце. На старте мы решаем показать ли строку или скипнуть. Если строка это корень, и условие провалено, то скипается весь диалог вообще. Если условие в конце, то скипаем некст. Если условие в середине, то нужно например в тексте поставить метку, в какой момент вывода текста нужно чекнуть условие. И соответственно, ЮИ при выводе текста должен уметь скрывать метку с глаз и посылать сигнал парсеру, а парсеру на этот сигнал быть подписанным.

Поле некст (следующий) может быть списком ответов, и тогда там нужно описать отдельный тип словаря, у которого кроме поля "текст" есть поле "заголовок" (caption). которое будет выведено на кнопке у игрока в ЮИ. При проектировании более сложных диалоговых систем уровня РПГ, ответами смогут быть все строчки, просто если их "выбирает" непись, игрок не видит заголовка.
Аноним 05/10/23 Чтв 16:58:14 905228 292
1696514294386.png 34Кб, 751x526
751x526
>>905225
На самом деле, я тут перечитал написанное и понял, что неправильно обрисовал тебе часть с условиями. Вообще говоря, следует в диалогах держать поле "скрипты" в котором будет список из типов скрипта: условие, действие. Условия возвращают булево значение. Действия просто делают, например, устанавливают переменные.
Аноним 05/10/23 Чтв 17:09:34 905229 293
>>905228
Спасибо за такой развернутый ответ, но я все равно ничего пока не понимаю годот скачал неделю назад. Надо будет выделить вечер и сесть разбираться со всем этим.
Аноним 05/10/23 Чтв 17:22:51 905232 294
1696515770487.png 34Кб, 955x506
955x506
>>905229
> но я
А меня уже понесло 😁 продолжил продумывать дизайн пикрелейтед.
Ну ладно. Как освоишься, и если не сбежишь, приходи - возобновим беседу.
Аноним 05/10/23 Чтв 19:58:04 905249 295
>>905213
Это вариант INI-файлов, называют ConfigFile:
https://docs.godotengine.org/en/stable/classes/class_configfile.html
>This helper class can be used to store Variant values on the filesystem using INI-style formatting. The stored values are identified by a section and a key:
>[section]
>some_key=42
>string_example="Hello World3D!"
>a_vector=Vector3(1, 0, 2)
>ConfigFiles can also contain manually written comment lines starting with a semicolon (;). Those lines will be ignored when parsing the file.
>Note: The file extension given to a ConfigFile does not have any impact on its formatting or behavior. By convention, the .cfg extension is used here, but any other extension such as .ini is also valid. Since neither .cfg nor .ini are standardized, Godot's ConfigFile formatting may differ from files written by other programs.
Аноним 05/10/23 Чтв 20:12:10 905252 296
>>905221
>10е-12е места
Что?.. Как ты занимал такое место?
>10e-12 in decimal form
>0.000000000010
Ох уж эти ТВГ...

>Юзай JSON для описания диалогов
Лучше https://hjson.github.io/ - его намного легче писать вручную, чем корректный JSON.

Проблема подхода "всё в JSON" в том, что ты должен описывать буквально структуру в памяти, что не обязательно наиболее удобная запись для человека, а костыли не обязательно удобны для программы.
Аноним 05/10/23 Чтв 23:47:24 905291 297
Эх, вот бы игры поделать...
Аноним 06/10/23 Птн 13:16:14 905373 298
image.png 797Кб, 1280x720
1280x720
>This is the final dev snapshot for 4.2
уххх, скоро бетки пойдут
Аноним 06/10/23 Птн 14:48:02 905383 299
Аноним 06/10/23 Птн 15:26:33 905387 300
>>905252
> 10e-12 in decimal form
Смишно пошутил, петросян.
> его намного легче писать вручную, чем корректный JSON
Да это всё понятно. Суть в том, что корректный жсон поддерживается гдскриптом искаропки, а для некорректного придётся парсер писать. А мог бы игры делать.
Аноним 06/10/23 Птн 15:55:59 905392 301
>>905387
Хз как можно писать не на json. Есть миллиарды инструментов, которые позволяют очень удобно на нем писать. Зато костыли никакие не нужны и это де факто стандарт
Аноним 06/10/23 Птн 17:22:31 905407 302
Аноним 06/10/23 Птн 19:40:59 905436 303
>>901894 (OP)
Годотеры, у меня вот у персонажей есть различные скилы, котоыре сделаны отдельными нодами, прикрепляемыми к персонажам. Что будет лучше для производительности: прикреплять все ноды скиллов при создании сцены или при использовании скилла прикреплять только необходимую?
Аноним 06/10/23 Птн 20:12:42 905441 304
>>905436
Смотря сколько скиллов и как часто они используются
Аноним 06/10/23 Птн 20:21:13 905442 305
>>905436
> Что будет лучше для производительности
Наследоваться от RefCounted.
> class_name Skill extends RefCounted
Прикреплять скиллы в локальный массив персонажа.
> var skills : Array[Skill]
> skills.append(Skill.new())
Аноним 06/10/23 Птн 20:21:17 905443 306
>>905441
На одну сущность до 15 скиллов приходится пока что. Игра - пошаговая тактика.
Аноним 06/10/23 Птн 20:23:01 905444 307
>>905442
У меня скиллы это не просто объекты, а каждый скилл целая сцена.
Аноним 06/10/23 Птн 20:24:14 905445 308
>>905443
>>905442
>>905436
Если тебе надо удобную поддержку в редакторе, то наследуйся от Resource, затем у персонажа сделай
> @export var skills : Array[Skill]
И получишь удобную форму для прикрепления скиллов к персу в инспекторе.

В обоих случаях ты не будешь в скиллах тянуть ненужный тебе функционал Нод.
Аноним 06/10/23 Птн 20:25:10 905446 309
>>905443
> пошаговая
> производительность
Аноним 06/10/23 Птн 20:25:43 905448 310
>>905444
> каждый скилл целая сцена
Я предъявляю претензию к твоей архитектуре. Скилл это ресурс. Он может добавлять сцену при необходимости, но ему незачем держать в себе сцену. Подумай над архитектурой ещё.
Аноним 06/10/23 Птн 20:31:04 905452 311
>>905445
>Если тебе надо удобную поддержку в редакторе
Ну, через редактор я их все равно добавлять не буду, так что не надо.

>>905448
Тогда зачем ресурс? Если он все равно будет добавлять сцену, как у меня во втором варианте, то я просто смогу узнать скилл, который нужен, по его id?

>>905446
Хочется, чтоб даже на древней картошке игра шла все таки.
Аноним 06/10/23 Птн 20:34:28 905453 312
>>905452
Это экономия на спичках, для пошага. Ты проверял на древней картошке? Какие цифры получил?
Аноним 06/10/23 Птн 20:36:35 905454 313
>>905452
> скилл это сцена
Просто покажи мне это. покажи скринами код и иерархию сцены. Я просто не могу себе представить ЗАЧЕМ???
Аноним 06/10/23 Птн 20:37:31 905455 314
>>905454
Например спецэффекты
Аноним 06/10/23 Птн 20:39:40 905458 315
>>905455
В основной сцене, локации/мира и т.п. должен быть скрипт, который принимает сигналы/запросы на добавление спецэффектов в требуемых координатах. Скиллы должны уметь посылать такой запрос. И всё.

Продолжаю не понимать.
Аноним 06/10/23 Птн 20:44:42 905462 316
>>905453
Пока что фпс высокий, а загрузка системы низкая, но насмотревшись на игры, где лагать может даже менюшка, то хочется, чтоб у собственной игры так не было

>>905454
В зависимости от скилла в ноде содержатся animation player, tween, sprite, particles2D
Аноним 06/10/23 Птн 20:50:30 905465 317
>>905436
У меня примерно похожая система, только не пошаг, а платформер. Персонаж театрстейт-машина, а ноды в нём - актёрыстейты. Опрашивается это всё в физикс_процессе. Работает нормально на слабом железе, в том числе и на морально устаревшем андроидофоне.
И да, очень удобно в такие скиллы-сцены добавлять всякие штуки типа партиклей, рейкастов и вообще всего такого, что им может понадобиться. Мне кажется, это очень годошный подход. Да, нода в памяти занимает чуть больше места, чем ресурс; но зато у неё есть колбэки, которые можно быстро задействовать (а если не задействовать, то их как будто и нет) и все плюшки нод вообще.
Аноним 06/10/23 Птн 20:57:15 905466 318
>>905465
>>905462
Ладно, делайте как хотите. Но вы мешаете данные и логику. Вы не видите разницы между скиллами как данными и скиллами как эффектами, которые они порождают при их применении. Я напоследок предупреждаю, что такой "удобный" подход вероятно приведет вас к производственному аду. Засим умолкаю.
Аноним 06/10/23 Птн 21:02:04 905469 319
>>905465
Мне самому показалось это очень удобным и, пока что, на практике тоже, но вот я не знаю будут ли проблемы с количеством этих самых нод.

>>905466
>данные и логику
Данные о скиллах, вроде расхода маны, цены и т.д лежат в словаре, а логика в скрипте ноды. Где тут смешивание? Или что ты под этим имеешь ввиду?
Аноним 06/10/23 Птн 21:03:51 905470 320
1696615431688.png 41Кб, 728x265
728x265
Переводчик кросаучег.
Аноним 06/10/23 Птн 21:06:56 905471 321
>>905462
До тех пор, пока у тебя не пара тысяч персонажей, в каждом по два десятка нод-скиллов, движок прекрасно вывезет из обработку в реалтайме. В пошаге - умножай на 10.
ФПС, как я заметил, просаживается от большого числа графических объектов. И сложная физика тоже может съедать фепесы. А, и, конечно, вот такие советы:
>>905458
>сигналы/запросы на добавление спецэффектов в требуемых координатах
Нода, висящая в дереве, сама по себе почти не потребляет вычислительные ресурсы. Партикля, которая время от времени включается, гораздо производительнее, чем партикля, которая добавляется в дерево, отрабатывает и удаляется. И вообще, это чревато утечками памяти.
>>905466
1. Производственный ад в соло-разработке? Ну да.
2. Я без проблем могу описывать персонажа в жсоне, а потом собирать его из нод, парся жсон. Например. Используя ресурсы вместо нод, я не выигрываю ничего, но теряю в гибкости.
3. А файл tscn это данные или логика, по-твоему? А скрипт, всё содержимое которого это просто один большой словарь, это данные или логика?
Ну то есть, сам поинт понятен, разделять действительно следует. Но это не тот случай, как по мне. Движок даёт удобные средства, и я не вижу причин ими не пользоваться.
Аноним 06/10/23 Птн 21:12:40 905474 322
>>905471
>До тех пор, пока у тебя не пара тысяч персонажей, в каждом по два десятка нод-скиллов, движок прекрасно вывезет из обработку в реалтайме. В пошаге - умножай на 10.
Спасибо за ответ, если вывезет, то прекрасно. На уровнях, которые уже есть, максимум 40 персонажей есть.
Аноним 07/10/23 Суб 00:37:24 905503 323
>>905387
>Суть в том, что корректный жсон поддерживается гдскриптом искаропки
У тебя и будет 100% корректный JSON на выходе, без необходимости подсчитывать скобки, кавычки и запятые. А в исходниках даже комментарии будут!
>а для некорректного придётся парсер писать.
Зачем писать, если всё давно написано?
https://hjson.github.io/users.html
>To use Hjson with an application that does not support Hjson (yet) but has JSON configs:
>Convert your existing config to Hjson (do this only once)
>run: hjson CONFIG.json > CONFIG.hjson
>Edit your config
>Whenever you make changes in CONFIG.hjson you need to update CONFIG.json.
>run: hjson -j CONFIG.hjson > CONFIG.json
А можно сделать себе сборочку Godot + Hjson...

>>905392
>{"Хз":"как","можно":"писать","не":"на","json":"."}
Пофиксил тебя.

>Есть миллиарды инструментов
>Зато костыли никакие не нужны
Ты не понимаешь, что эти инструменты - костыли?
Я просто предлагаю лучший из всех этих костылей.
Аноним 07/10/23 Суб 00:49:09 905504 324
>>905221
>>905503
Какая разница в каком формате хранить, если все равно придешь к написанию редактора диалогов?
Аноним 07/10/23 Суб 00:49:30 905505 325
Аноним 07/10/23 Суб 00:53:11 905506 326
>>905504
>придешь к написанию редактора диалогов
А зачем? Это как визуальный язык вместо обычного текстового - вечно суют куда попало, а на практике написать несколько строк текстом всё равно проще.
Аноним 07/10/23 Суб 01:10:00 905508 327
>>905466
>Но вы мешаете данные и логику.
Это суть ООП: данные + логика = объекты.

>Вы не видите разницы между скиллами как данными и скиллами как эффектами, которые они порождают при их применении.
Не вижу. Если у мага навык позволяет стрелять огненными шарами, это то же самое, что оружие в шутере, только без явно видимого оружия в руках.

Если ты делаешь пистолет в шутере, ты сделаешь сцену pistol.tscn, в которой скрипт генерирует все пульки, рейкасты, вспышки света, дым и т.д.

Так и с навыками. Считай, это биомодификации.

>приведет вас к производственному аду
К аду приводят преждевременные оптимизации, когда такие как ты прибивают гвоздями что-то к чему-то, а потом пистолет не пистолет и пульки из жопы вылетают, а не с кончика ствола.

Оптимизация - это всегда жертва чем-то. В данном случае в жертву приносится удобство разработки - вместо простого и понятного пистолета, который одинаково надёжно стреляет, где бы ни оказался, предлагается накрутить какую-то оптимизацию...
Аноним 07/10/23 Суб 01:35:50 905512 328
>>905506
Потому что графы, стейтмашины, последовательности событий, квесты, диалоги как подмножество, удобнее редактировать лапшой.
Проблема в переносимости кастомных форматов лапши.
Тут мог бы помочь какой то фокус с спец текстовым форматом, изменения в котором подхватывались бы в визуальном, и редактирование визуала вносило строчки в текст.
Аноним 07/10/23 Суб 01:40:20 905514 329
1696631977995.jpg 12Кб, 267x189
267x189
>>905508
Ты прибил пистолет к волшебнику и лишил себя возможности сделать скилл, когда волшебник призывает несколько пистолетов в воздухе, стреляющих по разным целям.
Аноним 07/10/23 Суб 10:56:58 905535 330
23101153473.png 9Кб, 253x208
253x208
Дарова, годаны, щас занят воссозданием одной игори, появилась нужда сделать drag&drop систему, суть в чём:
Есть несколько перетаскиваемых объектов которые можно кинуть в одну зону, они в зависимости от типа увеличат нужную переменную на 1 и вернутся на место.
Соприкосновение с зоной находить я научился, но не могу понять как можно отловить когда объект не держат, за основу брал код из какого-то пиндосского гайда+писал наспех, поэтому не бейте. https://pastebin.com/9iVGjPii
Аноним 07/10/23 Суб 11:08:06 905537 331
>>905535
Так, похоже сам нашёл проблему, selected всё ещё true когда вызывается area_entered, похоже просто нужно завести какую-то переменную для соприкосновения и перевести всё в процесс-функции, звиняюсь за мудозвонство и спам-постинг.
Аноним 07/10/23 Суб 12:00:19 905545 332
>>905503
> run: hjson CONFIG.json > CONFIG.hjson
Хмм... Почти убедительно, кроме небольшой детали. Ровно то же самое я могу делать в редакторе, только вместо консольной команды, у меня возможность прямо в скрипте описать словарь в джавовском стиле:
>var config = {
>>key1 = 123,
>>key2 = {
>>>key_x = 12,
>>>key_y = 24
>>}
>>key3 = SomeNode.SomeValue
>}
Так кроме того, я могу привязать часть значений прямо к внутриигровым переменным. Затем одной строчкой я получаю жсон-строку на сохранение или передачу. От забытых запятых меня защитит встроенная проверка синтаксиса. Если мне нужны ключи в виде цифр или ключевых слов, то описываю словарь в стиле словаря.
>var config = {
>>"321" : 123,
>>"onready" : {
>>>"tool" : 12,
>>>"signal" : 24
>>}
>>"func" : SomeNode.SomeValue
>}
Аноним 07/10/23 Суб 12:21:17 905546 333
1696670476731.webp 37Кб, 1309x696
1309x696
1696670476731.jpg 183Кб, 520x364
520x364
1696670477053.png 21Кб, 416x349
416x349
>>905512
> удобнее редактировать лапшой
Создатель Dialogic предоставил еще более удобное редактирование - ивентщитом, так же известным как скретч. Это когда поток логики пишется сверху вниз специальными стыкующимися блоками, при этом есть блок-область, так же известный как С-блок, в который вкладываются другие блоки слева-направо.

Узнали? Согласны?
Аноним 07/10/23 Суб 13:19:43 905553 334
ones2.png 212Кб, 802x771
802x771
>>905546
Есть лучше вариант. Внедряем в годот программирование с помощью машины Тьюринга.
Аноним 07/10/23 Суб 13:30:57 905554 335
>>905546
Такой блочный подход в рпг мейкер используется. Жутко неудобная штука для больших, разветвленных диалогов
Аноним 07/10/23 Суб 13:49:38 905557 336
>>905537
Всё норм. Иногда нужно запостить проблему, чтобы её самостоятельно решить. Сам такой же.

>>905514
Нихуя вообще. Если пистолет это нода, то ему плевать вообще, в руках он или в воздухе. Он же сам стреляет. Просто делаем скилл, в котором несколько пистолетов, например.

>влом линкать все посты с обуждением форматов хранения данных
Эх, годаны. Сразу видно - у вас луа нормального не было. Луашники ВСЁ хранят в луа. Скрипты на луа, конечно. Конфиги - тоже луа. Всякие там сцены или что-то типа того - на луа. И им абсолютно норм. Если бы в Годо был луа вместо гдскрипта, то гарантирую - все tscn и tres файлы были бы написаны на луа. Я уверен, дай луашникам такую возможность, они бы и графику хранили в луа.
Суть-то в чём. Разделение данных и логики - оно в голове программиста, а не в системах. Если у меня пачка файлов, одни из которых скрипты, а другие данные, я могу просто положить одни в папку scripts, а другие в папку data, и всё! Я разделиль. В соло или в очень маленькой команде этого будет достаточно. Все пляски с построением уровня абстракции между логикой и данными начинаются тогда, когда это разделение надо расшарить между несколькими кодерами, причём с рассчётом на некоторую текучку кадров. Тогда и желательно строить и сллой абстракции от движка, на всякий случай. Но если я в солямбу пилю условный проект на итч - мне эти все пляски не нужны. Для такого следует использовать по максимуму встроенные средства движка.
Я кончил.
Помогите Аноним 07/10/23 Суб 16:33:43 905582 337
error.PNG 16Кб, 880x591
880x591
plugin.PNG 38Кб, 1117x559
1117x559
Хочу выложить игрушку в Яндекс, но когда на движке Godot 4.1.1 stable экспортирую проект и запускаю файл index.html, у меня возникает ошибка пикрил 1. Пробовал установить плагин пикрил 2, не помогло. В Ютубе видел ролик, где человек заливал проект на itch io, но там была возможность включить SharedArrayBuffer и Cross Origin Isolation, но в Яндексе так сделать вряд-ли получится, поскольку там можно только просто загрузить зип-файл с файлами игры. В редакторе всё работает. Объясните, что нужно сделать для запуска в браузере?
Аноним 07/10/23 Суб 16:34:51 905583 338
>>905582
Забыл упомянуть, что в настройках проекта плагин включил и затем экспортировал.
Аноним 07/10/23 Суб 17:08:50 905587 339
>>905582
Я тебе его вроде и предлагал попробовать, там и дальнейшие шаги были - просить техсаппорт включить на сервере или перекатываться на 3
Аноним 07/10/23 Суб 17:09:00 905588 340
>>905582
Да, тебе нужна галка shared buffer array. Она должна быть на платформе, на которую заливаешь. Если у яндекса нет, то он хуй.

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

Про плагины не знаю.
Аноним 07/10/23 Суб 17:17:19 905589 341
Screenshot22.png 104Кб, 838x606
838x606
Screenshot23.png 21Кб, 765x110
765x110
Screenshot24.png 146Кб, 774x690
774x690
>>905232
Я убил пол дня, но сделал супер примитивную систему диалогов. В начале не знал что такое словари, массивы и тем более синглтоны, но по документации и гайдам чуть чуть разобрался. Подгрузку файлов диалогов я откровенно не осилил, поэтому вписал диалог прямо в скрипт нпс. Система поддерживает максимум 2 говорящих, никаких условий, выборов и прочего нет. Но я добился того, чего хотел: оно хотя бы работает, по ентеру следующая реплика, пауза во время диалога. Еще хочу добавить подгрузку спрайта под говорящего и забить пока хуй и заняться другими аспектами, а то заебали меня эти диалоги.
Аноним 07/10/23 Суб 17:17:34 905590 342
>>905587
Спасибо, уже перекатываюсь на гд3

>>905588
Спасибо
Аноним 07/10/23 Суб 17:38:27 905593 343
image.png 24Кб, 765x110
765x110
>>905589
Наес диалоги, лол.
Аноним 07/10/23 Суб 17:44:18 905595 344
Аноним 07/10/23 Суб 18:06:12 905601 345
Аноним 07/10/23 Суб 18:07:55 905602 346
>>905554
> Жутко неудобная штука для больших, разветвленных диалогов
Приведи пример. На Диалоджике. В чём неудобство?
Аноним 07/10/23 Суб 18:10:01 905605 347
>>905557
> Если бы в Годо был луа вместо гдскрипта
Есть же. И где твои игры?
https://github.com/gilzoide/godot-lua-pluginscript
Он так всем нужен, как я погляжу, что его до сих пор на 4.х не портировали.
Аноним 07/10/23 Суб 18:13:17 905606 348
>>905589
Ужас. Кошмар. Впрочем, делай дальше.
Аноним 07/10/23 Суб 18:15:47 905607 349
>>905602
Не пользовался диалоджик, но выглядит так, что так очень геморно будет прыгать из одной ветки в другую и создавать альтернативные пути развития в зависимости от провала/успеха скиллчека, пола персонажа и т.д
Аноним 07/10/23 Суб 18:24:11 905610 350
1696692252329.png 24Кб, 591x489
591x489
>>905607
> но выглядит так, что так очень геморно будет
Ничего подобного.
Аноним 07/10/23 Суб 18:25:51 905612 351
1696692352279.png 10Кб, 674x421
674x421
1696692352605.png 7Кб, 648x235
648x235
1696692352606.png 7Кб, 635x227
635x227
1696692352606.png 5Кб, 637x226
637x226
Аноним 07/10/23 Суб 18:28:32 905614 352
>>905610
А это тут к чему? Прямой, как палка, диалог он вывезет, ясно дело, и легко. Я про тот вариант, когда ты идешь по одной ветке диалогов и надо переключиться на другую.
Аноним 07/10/23 Суб 18:32:31 905617 353
1696692752156.png 59Кб, 967x844
967x844
Аноним 07/10/23 Суб 18:34:16 905618 354
1696692856714.png 11Кб, 619x368
619x368
1696692857051.png 8Кб, 634x218
634x218
1696692857052.png 6Кб, 616x213
616x213
1696692857052.png 7Кб, 625x207
625x207
1696692857053.png 6Кб, 616x208
616x208
Аноним 07/10/23 Суб 18:35:43 905619 355
1696692944237.png 11Кб, 610x370
610x370
1696692944564.png 5Кб, 607x213
607x213
1696692944574.png 6Кб, 613x205
613x205
1696692944575.png 6Кб, 626x217
626x217
1696692944575.png 5Кб, 595x211
595x211
Аноним 07/10/23 Суб 18:38:31 905620 356
1696693112136.png 1Кб, 183x38
183x38
>>905614
> надо переключиться на другую
Аноним 07/10/23 Суб 18:42:25 905621 357
123.png 102Кб, 1075x691
1075x691
>>905617
Я про такие переходы. Когда из пойти в кино можно вырулить на "я б вдул".
Аноним 07/10/23 Суб 18:45:11 905624 358
>>905620
И вот про это я говорю. Пипец неудобно. Чтоб отследить куда ты прыгнул нужно искать лейбел, вместо простой и понятной связи.
Аноним 07/10/23 Суб 19:09:20 905626 359
>>905624
Ладно бы просто неудобно. Я щас попытался твой скрин в диаложэике написать и обломался. Там ярлыки не работают. Бета версия, хуле. Либо я тупоя и не понял великий замысел копполы эмилио Такшта, да. Либо ждать, либо своё пилить.
Аноним 07/10/23 Суб 19:13:34 905628 360
>>905624
> нужно искать лейбел, вместо простой и понятной связи
И кстати, если у тебя аналогичная твоему скрину лапша будет простираться на три экрана вправо и на десять экранов вниз, ты тоже заебёшься искать "простую и понятную связь".
Аноним 07/10/23 Суб 19:16:51 905629 361
>>905626
Вот я и решил, что лучше запилить своё. Мне и лапша кажется удобнее и поддерживаю я сам, а не жду, пока разработчик снизойдет.

>>905628
Тут я могу сделать одну из двух вещей: 1) Уменьшу размер окна и пройду по линии. 2) Кликну на линию и перемещусь к месту, куда она ведет.
Аноним 07/10/23 Суб 19:37:12 905633 362
>>905628
Неа. Это делается одним широким движением (колесико для зумаута, проследить мышкой путь, колесиком зум ин)
Аноним 07/10/23 Суб 19:39:58 905634 363
1696696798616.png 115Кб, 1537x757
1537x757
Аноним 07/10/23 Суб 19:47:19 905635 364
1696697240210.png 60Кб, 772x794
772x794
>>905634
И опять же главный минус современной лапши, она движется слева направо, хотя у тебя в блок схеме >>905621 прописано движение сверху вниз. Это главная проблема всей лапши от анриала, до блендера, годота, и т.п.
Почему-то среди разрабов утвердилось ошибочное мнение, что направлять поток логики справа-налево лучше, чем двигать его адаптивно. Никто из тех кого я видел, не пытается делать адаптивную лапшу. Если второй блок снизу - линия проводится вниз. Если второй блок слева, линия проводится влево. Нет. Линия выходных пинов жёстко прибита гвоздями к левой границе блока.

Смотри как уёбищно:
Аноним 07/10/23 Суб 19:53:26 905637 365
>>905635
Сам не понимаю такого подхода. У меня, вообще, линии выходят из центра блока потому их, думаю, можно назвать адативными. Но мне удобнее всего строить сверху вниз
Аноним 07/10/23 Суб 20:07:21 905638 366
>>905637
> У меня
Ну ты это где нарисовал? Пейнт? Фотошоп? Это понятно, нарисовать можно как угодно, но это останется рисунком. Проблема в том, чтобы рисунок грамотно воспроизвести в программной среде. Чтобы не потерять суть. А с этим-то как раз в 2к23 проблемы.
Аноним 07/10/23 Суб 20:09:46 905639 367
>>905635
Я как-то набрасывал концепт нод-ориентированной-граф-лапши, у которой адаптивные входные и выходные пины ездят по границам блока вслед за линией. Но. Лень матушка. Эххх.
Аноним 07/10/23 Суб 20:11:33 905641 368
>>905638
Это редактор диалогов, который я написал для своей игры. Написал на годоте, кстати
Аноним 07/10/23 Суб 20:20:12 905643 369
>>905641
Подожди. Ты другой анон. С предыдущим аноном я беседовал, который годот позавчера установил и ни черта не шарил.

А на твой редактор я бы взглянул. Скинешь сорцы?
Аноним 07/10/23 Суб 20:22:39 905644 370
>>905637
> можно назвать адативными
АдаПтивными.
Проверочное слово - адаптация.
Аноним 07/10/23 Суб 22:00:05 905656 371
>>905643
Я б скинул, но я черт знает куда залить, чтоб нельзя было сдеанонить меня да, я капец мнительный

>>905644
Забавная очепятка получилась
Аноним 07/10/23 Суб 23:23:22 905665 372
>>905605
>И где твои игры?
Прямо сейчас готовлю к релизу на ЯИ и пытаюсь вкурить, как правильно подключить переключение в фуллскрин через сдк, ибо жабаскрипта я не знаю.

А луа на Годо действительно не нужен. Там нет полноценного ООП, можно разве что собрать костыльно-велоипедный аналог. Как бы я ни любил луа, но конкретно тут он не нужен. Гдскрипт умеет всё то же самое, но лучше. Разве что в тройке немножко не хватает типа callable.
Касательно приведённой тобой ссылки. Там нет поддержки луа 5.2+, но это терпимо. Главное - там нет поддержки дебажных коллбэков. Исполнение останавливается из-за ошибки, но что за ошибка и в каком месте кода - гадай сам. Это пиздец, так работать невозможно.
Аноним 08/10/23 Вск 00:57:53 905673 373
>>905656
> куда залить, чтоб нельзя было сдеанонить
В топ-5 конкурентов anonfiles.com, по данным на сентябрь 2023, входят gofile.io, mega.nz, mediafire.com, 1fichier.com и другие сайты.

Пакуешь в архив с паролем. Пароль - стандартный. 2ch Архив на любой бесплатный файлообменник. Ссылку сюда.
Аноним 08/10/23 Вск 01:18:05 905674 374
>>905545
>Почти убедительно, кроме небольшой детали. Ровно то же самое я могу делать в редакторе
>>var config = {
>>>key1 = 123,
>>>key2 = {
При чём тут GDScript? Речь шла про скрипты для сценариста/писателя, который будет их тебе писать.

Это просто дополнительный слой абстракции.
Аноним 08/10/23 Вск 01:25:00 905675 375
>>905665
Мне зашла система типажей раста (которая не растом придумана, офк). Уже джва месяца восхищаюсь этой идеей. Это ж как охуенно придумали, и почему я раньше об этом не узнал?

И главное, я размышлял, вот есть структы и классы, но зачем? Вот были бы только структы, а вместо классов интерфейсы, в которых объявляются методы, а потом ты пишешь что-то типа
> var foo = new IMyInterface<MyStruct>(); #псевдошарп
то есть, чтобы к интерфейсу с методами при создании инстанса биндился подходящий структ. Но никто мне не подсказал. На раст и на системы типажей (трейтов) я наткнулся случайно, гугля совершенно другое.
Аноним 08/10/23 Вск 01:36:08 905677 376
>>905675
Вроде они это из Го спиздили. Когда Го учил натолкнулся на это и тоже впечатлился, просто свежий воздух после душных классов плюсов/сисярпа.
Аноним 08/10/23 Вск 02:54:29 905679 377
falco love story.png 57Кб, 422x1785
422x1785
Аноним 08/10/23 Вск 09:29:43 905694 378
>>905679
Не бывает лучшего. Бывает лишь подходящее тебе.
Аноним 08/10/23 Вск 09:49:37 905697 379
>>905674
Хорошая, годная утилита. Всем рекомендую.
Аноним 08/10/23 Вск 16:22:36 905767 380
>>905679
Тем, что у тебя вообще невозможно проследить возможные пути.
Аноним 08/10/23 Вск 17:32:28 905778 381
graph.png 59Кб, 422x1785
422x1785
>>905694
>Бывает лишь подходящее тебе
Так можно любое обсуждение прервать.

>>905697
>Хорошая, годная утилита
Не понял, ты про Hjson?

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

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

Написание интерактивных историй по сути не отличается от процедурного программирования: линейный код = линейная история, if/match = развилки, for/while = повторы, процедуры = странички/реплики. В коде визуализации не нужны, так зачем визуализация интерактивных историй?

Отдельный скриптовый язык нужен только как абстракция над конкретным движком, т.е. вот такой скрипт на скриншоте будет легче перенести на другой движок и легче его составлять, не задумываясь о нюансах реализации (как движок будет рендерить сцены, как он будет запрашивать ввод у игрока и т.д.). А так, хоть на ассемблере пиши интерактивные истории, суть не изменится, только портировать будет намного сложнее.
Аноним 08/10/23 Вск 18:31:42 905790 382
mermaid graph.png 15Кб, 512x643
512x643
>>905778
>сложнее, чем я предполагал
Ладно, это из-за того, что я от руки рисовал.
>автоматически генерировать
Вот, например: https://mermaid.js.org/
Можно подключить аддоном к TiddlyWiki, чтобы совместить с вики-диздоком игры:
https://github.com/efurlanm/mermaid-tw5

Но всё равно... В чём польза? Смотря на этот граф, можно представить себе обычную программу с несколькими if-else и одним большим циклом while true. Не вижу пользы от такого рода визуализаций, если пишешь историю сам. Может быть, для командной работы оно бы имело какой-то смысл, типа, видеть кто сколько лапши на вилки накрутить успел, или чтобы похвастаться своей лапшой перед товарищами. Но командная писанина - это уже совершенно отдельная тема.

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

Большое преимущество набора текста в том, что можно печатать в любом, даже самом примитивном редакторе текста, на любом устройстве. Те же аддоны для Godot требуют сам Godot, верно? А текстовый файл ты можешь на ходу печатать без Godot. Потом скинешь на компьютер и, если очень сильно надо, сделаешь визуализацию или конвертацию в другой формат. Но чтобы это было удобно, формат записи должен быть удобен для ручной записи, никакого XML с его тегами, GDScript с кучей длинных имён функций и т.п. - т.е. нужен свой формат/язык.
Аноним 08/10/23 Вск 18:33:59 905792 383
>>905790
так это нам кодерам, сценаристам проще таскать полотно с нодами графа, колесиком масштабировать и мышкой тыкоть в нужные поля для заполнения
Аноним 08/10/23 Вск 18:51:03 905796 384
1650025689190.png 3Кб, 60x59
60x59
1552464237600.png 11Кб, 83x174
83x174
>>905790
Сходу сразу видно два преимущества
1. Видно сколько и откуда ВХОДИТ в ноду. Изначальный текст явно описывает только выходы.
2. Видны обходные пути целиком. В исходном тексте видно только выходы, чтобы узнать, что они сойдутся, надо скакать по всему файлу.
Аноним 08/10/23 Вск 18:52:40 905797 385
>>905778
В коде есть удобные инструменты, такие как вынос в функцию или инкапсуляция в объект. Тогда ифы остаются компактными. Еще есть сворачивание блоков кода в ide. Но такой блок не свернуть, вернее он свернется целиком, и информации о связях скроются.
Аноним 08/10/23 Вск 23:12:14 905859 386
>>905635
>Почему-то
это из-за широкоформатных мониторов
Аноним 08/10/23 Вск 23:23:03 905862 387
Хочу сделать игру суть такова, смесь ангри бердс, флаппи берд, зельды и принца персии. Подводные?
Аноним 08/10/23 Вск 23:23:41 905863 388
>>905862
> Подводные?
Твоя прокрастинация и лень.
Аноним 08/10/23 Вск 23:48:25 905871 389
>>905862
Украл идею для джема
Аноним 08/10/23 Вск 23:52:55 905873 390
>>905871
Откат время аля ПП я уже сделал. Так что откатил тебя.
Аноним 08/10/23 Вск 23:56:36 905874 391
>>905873
Откат у меня сделан несколько лет назад, откатил твой откат
Аноним 08/10/23 Вск 23:58:47 905878 392
Сукаблять ёбаный встроенный браузер файлов.
Случайно неловким движением тачпада перетащил папку scenes в другое место, и это хуйня не только не спросила, хочу ли я вообще это делать, так она мне перелопатила зависимости сцен под это перемещение, сохранила проект и отказалась делать ctrl+z; но по опончании перемещения всё-таки выругалась, что что-то там не может сохранить. А при обратном перемещении пересохранила часть, но не пересохранила другую. Ну и конечно же последний бэкап я делал давно, потому что ну что может пойти не так?
Спрашивается: какого хуя перед таким массивным изменением, которое можно сделать абсолютно случайно одним движением пальца, не вылезает какого-то предупредительного окошка?
Аноним 09/10/23 Пнд 00:18:31 905884 393
>>905878
Сочуствую. Как говорится, есть те, кто не делают бэкапов, те. кто уже делает, и те, кто делают их регулярно, а еще проверяют восстанавливаемость. Что же касается твоей претензии, хз как это можно разрулить. Можно попробовать написать аддон который будет блочить операции над файлами, или патч в сам редактор.
Аноним 09/10/23 Пнд 00:20:48 905887 394
>>905878
>тачпада
Сочувствую, братишка.
Аноним 09/10/23 Пнд 01:41:13 905906 395
16534912872130.jpg 142Кб, 1280x1043
1280x1043
>>905878
>Ну и конечно же последний бэкап я делал давно, потому что ну что может пойти не так?
Вот почему надо вести свой проект в git даже если ты работаешь один, и рубить изменения на небольшие коммиты.
Аноним 09/10/23 Пнд 01:44:14 905907 396
>>905906
От того что ты в гит переедешь дисциплина не появится. Раньше бекапы не делал, теперь коммитить не будешь. А когда завалишься с конфликтующими изменениями - вообще забьешь.
Аноним 09/10/23 Пнд 01:49:09 905908 397
>>905907
Работаю с гитом больше 5 лет со своими и чужими проектами, хз. Наверное то что я начинал вообще с проектов в опенсурсе меня многому научило.

А так skill issue.
Аноним 09/10/23 Пнд 02:18:23 905909 398
>>905907
Автоматизируетя.
Аноним 09/10/23 Пнд 02:20:28 905910 399
>>905906
А какая разница, гит или зип, если "ладно, потом забэкаплю"?

>>905884
Меня удивляет другое. Схуяли всё сохраняется без явной на то команды? Почему бы перед таким изменением не высветить хотя бы "Для продолжения потребуется сохранить проект и все открытые сцены. [Продолжить][отмена]".

>>905887
А что в тачпаде не так? Сижу с ноутом в кресле, обложившись подушками. Удобно. Мышь в таком положении не подключить.
Аноним 09/10/23 Пнд 03:07:46 905911 400
image.png 45Кб, 1280x535
1280x535
>>905910
>А какая разница, гит или зип, если "ладно, потом забэкаплю"?
Потому что это система контроля версий, адекватная и проверенная.

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

Гит это не единственная система контроля версий, но самая популярная. Пиздуйте знакомится чтоб не быть как вон тот анон >>905878 благо там за пару часов разобраться можно.

Из клиентов для начала есть базовый клиент Гитхаба, но он трехкнопочный и мало что может. Впрочем для работы в соляну самое то, нахуя тебе конфликты мержа вообще резолвить если ты делаешь все в одной ветке скорее всего. Тупо сри малыми порциями в мастер/мейн.
Аноним 09/10/23 Пнд 03:11:18 905912 401
Алсо никогда не используйте Гит Кракен, это параша у меня уже три раза ветки ломала, и у знакомых тоже.
Аноним 09/10/23 Пнд 04:44:35 905915 402
2Д.

Вырезаю текстуру из атласа, накладываю на нее шейдер аутлайна.

В этой ситуации шейдится весь атлас целиком, как я понял? Он довольно большой, наверняка жрет немало.

Я бы хотел шейдить только отдельные куски, как этого добиться?
Аноним 09/10/23 Пнд 04:54:19 905916 403
>>905911
Git похож на c++. Или на ffmpeg. Пока пользуешься им в поверхностном режиме, ну там только clone или только add/commit то все хорошо. Как только что-то сложнее такие танцы с бубном начинаются. То HEAD куда то слетит то не дает ничего делать ругаясь на какие-нибудь конфликты. Помню, даже отказаться от несохраненных изменений сложнее, чем сохранить их и откатить. Вырезать предпоследнее изменение тоже был веселый квест.
Но вот самая жесть была когда я попробовал впервые за 3 года разрабатывать как у серьезных людей, с фиче-ветками. Создал я ветку на фичу, что-то дописал, а потом увидел пару косяков в другом месте и походу исправил. Ну и результат понятен, фичеветка забивается нерелейтедом, а если переключиться то эти фиксы надо вспоминать и черрипикать. Ну в самом деле получается что мне исправление это пару кнопок за секунду нажать, но для этого надо по минуте между ветками переключаться.
Аноним 09/10/23 Пнд 05:01:35 905917 404
>>905916
или сливаешь две ветки в одну, а потом приходит пиздец
Аноним 09/10/23 Пнд 05:02:09 905918 405
>>905916
>Как только что-то сложнее такие танцы с бубном начинаются.
Простейшие конфликты резолвятся без проблем если делать мерж через гит клиент, регулярно делаю это сам на работе. Просто через IDE смотреть где насрано и вилкой чистить каждый раз, а гит клиент потом тебе соберет мерж коммит.

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

У тебя должна быть одна ветка dev в которую ты стабильно льешь все говно, и ты мержишь её в свои фичеветки. Чтобы служить как раз таки центром для всех этих фиксов. Гит он не для того чтобы делать разветвления и сидеть на разных ветках месяцами, отличия накапливаются и их нужно регулярно резолвить.

Но опять же, солодевелоперу это нахуй не нужно. Тупо ветка для работы и ветка для релизов, dev и main, так и сидишь.
Аноним 09/10/23 Пнд 06:01:02 905921 406
>>905911
/r/ мастер-класс по гиту. Моё взаимодействие с ним ограничивается заливкой кода через веб-морду, чтобы этот код заопенсурсить. Пытался по гайдам в более сложные взаимодействия - не понял, как и зачем. В итоге сломал об него зубы и забил.
Гит это профессиональный инструмент, которым при умелом использовании можно увеличить член, но при неумелом получится скорее его отстрелить. Как всякий профессиональный инструмент, он вываливает перед тобой весь свой функционал и предполагает, что ты знаешь, зачем это тебе нужно, в каких ситуациях и как этим всем пользоваться.

>>905915
Никак. Нет, серьёзно, я сталкивался буквально с этой же проблемой. При использовании атласов (спрайтшитов, текстур с кадрами анимаци и т.п.) шейдеру отдаётся весь атлас целиком, и это никак не изменить. Ты разве что можешь силами гдскрипта вырезать нужный тебе кусок, создать из него новую текстуру и скормить её шейдеру. Но выглядит не очень рационально.
Аноним 09/10/23 Пнд 09:11:05 905930 407
>>901894 (OP)
"Дизайн должен быть функциональным, а функциональность должна быть переведена в визуальную эстетику, без какой-либо зависимости от трюков, которые необходимо объяснять."
Аноним 09/10/23 Пнд 09:16:58 905934 408
>>905921
>не понял, как и зачем
Твой код - это многомерное фрактальное дерево правок и исправлений, реализующих полёт твоей мысли. Чтобы уместить это дерево в сколь бы то ни было удобоваримом виде, придуманы системы контроля версий. Ну и конечно же для коллаборации команд, у которых Лебедь кодит вверх, Рак кодит в сторону, Шука кодит вниз, а продукт должен работать.

Ты ничего не понял? Оттож.

От гита тебе на начальном этапе нужно выучить три команды:
1. Залогиниться в гит-хабе.
2. Отправить проект в репозиторий.
3. Скачать проект из репозитория.
Аноним 09/10/23 Пнд 13:15:15 905959 409
>>905921
Я надеюсь ты пробовал ставить любой ui гит клиент (соурстри всякие, форки и т.д.) или ты чисто с башем сидишь?

Если ставил, то я не понимаю что с тобой не так, там 3-4 кнопки жмешь и ещё столько же при черепиках, обновлении подмодулей и прочих не частых операциях

Если кто-то говорит, что только консоль тру, шли нахуй
Аноним 09/10/23 Пнд 13:41:46 905963 410
1595415156074.png 142Кб, 1045x725
1045x725
Гайды по гиту были в /pr
Для годота есть официальный гит плагин.
Есть подводный - если кликнуть на коммит с большим бинарным изменением, например импортом 3д уровня, можно надолго идти пить кофе.
Игры делайте
Аноним 09/10/23 Пнд 13:57:05 905966 411
Делаю игру. Экспортнул в свою игру первую полупрозрачную 3д модельку.
Аноним 09/10/23 Пнд 14:52:09 905975 412
>>905963
>коммит с большим бинарным изменением, например импортом 3д уровня
А зачем бинарные данные в гите? Они отдельно должны быть, разве нет? Максимум иконки, но не огромные файлы на несколько мегабайт данных...
Аноним 09/10/23 Пнд 15:14:47 905987 413
>>905878
>встроенный браузер файлов
Пользуюсь им только для составления новых сцен их сохранённых сцен. В остальном он не нужен. Перенос файлов осуществляю через проводник Windows.

Глючность встроенного менеджера файлов хорошо известна уже много лет. Ньюфаги охреневают, но на практике такие же проблемы что у Unity, что у UE. Рекомендуется вообще файлы проекта не двигать, чтобы не было таких последствий. В 4.0 начали реализовывать систему UID, но она тоже пока что (на момент 4.1) глючная и доставляет проблем, а главное - теперь вручную tscn сложнее фиксить.

>Случайно неловким движением тачпада
Рекомендую выключить жест "тап == клик" или "двойной так == захват для переноса", чтобы избегать подобных проблем. Пользуйся физической кнопкой для кликов, она должна быть жёсткой и поэтому не так сильно подвержена случайностям.

>Ну и конечно же последний бэкап я делал давно, потому что ну что может пойти не так?
Почему? Храни файлы данных в другом месте, а код всего проекта будет занимать очень мало места. Я настроил шорткаты, чтобы в два клика делать бекап.
Аноним 09/10/23 Пнд 15:24:48 905994 414
>>905878
>перед таким массивным изменением, которое можно сделать абсолютно случайно одним движением пальца, не вылезает какого-то предупредительного окошка
Потому что в идеале это массивное изменение не должно приводить к каким-либо негативным последствиям. То есть, если бы всё работало без ошибок, случайный перенос можно было бы вернуть обратно простым переносом файла. Беда в том, что какие-то скрытые ошибки ломают процесс переноса файлов, даже если ты всего один файл переносишь.

>>905910
>Схуяли всё сохраняется без явной на то команды? Почему бы перед таким изменением не высветить хотя бы "Для продолжения потребуется сохранить проект и все открытые сцены.
А что такого в сохранении? Меня больше удивляет, почему кто-то работает с проектом, ничего долго не сохраняя. Это же гарантированный путь к фейлу по множеству причин. В идеале проект и все файлы должны автоматически сохраняться на диск спустя несколько секунд после внесения изменений.

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

Если ты хочешь поработать над чем-то и затем это удалить, просто сделай копию файлов/проекта.
Аноним 09/10/23 Пнд 15:36:46 905999 415
>>905975
>А зачем бинарные данные в гите? Они отдельно должны быть, разве нет?
Ну тебе историю проекта как-то хранить надо же. Хз, у Юнити и гитом такая же трабла, всем похуй пока размер истории коммитов не превышает лимиты гитхаба. Тогда просто срезают историю.
Аноним 09/10/23 Пнд 15:40:24 906000 416
>>905911
>Я не знаю как вы тут вообще живете без гита
Нормально. Просто нужно следовать этому подходу:
https://ru.wikipedia.org/wiki/Итеративная_разработка
Тогда ты не будешь высирать 100500 строк кода без единого теста, а потом "ой, что-то не работает, но я понятия не имею, что". Очевидно, если ты высрал строчку кода и что-то сломал, виновата эта строчка, ведь все остальные части проекта тесты проходят.

Godot идеально подходит для этого. Ты разделяешь проект на множество независимых частей, каждая из которых способна существовать отдельно от других, и поэтому её можно разработать и протестировать независимо от остального проекта. У тебя нет шанса обосраться где-то и не заметить этого, а если ты даже обосрёшься, твой обсёр изолирован в небольшом фрагменте, без которого проект может работать.

>узнал в каком коммите ты насрал себе в штаны
Зачем делать коммит, если ты только что обосрался?

>другого человека на проект позвать
Чтобы он свои грязные ручонки в мой идеальный, красивый, любимый код совал? NO WAY!
Аноним 09/10/23 Пнд 15:48:07 906003 417
>>905999
>историю проекта как-то хранить
Зачем мне в истории проекта все обновления .blend весом несколько десятков мегабайт? Если нужны промежуточные версии .blend, я сохраню их отдельно от файлов/бэкапов/гита проекта.
Аноним 09/10/23 Пнд 16:11:35 906007 418
>>906003
>Зачем мне в истории проекта все обновления .blend весом несколько десятков мегабайт?
Ну так не лей в главную ветку свои промежуточные изменения, делай мерж с модельками сквошем (хотя это фича ГИТХАБА а не ГИТа, что важно) и удаляй ветку где ты перебирал варианты модельки.

>Зачем делать коммит, если ты только что обосрался?
Это порой можно понять только на тестах других людей 10 коммитов спустя.

Работал в геймдеве на нескольких кабанов в команде, имею опыт именно коллективной разработки больше чем у многих тут. При этом 99% времени в гите использую 3,5 кнопки, лишь в 1% требуется открыть консоль и выебнуться, и то исключительно из-за обсера коллектива.

В гите нет нихуя сложного и страшного. Хватит людей пугать, о ужас, десятком мегабайт в истории.
Аноним 09/10/23 Пнд 16:45:05 906018 419
image.png 896Кб, 600x585
600x585
Годаны у меня от гита стул взорвался, прямо подо мной. Вот пруф, я не троль.
Аноним 09/10/23 Пнд 16:51:01 906021 420
>>906007
>Хватит людей пугать
Я не пытаюсь никого напугать. Если убедишь, что гит жизненно необходим любому хелло ворлду, тогда я и сам буду его использовать. Пока что не убедил.

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

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

>10 коммитов спустя
У меня это будет 1.5 недели работы. Мне что, 1.5 недели удалить ради поиска бага, который никто кроме одного игрока не нашёл? Как я за 1.5 недели сам не заметил баг, а другой игрок нашёл, требуя откат всей моей работы почти на две недели?

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

Вот представим, я перепутал значение переменной и персонаж в игре улетает в небо с одного тычка, как мне гит поможет? Мне для исправления проблемы достаточно одну переменную поменять, зачем мне откатывать все файлы проекта, в которых могли быть сотни изменений после этой переменной? А главное, если я не знаю причину проблемы, как мне поможет откат всего проекта найти эту причину?
Аноним 09/10/23 Пнд 17:06:39 906031 421
>>906021
>Мне что, 1.5 недели удалить ради поиска бага
Наркоман. Тебе другое предлагается.

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

При том не надо сидеть пердеть и думать чтож там такое могло сломаться, это 100% рабочий способ исправлять любое сложное говно, который нужен в арсенале любого разраба.

Разумеется, большую часть времени баги очевидны и это делать не нужно. Но этот метод на случай когда тебе грозит 3-4 часа дебага туманного говна.
Аноним 09/10/23 Пнд 17:07:46 906032 422
>>906021
>Как я за 1.5 недели сам не заметил баг, а другой игрок нашёл, требуя откат всей моей работы почти на две недели?
Запросто если ты делаешь проект сложнее чем симулятор унитаза или визуальной новеллы про Семена в гулаге. Чем больше проект, тем больше такой хуйни лезет.
Аноним 09/10/23 Пнд 17:14:35 906036 423
16637475124480.jpg 226Кб, 720x720
720x720
А еще гит это просто хороший способ самодокументации проекта, строчка в резюме которая позволит найти работу в случае чего. А так же нативное понимание того как работать в сообществе разработчиков, что они делают, как они делают, и почему опенсурс очень часто кормит тебя говном с лопаты.

Не знать гита и быть программистом это все равно что не знать английского и быть программистом. Жить можно, но нахуй так жить?
Аноним 09/10/23 Пнд 17:16:21 906040 424
>>906018
>Пока это не влияет на всех и сразу, это, считай, не баг.
Проиграл с тебя
мимо-QA
>зачем мне откатывать все файлы проекта, в которых могли быть сотни изменений после этой переменной? А главное, если я не знаю причину проблемы, как мне поможет откат всего проекта найти эту причину?
Поможет если делаешь часто небольшие коммиты, а не всё сразу раз в месяц.
Аноним 09/10/23 Пнд 21:09:50 906176 425
>>906036
К сожалению да, это зафоршенная херота которую необходимо знать. Как маркдаун или cmake, притом что они крайне неудачные инструменты, но слишком популярные.
>>906007
>Хватит людей пугать
Гит работает хорошо, пока не косячнет или ты не косячнешь. А потом начинается не то что пугать, а натральный хоррор. Иногда проще было скопировать папку, руками сделать дифф всех файлов, и сделать новый коммит с готовых файлов.
Аноним 10/10/23 Втр 00:28:38 906208 426
image.png 3386Кб, 1920x1080
1920x1080
image.png 3730Кб, 1920x1080
1920x1080
А вы почему такое не делаете?
Аноним 10/10/23 Втр 00:32:34 906211 427
0,00000002.png 139Кб, 424x431
424x431
Аноним 10/10/23 Втр 00:40:25 906212 428
Аноним 10/10/23 Втр 00:54:01 906216 429
16968631222710.jpg 1495Кб, 2560x1600
2560x1600
16968653344940.png 1082Кб, 1366x768
1366x768
Оставлю этот артефакт здесь.
Можно ходить. Можно тыкать на объекты на кнопку E, сидеть на стуле. Можно разговаривать с персонажами и даже включить телевизор.
https://www.mediafire.com/file/24n6nxc6i24yf0r/WatermelonBarGame.zip/file

А вот тут исходники проекта в Годоте
https://www.mediafire.com/file/m7jb5i5043deewe/WatermelonBar.zip/file

Что б пост был не бесполезным, поделюсь проблемами, которые возникли с моим первым проектом на Годот.

1.На Леново Х230 разъёбывает скелеты персонажей.
Очень долго ходил вокруг этой проблемы. Пытался делать свой скелет в ручную, качал чужие с Миксамо. А оказалось что просто запускаешь проект на нормальном компе и там всё работает!
А вот на древней встройке нихуя. Не используйте скелеты на древних встройках на Годоте.

2.Годот предлагает три рендера. Для калькуляторов, для телефонов и для людей.
На рендере для калькуляторов у меня нормально работает телевизор. Показывает и видео и звук.
На рендере Форвард+ звук есть, а вот видеотекстура на кубике нихуя не кажет!

3.Если на одной модели у тебя два объекта и у каждой анимация, то их не получается проиграть одновременно.
Пример. Стоит Двач-тян, у неё в руках кружка. Кружка отдельн о и Двач-тян отдельно. И обе этих анимации не запускались одновременно.
Способ простой - пришить кружку к руке намертво, сделав её частью тела персонажа.
Способ сложный - сделать второй аниматор и во второй аниматор скопировать анимацию из первого, а в первом удалить.
Аноним 10/10/23 Втр 01:02:06 906218 430
Как можно реализовать настраиваемое управление?

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

Нажимаешь кнопку, эта нода смотрит на какое действие ты забиндил эту кнопку - например, нажимаешь W - идет сигнал ноде игрока чтобы подвинулась вперед немного.

Как идея?
Аноним 10/10/23 Втр 01:14:50 906220 431
>>906218
ты так гришь, будто в годоте нет встроенного ребиндинга, лул
Аноним 10/10/23 Втр 05:00:04 906234 432
>>906216
>А вот на древней встройке нихуя. Не используйте скелеты на древних встройках на Годоте.
Там сейчас вроде слой совместимости с говном мамонта пилят.

Модельки сам делал? В блендере? Не заебался столько моделить ради двачедемки? А вообще молодца.
Аноним 10/10/23 Втр 08:44:28 906240 433
>>906220
бля, действительно есть.

Я почему-то думал что это только в настройках проекта ставится.
Аноним 10/10/23 Втр 13:31:34 906311 434
MakeHuman-1.2.0[...].jpg 259Кб, 1708x1019
1708x1019
>>906234
>Модельки сам делал?
Да, все модельки делал сам, в блендере.

Кроме Чёрного Властелина и Двач-тян. Они были сгенерированы в Мейк Хюман.
Выбрал его как бесплатную свободную замену Метахьюману. Ну и, за бесплатно результат очевиден. Мейк Хьюману до Метахьюмана как до луны пешком.
Аноним 11/10/23 Срд 01:52:26 906460 435
>>905994
>А что такого в сохранении?
То, что я не хочу сохранять ЭТИ изменения. Я хочу их откатить взад. А они уже сохранились. Тащемта, я обычно сохраняюсь чуть ли не после каждого напечатанного слова. Но если что-то сделано случайно, так хотя бы не сохранять.
Аноним 11/10/23 Срд 04:35:27 906462 436
Делайте игры
Аноним 11/10/23 Срд 04:51:33 906463 437
1636514613346.png 365Кб, 685x692
685x692
>>906462
Сейчас прямо что ли?
Аноним 11/10/23 Срд 04:59:57 906464 438
>>906462
Сижу тестирую свою игру. А ты чего тут в это время?
Аноним 11/10/23 Срд 13:15:43 906505 439
>>906464
Экран тряс. С помощью твинеров (младших братьев твинов).
Аноним 11/10/23 Срд 14:05:48 906511 440
>>906462
Сегодня досматриваю сериал, потом запланировал просмотр трилогии одной, так что вряд ли получится раздуплиться, может завтра.
Аноним 11/10/23 Срд 15:43:15 906521 441
>>906218
Сначала читаем доки, если что непонятно, смотрим туториалы, а потом повторно читаем доки. И вот если после этого непонятно, тогда есть смысл вопрошать на форумах.
Аноним 11/10/23 Срд 15:45:36 906522 442
1697028329971.png 637Кб, 1175x779
1175x779
1697028330379.png 546Кб, 1308x764
1308x764
1697028330393.png 271Кб, 703x686
703x686
>>906311
> Мейк Хьюману до Метахьюмана как до луны пешком
Ну хз, в плане готовыг лицевых анимаций, наверное да. А в целом, вполне сносно моделирует, как по мне.
Аноним 11/10/23 Срд 17:07:50 906547 443
>>906521
Еще можно ассеты чекнуть. Штуки 2-3 с настройками кнопок игроком точно было. Хотя красивого не попадалось.
Аноним 11/10/23 Срд 19:11:29 906572 444
Геймдев - идеальный манямирочный эскапизм. Еще и денег на пивас поднять можно. Хоспаде, спасибо Хуану за Годотю.
Аноним 11/10/23 Срд 19:21:08 906574 445
Аноним 12/10/23 Чтв 16:08:51 906765 446
Fyjyfcs, здесь есть кто-нибудь, кто работает в какой-нибудь студии, где гадот используют? Можете рассказать как всё у вас там происходит?
Аноним 12/10/23 Чтв 16:18:17 906766 447
Screenshot26.png 80Кб, 976x561
976x561
Screenshot27.png 54Кб, 1009x424
1009x424
Помогите с сменой сцен. С офф документации взял код (пик 1) и через синглтон сделал менеджер сцен, все нормально работает, сцены переключает как надо.

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

Можно поправить логику в той строчке или надо все переделывать и объединять синглтоны?
Аноним 12/10/23 Чтв 16:52:56 906769 448
>>906765
Так же, как и в других студиях.
Аноним 12/10/23 Чтв 19:17:34 906801 449
>>906766
вроде как ты работаешь через индексы дочерних нод в этой строчке, лучше пока разбираешься так не делай, а присвой ноде с "картами" или что там меняется имя и она будет дочкой рута, потом сделай ноду для диалогов и ее тоже сделай дочкой рута
потом просто у ноды карты будешь удалять все старой и загружать в нее все новое и делать это по ее имени или ссылке
Аноним 12/10/23 Чтв 19:19:09 906803 450
>>906765
да, в ней
вопрос не понял
но у нас не только годот, есть даже юнька на старых проктах еще поддерживаем на ней, но новые уже не начинаем, дефолд тыкаем, какие-то свои либы пишем, а так основное сейчас годо
Аноним 12/10/23 Чтв 19:51:20 906815 451
image.png 1444Кб, 1280x720
1280x720
Аноним 12/10/23 Чтв 19:58:34 906818 452
>>906803
У тебя какая-то зарубежная компания или рф? Я просто думал пойти в геймдев на годоте, но хз что с вакансиями на нём
Аноним 12/10/23 Чтв 20:05:26 906820 453
>>906766
1. Прекращай писать транслитом, бесит. Если ты не знаешь каких-то слов, юзай словарь - прокачаешь инглиш заодно, он очень важен в айти и геймдеве.
2. Прекращай писать "if something == true:", я тебе уже объяснял, что это избыточно. Код должен читаться естественно, т.е. следующие записи идентичны:
>если диалог идёт, тогда возврат
>if dialogue_is_ongoing then exit; // Pascal
>if dialogue_is_ongoing: return # GDScript
3. Привыкай писать код без комментариев. Плох тот код, который приходится пояснять в комментариях. Для примера, change_scene_to(path: String) в заголовке явно указывает, что ждёт строку, поэтому лишнего пояснения про кавычки не нужно.
3.1. Комментарии для автоматического генератора документации пишутся в специальном формате:
https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_documentation_comments.html
4. Метод Object.free() не безопасный, т.к. он удаляет объект сразу. Напротив, Node.queue_free() ставит удаление ноды в очередь, и тогда она продолжит существовать вплоть до конца текущего кадра.

5. Синглтоны вообще рекомендую не использовать. Правильнее сказать, глобальные переменные, ведь Godot не гарантирует, что твоя глобальная сцена не будет создана повторно; он только создаёт ссылку, доступную глобально, а это очень плохо в плане архитектуры - проект превращается в лапшу.
5.1. С этим связана твоя проблема. Ты создал сразу две глобальных сущности и уже успел запутаться в их поведении, хотя они ничего толком не делают. Вот видишь, насколько всё плохо. Не надо так.

Повторюсь в который раз: лучше иметь главную сцену game.tscn и руководить всем сверху вниз (от главного скрипта game.gd), делая снизу вверх (от конкретных игровых объектов) только запросы (сигналы), чем накручивать клубок глобальной лапши, в котором вы быстро запутаетесь.

Глобальные сущности выглядят привлекательно только в самом начале. Потом начинается жесть.
Аноним 12/10/23 Чтв 21:12:02 906829 454
>>906765
юзаем годот, но совсем не геймдев
сейманы на месте? кроме серёги
Аноним 12/10/23 Чтв 21:45:28 906834 455
>>906820
> Повторюсь в который раз: лучше иметь главную сцену game.tscn и руководить всем сверху вниз (от главного скрипта game.gd), делая снизу вверх (от конкретных игровых объектов) только запросы (сигналы), чем накручивать клубок глобальной лапши, в котором вы быстро запутаетесь.

> Глобальные сущности выглядят привлекательно только в самом начале. Потом начинается жесть.

В годоте нет синглтонов. Каждая нода-автозагрузка с глобальным именем - это по сути ветка в дереве. Поэтому вышеописанный тобой совет реализуется через get_tree() или как вариант через get_node("/"), которое возвращает то же самое (get_root() аналогично get_node("/root")). Достаточно взглянуть на удалённо приаттаченное дерево при выполнении проекта, чтобы всё это увидеть и осознать. Поэтому "синглтоны" автозагрузки, это просто удобный способ добавить чайлды в "/root". Как ни крути, проект сложнее тетриса, будет обладать специфическими объектами в дереве. Обращаться к ним через имена в автозагрузках, или через главную сцену, как ты предлагаешь "/root/main_scene" - однохуйственно. Разницы нет. Истинная инкапсуляция делается через сигналы. Тольк так менеджеры сцен (локаций, я полагаю) и менеджеры диалогов будут независимы и не вызовут ошибок при выгрузке друг друга.

>>906766
В целом тебе следует ещё раз крепко подумать об архитектуре своего проекта. Я тебе образно опишу, а реализацию гугли сам.
1. Сцены - это семантика движка. Тебе не обязательно придерживаться аналогичной семантики в своей игре. Проще говоря, у тебя может вовсе не быть никаких сцен. И в коде ты это можешь отразить, не называя сценами всё подряд.
2. В исполняющемся проекте есть только одна сцена, которая описана деревом сцены. Scene tree - единственное число, когда в русской документации его переводят "дерево сцен" - это ошибка перевода. Дерево сцен по английски называлось бы scenes tree.
3. Как подсказал анон выше, ты можешь реализовать всю связующую логику в корневом узле дерева, но это ничем не будет отличаться от синглтонов из автозагрузки, просто а) всё сместится на один уровень вниз по дереву сцены (ед.ч.), б) имена переменных, в которые ты загрузишь чайлды самодельного корневого узла, ты будешь описывать сам в скрипте, а не во вкладке автозагрузок редактора.
4. Поскольку п.3. объясняет, что оба варианта однохуйственны, рассмотри вариант реализации в своём проекте шины событий. Это архитектурный паттерн. Он гуглится. Шину событий тоже засовываем в дерево, любым из вариантов п.3. после чего все остальные скрипты не видят ничего кроме шины событий. Они могут подписываться на излучаемые шиной сигналы. Они могут заставлять излучать шину сигналы. Сигналы можно излучать с аргументами. Аргументы можно передавать ссылочными типами (например, словарём). Таким образом разные инкапсулированные в себе и скрытые друг от друга ноды через сигналы смогут обмениваться полноценной инфой, но при этом никак не вредить друг другу. Если нода выгрузилась, она просо не отреагирует на сигнал.

Щас попробую в общих чертах изобразить тебе скриншотами твой код, переписанный на шину событий.
Аноним 12/10/23 Чтв 21:49:09 906836 456
>>906820
Я другой анон, но блять.
>Прекращай писать "if something == true:"
Раздражает подобное написание. Читается плохо, глаз не сразу улавливает суть ифа. Хотя булевские таки да, сравнивать с труъ избыточно, но это экономия на спичках.
Больше этого меня раздражает разве что "if !something". Три знака экономия, зато потенциальное место для ошибки по слепошарости.
>Привыкай писать код без комментариев.
Сразу нахуй. Стена кода без комментов - это нечитаемое говно. Да, код писать надо сразу такой, чтобы его сходу можно было понять без комментариев. Но писать их, тем не менее, всё равно необходимо, чтобы улучшить читаемость.
>Синглтоны вообще рекомендую не использовать
А, ты из этих.
Аноним 12/10/23 Чтв 22:06:26 906839 457
1697137586206.png 32Кб, 750x200
750x200
1697137586595.png 25Кб, 891x224
891x224
1697137586603.png 34Кб, 799x211
799x211
1697137586604.png 42Кб, 711x285
711x285
>>906834
Вот иллюстрация, о чём я надлиннопостил.
Аноним 12/10/23 Чтв 22:13:58 906841 458
1697138038571.png 22Кб, 549x172
549x172
1697138038960.png 47Кб, 561x401
561x401
1697138038961.png 38Кб, 658x318
658x318
>>906839
А потом ты начинаешь эмиттить сигналы по необходимости:
Аноним 12/10/23 Чтв 22:19:18 906844 459
>>906836
> Стена кода без комментов
В одном месте прочитал хороший совет - коммент должен быть про то, зачем делают, а не какие действия делают.
Иначе комент становится дублем кода
Плохой пример
scene.instance() #инстанцируем сцену - кэп!
Хороший пример
scene.instance() #спавним пулю
В идеале меняем на то, чтобы коменты были не нужны
bulletscene.instance()
Но тут уже могут быть коменты именно о том почему это делается здесь
bulletscene.instance() #нам нужна эта сцена чтобы потом вычислить вектор для прицела
Аноним 12/10/23 Чтв 22:23:26 906847 460
Вот вы код вылизали, а игру-то сделали?
Аноним 12/10/23 Чтв 22:28:24 906849 461
>>906847
Я сегодня сделал три нормы за смену. А теперь я пойду спать.
Аноним 12/10/23 Чтв 22:32:44 906850 462
>>906847
>игру-то сделали
что? зачем?
Аноним 12/10/23 Чтв 22:52:48 906854 463
>>906836
>Читается плохо, глаз не сразу улавливает суть
Что тебе плохо читается? Слова английского языка? Тогда на русском пиши, Godot поддерживает Unicode.
>экономия на спичках
Дело не в экономии, а в том, что "== true" почём зря цепляет взгляд, затрудняя чтение/понимание кода.
>if !something
Это от сишников, они любят спецсимволы вместо читабельных слов. Благо, в GDScript есть слово not.
>Стена кода без комментов
>необходимо, чтобы улучшить читаемость
НЕ ПИШИ НЕЧИТАЕМУЮ СТЕНУ КОДА
@
НЕ ПРИДЁТСЯ ПИСАТЬ СТЕНУ КОММЕНТАРИЕВ

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

>>906834
>В годоте нет синглтонов.
Да. Но синглтоны вредны потому, что они глобальны по своей природе. Автозагрузка в Godot как раз даёт возможность сделать глобальную лапшу.
>Каждая нода-автозагрузка с глобальным именем - это по сути ветка в дереве.
Которая провоцирует создание лапши в проекте.
>Поэтому вышеописанный тобой совет реализуется через get_tree() или как вариант через get_node("/"), которое возвращает то же самое (get_root() аналогично get_node("/root")).
Бред какой-то. Не стоит обращаться к вышестоящим системам по имени, это даже в доках замечено. В крайнем случае можешь запрашивать get_parent(), но только один раз - никаких дедов и прадедов.
>Поэтому "синглтоны" автозагрузки, это просто удобный способ добавить чайлды в "/root".
Зачем? З А Ч Е М? Выглядит как древний костыль.
>Как ни крути, проект сложнее тетриса, будет обладать специфическими объектами в дереве.
Я как-то тетрис писал. С глобальными переменными. Забросил, когда осознал, что не могу понять, как оно работает, из-за той туго затянутой глобальной лапши.
>Обращаться к ним через имена в автозагрузках
Повторяю, не нужно этого делать.
>ты предлагаешь "/root/main_scene"
Я этого не предлагал. Обращаться к главной сцене не нужно, потому что она главная. Директора своей компании ты не отвлекаешь от его работы своими бестолковыми приказами, а пишешь письмо, которое передаётся через несколько ступеней иерархии, возможно, теряясь в процессе, потому что ты всего лишь заменимая шестерёнка в системе.

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

Новички этого не понимают, а автозагрузка с её глобальными именами наставляет их на ложный путь с кучей граблей и огромным лапшичным монстром. Вообще, get_node() тоже позволяет слишком многое, но это хотя бы "секретная" фича, а не пункт в меню.

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

>шины событий
Имхо, это избыточно.

То, что я предлагаю:
1. Предки манипулируют только своими потомками.
2. Потомки только излучают сигналы.
3. Никаких манипуляций с:
3.1. Предками, предками предков и т.д.
3.2. Братьями, дядями, племянниками и т.д.
3.3. Внуками, правнуками и т.д.
В редких случаях можно обращаться к своему родителю напрямую, но это особый случай, который необходимо как-то обозначать, например, нода должна проверять тип родителя и выдавать ошибку в случае, если дизайнер поместил её не туда.
Аноним 12/10/23 Чтв 23:17:07 906856 464
а могли бы игры делать
Аноним 12/10/23 Чтв 23:17:18 906857 465
Аноним 12/10/23 Чтв 23:38:19 906861 466
>>906854
>Если ты хочешь написать комментарий - знай, твой код нечитаемое говно
Да ты даже пост на дваче прочитать не можешь, вот и на комменты не залупайся. Эти два утверждения не противоречат друг другу, но дополняют:
1. Код надо писать такой, чтобы его было легко понять без комментов.
2. Разбавлять стену кода комментами необходимо для читаемости.
Речь не про то, что я пишу код, который непонятный без комментариев. Он понятный. Речь про то, что я оформляю код при помощи комментов, делаю его визуально чище, логичнее на уровне расположения элементов. Комменты в таком отношении это скорее заголовки, а код - контент.
>"== true" почём зря цепляет взгляд
Нет. При == true я вижу явную операцию сравнения; без этого - ну там переменная; да, она своим именем отражает смысл, но я один хуй не воспринимаю код как естественный язык, так что не вижу смысла в этих потугах.
И да, для меня как раз отсутствие "== true" затрудняет чтение/понимание, а не наоборот. По крайней мере, когда чужой код читаю.

>>906854
>Автозагрузка в Godot как раз даёт возможность сделать глобальную лапшу
А ты не делай глобальную лапшу. Видишь, я тоже умею в такую аргументацию.
Нет, серьёзно. Что мешает использовать синглтоны по назначению? Как:
1. Словарь глобальных констант,
2. Класс вспомогательных функций, которые могут понадобиться в любом месте кода,
3. Шину взаимодействия, например, между игровыми объектами и гуём,
4. Постоянно висящий в памяти менеджер чего-либо, например, музыки.

>То, что я предлагаю:
Не, ну тут база, конечно.
Аноним 12/10/23 Чтв 23:52:54 906862 467
>>906839 >>906841
Думал, ты предлагал реализовать аналог InputEvent...

Твой подход ничем не лучше и не решает проблему.
1. У тебя глобальный объект. Ещё и божественный.
2. К которому обращаются из рандомных скриптов.
3. Который владеет тем, что ему не принадлежит.
И всё это снова ведёт к тугому клубку лапши:
https://ru.wikipedia.org/wiki/Спагетти-код
https://en.wikipedia.org/wiki/Spaghetti_code

Любую игру можно представить как иерархичное сообщество систем. Системы можно разделить по размерам: чем больше систем в подчинении у конкретной системы, тем она больше. Как можно догадаться, самая большая система - это сама игра, включающая в себя вообще всё, что в твоей игре реализовано. Самая маленькая система в Godot выражается одной нодой, например, Label: она не делает ничего, кроме вывода предоставленного ей текста. Средняя по размеру система - это, например, главное меню, в котором есть несколько разных надписей и кнопок, но оно находится в подчинении у системы бОльшего размера - главной системы - игры. Если представлять проект в таком виде, то будет легче избежать запутывания в лапше, т.к. независимые системы друг о друге гарантированно не знают.

Вот твоя игра запускается.
- Игра показывает заставку.
- - Заставка проигрывает анимацию.
- - Заставка сообщает Игре, что она закончила.
- Игра вызывает Главное меню.
- - Главное меню показывает Надпись.
- - - Надпись проигрывает анимацию текста.
- - Главное меню показывает Кнопки.
- - - Кнопки регистрируют движения мыши.
- - - Кнопки передают подсказки Главному меню.
- - Главное меню передает подсказки в Надпись.
- - - Надпись отображает полученный текст.
- - - Кнопка "начать игру" получает клик мышкой.
- - Главное меню сообщает Игре об этом.
- Игра скрывает Главное меню.
- - Главное меню убирает лишние элементы.
- - - Лишние элементы прибираются за собой.
- Игра загружает Менеджер мира.
- - Менеджер мира загружает Карту.
- - - Карта спавнит декорации.
и т.д.

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

Скажем, можно будет взять главное меню и целиком перенести в новый проект, заменив только спрайты, ведь главное меню не суёт нос куда не следует, а только сообщает "нажата такая-то кнопка". А уже тот, кто вызвал главное меню, пускай разбирается, что ему делать с событием нажатия кнопки.
Аноним 13/10/23 Птн 01:13:15 906877 468
>>906861
>Разбавлять стену кода комментами
>оформляю код при помощи комментов
>Комменты в таком отношении это заголовки
https://ru.wikipedia.org/wiki/Подпрограмма

>вижу явную операцию сравнения
Представляешь, "if" - это явная операция проверки выражения на истинность. По сути ты проверяешь истинность того, что истина равна истине. Лол.

А ещё можно делать так:
>func check_value(value: bool) -> bool:
>_ # ~~≈≈ Let's start 🚀 with an if statement ≈≈~~
>_ if value == true:
>_ _ return true
>_ # ~~≈≈ Now it's time ⏰ for an else if statement ≈≈~~
>_ elif value == false:
>_ _ return false
>_ # ~~≈≈ And a little bit of code magic 🪄 here ≈≈~~
>_ else:
>_ _ printerr("Panic! %s isn't true nor false!” % [value])
>_ _ return false
>_ # ~~≈≈ Just a little check to be 💯 sure ≈≈~~
>_ printerr("PANIC!!! Return isn't working!!!")
>_ # P A N I C ! ! ! Can't understand this code!!! 😱
>_ # Phew. Now I can understand. 🤭🤣😏
>_ # 🙈🙉🙊 <- people involved in coding this 🧱🖥️

>Словарь глобальных констант,
Чтобы заниматься ctrl+c/ctrl+v, когда захочешь перенести пару объектов в другую игру? Или тянуть за собой стену кода с лишними константами? Самое весёлое, наверное, ctrl+f и поиск в файле на тысячу констант в той самой игре "сложнее тетриса"...

>Класс вспомогательных функций, которые могут понадобиться в любом месте кода,
Создаёшь файл res://utils/magic_utils.gd
>class_name MagicUtils
>static func do_magic_trick(hat: Hat) -> Rabbit: ...
Использовать так:
>var rabbit := MagicUtils.do_magic_trick(hats.pop_back())

>Шину взаимодействия, например, между игровыми объектами и гуём,
Ты либо собираешь гуй в одном месте и потом соединяешь сигналами кому нужно, либо делишь гуй на части и каждый объект имеет свою часть гуя.

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

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

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

Нужно ввести в редактор ограничения по уровню. Делаешь игры - получаешь очки опыта; чем больше очков опыта, тем больше функций разблокируется.
Аноним 13/10/23 Птн 04:03:50 906900 469
Руки зачесались написать авто конвертер ассетов из 4 в 3.
Аноним 13/10/23 Птн 05:08:57 906903 470
Годаны, поясните.
Вот я делаю экспорт на андроид. Для релиза надо сгенерить ключ. Ок, генерю. Но тут https://developer.android.com/studio/publish/app-signing написано, что это ключ не совсем ключ, его можно давать только гуглу при заливе в стор, а гугл на его основе сделает свой ключ, и вот тогдаааа...
Кароч. Я в аппстор лить не собираюсь. На итч безопасно заливать с тем ключом, который я по инструкции https://docs.godotengine.org/en/3.5/tutorials/export/exporting_for_android.html генерю?
Аноним 13/10/23 Птн 05:09:46 906904 471
>>906903
>аппстор
гуглплей, конечно же.
быстрофикс
Аноним 13/10/23 Птн 06:42:59 906909 472
>>906903
Сделай отдельный ключ для резиза на итч. А потом забудь его поменять.
Вообще я бы даже сделал так - написал батники, которые вызывают
экспорт из годота с нужными параметрами.

В гугл я не выкладывал, но читал что он больше не принимает apk, а принимает aab, это архив всех билдов, а юзеру он сам отдает сборку только под его телефон, поэтому, увы, подписывать будет действительно гугл, а не ты.
Аноним 13/10/23 Птн 06:59:28 906910 473
>>906909
>батники, которые вызывают экспорт из годота с нужными параметрами.
"Предустановки" называется. Ты можешь прямо в окне экспорта создать несколько разных предустановок с разными параметрами на одну и ту же платформу. А потом в один клик экспортировать все.
Аноним 13/10/23 Птн 07:00:57 906911 474
>>906910
Может быть, не смотрел есть ли такой функционал.
Аноним 13/10/23 Птн 07:03:21 906912 475
>>906910
В общем да, так тоже можно. Но все равно надо быть внимательным чтобы не залить потом версию не из той папки. Не знаю, автоматизирована ли заливка на гугл, на итч заливаю butler-ом.
Аноним 13/10/23 Птн 07:37:20 906919 476
1697171841569.png 32Кб, 676x156
676x156
Я уже несколько дней размышляю о пулях. Пули летят. Летят быстро. 833 м/с, при средних фепесах в 60 это получается 14 метров за один кадр. Правильно ли я понимаю, что если реализовать пулю втупую, проджектайлом, то возможна ситуация, когда в 10 метрах от стрелка стоит объект, стрелок стреляет, но вместо объекта пуля попадает в стену у него за спиной?
Аноним 13/10/23 Птн 08:12:52 906923 477
>>906919
Не только возможна, но и будет. Я десяток тредов назад скидывал тест в 2д, да ты и сам его можешь повторить. Возьми 2 Area одна символизирует игрока, вторая стену, подключи сигналы, и пуляй прожектайл. Наблюдай порядок получения сигналов и будет ли их наличие.
Аноним 13/10/23 Птн 10:03:13 906926 478
>>906919
самое первое что приходит в голову - для таких быстрых объектов рэйкастить из точки а в точку б и смотреть в чё там можно врезаться
Аноним 13/10/23 Птн 14:28:04 906997 479
1697196484399.png 43Кб, 1704x827
1704x827
>>906923
Окей.
>>906926
Значит надо не просто проджектайлить, а с учётом баллистики. Пуля пролетает кадр, к её вектору прибавляется гравитация, пуля кидает рейкаст к месту своего предыдущего положения, наносит урон всему, что попало в рейкаст и уничтожается, если рейкаст ничего не нашёл, ищет столкновение и наносит урон и уничтожается, если столкновения нет, летит дальше.
В таком алгоритме можно и пробивную силу реализовать. В стене пуля сразу уничтожается, а в туше - убавляет своё ХП и скорость, и летит дальше.
Аноним 13/10/23 Птн 14:46:58 907012 480
>>906997
> пуля кидает рейкаст к месту своего предыдущего положения, наносит урон всему, что попало в рейкаст
Ну тоесть, не всему, а самому дальнему объекту, потому что рейкаст кидается назад. Кстати, надо выяснить, от рейкаста приходит массив отсортированный по расстоянию или самому сортировать?
Аноним 13/10/23 Птн 14:56:45 907020 481
>move_and_collide
>This method takes one parameter: a Vector2 indicating the body's relative movement. Typically, this is your velocity vector multiplied by the frame timestep (delta). If the engine detects a collision anywhere along this vector, the body will immediately stop moving.
>>907012
>>906997
>>906926
>>906923
>>906919
Используй силу движка, Люк. Метод уже реализован.
Хотя, если речь про 3д, то там я информации не нашёл.
Аноним 13/10/23 Птн 15:47:51 907052 482
Объясните кто-нибудь в каких ситуациях надо использовать yield()? Это вообще важно/полезно/круто?
Аноним 13/10/23 Птн 15:51:17 907056 483
image.png 14Кб, 363x738
363x738
82g05l.jpg 73Кб, 500x688
500x688
82g2zh.jpg 57Кб, 500x500
500x500
Диздоки-то к играм пишете?
Визуализации делаете?
Делитесь графами.
Аноним 13/10/23 Птн 15:53:44 907058 484
>>907056
все заняты пиздежом в интернете и спорами о синтаксисе,никто игры не делает на самом деле
Аноним 13/10/23 Птн 16:13:40 907070 485
>>907056
Поставил дедлайн - прототип к концу месяца. Механики продуманы, но надо интерфейс и генерить тонны спрайтов.
Аноним 13/10/23 Птн 16:18:21 907073 486
>>907056
Я пару раз на бумаге такую хуйню рисовал когда надо было прям залупу с кучей вложений отрефакторить.
Аноним 13/10/23 Птн 16:19:33 907074 487
>>906919
>833 м/с, при средних фепесах в 60 это получается 14 метров за один кадр
Обычно физические пульки в играх двигаются значительно медленнее, чтобы игрок мог их визуально заметить, иначе смысла нет - буллетхелл и всё такое, где игроку нужно уворачиваться от пуль. Реалистичное оружие делается простым рейкастом - пуля попадает в цель в момент нажатия кнопки стрельбы, безо всякой баллистики, при том рейкаст зачастую короткий. Для визуализации рейкаста могут растягивать текстуру, типа это пуля трассирующая, но это только декорация, а не физическая модель. Другое дело - гранаты и ракеты, они обычно двигаются медленно и поэтому у них есть полноценная физическая модель (вплоть до того, что их можно сбить с курса или отбить в сторону, или они сами отскакивают). Тут всё зависит от того, какую игру ты делаешь, какую роль играет стрельба и т.д.

>>906997
Можешь попробовать встроенную фичу:
https://docs.godotengine.org/en/stable/classes/class_rigidbody2d.html#class-rigidbody2d-property-continuous-cd
https://docs.godotengine.org/en/stable/classes/class_rigidbody3d.html#class-rigidbody3d-property-continuous-cd
Аноним 13/10/23 Птн 16:27:10 907080 488
>>907056
Я не делаю диздоки на своем этапе, мне морально тяжело обрубать то, что я не могу сделать. Поэтому я просто в редакторе делаю, что могу, а потом смотрю, есть ли тут игра.
Аноним 13/10/23 Птн 16:38:14 907085 489
>>907070
>прототип к концу месяца
>Механики продуманы
>генерить тонны спрайтов
Эм... Вообще-то, прототип игры - это голые механики. Графика в прототипе - условные кубы/квадраты, так, чтобы было понятно назначение каждого объекта. "Тонны спрайтов" к прототипу отношения не имеют, независимо от того, какую игру ты делаешь.

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

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

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

>inb4 нейроарт ничего не стоит
Ты всё равно вкладываешь в это какое-то время.

>inb4 игра жёстко завязана на графон
Тогда это книжка с картинками, а не игра, если без качественной графики от игры ничего не остаётся.

Графика - обёртка для игры, а прототип - попытка отсеять конфеты от говна до стадии упаковки.
Аноним 13/10/23 Птн 16:51:13 907092 490
>>907085
Не, я про прототип готового продукта. Прототип механик на кубах мне не нужен, потому что что механики работают мне известно из других источников, а вот без картинки я игру раскрутить не смогу. Мне нужен хотя бы срез арта чтобы можно было делать промо материалы, даже если основная графика и механики еще не доделаны. Да, нейроарт придется использовать, только тихо.
Аноним 13/10/23 Птн 17:03:10 907097 491
>>907080
>тяжело обрубать то, что я не могу сделать
Тогда будет тяжело расти как разработчик и твои проекты не вырастут больше мелких прототипов.

Диздок соло разработчику нужен, чтобы:
- не забыть то, что придумал, пока реализуешь, ибо реализация тратит очень много времени, а память у человека как правило очень слаба;
- организовать системы игры заранее, чтобы потом не приходилось перебрасывать и править файлы;
- заранее выявить логические нестыковки, например, когда твои хотелки противоречат друг другу (хотел динамичную игру, но механика тормозит игрока);
- разбить большие системы на мелкие части, которые намного легче понять и реализовать на практике, что может помочь в борьбе с прокрастинацией;
- сохранить свидетельство проверенных нерабочих механик, чтоб не бегать по одним и тем же граблям;
- более реалистично оценить масштаб работ, чтобы сократить слишком масштабные планы до того, как бросишься рисовать/моделировать;
- бороться с feature creep, хаотичным добавлением дополнительных фич, нарушающих простой дизайн и размывающих фокус игры лишними деталями;
- поддерживать игру в будущем, при условии, что поддерживаешь диздок в актуальном состоянии.
Аноним 13/10/23 Птн 17:03:22 907098 492
>>907074
> какую игру ты делаешь
Ремейк игоры из 90х про снайперов. (зельда трифорс)
> безо всякой баллистики
Там без баллистики и поправки на ветер никак.
Аноним 13/10/23 Птн 17:31:45 907119 493
>>907092
>Мне нужен хотя бы срез арта чтобы можно было делать промо материалы, даже если основная графика и механики еще не доделаны.
Это называют вертикальным срезом:
https://habr.com/ru/companies/miip/articles/308286/
https://askagamedev.tumblr.com/post/77406994278/game-development-glossary-the-vertical-slice

>механики работают мне известно из других источников
У тебя 100% клон с другой шкуркой? Или это механики уровня кликера с одной кнопкой? Просто интересно.
Аноним 13/10/23 Птн 17:36:39 907121 494
>>907052
>Объясните
Читай сам.
https://gdscript.com/solutions/coroutines-and-yield/

>Это вообще важно
Некоторые вещи от движка можно добиться только на следующем кадре, поэтому приходится ждать.
Аноним 13/10/23 Птн 17:45:55 907125 495
>>907119
Меня не совсем вертикальный срез интересует, он подразумевает что все что можно закодили, а для промо материалов мне достаточно иллюзии. Я могу просто заанимировать катсцену как кто то подходит и бьет и вылетают цифирки, мне не надо честные механики поиска пути, выбора персонажей, самих механик, рассчета сколько именно урон
Аноним 13/10/23 Птн 17:50:16 907131 496
>>907125
будешь 5 лет срать гифками, а потом уже игру сделаешь(как инмост)?
Аноним 13/10/23 Птн 17:54:11 907136 497
>>907131
Ну я себе ставлю более жесткие рамки, не больше года.
Аноним 13/10/23 Птн 17:58:28 907140 498
Godette.png 955Кб, 1080x1485
1080x1485
a62f611476f3d95[...].jpg 143Кб, 920x920
920x920
FifLC5XUcAAcCOY.jpeg 49Кб, 908x502
908x502
Аноним # OP 13/10/23 Птн 17:59:25 907142 499
Аноним # OP 13/10/23 Птн 18:02:27 907143 500
1697209347191.jpg 315Кб, 1816x1004
1816x1004
>>907140
Хотел тебя поблагодарить апскейленным мемом, но апскейлер облажался и эмоция исчезает после апскейла. Но все равно держи.
Аноним 13/10/23 Птн 18:09:23 907150 501
BA DUM TSS.mp4 86Кб, 1280x720, 00:00:03
1280x720
>>907125
>заанимировать катсцену как кто то подходит и бьет и вылетают цифирки, мне не надо честные механики поиска пути, выбора персонажей, самих механик, рассчета сколько именно урон
АНИМИРОВАЛ КАТСЦЕНЫ
@
ПОЛУЧИЛ ИНВЕСТИЦИИ
@
МЕХАНИКИ СДЕЛАТЬ НЕ СМОГ
@
ЧУВСТВУЕШЬ БОЛЬ В ЖОПЕ
@
НО ЗАПАХА ГАРИ НЕТ
ПЕРЕКАТ Аноним # OP 13/10/23 Птн 18:11:35 907154 502
Аноним 13/10/23 Птн 18:13:27 907158 503
Аноним 13/10/23 Птн 18:19:13 907163 504
>>907052
Я раньше тоже думал, что хуйня какаята. Но вот реальный пример использования.
Допустим юзерданные хранятся на облаке. Чтобы загрузить их, шлём запрос к серверу и ждём ответа. И не городим дикую конструкцию, а просто в одной функции:
> send_request_to_server()
> var data = yield(self, "data_loaded")
> do_something_with(data)
Аноним 13/10/23 Птн 18:28:48 907170 505
>>907150
Так если цель заработать, то она достигнута, в чем боль? В крайнем случае нанять кого то можно будет.
Аноним 13/10/23 Птн 18:30:39 907171 506
>>907150
Механики я делал там ничего сложного. Большую проблему доставляет задизайнить удобный интерфейс, чтобы игроку были все эти механики доступны и понятны.
Ответить в тред Ответить в тред

Check this out!

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