Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Godot #46

 Аноним OP 23/02/24 Птн 17:25:44 #1 №938493 
1708698343385.png
1708698343397.webp
1708698343397.png
1708698343399.png
Добро пожаловать в тред любви, взаимопомощи и кучи спрайтов разного размера!
Шапка: https://hipolink.me/godothread
Предыдущий: >>931045 (OP)
Архивный: >>926070 (OP)
Аноним 23/02/24 Птн 18:14:37 #2 №938502 
>>938493 (OP)
Сап годотеры, собрался с духом и решил вкатиться
Ппроблема в том что работаю на планшете в 3й версии годота.
И я тупо не перевариваю, гд скрипт, хотел установить c# но во первых компилятор визуал код под андроид нужен, я устанавливал пиратку, но она неработает. И во вторых сам редактор при выборе внешнего редактора почему то не видит, мой внешний компилятор. Вообще возможно на мобильном андроиде обманываться c#?
Аноним 23/02/24 Птн 18:18:10 #3 №938504 
>>938502
Не обманывай себя, для полноценного девелопа нужна перканя. Если ты совсем нищий, возьми старый пень на авито. Рублей за 12.
Аноним 23/02/24 Птн 18:37:50 #4 №938514 
>>938504
Значит нет. Ладно буду работать в скрипте.
У меня есть пекарня, просто на дно работе в обеденное время пила всякое, вот купил мощный планшет и решил вместо работы на консоли или пердолинга в xamarin.android попробовать пилить на нормальном движке, тем более несколько лет назад я уже пробовал годо.
Аноним 23/02/24 Птн 18:42:11 #5 №938518 
1708702931195.png
>>938514
> мощный планшет
Аноним 23/02/24 Птн 18:54:13 #6 №938523 
image.png
>>938502
Ты чет взял и превратил один из самых легких и беспроблемных движков в какой-то бег с препятствиями. И планшет, и андроид, и сисярп, и пиратская вижуал студия. А чтобы под андроид релиз собрать тебе еще андроид сдк и джава понадобится. Да у тебя талант к веселой жизни.

Двач, я ем суп с ножа.тхт
Аноним 23/02/24 Птн 19:19:34 #7 №938526 
>>938502
Я тоже на андроиде играюсь с годотом, но с gdscript. И почему у тебя 3 версия, если 4.2 уже есть?
Аноним 23/02/24 Птн 22:04:08 #8 №938556 
image.png
The VisualShader redesign has been merged
Аноним 23/02/24 Птн 22:06:12 #9 №938557 
>>938556
https://github.com/godotengine/godot/pull/87360

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

мимотвайнодебил
Аноним 24/02/24 Суб 11:38:48 #17 №938619 
>>938615
> Где ты там приостановление увидел?
Ох блять... Ну почему даунинг-крюгеры такие? И ведь сам таким был. Аж вспоминать стыдно.
Ты сам себя затроллил своим невежеством. Матчасть учи.
Аноним 24/02/24 Суб 11:40:05 #18 №938621 
>>938619
Да судя по ответу ты им и остался.
Аноним 24/02/24 Суб 11:42:01 #19 №938623 
1620576391069.png
Ну че годаны, новость прошла незамеченой, а ведь на нашей улице праздник

https://www.rawrlab.com/godot_nintendo_switch_free_port.html
Аноним 24/02/24 Суб 11:43:10 #20 №938624 
1575734400293.png
>>938623
Аноним 24/02/24 Суб 11:45:40 #21 №938626 
>>938623
Это всё конечно круто, но не для нас и не для таких как мы.
Аноним 24/02/24 Суб 11:48:36 #22 №938627 
>>938626
Кто хочет, ищет возможности, кто не хочет - найдет миллион оправданий.
Это для меня и таких как я. Уже продумываю как к своей игре добавить управление свища.
Аноним 24/02/24 Суб 12:00:21 #23 №938630 
>>938627
> ищет возможности унижаться под белым флагом на олимпиаде
Ищи.
Аноним 24/02/24 Суб 12:03:47 #24 №938631 
>>938627
Если бы я нашёл у себя свищ, то пошёл бы в больницу.
Аноним 24/02/24 Суб 12:05:56 #25 №938632 
>>938631
Да тебя надо в "Аншлаг" срочно брать!
Аноним 24/02/24 Суб 12:08:25 #26 №938633 
>>938632
Спасибо-спасибо. 00)))0
Аноним 24/02/24 Суб 13:02:06 #27 №938652 
>>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 #28 №938655 
image.png
>>938623
>free
Не фри. Это именно то, что нытики не поняли, когда W4Games выкатили свои версии портов. Нужны девелоперские ключи-лицензии от Сони/МС/Нинтендо. В W4Games ты бы это делал через прокси-Хуана, а тут ты сам должен Нинтенде забашлять бабла за девелоперские ключи.
Аноним 24/02/24 Суб 13:07:14 #29 №938656 
>>938655
То есть, по сути, у этого порта такая ниша: если ты УЖЕ оплатил все нинтенде, и не хочешь платить второй раз W4Games - тебе это подойдет.
Аноним 24/02/24 Суб 13:10:30 #30 №938657 
>>938655
Чел, ты... Открой доки любого другого движка - там все начинается с реги в нинтендо. Ты какой то сверх наивный. Речь и идет о бесплатности порта, ты бы еще удивился что на айфон надо в эппле платно регаться.
Аноним 24/02/24 Суб 13:14:06 #31 №938658 
>>938656
Речь идет о бесплатности порта, а не бесплатности издания на свитч.
Для любителей свободы уже 5 лет есть версия для джейлбрейка https://github.com/fhidalgosola/godot-switch
Аноним 24/02/24 Суб 13:23:19 #32 №938665 
>>938657
Нет, это ты недооцениваешь уровень наивности среднего желающего портануть свой 2д пиксель-арт платформер. Хватало нытиков, ожидавших что раз движок свободный, то им не придется платить никому и ничего. И которым пришлось долго объяснять что именно включено в цену портов от W4Games.

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

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

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

мимо нуб
Аноним 25/02/24 Вск 00:06:38 #44 №938778 
>>938777
Да, только без гигантского ветвления
Можно как нибудь?
Аноним 25/02/24 Вск 00:08:31 #45 №938779 
>>938778
ну думаю так еще короче можно:
func wtf(x):
Global.x > 25:
Global.x-= 1
Global.FreePoints += 1
Аноним 25/02/24 Вск 00:21:27 #46 №938782 
Кто-нибудь разобрался как можно собрать, экспортировать и запустить сервер для проекта одной кнопкой, чтобы можно было запустить в браузере мобильного устройства в локальной сети? Как вы вообще дебажите веб версии своих игр под мобилки?
Аноним 25/02/24 Вск 00:38:00 #47 №938785 
>>938782
https://play.google.com/store/apps/details?id=org.godotengine.editor.v4&hl=ru

Можешь просто скинуть проект на мобилу и запустить через мобильный эдитор
Аноним 25/02/24 Вск 00:48:47 #48 №938787 
>>938785
он веб версию запустит или андроид?
Аноним 25/02/24 Вск 06:39:04 #49 №938800 
>>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 #50 №938815 
>>938779
Я тоже думал, что так сработает, но нет.

>>938800
Блин, а можешь теперь, пожалуйста, объяснить, как это работает?)
Берется стамина, что-то куда-то дает сигнал, сложна)
Аноним 25/02/24 Вск 10:23:51 #51 №938817 
>>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 #52 №938818 
>>938815
Оке

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

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

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

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

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

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

>set_notify_transform
Вроде как надо определить функцию _notification чтобы их ловить

