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

Gamedev

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 501 110 83
Godot #46 Аноним # OP 23/02/24 Птн 17:25:44 938493 1
1708698343385.png 390Кб, 812x925
812x925
1708698343397.webp 73Кб, 1000x1000
1000x1000
1708698343397.png 225Кб, 493x421
493x421
1708698343399.png 24Кб, 453x501
453x501
Аноним 23/02/24 Птн 18:14:37 938502 2
>>938493 (OP)
Сап годотеры, собрался с духом и решил вкатиться
Ппроблема в том что работаю на планшете в 3й версии годота.
И я тупо не перевариваю, гд скрипт, хотел установить c# но во первых компилятор визуал код под андроид нужен, я устанавливал пиратку, но она неработает. И во вторых сам редактор при выборе внешнего редактора почему то не видит, мой внешний компилятор. Вообще возможно на мобильном андроиде обманываться c#?
Аноним 23/02/24 Птн 18:18:10 938504 3
>>938502
Не обманывай себя, для полноценного девелопа нужна перканя. Если ты совсем нищий, возьми старый пень на авито. Рублей за 12.
Аноним 23/02/24 Птн 18:37:50 938514 4
>>938504
Значит нет. Ладно буду работать в скрипте.
У меня есть пекарня, просто на дно работе в обеденное время пила всякое, вот купил мощный планшет и решил вместо работы на консоли или пердолинга в xamarin.android попробовать пилить на нормальном движке, тем более несколько лет назад я уже пробовал годо.
Аноним 23/02/24 Птн 18:42:11 938518 5
1708702931195.png 160Кб, 438x400
438x400
Аноним 23/02/24 Птн 18:54:13 938523 6
image.png 206Кб, 260x400
260x400
>>938502
Ты чет взял и превратил один из самых легких и беспроблемных движков в какой-то бег с препятствиями. И планшет, и андроид, и сисярп, и пиратская вижуал студия. А чтобы под андроид релиз собрать тебе еще андроид сдк и джава понадобится. Да у тебя талант к веселой жизни.

Двач, я ем суп с ножа.тхт
Аноним 23/02/24 Птн 19:19:34 938526 7
>>938502
Я тоже на андроиде играюсь с годотом, но с gdscript. И почему у тебя 3 версия, если 4.2 уже есть?
Аноним 23/02/24 Птн 22:04:08 938556 8
image.png 974Кб, 1831x984
1831x984
The VisualShader redesign has been merged
Аноним 23/02/24 Птн 22:06:12 938557 9
Аноним 24/02/24 Суб 01:48:06 938584 10
>>938258 →
>но как понимаю их можно делать на yield
Некрасиво, неудобно, негибко.

Приведу пример, который я уже частично реализовал.
Вот у меня загрузчик. Он показывает лоадскрин с полосой прогресса, а сам в это время делает дело. Загрузчик один, но способен выполнять разные задачи:
а) Начинать новую игру, загружая произвольный уровень
б) Переходить с уровня на уровень
в) Загружать сейв
Работает он (в общих чертах, опуская подробности) так:
var scenario: Array[Callable]
var stage: int
func _process(delta):
var time = Time.get_ticks_msec()
while Time.get_ticks_msec() - time < VREMYA:
scenario[stage].call()

И для новой игры, допустим, сценарий такой:
[load_level, instantiate_level, update_level_data, add_player]
Для смены уровня такой:
[save_player, unload_level, load_level, instantiate_level, update_level_data, restore_player]
А для загрузки сейва какой-то такой:
[load_save_file, unload_level, load_level, instantiate_level, add_player, update_data_from_save]

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

>накладные расходы
Да ну надо ж понимать, это инструмент для своих задач. Но вообще, учитывая, что callable это по сути указатель на функцию, а массив это по сути указатель на область данных, то я вообще хз, где тут могут быть какие-то расходы. Больше расход просто от факта переключения контекста.
Аноним 24/02/24 Суб 08:53:46 938596 11
>>938584
Забавная штука. Полагаю, там у тебя в while ещё stage+=1 стоит?
Аноним 24/02/24 Суб 09:08:08 938599 12
>>938596
И соответственно после инкремента стоит проверка на выход за границу массива, которая символизирует конец загрузки.
Аноним 24/02/24 Суб 11:06:09 938611 13
>>938584
Хз, не вижу причин тут городить такое вместо просто вызова функций.
Аноним 24/02/24 Суб 11:17:03 938612 14
>>938611
А ты внимательнее посмотри. У него загрузчик хитро балансирует нагрузку, не прибегая к многопоточности. Если цепочка вызовов затянулась дольше, чем VREMYA, то цикл останавливается и возобновляется в следующем фрейме. Предложи вариант, как ты это сделаешь ещё элегантнее?
Аноним 24/02/24 Суб 11:28:34 938615 15
>>938612
load_level работает дольше кадра. Твои действия? Где ты там приостановление увидел? Я хз. Тут происходит какой то троллинг?
Аноним 24/02/24 Суб 11:31:15 938617 16
Вкоптился в этот ИТТ тред.
Всем чмоки в етом чятике.

мимотвайнодебил
Аноним 24/02/24 Суб 11:38:48 938619 17
>>938615
> Где ты там приостановление увидел?
Ох блять... Ну почему даунинг-крюгеры такие? И ведь сам таким был. Аж вспоминать стыдно.
Ты сам себя затроллил своим невежеством. Матчасть учи.
Аноним 24/02/24 Суб 11:40:05 938621 18
>>938619
Да судя по ответу ты им и остался.
Аноним 24/02/24 Суб 11:42:01 938623 19
1620576391069.png 231Кб, 1320x1080
1320x1080
Аноним 24/02/24 Суб 11:43:10 938624 20
1575734400293.png 1868Кб, 1305x1080
1305x1080
Аноним 24/02/24 Суб 11:45:40 938626 21
>>938623
Это всё конечно круто, но не для нас и не для таких как мы.
Аноним 24/02/24 Суб 11:48:36 938627 22
>>938626
Кто хочет, ищет возможности, кто не хочет - найдет миллион оправданий.
Это для меня и таких как я. Уже продумываю как к своей игре добавить управление свища.
Аноним 24/02/24 Суб 12:00:21 938630 23
>>938627
> ищет возможности унижаться под белым флагом на олимпиаде
Ищи.
Аноним 24/02/24 Суб 12:03:47 938631 24
>>938627
Если бы я нашёл у себя свищ, то пошёл бы в больницу.
Аноним 24/02/24 Суб 12:05:56 938632 25
>>938631
Да тебя надо в "Аншлаг" срочно брать!
Аноним 24/02/24 Суб 12:08:25 938633 26
>>938632
Спасибо-спасибо. 00)))0
Аноним 24/02/24 Суб 13:02:06 938652 27
>>938596
>Полагаю
Типа того. И там ещё много-много другого скрыто за
>(в общих чертах, опуская подробности)
В частности, сценарная функция должна возвращать интовый код ошибки. Если код == ERR_FILE_EOF, то stage += 1; если код == OK, то просто продолжаем молотить цикл; если код == ERR_BUSY, то прерываем цикл, ждём следующий фрейм; во всех остальных случаях совсем прекращаем загрузку и пишем код ошибки; для красоты оборачиваем его функцией error_code, чтобы не циферьку писало, а текстовое описание.
И да, проверка прогресса и перерисовка полоски осуществляется отдельно, вне цикла.

>>938615
>load_level работает дольше кадра. Твои действия?
https://docs.godotengine.org/en/stable/tutorials/io/background_loading.html
Жаль, выпилили однопоточный вариант ресурслоадера, который работал как раз по схеме, описанной мной выше, с циклом и проверкой времени выполнения. Точнее, эту схему я познал из обучающей статьи по ресурслоадеру из 3.5:
https://docs.godotengine.org/en/3.5/tutorials/io/background_loading.html

>>938611
>Хз, не вижу причин тут городить такое вместо просто вызова функций.
Всё зависит от масштаба. Для три вряд на ЯИ нет никаких причин что-то городить. Для road to vostok без городьбы не обойтись.
У меня вот комплексные тяжёлые уровни, которым после загрузки ещё и ресурсы апдейтить надо. У кого-то вообще процедурная генерация. В прошлой игре уровни были простые, я не городил, просто показывал статичный экран с названием уровня, он висел секунду, пока левел грузился, было норм.
Аноним 24/02/24 Суб 13:05:55 938655 28
image.png 15Кб, 730x137
730x137
>>938623
>free
Не фри. Это именно то, что нытики не поняли, когда W4Games выкатили свои версии портов. Нужны девелоперские ключи-лицензии от Сони/МС/Нинтендо. В W4Games ты бы это делал через прокси-Хуана, а тут ты сам должен Нинтенде забашлять бабла за девелоперские ключи.
Аноним 24/02/24 Суб 13:07:14 938656 29
>>938655
То есть, по сути, у этого порта такая ниша: если ты УЖЕ оплатил все нинтенде, и не хочешь платить второй раз W4Games - тебе это подойдет.
Аноним 24/02/24 Суб 13:10:30 938657 30
>>938655
Чел, ты... Открой доки любого другого движка - там все начинается с реги в нинтендо. Ты какой то сверх наивный. Речь и идет о бесплатности порта, ты бы еще удивился что на айфон надо в эппле платно регаться.
Аноним 24/02/24 Суб 13:14:06 938658 31
>>938656
Речь идет о бесплатности порта, а не бесплатности издания на свитч.
Для любителей свободы уже 5 лет есть версия для джейлбрейка https://github.com/fhidalgosola/godot-switch
Аноним 24/02/24 Суб 13:23:19 938665 32
>>938657
Нет, это ты недооцениваешь уровень наивности среднего желающего портануть свой 2д пиксель-арт платформер. Хватало нытиков, ожидавших что раз движок свободный, то им не придется платить никому и ничего. И которым пришлось долго объяснять что именно включено в цену портов от W4Games.

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

Поэтому всегда надо уточнять, что именно фри, а что нет.
Аноним 24/02/24 Суб 14:14:10 938672 33
>>938665
По уму инфа про платные и сложные для резидента реги должна быть в шапке ньюфаго треда. А не всякие ссылки на несуществующие треды давно заброшенных игр.
Аноним 24/02/24 Суб 14:26:23 938675 34
>>938672
Ну да. Но шапку все равно никто не читает.
>сложные для резидента реги
Для резидента они сейчас все сложные, так и живем теперь. Мне предыдущую работу вообще через крипту пришлось доделывать.
Аноним 24/02/24 Суб 16:50:24 938701 35
image.png 6Кб, 310x96
310x96
Подождите, а что, в 2д нет визуальных слоев как в 3д?
Аноним 24/02/24 Суб 17:14:44 938708 36
>>938701
В 3-м нет для 2д, только в 4-ке добавили.
Но, собственно, куча способов сделать нужное и без них.
Аноним 24/02/24 Суб 18:22:11 938720 37
>>938708
Как трудно жить было. Может подскажешь тогда? Я хочу сверху всего наложить текстуру-фильтр, которая должна накладываться на все спрайты кроме одного. При этом я не могу изменить порядок спрайтов. Нашел способ через light2d и light mask, а еще что-нибудь есть?
Аноним 24/02/24 Суб 19:10:21 938723 38
>>938720
Помести этот один в другом слое.
Аноним 24/02/24 Суб 19:26:33 938727 39
>>938493 (OP)
Короче челы подскажите, хочу перекатиться с юнити на годот. Делаю игру 2Д рпг, есть карта с тайлами, всякие интерфейсы персонажей, сражение примитивное, и заебался что в юньке слишком геморно это делать.
На годоте будет проще реализовать вот это вот всё? Мне никаких заморочек не нужно, буквально примитив как на том же ренпи или почти любом движке для новелл. А на юньке такое ощущение что есть 100500 функций которые мне тупо не нужны и мешают.
Аноним 24/02/24 Суб 19:30:18 938729 40
>>938727
> На годоте будет проще реализовать вот это вот всё?
Тонкий вопрос. У тебя с движком, как это нынче говорится, должна химия возникнуть. Если возникнет - будет легко и быстро.
Аноним 24/02/24 Суб 23:28:15 938772 41
Советов дай мудрых, анон. Делаю жрпг, застрял на странице создания персонажа. Сделал автозагруз параметров, хочу на кнопки минус и плюс повесить прибавку\убытие параметра, убытие и прибытие свободных очков.
Понимаю, как сделать это для каждого параметра
func minimum_par():
if Global.Power > 25:
Global.Power -= 1
Global.FreePoints += 1
Но как сделать так, чтобы вставлять напрямую в функцию Power, Intellegent, Magic? То есть одна функция для всех вместо кучи функций на каждой кнопке?
Аноним 24/02/24 Суб 23:29:30 938774 42
>>938727
Да. Тоже делаю 2д рпг, можешь скинуть телегу, я тебе выкачу список туторов от самого низа до тонких мелочей.
Аноним 25/02/24 Вск 00:03:20 938777 43
>>938772
Нипонел, так шоле хочешь?

func wtf(x):
if x == 'Power':
...
elif x == 'Magicr':
...

мимо нуб
Аноним 25/02/24 Вск 00:06:38 938778 44
>>938777
Да, только без гигантского ветвления
Можно как нибудь?
Аноним 25/02/24 Вск 00:08:31 938779 45
>>938778
ну думаю так еще короче можно:
func wtf(x):
Global.x > 25:
Global.x-= 1
Global.FreePoints += 1
Аноним 25/02/24 Вск 00:21:27 938782 46
Кто-нибудь разобрался как можно собрать, экспортировать и запустить сервер для проекта одной кнопкой, чтобы можно было запустить в браузере мобильного устройства в локальной сети? Как вы вообще дебажите веб версии своих игр под мобилки?
Аноним 25/02/24 Вск 00:38:00 938785 47
Аноним 25/02/24 Вск 00:48:47 938787 48
>>938785
он веб версию запустит или андроид?
Аноним 25/02/24 Вск 06:39:04 938800 49
>>938779
Глобал обжект оче всратый паттерн

var stamina : int :
get:
return _stamina
set(value):
_stamina = int(value)

player.IncreaseStat(value, statType)
switch(statType)
case "stamina":
stamina+=value
break;

statchanged.emit(statType, value)
Аноним 25/02/24 Вск 09:58:19 938815 50
>>938779
Я тоже думал, что так сработает, но нет.

>>938800
Блин, а можешь теперь, пожалуйста, объяснить, как это работает?)
Берется стамина, что-то куда-то дает сигнал, сложна)
Аноним 25/02/24 Вск 10:23:51 938817 51
>>938772
> Но как сделать так, чтобы вставлять напрямую в функцию Power, Intellegent, Magic?
Индексами.
Все свои параметры занеси в энум.
> enum Stats { Power, Intellegent, Magic }
Индексы энума должны точно соответствовать порядку хранения параметров в базе данных (твой Global например). Далее навесь на все кнопки вызов сигнала с параметром:
> buttonMagic.pressed.connect(my_pressed_callback, [Stats.Magic])
и далее в коллбэке тебе ничего уже не надо свитчить. Тебе уже в коллбэк параметром прилетает индекс стата, который тебе надо менять:

> func my_pressed_callback(stat_idx: Stats):
> > Global.StatsDataArray[stat_idx] += 1
Аноним 25/02/24 Вск 10:24:30 938818 52
>>938815
Оке

Заводишь переменную внутреннюю, допустим _stamina, вот это дело не трогаешь больше

Заводишь внешнюю, stamina с геттером и сеттером
И так для всех статов, вдруг логика какая будет в сеттере

Делаешь функцию увеличения стата, где параметрами является тип чего увеличиваешь и насколько, внутрь кладешь свитч с типами статов, где уже присваиваешь суешь или добавляешь во внешнюю stamina нужное значение

Опционально эмитишь сигнал changed либо в сеттере, либо после свича, если где-то должно отслеживаться изменение статов, допустим для пересчёта макс за или чего-то такого
Аноним 25/02/24 Вск 10:28:31 938819 53
>>938815
> Блин, а можешь теперь, пожалуйста, объяснить, как это работает?)
Рекомендую рассмотреть мой вариант >>938817 он проще и без свитчей-матчей.
Аноним 25/02/24 Вск 10:37:42 938821 54
>>938817
БРАТАН СПАСИБО ТЕБЕ ОГРОМНОЕ!

>>938818
Тебе тоже больщущее спасибо, хоть выберу способ полегче, но все равно твое объяснение точно поможет мне в другом месте.
Аноним 25/02/24 Вск 10:41:15 938822 55
>>938821
> БРАТАН СПАСИБО ТЕБЕ ОГРОМНОЕ!
Обращайтес.
И ещё, раз у тебя есть глобальный объект, то и вышеуказанный энум объявляй в нём. Чтобы видели его все, кому надо.
Аноним 25/02/24 Вск 10:51:20 938823 56
Аноним 25/02/24 Вск 11:14:35 938825 57
>>938817
Я не вопрошавший, но спасибо большое. Ты сейчас мне показал, как я могу сделать лучше функции апдейта стат персонажей(но в другом двиге).

У меня там $npcs[id].statname, я как-то совсем забыл,что могу написать $npcs[id]['statname'].
Плотно держу в курсе: Аноним 25/02/24 Вск 11:24:04 938829 58
>>938825
Ну, так-то по сути мой совет - это классика из нулевых, я тогда жил в глухой деревне без интернетов, душа просила кодинга, а из средств кодинга я нашёл на мамкиной пекарне только мс офис и пилил программы в ворде/экселе (как эта ваша деревотян). Там прямо формочку можно сделать с кнопками и текстбоксами, которую можно вызвать из документа. И вот эти кнопочки на формах VBA были искаропки с индексами. И первое что приходило в голову как использовать те индексы, это навесить на все кнопки из какой-либо группы на один обработчик.
Много лет спустя, когда я перешел сначала на дельфи, потом на шарп, оказалось, что так же можно сделать и там, правда индексов искаропки уже не было, но прикрутить их несложно.
Аноним 25/02/24 Вск 11:46:53 938832 59
1695724876953.png 60Кб, 550x566
550x566
1689437104283.png 47Кб, 437x451
437x451
>>938772
Звучит как обычный ООП
Ну либо динамический, раз у нас питоноподобность.
Аноним 25/02/24 Вск 12:52:32 938852 60
>>938832
Звучит как синдром Даунинг-Крюгера. Без обид, я тоже в молодости пилил ООП-тетрис, в котором каждый блок - это класс, а каждая фигура это класс из экземпляров класса-блока, а игровое поле - это класс из экземпляров-экземпляров, а потом я охуел, хуле ничего не работает?
Аноним 25/02/24 Вск 13:03:08 938855 61
>>938852
Конечно, какие могут быть обиды на нюфань, которые не знают как пишется Даннинг? А потом эмулируют ООП через массив с enum
Аноним 25/02/24 Вск 13:05:17 938858 62
>>938855
Ты всё таки обиделся. Не обижайся.
Аноним 25/02/24 Вск 13:10:02 938862 63
>>938858
Я же сказал, на нюфань не обижаюсь.
Аноним 25/02/24 Вск 14:32:01 938877 64
>>938821
Ну и славно, успехов тебе, анон
Аноним 25/02/24 Вск 19:48:33 938933 65
Бляяя, нахуя я смотрел этот туториал https://youtu.be/rdUgf6r7w2Q?si=bLyGJiZu9S1_viLD
Если можно было сделать все через _get_drag_data, _can_drop_data и _drop_data.... Че блять, многодневную работу переписывать?
Аноним 25/02/24 Вск 19:58:50 938936 66
>>938933
> Че блять, многодневную работу переписывать?
Сохрони в отдельном архиве, на случай если понадобится. Это опыт. Ты его получил.
Аноним 25/02/24 Вск 21:24:21 938952 67
Сап гдач, перекатился с шарпов на гдскрипт 4 и в толк не возьму, а где перегрузка? Хуй перегрузишь метод, конструктор и прочее.... В документации ничего подобного, а городить, методы с дохуиллионами параметров по умолчанию с последующей их проверкой тот ещё раковник
Аноним 25/02/24 Вск 22:06:10 938957 68
>>938952
Ну да, параметры по умолчанию. Может тебе проще объект в параметр передавать, или словарь?
Аноним 25/02/24 Вск 23:56:28 938979 69
@tool
Вот у меня нода2Д (точнее, Marker2D). Я хочу, чтобы она выполняла кое-какое действие (для начала хотя бы принт в консоль) каждый раз, когда я её в редакторе мышкой передвигаю. Как это сделать?
func _draw(): print("не работает")
Пробовал присоединять сигналы draw и item_rect_changed - тоже не сработало. Пробовал также выставлять set_notify_transform(true) - не помогло.
Как?
Аноним 26/02/24 Пнд 00:11:53 938981 70
Аноним 26/02/24 Пнд 00:18:15 938982 71
>>938979
>каждый раз, когда я её в редакторе мышкой передвигаю
А что если добавить в нее контрол-ноду с сигналом on mouse pressed, и печатать по этому сигналу? Хз сработает ли в с tool.
Аноним 26/02/24 Пнд 00:42:31 938986 72
>>938982
Вроде бы нет, там надо что-то с EditorPlugin как по ссылке делать и forward_canvas_gui_input
Аноним 26/02/24 Пнд 08:17:42 939003 73
>>938829
Подумол и понял, что объединять нет смысла потому что то от чего хочу избпвиться вернётся неминуемо.
Аноним 26/02/24 Пнд 11:37:49 939015 74
годотеры а для годоти есть какой нибудь ии плагин который по текстовому описанию будет за меня писать код, что то исправлять, проверять, менять и тд?
ну или не плагин а где то отдельно на сайте
есть что то бесплатное и с открытым доступом?

посмотрел отрывок с презентации гугловского гемини с ваганеткой, терайном и тд...пиздец.
Аноним 26/02/24 Пнд 12:48:29 939020 75
>>938979
Сцену перезагрузил?
Аноним 26/02/24 Пнд 14:31:43 939029 76
1708947103006.png 7Кб, 474x132
474x132
Годаны, похоже хуяндех прикрыл лавочку, обсуждавшуюся нами в прошлом треде. Не работает.
Аноним 26/02/24 Пнд 14:49:08 939035 77
>>939029
Да, у меня тоже.
Там в схеме, похоже, участвуют какие-то 2 прокси (Алсо это значит, что какой то васян может собирать инфу какие видосы ты смотришь).
Может быть они упали, может быть им нужен впн. Хз.
Аноним 26/02/24 Пнд 14:51:16 939036 78
>>939035
В общем, как ни прискорбно, придётся держать маркет.браузер под рукой для инглиша.
Аноним 26/02/24 Пнд 14:57:13 939039 79
>>939015
Попробуй просто чатгопоту. Не знаю дообучили ли ее уже до годота 4, для годота 3 в принципе пишет. Гемини не щупал, не знаю как там.
Аноним 26/02/24 Пнд 15:07:57 939040 80
Да как вы этими чатами пользуетесь? Они же платные все с регистрацией по кредитке??
Аноним 26/02/24 Пнд 15:19:08 939044 81
>>939029
хз, олткрыл сейчас рандомное видео и всё работает, скинь своё, которое у тебя не пашет
Аноним 26/02/24 Пнд 15:25:15 939045 82
>>939040
Нет, полно бесплатных.
Аноним 26/02/24 Пнд 15:26:44 939046 83
Аноним 26/02/24 Пнд 15:31:57 939049 84
image.png 19Кб, 465x275
465x275
>>939046
ну да, наверно, у меня моментально заработало
Аноним 26/02/24 Пнд 15:49:47 939052 85
>>939040
ГПТ 3.5 бесплатный, гугловский гемини/бард тоже. Не-рфшный прокси только нужен. Другими я не пользовался.
Аноним 26/02/24 Пнд 16:04:16 939055 86
Screenshot2024-[...].jpg 421Кб, 1080x2400
1080x2400
>>939040
Copilot от майков бесплатный
Аноним 26/02/24 Пнд 16:07:28 939056 87
>>939049
С проксями ебаться ещё. Буду по старинке смотреть. В яндухе. Идея конечно была неплоха, но увы.
Аноним 26/02/24 Пнд 16:10:39 939058 88
>>939056
Ты как не в 2к24 живешь.
Аноним 26/02/24 Пнд 16:12:33 939060 89
>>939056
Ну а так ебаться с виртуалками и песочницами где его запускать.
Аноним 26/02/24 Пнд 16:18:52 939061 90
>>939058
Я как бы в курсе, где я живу, но всё равно, если есть возможность не ебаться предпочитаю не ебаться. Но в уме держу, что есть вот такая и вот эдакая возможность.
Аноним 26/02/24 Пнд 16:26:32 939063 91
>>939055
Он напрямую в редакторе годота работает, или только вскод?
Аноним 26/02/24 Пнд 16:59:04 939069 92
>>939029
>лавочку, обсуждавшуюся нами в прошлом треде
для отсутсвующих, и ленивых чтобы перечитывать, вы о чем вообще?
Аноним 26/02/24 Пнд 17:15:08 939081 93
Аноним 26/02/24 Пнд 17:18:28 939084 94
>>939069
Насколько помню они переводят англоязычные туториалы с ютуба с помощью яндекс-браузера.
Аноним 26/02/24 Пнд 17:19:58 939085 95
>>939063
Есть какие то аддоны, но скорее всего они устарели и вот они возможно обращаются к API нейронок, а это вроде платно, в отличии от чатов.
Наверное можно самому как то наколхозить.
Аноним 26/02/24 Пнд 17:21:14 939086 96
>>939084
>переводят англоязычные туториалы с ютуба с помощью яндекс-браузера
Нахуя для встроенного переводчика в ябравузер ебаться в проксями, виртуалками и песочницами о чем анон выше упоминает
Аноним 26/02/24 Пнд 17:27:55 939093 97
>>939086
Возможно мы никогда не узнаем ответ на этот загадочный вопрос, анон. Но игры нам это делает не помешает, верно?
Аноним 26/02/24 Пнд 17:50:54 939101 98
>>939086
Типа яндекс зашквар, скам-браузер, распространявшийся с bloatware. Поэтому до сих пор у олдов пригорает с одного его названия.
Аноним 26/02/24 Пнд 18:28:39 939108 99
>>939101
Не поэтому. А потому что зачем нужен лишний зонд фсб с доступом ко всему диску, если от браузера нужна только функция перевода конкретного видео?
Аноним 26/02/24 Пнд 18:58:39 939112 100
2a60d83216ce90b[...].png 230Кб, 600x536
600x536
>>938514
Зачем ты купил планшет, если мог купить ноутбук?
Аноним 26/02/24 Пнд 19:13:57 939117 101
>>939108
> зонд фсб
ФСБ зондирует на уровне провайдера, алё.
Аноним 26/02/24 Пнд 19:51:26 939122 102
image.png 40Кб, 1015x666
1015x666
Сап, годачеры. Внимание, вопрос. Как мне в Godot-е в 2d игре запилить лестницу по типу пикрл?
Я использую просто спрайт персонажа, никакой скелетки. Сверху - понятно, персонаж будет "падать" (звучит, как плохое решение), а подъем? Нашел решение с помощью tween (но пока ничего не понял, т.к. слышу об этом впервые) https://gamedev.stackexchange.com/questions/183919/how-should-i-implement-stair-climbing
Какие еще есть варианты?

Просто сделать наклонную поверхность - не подойдет, будет коряво смотреться
Аноним 26/02/24 Пнд 20:06:00 939126 103
>>939122
> Какие еще есть варианты?
Ебани персонажу под ноги на джойнт невидимое кинематикбоди с шейпом в виде крестовины, и при обнаружении лестницы крути в направлении инпута. Базарю, натурал экспириенс будет!
Аноним 26/02/24 Пнд 20:38:49 939134 104
>>939122
>Просто сделать наклонную поверхность - не подойдет, будет коряво смотреться
В старых играх, если внимательно на них посмотреть, физическое представление лестниц часто было именно наклонной поверхностью. А "лестницы" были визуальной моделькой. Рекомендую учиться у дидов.
Аноним 26/02/24 Пнд 20:51:15 939140 105
>>939122
Там используется Raycast, допустим, в сторону, один на уровне стопы, второй на уровне коленки (сразу над ступенькой), соотетственно если игрок идет в сторону, если он уперся в стену, то оба рейкаста попадут в стену, а если он стоит перед ступенькой, то верхний покажет пусто, и значит можно перемещать игрока на ступеньку. дальше у них там еще какие то условия, например еще raycast вверх, чтобы не подниматься на ступеньку, если ты уперся в потолок

Ну а перемещение можешь делать любым способом.

В ответе чел добавляет еще один Raycast, сверху вниз, чтобы определить точку на ступеньке в которую пойдем.
Tween просто предназначен для плавного движения, сглаживания. yield ставит выполнение функции на паузу, пока анимация tween не закончится.
Первая анимация поднимает его вертикально на месте, до высоты ступеньки (и еще на -2 пикселя выше). Вторая анимация уже двигает его горизонтально, до точки куда изначально рейкаст пересекся с полом ступеньки.
Можешь хоть просто x++ делать. Или нарисовать Path2D и по нему проводить. Или сделать анимацию, но тогда надо чтобы ступеньки на уровне потом ей соответствовали.
Аноним 27/02/24 Втр 01:38:13 939180 106
Чего сидите, игры делойте.
Аноним 27/02/24 Втр 01:43:27 939181 107
Аноним 27/02/24 Втр 01:56:21 939183 108
>>939181
Встань и иди к мечте.
Аноним 27/02/24 Втр 07:36:11 939198 109
>>939183
Я уже встал. Уже иду. Обнял. На созвоне.
Аноним 27/02/24 Втр 07:42:41 939199 110
Для пули вообще нет смысла делать прожектайл. Она слишком быстро летит. Гораздо эффективнее, чтобы в момент выстрела оружие строило баллистическую траекторию в сторону выстрела и каждый следующий кадр из точки траектории, в которой пуля должна быть строятся рейкасты по всем предыдущим точкам, и проверяется, что пуля прострелила за это время. И кроме того, если в логику заложено что пуля может пробивать некоторые объекты меняя скорость и энергию, то от точки прострела строится новая траектория и в том же кадре пересчитываются рейкасты.
Аноним 27/02/24 Втр 11:51:11 939224 111
76953419p0.png 7050Кб, 3840x2160
3840x2160
Хочу сделать стилизованную траву с однородной покраской покраской. Для этого сделал вторую камеру сверху что бы получать карту цвета с тенями. Но как сделать что бы на второй камере объекты кроме земли были невидимы но отбрасывали тень?
Аноним 27/02/24 Втр 14:36:50 939255 112
>>939224
Сделать второй камере отдельный Environment с отключенными тенями.
Аноним 27/02/24 Втр 14:38:13 939257 113
>>939199
как пистолет в первом думе. выстрелил в противника и он мгновенно получает урон, независимо от расстояния
Аноним 27/02/24 Втр 14:42:07 939258 114
>>939257
Хорошо, спасибо, так и сделаю. Главное не волнуйся, не нервничай, положи нож.
Аноним 27/02/24 Втр 15:25:44 939268 115
>>939255
Наоборот для второй камеры нужны только тени и plane на которую эти тени отбрасывают невидимые объекты (но невидимые они только для второй камеры)
Аноним 27/02/24 Втр 15:37:03 939271 116
image.png 9Кб, 372x248
372x248
>>939258
положу тебе в печень
Аноним 27/02/24 Втр 15:43:50 939272 117
>>939271
Полиция! Убивают!
Аноним 27/02/24 Втр 18:14:28 939299 118
1635241837254.png 23Кб, 328x216
328x216
>>939224
Емнип, продублировать объекты, сделать их shadow only. По возможности (смотря какой эффект делаешь) при этом у основного объекта убрать тень. Тогда получится, отрисовка всех объектов без тени + отрисовка всех теней без объектов, плюс какой-то небольшой оверхед на дубликаты нод + оверхед на вьюпорт. В общем, если сделаешь, можешь поделиться замерами производительности.
Аноним 27/02/24 Втр 19:57:16 939314 119
1690951911127.jpeg 108Кб, 1200x628
1200x628
1614189112414.png 881Кб, 1242x408
1242x408
>>939199
Можно рассчитать. Пуля из калаша/м16 летит ~1000м/сек.
При 30 фпс это ~30м/кадр, при 60 фпс ~15м/кадр
Так что надо понять, есть ли на карте зона длиной больше 15-30м.
Для сравнения 5м это парковочное место (легковушка + место для выезда). Итого 3-6 машин в длину
Для примера возьмем CS dust2, для нее легко нашелся пик с измерениями, и в ней хороший микс коротких/средних дистанций
100 юнитов = 100 дюймов = 2,54м (+-на игровые условности типа огромных дверей)

Видим несколько коридоров 2000-3000 юнитов = 50-75м, это больше 15-30м, физическая не-хитскан пуля летела бы 2-5 кадров.

Это если не брать большие дистанции, в играх с открытой местностью, может быть и 300-500-800м, конечно там перекрывают леса и здания, но вот например на пик2 в таркове посередине дороги 400м стоит. А еще пуля в воздухе замедляется, на которких расстояних неважно, на 500м уже процентов на 30

Это, конечно, если упарываться в реализм. А если упарываться в фан, то это может быть в обе стороны. Не только в сторону хитскана, но и наоборот, в сторону медленно летящих ракет, от которых можно увернуться.
Аноним 27/02/24 Втр 20:05:41 939316 120
>>939314
Разумеется речь про снайперские игры на открытой местности, где сидишь в подлеске со слонобойкой, измеряешь ветер, закладываешь поправку в оптику, прицеливаешься, выходит цель из бункера, задерживаешь дыхание. БАХ!

Мимо.

По твоей позиции летят какахи.
Аноним 27/02/24 Втр 22:15:17 939359 121
Вы ходьбу по лестнице доделайте сначала, а то уже попенворлды со снайперами тут обсуждаете)))
Аноним 27/02/24 Втр 22:32:45 939361 122
1620839947654.mp4 1489Кб, 854x480, 00:00:16
854x480
Аноним 27/02/24 Втр 22:43:18 939363 123
1709062998007.png 80Кб, 329x375
329x375
>>939361
Панцушот!

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