Ну тут какая то инфа есть
https://www.reddit.com/r/godot/comments/9y74r6/how_to_detect_when_node2d_is_moveddragged_in_the/
Сам не пробовал.
Аноним 26/02/24 Пнд 00:18:15 #71 №938982 
>>938979
>каждый раз, когда я её в редакторе мышкой передвигаю
А что если добавить в нее контрол-ноду с сигналом on mouse pressed, и печатать по этому сигналу? Хз сработает ли в с tool.
Аноним 26/02/24 Пнд 00:42:31 #72 №938986 
>>938982
Вроде бы нет, там надо что-то с EditorPlugin как по ссылке делать и forward_canvas_gui_input
Аноним 26/02/24 Пнд 08:17:42 #73 №939003 
>>938829
Подумол и понял, что объединять нет смысла потому что то от чего хочу избпвиться вернётся неминуемо.
Аноним 26/02/24 Пнд 11:37:49 #74 №939015 
годотеры а для годоти есть какой нибудь ии плагин который по текстовому описанию будет за меня писать код, что то исправлять, проверять, менять и тд?
ну или не плагин а где то отдельно на сайте
есть что то бесплатное и с открытым доступом?

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

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

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

В ответе чел добавляет еще один Raycast, сверху вниз, чтобы определить точку на ступеньке в которую пойдем.
Tween просто предназначен для плавного движения, сглаживания. yield ставит выполнение функции на паузу, пока анимация tween не закончится.
Первая анимация поднимает его вертикально на месте, до высоты ступеньки (и еще на -2 пикселя выше). Вторая анимация уже двигает его горизонтально, до точки куда изначально рейкаст пересекся с полом ступеньки.
Можешь хоть просто x++ делать. Или нарисовать Path2D и по нему проводить. Или сделать анимацию, но тогда надо чтобы ступеньки на уровне потом ей соответствовали.
Аноним 27/02/24 Втр 01:38:13 #106 №939180 
Чего сидите, игры делойте.
Аноним 27/02/24 Втр 01:43:27 #107 №939181 
>>939180
Я уже лег.
Аноним 27/02/24 Втр 01:56:21 #108 №939183 
>>939181
Встань и иди к мечте.
Аноним 27/02/24 Втр 07:36:11 #109 №939198 
>>939183
Я уже встал. Уже иду. Обнял. На созвоне.
Аноним 27/02/24 Втр 07:42:41 #110 №939199 
Для пули вообще нет смысла делать прожектайл. Она слишком быстро летит. Гораздо эффективнее, чтобы в момент выстрела оружие строило баллистическую траекторию в сторону выстрела и каждый следующий кадр из точки траектории, в которой пуля должна быть строятся рейкасты по всем предыдущим точкам, и проверяется, что пуля прострелила за это время. И кроме того, если в логику заложено что пуля может пробивать некоторые объекты меняя скорость и энергию, то от точки прострела строится новая траектория и в том же кадре пересчитываются рейкасты.
Аноним 27/02/24 Втр 11:51:11 #111 №939224 
76953419p0.png
Хочу сделать стилизованную траву с однородной покраской покраской. Для этого сделал вторую камеру сверху что бы получать карту цвета с тенями. Но как сделать что бы на второй камере объекты кроме земли были невидимы но отбрасывали тень?
Аноним 27/02/24 Втр 14:36:50 #112 №939255 
>>939224
Сделать второй камере отдельный Environment с отключенными тенями.
Аноним 27/02/24 Втр 14:38:13 #113 №939257 
>>939199
как пистолет в первом думе. выстрелил в противника и он мгновенно получает урон, независимо от расстояния
Аноним 27/02/24 Втр 14:42:07 #114 №939258 
>>939257
Хорошо, спасибо, так и сделаю. Главное не волнуйся, не нервничай, положи нож.
Аноним 27/02/24 Втр 15:25:44 #115 №939268 
>>939255
Наоборот для второй камеры нужны только тени и plane на которую эти тени отбрасывают невидимые объекты (но невидимые они только для второй камеры)
Аноним 27/02/24 Втр 15:37:03 #116 №939271 
image.png
>>939258
положу тебе в печень
Аноним 27/02/24 Втр 15:43:50 #117 №939272 
>>939271
Полиция! Убивают!
Аноним 27/02/24 Втр 18:14:28 #118 №939299 
1635241837254.png
>>939224
Емнип, продублировать объекты, сделать их shadow only. По возможности (смотря какой эффект делаешь) при этом у основного объекта убрать тень. Тогда получится, отрисовка всех объектов без тени + отрисовка всех теней без объектов, плюс какой-то небольшой оверхед на дубликаты нод + оверхед на вьюпорт. В общем, если сделаешь, можешь поделиться замерами производительности.
Аноним 27/02/24 Втр 19:57:16 #119 №939314 
1690951911127.jpeg
1614189112414.png
>>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 #120 №939316 
>>939314
Разумеется речь про снайперские игры на открытой местности, где сидишь в подлеске со слонобойкой, измеряешь ветер, закладываешь поправку в оптику, прицеливаешься, выходит цель из бункера, задерживаешь дыхание. БАХ!

Мимо.

По твоей позиции летят какахи.
Аноним 27/02/24 Втр 22:15:17 #121 №939359 
Вы ходьбу по лестнице доделайте сначала, а то уже попенворлды со снайперами тут обсуждаете)))
Аноним 27/02/24 Втр 22:32:45 #122 №939361 
1620839947654.mp4
>>939359
Жесть чел прям в модули фигачит. Вроде логика несложная,
https://www.reddit.com/r/godot/comments/124fapg/implemented_motion_warping_into_my_animation/
https://github.com/EIRTeam/godot/blob/swansong/modules/game/animation_system/epas_animation.cpp
Это чтобы быстрее работал цикл трансформаций всех костей, что ли?
Аноним 27/02/24 Втр 22:43:18 #123 №939363 
1709062998007.png
>>939361
Панцушот!

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

Ой, блять, я случайно секрет успеха Скайрима спалил. Срочно удолите пост!
Аноним 27/02/24 Втр 22:47:03 #124 №939364 
image.png
Сначала рабочий прототип с дефолтыми ассетами и icon.png, потом все остальное. Только так и никак иначе.
Аноним 27/02/24 Втр 22:49:42 #125 №939365 
>>939364
> рабочий прототип с дефолтыми ассетами
Там кстати есть челик, Kenney, нахуячил горы ассетов на любой случай. Опенсорц! Двадэ и тридэ! Налетай, годаны!
Аноним 27/02/24 Втр 22:51:17 #126 №939366 
>>939364
По опыту геймджемов, еще надо сразу audiobus и базовые звуки прикрутить.
Аноним 27/02/24 Втр 22:53:04 #127 №939367 
image.png
>>939365
Даже это лишнее. Тру путь он вот.
Аноним 27/02/24 Втр 22:57:25 #128 №939369 
>>939367
> Тру путь в максимально быстрые сроки проебать мотивацию.
Тру стори. Жиза.
Аноним 27/02/24 Втр 22:57:58 #129 №939370 
>>939365
Да не только он. Он просто давно это начал делать. Еще есть: Zsky2000, KayKit, Keith @ FertileSoil, quaternius, Everything Library (тут вообще попахивает templeOs)
https://itch.io/game-assets/free/tag-low-poly
https://zsky2000.itch.io/
https://davidoreilly.itch.io/
Аноним 27/02/24 Втр 22:58:40 #130 №939371 
>>939369
Сочувствую, раз тебе для проеба мотивации нужно так мало.
Аноним 27/02/24 Втр 23:05:15 #131 №939373 
>>939371
Спасибо, братишка!
Аноним 28/02/24 Срд 00:39:28 #132 №939381 
>>939122
Но зачем, а главное нахуя?
Но ок, вот что я предлагаю.
1. Физически лестница - это наклонная поверхность. Тушка-капсула движется по ней.
2. Нюанс - процедурная анимация. На ступеньках маркеры, и персонаж должен наступать только на них. Это никак не влияет на движение тушки, только на анимацию ног.
В принципе, на скелетах в четвёрке это реально сделать. Но лично я не вижу смысла. Куча возни, куча потенциальных мест для бага, а заметно всё равно не будет.
Аноним 28/02/24 Срд 00:41:57 #133 №939382 
>>939381
А, забыл про
>Я использую просто спрайт персонажа, никакой скелетки.
Ну тогда просто синхронизировать анимацию со ступеньками, чтобы кадр с шагом приходился обязательно на ступень.
Аноним 28/02/24 Срд 00:47:29 #134 №939383 
>>939381
>Физически лестница - это наклонная поверхность.
Разве персонаж не будет тогда часто висеть в воздухе?
Аноним 28/02/24 Срд 02:45:13 #135 №939389 
image.png
Делойте игры, хватит спать.
Аноним 28/02/24 Срд 03:54:29 #136 №939391 
>>939383
Как нарисуешь, так и будет.