Ой, блять, я случайно секрет успеха Скайрима спалил. Срочно удолите пост!
Аноним 27/02/24 Втр 22:47:03 939364 124
image.png 1827Кб, 1920x1440
1920x1440
Сначала рабочий прототип с дефолтыми ассетами и icon.png, потом все остальное. Только так и никак иначе.
Аноним 27/02/24 Втр 22:49:42 939365 125
>>939364
> рабочий прототип с дефолтыми ассетами
Там кстати есть челик, Kenney, нахуячил горы ассетов на любой случай. Опенсорц! Двадэ и тридэ! Налетай, годаны!
Аноним 27/02/24 Втр 22:51:17 939366 126
>>939364
По опыту геймджемов, еще надо сразу audiobus и базовые звуки прикрутить.
Аноним 27/02/24 Втр 22:53:04 939367 127
image.png 1393Кб, 1465x750
1465x750
>>939365
Даже это лишнее. Тру путь он вот.
Аноним 27/02/24 Втр 22:57:25 939369 128
>>939367
> Тру путь в максимально быстрые сроки проебать мотивацию.
Тру стори. Жиза.
Аноним 27/02/24 Втр 22:57:58 939370 129
Аноним 27/02/24 Втр 22:58:40 939371 130
>>939369
Сочувствую, раз тебе для проеба мотивации нужно так мало.
Аноним 27/02/24 Втр 23:05:15 939373 131
>>939371
Спасибо, братишка!
Аноним 28/02/24 Срд 00:39:28 939381 132
>>939122
Но зачем, а главное нахуя?
Но ок, вот что я предлагаю.
1. Физически лестница - это наклонная поверхность. Тушка-капсула движется по ней.
2. Нюанс - процедурная анимация. На ступеньках маркеры, и персонаж должен наступать только на них. Это никак не влияет на движение тушки, только на анимацию ног.
В принципе, на скелетах в четвёрке это реально сделать. Но лично я не вижу смысла. Куча возни, куча потенциальных мест для бага, а заметно всё равно не будет.
Аноним 28/02/24 Срд 00:41:57 939382 133
>>939381
А, забыл про
>Я использую просто спрайт персонажа, никакой скелетки.
Ну тогда просто синхронизировать анимацию со ступеньками, чтобы кадр с шагом приходился обязательно на ступень.
Аноним 28/02/24 Срд 00:47:29 939383 134
>>939381
>Физически лестница - это наклонная поверхность.
Разве персонаж не будет тогда часто висеть в воздухе?
Аноним 28/02/24 Срд 02:45:13 939389 135
image.png 295Кб, 786x1000
786x1000
Делойте игры, хватит спать.
Аноним 28/02/24 Срд 03:54:29 939391 136
>>939383
Как нарисуешь, так и будет.

Годаны, подскажите одну вещь. Я пытаюсь отловить инпут через _unhandled_input (потому что хочу его захандлить другой нодой). Но по пути кто-то третий его хандлит. Как понять, кто именно?
И вообще. Может ли вообще нода без какой-либо поверхности получать мышиные события через унхандлед? Или их гарантированно сожрёт окружение?
Аноним 28/02/24 Срд 04:07:10 939393 137
>>939391
В дебаггере есть вкладка misc, в ней показывается на кого ты кликнул. Получать может, да - проверил на пустой Node, это та, что белая, без ничего.
Аноним 28/02/24 Срд 05:00:15 939394 138
А что страшного произойдёт, если я буду коннектить уже законнекченные сигналы, не проверяя is_connected? Ну то есть, да, ошибку показывает. Но ведь эта проверка уже есть в движке. Так ли необходимо дублировать её в скрипте?
Аноним 28/02/24 Срд 07:04:43 939399 139
aonlajnigry.net[...].jpg 143Кб, 900x506
900x506
Игра с видом сверху по типу диаблы в 3d, как реализовать большую бесшевную карту и что бы не пососать по производительности? Я так понимаю мне терейн нужен и как то его делить, И объекты выгружать загружать в зависимости от дальности камеры? Как это вообще делать?
Аноним 28/02/24 Срд 07:20:14 939400 140
>>939399
Например так.
https://github.com/Yogoda/ZoneLoadingSystem
Или самом разбить на квадратные чанки.
Террейн можно делать плагинами
Но придется повозиться в таком случае со стыками, как рисовать один большой террейн. Хотя может новые плагины в 4-ке уже умеют, не смотрел.
Аноним 28/02/24 Срд 07:33:04 939401 141
Аноним 28/02/24 Срд 08:12:01 939404 142
>>939401
Это >>939401 то самое дружелюбное комюнити годот?
Аноним 28/02/24 Срд 08:13:23 939405 143
>>939363

Я тебя услышал, добавляю мыльно-пиксельные нескучные панцушоты в своё поделие.
Аноним 28/02/24 Срд 12:37:33 939433 144
1709113052721.webm 714Кб, 640x360, 00:00:08
640x360
>>939404
А ты точно не движкосрачер, выкатившийся из своего загона движкосрачерского?
Аноним 28/02/24 Срд 16:27:01 939463 145
>>939404
А что тебя не устроило собственно? Тебе дружелюбно подсказали термин. Дружелюбно != написать игру за тебя.
Аноним 28/02/24 Срд 17:29:20 939477 146
>>939404
>>939463
Я не годотер местный, но поддержу: никто не подвязывался писать готовое решение, дали направление, куда копать, если что-то ещё неясно -- надо конкретизировать вопрос и просить подробнее обьяснить, но если решил на указанный вектор, говорить "это самое дружелюбное коммьюнити годот?", то может не стоит заходить к злым годотерам, которые тебя бедного обижают? Или ты мазохист?
И ещё раз: я не годотер, а интересующийся, потому им предъвлять за мой пост не надо.
Аноним 28/02/24 Срд 18:27:31 939491 147
Часики-то тикают.
Аноним 28/02/24 Срд 19:54:29 939504 148
>>939491
Режь зелёный провод.
Аноним 28/02/24 Срд 21:32:08 939515 149
Аноним 28/02/24 Срд 22:28:00 939519 150
>>939515
> Почему жирухи?
Потому что пицца-доставка, кока-кола, картошка-фри и крылышки.
> Разве годот не лайтовый движок?
Годот?
Аноним 28/02/24 Срд 22:37:44 939521 151
>>939515
Почему что? Любые люди могут взять бесплатный опенсорс движок и провести геймджем?
Аноним 28/02/24 Срд 23:59:27 939525 152
>>939521
Так-то это официальный комьюнити менеджер годота на зарплате.
Аноним 29/02/24 Чтв 00:03:38 939527 153
>>939525
А, понял, официальный канал. Да, помню ее обсуждали, что у нее скилл выбивать гранты и донаты. Ну вроде пока с этим все хорошо.
Аноним 29/02/24 Чтв 14:37:32 939551 154
Сап, аутист с планшетом на связи.


>>938504
>для полноценного девелопа нужна перканя
Несколько лет назад работал в нём, хочу в мобильное 2д на нём. Юнька меня сильно беспокоит в последнее время, да и 2д там какое-то хреновое.
>>938518
Самасунг Галаху? Не?
>>938523
>Ты чет взял и превратил один из самых легких и беспроблемных движков в какой-то бег с препятствиями.
Вот сейчас в голос, он не лёгкий, он другой, хоть сам редактор действительно простой. Но со своими подводными в виде кодинга, который очень требователен к разрабу, ну и конечно эти уёбищные отступы, табы блядь, я даже вспомнил почему меня так бесят эти питоновские отрыжки. И почему я сразу пересел на родной шарп.

>>938526
И почему у тебя 3 версия, если 4.2 уже есть
Она легче, меньше потребляет ресурсов, там есть все технологии которые мне нужны для 2д, сцены легко и быстро билдятся и я сразу вижу как игра будет выглядеть на планшете.
4.2 его я установил первым в надежде что там будет искоробки поддержка шарпа, но так как такого не оказалось, да и билдилось всё подолгу, решил попробовать старую версию.


Не ну и чего тутор со скрипом и матом, тыкая в милиписечные конки я почти выполнил, единственно не совсем понял какой нод отвечает за отображение кнопок на эране планшета, вроде это должен быть UI узел, судя по другим примерам, но его я не обнаружил.
Аноним 29/02/24 Чтв 15:02:35 939556 155
Аноним 29/02/24 Чтв 19:05:24 939585 156
image.png 38Кб, 593x264
593x264
image.png 7Кб, 230x157
230x157
Ну и чего у меня blend-файлы не импортит нихуя? Точнее подхватывает вброшенный файл, но в дереве он отображается с красным крестиком, на сцену не закидывается, и редактор снова и снова пытается его импортнуть в проект, но безуспешно.

Всё настроил по гайдам: указал галочку импорта blend-файла в настройках проекта, и указал папку блендера в настройках самого редактора. Пробовал буквально хотя бы куб закинуть, но не хочет нормально импортить и всё. ВТФ?
Аноним 29/02/24 Чтв 20:51:46 939593 157
>>939585
> и указал папку блендера
Насколько я помню, там надо указывать приложение блендера, а не папку.
Аноним 29/02/24 Чтв 21:16:56 939596 158
image.png 25Кб, 1056x413
1056x413
>>939593
Нет. Именно путь к директории нужен. К тому же Годот сам его нашёл. При попытке указать именно exe-шник, в настройке всё равно остаётся только путь к директории блендера.
Аноним 29/02/24 Чтв 21:20:37 939597 159
>>939596
Мдауш, перепутал, сорян. Ну, у меня всё работает. Может версия блендера не подходит? Может файл испорчен? Может диск с ошибками?
Аноним 29/02/24 Чтв 21:21:01 939598 160
>>939585
Не может быть связано с версией блендера? В другом треде каком то видел упоминание
Аноним 29/02/24 Чтв 21:27:18 939601 161
1709231238905.png 19Кб, 556x248
556x248
Ставьте блендер через scoop и у вас будут все версии с момента первой установки (или с момента последней очистки вручную, потому что автоматически он старые версии не чистит).

Канешн, места будет жрать много, зато на вот такой случай вы будете приятно удивлены тем, что ничего дополнительно качать не надо.
Аноним 29/02/24 Чтв 21:48:50 939605 162
>>939598
И джижок и блендер самые свежие. Блендер сам работает как надо. Пытался буквально создать новый файл с одним кубом. Его тоже не может экспортнуть.
Аноним 29/02/24 Чтв 21:54:57 939606 163
>>939605
Там белым по синему написано блендер 3 патч.
> и блендер самые свежие
Самый свежий блендер 4.
Аноним 29/02/24 Чтв 22:11:16 939610 164
>>939606
Блять. Заработало. Спасибо!
Аноним 29/02/24 Чтв 23:30:38 939619 165
image.png 632Кб, 980x646
980x646
Делойте
Аноним 29/02/24 Чтв 23:35:59 939620 166
>>939619
Делаю, к сожалению. Но ничего, потом с новым опытом вернусь на годот, это однозначно.
Аноним 29/02/24 Чтв 23:39:32 939621 167
Господа, проблема. Я делаю дефолтный yield(get_tree().create_timer(0.15), "timeout") для таймаута. Пока таймаут идет, есть шанс что тело, с которым функция работала, уже уничтожилось. Тогда код упадет с previously freed instance.

И сейчас я понимаю что подобных мест в моем коде много. Как быть?
Аноним 29/02/24 Чтв 23:42:02 939622 168
>>939620
Используй паттерн MVP (Model-View-Presener) и тогда сможешь легко переносить свою модель игры с движка на движок. Главное, чтобы модель ничего не знала о движке. Дивжок (презентер) чтобы ничего не знал о модели. И только вью будет специальным адаптером, знающим обо всех и движок будет знать о нём.
Аноним 29/02/24 Чтв 23:44:42 939623 169
>>939621
Как бы хотелось взять и обернуть все такие места в один большой try:catch
Аноним 29/02/24 Чтв 23:44:57 939624 170
>>939621
> Как быть?
Думать над архитектурой. Вот эти одноразовые таймеры - это игрушка дьявола. Они нужны только для узкоспецифичных задач. А ты их напихал повсюду. Избавляйся от них.
Что тебе нужно? 15 миллисекунд подождать? Накинь в класс переменную и аккумулируй в неё дельту, пока 0.15 не накапает.
Аноним 29/02/24 Чтв 23:53:17 939625 171
>>939624
Натыкал короче if not is_instance_valid: abort, return

Быстрее чем архитектуру перебирать. Нет, не завалюсь. Но в следующем проекте учту.
Аноним 29/02/24 Чтв 23:57:27 939627 172
>>939625
> Но в следующем проекте учту.
Смотри мне там! Приду - проверю!
грозит пальцем
Аноним 29/02/24 Чтв 23:59:25 939628 173
>>939627
Ок, шэф! Как удобно быть анонимом, пообещал и забыл.
Аноним 01/03/24 Птн 00:03:14 939629 174
Аноним 01/03/24 Птн 00:21:08 939632 175
Аноним 01/03/24 Птн 01:08:49 939640 176
>>939632
Арт напоминает те спамные рекламы фейковых мобильных дрочилень, аля спаси принцессу над котлом.
Аноним 01/03/24 Птн 12:26:14 939654 177
Хуле вы все тут такие умные нахуй? Я чувствую себя тупым!
Аноним 01/03/24 Птн 12:36:20 939655 178
>>939654
чувствуй себя недозаточенным
Аноним 01/03/24 Птн 12:55:00 939658 179
>>939654
Я тоже тупой. Вместе будем держаться.
Аноним 01/03/24 Птн 13:06:38 939659 180
>>939654
Я чувствую незакрытый гештальт: как будто бы существует способ научить геймдеву даже таких анонов, которые чувствуют себя тупыми, но способ этот найти не могу.
Аноним 01/03/24 Птн 13:45:14 939668 181
>>939659
Если тебе интересно, то больше всего проблем у меня сейчас с интерфейсом и звуками. Че как рисовать, делать ума не приложу. А ведь еще с кодом разбираться надо. Ну и пиздец. Залетел в геймдев с двух ног без нихуя.
Аноним 01/03/24 Птн 14:14:46 939671 182
>>939658
>>939655
Гоу в юнити, там это не баг, а фича, будем вместе усираться и орать друг на друга.
Аноним 01/03/24 Птн 14:29:59 939674 183
100022190p0mast[...].jpg 906Кб, 1200x915
1200x915
Кто компелировал движок, объясните эту хуйню, должен ли я делать # Build export templates часть? Что она вообще даёт? (Вот оффицальный гайд по компиляции):

# Build editor binary
scons p=windows target=editor module_mono_enabled=yes
# Build export templates
scons p=windows target=template_debug module_mono_enabled=yes
scons p=windows target=template_release module_mono_enabled=yes