Годаны, подскажите одну вещь. Я пытаюсь отловить инпут через _unhandled_input (потому что хочу его захандлить другой нодой). Но по пути кто-то третий его хандлит. Как понять, кто именно?
И вообще. Может ли вообще нода без какой-либо поверхности получать мышиные события через унхандлед? Или их гарантированно сожрёт окружение?
Аноним 28/02/24 Срд 04:07:10 #137 №939393 
>>939391
В дебаггере есть вкладка misc, в ней показывается на кого ты кликнул. Получать может, да - проверил на пустой Node, это та, что белая, без ничего.
Аноним 28/02/24 Срд 05:00:15 #138 №939394 
А что страшного произойдёт, если я буду коннектить уже законнекченные сигналы, не проверяя is_connected? Ну то есть, да, ошибку показывает. Но ведь эта проверка уже есть в движке. Так ли необходимо дублировать её в скрипте?
Аноним 28/02/24 Срд 07:04:43 #139 №939399 
aonlajnigry.netuploadsposts2014071404988363drakensangonline2.jpg
Игра с видом сверху по типу диаблы в 3d, как реализовать большую бесшевную карту и что бы не пососать по производительности? Я так понимаю мне терейн нужен и как то его делить, И объекты выгружать загружать в зависимости от дальности камеры? Как это вообще делать?
Аноним 28/02/24 Срд 07:20:14 #140 №939400 
>>939399
Например так.
https://github.com/Yogoda/ZoneLoadingSystem
Или самом разбить на квадратные чанки.
Террейн можно делать плагинами
Но придется повозиться в таком случае со стыками, как рисовать один большой террейн. Хотя может новые плагины в 4-ке уже умеют, не смотрел.
Аноним 28/02/24 Срд 07:33:04 #141 №939401 
>>939399
https://www.youtube.com/results?search_query=godot+seamless+world
https://www.google.com/search?q=godot+seamless+world
https://yandex.ru/search/?text=godot+seamless+world

https://duckduckgo.com/?q=%D1%83%D1%80%D0%BE%D0%BA%D0%B8+%D0%B0%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%B3%D0%BE+%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0+%D1%81+%D0%BD%D1%83%D0%BB%D1%8F
Аноним 28/02/24 Срд 08:12:01 #142 №939404 
>>939401
Это >>939401 то самое дружелюбное комюнити годот?
Аноним 28/02/24 Срд 08:13:23 #143 №939405 
>>939363

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


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

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


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

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

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

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

Быстрее чем архитектуру перебирать. Нет, не завалюсь. Но в следующем проекте учту.
Аноним 29/02/24 Чтв 23:57:27 #172 №939627 
>>939625
> Но в следующем проекте учту.
Смотри мне там! Приду - проверю!
грозит пальцем
Аноним 29/02/24 Чтв 23:59:25 #173 №939628 
>>939627
Ок, шэф! Как удобно быть анонимом, пообещал и забыл.
Аноним 01/03/24 Птн 00:03:14 #174 №939629 
>>939621
is_instance_valid()
Аноним 01/03/24 Птн 00:21:08 #175 №939632 
>>939370
Во еще смешное нашел https://creatus.itch.io/
Аноним 01/03/24 Птн 01:08:49 #176 №939640 
>>939632
Арт напоминает те спамные рекламы фейковых мобильных дрочилень, аля спаси принцессу над котлом.
Аноним 01/03/24 Птн 12:26:14 #177 №939654 
Хуле вы все тут такие умные нахуй? Я чувствую себя тупым!
Аноним 01/03/24 Птн 12:36:20 #178 №939655 
>>939654
чувствуй себя недозаточенным
Аноним 01/03/24 Птн 12:55:00 #179 №939658 
>>939654
Я тоже тупой. Вместе будем держаться.
Аноним 01/03/24 Птн 13:06:38 #180 №939659 
>>939654
Я чувствую незакрытый гештальт: как будто бы существует способ научить геймдеву даже таких анонов, которые чувствуют себя тупыми, но способ этот найти не могу.
Аноним 01/03/24 Птн 13:45:14 #181 №939668 
>>939659
Если тебе интересно, то больше всего проблем у меня сейчас с интерфейсом и звуками. Че как рисовать, делать ума не приложу. А ведь еще с кодом разбираться надо. Ну и пиздец. Залетел в геймдев с двух ног без нихуя.
Аноним 01/03/24 Птн 14:14:46 #182 №939671 
>>939658
>>939655
Гоу в юнити, там это не баг, а фича, будем вместе усираться и орать друг на друга.
Аноним 01/03/24 Птн 14:29:59 #183 №939674 
100022190p0master1200.jpg
Кто компелировал движок, объясните эту хуйню, должен ли я делать # 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 #184 №939676 
image.png
Всё ещё живой.
Dev snapshot: Godot 4.3 dev 4
https://godotengine.org/article/dev-snapshot-godot-4-3-dev-4/
Аноним 01/03/24 Птн 14:40:45 #185 №939677 
>>939668
Какие туториалы смотрел? Что из просмотренного пытался повторить? Что из повторённого не получилось?
Аноним 01/03/24 Птн 14:44:54 #186 №939680 
>>939674
> Что она вообще даёт?
Она даёт темплейты экспорта.
> должен ли я делать # Build export templates часть?
Если твой билд ничем не отличается от релизов, то не должен. Но тогда непонятно, зачем ты конпелируешь? Значит, твой билд чем-то отличается. Вот ты собрал редактор, что-то поделал в нём, а потом начинаешь экспортировать проект. Но темплейты-то ты где возьмёшь? Если движок подтянет официальные темплейты, в них не будет твоих фич, которые ты вконпелировал в редактор. Таким образом, конпелируя свой билд, ты должен конпелировать и темплейты под него.
Аноним 01/03/24 Птн 14:59:37 #187 №939685 
>>939680
Ок, с релизом понятно, сейчас уже собирается. Но вот это для чего тогда? scons p=windows target=template_debug module_mono_enabled=yes
Аноним 01/03/24 Птн 15:04:56 #188 №939686 
>>939685
> p=windows
Для венды.
> target=template_debug
Для дебаг темплейта под венду.
> module_mono_enabled=yes
Для дебаг темплейта с включённым шарпом под венду.
Аноним 01/03/24 Птн 15:09:55 #189 №939687 
>>939686
>Для дебаг темплейта под венду.
Так что за дебаг темплейт? Игру же в редакторе проверить можно
Аноним 01/03/24 Птн 15:12:52 #190 №939688 
1706492361811.webp
>>939685
При экспорте есть галочка, делать релиз или дебаг версию. Видимо, это для тех, кто хочет отладить именно билд игры, а не запущенную из под редактора версию, мало ли какая то разница может всплыть, если редактор не все чистит при инициализации
Аноним 01/03/24 Птн 15:13:09 #191 №939690 
>>939687
Темплейт с отладочными символами для сторонних отладчиков.
Аноним 01/03/24 Птн 15:33:26 #192 №939695 
123.png
Ну вот скомпелировал темплейт релиз, а как этот exe добавить? Импорт фром файл не работает
Аноним 01/03/24 Птн 15:33:49 #193 №939696 
>>939688
>>939690