# Generate glue sources
bin/godot.windows.editor.x86_64.mono --headless --generate-mono-glue modules/mono/glue
# Build .NET assemblies
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=windows
Аноним 01/03/24 Птн 14:38:07 939676 184
image.png 1489Кб, 1280x720
1280x720
Аноним 01/03/24 Птн 14:40:45 939677 185
>>939668
Какие туториалы смотрел? Что из просмотренного пытался повторить? Что из повторённого не получилось?
Аноним 01/03/24 Птн 14:44:54 939680 186
>>939674
> Что она вообще даёт?
Она даёт темплейты экспорта.
> должен ли я делать # Build export templates часть?
Если твой билд ничем не отличается от релизов, то не должен. Но тогда непонятно, зачем ты конпелируешь? Значит, твой билд чем-то отличается. Вот ты собрал редактор, что-то поделал в нём, а потом начинаешь экспортировать проект. Но темплейты-то ты где возьмёшь? Если движок подтянет официальные темплейты, в них не будет твоих фич, которые ты вконпелировал в редактор. Таким образом, конпелируя свой билд, ты должен конпелировать и темплейты под него.
Аноним 01/03/24 Птн 14:59:37 939685 187
>>939680
Ок, с релизом понятно, сейчас уже собирается. Но вот это для чего тогда? scons p=windows target=template_debug module_mono_enabled=yes
Аноним 01/03/24 Птн 15:04:56 939686 188
>>939685
> p=windows
Для венды.
> target=template_debug
Для дебаг темплейта под венду.
> module_mono_enabled=yes
Для дебаг темплейта с включённым шарпом под венду.
Аноним 01/03/24 Птн 15:09:55 939687 189
>>939686
>Для дебаг темплейта под венду.
Так что за дебаг темплейт? Игру же в редакторе проверить можно
Аноним 01/03/24 Птн 15:12:52 939688 190
1706492361811.webp 12Кб, 1081x659
1081x659
>>939685
При экспорте есть галочка, делать релиз или дебаг версию. Видимо, это для тех, кто хочет отладить именно билд игры, а не запущенную из под редактора версию, мало ли какая то разница может всплыть, если редактор не все чистит при инициализации
Аноним 01/03/24 Птн 15:13:09 939690 191
>>939687
Темплейт с отладочными символами для сторонних отладчиков.
Аноним 01/03/24 Птн 15:33:26 939695 192
123.png 318Кб, 1539x899
1539x899
Ну вот скомпелировал темплейт релиз, а как этот exe добавить? Импорт фром файл не работает
Аноним 01/03/24 Птн 15:33:49 939696 193
Аноним 01/03/24 Птн 15:35:41 939697 194
>>939677
Я не нашел туториалов по отрисовке ui, только о том как настроить узлы с готовыми ассетами. Про создание звуков даже не гуглил, такого нет кмк.
Аноним 01/03/24 Птн 15:40:53 939699 195
1556460801959.png 16Кб, 647x170
647x170
1613358145658.png 9Кб, 900x190
900x190
1667248369389.png 5Кб, 338x327
338x327
Аноним 01/03/24 Птн 15:43:10 939700 196
1592012361485.png 2Кб, 445x36
445x36
>>939699
P.s. у 3-го папка templates, в 4-ке export_templates
Аноним 01/03/24 Птн 16:13:29 939704 197
>>939671
Я лучше нахуй пойду, чем к юнити прикоснусь после уебанских изменений жадных пидоров.
Аноним 01/03/24 Птн 16:17:33 939708 198
>>939699
>>939700
Короче разобрался, эти exe надо в костум темплейт запихивать где настройки компиляции для конкретного проекта, если по путям распихать нихуя работать не будет. Естественно про это нигде не написано и никто про это не говорит, пердолинг конечно пиздец.
Аноним 01/03/24 Птн 16:52:11 939714 199
1709301132606.png 14Кб, 525x134
525x134
>>939708
> про это нигде не написано и никто про это не говорит
Там в окне настройки экспорта всё прекрасно написано. Как Хуан мог предвидеть, что ты не умеешь в... ой, ладно. Разобрались и ладушки! Удачной тебе сборки.
Аноним 01/03/24 Птн 16:53:44 939715 200
>>939704
Не ходи нахуй, оставайся у нас! Хоть мы и будем посылать тебя периодически, но ты держись и не уходи. И тогда сделаешь свою игру!
Аноним 01/03/24 Птн 17:10:21 939719 201
>>939715
Я и так делаю свою игру, нахуй вы мне сдались?
Я кстати не годотер, а интересующийся из другого треда.
И я собираюсь в определённый момент получать бабло с этого, как пойму что мне не стыдно постить свои поделия, потому юнити даже не рассматриваю.
Аноним 01/03/24 Птн 17:16:25 939720 202
>>939708
> если по путям распихать нихуя работать не будет.
Будет конечно, так и делал, была папка 3.x.dev Или как то так.
Аноним 01/03/24 Птн 17:42:52 939722 203
image.png 1354Кб, 1280x722
1280x722
литерали я
Аноним 01/03/24 Птн 17:54:25 939727 204
>>939722
У меня литералли в плане есть: на паузе до выхода 4.3 . Там есть метод чтобы на навмеше можно было случайную точку находить
Аноним 01/03/24 Птн 18:48:20 939739 205
>>939719
>в определённый момент получать бабло с этого
Ты резидент? Готовься прокачивать хитрожопость и/или связи, чтобы санкции обходить.
Аноним 01/03/24 Птн 19:01:18 939742 206
Так, я тут немного запутался. Допустим я хочу веб билд в я.игры, и в идеале чтобы он работал на iOS (поскольку не хочу делать нативный билд и связываться с аккаунтом разработчика эппл)
Но я читал, что в крайних версиях iOS (12+? 14+?) депрекейтит OpenGL. Что это означает?
Значит, на iOS Godot 3 (GLES2/3) вообще не заработает, и будет просто черный экран? Как будет работать 4.3? Я сейчас прочитал что там вообще что-то в 4.3.dev3 не заработало и надо проверить свежайшую 4.3.dev4 https://github.com/godotengine/godot/issues/88964
Там предлагается какая нибудь прослойка в MetalANGLE или что то подобное? Или там WebGL 2.0?
Дело в браузере Сафари? Ситуация может как то улучишиться, вроде бы эппл сейчас в ЕС и, возможно РФ подводят к установке сторонних браузеров?
Здесь вообще указано https://docs.godotengine.org/en/latest/tutorials/export/exporting_for_web.html
Что "Godot 4's HTML5 exports currently cannot run on macOS and iOS due to upstream bugs with SharedArrayBuffer and WebGL 2.0", ну насколько мы поняли SharedArrayBuffers уже исправлены, а про проблемы WebGL 2.0 я еще не нарыл.
Кто-то тестил со свежего айфона? Например на итче или ЯИ, игру на какой нибудь версии 3.5.х или 4.3.х?
Какие вообще варианты? Сделать игру на 3 и забить на iOS в вебе? Делать на 4-ке, но заработает ли? В принципе я читал что на я.играх процент игроков с мобилок может быть и низким.
Аноним 01/03/24 Птн 19:57:04 939753 207
>>939742
Эпл вообще для богатых. И для богатых пользователей и для богатых разрабов. Если у тебя нет денег на эпл, чтобы лично девелопить на живом железе, то ты там не желателен, тебя не звали, тебе не рады, уйди оттуда и не приходи, пока не станешь богат.
Аноним 01/03/24 Птн 20:02:35 939756 208
Когда Хуан сделает нам нанит, люмен и ваще?
Аноним 01/03/24 Птн 20:18:47 939760 209
>>939756
Когда ты игру сделаешь? И ваще.
Аноним 01/03/24 Птн 20:50:32 939768 210
>>939756
та погоди ты, дай лестницу в платформере доделаю
Аноним 01/03/24 Птн 22:40:24 939779 211
image.png 942Кб, 870x1269
870x1269
Каждого из вас так
Аноним 01/03/24 Птн 23:05:50 939780 212
Может ли узел принимать сигналы от нескольких кнопок одним методом?
Делаю меню выбора персонажей, хочу чтобы сигнал pressed() от кнопки передавал в корневой нод или сразу в кнопку Play - как лучше? название этой кнопки.
Вот типа есть 2 кнопки: SelectSlavik с надписью SLAVIK, и SelectBatya с надписью BATYA. При нажатии на любую из кнопок она посылает pressed(self.text) (либо кастомный сигнал, если с помощью pressed нельзя ничего передавать, ещё не разобрался), а в принимающем скрипте стоит одна функция
func _on_YOBA_button_pressed(characterName):
// selected_character = characterName # соответственно SLAVIK либо BATYA

которая ловит текст кнопки и сохраняет его, чтобы при нажатии кнопки Play началась игра выбранным персонажем
Аноним 01/03/24 Птн 23:06:32 939781 213
Вот бы кто мне рисовал спрайты и тайлмапы за бесплатно, а я бы просто код пердолил, я многого прошу что-ли?
Аноним 01/03/24 Птн 23:12:18 939783 214
>>939781
Ты только что нейросеть.
Аноним 01/03/24 Птн 23:13:07 939784 215
>>939780
>Может ли узел принимать сигналы от нескольких кнопок одним методом?
Конечно. В твой дальнейший текст не вчитывался, ты главное соедини сигналы правильно.
Аноним 01/03/24 Птн 23:16:09 939785 216
>>939780
$SelectSlavik.connect("pressed", self, "onPressed", [$SelectSlavik])
$SelectBatya.connect("pressed", self, "onPressed", [$SelectBatya])

func onPressed(button):
print(button.text)

Не помню как в4-ке коннект пишется.
Вроде, $SelectSlavik.pressed.connect( и так далее
Аноним 01/03/24 Птн 23:26:00 939786 217
>>939785
Сигнал в четвёрке превратился в объект первого класса! Не знаю, что это значит, но пишется так:
> Slavique,pressed.connect(self, on_pressed, [Slavique]
Аноним 01/03/24 Птн 23:54:17 939793 218
>>939783
ху-е-та. Нейронка не умеет в 2д пиксель арт, а сидеть перерисовывать за ней еще геморней чем самому рисовать. Хотя.. Запалю годноту анонам, для асеприте, платную конечно, но тот кто сможет ее себе позволить нихуя не пожалеет, pixellab.ai кличат, эх были бы у меня лишние деньги и возможность оплачивать..
Аноним 02/03/24 Суб 02:45:01 939797 219
>>939793
>pixellab.ai
Посмотрел их. Впечатляет. Особенно фича с consistent style. И в анимацию умеет. Но все равно анимирование занимает по 20 минут, а это, по моему мнению, слишком много для такого унылого занятия. Подожду когда анимацию сделают в 1 кнопку, а пока продолжу свое простенькое 3д.
Аноним 02/03/24 Суб 09:05:35 939806 220
Аноним 02/03/24 Суб 10:22:27 939811 221
>>939793
> pixellab.ai
Годно.
Но я так понимаю она только генерирует пиксельарт на основе уже имеющегося стиля + описание?
Есть ли что-то подобное или может какой пайплайн, чтобы генерировать пиксель-арт(фоны\элементы интерьера и персонажей) по одному только описанию?
Все никак не могу найти 2д художника для мобилки, поэтому думаю перекатиться в пиксельную графику и нейронки.
Аноним 02/03/24 Суб 12:57:14 939835 222
>>939811
>Все никак не могу найти 2д художника для мобилки, поэтому думаю перекатиться в пиксельную графику и нейронки.
Так попробуй сначала просто нейронки для 2д, не пиксель.
Аноним 02/03/24 Суб 14:45:33 939847 223
Аноним 02/03/24 Суб 16:45:07 939872 224
6afd800574ed78b[...].jpg 106Кб, 1432x552
1432x552
Читаю что у годот проблемы с большими играми. Вот например я буду делать игру с видом сверху как в диабло но со стилизованной графикой. Но большой мир и бесшовная карта, я пососу и если да то почему?
Аноним 02/03/24 Суб 16:53:41 939873 225
>>939872
Что-нибудь раньше делал из игр? На любом движке.
Аноним 02/03/24 Суб 17:04:12 939875 226
>>939872
> у годот проблемы с большими играми
Проблемы с большими играми не у движка, а у Кирилла, блять, сколько можно вам повторять? Напридумываете себе, что можно скайрим в одно ебало сделать, а потом жалуетесь, что движок виноват.
Аноним 02/03/24 Суб 17:09:44 939878 227
Как же меня спасает метадата на объектах. Вместо создания отдельной переменной и пихания ее внутрь, просто цепляешь мету, используешь, выкидываешь. 10 из 10 фича.
Аноним 02/03/24 Суб 17:18:52 939880 228
>>939872
При виде сверху - нет, я уже писал, бери аддон Zone loading, или сделай свои квадратные чанки, при виде сверху нет тех проблем что есть у игр типа геншина или гта, где ты можешь залезть на вершину горы и тебе надо видеть вообще все, и гору и несколько городов с разными домиками и разные локации с лавой, водой и так далее. У тебя только то, что есть в кадре плюс минус.
Второй твой бро это Multimesh Instance тоже как вариант через плагин Scatter. Потому что на уровнях часто много повторяющихся вещей, типа поручней-столбиков.
Третий бро это пулы объектов, для пулек и всего такого.
Еще желательно сделать загрузку многопоточной и включить прекомпиляцию шейдеров.
В принципе за неделю-две можешь сделать прототип, скачав прям готовых моделек которые в этом треде даже кидали, и узнать подходит или нет.
Так что вряд ли большой мир внесет какие-то дополнительные проблемы против просто одной 3д сцены (производительность которой ты тоже можешь оценить на всяких демках)
Собрать что ли самому вомпирсурвайлайк по быстрому...
Аноним 02/03/24 Суб 17:59:40 939892 229
Как в 3д сделать самое дешевое зеркало? Реализм не нужен, но нужны отражения.
Аноним 02/03/24 Суб 18:03:34 939893 230
>>939892
Рендерить дублирующую модельку. Так еще в каком то допе к халфе было
Аноним 02/03/24 Суб 18:06:35 939895 231
>>939893
А мир вокруг модельки как?
Аноним 02/03/24 Суб 18:15:33 939897 232
>>939893
Забавно, в киберпанке с точностью наоборот, движок отражает всё, кроме персонажа.
Аноним 02/03/24 Суб 18:51:20 939900 233
>>939895
Так же: дубликат мира в котором ходит отражённая моделька
Аноним 02/03/24 Суб 18:52:32 939902 234
Аноним 02/03/24 Суб 19:14:39 939904 235
Аноним 03/03/24 Вск 00:20:38 939935 236
Время делать игры.
Аноним 03/03/24 Вск 01:05:18 939954 237
>>939935
Время пересматривать записи стримов старых игор!
Аноним 03/03/24 Вск 01:06:09 939955 238
>>939954
Это могли бы быть стримы твоей игры, но ты спал.
Аноним 03/03/24 Вск 01:07:23 939956 239
Аноним 03/03/24 Вск 02:22:48 939968 240
OIG4 (6).jpeg 242Кб, 1024x1024
1024x1024
OIG2 (8).jpeg 115Кб, 1024x1024
1024x1024
image (6).png 881Кб, 1024x1024
1024x1024
OIG4 (8).jpeg 251Кб, 1024x1024
1024x1024
>>939793
>Нейронка не умеет в 2д пиксель арт
Все еще лучше умеет чем неумеющий васян
Аноним 03/03/24 Вск 02:49:52 939970 241
>>939968
Тоже сначала упоролся, но увы это практически не получится использовать. Ну только если у тебя не что-то вроде казуалки где эти картинки просто как фишки будут двигаться.
Аноним 03/03/24 Вск 02:52:34 939971 242
>>939968
А еще, есть такая проблема, которая становится понятна после очень долгого использования далле. Это видно по твоим крайним пикам - нейронка попадает в некий пузырь стиля, и поэтому результат будет слишком узнаваться, потому что и другие игроделы будут пользоваться ей же. Ну это не считая мелочи, что надо сначала как то привести это к пиксельной сетке (тут такую штуку кинули, но я пока не пробовал https://github.com/Astropulse/pixeldetector )
Аноним 03/03/24 Вск 05:51:02 939977 243
15428884775042.jpg 132Кб, 915x1024
915x1024
А как тут прозрачную воду с отражениями сделать?
Аноним 03/03/24 Вск 05:51:29 939978 244
Аноним 03/03/24 Вск 06:07:32 939979 245
>>939811
Она и так и так генерит. Можешь и голое описание совать, можешь и референсы скармливать.
Аноним 03/03/24 Вск 08:39:21 939987 246
>>939977
Скачай любой из десятков шейдеров и посмотри как там сделано
Аноним 03/03/24 Вск 10:38:42 940009 247
Аноним 03/03/24 Вск 19:22:04 940202 248
Я не пони, чем quadmesh отличается от planemesh?
Аноним 03/03/24 Вск 20:12:24 940212 249
>>940202
Свойствами в инспекторе.
Аноним 03/03/24 Вск 21:02:48 940226 250
>>940202
Забавная история, в общем "так исторически сложилось", с точки зрения программирования, Quad определяется как 4 точки по углам, а Plane как точка в пространстве и угол. Причем про Plane в 3-ке долго висело предупреждение что он deprecated из за глюков, но выяснилось что это не глюки, а математика так работает, и надо просто его сабдивить на большее кол-во кусочков. В общем в результате по опросам так и не смогли определиться какой из них нужнее, квады для частиц и постпроцесса по умолчанию поперек экрана, а плейны горизонтально для самодельных террейнов.
https://github.com/godotengine/godot-proposals/issues/4516
Аноним 03/03/24 Вск 22:18:27 940237 251
>>940226
Фига подробности. Вроде понял. Плейн значит сабдивайдим на под-плейны, в результате получаем террейн, а квад он квад и есть. И если нужно простое ровное полотно, то используем квад.
Аноним 04/03/24 Пнд 02:37:52 940267 252
image.png 61Кб, 589x398
589x398
Аноним 04/03/24 Пнд 02:54:57 940269 253
>>940267
Это потому, что многие паттерны пришли совсем из другой индустрии - корпоративные, тяжелые приложения и сайты, и решают другие задачи, в частности взаимозаменяемость работников.
Паттерны - это не магия, это просто повторяющаяся закономерность в коде, которой дали имя. А использовать или не использовать надо смотреть индивидуально. В частности с точки зрения оверхеда, на который в корпоратах покласть, клиенты подождут.
Об архитектуре надо думать, в любой игре больше чем на недельный геймджем. Когда думаешь, как расположить ноды в сцене, разделить ли визуал и коллайдеры на отдельные ветки, как сделать всплывающие окошки, как сделать сцену, чтобы ее можно было переиспользовать на другом уровне или кастомизировать врага, будешь ли использовать сцену или json - вот уже и архитектура.
Аноним 04/03/24 Пнд 09:14:06 940282 254
>>939811
Поигрался, прикольно, но пока нет.
Продолжу дальше пилить логику проекта и прототип доделывать, визуал потом. Думаю это верный путь.
Аноним 04/03/24 Пнд 11:00:03 940288 255
>>940282
>Продолжу дальше пилить логику проекта и прототип доделывать, визуал потом
База, основа
Аноним 04/03/24 Пнд 11:12:11 940289 256
>>940269
То, что ты перечислил, приходит с опытом и делается практически автоматом. Думаю чел на скрине говорит про вот эти бесконечные переписывания кусков кода, чтобы удовлетворить своего внутреннего архитектора-окрщика, хотя в целом и так ок, и переписывания можно было избежать добавив десятку ифов. Этим заниматься можно долго и масштабно, а игра тем временем не делается.

Плюс как заметили в том треде, корпоративные сайты и приложения поддерживаются долго, их постоянно надо дорабатывать и актуализировать. Игры это "релизнул и забыл".
Аноним 04/03/24 Пнд 16:42:52 940317 257
>>940289
>Игры это "релизнул и забыл".
Зависит от игры, планов на расширение/дополнения, сингл/мульти направленности особенно.
Например, делаю игру с несколькими механиками и уровнями, если заходит, захочу добавить новые главы, новые механики, чтобы их просто добавлять без переписывания всего.
Играю в одну ммо которая тянет уже больше 15 лет. И там постоянно у них боль и страдание, очередная обнова привела к - крашам от звука нового пета, крашам от выхода в меню, тормозам если выйти в другую локацию, народ бугуртит и массово отказывается от подписок. Конечно мои игры 15 лет не проживут, но и одноразовыми делать не хочется.
Аноним 04/03/24 Пнд 16:50:33 940320 258
>>940317
>захочу добавить новые главы
Если популярность имеется, то почему бы тогда не сделать вторую часть игры? Кэша больше, видимость выше. К примеру есть франшиза, Swords and Sandals, автор - соло-идюк, последние версии как раз на годоте пилит.
>в одну ммо которая тянет уже больше 15 лет
Во что гоняешь?
Аноним 04/03/24 Пнд 21:21:46 940394 259
А что это такое интересное у камеры появилось?
Compositor это я так понял задел на будущее на эффекты типа планарных отражений https://github.com/godotengine/godot-proposals/issues/7916
А по аттрибутам, там теперь (авто)выдержка + на выбор DOF или фокусное расстояние. Это вынесли из WorldEnvironment что ли?
Аноним 04/03/24 Пнд 21:49:07 940396 260
В прошлом треде про тени и динамическое время дня писал, что стоит делить меши на несколько мелких, а сейчас нашел еще такй вариант: Calinou: If you have objects appearing/disappearing in the shadow based on camera movement, it sounds like you have large unsubdivided meshes. Try increasing Pancake Size in the DirectionalLight3D's properties.
Аноним 04/03/24 Пнд 21:50:47 940397 261
И да, я снова вернулся к игре мечты с открытым миром и динамическим временем суток. В этот раз попробую на 4-ке.
Аноним 04/03/24 Пнд 22:33:29 940402 262
>>940396
А у меня не время дня и ночи, а обычный омнилайт у персонажа в руках, но я уже заебался.
Аноним 04/03/24 Пнд 22:38:59 940404 263
image.png 287Кб, 614x422
614x422
Все серьезно
Аноним 04/03/24 Пнд 23:24:43 940414 264
>>940402
Ну кстати не уливлюсь если омнилайт настроить сложнее чем дирекшонал
Аноним 04/03/24 Пнд 23:47:01 940420 265
>>940267
Пиздец нахуй блять. Каким же надо говноделом быть для такого. Я вот открываю те части проекта, которые писал месяц назад, и
а) легко их читаю и понимаю, как этим пользоваться,
б) не хочу ничего поменять, всё уже хорошо выстроено,
в) оно прекрасно расширяется под нужды растущего проекта,
И вдобавок
г) я могу скопипастить части из прошлых проектов с минимальными изменениями.
И это охуенно ускоряет разработку. Просто, блять, СРАЗУ писать хорошо. Приучиться не делать говна изначально - и разработка попрёт реально быстро. И дизигн паттерны как раз для этого и нужны.