>>939695
Аноним 01/03/24 Птн 15:35:41 #194 №939697 
>>939677
Я не нашел туториалов по отрисовке ui, только о том как настроить узлы с готовыми ассетами. Про создание звуков даже не гуглил, такого нет кмк.
Аноним 01/03/24 Птн 15:40:53 #195 №939699 
1556460801959.png
1613358145658.png
1667248369389.png
>>939695

Где то по этим путям есть папка с шаблонами экспорта, она называется по названию версии годота.
Да вроде если ты начнешь делать экспорт, тебе напишут какой путь до них.
https://docs.godotengine.org/en/stable/tutorials/export/exporting_projects.html
Аноним 01/03/24 Птн 15:43:10 #196 №939700 
1592012361485.png
>>939699
P.s. у 3-го папка templates, в 4-ке export_templates
Аноним 01/03/24 Птн 16:13:29 #197 №939704 
>>939671
Я лучше нахуй пойду, чем к юнити прикоснусь после уебанских изменений жадных пидоров.
Аноним 01/03/24 Птн 16:17:33 #198 №939708 
>>939699
>>939700
Короче разобрался, эти exe надо в костум темплейт запихивать где настройки компиляции для конкретного проекта, если по путям распихать нихуя работать не будет. Естественно про это нигде не написано и никто про это не говорит, пердолинг конечно пиздец.
Аноним 01/03/24 Птн 16:52:11 #199 №939714 
1709301132606.png
>>939708
> про это нигде не написано и никто про это не говорит
Там в окне настройки экспорта всё прекрасно написано. Как Хуан мог предвидеть, что ты не умеешь в... ой, ладно. Разобрались и ладушки! Удачной тебе сборки.
Аноним 01/03/24 Птн 16:53:44 #200 №939715 
>>939704
Не ходи нахуй, оставайся у нас! Хоть мы и будем посылать тебя периодически, но ты держись и не уходи. И тогда сделаешь свою игру!
Аноним 01/03/24 Птн 17:10:21 #201 №939719 
>>939715
Я и так делаю свою игру, нахуй вы мне сдались?
Я кстати не годотер, а интересующийся из другого треда.
И я собираюсь в определённый момент получать бабло с этого, как пойму что мне не стыдно постить свои поделия, потому юнити даже не рассматриваю.
Аноним 01/03/24 Птн 17:16:25 #202 №939720 
>>939708
> если по путям распихать нихуя работать не будет.
Будет конечно, так и делал, была папка 3.x.dev Или как то так.
Аноним 01/03/24 Птн 17:42:52 #203 №939722 
image.png
литерали я
Аноним 01/03/24 Птн 17:54:25 #204 №939727 
>>939722
У меня литералли в плане есть: на паузе до выхода 4.3 . Там есть метод чтобы на навмеше можно было случайную точку находить
Аноним 01/03/24 Птн 18:48:20 #205 №939739 
>>939719
>в определённый момент получать бабло с этого
Ты резидент? Готовься прокачивать хитрожопость и/или связи, чтобы санкции обходить.
Аноним 01/03/24 Птн 19:01:18 #206 №939742 
Так, я тут немного запутался. Допустим я хочу веб билд в я.игры, и в идеале чтобы он работал на 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 #207 №939753 
>>939742
Эпл вообще для богатых. И для богатых пользователей и для богатых разрабов. Если у тебя нет денег на эпл, чтобы лично девелопить на живом железе, то ты там не желателен, тебя не звали, тебе не рады, уйди оттуда и не приходи, пока не станешь богат.
Аноним 01/03/24 Птн 20:02:35 #208 №939756 
Когда Хуан сделает нам нанит, люмен и ваще?
Аноним 01/03/24 Птн 20:18:47 #209 №939760 
>>939756
Когда ты игру сделаешь? И ваще.
Аноним 01/03/24 Птн 20:50:32 #210 №939768 
>>939756
та погоди ты, дай лестницу в платформере доделаю
Аноним 01/03/24 Птн 22:40:24 #211 №939779 
image.png
Каждого из вас так
Аноним 01/03/24 Птн 23:05:50 #212 №939780 
Может ли узел принимать сигналы от нескольких кнопок одним методом?
Делаю меню выбора персонажей, хочу чтобы сигнал 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 #213 №939781 
Вот бы кто мне рисовал спрайты и тайлмапы за бесплатно, а я бы просто код пердолил, я многого прошу что-ли?
Аноним 01/03/24 Птн 23:12:18 #214 №939783 
>>939781
Ты только что нейросеть.
Аноним 01/03/24 Птн 23:13:07 #215 №939784 
>>939780
>Может ли узел принимать сигналы от нескольких кнопок одним методом?
Конечно. В твой дальнейший текст не вчитывался, ты главное соедини сигналы правильно.
Аноним 01/03/24 Птн 23:16:09 #216 №939785 
>>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 #217 №939786 
>>939785
Сигнал в четвёрке превратился в объект первого класса! Не знаю, что это значит, но пишется так:
> Slavique,pressed.connect(self, on_pressed, [Slavique]
Аноним 01/03/24 Птн 23:54:17 #218 №939793 
>>939783
ху-е-та. Нейронка не умеет в 2д пиксель арт, а сидеть перерисовывать за ней еще геморней чем самому рисовать. Хотя.. Запалю годноту анонам, для асеприте, платную конечно, но тот кто сможет ее себе позволить нихуя не пожалеет, pixellab.ai кличат, эх были бы у меня лишние деньги и возможность оплачивать..
Аноним 02/03/24 Суб 02:45:01 #219 №939797 
>>939793
>pixellab.ai
Посмотрел их. Впечатляет. Особенно фича с consistent style. И в анимацию умеет. Но все равно анимирование занимает по 20 минут, а это, по моему мнению, слишком много для такого унылого занятия. Подожду когда анимацию сделают в 1 кнопку, а пока продолжу свое простенькое 3д.
Аноним 02/03/24 Суб 09:05:35 #220 №939806 
>>939779
лольнул
Аноним 02/03/24 Суб 10:22:27 #221 №939811 
>>939793
> pixellab.ai
Годно.
Но я так понимаю она только генерирует пиксельарт на основе уже имеющегося стиля + описание?
Есть ли что-то подобное или может какой пайплайн, чтобы генерировать пиксель-арт(фоны\элементы интерьера и персонажей) по одному только описанию?
Все никак не могу найти 2д художника для мобилки, поэтому думаю перекатиться в пиксельную графику и нейронки.
Аноним 02/03/24 Суб 12:57:14 #222 №939835 
>>939811
>Все никак не могу найти 2д художника для мобилки, поэтому думаю перекатиться в пиксельную графику и нейронки.
Так попробуй сначала просто нейронки для 2д, не пиксель.
Аноним 02/03/24 Суб 14:45:33 #223 №939847 
>>939739
Готовлюсь.
Аноним 02/03/24 Суб 16:45:07 #224 №939872 
6afd800574ed78bad42facd11db623a2.jpg
Читаю что у годот проблемы с большими играми. Вот например я буду делать игру с видом сверху как в диабло но со стилизованной графикой. Но большой мир и бесшовная карта, я пососу и если да то почему?
Аноним 02/03/24 Суб 16:53:41 #225 №939873 
>>939872
Что-нибудь раньше делал из игр? На любом движке.
Аноним 02/03/24 Суб 17:04:12 #226 №939875 
>>939872
> у годот проблемы с большими играми
Проблемы с большими играми не у движка, а у Кирилла, блять, сколько можно вам повторять? Напридумываете себе, что можно скайрим в одно ебало сделать, а потом жалуетесь, что движок виноват.
Аноним 02/03/24 Суб 17:09:44 #227 №939878 
Как же меня спасает метадата на объектах. Вместо создания отдельной переменной и пихания ее внутрь, просто цепляешь мету, используешь, выкидываешь. 10 из 10 фича.
Аноним 02/03/24 Суб 17:18:52 #228 №939880 
>>939872
При виде сверху - нет, я уже писал, бери аддон Zone loading, или сделай свои квадратные чанки, при виде сверху нет тех проблем что есть у игр типа геншина или гта, где ты можешь залезть на вершину горы и тебе надо видеть вообще все, и гору и несколько городов с разными домиками и разные локации с лавой, водой и так далее. У тебя только то, что есть в кадре плюс минус.
Второй твой бро это Multimesh Instance тоже как вариант через плагин Scatter. Потому что на уровнях часто много повторяющихся вещей, типа поручней-столбиков.
Третий бро это пулы объектов, для пулек и всего такого.
Еще желательно сделать загрузку многопоточной и включить прекомпиляцию шейдеров.
В принципе за неделю-две можешь сделать прототип, скачав прям готовых моделек которые в этом треде даже кидали, и узнать подходит или нет.
Так что вряд ли большой мир внесет какие-то дополнительные проблемы против просто одной 3д сцены (производительность которой ты тоже можешь оценить на всяких демках)
Собрать что ли самому вомпирсурвайлайк по быстрому...
Аноним 02/03/24 Суб 17:59:40 #229 №939892 
Как в 3д сделать самое дешевое зеркало? Реализм не нужен, но нужны отражения.
Аноним 02/03/24 Суб 18:03:34 #230 №939893 
>>939892
Рендерить дублирующую модельку. Так еще в каком то допе к халфе было
Аноним 02/03/24 Суб 18:06:35 #231 №939895 
>>939893
А мир вокруг модельки как?
Аноним 02/03/24 Суб 18:15:33 #232 №939897 
>>939893
Забавно, в киберпанке с точностью наоборот, движок отражает всё, кроме персонажа.
Аноним 02/03/24 Суб 18:51:20 #233 №939900 
>>939895
Так же: дубликат мира в котором ходит отражённая моделька
Аноним 02/03/24 Суб 18:52:32 #234 №939902 
>>939895
https://www.youtube.com/watch?v=wPzTmFHrGQk
Аноним 02/03/24 Суб 19:14:39 #235 №939904 
>>939900
>>939902
Ага, спасибо.
Аноним 03/03/24 Вск 00:20:38 #236 №939935 
Время делать игры.
Аноним 03/03/24 Вск 01:05:18 #237 №939954 
>>939935
Время пересматривать записи стримов старых игор!
Аноним 03/03/24 Вск 01:06:09 #238 №939955 
>>939954
Это могли бы быть стримы твоей игры, но ты спал.
Аноним 03/03/24 Вск 01:07:23 #239 №939956 
>>939955
Нет ты!
Аноним 03/03/24 Вск 02:22:48 #240 №939968 
OIG4 (6).jpeg
OIG2 (8).jpeg
image (6).png
OIG4 (8).jpeg
>>939793
>Нейронка не умеет в 2д пиксель арт
Все еще лучше умеет чем неумеющий васян
Аноним 03/03/24 Вск 02:49:52 #241 №939970 
>>939968
Тоже сначала упоролся, но увы это практически не получится использовать. Ну только если у тебя не что-то вроде казуалки где эти картинки просто как фишки будут двигаться.
Аноним 03/03/24 Вск 02:52:34 #242 №939971 
>>939968
А еще, есть такая проблема, которая становится понятна после очень долгого использования далле. Это видно по твоим крайним пикам - нейронка попадает в некий пузырь стиля, и поэтому результат будет слишком узнаваться, потому что и другие игроделы будут пользоваться ей же. Ну это не считая мелочи, что надо сначала как то привести это к пиксельной сетке (тут такую штуку кинули, но я пока не пробовал https://github.com/Astropulse/pixeldetector )
Аноним 03/03/24 Вск 05:51:02 #243 №939977 
15428884775042.jpg
А как тут прозрачную воду с отражениями сделать?
Аноним 03/03/24 Вск 05:51:29 #244 №939978 
>>939977
*В годот
Аноним 03/03/24 Вск 06:07:32 #245 №939979 
>>939811
Она и так и так генерит. Можешь и голое описание совать, можешь и референсы скармливать.
Аноним 03/03/24 Вск 08:39:21 #246 №939987 
>>939977
Скачай любой из десятков шейдеров и посмотри как там сделано
Аноним 03/03/24 Вск 10:38:42 #247 №940009 
https://www.youtube.com/watch?v=zvoQqhLeans
Аноним 03/03/24 Вск 19:22:04 #248 №940202 
Я не пони, чем quadmesh отличается от planemesh?
Аноним 03/03/24 Вск 20:12:24 #249 №940212 
>>940202
Свойствами в инспекторе.
Аноним 03/03/24 Вск 21:02:48 #250 №940226 
>>940202
Забавная история, в общем "так исторически сложилось", с точки зрения программирования, Quad определяется как 4 точки по углам, а Plane как точка в пространстве и угол. Причем про Plane в 3-ке долго висело предупреждение что он deprecated из за глюков, но выяснилось что это не глюки, а математика так работает, и надо просто его сабдивить на большее кол-во кусочков. В общем в результате по опросам так и не смогли определиться какой из них нужнее, квады для частиц и постпроцесса по умолчанию поперек экрана, а плейны горизонтально для самодельных террейнов.
https://github.com/godotengine/godot-proposals/issues/4516
Аноним 03/03/24 Вск 22:18:27 #251 №940237 
>>940226
Фига подробности. Вроде понял. Плейн значит сабдивайдим на под-плейны, в результате получаем террейн, а квад он квад и есть. И если нужно простое ровное полотно, то используем квад.
Аноним 04/03/24 Пнд 02:37:52 #252 №940267 
image.png
Аноним 04/03/24 Пнд 02:54:57 #253 №940269 
>>940267
Это потому, что многие паттерны пришли совсем из другой индустрии - корпоративные, тяжелые приложения и сайты, и решают другие задачи, в частности взаимозаменяемость работников.
Паттерны - это не магия, это просто повторяющаяся закономерность в коде, которой дали имя. А использовать или не использовать надо смотреть индивидуально. В частности с точки зрения оверхеда, на который в корпоратах покласть, клиенты подождут.
Об архитектуре надо думать, в любой игре больше чем на недельный геймджем. Когда думаешь, как расположить ноды в сцене, разделить ли визуал и коллайдеры на отдельные ветки, как сделать всплывающие окошки, как сделать сцену, чтобы ее можно было переиспользовать на другом уровне или кастомизировать врага, будешь ли использовать сцену или json - вот уже и архитектура.
Аноним 04/03/24 Пнд 09:14:06 #254 №940282 
>>939811
Поигрался, прикольно, но пока нет.
Продолжу дальше пилить логику проекта и прототип доделывать, визуал потом. Думаю это верный путь.
Аноним 04/03/24 Пнд 11:00:03 #255 №940288 
>>940282
>Продолжу дальше пилить логику проекта и прототип доделывать, визуал потом
База, основа
Аноним 04/03/24 Пнд 11:12:11 #256 №940289 
>>940269
То, что ты перечислил, приходит с опытом и делается практически автоматом. Думаю чел на скрине говорит про вот эти бесконечные переписывания кусков кода, чтобы удовлетворить своего внутреннего архитектора-окрщика, хотя в целом и так ок, и переписывания можно было избежать добавив десятку ифов. Этим заниматься можно долго и масштабно, а игра тем временем не делается.

Плюс как заметили в том треде, корпоративные сайты и приложения поддерживаются долго, их постоянно надо дорабатывать и актуализировать. Игры это "релизнул и забыл".
Аноним 04/03/24 Пнд 16:42:52 #257 №940317 
>>940289
>Игры это "релизнул и забыл".
Зависит от игры, планов на расширение/дополнения, сингл/мульти направленности особенно.
Например, делаю игру с несколькими механиками и уровнями, если заходит, захочу добавить новые главы, новые механики, чтобы их просто добавлять без переписывания всего.
Играю в одну ммо которая тянет уже больше 15 лет. И там постоянно у них боль и страдание, очередная обнова привела к - крашам от звука нового пета, крашам от выхода в меню, тормозам если выйти в другую локацию, народ бугуртит и массово отказывается от подписок. Конечно мои игры 15 лет не проживут, но и одноразовыми делать не хочется.
Аноним 04/03/24 Пнд 16:50:33 #258 №940320 
>>940317
>захочу добавить новые главы
Если популярность имеется, то почему бы тогда не сделать вторую часть игры? Кэша больше, видимость выше. К примеру есть франшиза, Swords and Sandals, автор - соло-идюк, последние версии как раз на годоте пилит.
>в одну ммо которая тянет уже больше 15 лет
Во что гоняешь?
Аноним 04/03/24 Пнд 21:21:46 #259 №940394 
А что это такое интересное у камеры появилось?
Compositor это я так понял задел на будущее на эффекты типа планарных отражений https://github.com/godotengine/godot-proposals/issues/7916
А по аттрибутам, там теперь (авто)выдержка + на выбор DOF или фокусное расстояние. Это вынесли из WorldEnvironment что ли?
Аноним 04/03/24 Пнд 21:49:07 #260 №940396 
В прошлом треде про тени и динамическое время дня писал, что стоит делить меши на несколько мелких, а сейчас нашел еще такй вариант: 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 #261 №940397 
И да, я снова вернулся к игре мечты с открытым миром и динамическим временем суток. В этот раз попробую на 4-ке.
Аноним 04/03/24 Пнд 22:33:29 #262 №940402 
>>940396
А у меня не время дня и ночи, а обычный омнилайт у персонажа в руках, но я уже заебался.
Аноним 04/03/24 Пнд 22:38:59 #263 №940404 
image.png
Все серьезно
Аноним 04/03/24 Пнд 23:24:43 #264 №940414 
>>940402
Ну кстати не уливлюсь если омнилайт настроить сложнее чем дирекшонал
Аноним 04/03/24 Пнд 23:47:01 #265 №940420 
>>940267
Пиздец нахуй блять. Каким же надо говноделом быть для такого. Я вот открываю те части проекта, которые писал месяц назад, и
а) легко их читаю и понимаю, как этим пользоваться,
б) не хочу ничего поменять, всё уже хорошо выстроено,
в) оно прекрасно расширяется под нужды растущего проекта,
И вдобавок
г) я могу скопипастить части из прошлых проектов с минимальными изменениями.
И это охуенно ускоряет разработку. Просто, блять, СРАЗУ писать хорошо. Приучиться не делать говна изначально - и разработка попрёт реально быстро. И дизигн паттерны как раз для этого и нужны.

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

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

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

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

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




...



Лишь бы игры не делать.
Экспорт на Android Аноним 06/03/24 Срд 21:11:34 #300 №940734 
optimisation.jfif
Сап, /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 #301 №940737 
>>940733
Ты крут.
>#wipe samewords
Кек
Аноним 06/03/24 Срд 21:16:16 #302 №940745 
>>940737
Да, детка, я такой. По ссылке в описании можешь сделать донат.
Аноним 06/03/24 Срд 21:18:39 #303 №940750 
>>940734
Сорян, по андроиду ничего не смогу ответить.
Аноним 06/03/24 Срд 21:19:05 #304 №940753 
>>940734
P.S. На моём старом андроиде логика 3д мира работает, я могу взаимодействовать с ним, скрипты работают, но сами объекты не показываются, плюс я использую две камеры — от первого и от третьего лица, которые переключаются через .set_current(), где я сначала отключаю одну камеру, затем включаю другую.
Аноним 06/03/24 Срд 21:21:02 #305 №940758 
>>940750
Но по оптимизации есть что-нибудь? Пост касается не только андроидов, но и в целом затрату ресурсов от разных функций и нод годота

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

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

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

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

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

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

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

> Почему во всяких гайдах, в той же книге, направление игрока записывают в переменную velocity? Почему не direction условный, velocity это же скорость.
velocity - это direction умноженная на speed
Аноним 10/03/24 Вск 08:46:18 #373 №941241 
>>941230
У меня не годот прост.
Аноним 10/03/24 Вск 13:45:20 #374 №941309 
>>941241
Тогда, просим-просим в новый свежий субшота-тред! >>941307 (OP)
Аноним 10/03/24 Вск 14:55:10 #375 №941322 
https://www.youtube.com/watch?v=mHokBQyB_08
Аноним 10/03/24 Вск 15:58:51 #376 №941336 
1682219503711.jpg
>>941322
Это только первый шаг, на одном рейкасте, а дальше придется уже и A-star прикручивать чтобы найти путь звука огибающего углы.
Аноним 10/03/24 Вск 16:17:03 #377 №941343 
В определенных чатах разработчиков веб игр говорят, что годот для веба не очень. Размер билда большой, загрузка, перформанс. А я хочу именно в веб, стоит ли оставаться в godot?
Аноним 10/03/24 Вск 16:25:40 #378 №941344 
>>941343
Средний. Для того кол-ва фич, что есть, очень даже. Я использую 3-ю версию для лоуполи 3д. В противном случае мне бы пришлось ковыряться в threejs довольно низкоуровнево. Перформанс, надо срезать многие фичи, многое упрощать и оптимизировать. Для 2д, ну наверное можно взять что то чисто js. А так, возьми и попробуй, сделать прототип и померять нетрудно. В конце концов потом прототип перенести на тот же threejs. Как минимум у тебя остается удобный редактор.
Аноним 10/03/24 Вск 16:32:13 #379 №941346 
>>941343
Хз, все свои игры выложил и под веб тоже. По стилям совсем разное. Пиксели, 2д, 3д. Никаких проблем. Я чет думаю ты читаешь каких-то ноудевов, которым лишь бы причину найти ничего не делать.
Аноним 10/03/24 Вск 16:36:49 #380 №941347 
>>941343
А у тебя есть айфон? А то у меня тут вопросы неразрешенные >>939742
Аноним 10/03/24 Вск 18:44:30 #381 №941366 
image.png
Сап, годач.
Есть у меня 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 #382 №941367 
>>941366
Я ниххуя не понял? Что у тебя происходит? Что тебе нужно?
Аноним 10/03/24 Вск 19:15:15 #383 №941368 
1656093978867.png
>>941366
А ты пробовал документацию прочитать?
Аноним 10/03/24 Вск 19:22:52 #384 №941369 
>>941367
Ну видимо чувак в словари добавляет внутриигровые предметы и по мере прогресса добавляет в словарь новые.
Аноним 10/03/24 Вск 19:27:47 #385 №941370 
>>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 #386 №941372 
>>941370
А не, туплю. Он словарь извлекает.
Аноним 10/03/24 Вск 19:32:38 #387 №941373 
>>941370
Словари и массивы (и, вроде бы, теперь Callable) в гдскрипте передаются по ссылке а не по значению. А если понадобиться передать 33 по ссылке, то можно обернуть его в массив или объект
Аноним 10/03/24 Вск 21:38:52 #388 №941391 
>>941372
this
>>941368
Спасибо, попробую.
>документацию прочитать?
Это духота, поэтому я редко вспоминаю об этом
Аноним 10/03/24 Вск 22:04:15 #389 №941400 
Поделюсь своей историей. В прошлом треде обсуждали публикацию на крейзигеймс. Так вот, я переписал кусок старого годот 3 проекта, избавился от тредов в своем коде, следовательно избавился от необходимости в sharedbufferarray, и опубликовался на крейзигеймс. Анон, с которым я разговаривал в прошлом треде, говорил что они отказывают молча - без объяснения причин. Мне причины написали. Я их исправил, отправил снова, со второго раза меня опубликовали. Потом мне написали еще раз, с анализом взаимодействия юзеров с моей игрой, и с советами как игру улучшить. Их я тоже реализовал.

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

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

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

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

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