А вот если открыть мой сааамый первый проект, то там говно - движущая сила. И именно поэтому наступил момент, когда я не смог его дальше писать, потому что оно было непонятное, не расширяемое и просто кривое.
Аноним 04/03/24 Пнд 23:50:48 940421 266
1709585448608.png 108Кб, 466x460
466x460
Аноним 04/03/24 Пнд 23:52:26 940422 267
>>940420
>СРАЗУ писать хорошо
И главное - без задней мысли, просто и сразу.
Аноним 04/03/24 Пнд 23:53:04 940424 268
>>940422
Не бугурти, а учи паттерны.
Аноним 04/03/24 Пнд 23:54:27 940425 269
>>940420
А покажи плиз образцы своего кода. Насладиться красотой.
Аноним 05/03/24 Втр 00:45:39 940427 270
Кароч. Палю способ, который тут для себя обнаружил, теперь буду всегда применять, он клёвый и расширяемый.

Как делать настройки.
1. Создаём класс, описывающий опцию. В нём должны быть поля: type, default, value, description. Опционально (очень желательно) в сеттерах проверять типы default и value через typeof. Опционально описываем _init(dict: Dictionary), чтобы легко создавать экземпляры из словарей.
2. Также внутри этого класса есть сигнал value_changed(new_value), который вызывается прямо в сеттере value. Вот в нём-то вся мякотка.
3. Сами экземпляры класса храним в словаре. Опционально описываем функции-интерфейсы get_option и set_option, чтобы работать со строгой типизацией.
4. При описании ноды, на которую влияет та или иная настройка, делаем так: в _реади чекаем опции и коннектим сигнал value_changed к себе в функцию, где соответственно обрабатываем.

Таким образом, не нужно перегружать настроечный скрипт - в нём ТОЛЬКО настройки. А всё их действие описывается там, где ему и место. И можно наделать неограниченное количество нод, на которых влияет та или иная опция. И вообще, такой скрипт без напряга пишется за часочек, а использовать можно где угодно.
Бонусом. Описывать сами настройки в каком-нибудь json-е или csv, и тогда скрипт будет вообще элементарно переносимый из проекта в проект.
Аноним 05/03/24 Втр 00:48:39 940428 271
>>940427
Ты изобрёл датабиндинг. Поздравляю.
Аноним 05/03/24 Втр 00:58:13 940429 272
>>940428
Не изобрёл, а спиздил.
Ну всё равно удобно же. И разработку ускоряет.
Аноним 05/03/24 Втр 07:58:46 940437 273
>>940420
>не хочу ничего поменять, всё уже хорошо выстроено
Пиздишь, антош.
Если тебе ничего не хочется переписать - тебе просто похуй на то что ты написал.
Аноним 05/03/24 Втр 13:01:58 940487 274
>>940437
Есть еще вариант: он за это время никак не развился.
Но мы, безыгорники, можем цепляться к нему как угодно, он-то знает, что у него игры есть, а у тебя нету.
Аноним 05/03/24 Втр 14:05:40 940507 275
>>940487
Вообщет он не писал что у него есть игры. Он писал что у него есть проекты.
Аноним 05/03/24 Втр 14:13:56 940508 276
А у меня есть игры. И вы делайте. Хороший код, плохой код, похуй, никто ваш код не увидит. Делайте.
Аноним 05/03/24 Втр 14:23:45 940510 277
1709637825091.gif 12Кб, 220x129
220x129
>>940508
Не могу делать игры на текущем релизе. Надо подождать 4.3.
Аноним 05/03/24 Втр 14:37:04 940513 278
Стикер 0Кб, 512x512
512x512
>>940508
а вдруг взломают мой хит и увидят все
Аноним 05/03/24 Втр 14:53:45 940517 279
1709639625371.png 27Кб, 411x252
411x252
>>940513
> и увидят все
Что именно увидят-то? Вот такое?
Аноним 05/03/24 Втр 16:05:36 940533 280
Аноним 05/03/24 Втр 17:59:09 940556 281
>>940487
> он за это время никак не развился.
Все так.
Я пока тоже безыгорный, но у меня есть реально работающие проекты использующие мой код. И из этого опыта могу сказать, что процесс улучшения бесконечен. Конечно, это не отменяет того, что сразу надо страться делать как минимум "нормально".
Аноним 06/03/24 Срд 01:34:23 940636 282
image.png 299Кб, 1099x489
1099x489
Время делать игры.
Аноним 06/03/24 Срд 10:02:54 940644 283
>>940533
Switch'ей просто добавь и норм будет.

>>940517
У меня например код может посмотреть любой мимокрок. Правда я смотрел код других людей и большинства он говной воняет, там вообще никакой структуры нет.
Аноним 06/03/24 Срд 10:53:09 940647 284
>>940513
Ну, можешь каким нибудь upx,ом зажать, если без стороннего пакеджа.
Аноним 06/03/24 Срд 10:55:09 940648 285
>>940513
Пиши код максимально говнисто, чтобы прям ничего не было понятно. Пили огромные картинки, чтобы заебывало их просматривать. Музло тоже делай такое чтобы не возможно было слушать, скрип там или еще чего добавляй. И норм.
Аноним 06/03/24 Срд 15:02:42 940671 286
image.png 19Кб, 499x165
499x165
Как получить свойство объекта по строке? Первая строка ок, выдают значение, 2 и 3 выдают Null.
Аноним 06/03/24 Срд 15:06:14 940672 287
>>940671
get("translation").x по идее
Аноним 06/03/24 Срд 15:07:59 940673 288
>>940672
Этот вариант работает. Но x/y/z у меня тоже строки. То есть, я бы хотел получить именно финальное значение по строке.
Аноним 06/03/24 Срд 15:17:41 940674 289
>>940673
Либо циклом через парсинг, либо см. Исходники AnimationPlayer, он так умеет
Может быть есть какой то готовый метод, я не искал
Аноним 06/03/24 Срд 15:18:49 940675 290
>>940674
Ок, спасибо. Уже нашел другой способ решить свою проблему, без получения свойств, но на будущее надо будет разобраться.
Аноним 06/03/24 Срд 15:21:07 940676 291
Аноним 06/03/24 Срд 19:31:31 940698 292
>>940675
> а будущее надо будет разобраться
У трёшки нет будущего. Переходи на четвёрку.
Аноним 06/03/24 Срд 19:39:49 940700 293
>>940698
А чего там? Как там аналогичное делается?
Аноним 06/03/24 Срд 19:40:38 940701 294
>>940698
Не накаркай. Мне еще на нем игру мечты релизить.
Аноним 06/03/24 Срд 19:52:59 940702 295
>>940700
Так же как в трёшке (с несколько другими именами, например origin вместо translation). Так же как тебе предлагали выше: >>940672

>>940673
> Но x/y/z у меня тоже строки.
Хоть строки, хоть, були. Функция get() возвращает тебе значение свойства. Если значением является объект со свойствами-строками, ты должен вызвать у него функцию get(). Парсинг путей вида "super.sub.sub.property" в движок не закладывался.
> То есть, я бы хотел получить именно финальное значение по строке.
То есть, тебе надо самому велосипедить свою рекурсивную функцию получения свойства вложенных объектов по строке-пути.
Аноним 06/03/24 Срд 19:58:11 940703 296
1709744291543.png 53Кб, 403x448
403x448
>>940701
Чур-чур-чур! Свят-свят-свят! Тьфу-тьфу-тьфу! Тук-тук-тук!
Аноним 06/03/24 Срд 20:47:52 940717 297
Аноним 06/03/24 Срд 20:59:26 940720 298
>>940702
И кроме того, трансформ в экосистеме годота не является объектом, является базовым типом, и не содержит функции get() которая есть только у объектов.

Поэтому, если писать рекурсивную функцию, в неё придётся заложить длиннющий паттернматчинг для всех базовых составных типов, типа трансформов и векторов. К объектам применять гет, к типам применять вложенные матчи.
Аноним 06/03/24 Срд 21:11:31 940733 299
1709748692032.png 70Кб, 607x501
607x501
1709748692049.png 7Кб, 555x61
555x61
>>940720
Вот примерно так. Только придётся расписать ещё кучу паттернов в матчи. Ради мнимого удобства.




...



Лишь бы игры не делать.
Экспорт на Android Аноним 06/03/24 Срд 21:11:34 940734 300
optimisation.jfif 53Кб, 1200x750
1200x750
Сап, /GD/ач. Сделал прототип 3д игрульки для мобилок на движке четвёртой версии, экспорт наладил по инструкции с официальных доков, установил jdk, sdk и всё-всё-всё что там было написано. Движок без ошибок произвёл апк-файл, который я установил на своём стареньком говнодроиде сяоми и на новеньком дорогом андроиде друга. На старом игра едва грузится на 3д сцене, на новом всё улетает в максимальный фпс. На старом телефоне даже не отрисовываются 3д объекты (только элементы 2д), на новом всё работает как задумано. Меня смущают лаги и я хочу выяснить как можно сократить их количество, потому задам несколько вопросов опытным Годотерам:

1) Много ли съедают fps ноды Area3d, которые подключены к скрипту через сигналы "area/body entered/exited"? Если да, то что можно с ними сделать кроме удаления и упрощения ИИ?

2) Много ли съедают fps ноды типа CSG?

3) Много ли съедают fps сигналы от кнопок типа "sex_button_just_pressed()"? Если да, то как перестроить управление? Есть ли смысл все кнопки засовывать в функцию _input(event) или это не даёт никакого результата?

4) Может ли экспорт повлиять на fps на разных android устройствах? Я пробовал устанавливать sdk под более старые смартфоны (lollipop 4.1), но результата это не дало.

5) Много ли жрут fps операции с Vector3 и обращением к нему? Есть ли какие-то способы его немного оптимизировать?

6) Есть ли смысл создавать отдельные ноды (белые) для крупных участков кода вроде логики передвижения в 3д пространстве или всё можно хранить в одном скрипте и просто обращаться к функциям внутри единого скрипта без потери производительности?

7) Таймеры — годнота? Что можно использовать для периодичного запуска функций с проверками без таймеров (я слышал, что они ненадёжные и могут сильно влиять на фпс, ведь они просчитывают постоянно сколько прошло времени и проверяют достигли ли они конца)?

7) Какие есть другие способы повышения производительности кроме растаскивания всех операций по разным функциям, которые находятся вне _process(delta) и _physics_process(delta) без постоянного обращения не необходимых в каждый момент времени проверок?
Аноним 06/03/24 Срд 21:13:45 940737 301
>>940733
Ты крут.
>#wipe samewords
Кек
Аноним 06/03/24 Срд 21:16:16 940745 302
>>940737
Да, детка, я такой. По ссылке в описании можешь сделать донат.
Аноним 06/03/24 Срд 21:18:39 940750 303
>>940734
Сорян, по андроиду ничего не смогу ответить.
Аноним 06/03/24 Срд 21:19:05 940753 304
>>940734
P.S. На моём старом андроиде логика 3д мира работает, я могу взаимодействовать с ним, скрипты работают, но сами объекты не показываются, плюс я использую две камеры — от первого и от третьего лица, которые переключаются через .set_current(), где я сначала отключаю одну камеру, затем включаю другую.
Аноним 06/03/24 Срд 21:21:02 940758 305
>>940750
Но по оптимизации есть что-нибудь? Пост касается не только андроидов, но и в целом затрату ресурсов от разных функций и нод годота

Спасибо за ответ
Аноним 06/03/24 Срд 21:28:07 940765 306
>>939779
Я думаю у людей нет идеи для игры, которую они хотели бы реализовать. У меня тоже всегда было желание сидеть в движке копаться, но пока не придумал сам себе игру, не мог ни с чего начать. Сейчас вот сижу, пилю потихоничку, вот уже месяц как, и даже не планирую заканчивать, каждый день только больше solution'ов придумываю
Аноним 06/03/24 Срд 21:32:57 940777 307
Опытные ремесленники, скиньте годные гойды гайды по созданию инвентаря и сохранений. Посмотрел на ютабчике пару роликов, там духота сплошная, которую мой мозг в ближайшее время не хочет и не может осилить. Вот чтоб максимально простенько было, а там уже разберусь.
Аноним 06/03/24 Срд 21:36:36 940785 308
>>940734
Со старыми андроидами все неоднозначно. Там цирк с конями, разброд и шатание от чипа к чипу.

Мои наблюдения таковы. Снижай разрешение - часто дает наибольший прирост фпс. Динамический свет не используй. Меши - чем проще, тем лучше. CSG - нахуй. Гридмап - нахуй. Пройдись по настройкам проекта, выключи лишнее, снизь качество. GLES2 на старых андроидах шустрее и стабильнее чем GLES3.
Аноним 06/03/24 Срд 21:39:34 940786 309
>>940758
> Но по оптимизации есть что-нибудь?
Есть. CSG медленноват, как говорят.
Аноним 06/03/24 Срд 21:39:56 940788 310
>>940785
Спасибо за ответ!!!

>GLES2 и GLES3
А можно ли через какую-то функцию менять рендер? Допустим, сделал я настройки графики, а чтобы применить надо было бы перезапускать игру. Такое возможно?
Аноним 06/03/24 Срд 21:40:29 940789 311
>>940786
>CSG медленноват
Принял на вооружение. Спасибо
Аноним 06/03/24 Срд 21:44:26 940793 312
Аноним 06/03/24 Срд 21:49:59 940798 313
validate-me-mad[...].gif 5533Кб, 640x426
640x426
>>940793
Вау, спасибо огроменнейшее! Я запомню тебя
Аноним 06/03/24 Срд 21:53:57 940801 314
>>940786
>>940789
Емнип CSG медленноват при динамическом изменении (подвинули куб в цилиндре и пересчитались все грани). При просто рендере, примелимо.
Аноним 06/03/24 Срд 21:56:54 940802 315
>>940801
При изначальном создании тоже, увы.
>Creating CSG nodes has a significant CPU cost compared to creating a MeshInstance3D with a PrimitiveMesh.