Ебаные аутисты и пидорасы опять откатили прогресс в прошлое. Как же заебало.
Аноним 11/03/24 Пнд 09:41:06 #409 №941466 
Ajd7JtHlEhw.jpg
J5JZT8x2Cok.jpg
Здравствуйте, у меня есть сцены объектов с параметрами(пример Вася), есть сцены с кнопочками, которые должны улучшать эти параметры.
Как связать одно с другим? Мне не хочется вручную прописывать миллион одинаковых сигналов для каждого объекта, а как сделать более лаконично и по умному я не знаю.
Аноним 11/03/24 Пнд 10:58:05 #410 №941469 
>>941466
Не совсем понятно, как и где у тебя планируют располагаться кнопочки, но можешь сделать один сигнал, а в нем передавать разные параметры в зависимости от кнопочки
Аноним 11/03/24 Пнд 11:03:29 #411 №941470 
>>941469
кнопки будут распоагаться в отдельном скроллбаре, и какой что нужно прописать в сигнале, чтобы к конкретному экзмепляру другой сцены передать данные?
Аноним 11/03/24 Пнд 13:19:43 #412 №941475 
>>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 #413 №941507 
>>941444
Спасибо анон что пояснил, а я даже не думал о таком, вся синхронизация через SAB была. Ебать вот это открытие-то нахуй. Чем дольше вникаю тем глубже кроличья нора. Нужно обязательно модифицировать код и добавить варианты работы и синхроанизации каких-то данных между потоками.
Жозенько конечно, хорошо что наткнулся на это, иначе бы обосрался и пришлось в продакшене пытаться переписывать свой движок.

В целом идея такая - иметь несколько воркеров, синхронихировать время через RAF, синхронизировать данные через postmessage с transferable объектами. Будут полностью независимые потоки, но с передачей данных между потоками. Впринципе должно работать. Но синхронизация такая слишком сложная. Но у меня работать будет. Вероятно годот и хуан с этим не справится никак вообще, слишком сложно.
Аноним 11/03/24 Пнд 17:46:05 #414 №941509 
>>941507
> годот и хуан с этим не справится никак вообще
Вообще-то справляется. Речь о том, что не справляются хостеры игор, не справляются с многопоточными играми.
> у меня работать будет
Скажешь "гоп" как выскочишь.
Аноним 11/03/24 Пнд 18:15:22 #415 №941512 
>>941509
> Вообще-то справляется.
Нет, не справляется и не справится, слишком сложная реализация. Отдельные подсистемы нужно на разные ядра раскидывать и синхронизацию вводить для них. Либо одни и те же системы с сложной синхронизацией. Короче не айс.
> Речь о том, что не справляются хостеры игор, не справляются с многопоточными играми.
Нет, просто обоссаный хром обоссался, создал дыру и не смог нормально изолировать сайты. Хз когда исправят, годиков через пять, наверное, не меньше. До той поры у годода нет шансов.
Там суть в том что рекламу не сможешь встроить в страницу, потому что реклама может из разных источников быть и эти источники могут уже с твоего сайта воровать данные из-за этой самой дыры.
> Скажешь "гоп" как выскочишь.
Оно уже работает через наивный подход, но наивный не самый производительный и красивый. Дальше попишу немношк, покумекаю как сделать лучше и красивее.
Аноним 12/03/24 Втр 00:47:04 #416 №941544 
Вот вы спать пошли, а часики-то тикают.
Аноним 12/03/24 Втр 02:50:03 #417 №941549 
>>941544
А ты батарейку на ночь вытаскивай
Аноним 12/03/24 Втр 17:17:19 #418 №941655 
image.png
>>941549
Как же работать без батареек?
Аноним 12/03/24 Втр 17:19:58 #419 №941656 
>>941655
На дизельном топливе, керосине, бензине, электричестве от картошки, фотосинтезе, ветряках. Че как маленький.
Аноним 12/03/24 Втр 20:50:38 #420 №941673 
Расскажу я вам одну историю про робота. Этот робот жил под землёй и рыл себе туннели. А работал он от солнечного света. Чтобы работать ему надо было, чтобы по оптоволокну через фотоприёмники свет попадал прямо ему в ядро. У него было выращено на поверхность множество оптоволокон, но вот беда, ночью солнце заходит и света нет. И тогда робот придумал замечательную идею. Пока наверху день, робот накапливал энергию солнца в специальных молекулах, которые образовывали связи, бомбардируясь фотонами. По потребностям робота он генерировал себе три вида молекул: СВЕТ, ТЕПЛО и КРУЧЕНИЕ.
Когда молекулы заработали, робот перестал зависеть от дневного света, смог оторваться от ранее выращенных волокон и углубился дальше в лес, затем по руслу реки, к небольшому городу N, где и спрятался под большим автомобильным мостом.
Аноним 12/03/24 Втр 20:54:09 #421 №941674 
image.png
>>941673
Так выпьем же за теорию торсионного поля!
Аноним 12/03/24 Втр 23:02:35 #422 №941689 
1674995417456.png
>>941673
Аноним 12/03/24 Втр 23:04:22 #423 №941690 
>>941673
Украл для сюжета своей игры, ждите меня миллиардером.
Аноним 13/03/24 Срд 00:51:14 #424 №941694 
https://github.com/godotengine/godot/issues/35606
Господа анонсы делающие пиксельарт игры, как вы боретесь с тряской линкрелейтед? Впринципи в ексклюзив фуллскрин она практически незаметна, но это на фуллхд монике, как будет на 2к и 4к хуй его поймешь. За оконный режим вообще молчу, там тряска на уровне шиза из движкосрача, укачать может. Пиксель перфект я не преследую, нахуй не нужон, за пиксельснап трансформа знаю, но эта хуйня может вызвать только приступ эпилепсии.
Настройки проекта если нужны: размер вьюпорта 480х270, мод канвас айтем, скейл мод целочисленый, юзаю четверку. Из за чего собсно происходит эта тряска я понимаю, но не понимаю нахуя это было сделано так криво.
Вообще на текущей стадии проекта меня это волновать не должно, но сука, не могу успокоиться зная о такой проблеме.
Аноним 13/03/24 Срд 01:02:20 #425 №941695 
>>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 #426 №941696 
>>941694
>>941017
Аноним 13/03/24 Срд 01:05:25 #427 №941697 
>>941695
Есть еще вариант сабпиксельной камеры через шейдер.
https://www.youtube.com/watch?v=zxVQsi9wnw8
https://github.com/RPicster/Godot-Collected-Thingies/tree/master/Godot-Tutorial-SmoothCamera
Аноним 13/03/24 Срд 01:21:09 #428 №941698 
>>941695
>Можешь использовать вью мод 2д вместо вьюпорта
В четвёрке это и есть канвас айтем. А вот за шейдер спасибо, сейчас потесчу.
>После двух своих тру-пиксель-перфект игр перешел на лоуполи 3д и рад пиздец.
Да я если честно уже пожалел что в 2д полез, столько мозгоебли что проще в 3д уйти и начать моделировать.
>>941696
>за пиксельснап трансформа знаю, но эта хуйня может вызвать только приступ эпилепсии.
Это слышу звон, да не знаю где он, называется. Ссылка на документацию отношение к проблеме вообще никакого не имеет.
>>941697
Это не то, да и в четверке не работает.
Аноним 13/03/24 Срд 01:32:09 #429 №941699 
>>941698
А, я то пиксель на 3-й делаю. Как раз потому что он там доведен до ума. Конечно нету вкусных тайлмапов, ну чтож.
Аноним 13/03/24 Срд 02:25:52 #430 №941701 
>>941699
Я щас мельком тройку потестил, тряска тоже есть, но только у спрайта на котором камера висит, надо будет попозже сделать полную копию сцен из 4 и посмотреть как оно, мб все таки придется пожертвовать фичами 4 и сесть на 3.
Аноним 13/03/24 Срд 02:26:38 #431 №941702 
>>941698
>пожалел что в 2д полез
2д оно такое, да. Это все тот ебучий миф, что типа пиксель арт - просто. Типа навалил пикселей и поехал. Хуй там. Самый сложный стиль и для рисования и для работы с. При этом в годоте с ним еще норм работается, в отличии от некоторых других движков.
Аноним 13/03/24 Срд 16:14:38 #432 №941737 
>>941701
> у спрайта на котором камера висит
Там еще разные факторы есть, например у камеры есть свое сглаживание, у физического движения тоже.
Аноним 13/03/24 Срд 18:51:05 #433 №941747 
ВЫШЕЛ ВЫШЕЛ ВЫШЕЛ