И "запечь" их, вроде, никак нельзя.
Аноним 06/03/24 Срд 21:58:44 940804 316
>>940788
Имхо на андроиде это делается несколько по другому, ты делаешь две разных APK с глес2 и глес3, а потом когда выкладываешь в гуглплей, указываешь каким мобильникам какие давать скачивать. Но, я теоретизирую. не говоря о том, что APK официально уже ВСЕ, и надо собирать ABB И где ты узнаешь список мобильников тоже вопрос. А еще там можно блеклистить слабые модели, чтобы им вообще не давать скачать игру, так даже геншин делает.
Аноним 06/03/24 Срд 22:00:35 940806 317
>>940802
Запечь их можно простым аддоном который конвертит их в .obj.
Ну насчет изначального создания, это можно скрыть загрузкой уровня, остается спавн, его тоже можно заспавнить и просто передвигать в нужное место. Наверное.
Аноним 06/03/24 Срд 22:07:03 940809 318
Я читал что если делаете настройки, то называть их стоит не low/mid/high, а quality/performance. Так игроку менее неприятно от своего нищебродства.
Аноним 06/03/24 Срд 22:32:02 940811 319
>>940809
Помню ГТА 5 проходил на "нормальных". Ну это минимальные так у них назывались. Без отражений и теней.
Аноним 06/03/24 Срд 22:44:36 940814 320
Аноним 06/03/24 Срд 23:14:44 940815 321
1558630261228.mp4 5192Кб, 1536x864, 00:00:38
1536x864
>>940802
На мобилке, может и медленно, не пробовал.
На пека довольно шустро
Аноним 07/03/24 Чтв 02:33:13 940837 322
>>940809
Представитель Sweet Baby Inc, залогинься.
Аноним 07/03/24 Чтв 16:12:45 940894 323
>>938493 (OP)
Покажите видос как реализовать rope в 3 D, на примере каната или верёвки
Аноним 07/03/24 Чтв 16:41:50 940895 324
1669765346195.png 129Кб, 688x955
688x955
Аноним 07/03/24 Чтв 17:02:53 940899 325
Аноним 07/03/24 Чтв 17:16:03 940901 326
170982071763866[...].jpg 1537Кб, 3273x2048
3273x2048
>>940895
А где? Почему у меня пусто?
Аноним 07/03/24 Чтв 18:47:04 940924 327
>>940901
Потому что 3.5.3. Для неё уже не делают новых аддонов.
Аноним 07/03/24 Чтв 20:16:25 940947 328
>>940924
В 3 ветке небыло rope? Как они тогда канаты рисовали?
Аноним 07/03/24 Чтв 23:32:34 941011 329
Двач-помогач, закидываю в проект как 2д скрипт пнг файл, графон пиксельный, иду персонажем мимо, ДРОЖИТ СУКА.
Что делать?
Аноним 08/03/24 Птн 00:13:13 941017 330
1619134403842.png 10Кб, 953x85
953x85
Аноним 08/03/24 Птн 00:42:19 941018 331
>>941011
Сложно сказать, господин анонс. Зависит от версии движка и от стиля, который ты хочешь. Тру™ пиксель игра делается через stretch mode viewport, низкое нативное разрешение (желательно соответствовать х2, х4 от нативного разрешения) и советы анона выше. Это советы для тройки.

Фейковая пиксель игра, когда пиксели не строго по внутри-игровой пиксельной сетке, - через мод 2д, на разрешение уже похуй.
Аноним 08/03/24 Птн 00:45:27 941019 332
image.png 15Кб, 427x247
427x247
>>941018
>низкое нативное разрешение (желательно соответствовать х2, х4 от нативного разрешения)
Отвлекся и коряво написал. Низкое нативное разрешение, и тест разрешение х2 выше нативного.
Аноним 08/03/24 Птн 08:15:58 941032 333
>>940947
> Как они тогда канаты рисовали?
Как босс!
Аноним 08/03/24 Птн 12:00:42 941048 334
Здравствуйте. У меня на сцене есть узел Area2D, внутри которого 4 прямоугольные коллизии.
Как сделать спаун врагов внутри этих коллизий, чтобы избежать ручного набора координат? Типа если передвину/поменяю размер, не менять код.
Аноним 08/03/24 Птн 12:52:41 941054 335
>>941048
Я бы брал центр ареа2д, добавлял к нему рандомные отступы по х и у, потом бы проверял находится ли эта потенциальная спавн-точка внутри коллизий. Если нет - повторить генерацию точки.
Аноним 08/03/24 Птн 13:29:46 941056 336
1579162551321.png 83Кб, 839x569
839x569
>>941054
Если у него прямоугольные неповернутые коллизии, то x = от левой до правой, y = от верхней до нижней гарантрованно внутри коллизии.
Аноним 08/03/24 Птн 13:55:44 941063 337
>>941056
Правильный подход. А у меня в похожем случае вообще полигон2д был, и я не придумал ничего лучше чем перебирать примерные значения. Ну и норм работало.
Аноним 08/03/24 Птн 14:03:39 941064 338
>>941063
С полигонами сложнее, можно попробовать их триангулировать и потом генерить внутри одного из треугольников (может быть можно даже по формуле), но вот вроде как не любой произвольный полигон триангулируется. (Искал как то либу для отрисовки генеренных SVG, а там прямым текстом пишут что она может зависнуть, такая то печаль).
А если брать рандом, то при неудачной форме может долго искать подходящую точку, хотя скорее всего это несуществуенно. Но вдруг не уложится за кадр.
Аноним 08/03/24 Птн 16:28:36 941077 339
Аноны, какой командой заставить Area2D заставить срабатывать один раз? Я вроде что-то помню, но не могу высрать. Сорри, за банальный вопрос.
Аноним 08/03/24 Птн 17:02:17 941080 340
>>941077
Мож отдельной переменной для проверки серануть?
Аноним 08/03/24 Птн 17:05:57 941082 341
>>941077
Типа в _ready поместить? Первое что пришло в голову, если я тебя правильно понял
Аноним 08/03/24 Птн 17:49:24 941092 342
>>941082
Не, area у меня в отдельной функции. Игрок в неё входит, она срабатывает и должна выключиться.
Аноним 08/03/24 Птн 17:51:00 941094 343
>>941092
Сигнал body_entered надо обрабатывать.
Аноним 08/03/24 Птн 18:43:09 941102 344
>>941077
Делаеш ей disabled или queue free
Аноним 08/03/24 Птн 22:34:06 941130 345
image.png 60Кб, 422x464
422x464
Делайте игры
Аноним 08/03/24 Птн 23:07:15 941134 346
Анонче, хелп.
В сцене хочу озвучить звук шагов, однако столкнулся с проблемой, что при
if Input.is_action_pressed("down"):
звук проигрывается только раз, причем после отжатия кнопки, а при
if Input.is_action_just_pressed("down"):
Вообще не проигрывается.
Цель вижу в том, что нажимается кнопка, идет звук шагов. Отпускаю, должен стихнуть.
Мне отдельно звук покурить или что?
Аноним 08/03/24 Птн 23:45:10 941137 347
>>941134
Проверь свойства повтора на файле в импорте, и на самом плеере. По крайней мере в тройке с этим хаос был.

>if Input.is_action_pressed("down"):
>проигрывается после отжатия кнопки
Рассмотри такую возможность. Твое условие работает постоянно, пока ты держишь кнопку, и следовательно постоянно у тебя делается audioplayer.start(). То есть аудиоплеер проигрывает первую миллисекунду, потом ты его снова стартуешь, и он снова проигрывает первую миллисекунду, и так по кругу. Как результат ты слышишь ничего. А когда кнопку ты наконец отпускаешь, у плеера появляется возможность проиграть весь файл, потому что ты ему мозг стартом не ебешь.
Аноним 08/03/24 Птн 23:49:03 941138 348
>>941137
> повтора на файле в импорте, и на самом плеере. По крайней мере в тройке с этим хаос был.
Блин, он мне не дает залупить файл, говорит этот файл был импортирован, поэтому не может быть редактирован. Втф?
>Твое условие работает постоянно.
Да, соррян, ступил.
Аноним 08/03/24 Птн 23:50:49 941139 349
image.png 10Кб, 231x297
231x297
>>941138
Выбери файл в панели filesystem, потом таб import. Там будет опция на луп.

Картинка из гугла.
Аноним 08/03/24 Птн 23:51:15 941140 350
>>941139
И реимпорт внизу нажать не забудь.
Аноним 09/03/24 Суб 00:00:13 941143 351
>>941139
Я же говорю, он просто не дает это сделать, выдает:
"этотресурс был импортирован, поэтому он не редактируем, измените его настройки в панели импорта, а затем реимпортируйте"
Я прожимаю все настройки, реимпортирую, но это просто не работает
Аноним 09/03/24 Суб 01:04:56 941146 352
>>941143
Это странно. Можешь сделать скрин окошка как выше?
Аноним 09/03/24 Суб 01:42:08 941149 353
Сделайте за меня игру, я устал и спать хочу.
Аноним 09/03/24 Суб 02:09:35 941150 354
>>941149
Делай игру во сне, что такого. У меня часто озарения бывали и я записывал
Аноним 09/03/24 Суб 04:10:40 941157 355
>>941150
Озарений хватает, сил/времени реализовать их не хватает.
Аноним 09/03/24 Суб 06:09:53 941158 356
Субшота тред же мёртв? А сюда не принято кидать скриншотовидосы своих годокириллоподелок? Или все стесняются?
Аноним # OP 09/03/24 Суб 09:29:52 941167 357
>>941158
Кидай. Я не против.
Аноним 09/03/24 Суб 13:02:47 941174 358
Аноним 09/03/24 Суб 13:47:43 941182 359
image.png 7Кб, 485x42
485x42
Почему во всяких гайдах, в той же книге, направление игрока записывают в переменную velocity? Почему не direction условный, velocity это же скорость.
Аноним 09/03/24 Суб 14:11:17 941184 360
>>941182
В 4-ке velocity это не переменная, а уже поле физикс чарактер боди. Ну вообще да, логичней сначала селать dir и потом умножить на скорость.
Аноним 09/03/24 Суб 16:41:24 941195 361
Перешел с Unity на Godot. Делаю шутер. Как далеко я смогу зайти, не знаю. Веду дневник разработки, чтобы видеть свой прогресс https://t.me/neonhawk_dev
Аноним 09/03/24 Суб 16:41:46 941196 362
Перешел с Unity на Godot. Делаю шутер. Как далеко я смогу зайти, не знаю. Веду дневник разработки, чтобы видеть свой прогресс https://t.me/neonhawk_dev
Аноним 09/03/24 Суб 16:43:24 941198 363
сраная капча, два раз отправил
Аноним 09/03/24 Суб 16:48:17 941200 364
>>941184
>поле физикс чарактер боди
Шта за поле? Не понял
Аноним 09/03/24 Суб 16:58:12 941201 365
Аноним 09/03/24 Суб 17:08:45 941203 366
>>941195
>1. Проект переведён на физический движок Jolt.
И чо как? В веб он умеет? В андроид? Какие подводные заметил?
Аноним 09/03/24 Суб 17:22:45 941204 367
>>941203
Проект делаю для пк, поэтому про веб и андроид сказать не могу. Перешёл на Jolt, потому что когда делал контроллер персонажа, его трясло.
Аноним 09/03/24 Суб 17:25:30 941205 368
>>941204
Персонаж-двачер. Но да. В 4 дефолтный физон сырой.
Аноним 10/03/24 Вск 00:14:16 941223 369
>>941158
Кидай. Я бы тоже кидал, если бы моё не было оффтопом.
Аноним 10/03/24 Вск 00:57:32 941230 370
>>941223
Это ты там мобильную дрочильню на другом движке пилишь?
Аноним 10/03/24 Вск 02:49:38 941232 371
>>941182
А нахуя? Перемещать по вектору - это тупо сложение. А из скорости и направления это ж надо тригонометрию считать.
Ну понадобится тебе угол направления - сделаешь Vector2.angle(). Но он обычно не нужен.
Аноним 10/03/24 Вск 08:28:38 941239 372
>>941182

> Почему во всяких гайдах, в той же книге, направление игрока записывают в переменную velocity? Почему не direction условный, velocity это же скорость.
velocity - это direction умноженная на speed
Аноним 10/03/24 Вск 08:46:18 941241 373
>>941230
У меня не годот прост.
Аноним 10/03/24 Вск 13:45:20 941309 374
>>941241
Тогда, просим-просим в новый свежий субшота-тред! >>941307 (OP)
Аноним 10/03/24 Вск 14:55:10 941322 375
Аноним 10/03/24 Вск 15:58:51 941336 376
1682219503711.jpg 15Кб, 320x180
320x180
>>941322
Это только первый шаг, на одном рейкасте, а дальше придется уже и A-star прикручивать чтобы найти путь звука огибающего углы.
Аноним 10/03/24 Вск 16:17:03 941343 377
В определенных чатах разработчиков веб игр говорят, что годот для веба не очень. Размер билда большой, загрузка, перформанс. А я хочу именно в веб, стоит ли оставаться в godot?
Аноним 10/03/24 Вск 16:25:40 941344 378
>>941343
Средний. Для того кол-ва фич, что есть, очень даже. Я использую 3-ю версию для лоуполи 3д. В противном случае мне бы пришлось ковыряться в threejs довольно низкоуровнево. Перформанс, надо срезать многие фичи, многое упрощать и оптимизировать. Для 2д, ну наверное можно взять что то чисто js. А так, возьми и попробуй, сделать прототип и померять нетрудно. В конце концов потом прототип перенести на тот же threejs. Как минимум у тебя остается удобный редактор.
Аноним 10/03/24 Вск 16:32:13 941346 379
>>941343
Хз, все свои игры выложил и под веб тоже. По стилям совсем разное. Пиксели, 2д, 3д. Никаких проблем. Я чет думаю ты читаешь каких-то ноудевов, которым лишь бы причину найти ничего не делать.
Аноним 10/03/24 Вск 16:36:49 941347 380
>>941343
А у тебя есть айфон? А то у меня тут вопросы неразрешенные >>939742
Аноним 10/03/24 Вск 18:44:30 941366 381
image.png 5Кб, 403x103
403x103
Сап, годач.
Есть у меня global скрипт, а в нем заяц, в зайце — утка, в утке — яйцо некий словарь items = {} с другими словарями внутри. И вот в одном из скриптов я делаю так:
var item = global_list_of_items.items[item_name]
item["i_amount"] = 33


Только вот при изменении item["i_amount"] меняется значение ключа "i_amount" в исходном словаре items = {} - становится равно 33

Просто duplicate не сработал:
var items_copy = global_list_of_items.items.duplicate()
var item = items_copy[item_name]
item["i_amount"] = 33


А вот duplicate для каждого ключа по отдельности сработал:
var copy_items = {}
var original_items = global_list_of_items.items
for key in original_items.keys():
copy_items[key] = original_items[key].duplicate()
var item = new_items[item_name]
item["i_amount"] = 33


Но получается какая-то хрень, т.к. мне много где надо будет обращаться к списку предметов. В принципе я могу эту функцию засунуть в глобальный скрипт с предметами, чтобы сократить запись:
func duplicate_items():
var copy_items = {}
for key in items.keys():
copy_items[key] = items[key].duplicate()
return(copy_items)

В других скриптаз будет:
var copy_items = global_list_of_items.duplicate_items()
var item = copy_items[item_name]


Либо сделать сеттер в глобальном скрипте, который бы менял значение словаря items на исходное при любом изменении, хммм
Аноним 10/03/24 Вск 18:48:47 941367 382
>>941366
Я ниххуя не понял? Что у тебя происходит? Что тебе нужно?
Аноним 10/03/24 Вск 19:15:15 941368 383
1656093978867.png 26Кб, 1011x149
1011x149
>>941366
А ты пробовал документацию прочитать?
Аноним 10/03/24 Вск 19:22:52 941369 384
>>941367
Ну видимо чувак в словари добавляет внутриигровые предметы и по мере прогресса добавляет в словарь новые.
Аноним 10/03/24 Вск 19:27:47 941370 385
>>941369
Но из его поста выходит, что у него int 33 передаётся из словаря по ссылке. Нонсенс.
>>941366
> И вот в одном из скриптов я делаю так:
> var item = global_list_of_items.items[item_name]
> item["i_amount"] = 33

> Только вот при изменении item["i_amount"] меняется значение ключа "i_amount" в исходном словаре items = {} - становится равно 33
Аноним 10/03/24 Вск 19:31:32 941372 386
>>941370
А не, туплю. Он словарь извлекает.
Аноним 10/03/24 Вск 19:32:38 941373 387
>>941370
Словари и массивы (и, вроде бы, теперь Callable) в гдскрипте передаются по ссылке а не по значению. А если понадобиться передать 33 по ссылке, то можно обернуть его в массив или объект
Аноним 10/03/24 Вск 21:38:52 941391 388
>>941372
this
>>941368
Спасибо, попробую.
>документацию прочитать?
Это духота, поэтому я редко вспоминаю об этом
Аноним 10/03/24 Вск 22:04:15 941400 389
Поделюсь своей историей. В прошлом треде обсуждали публикацию на крейзигеймс. Так вот, я переписал кусок старого годот 3 проекта, избавился от тредов в своем коде, следовательно избавился от необходимости в sharedbufferarray, и опубликовался на крейзигеймс. Анон, с которым я разговаривал в прошлом треде, говорил что они отказывают молча - без объяснения причин. Мне причины написали. Я их исправил, отправил снова, со второго раза меня опубликовали. Потом мне написали еще раз, с анализом взаимодействия юзеров с моей игрой, и с советами как игру улучшить. Их я тоже реализовал.