https://github.com/Vahera/godot-orchestrator/releases/tag/v2.0.rc1
Аноним 13/03/24 Срд 22:28:16 #434 №941770 
Годот это единственный движок на котором я смог сделать хоть что-то, хоть какой-то кусок говна, но выпустил.
На фейзере я в ахуе как люди что-то делают, там даже редактора нет, просто в голове отыгрываешь и на каждый пук ищешь костыли, фиксы, хуиксы. Остальные маленькие движки для веба тоже супер перегружены какой-то парашей которая лично меня отпугивает
Аноним 13/03/24 Срд 22:37:17 #435 №941771 
>>941770
Маладца. После первой релизнутой поделки ты стал опытней, дальше легче. Куда выложил?
Аноним 13/03/24 Срд 22:41:29 #436 №941772 
>>941747
Странная штука. Во первых, нужон ли там GDExtension? Во-вторых, нет поддержки мобилок в рантайме.
Аноним 13/03/24 Срд 23:52:26 #437 №941775 
IMG20240313233416.jpg
IMG20240313233336.jpg
image.png
Блять, просто мистическая хуита творится! Делаю игру четко по гайду, как вдруг кто-то наслал проклятие!

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

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

НО на сцене-карте мне недоступны экспорт-переменные ноды-спавнера. Они же внутри постройки сидят. Я конечно могу кликнуть по сцене-постройке, включить "редактируемые дети", и добраться до ноды-спавнера. Но это все дерево в кашу превращает. Хотелось бы, типа, указать "вот эту ноду подтягивай наверх и показывай как свою родную".
Аноним 15/03/24 Птн 04:15:55 #453 №941871 
>>941869
Тебе нужно ноду не по дереву адресовать? Используй группы
https://docs.godotengine.org/en/stable/tutorials/scripting/groups.html
Аноним 15/03/24 Птн 11:54:02 #454 №941880 
1693066625618.webp
1671427800633.png
1668987765606.png
1680300588777.png
>>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 #455 №941898 
Подскажите а годот умеет так?

https://www.youtube.com/watch?v=eBEMFcUjGno

Мне надо подобное реализовать
Аноним 15/03/24 Птн 17:22:26 #456 №941906 
1698130095261.png
1633934306928.png
>>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 #457 №941908 
>>941898
Из коробки такого нет. Сам такую хотел сделать, пока руки не дошли, где-то был гайд, там что то с рейкастами. Кажется этот https://www.youtube.com/watch?v=KlfFnchkDwQ
Аноним 15/03/24 Птн 17:32:27 #458 №941909 
>>941908
Т.е. общая идея что ты обнаруживаешь угол, на котором поворачивает веревка, и в этой точке его прилепляешь. Между этой и предыдущей точкой провешиваешь его немного, чтобы он свисал. От новой точки тянешь дальше.
Аноним 15/03/24 Птн 21:40:23 #459 №941930 
>>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 #460 №941936 
>>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 #461 №941937 
>>941906
Спасибо, анон. Пока я решил в сцене-карте, в каждое здание, вручную добавлять ноду-спавнер. Тогда она доступна прямо на карте и позволяет выбирать все, что нужно. Геморно, но не так кашево как включать редактирование детей.

А ты принес хорошую штуку. Потыкаю ее.
Аноним 16/03/24 Суб 00:04:15 #462 №941938 
image.png
Dev snapshot: Godot 4.3 dev 5
https://godotengine.org/article/dev-snapshot-godot-4-3-dev-5/
Аноним 16/03/24 Суб 00:47:24 #463 №941941 
>>941938
Когда там релиз уже?
Аноним 16/03/24 Суб 00:49:41 #464 №941942 
1710539379676.png
>>941936
В массиве вот подобные объекты, чисто для примера пока что

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

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

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

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

Давайте, готовьте арт на перекат.
Аноним 18/03/24 Пнд 14:23:05 #494 №942118 
>>942109
Бери, лучше не найдешь, базарю -> >>942028
Аноним 18/03/24 Пнд 14:29:29 #495 №942120 
1705486192705.webp
1704449230235.webp
1605423967172.webp
1608188529122.png
Dev snapshot: Godot 4.3 dev 5  Аноним OP 18/03/24 Пнд 16:13:31 #496 №942129 
1710767613133.webp
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 #497 №942130 
1710767659252.webp
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 #498 №942131 
1710767702614.webp
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 #499 №942133 
перекатывайте уже!
ПЕРЕКАТ Аноним OP 18/03/24 Пнд 16:16:25 #500 №942135 
>>942134 (OP)
>>942134 (OP)
>>942134 (OP)
Аноним 27/03/24 Срд 12:17:48 #501 №943001 
>>939727
>>939722
Видимо, мне не стоит спрашивать, что это и зачем, чтобы не бросить всё к хуям в самом начале.
comments powered by Disqus