По итогам могу сказать что хоть для популярности крейзигеймс 3/5, но для качества игры - 5/5. Их команда мочераторов дала мне именно тот фидбек, которого я не мог добиться от обычных юзеров. Тогда как юзеры, в ответ на мои вопросы, выдавливали "эээ пук кек ну вот тут чет непонятно, ну хуй знает", то эти мочухи все четко сформулировали и навалили советов как исправить.

У меня все.
Аноним 10/03/24 Вск 22:34:51 941409 390
Аноним 10/03/24 Вск 22:56:58 941415 391
>>941400
Тогда встаёт вопрос, как добиться такого же внимания от чмодераторов, чтобы также помогали, а не игнорили, как других?
Аноним 10/03/24 Вск 23:22:56 941417 392
>>941415
Хуй их знает. Моя игра не супер-популярна по меркам крейзигеймс, но внимание мочухов я получил. Ничего особенного не делал. Игра висела на рассмотрении дня 3, потом ответ "исправьте a, b, c". Через пару месяцев отправлю им еще одну старую свою игру, отпишусь по результатам.

Еще они предлагают рекламу встроить в саму игру через их апи. Я отказался. Без встроенной рекламы ты получаешь процент от той рекламы, которая у них на страницах показывается. За пару дней мне пара евро набежала. Вывод через палку.
Аноним 10/03/24 Вск 23:39:06 941419 393
>>941417
Обрати внимание на такой аддон
https://godotengine.org/asset-library/asset/2153
Правда там идет один большой js на все платформы. По уму надо взять другую их js-core репу и там собрать отдельно под каждый стор.
Аноним 10/03/24 Вск 23:45:56 941421 394
>>941419
>Absolute Games
Падажжи, это те которые аг.ру? Хрена эти деды перепрофилировались.

Спасибо. Просто не хочется рекламу в игру пихать. По крайней мере не в эти две, они для души. Для них я ставлю pay what you want когда платформа позволяет, либо отдаю бесплатно. Рекламу может потом, для бездушной мобильной дрочильни.
Аноним 10/03/24 Вск 23:49:35 941422 395
Гайс, а как развернуть по "х" РигидБади2д?
Попробовал через scale.x , но если работает физика, скейл сбрасывается и объект смотрит в ту же сторону.

Хочу просто рагдолл тело спавнить после смерти нпс
Аноним 10/03/24 Вск 23:59:12 941430 396
>>941400
> следовательно избавился от необходимости в sharedbufferarray,
А в чем проблема? Говдод не может в sb что ли?
Аноним 11/03/24 Пнд 00:00:31 941431 397
>>941430
Платформа, крейзигеймс, не предоставляет cors/sharedbuffer.
Аноним 11/03/24 Пнд 00:00:37 941432 398
>>941422
ЕМНИП scale.x=-1 у физических тел не работает потому что это будет nonuniform scale. там надо сами коллайдеры подвигать. Ну если у тебя простой вариант ты можешь просто спавнить один из вариантов, левый или правый.
Аноним 11/03/24 Пнд 00:01:48 941433 399
>>941431
Ебать поехавшие. Воркеры даже на мобилках есть, а они sb не пускают.
Аноним 11/03/24 Пнд 00:08:16 941436 400
>>941432
Ну да, я там как-то сложно не делал. Спасибо
Аноним 11/03/24 Пнд 00:11:58 941437 401
>>941433
Да лан, яндекс вон тоже не умеет.
Аноним 11/03/24 Пнд 00:23:52 941439 402
>>941437
Дауж, хуевая жизнь с такими издателями.
Так понимаю это всё из-за того что утечки между играми возможны, потому что один и тот же домен?
Аноним 11/03/24 Пнд 00:27:21 941441 403
>>941400
>Анон, с которым я разговаривал в прошлом треде, говорил что они отказывают молча - без объяснения причин.
Как я читал где-то в тележных чатиках: они отказывают молча, если им игра "не подходит". Хуй знает, какие там критерии подхожести, но у меня вот так вышло, причём даже другой билд залить и снова отправить на рассмотрение нельзя.
Очень рад за тебя, анонче. Завидую, но по-товарищески. Не хочешь ли теперь на ЯИ сунуться? Пройдя одну мочерацию, с другими должно быть полегче. Говорят, с разных платформ разная статистика, кому-то с яндекса даже больше капает.
Аноним 11/03/24 Пнд 00:58:08 941444 404
>>941439
Я понимаю так. SharedBuffer имеет много подводных камней безопасности, от спектра/мелтдауна, до утечек. Поэтому его включают вместе с CORS: same-origin, который изолирует каждый процесс и для сервера, и для клиента. Изоляция на клиенте затрудняет работу скриптам с третьего домена на странице с игрой. А именно через эти скрипты обычно и показывается реклама. И не все рекламодатели успели научиться это решать. Так что банально проблема в бабле.
Аноним 11/03/24 Пнд 01:08:24 941445 405
>>941309
Нет, тем более, большая часть изменений у меня в логике игры, а не визуально заметные. Вот, я сегодня изменил логику хранения ассетов неписей, чтобы мог их наборы масштабировать, прикрутил фичу к взаимодействию с неписями, пофиксил пару багов и сделал ещё ассеты, некототорые ассеты переделал.
Что я тут мог бы показать кроме кода? Ассеты, но там ничего интересного.
Аноним 11/03/24 Пнд 03:09:51 941447 406
image.png 2973Кб, 1920x1079
1920x1079
image.png 2126Кб, 1920x1078
1920x1078
Делайте игры с освещением.
Аноним 11/03/24 Пнд 05:31:38 941449 407
>>941447
А ты понимаешь, что второй скриншот выглядит ХУЖЕ первого, несмотря на тени? Потому что "затемнить дохуя, пережечь и влепить лампочки" не равно "выстроить освещение сцены"
Аноним 11/03/24 Пнд 09:34:43 941465 408
>>941444
Ебать. А ведь это серьёзней чем я думал. Т.е. sb полностью блокируют нахуй любую рекламу и решить это практически невозможно, если не использовать рекламу которая будет встраиваться в домен, что звучит невозможно нахуй. А там ещё всякие говновсплывающие окна а авторизацией не работают. Охуеть просто.

Ебаные аутисты и пидорасы опять откатили прогресс в прошлое. Как же заебало.
Аноним 11/03/24 Пнд 09:41:06 941466 409
Ajd7JtHlEhw.jpg 28Кб, 693x331
693x331
J5JZT8x2Cok.jpg 77Кб, 1242x425
1242x425
Здравствуйте, у меня есть сцены объектов с параметрами(пример Вася), есть сцены с кнопочками, которые должны улучшать эти параметры.
Как связать одно с другим? Мне не хочется вручную прописывать миллион одинаковых сигналов для каждого объекта, а как сделать более лаконично и по умному я не знаю.
Аноним 11/03/24 Пнд 10:58:05 941469 410
>>941466
Не совсем понятно, как и где у тебя планируют располагаться кнопочки, но можешь сделать один сигнал, а в нем передавать разные параметры в зависимости от кнопочки
Аноним 11/03/24 Пнд 11:03:29 941470 411
>>941469
кнопки будут распоагаться в отдельном скроллбаре, и какой что нужно прописать в сигнале, чтобы к конкретному экзмепляру другой сцены передать данные?
Аноним 11/03/24 Пнд 13:19:43 941475 412
>>941466
> а как сделать более лаконично и по умному
Через экспорты.
У объекта "вася" в скрипте ты должен сделать
@export var GUIButton
И привязать к ней все сигналы один раз. Далее, сколько бы ты вась не поставил на сцену, вручную или скриптом, ты должен загрузить в GUIButton валидный экземпляр. В редакторе ты через инспектор выберешь существующую ноду. Если надо кодом, то
> var v = load("vasya").instantiate()
> var g = load("gui").instantiate()
> GUI.add_child(g)
> v.GUIButton = g
> Mobs.add_child(v)
Ну, как-то так. НО! Без чёткого понимания архитектуры твоего проекта, давать советы бессмысленно, уверен, ты нихуя не понел из моего поста.
Аноним 11/03/24 Пнд 16:47:49 941507 413
>>941444
Спасибо анон что пояснил, а я даже не думал о таком, вся синхронизация через SAB была. Ебать вот это открытие-то нахуй. Чем дольше вникаю тем глубже кроличья нора. Нужно обязательно модифицировать код и добавить варианты работы и синхроанизации каких-то данных между потоками.
Жозенько конечно, хорошо что наткнулся на это, иначе бы обосрался и пришлось в продакшене пытаться переписывать свой движок.

В целом идея такая - иметь несколько воркеров, синхронихировать время через RAF, синхронизировать данные через postmessage с transferable объектами. Будут полностью независимые потоки, но с передачей данных между потоками. Впринципе должно работать. Но синхронизация такая слишком сложная. Но у меня работать будет. Вероятно годот и хуан с этим не справится никак вообще, слишком сложно.
Аноним 11/03/24 Пнд 17:46:05 941509 414
>>941507
> годот и хуан с этим не справится никак вообще
Вообще-то справляется. Речь о том, что не справляются хостеры игор, не справляются с многопоточными играми.
> у меня работать будет
Скажешь "гоп" как выскочишь.
Аноним 11/03/24 Пнд 18:15:22 941512 415
>>941509
> Вообще-то справляется.
Нет, не справляется и не справится, слишком сложная реализация. Отдельные подсистемы нужно на разные ядра раскидывать и синхронизацию вводить для них. Либо одни и те же системы с сложной синхронизацией. Короче не айс.
> Речь о том, что не справляются хостеры игор, не справляются с многопоточными играми.
Нет, просто обоссаный хром обоссался, создал дыру и не смог нормально изолировать сайты. Хз когда исправят, годиков через пять, наверное, не меньше. До той поры у годода нет шансов.
Там суть в том что рекламу не сможешь встроить в страницу, потому что реклама может из разных источников быть и эти источники могут уже с твоего сайта воровать данные из-за этой самой дыры.
> Скажешь "гоп" как выскочишь.
Оно уже работает через наивный подход, но наивный не самый производительный и красивый. Дальше попишу немношк, покумекаю как сделать лучше и красивее.
Аноним 12/03/24 Втр 00:47:04 941544 416
Вот вы спать пошли, а часики-то тикают.
Аноним 12/03/24 Втр 02:50:03 941549 417
>>941544
А ты батарейку на ночь вытаскивай
Аноним 12/03/24 Втр 17:17:19 941655 418
image.png 2039Кб, 1656x1071
1656x1071
>>941549
Как же работать без батареек?
Аноним 12/03/24 Втр 17:19:58 941656 419
>>941655
На дизельном топливе, керосине, бензине, электричестве от картошки, фотосинтезе, ветряках. Че как маленький.
Аноним 12/03/24 Втр 20:50:38 941673 420
Расскажу я вам одну историю про робота. Этот робот жил под землёй и рыл себе туннели. А работал он от солнечного света. Чтобы работать ему надо было, чтобы по оптоволокну через фотоприёмники свет попадал прямо ему в ядро. У него было выращено на поверхность множество оптоволокон, но вот беда, ночью солнце заходит и света нет. И тогда робот придумал замечательную идею. Пока наверху день, робот накапливал энергию солнца в специальных молекулах, которые образовывали связи, бомбардируясь фотонами. По потребностям робота он генерировал себе три вида молекул: СВЕТ, ТЕПЛО и КРУЧЕНИЕ.
Когда молекулы заработали, робот перестал зависеть от дневного света, смог оторваться от ранее выращенных волокон и углубился дальше в лес, затем по руслу реки, к небольшому городу N, где и спрятался под большим автомобильным мостом.
Аноним 12/03/24 Втр 20:54:09 941674 421
image.png 372Кб, 480x360
480x360
>>941673
Так выпьем же за теорию торсионного поля!
Аноним 12/03/24 Втр 23:02:35 941689 422
1674995417456.png 33Кб, 1124x234
1124x234
Аноним 12/03/24 Втр 23:04:22 941690 423
>>941673
Украл для сюжета своей игры, ждите меня миллиардером.
Аноним 13/03/24 Срд 00:51:14 941694 424
https://github.com/godotengine/godot/issues/35606
Господа анонсы делающие пиксельарт игры, как вы боретесь с тряской линкрелейтед? Впринципи в ексклюзив фуллскрин она практически незаметна, но это на фуллхд монике, как будет на 2к и 4к хуй его поймешь. За оконный режим вообще молчу, там тряска на уровне шиза из движкосрача, укачать может. Пиксель перфект я не преследую, нахуй не нужон, за пиксельснап трансформа знаю, но эта хуйня может вызвать только приступ эпилепсии.
Настройки проекта если нужны: размер вьюпорта 480х270, мод канвас айтем, скейл мод целочисленый, юзаю четверку. Из за чего собсно происходит эта тряска я понимаю, но не понимаю нахуя это было сделано так криво.
Вообще на текущей стадии проекта меня это волновать не должно, но сука, не могу успокоиться зная о такой проблеме.
Аноним 13/03/24 Срд 01:02:20 941695 425
>>941694
Тут много моментов. Проблема в основном вылезает когда у тебя внутригровые пиксели располагаются не по пикксельной сетке. Отчасти это чинится фиксированным разрешением и запретом его менять. Второй момент - плавная субпиксельная камера (x:22.222, y:33.3333), заставляющая весь вьюпорт съезжать с пиксельной сетки. Можешь использовать вью мод 2д вместо вьюпорта. Можешь скалировать спрайты на побольше, тогда проблема менее заметна. Можешь двигать камеру только по целочисленным значениям. Еще такое видел, но не тестил: https://godotshaders.com/shader/sub-pixel-accurate-pixel-sprite-filtering/

После двух своих тру-пиксель-перфект игр перешел на лоуполи 3д и рад пиздец. И моделить проще, и использовать.
Аноним 13/03/24 Срд 01:03:00 941696 426
Аноним 13/03/24 Срд 01:05:25 941697 427
Аноним 13/03/24 Срд 01:21:09 941698 428
>>941695
>Можешь использовать вью мод 2д вместо вьюпорта
В четвёрке это и есть канвас айтем. А вот за шейдер спасибо, сейчас потесчу.
>После двух своих тру-пиксель-перфект игр перешел на лоуполи 3д и рад пиздец.
Да я если честно уже пожалел что в 2д полез, столько мозгоебли что проще в 3д уйти и начать моделировать.
>>941696
>за пиксельснап трансформа знаю, но эта хуйня может вызвать только приступ эпилепсии.
Это слышу звон, да не знаю где он, называется. Ссылка на документацию отношение к проблеме вообще никакого не имеет.
>>941697
Это не то, да и в четверке не работает.
Аноним 13/03/24 Срд 01:32:09 941699 429
>>941698
А, я то пиксель на 3-й делаю. Как раз потому что он там доведен до ума. Конечно нету вкусных тайлмапов, ну чтож.
Аноним 13/03/24 Срд 02:25:52 941701 430
>>941699
Я щас мельком тройку потестил, тряска тоже есть, но только у спрайта на котором камера висит, надо будет попозже сделать полную копию сцен из 4 и посмотреть как оно, мб все таки придется пожертвовать фичами 4 и сесть на 3.
Аноним 13/03/24 Срд 02:26:38 941702 431
>>941698
>пожалел что в 2д полез
2д оно такое, да. Это все тот ебучий миф, что типа пиксель арт - просто. Типа навалил пикселей и поехал. Хуй там. Самый сложный стиль и для рисования и для работы с. При этом в годоте с ним еще норм работается, в отличии от некоторых других движков.
Аноним 13/03/24 Срд 16:14:38 941737 432
>>941701
> у спрайта на котором камера висит
Там еще разные факторы есть, например у камеры есть свое сглаживание, у физического движения тоже.
Аноним 13/03/24 Срд 18:51:05 941747 433
Аноним 13/03/24 Срд 22:28:16 941770 434
Годот это единственный движок на котором я смог сделать хоть что-то, хоть какой-то кусок говна, но выпустил.
На фейзере я в ахуе как люди что-то делают, там даже редактора нет, просто в голове отыгрываешь и на каждый пук ищешь костыли, фиксы, хуиксы. Остальные маленькие движки для веба тоже супер перегружены какой-то парашей которая лично меня отпугивает
Аноним 13/03/24 Срд 22:37:17 941771 435
>>941770
Маладца. После первой релизнутой поделки ты стал опытней, дальше легче. Куда выложил?
Аноним 13/03/24 Срд 22:41:29 941772 436
>>941747
Странная штука. Во первых, нужон ли там GDExtension? Во-вторых, нет поддержки мобилок в рантайме.
Аноним 13/03/24 Срд 23:52:26 941775 437
IMG202403132334[...].jpg 35Кб, 896x350
896x350
IMG202403132333[...].jpg 20Кб, 503x253
503x253
image.png 276Кб, 640x480
640x480
Блять, просто мистическая хуита творится! Делаю игру четко по гайду, как вдруг кто-то наслал проклятие!

Пик 1: по замыслу жизни кончаются, эмитится died(), вызывается рестарт из автолоадера, меняющий сцену. Но все зависает в момент эмита died. Пути к сценам прописаны правильно, ошибок нет. Если привязать рестарт к любому другому сигналу, будь тот таймер или кнопка, то все работает!

И самый сюр в том, что died тоже работает и не виснет, но только если он прямо не вызывает рестарт!
Костыль с пика 2 работает. А если через таймер отсрочить рестарт в коде самого on_player_died, то опять зависон. Но в чем разница? КАК ЭТО ПОНЯТЬ???
Аноним 14/03/24 Чтв 01:01:11 941781 438
>>941776
>>941777
Пиздуй в тред для движкосрача, додик. Специальный загон для тебя.
Аноним 14/03/24 Чтв 02:03:01 941787 439
>>941775
died один раз эмитится или начинает спамить?
Аноним 14/03/24 Чтв 03:35:54 941789 440
>>941775
>все зависает
Прозреваю циклические вызовы. Типа, ты эмитишь died, он вызывает смену уровня, а смена уровня снова вызывает функцию. эмитящую died. Например, перепроверяет хп.
Поставь брейкпоинт и чекай.
Аноним 14/03/24 Чтв 09:31:38 941797 441
Аноним 14/03/24 Чтв 12:45:41 941808 442
4e4abe18145c51e[...].gif 3852Кб, 498x373
498x373
>>941770
> На фейзере я в ахуе как люди что-то делают
Программировать надо, да? Не то что годот, тут даже программировать не нужно!
Аноним 14/03/24 Чтв 13:07:08 941810 443
1710410828585.png 24Кб, 542x194
542x194
Аноним 14/03/24 Чтв 15:09:32 941819 444
>>941810
Заметил что 4-ка с первого раза вообще плагины плохо подхватывает, надо хотя бы редактор перезапускать.
Аноним 14/03/24 Чтв 15:26:02 941822 445
>>941819
Да там какой-то лютый пиздец наступил с проектом. Зря я в существующий проект его подключил. Хорошо, что проект был двачетредный помогательный, и его в целом не жалко.
Аноним 14/03/24 Чтв 15:46:16 941824 446
>>941775
Скорее всего никакой мистики не будет, если ты нарисуешь схемку-диаграмму что в каком порядке вызывается.
У меня в начале знакомства тоже была похожая история. Так там дело оказалось в том, что я передвигал игрока в точку спавна, но был кадр, в котором срабатывал process, когда игрок все еще находился внутри триггера.
Наверное по простому это можно решить, внутри restart() вызвав какую нибудь disablegame() которая отключает все триггеры или реакции на них.
Аноним 14/03/24 Чтв 23:35:53 941861 447
image.png 89Кб, 926x398
926x398
Кайф. Четверка все вкусней и вкусней.
Аноним 15/03/24 Птн 00:31:13 941863 448
>>941747
визуальное программирование всегда казалось мне какой-то нубтрапой, иллюзией простоты
Аноним 15/03/24 Птн 00:38:38 941864 449
Ещё раз, какой аналог объектов из стандартных языков программирования в годот? Как мне сделать условный массив собственных объектов, а не из какого-то вида встроенных нод?
Аноним 15/03/24 Птн 00:40:23 941865 450
>>941864
точнее в gdscript*
Я нашёл что можно сделать autoload ноду со скриптом с собственными параметрами, но это явно нестандартный путь. Делать пустую ноду со скриптом и привязывать её в сцене? Или ещё как-то?
Аноним 15/03/24 Птн 01:40:12 941868 451
Аноним 15/03/24 Птн 02:12:32 941869 452
А можно как-нибудь проксировать экспорт-переменные ноды? Есть нода-компонент, допустим спавнер. Я в ней указываю (через экспорт-переменные) каких юнитов, с каким промежутком и куда спавнить. Потом я цепляю ноду-спавнер к нужным сценам-постройкам. Потом постройки ставлю на сцену-карту.

НО на сцене-карте мне недоступны экспорт-переменные ноды-спавнера. Они же внутри постройки сидят. Я конечно могу кликнуть по сцене-постройке, включить "редактируемые дети", и добраться до ноды-спавнера. Но это все дерево в кашу превращает. Хотелось бы, типа, указать "вот эту ноду подтягивай наверх и показывай как свою родную".
Аноним 15/03/24 Птн 04:15:55 941871 453
Аноним 15/03/24 Птн 11:54:02 941880 454
1693066625618.webp 6Кб, 274x379
274x379
1671427800633.png 51Кб, 2619x2176
2619x2176
1668987765606.png 83Кб, 2053x3293
2053x3293
1680300588777.png 18Кб, 422x270
422x270
>>941864
Ты, видимо про это
https://docs.godotengine.org/en/stable/tutorials/best_practices/node_alternatives.html
В общем, кроме Node2D/3D, а также просто Node (которая не имеет позиции и прочего, но может быть добавлена в дерево)
Существует базовый просто Object, также для некоторых случаев подходит Resource.

Кроме того, ты можешь объявлять свои классы. Есть два способа
Первый, это любой скрипт (который наследуется через extend от чего то), ему можно задать class_name
https://docs.godotengine.org/en/stable/contributing/development/core_and_modules/inheritance_class_tree.html

Второй способ, это в любом месте завести вложенный класс
https://docs.godotengine.org/en/stable/contributing/development/core_and_modules/inheritance_class_tree.html

Так что ты можешь делать массив не из условных, а из вполне себе своих объектов.
Аноним 15/03/24 Птн 16:22:14 941898 455
Аноним 15/03/24 Птн 17:22:26 941906 456
1698130095261.png 18Кб, 679x207
679x207
1633934306928.png 81Кб, 1421x482
1421x482
>>941869
Казалось, что видел такой аддон, но что-то не нашел сейчас.

Но вроде бы руками сделать несложно.

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

Второй, сейчас узнал что есть такая штука как inspector plugins.
https://docs.godotengine.org/en/3.2/tutorials/plugins/editor/inspector_plugins.html
Есть какой то аддон на тему, Extendable Inspector возможно он упростит создание
Хотя, я его час поковырял, и не получилось быстро сделать то что ты хочешь.
Это надо еще копать. Но технически это возможно, потому что редактор годота это просто сцены из контролов. Просто надо разобраться как там категории добавлять, undo redo.
Аноним 15/03/24 Птн 17:29:21 941908 457
>>941898
Из коробки такого нет. Сам такую хотел сделать, пока руки не дошли, где-то был гайд, там что то с рейкастами. Кажется этот https://www.youtube.com/watch?v=KlfFnchkDwQ
Аноним 15/03/24 Птн 17:32:27 941909 458
>>941908
Т.е. общая идея что ты обнаруживаешь угол, на котором поворачивает веревка, и в этой точке его прилепляешь. Между этой и предыдущей точкой провешиваешь его немного, чтобы он свисал. От новой точки тянешь дальше.
Аноним 15/03/24 Птн 21:40:23 941930 459
>>941880
Спасибо огромное, это именно та сторона, куда мне надо было искать <3

Появилась ещё одна проблема, попытался сделать сохранение данных через ResourceSaver вроде описанного тут https://gdscript.com/solutions/how-to-save-and-load-godot-game-data/, при этом сохраняется объект Resource с массивом объектов внутри. Но при сохранении элементы массива не сохраняются. Если вместо объектов в массиве будут стандартные переменные - всё сохраняет. У этого есть решение, чтобы при этом оставить сохранение как ресурса?

Нашёл в теории сохранять построчно https://forum.godotengine.org/t/read-and-save-arrays-solved/17852 , либо, возможно, JSON, но это выглядит будто бы не так удобно и более громоздко
Аноним 15/03/24 Птн 23:14:18 941936 460
>>941930
Смотря что у тебя в массиве, посмотри в эту сторону

ResourceSaver.save(savepath, resource, ResourceSaver.FLAG_BUNDLE_RESOURCES)

If you don't use the flag "FLAG_BUNDLE_RESOURCES" the resources inside the array are instead saved as references to the resource class, this means that when loading the resources back they will just load the default resource with no aditional data.

Но может у тебя что то другое. Я не пробовал.
Аноним 15/03/24 Птн 23:51:56 941937 461
>>941906
Спасибо, анон. Пока я решил в сцене-карте, в каждое здание, вручную добавлять ноду-спавнер. Тогда она доступна прямо на карте и позволяет выбирать все, что нужно. Геморно, но не так кашево как включать редактирование детей.

А ты принес хорошую штуку. Потыкаю ее.
Аноним 16/03/24 Суб 00:04:15 941938 462
image.png 770Кб, 1280x720
1280x720
Аноним 16/03/24 Суб 00:47:24 941941 463
>>941938
Когда там релиз уже?
Аноним 16/03/24 Суб 00:49:41 941942 464
1710539379676.png 20Кб, 701x353
701x353
>>941936
В массиве вот подобные объекты, чисто для примера пока что

С флагом вместо моего объекта с массивом возвращается объект типа Resource, я чето устал пока что завтра посмотрю
Аноним 16/03/24 Суб 00:54:02 941943 465
>>941938
Полистал список изменений, вроде ничего важного (кроме того интерактивного аудио с странным редактором).
Хотя пару серьезных багов исправили, например BoneAttachment, неполное запекание LightMap, или вот такой суровый https://github.com/godotengine/godot/pull/88946
Виндо дефендер почему то сагрился на свежий файл.
Аноним 16/03/24 Суб 01:14:24 941945 466
Что-то не могу найти упоминания, в 4 GL Compatibility render в материалах не работает карта высот? Которая height, которая еще бывает называется Disaplcement.
Аноним 16/03/24 Суб 01:17:04 941946 467
image.png 317Кб, 465x316
465x316
И все же непонятно как в самопиаре зацепить не-геймдевовскую аудиторию.
Аноним 16/03/24 Суб 03:29:36 941952 468
В следующем тренде покажу свой будущий хит ТРЕПЕЩИТЕ
Аноним 16/03/24 Суб 03:30:44 941953 469
>>941946
Притворись тяночкой
Аноним 16/03/24 Суб 03:44:34 941954 470
Аноним 16/03/24 Суб 09:06:58 941955 471
>>941942
Всё решил

- поменял extends Object на Resource (было логично, как только комп вчера выключил, сразу об этом подумал)
- забыл поставить для переменной oparam "@extends"

ух
Аноним 16/03/24 Суб 18:08:22 941985 472
Хм, я правильно понел, что экземпляр вложенной сцены (в текущую) не создать без (повторной) загрузки всей текущей сцены? Что-то типа $Child.instantiate() не получится, надо обязательно загружать файл сцены и потом уже экземплярить вложенную через get_node.
Не хуярит ли это по производительности?
inb4 хуярь нужную подсцену отдельным файлом
Аноним 16/03/24 Суб 18:25:56 941989 473
>>941985
Ты можешь duplicate, если я верно тебя понял.
Аноним 16/03/24 Суб 18:46:22 941990 474
image.png 12Кб, 560x132
560x132
>>941989
Да, то что надо. Спасиба :3
Аноним 16/03/24 Суб 19:39:18 941993 475
image.png 312Кб, 1357x577
1357x577
Аноним 16/03/24 Суб 19:39:43 941994 476
>>941993
Из твиттера Хуана.
Аноним 17/03/24 Вск 00:29:19 942019 477
image.png 124Кб, 615x442
615x442
Сижу рисую домики для локации, 1 закончен на 80%, два других на 70% и 40%, и еще 2 останется нарисовать с нуля. Дальше буду рисовать водную растительность в виде камышей и прочей другой хрени.
А ты чем занят анон? Делись.
Аноним 17/03/24 Вск 00:50:20 942021 478
>>942019
Будет симулятор рыбалки?

А я дизайню сумоиста в подгузниках.
Аноним 17/03/24 Вск 00:55:20 942023 479
>>942019
Пишу диздок игры миллиардолетия надеюсь хватит медскиллза написанное реализовать на практике
Аноним 17/03/24 Вск 01:12:05 942026 480
>>942021
>Будет симулятор рыбалки?
Не, из ближайшего похожего стардювали, но до этого ближайшего как от москвы до камчатки пешком. А так это домики будущей деревни рыбаков.
>А я дизайню сумоиста в подгузниках.
Показывай
>>942023
Я если честно хуй забил на диздок, сначала тож хотел сесть написать, но хуй к носу прикинул, в тетрадку накидал мысли и идеи да и пошел рисовать.
Аноним 17/03/24 Вск 03:15:31 942028 481
image.png 82Кб, 711x1245
711x1245
Делайте
Аноним 17/03/24 Вск 03:36:31 942029 482
>>942019
Пишу взрывы: как они распространяются, как рейкастят и дамажат, если луч не встретил препятствий. Ещё надо будет какие-то партикли им нарисовать, наверное.
Аноним 17/03/24 Вск 07:54:49 942034 483
>>942029
А зачем они рейкастят? Не легче ли им кастить сферу, например?
Аноним 17/03/24 Вск 11:56:00 942039 484
>>942034
Точно, четвёрка же!
Аноним 17/03/24 Вск 13:23:24 942045 485
>>941954
Тут-то какой смысл притворяться тянучкой, тут ни у кого на них не стоит. Стоит только на игори и годот.
Аноним 17/03/24 Вск 21:19:25 942069 486
>>942029
Во, молодец. Давай там, удачи тебе. Верим, ждём.
Аноним 17/03/24 Вск 23:45:27 942077 487
А вы знали что если в фильтре, в древе нод, отфильтровать по любому имени, то в 3д редакторе не получится кликнуть ни на что, что не входит в список отфильтрованных нод? Я вот только сейчас обратил внимание. Удобно.
Аноним 17/03/24 Вск 23:47:51 942078 488
>>942077
Бриллиант!
Это в какой версии?
Аноним 17/03/24 Вск 23:48:48 942079 489
>>942078
В тройке точно есть.
Аноним 18/03/24 Пнд 02:11:35 942090 490
В голове идея была веселой, а реализовал - чет нихуя не весело. Ебаный геймдев.
Аноним 18/03/24 Пнд 04:04:40 942091 491
>>942090
Так может ты хуево реализовал
Аноним 18/03/24 Пнд 04:05:33 942092 492
Аноним # OP 18/03/24 Пнд 13:17:07 942109 493
>>942092
Нет я!

Давайте, готовьте арт на перекат.
Аноним 18/03/24 Пнд 14:23:05 942118 494
Аноним 18/03/24 Пнд 14:29:29 942120 495
1705486192705.webp 57Кб, 1080x1920
1080x1920
1704449230235.webp 692Кб, 2048x2048
2048x2048
1605423967172.webp 15Кб, 500x500
500x500
1608188529122.png 76Кб, 936x936
936x936
Dev snapshot: Godot 4.3 dev 5 Аноним # OP 18/03/24 Пнд 16:13:31 942129 496
1710767613133.webp 80Кб, 1280x720
1280x720
4.3 dev 5 is following quickly behind 4.3 dev 4 since we want to get something into your hands before we head over to the Game Developers Conference next week. Please test out this development release and give us lots of feedback, so that we can enter the beta phase shortly after we return!

Importantly, you will notice the development pace slow a little bit as many of the core developers are away for the week and taking a much needed vacation the following week.
Release candidates: Godot 4.1.4 RC 2 4.2.2 RC 2 Аноним # OP 18/03/24 Пнд 16:14:17 942130 497
1710767659252.webp 82Кб, 1280x720
1280x720
Many core team members are heading to the Game Developers Conference next week (see our past announcement, and the line-up of games we’ll be showcasing), and preparing for this event in parallel to working on the upcoming Godot 4.3 release has kept us really busy!

So maintenance releases for 4.1 and 4.2 users fell through the cracks temporarily, but we’re getting back on track with a new set of release candidates for both 4.1.4 and 4.2.2.
Introducing our GDC Line-up Аноним # OP 18/03/24 Пнд 16:15:00 942131 498
1710767702614.webp 76Кб, 960x540
960x540
Like we announced a while ago, the team is preparing to head over to the US for this year’s GDC! In case you have not heard about the conference before, you can read more about it here: gdconf.com

We will have a booth on the expo floor, and would love to welcome you there! You can play games (more about those below), chat with our sponsors, meet contributors to the engine and ask your burning questions to the Foundation members staffing the place. There might even be pins to snatch up 👀
Аноним # OP 18/03/24 Пнд 16:15:46 942133 499
перекатывайте уже!
ПЕРЕКАТ Аноним # OP 18/03/24 Пнд 16:16:25 942135 500
Аноним 27/03/24 Срд 12:17:48 943001 501
>>939727
>>939722
Видимо, мне не стоит спрашивать, что это и зачем, чтобы не бросить всё к хуям в самом начале.
Ответить в тред Ответить в тред

Check this out!

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