Сохранен 515
https://2ch.hk/gd/res/734420.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Godot #21.03

 Аноним OP 21/03/21 Вск 16:01:01 #1 №734420 
ОП-пикча
Добро пожаловать в тред любви, взаимопомощи, лобызаний и цветения!

Краткий гайд по вкату в движок:
1. Читать документацию.
2. Качать примеры.
3. ПРОФИТ!

Ньюсач
https://godotengine.org/news/

Ссылки
Скачать движок: https://godotengine.org/download/ или http://store.steampowered.com/app/404790/Godot_Engine/
Теперь прямо онлайн - можно и с дивана: https://godotengine.org/online/godot.tools.html
FAQ: https://docs.godotengine.org/ru/latest/about/faq.html
Документация: https://docs.godotengine.org/ru/latest/ https://docs.godotengine.org/en/stable/
Примеры качаются прямо в движке через свой магазин в отдельной вкладке AssetLib. Там есть всё - от платформера до чата.
Игры, созданные глобальными кириллами: https://steamcommunity.com/app/404790/discussions/0/412448792354265655/
Изумительный Годот: https://github.com/Calinou/awesome-godot - подборка дополнений, модулей и минишоукейс от одного из авторов.
Аддон для диалоговой системы: https://github.com/coppolaemilio/dialogic

Для любителей пощекотать конпеляцию
Бинды LUA: https://github.com/perbone/luascript
Бинды JS: https://github.com/GodotExplorer/ECMAScript

Годнота от анона
- Для приверженцев опенсорца существует возможность распространять проекты в незапакованном формате. Просто скачай темплейт с оф.сайта и положи экзешник/эльфешник в папку с проектом, этого достаточно. Имя файлу можно задать любое. Дополнительно можешь вшить свою иконку в экзешник. После этого, запустившийся файл темплейта обнаружит рядом с собой файл project.godot и начнет грузить проект из него и из файлов, лежащих в распакованном виде в той же директории. Для запущенного таким образом проекта папка res:// становится доступна для записи (если это не ограничено правами доступа в системе).
- В версии 3.2 появилась возможность прикреплять pck к бинарнику. Бриллиант для любителей однофайлового продукта!
- Редактор персонажей на основе makehuman: https://github.com/Lexpartizan/Go_MakeHuman_dot
- Тест-бенчмарк:
- - Веб-версия - https://govdot.herokuapp.com
- - Вишмастер для винды - https://govdot.herokuapp.com/4Anon.rar

Предыдущий: >>719977 (OP)

Архивный: https://arhivach.net/thread/641529/
Аноним 21/03/21 Вск 16:07:15 #2 №734425 
image.png
>>734420 (OP)
И первый платиновый вопрос треда.
Когда я добавляю объект в сцену, то он появляется в нулевой отметки xy. И, когда я пытаюсь его перетащить, то либо цепляю другие объекты, либо куски моего объекта, например только спрайт или только коллижншейп. Как мне удобно и нормально перетаскивать сразу весь объект не цепляя при этом другие вокруг?
Аноним 21/03/21 Вск 16:14:09 #3 №734427 
>>734420 (OP)
Ньюсач слабый, я надеялся на топ выборку как в блоке "годнота".
Аноним 21/03/21 Вск 16:21:00 #4 №734428 
1616263914519.jpg
>>734420 (OP)
> В версии 3.2 появилась возможность прикреплять pck
не появилась, а вернулась - 2.х умел
Аноним 21/03/21 Вск 16:49:12 #5 №734435 DELETED
>>734425
Как и везде в таких редакторах
Аноним 21/03/21 Вск 16:51:26 #6 №734436 
Есть что на тему неевклидовых пространств?
Аноним 21/03/21 Вск 16:54:39 #7 №734437 
>>734435
Спасибо!
Аноним 21/03/21 Вск 16:58:19 #8 №734438 DELETED
>>734436
Не лезь туда оно тебя сожрет
https://www.youtube.com/watch?v=eUJUHO28sLQ
Аноним 21/03/21 Вск 16:58:39 #9 №734439 DELETED
>>734436
https://www.youtube.com/watch?v=kEB11PQ9Eo8
Аноним 21/03/21 Вск 17:01:23 #10 №734440 
>>734438
Спасибо.
Аноним 21/03/21 Вск 19:09:12 #11 №734457 
image.png
image.png
Продолжаем платиновые вопросы.
Сделал я animationPlayer, запихнул туда анимацию ходьбы в разные стороны, настроил скорость и прочие параметры. Запустил - отлично работает, скорость настроена.
Затем сделал animationTree, там blendSpace2D, запихнул туда анимацию для удобства. А эта хуевина проигрывает скорость анимации по своим стандартным параметрам, не учитывая настройки скорости в animationPlayer. Как фиксить?
Аноним 21/03/21 Вск 19:20:43 #12 №734459 
>>734457
Алсо, в инете тоже не вижу решения пиздец нахуй элементарная же вещь. Если решения нет, то как реализовать тогда в коде смену направлений от градусов?
Аноним 21/03/21 Вск 19:27:21 #13 №734463 
>>734457
Уточню, мне нужна покадровая настройка, так как некоторые кадры у меня проигрываются с разной скоростью
Аноним 21/03/21 Вск 20:15:35 #14 №734491 DELETED
>>734457
Посмотри time_scale, может это оно
Аноним 21/03/21 Вск 23:20:15 #15 №734527 DELETED
>>734424 →
Да ладно так то топовый оп пик
Аноним 22/03/21 Пнд 07:33:09 #16 №734557 
Привет годаны, у меня опять вопрос. Скачал пример игры, написанной на С# скрипта в примере все работает отлично, но когда я пытаюсь повторить у меня получаются проблемы с нажатием клавишь, например не работает только нажатие клавиши или сигнал на опускание клавиши, пример - прыжок, нажимаю пробел и он работает через раз, нажемаю бежать и пробел и он срабатывает только через некоторое время. Та же беда с мышью, она вообще не работает, ни правый ни левый клик. Я назначал клавиши через внутренние методы Шарпа(принудительное нажатие клавишь и прямое нажатие указанных клавишь) и нет я не забыл назначить клавиши в своём редакторе, все указал, но они работают через раз.
Я прочитал посты из предыдущего треда о подобной проблеме и нет с кодом все нормально он почти одинаковый немного переработанный, возможно опять, что в движке не нажал. Насчёт контролов я не совсем понял, что там перекрывает?
И да я заметил в некоторых примерах управления персонажей задают годов скриптом, а процедурные вещи, например уровни или объекты пишут на шарпе.
Аноним 22/03/21 Пнд 10:27:56 #17 №734564 
>>734557
Напомни, зачем тебе вообще шарп? Почему нельзя реализовать силами движка то, что ты хочешь?
Аноним 22/03/21 Пнд 11:14:20 #18 №734570 DELETED
>>734557
А ты проверь что у тебя именно нажатия не работают, а не логика персонажа ошибочная.
В обработчике ввода пиши GD.Print("LeftClick") итд
Аноним 22/03/21 Пнд 11:14:51 #19 №734571 DELETED
>>734557
Тут только код смотреть или весь проект.
Аноним 22/03/21 Пнд 13:14:11 #20 №734595 
>>734564
Он мне понятен и прятен. Я правда пытался освоить гд скрипт, но постоянный контроль отступов и пробелов вымораживают
>>734570
Спасибо, попробую
>>734571
Понял, но пока это не возможно. Пишу на работе, дома до конца месяца проблемы с инетом, только офлайн.

На самом деле даже того, что я уже достиг в этом движке значительно перекрывает все то что я делал раньше, надеюсь хотя бы эту игру довести до запланированного конца и вправду душевный двиг, надо было изначально на годот вкатываться столько времени потерял.
Аноним 22/03/21 Пнд 19:39:15 #21 №734664 
>>734557
У меня через kinematicbody2d, IsActionJustPressed() и MoveAndCollide() все норм на 3.2.4 RC5 так-что это ты наговнакодил скорее всего.
Аноним 23/03/21 Втр 01:40:00 #22 №734727 
>>734557
Есть серия туториалов на ютубе по связке годот+шарп, автор сильно похож на инфоцыгана, но как вариант https://www.youtube.com/watch?v=ra-BJ-fJ6Qo
Аноним 23/03/21 Втр 07:39:27 #23 №734737 
>>734664
Возможно. Попробую.
>>734727
Спасибо, я его смотрел.
Аноним 25/03/21 Чтв 05:51:03 #24 №735092 
AaF7I726N-8.jpg
Появляется ошибка после срабатывания queue_free()
Invalid get index 'position' (on base: 'Nil').
при попытке вычислить свою position на следующей итерации. Разве queue_free() не удаляет весь узел? Почему после queue_free() Годот пытается вызвать позицию удаленного узла?
Аноним 25/03/21 Чтв 06:07:34 #25 №735094 DELETED
>>735092
Кью потому и называется кью, а не фри, потому что только ставит в очередь на удаление. Само удаление происходит только между текущим и следующим кадром, потому что иначе в с++ кишках может быть еще ссылка на объект, скажем в системе физики,
Аноним 25/03/21 Чтв 06:18:46 #26 №735095 
>>735094
Все равно не понятно что не так
https://pastebin.com/EKNYa40L
На 33 строчку ругается

Аноним 25/03/21 Чтв 06:22:15 #27 №735096 
>>735095
Или он на closest_enemy.position ругается?
Но там же стоит body != null.
Не понимаю, миленькие.
Аноним 25/03/21 Чтв 06:32:36 #28 №735097 DELETED
>>735096
Но position ты читаешь у closest enemy который вполне может быть null - проверкой строчкой выше ты не останавливаешь обработку.
Аноним 25/03/21 Чтв 06:41:08 #29 №735098 
>>735097
Согласен. Спасибо
XOXO
Аноним 26/03/21 Птн 11:39:18 #30 №735351 

Решил проблему с несрабатыванием прыжка, нужно было в редакторе поднять коллайдер коллизий у персонажа (если я правильно назвал) выше, у меня он был наполовину опущен в плоскость пола.
Начала работать мышь, но по прежнему игрок или берет предмет, но не кидает его, или не берет предмет, но может пнуть его. Думаю проблема в состоянии персонажа, когда срабатывает булевое условие в руках или на земле плюс подозреваю что опять что то неправильно в редакторе настроил для персонажа.
Аноним 26/03/21 Птн 23:42:18 #31 №735480 
>>734420 (OP)
Так, ну AnimationTree меня нахуй послало с тонкой настройкой анимации. И тогда вопрос: Как мне сделать так, что бы в топ даун игре с четырьмя направлениями враг смотрел в сторону героя?
У меня есть четыре анимации ходьбы в четыре стороны соответственно. Но передвижение свободное, то есть, спрайт врага должен меняться от угла по направлению гг
Аноним 27/03/21 Суб 00:25:26 #32 №735483 
>>735480
алсо, пробовал (direction.global_position.x - global_position.x) > (direction.global_position.y - global_position.y), но персонажа чет ебобить начинает в разные стороны
Аноним 27/03/21 Суб 04:40:36 #33 №735496 
>>735480
Сравнивать позицию врага с позицией персонажа и менять анимацию? Помоему самый очевидный вариант.
Аноним 27/03/21 Суб 10:03:48 #34 №735504 
>>735496
Спасибо, а теперь код в студию
Аноним 27/03/21 Суб 12:43:43 #35 №735523 DELETED
>>735483
тут не хватает abs(d.x-g.x)
На листочке в клетку порисуй и поймешь.
Аноним 27/03/21 Суб 14:53:36 #36 №735541 
>>735523
>abs
Точно... Спасибо, анон
Аноним 27/03/21 Суб 16:39:56 #37 №735565 
>>735504
За полкосаря напишу
Аноним 29/03/21 Пнд 07:29:52 #38 №735790 
>>735351
Решил проблему с броском и поднием предметов. Короче все дело в райкасте, у меня в сцене он был направлен в землю, а не в направлении взгляда модели, как и думал накосячил в редакторе, а не в коде. Кстати зря я на шарп гнал, он корректно работает.
Сейчас планируют разобраться с поворотом модели, пока по клавишам и добавить анимации, в будущем планируют поворот модели с помощью мыши.
Аноним 29/03/21 Пнд 14:36:38 #39 №735872 
Нахуя в годо писать на шарпе? Это специальная олимпиада?
Аноним 29/03/21 Пнд 15:01:56 #40 №735881 DELETED
>>735872
Не толсти, плез.
Это топовый мощнейший язык. В котором все что ты пишешь получается компактнее и выразительнее.
А можно вообще на F# писать.
Аноним 29/03/21 Пнд 15:15:02 #41 №735883 
>>735881
Можно и на дуде звук жопой сыграть, только зачем если есть рот? По отдельности рот, жопа и дуда отлично справляются со своими задачами. Так же как годо и шарп, но вот совмещать - это специальная олимпиада.
Аноним 29/03/21 Пнд 19:41:04 #42 №735932 
>>735872
Шапку читал?
Аноним 29/03/21 Пнд 21:45:15 #43 №735946 
Мой некроноут 2009 года потянет разработку 2D-игр?
Аноним 29/03/21 Пнд 22:18:57 #44 №735948 DELETED
>>735946
Скачай, попробуй, дела то на 5 минут.
Вот проектик простенький
https://drive.google.com/file/d/1s8uzKNLoUWh4Z8rgOoIgkmVGDHRcj0Do/view?usp=sharing
Аноним 29/03/21 Пнд 22:21:56 #45 №735949 
>>735948
Ну я уже, в демку поиграл, запускалась минут 5, проект создался за несколько минут. В принципе ничего не лагает и всё работает.
Вкатываюсь через вот этого челика https://www.youtube.com/watch?v=Mc13Z2gboEk , всё правильно делаю?
Аноним 29/03/21 Пнд 22:24:39 #46 №735951 DELETED
>>735949
Вполне. Если любишь текстом то на сайте движка есть тутор
https://docs.godotengine.org/en/stable/getting_started/step_by_step/index.html
(включая главу your first game)
Аноним 29/03/21 Пнд 22:56:37 #47 №735958 
>>735883
Какая охуенная аналогия. Ну тогда скажи же нам какие у GDs есть функциональные преимущества перед C#?
Аноним 30/03/21 Втр 03:00:14 #48 №736006 
ExrR33JXIAAOI8J.png
Аноним 30/03/21 Втр 11:51:54 #49 №736044 DELETED
>>736006
Хуан, eto ti?
Аноним 30/03/21 Втр 20:04:02 #50 №736179 DELETED
>>736170
Есть, как это у чего-то может не быть недостатков?
Но к чему этот разговор? Ты смотришь на возможности и решаешь, хватает или не хватает для твоей игры.
https://www.youtube.com/watch?v=SEMhbujdxis
Аноним 31/03/21 Срд 17:15:03 #51 №736366 
>>736170
Возвращайся в свой движкосрачь и используйте что хочешь, нечего здесь срач разводить.
Аноним 31/03/21 Срд 20:56:39 #52 №736429 
Привет, годаны! Как вы тут? С осени не заходил, так как игори не пилю нынче. Что нового? Трёшка всё продолжает вариться в RC, я смотрю.
Кто-нибудь из треда зарелизил игру мечты?
Аноним OP 31/03/21 Срд 21:13:01 #53 №736434 
>>736429
> Как вы тут?
Картоху сажаем на даче. Вот заглянул в тред перед сном. А тут срутся. Зарепортил всех.
Аноним 02/04/21 Птн 22:29:24 #54 №737032 
>>734420 (OP)
Как мне получить доступ к последнему кадру анимации?
Типа код такой по смыслу:

если происходит последний кадр анимаци, то делается что-то
Аноним 02/04/21 Птн 22:34:46 #55 №737036 DELETED
>>737032
Есть сигнал animation finished
Также можно прямо из анимации дергать любые функции, специальный вид трека есть.
Можно тупо в process() смотреть какой сейчас кадр.
Аноним 02/04/21 Птн 22:35:44 #56 №737038 
>>737036
понял, спасибо!
Аноним 02/04/21 Птн 23:23:34 #57 №737052 
Попробовал Godot. GScript медленный, поэтому пробовать его не стал. Попробовал godot-nim, он работает, но без лайв кодинга и документации и туториалов почти нет. gdnim не получилось запустить. Какие другие языки программирования попробовать, желательно с лайв кодингом? C/C++ знаю, но несколько страшно их из-за нестабильности использовать. Rust сложнее C/C++ во многих случаях и компилится часами. Java мне не очень нравится синтаксисом. C# зачем в Godot, eсли есть Unity!? Nim был бы киллер-фичей Godot по сравнению с Unity.
Аноним 02/04/21 Птн 23:46:35 #58 №737072 
>>737052
Действительно, нахуй они шарп имплементировали, а не на никому неизвестном говне? Бля, да надо было Lisp или D хуячить, а может бреинфак? С такими киллер-фичами прям завтра в мейнстрим вырвемся.
Аноним 02/04/21 Птн 23:47:31 #59 №737075 
>>737052
Не выёбывайся и изучи лайв кодинг на гдскрипте. Потом как постигнешь объектную модель движка, сможешь с лёгкостью хоть на ним, хоть на раст перекатиться. Как раз поддержку этого твоего ним к тому времени допилят.
Аноним 03/04/21 Суб 00:17:25 #60 №737088 DELETED
>>737052
>GScript медленный, поэтому пробовать его не стал.
Какой жанр игры? Шанс, что тебе не хватит GDScript для первых игр, практически нулевой.
Это может вылезти только если у тебя что-то уровня факторио или ноиты, или ты собираешься вершины моделек или текстуры каждый кадр перехерачивать.
>C/C++ знаю, но несколько страшно их из-за нестабильности использовать.
И правильно.
>C# зачем в Godot
Чтобы написать код на C# который быстро работает, а при необходимости перенести его почти слово в слово в с++

>Rust
Попробуй https://github.com/JustinRyanH/godot-zig
шучу

Аноним 03/04/21 Суб 00:23:01 #61 №737089 
>>737088
> Какой жанр игры?
У меня есть большие сомнения насчёт реальности его игры. Ящитаю это позавчерашний залетух-движкосрачер от бана откис и теперь зашёл более тонко срач устраивать.
Аноним 03/04/21 Суб 11:29:01 #62 №737116 
>>737088
>Попробуй https://github.com/JustinRyanH/godot-zig
>шучу
В Zig компилятор на Zig для лайв кодинга ещё не сделали.
Аноним 03/04/21 Суб 12:40:21 #63 №737120 
>>737088
Жанр игры клон Sims.
Аноним 04/04/21 Вск 09:20:05 #64 №737231 
>>734420 (OP)
Гей-ендевур выходит на кикстартер.
https://www.youtube.com/watch?v=yIJrfvTv8XI
Поддержим, годаны? Что ж мы, кодерки-плагинцы штоле? Нееет, я вижу, среди вас фэпеэсных нет! Поддержим!
Аноним 04/04/21 Вск 09:21:22 #65 №737232 
>>737231
> Поддержим! Скопипастим и в продакшон набьём.
Быстрофикс.
Аноним 04/04/21 Вск 23:44:38 #66 №737341 DELETED
Хорошо сегодня подорвался на гдскрипте
В строчку
var s = a + b + c + d
закрался перенос.
var s = a + b
+ c + d
Аноним 05/04/21 Пнд 00:03:44 #67 №737342 
>>737341
> var s = a + b \
> + c + d
Аноним 05/04/21 Пнд 08:07:50 #68 №737362 
Всем годотерам привет. Вкатился в движок пару месяцев назад, пытаюсь сделать что-то простенькое, но есть вопрос по мультиплееру, я не понимаю как его реализовать. Попробовал через веб сокеты, серверную часть написал на python, и пытаюсь от Годо подключиться. Вроде через .connect_to_url() подключение проходит (появляется сообщение о подключении на сервере), но при этом данные не отправляются ни с сервера, ни из подключенного устройства.
Аноним 05/04/21 Пнд 08:10:59 #69 №737363 
>>737362
Кстати, когда пишу код клиента на том же python, то сервер с ним взаимодействует нормально. Может ли быть проблема в том, что клиент должен быть написан на том же языке, что и сервер?
Аноним 05/04/21 Пнд 13:19:28 #70 №737396 
>>737363
> Может ли быть проблема в том, что клиент должен быть написан на том же языке, что и сервер?
Нет, не может. Клиент-серверная технология и создавалась для того чтобы не ограничивать клиент и сервер в выборе языков. Внимательнее разбирайся. Неплохо бы код твой глянуть.
Аноним 05/04/21 Пнд 13:46:01 #71 №737400 DELETED
>>737362
Скачай оф. примеры, посмотри как там сделано. Там вебсокеты тоже есть.
https://godotengine.org/asset-library/asset?category=&godot_version=&sort=updated&filter=multiplayer
сам я вебсокетами не пользовался пока, только ENet gdscript<->gdcript через RPC (вызов функций в другом клиенте прямо из кода сервера)
Аноним 05/04/21 Пнд 13:48:04 #72 №737403 DELETED
>>737362
Ну и тут пример https://docs.godotengine.org/en/stable/tutorials/networking/websocket.html
Аноним 05/04/21 Пнд 15:31:03 #73 №737418 
>>737400
>>737403
Спасибо тебе, анон.
Я, идиот, пытался вытащить ответ из сервера, не прослушивая подключение.
Аноним 06/04/21 Втр 22:01:07 #74 №737599 DELETED
https://zinnoa.itch.io/etherscape
https://www.youtube.com/watch?v=vPvzk98dg5I
Аноним 07/04/21 Срд 14:21:20 #75 №737708 
1617794478720.png
>>737599
https://www.youtube.com/watch?v=Js0prg3r2Qk
Аноним 07/04/21 Срд 15:23:24 #76 №737726 DELETED
>>737708
Да это понятно, просто напомнило творчество местного джонаблоу
Аноним 08/04/21 Чтв 13:55:52 #77 №737845 
image.png
image.png
>>734420 (OP)
Мне нужно сделать действие, когда наступает определенный кадр анимации. Но код почему-то не срабатывает. Делаю через curren_animation_positionю. Что не так?
Аноним 08/04/21 Чтв 14:42:45 #78 №737850 
>>737845
Проще всего в саму анимацию запихнуть трек вызова метода.
Но если хочешь именно кодом, то скорее всего переменная никогда не достигает значения ровно 0.6. Тогла тебе поможет апроксимация к коэффициенту точности:
var phi = 0.55 # naprimer
if abs(current - 0.6) < phi: print("tvoia kiska v zone puska")
Аноним 08/04/21 Чтв 22:10:25 #79 №737906 
>>737850
>abs
А это зачем добавлять?
Аноним 08/04/21 Чтв 22:59:05 #80 №737914 
>>737850
А еще call method track ведет себя странно и показывает не все мои скрипты, странно...
Аноним 08/04/21 Чтв 23:33:04 #81 №737918 
>>737914
ну функции вернее
Аноним 08/04/21 Чтв 23:35:43 #82 №737919 
>>737914
>>737918
А лол, перезагрузка помогла
Аноним 09/04/21 Птн 13:59:06 #83 №737992 
image.png
>>734420 (OP)
Сап годач.
Есть одна проблемка. Предположим у меня есть враг с анимацией атаки в три кадра в четыре разные стороны. Атакаует он в сторону игрока. Но, если игрок начинает кружить вокруг врага, то враг естественно запускает анимацию атаки по новой в каждую сторону. И так его можно закрутить не доводя атаку врага до конца. И мне нужно, чтобы при изменении позиции игрока менялась анимация но с того кадра, который был у предыдущей анимации. Например два кадра в одну, а в другую сторону атака уже с тертьего кадра. Проблема в том, что я не врубаюсь как мне правильно запихнуть переменную, которая сохраняет текущий фрейм, чтобы она фиксировала позицию до изменения, а потом сбрасывалась, а еще какой именно командой запустить анимацию с определенного кадра
Аноним 09/04/21 Птн 14:16:14 #84 №737995 
>>737992
Просто сделай атаку в развороте. Вариант слева-направо и второй вариант наоборот. Соответственно, если враг разворачивается в атаке, у него стейтмашина переключает анимацию в разворот (с блендингом) и в дальнейшем стало быть спрайт уже развернут в новое положение. И не надо никакие фреймы запоминать. Искури матчасть по блендспейсам.
Аноним 09/04/21 Птн 14:47:06 #85 №738007 
>>737995
Я не пользуюсь стейтмашиной, потому что она не дает тонко настроить скорость анимации для разных фреймов, как это делает animationplayer (как же это тупо пиздец). Так что я делаю через код все.
Аноним 09/04/21 Птн 14:58:53 #86 №738011 
>>738007
> не дает тонко настроить скорость анимации для разных фреймов
Там есть ноды для управления скоростью. Я ж грю, матчасть воскури.
Аноним 09/04/21 Птн 16:07:56 #87 №738026 
image.png
>>738011
ну давай, покажи, как я могу настроить playback speed в animationtree
Аноним 10/04/21 Суб 06:26:07 #88 №738109 
image.png
Вопрос на миллиард. Где взять фоновую ненавязчивую музыку для игоря? С эффектами разобрался, а с музыкой хз. Могу указать автора взятой музыки, но доход с продаж лол хочу грести себе, ни с кем не делясь. Значит нужна музыка с максимально пермиссивной лицензией, позволяющей продавать-перепродавать и всю хуйню.
Аноним 10/04/21 Суб 07:22:14 #89 №738114 
>>738109
очевидный musopen.
Аноним 10/04/21 Суб 08:02:40 #90 №738115 
>>738109
Напиши сам.
Аноним 10/04/21 Суб 10:51:15 #91 №738122 
>>738109
Или [ВЫРЕЗАНО] или [ЦЕНЗУРИРОВАНО]?
https://opengameart.org/art-search-advanced?keys=&field_art_type_tid[]=12&sort_by=count&sort_order=DESC
Аноним 10/04/21 Суб 20:26:16 #92 №738190 
Вот все ресурсы вшиваются в exe, а наоборот как сделать, чтобы они были отдельно?
Аноним 10/04/21 Суб 21:26:44 #93 №738201 
>>738190
Это общий вопрос? Потому что чтобы в экспорте годот-игры "вшить" ресурсы (методом ражпега, то есть приписыванием в конец) - это ещё поебаться надо. И движок опенсорсный, а это значит, там в экспорте не только шиндовое ехе.

Чтобы ресурсы были отдельно - описано в оп-посте:
>>734420 (OP)
> Для приверженцев опенсорца существует возможность распространять проекты в незапакованном формате. Просто скачай темплейт с оф.сайта и положи экзешник/эльфешник в папку с проектом, этого достаточно. Имя файлу можно задать любое. Дополнительно можешь вшить свою иконку в экзешник. После этого, запустившийся файл темплейта обнаружит рядом с собой файл project.godot и начнет грузить проект из него и из файлов, лежащих в распакованном виде в той же директории. Для запущенного таким образом проекта папка res:// становится доступна для записи (если это не ограничено правами доступа в системе).
Аноним 11/04/21 Вск 01:04:02 #94 №738225 
058d7202bce10f7a70a05a2cfd12c24d365e7703r1-1600-900v2uhq.jpg
>>738201
Понятненько
Аноним 11/04/21 Вск 11:20:01 #95 №738246 
>>738190
В godot ресурсы не "вшиваются в exe," а упаковываются в .pck и кладутся рядом с экзешником при экспорте, поэтому делать ничего не нужно.

Емнип ты даже можешь сделать так, чтобы ресурсы не паковались, но это уже нужно доки читать.
Аноним 15/04/21 Чтв 08:09:16 #96 №738769 
изображение.png
ЭЫХ поскорее бы компуть шейдеры хотя бы на уровне C++ реализовали.
А то там RenderingDevice голый и полумёртвый лежит не работает.
Аноним OP 15/04/21 Чтв 15:32:52 #97 №738823 
>>738225
Зделойти Наначи в стиле Годот. Я вам за это пол треда отдам.
Аноним 15/04/21 Чтв 17:07:51 #98 №738844 
Начал в годот вкатываться с этого видосика
Чел оче круто за все поясняет
https://www.youtube.com/watch?v=yRHN_WEulLc
Есть еще подобное с упором на архитектуру?
Аноним 15/04/21 Чтв 19:27:16 #99 №738862 
>>738844
> Есть еще подобное с упором на архитектуру?
Может даже и нет. Потому что известные на слуху каналы, типа KidsCanCode, GDQuest, GameEndeavour у них без упора на архитектуру, как я заметил.
Аноним 15/04/21 Чтв 19:30:32 #100 №738863 
>>738862
Это сарказм? Или все таки троллинг тупостью?
Аноним 15/04/21 Чтв 21:51:34 #101 №738881 
>>738863
У них более комплексный подход, КМК.
Аноним 17/04/21 Суб 18:35:59 #102 №739149 
T0d7Cv.gif
Как законнектить сигнал к узлу, которого пока нет?
У меня две сцены: типа лобби и арена.
В лобби ты выбираешь бойца, на арене он дерется другими бойцами. Имя победителя сохраняется в синглтоне, в процессе скрипта арены боец с именем победителя коннектится к функции с change_scene.
На второй или третий запуск сцены арены появляется ошибка
>Attempt to call function 'disconnect' in base 'null instance' on a null instance.
Аноним 17/04/21 Суб 18:38:49 #103 №739150 
>>739149
в _ready() сделать connect я не могу, потому что узла еще нет.

func _process(_delta):
if Global.winners_name != "":
ySort.get_node(Global.winners_name).connect("winner", self, "_on_winner_defined")

func _on_winner_defined(_name):
Global.winners_name = ""
ySort.get_node(Global.winners_name).disconnect("winner", self, "_on_winner_defined")
get_tree().change_scene(first_scene)
Аноним 17/04/21 Суб 18:39:36 #104 №739151 
>>739150
E 0:00:03.166 emit_signal: Error calling method from signal 'no_bodies': 'Node2D(Arena.gd)::_on_no_bodies': Method not found..
<Исходный код C++>core/object.cpp:1260 @ emit_signal()
<Трассировка стека>BodyDetector.gd:12 @ _process()

Аноним 17/04/21 Суб 18:41:09 #105 №739152 
>>739151
E 0:00:08.596 get_node: Node not found: .
<Ошибка C++> Condition "!node" is true. Returned: __null
<Исходный код C++>scene/main/node.cpp:1381 @ get_node()
<Трассировка стека>Arena.gd:42 @ _on_winner_defined()
Hero.gd:54 @ _physics_process()
Аноним 17/04/21 Суб 18:43:57 #106 №739154 
И как в Годо продолжить до точки останова? Он ее почему-то игнорирует.
Аноним 17/04/21 Суб 18:51:25 #107 №739155 
>>739150
У тебя ошибка в disconnect.
Потому что ты сначала обнуляешь имя.
Потом по пустому имени ищешь ноду, а это всегда вернет null
Потом у null вызыаешь disconnect.
Переставь первые две сточки в on winner defined
Аноним 17/04/21 Суб 19:34:46 #108 №739164 
>>739155
Йоооооу.
Аноним 17/04/21 Суб 19:46:48 #109 №739166 
>>739149
> Как законнектить сигнал к узлу, которого пока нет?
> У меня две сцены: типа лобби и арена.
Коннекти сигналы в динамическом узле.
Допустим узел арена динамически создаётся. Вот в нём и коннектись. При создании арены все сигналы законнектятся, при уничтожении расконнектятся.
Аноним 17/04/21 Суб 19:49:02 #110 №739167 
>>739150
И не нужны будут вот эти пляски с бубном.
Аноним 17/04/21 Суб 20:02:55 #111 №739168 
>>739150
А ещё можно вот так.
> var registrator = ySort # Vasche!
> var sender = registrator.get_node(Global.winners_name)
> var receiver = registrator.get_node(Global.utils)
> if sender and receiver: receiver.connect("winner", receiver, "_on_winner_defined", [sender])
Ну що? Порвало шаблон?

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

Аноним 17/04/21 Суб 20:16:07 #112 №739169 
>>739168
>Ну що? Порвало шаблон?
Надо обдумоть

Всем вам благодарности
Аноним 17/04/21 Суб 20:47:03 #113 №739171 
>>739168
А как это называется?
Аноним 17/04/21 Суб 22:30:28 #114 №739190 
>>739171
Обсервер.
Ивент дизайн.
Аноним 18/04/21 Вск 00:42:20 #115 №739201 
>>739149
Почему бы не сделать сцену-родителя, которая будет держать лобби и арену, управлять их переходами и хранить общие для них данные (то же имя победителя)?
Аноним 18/04/21 Вск 01:26:26 #116 №739208 
>>739201
Да ну, эт придется диз-док писать, проектировать приложение, блок-схемы там всякие рисовать, что откуда выходит и куда заходит. Нет времени! Надо игоры делать!
Аноним 21/04/21 Срд 22:54:58 #117 №739560 
2021-04-21 22-51-16.mp4
Анончики, поясните за прозрачность в годоте. Хочу сделать стекла, они они очень сильно дропают кадры. Еще видны артефакты в виде ребер. Можно ли это как то оптимизировать\исправить?
В материале в флагах выставил tranparent и установил альфу в альбедо.
Аноним 22/04/21 Чтв 00:05:06 #118 №739564 
>>739560
Бро, моё мнение таково: надо делать игру, а не кинцо. У тебя заморочки уровня "почему кинцо не фотореалистичное?". Без обид, бро, но у тебя там геймплей будет вообще? Или игроку будет предложено на полупрозрачные стёкла смотреть ходить?

Ждём, когда Хуан рейтрейсинг завезёт.
Аноним 22/04/21 Чтв 00:19:30 #119 №739565 
>>739564
Блять, я про прозрачность спросил и как сделать так, чтобы она не выдавала 20 кадров на 1060, а не про реализацию интересного геймплея в годоте.
Как же вы заебали со своей необходимостью делать только аркадную 2д парашу на этом движке. Дайте поэксперементировать с графикой и поклепать демо-сцены.
Без обид, бро, сорвался.
Аноним 22/04/21 Чтв 00:52:17 #120 №739567 
Screenshot20210422-005008.png
>>739560
У Годо могут быть беды с прозрачностью. Или это бага. Если норм владеешь английским, попробуй зарепортить на гитхабе, приложив зипку проекта.

Пикрил отсюда: https://docs.godotengine.org/en/stable/tutorials/optimization/optimizing_3d_performance.html

Еще вариант - попробуй использовать alpha scissors.
Аноним 22/04/21 Чтв 00:57:17 #121 №739568 
>>739560
Вдогонку: я предполагаю, что стекла у тебя сделаны отдельными объектами. Если же это часть меша - не помешает проверть в первую очередь, будет ли фреймрейт дропаться так же сильно, если сделаешь стекла как тупо плоскости + отдельный материал(ы) с собственными текстурами.
Аноним 23/04/21 Птн 07:05:00 #122 №739662 
>>734420 (OP)
Сап, годаны. Хочу попробовать годот. Вчера скачал билд под винду, скачал Third-Person Shooter Demo, запустил. Оно начало кушать 90% видюхи (2060), это из-за отсутствия всинка? И начало лагать при запуске прожектайлов. Это проблемы с графоном или питону настолько тяжело аллоцировать объекты? Или это просто кривая демка? Подскажите, а то как-то мотивации поубавилось к изучению.
Аноним 23/04/21 Птн 08:07:11 #123 №739666 
>>739662
Делаем ставки, через сколько скриншот этого поста появится в движкосрач-треде.
Аноним 23/04/21 Птн 08:15:16 #124 №739668 
>>739666
Я прошу прощения, не срача ради. Просто уже кучу всего перепробовал, немного подустал от монструозности старших братьев, а писать всё с нуля на каком-нибудь Haxe, конечно, интересно, но очень долго.
Аноним 23/04/21 Птн 08:16:56 #125 №739669 
>>739668
Я тебя не виню, тут просто один до ужаса предсказуемый шизик на этом треде паразитирует, вот я и вангую.
Аноним 23/04/21 Птн 16:33:08 #126 №739727 DELETED
>>734420 (OP)
Годошнички, подскажите трудно ли на вашем движке сделать механику на подобии Super Tennis Blast? Взял её в пример из за мультяшной графики, а так мне нужно знать именно про игру в большой теннис
Особенно если ты ноль в программировании, но уперт как баран.
Аноним 23/04/21 Птн 20:19:35 #127 №739750 DELETED
>>739727
Будет 10 фпс.
Аноним 23/04/21 Птн 21:58:47 #128 №739767 DELETED
>>739750
Только если стекла не добавит. :)
Аноним 23/04/21 Птн 23:40:23 #129 №739778 DELETED
>>739750
>>739767
Бля, плохие новости. Придется брать unity за место godot?
Аноним 24/04/21 Суб 01:20:29 #130 №739781 
>>739778
Зависит от прямоты рук. Убить фреймрейт ты на любом движке можешь, расценивай >>739750 как иронию.

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

А вообще, не верь на слово и посмотри сам где лично тебе работать приятнее: попробуй создать схожие проекты-прототипы на всех трех движках и сделай выводы самостоятельно. Если потом вернешься и рассксжешь что как - плюс тебе в карму.
Аноним 24/04/21 Суб 01:39:06 #131 №739782 DELETED
>>739781
Что такое "полноценная" игра? Сложная рпг, стратегия?
Без кода легко пишется полноценная игра для большого количества жанров.
Аноним 24/04/21 Суб 07:52:02 #132 №739786 DELETED
>>739782
>Что такое "полноценная" игра?
В первую очередь, это игра, где ты не ограничиваешь себя в идеях. Как придумал, так и сделал. А не "то я не умею, это не знаю как, поэтому давайте сделаем визуальную новеллу".
Аноним 24/04/21 Суб 08:39:20 #133 №739788 DELETED
>>739786
Тебе не повезло со вселенной. Так не бывает.
Аноним 24/04/21 Суб 13:03:32 #134 №739810 DELETED
>>739662
Для Годота это абсолютно нормально.
Аноним 24/04/21 Суб 13:08:46 #135 №739812 
01.gif
image.png
>>739781
Спасибо за комментарий! Вчера ночью решил идти от самого легкого, и посмотреть кто создавал уже похожие проекты на этом движке. Может плохо искал, но найти аналог того что я ищу, так и не смог. Кроме первого пика в 2d
По задумке мне нужно 3d поле, на котором будут анимированные 2d персонажи.

Странно что мои 2 поста на которых ты ответил удалили, хотя я не пытался развести срач, а просто задать интересующий меня вопрос.
Аноним 24/04/21 Суб 14:50:41 #136 №739824 
>>739812
>По задумке мне нужно 3d поле, на котором будут анимированные 2d персонажи.
Почему не отредерить 3д поле в 2д картинку и просто подставить раз персонажи 2д уже?
Аноним 24/04/21 Суб 15:26:11 #137 №739830 
f274339675c2dc901b9a388e7be60b7c2c0087e5hq.gif
ObeseConfusedCat-sizerestricted.gif
33186787.gif
>>739824
Можно и так. Моё решение руководствовалось работой спрайтов из дума, и мыслями как можно сделать в игре тени мячика, персонажей, и тд.
Аноним 24/04/21 Суб 15:27:21 #138 №739831 
>>739830
>руководствовалось работой спрайтов из дума
*3d фон, 2d персонажи
Аноним 24/04/21 Суб 16:59:11 #139 №739840 
>>739830
Гугли, как делать биллборд в годоте, хуле.
Аноним 24/04/21 Суб 17:20:26 #140 №739843 
>>739840
Но имеет ли это смысл, если в игре статичная камера? Мне кажется я тут обосрался.
Аноним 24/04/21 Суб 20:45:01 #141 №739868 
>>739727
Аркадный теннис без программирования я б сделал так - нарисовал пару 2d path кривых, одна для вертикального профиля полета и 1 для закрутки мяча. И затюнить для разных видов ударов. Сила удара будет влиять на масштаб кривых. Минимум кодинга понадобится для проверки столкновений и переноса точки откуда начинается кривая.
Для мультяшных игроков проще взять 3д модельки и кинуть им toon shader
Аноним 24/04/21 Суб 22:06:53 #142 №739885 
>>739868
>нарисовал пару 2d path кривых, одна для вертикального профиля полета и 1 для закрутки мяча. И затюнить для разных видов ударов. Сила удара будет влиять на масштаб кривых.
Ничего не понял. Но идея интересная.
>проще взять 3д модельки
Но не проще сделать. С 3d я не особо, а 2d спрайты осилю.
Аноним 24/04/21 Суб 22:25:51 #143 №739886 
1619292323424.webm
>>739885
Вот так сделал
Аноним 24/04/21 Суб 22:42:43 #144 №739893 
>>739886
Ооо, спасибо за наглядность. Завтра попытаюсь повторить.
Аноним 24/04/21 Суб 23:13:31 #145 №739896 
image.png
>>734420 (OP)
Почему не отображаются коллижн шейпы у тайлмапы? Работают при этом корректно. У всех остальных объектов отображаются.
Аноним 24/04/21 Суб 23:38:18 #146 №739898 
Блять, у меня возникла ебанутая проблема. Почему-то при столкновении collision shape героя с collision shape тайлмапы, у меня сдвигаются на пиксель-два спрайты других объектов. При чем в зависимости от какой стороны столкновение (справа, сдева, внизу, сверху - это топдаун) двигаются разные спрайты. Раньше такого не было. Я вообще не врубаюсь что происходит
Аноним 24/04/21 Суб 23:41:05 #147 №739900 
Если мне нужен поцфайндинг по клеточкам, там есть какие-то встроенные функции для этого, или проще астар с нуля написать? Я знаю, что есть Navigation2D, но это для произвольных прогулок по навмешу, как я понял.
Аноним 24/04/21 Суб 23:42:27 #148 №739901 
>>739898
Хотя не, двигаются не только спрайты, а вообще все объекты. И не зависимо с тем, с чем я сталкиваюсь. Пиздец
Аноним 25/04/21 Вск 00:42:45 #149 №739910 
>>739898
Может быть ты забыл сделать форму коллайдера уникальной и отредактировав скажем игроку отредактировал всем у кого стоит она же
Аноним 25/04/21 Вск 00:49:35 #150 №739911 
>>739910
Не, там двигаются даже те объекты, к оторых нет формы. Пробовал играться с формами самого игрока. Выяснил, что сдвиг более виден, когда форма более округлая. Пытался загуглить, но нашел лишь отдаленно похожие проблемы
Аноним 25/04/21 Вск 00:54:33 #151 №739912 
16105993828733.jpg
>>739910
>>739898
>>739911
Еще заметил, что если сталкивается округлая форма с округлой, то норм. В принципе, я мог бы всем сделать округлые формы, но я не могу сделать круглые формы тайлмапе
Аноним 25/04/21 Вск 01:19:27 #152 №739915 
>>739911
Ничего не понятно из твоего описания. Камера у тебя двигается что ли? Запиши видео или выложи проект.
Аноним 25/04/21 Вск 12:43:49 #153 №739941 
Вот допустим у меня есть BitmapFont который я хочу применить ко всем наследникам Control на сцене, чтобы для каждого не создавать скрипт с add_font_override. Как этого добиться?
Аноним 25/04/21 Вск 12:57:46 #154 №739942 
1619344648331.png
>>739941
Шрифт или тема, назначенная любому контролу, распространяется и на все дерево контролов под ним. На пике шрифт ноды control будет распространяться и на label
Аноним 25/04/21 Вск 13:16:05 #155 №739944 
234231542342343.mp4
>>739915
Обратите внимание, как дергаются вещи. Уточню, я не просто зажимаю кнопку движения, а часто ее жму, чтобы было более видно подергивание. Если просто зажать, то это произойдет два раза - при столкновении и когда я отпущу кнопку движения
Аноним 25/04/21 Вск 13:18:13 #156 №739945 
>>739942
Не уверен что это работает когда заменяешь шрифт в рантайме, с помощью функции add_font_override(). У меня по крайней мере не получилось, если что в _ready() засовывал.
Аноним 25/04/21 Вск 13:28:16 #157 №739948 
>>739945
А, все, разобрался. Нахуй рантайм, BitmapFont-объект можно в .tres сохранить с помощью ResourceSaver и потом просто как нормальный шрифт вставить в редакторе.
Аноним 25/04/21 Вск 14:18:35 #158 №739953 
1619349490668.webm
>>739944
Я не 100% уверен, но возможно это из за того, что у тебя объекты стоят не в целых пиксельных координатах.
Вот например на этом видео стенки слева стоят по snap, т.е. 100, 200, 300, а справа стоят как попало, 599.056, 398.112, и при движении камеры левые двигаются в ногу, а правые не в ногу.
Если это оно, то надо или расставить объекты с включенным snap в редакторе, или погуглить как делается сабпиксельная камера, чет там через вьюпорты и скейлинг (2д мало занимаюсь так что не помню, но где то читал)
Аноним 25/04/21 Вск 14:46:47 #159 №739960 
>>739953
Бля, действительно помогло! Спасибо большое, анон за это специфичное знание, чаю
Аноним 25/04/21 Вск 15:56:40 #160 №739967 
^
Аноним 25/04/21 Вск 17:05:52 #161 №739977 
>>739960
>>739953
Бля не, помогло, но не до конца. Если игрок сталкивается сразу с двумя рядом стоящими формами, то объекты все равно смещаются.
Надо будет пробовать делать сабпиксельную камеру
Аноним 25/04/21 Вск 18:03:41 #162 №739981 
>>739977
А каким кодом ты персонажа двигаешь?
Аноним 25/04/21 Вск 19:07:11 #163 №739988 
image.png
image.png
>>739981
Супер простым. Это пока просто болванка, чтобы тестить.
Алсо, у меня почему-то не все объекты встают в пиксельную сетку... Начал гуглить, нашел похожие случаи, но пока не пофиксил. Проблема судя по всему распространенная ну и говно как
же у меня горит
Аноним 25/04/21 Вск 20:29:46 #164 №740001 
>>739988
Так, позицию удалось настроить с помощью smart snap, но проблема с "jittering"-ом не решена
Аноним 25/04/21 Вск 21:21:55 #165 №740004 
Лол
Аноним 26/04/21 Пнд 00:56:01 #166 №740014 
untitled.png
image.png
Замоделил поле по туториалу, и возник ещё вопрос. Мне нужно будет кроме игры в теннис создать vn вставки, для чего я установил аддон Rakugo VN. Проблем особых не возникнет?
Аноним 26/04/21 Пнд 01:41:41 #167 №740015 
>>740014
Когда его щупал последний раз, он сильно глючил и сыпал ошибками. Могу завтра глянуть что там как
Аноним 26/04/21 Пнд 08:54:47 #168 №740023 
>>740015
Окей
Аноним 26/04/21 Пнд 13:52:00 #169 №740052 
>>740014
> Мне нужно будет кроме игры в теннис создать vn вставки, для чего я установил аддон Rakugo VN
Там ещё в прошлом треде презентовали аддон Dialogic который весьма полноценно реализует диалоги в ВН-стиле (иконка персонажа с вариантами эмоций, текстовое поле с кнопкой скипа, отдельные кнопки вариантов при вопросе, эффекты, стили, шрифты, всё фкаропке), без всего остального ВН-функционала (типа кучи ренпаевских кнопок внизу, сохранений, загрузок, отматываний-проматываний). Если твои "VN вставки" - это по факту диалоги, то может быть лучше его задействовать?
Аноним 26/04/21 Пнд 21:47:43 #170 №740152 
image.png
>>740052
>Dialogic
Посмотрел, с первого взгляда выглядит как хорошая альтернатива.
>Если твои "VN вставки" - это по факту диалоги, то может быть лучше его задействовать?
По сути нет. VN-сцены будут лакомкой, а теннис как мини-игра.
Аноним 28/04/21 Срд 14:46:15 #171 №740326 
Есть некроноут с Хрюшей. Версия 3.2.3 - все норм работает, новая 3.3 помирает при компиляции шейдеров на этапе запуска редактора. Кто-то еще пробовал запускать на некро железе/ОС новую версию?
Аноним 28/04/21 Срд 20:50:02 #172 №740351 
Господи, как-же я ненавижу делать UI, вся эта верстка, состояния, позиции. Боже, блять, мой.
Аноним 28/04/21 Срд 21:04:28 #173 №740352 
>>740351
А представь себя на месте пользователя и вспомнишь как это удобно)
Аноним 28/04/21 Срд 22:42:22 #174 №740357 
>>740352
Никогда не имел дело с фронтендом, но если это хоть немного похоже на программирование UI здесь, то теперь мне понятно почему фронт все ненавидят.
Аноним 29/04/21 Чтв 00:28:34 #175 №740363 
>>740351
Контейнеры делают 60% работы. VboxContainer, HBoxContainer, MarginContainer, CenterContainer, GridContainer, ScrollContainer твои друзья

https://youtube.com/watch?v=YL8apqN6IJM
https://youtube.com/watch?v=lwTPlnW1qhA
Аноним 29/04/21 Чтв 10:17:33 #176 №740384 
bump
Аноним OP 29/04/21 Чтв 18:57:39 #177 №740434 
>>740326
У меня крошилась 3.0.9. Решения так и не нашёл. Как 3.1. вышла этот кошмар закончился.
Аноним OP 29/04/21 Чтв 19:00:05 #178 №740435 
>>740357
Программирование UI здесь - это смесь Delphi и веб-вёрстки (от веба тут отступы (margin)
Аноним 29/04/21 Чтв 19:43:05 #179 №740438 
>>740363
Да дело даже не в том как их раставить, а в том что потом логику к ним писать - полный пиздец.
Аноним 29/04/21 Чтв 19:47:29 #180 №740439 
>>740438
> логику к ним писать - полный пиздец
В смысле? В чём конкретно пиздец? У меня проблем не вызывает. Просто вызываешь обработчики событий (сигналов) как везде.
Аноним 29/04/21 Чтв 20:02:28 #181 №740440 
>>740438
Кстати, наверно у меня не возникает проблем опять же из-за опыта кодинга оконных приложений (фронтенда по современному). Сразу могу дать совет, который работал ещё в нулевых с различными IDE: Обработчик сигнала не должен содержать в себе сложного длинного кода. Обработчик сигнала должен вызывать метод из игровой логики.

Простой пример. Есть пункт "сохранить" в меню, а есть клавиша F5 на клавиатуре. У пункта меню (кнопки) обработчик сигнала "нажато", у кнопки F5 привязано действие в меню действий. Которое обрабатывается колбэком _input, в обоих случаях тебе нужно сослаться на один общий метод сохранения игры (Например, save_game в каком-нибудь Global). Не будешь же ты два раза копипастить логику сохранений?
И вот в обработчике кнопки ты пишешь
> func on_save_game_pressed(): Global.save_game()
а в кейсе F5, в инпуте, ты пишешь
> func _input(e):
> if Input.is_action_pressed("quick_save"): Global.save_game("quick.save")
Ну а в самом методе save_game параметр по умолчанию пустая строка, и если вызвать без параметров, он вызывает меню ручного сохранения, если же указать параметр, то сразу без вызова меню сохранит с указанным именем файл.

То есть, как видишь, обработчик сигнала элемента интерфейса записан в одну строку, ты пишешь его один раз и больше туда не лезешь. Если вдруг у тебя возник соблазн добавить вторую строку - значит ты ду ит вронг. Поразмысли над архитектурой проекта ещё раз. Добавь аргумент в вызываемый метод из игровой логики.
Аноним 29/04/21 Чтв 20:50:40 #182 №740446 
>>740438
Обобщай, делай свои контролы.
Например если у тебя однотипные кнопки, например хотбар абилок или инвентарь, нет нужды писать обработчик доя каждой кнопки, можно передавать номер кнопки параметром в сигнал button.connect("pressed", self, "on_pressed", [btn_name])
Многоуровневые меню и навигация по экранам кстати неплохо описываются конечным автоматом (fsm)
Аноним 29/04/21 Чтв 20:51:03 #183 №740447 
>>740440
У меня не то чтобы есть проблемы его сделать. Просто его надо дико заранее планировать перед реализацией и все должно иметь очень-очень четкую структуру иначе баги полезут изо всех щелей, приходится 10 раз все перепроверять.
Ну и тут еще перфекционизм не помогает, все эти обновления интерфейса хочется максимально оптимизировать, потому что они происходят при малейшем движении, но тогда код становится менее читаемым.
За лайфхак с общими методами спасибо, хоть я и так уже это делаю.
Бамп Аноним 01/05/21 Суб 20:34:11 #184 №740633 
В общем, я долгое время хотел создать RPG про роботов, пингвинов, чертей, обувь, шляпы и мяту, и сегодня пожалуй не начну этого делать. В этом треде буду отписываться о результатах. Сразу скажу, что я нихрена не умею, кроме как созывать анончиков собраться вместе и запилить мне игру, поэтому не буду учиться большинству необходимых вещей с нуля. В качестве языка для разработки выбрал ГДСкрипт + Сишарп. Посмотрим, как у меня выйдет собрать вас, анончиков, в команду.
Аноним 02/05/21 Вск 10:45:43 #185 №740667 
>>740633
ТЗ есть? Какой бюджет?
Аноним 02/05/21 Вск 11:06:20 #186 №740671 DELETED
>>740667
Это просто паста.
Аноним 02/05/21 Вск 11:46:54 #187 №740675 
>>740671
Понятно. Старею, с копипастой общаться начал
Аноним 03/05/21 Пнд 17:54:22 #188 №740912 
>>740675
Бывает. Не переживай старик!
Аноним 03/05/21 Пнд 20:11:08 #189 №740949 
В гд скрипте можно юзать свичи?
Аноним 03/05/21 Пнд 20:43:03 #190 №740953 DELETED
>>740949
Там сразу паттерн матчинг
https://docs.godotengine.org/en/stable/getting_started/scripting/gdscript/gdscript_basics.html#match
match x:
 1:
  print('it's 1')
 "foo":
  print('foo')
  continue #провалиться в следующий кейс
 3, 4:
  print('3 or 4')
 _:
  print('something other')
Аноним 03/05/21 Пнд 21:48:05 #191 №740959 
>>740953
охренеть
Аноним 05/05/21 Срд 07:41:49 #192 №741077 
Что лучше - GDScript или C#? Из всех языков лучше всего знаю плюсы, на C# немного кодил, GDScript пробовал, когда первый раз годот палочкой тыкал.
Аноним 05/05/21 Срд 16:49:23 #193 №741135 
Что будет быстрее вектор или раст?
Официальная точка зрения Аноним OP 06/05/21 Чтв 01:04:15 #194 №741226 
>>741077
Если знаешь си - лучше си.
Это правило работает во всех сферах айти.
Аноним 06/05/21 Чтв 02:23:41 #195 №741230 
>>741077
gdscript поначалу (после решетки) непривычен, но довольно удобен, да и заточен под движок; плюс все примеры и большинство вопросов-ответов гуглится на нем. Решетку прикрутили не так давно, поэтому думать и адаптироваться придется больше. Я бы посоветовал для всякой мелочевки (нажатия кнопок, обработка ввода, триггеры на сцене) использовать gdscript, а если потребуется класс с большой и сложной логикой - взять решетку.

>>741226
С# - это не си, ало.
Аноним 06/05/21 Чтв 04:18:48 #196 №741236 DELETED
>>741077
Конечно c# лучше. Мощнее, выразительнее, лучше поддержка ide.
Но он и посложнее. Что то быстро на геймджемы по прежнему на гдскрипте хуярю
Аноним 06/05/21 Чтв 05:52:22 #197 №741238 
Поддерживаю!
Аноним 06/05/21 Чтв 09:37:12 #198 №741272 
>>741230
>>741236
На двух языках я в принципе не хочу кодить. Нужно что-то одно выбрать.
Аноним 06/05/21 Чтв 10:06:17 #199 №741289 
2021-05-06 13-58-11.webm
Эх, блин, нашел танчики, которые делал еще на версии 2.1.4. Коллизия снарядов как-то через жопу работала, почему-то при попадании в угол кирпича они его не ломали, так и не нашел тогда, почему.
Аноним 06/05/21 Чтв 10:35:04 #200 №741291 
>>741289
> не нашел тогда, почему
Коллиженшейпы какие были?
> делал еще на версии 2.1.4.
На трёшке видимо пришлось бы много переделывать.
Аноним 06/05/21 Чтв 10:37:55 #201 №741292 
Снимок.PNG
>>741291
Два квадрата, почему-то.
Аноним 06/05/21 Чтв 10:40:16 #202 №741293 
>>741292
Видимо в тот момент у тебя задумка была насчёт второго квадрата.
Аноним 07/05/21 Птн 02:46:52 #203 №741396 
Ну чё, есть кто колупал SteamAPI в годоте?
У меня чёт не прикручивается лидерборд, гугл выдаёт 6 ссылок по теме, да и те копии 2,5 тредов на гитхабе.
Аноним 07/05/21 Птн 14:19:25 #204 №741426 
сначала в блендере делаются моделки,те вид.
а годот управляет модельками,так?
Аноним 07/05/21 Птн 18:32:11 #205 №741438 
>>741426
Так. Ты при импорте модели получаешь ту же структуру, как в блендере. То есть, если у тебя модель домика деревянного с отдельно замоделированными и заанимированными курьими ножками, то у тебя и в годоте будет импортирована сцена с отдельными мешами домика, ножек, крыши, окон. И анимации блендера сконвертируются в анимационный плеер годота.
>>741396
Сорян, не подскажу по данному вопросу.
Аноним 07/05/21 Птн 19:41:04 #206 №741442 
>>735946
Если поддерживает нужный opengl то да, у меня вот не завелся на древнем ноуте, хотя древний unity заводится
Аноним 07/05/21 Птн 19:42:02 #207 №741443 
>>735946
>>741442
И тем более летает GameMaker: Studio 1, но увы он уже не поддерживается да и велосипедить на нем заебало, слишком мало там всего из коробки.
Аноним 07/05/21 Птн 19:48:45 #208 №741446 
>>740351
Ад был когда я решил писать свой UI с нуля, как сделал и все заработало, выгорел нахуй.
Аноним 07/05/21 Птн 21:34:36 #209 №741478 DELETED
>>741426
Можно и так сказать, конечно.
Моделька, если обобщить, это набор вершин (mesh), возможно анимация к ним, и текстуры/материалы.
В годоте у тебя есть сцена, где ты размещаешь разные объекты.
Так вот, это могут быть:
1) модельки из блендера (и не только)
2) просто какие-то формы, типа кубов, цилиндров.
3) CSG, геометрия основанная на сложении-вычитании форм - пикрил видео, моделька ружья в Holer сделана буквально за 3 минуты прямо в движке. Есть плагин, который позволяет сделать экспорт в obj, если вдруг надо.
4) Ну и наконец, mesh ты можешь процедурно генерить на лету. Буквально добавляя вершины или двигая их. Координаты высчитывая по каким-нибудь формулам.
5) Еще один способ - шейдеры. В таком случае визуал тоже создается по некой математике, задавая вершины, и потом раскрашивая поверхности между ними. Например, можно запилить что то подобное пик 2 - там нет моделек, все рассчитано по формулам.
Также в игре понадобятся объекты столкновений, в общем коллайдеры. Их можно создавать на основе моделек, или просто окружать модельку невидимым кубом или цилиндром для простоты.
Аноним 08/05/21 Суб 00:51:42 #210 №741499 
>>741396
Если что, просто забыл дописать в _process строчку
Steam.run_callbacks()
Тогда Steam.uploadLeaderboardScore зафурычил
Аноним 09/05/21 Вск 00:39:54 #211 №741736 
Есть где-нибудь актуальный гайд - как сделать гиганский ландшафт в несколько км? Ну то есть опенворлд
Аноним 09/05/21 Вск 01:23:37 #212 №741746 DELETED
>>741736
Берешь несколько маленьких, каждый в своей сцене, грузишь их в фоне как чанки по клеточной сетке. Для больших расстояний можно сделать лоуполи модель.
Дальше надо будет оптимизировать деревья, траву, скалы и прочее. В ассет сторе есть некоторые инструменты для такого. LOD, Octo imposters, всякие шейдеры для травы.
Может через недельку буду посвободнее и попробую собрать что-то наглядное.
Аноним 09/05/21 Вск 17:12:01 #213 №741937 
>>741746
А швы между мелкими как зашивать? А редактировать все это как?
Аноним 09/05/21 Вск 17:22:07 #214 №741940 DELETED
>>741937
Делаешь чанки "внахлест", чтобы они перекрывались небольшой полосой, и переносишь редактированные пиксели из правого края левой карты высот в левый край правой. Или редактируешь всю карту в каком нибудь блендере. Или карту высот в фотошопе. А потом экспортируешь и нарезаешь на тайлы.
Аноним 09/05/21 Вск 19:11:25 #215 №741988 
изображение.png
>>741940
>>переносишь редактированные пиксели из правого края левой карты высот в левый край правой
Будут слишком резкие перепады высот. К примеру если на левом чанке крайняя вершина на 100 высоте, а на правом так получилось на глазок что крайняя вершина на 40 высоте - то их никак нормально не состыковать... Ну можно сгладить - искажая при этом половину чанка из-за чего все тоже попортится. Пикча.
Тут даже дело не в том как состыковать - я надеялся что есть что-то нормальное чтобы вообще таких проблем не было (как в других движках) - оказалось что нет

И в блендере нельзя нормально оценить как на этом ландшафте будет стоять декор. А ведь ландшафт подстраивается под декор - тут ямка, тут площадка под дом, там насыпь, там дорога, там русло реки и т.д.

Или всю локацию вообще в блендере собирать?
Официальный ответ Службы Поддержки Аноним OP 09/05/21 Вск 22:02:02 #216 №742018 
>>741736
> как сделать гиганский ландшафт в несколько км?
Путём фултаймовой работы команды 20-50 профессионалов. Самый короткий гайд, но это правда. Пройди через все стадии принятия неизбежного и прими это: опенворлд в соло (да на чистом, быстро перегорающем энтузиазме) не запилишь. Ты давай смотри на вещи реально. В соло ты можешь сделать несколько камерных сцен и телепортировать персонажа игрока между ними по мере продвижения сюжета. Сюжета. Хоспаде, пишу об играх, как о кинце. Геймплей не забудь тоже. Игра должна играться. Ходить по пустому опенворлду - это не игра. А в соло у тебя будет пустой опенворлд. Прими. Это. Ах да, чанки, чанки будут у тебя быстро и технично грузиться. Пустые чанки пустого террейна.
Аноним 09/05/21 Вск 22:21:35 #217 №742032 DELETED
>>742018
Да проще за полгодика написать всяких процедурных генераторов.
Аноним 09/05/21 Вск 22:39:18 #218 №742038 
>>742032
Мои слова три года назад. А с тех пор уже 6 полгодиков утекло.
Аноним 10/05/21 Пнд 00:44:02 #219 №742056 
>>742032
Про процедурные генераторы кто-то сказал (а я запомнил): "хоть карта и бесконечна, строящий ее алгоритм вполне себе конечный, а потому легко распознается человеком через небольшое время". Глянь тот же майнкрафт: если ты видел биом равнин один раз -- ты, считай, видел все его вариации; от того, что генератор выдаст тебе десять-сто-тысячу этих "различных" равнин, интереснее игра не станет.

Очевидно, помимо генератора местности еще понадобятся ассеты -- модельки, текстуры, шаблонные структуры для генератора (см. постройки в майне), готовые неписи, шаблоны скриптов/событий на локациях и прочее, прочее, прочее. А это огромные времязатраты, если делать качественно.
Аноним 10/05/21 Пнд 00:56:54 #220 №742061 
>>742056
Ну. Если посмотреть на всякие фракталы, то иногда простые правила могут давать довольно сложные результаты. Тот же набор мандельброта. Если настроить процедурность для ассетов и отсеять все неинтересное нейросеточками, то можно чет и сделать имхо.
Аноним 10/05/21 Пнд 00:58:31 #221 №742062 DELETED
>>742056
>модельки, текстуры, неписи, событий на локациях
Генерируй...
Аноним 10/05/21 Пнд 05:07:16 #222 №742078 
>>742018
>Путём фултаймовой работы команды 20-50 профессионалов.
Террейн в 1км можно в одиночку сделать и многие делают.

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


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

Аноним 10/05/21 Пнд 05:16:27 #223 №742079 
>>742018
>Путём фултаймовой работы команды 20-50 профессионало
Вон The First Tree делал один разработчик
>>Созданием игры занимался Дэвид Вейл, будучи не имея какого либо опыта программирования и разработки видео-игр

Так и весь вопрос - как сделать такой же ландшафт как там. Ведь его там делала не команда в 50 профи. А всео лишь один человек.
Аноним 10/05/21 Пнд 10:36:04 #224 №742093 
>>742061
>процедурность для ассетов
>>742062
>Генерируй
Чтобы генерировать - нужно написать, проверить и исправить код. Процедурность ассетов - это не модельки из воздуха, а результат работы. Возможно, даже большей работы, чем создание тех же условных моделек в блендере. Да, легко можно написать генератор, который будет выдавать 10^n уникальных однообразных моделек, а толку? Ты потратишь меньше времени на создание пяти (десяти) в редакторе, а результат будет тот же.

Я не говорю, что процедурность - херня, вовсе нет. Однако создание хорошего пула карт на рандоме -- это очень дорогая в плане времени/усилий штука

>>742078
>Террейн в 1км можно в одиночку сделать и многие делают.
Террейн - да. А локацию? Непустой уровень, на котором есть чем заняться десять-пятнадцать часов?

>инструменты для террейна
Что ты имеешь в виду? Какие инструменты тебе нужны?

>Есть много разных жанров. Не будь ограничен
Я походу ограниченный человек. Я предпочитаю игры, которые предлагают игроку какие-то занятия, дают возможность интересно провести время. Да, захватывающий сюжет необязателен. Да, геймплей может быть минимален. Но игру на исследование однообразной рандомной местности без сюжета и геймплея я бы дропнул менее чем за час, потому что удовольствия никакого.
Аноним 10/05/21 Пнд 10:44:16 #225 №742096 
Вдогонку: мне кажется, неправильно поставлен сам вопрос. Оригинальный "как сделать гиганский ландшафт в несколько км?" предполагает, что опу нечем развлечь игрока кроме рандома уровня.

Правильнее было бы или ставить общий вопрос "как мне разнообразить геймплей [вот такого прототипа моей игры] рандомом?", или частный "какие есть способы генерации/отрисовки под нужды [моей игры с такими-то условиями]?", и рассматривать террейн и рандом как средство достижения каких-л. целей или как возможное решение конуретных проблем при разработке.
Аноним 10/05/21 Пнд 10:45:13 #226 №742097 
>>742096
*генерации/отрисовки террейна, разумеется
Аноним 10/05/21 Пнд 13:21:20 #227 №742112 
>>742096
>Оригинальный
Оригинальный вопрос был - как вообще сделать ландшафт в годоте, без лишней кодовозни с максимумом визуальной работы (то есть без вот этих вот сшиваний чанков кодом).

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

Аноним 10/05/21 Пнд 14:29:51 #228 №742123 DELETED
>>742112
Ты вообще не понимаешь что пишешь.
Инструменты визуального редактирования - не в движках. Они в редакторах.
А в годоте редактор расширяется очень просто скриптами.
Аноним 10/05/21 Пнд 16:10:48 #229 №742152 
>>742123
Чел, мне просто нужен был редактор ландшафта. Мне насрать как оно там называется, но этого нет.

Поэтому вывод один - для моей игры годот не подошел, поэтому я уже взял другой движок, где все это есть
Аноним 10/05/21 Пнд 16:42:16 #230 №742162 
>>742152
Интереса ради, не холивара для -- какой движок?
Аноним 10/05/21 Пнд 18:26:17 #231 №742217 
>>742079
> The First Tree
У. А я гадал, какое из копипастных безыдейных говен вбросят на вентилятор. Вбросили это. Ясно.
> как сделать такой же ландшафт как там
В первом попавшемся генераторе ландшафтов из гугла.

Покормил.
Аноним 10/05/21 Пнд 18:45:56 #232 №742220 
image.png
кул.png
Это будет в 3x сложнее, чем я думал. Уже возникли трудности с созданием персонажа, и его управлением. Но нет ухо без добра! Сделать эффект 2d спрайта смотрящего онли в камеру получилось за пару секунд. Если кому нужно будет https://www.youtube.com/watch?v=N0Laa7XLeS4&ab_channel=Garbaj
Аноним 11/05/21 Втр 02:24:42 #233 №742268 
image.png
>>742220
Он научился ходить, и не перелезать за сетку. Держу в курсе.

Подскажите, как переназначить передвижение на WASD?
Аноним 11/05/21 Втр 02:47:19 #234 №742271 DELETED
>>742268
Похвально.

Переназначить можно двумя способами
1. В настройках проекта есть вкладка Input, там ты можешь задавать свои действия и назначать им произвольное количество кнопок, осей джойстика и т.д. Т.е. вместо ui_left ты заведешь какой-нибудь walk_left
2. Посмотреть в ассетах, там есть что-то типа менюшек для назначения кнопок самим игроком, наэкранные джойстики для мобилок и тд
Аноним 11/05/21 Втр 03:13:31 #235 №742274 
>>742162
>Интереса ради, не холивара для -- какой движок?
чтобы не агридь мода - такие инструменты есть минимум в ue/unity/unigine. Странно что в годоте их нет


На самом деле в самом редакторе годота вообще нет никакого редактора ландшафта и даже такого понятия - я использовал модуль Height Terrain от стороннего разработчика, но:
- автор им больше не занимается (последние апдейты в январе) и он сам говорил.
- модуль недоделан, нет например вот этой работы с чанками - то есть например возможности рисовать на стыке двух чанков. В других движках рисовать можно сразу на всех чанках. Тут же предлагается каждый чанк рисовать отдельно, а потом руками пытаться зарисовать все дыры на стыке


>>742217
>В первом попавшемся генераторе ландшафтов из гугла.
Только в годоте нет ничего чтобы этот ландшафт показать. Надо самому велосипедить.
Аноним 11/05/21 Втр 03:13:52 #236 №742275 DELETED
>>742152
А я думаю ты просто ищешь отмазку, чтобы уже полгода игру не делать.
Я вот закинул ОДИН чанк ландшафта, ткнул ему размер карты высот 2048 и карту 16 на 16. И это дало карту со стороной в 65 тысячи метров (=юнитов).
То есть карта 65 на 65 километров. Это гребаные 4200 км2
Типичной лисе со скоростью 65км/ч понадоится ЦЕЛЫЙ ЧАС чтобы пробежать вдоль карты. Четыре часа по периметру. Человеку в 2-3 раза дольше. Для сравнения, спидран всего first tree 20 минут. То есть ты давно бы мог засунуть целиком такую игру в середину всего одного чанка. Правда, может оно и к лучшему - ведь тогда бы пришлось реально работать, расставлять объекты, настраивать свет, тени, тонмаппинг, а ведь все это не делается движком "само".
Аноним 11/05/21 Втр 03:19:28 #237 №742276 
>>742275
>карту 16 на 16
хм, не знал про мапскейл - сейчас еще раз проверю

Аноним 11/05/21 Втр 10:51:12 #238 №742304 
>>742271
Благодарю, теперь управлять персонажем куда приятнее.

Хотел с утра добавить ему рывок, для разнообразия передвижения, нашёл гайд, но пока для меня это очень трудная задача. Ничего не понял что пацан показал в видио, и по этому сегодня постараюсь сделать черновое меню. Если хватит сил, разберусь как добавить в начало vn сцену, сменяясь после на сам геймплей.
Аноним 11/05/21 Втр 12:26:10 #239 №742339 
>>742275
Ох ебать! Я кончил.
Аноним 11/05/21 Втр 16:58:41 #240 №742457 
будет ли в 4 версии революция?
Аноним 11/05/21 Втр 17:28:12 #241 №742461 
>>742457
Через год после выхода.
Аноним 11/05/21 Втр 17:57:17 #242 №742467 
>>742461
долго...
Аноним 11/05/21 Втр 18:06:44 #243 №742470 DELETED
>>742457
Может и будет, но меня и эволюция 3 устраивает.
Аноним 11/05/21 Втр 18:30:27 #244 №742477 
Реально ли прикрутить бекенд(джава напр)?
Аноним 11/05/21 Втр 18:40:12 #245 №742478 DELETED
>>742477
Что значит "прикрутить"?
Если ты делаешь бекенд на джаве, а клиент на годоте, то обмениваться сообщениями они будут по сети. Например через websocket
Или ты хочешь чтобы годот выступал сервером? Но с какой целью? Можно, наверное, подключить какую-нибудь DotNET-либу.
Игровой сервер можно и на самом годоте делать. Ну то есть как в старом каэсике можно было запускать dedicated.
Как запустить Java внутри годота я хз. C++ можно запустить, если разбираешься. Можно запускать отдельные процессы, ну тупо вызывать команды операционной системы, типа java.exe "do that shit"
Аноним 11/05/21 Втр 18:42:00 #246 №742479 
>>742478
spring+websoket для игры на godote
Аноним 11/05/21 Втр 18:43:07 #247 №742480 
>>742479
те есть ли там место прописать код для сокетов и прицепить объекты
Аноним 11/05/21 Втр 18:47:00 #248 №742481 DELETED
>>742480
Как раз недавно обсуждали
>>737400
>>737403
Аноним 11/05/21 Втр 18:51:10 #249 №742482 
>>737403
Нужны сокеты(когда 2 приложения слушают друг друга,а не вебсокет(который завязан на жс))
это для уточнения
Аноним 11/05/21 Втр 20:01:24 #250 №742491 DELETED
>>742482
Вебсокеты не завязаны на жс, не знаю кто тебе такое сказал. Они работают поверх TCP после обмена хендшейком, и доступны, наверное, уже на всех языках. И, насколько я понимаю, имеют концепцию сообщений, которых в голых потоках TCP нет
Но, просто TCP/UDP сокеты в годоте тоже где-то есть, правда я не нашел для них внятного туториала.
https://docs.godotengine.org/en/stable/classes/class_udpserver.html
https://docs.godotengine.org/en/stable/classes/class_tcp_server.html
https://docs.godotengine.org/en/stable/classes/class_streampeertcp.html#class-streampeertcp
И тд
Аноним 11/05/21 Втр 22:46:10 #251 №742529 
>>742268
Небольшой совет по коду. Помимо is_action_pressed есть get_action_strength, возвращающая значение от 0 до 1, где 0 не нажато, 1 нажато. Таким образом, ты можешь всего двумя строчками получить свой инпут:
> dir.x = ( get_action_strength(right) - get_action_strength(left) ) 3
> dir.z = ( get_action_strength(down) - get_action_strength(up) )
3
Обрати внимание, минус где надо появится автоматически.
Аноним 11/05/21 Втр 22:48:11 #252 №742531 
>>742529
> * 3
Абу, заебал, удоли вакабамарк! Ублять! Там значок умножения. Или введи тег кода. Хватит уже мучать анонов!
Аноним 11/05/21 Втр 23:34:14 #253 №742543 
image.png
>>742529
Благодарю за совет, но из меня так себе так что абсолютно весь код для меня как дремучий лес. Двач ещё знаки умножения сожрал, из за чего я даже понять не могу как эти две строчки моими заменить. Но меня такое управление устраивает, хотя бы как-то дает представление что за что отвечает. Почти целый день делал меню, так и не смог осилить эти гребенные контейнеры. На бумаге нарисовать задумку легко, а вот понять логику программы уже трудно. Ну ладно, оставлю это на завтра, а пока часик помучаюсь с рывком для персонажа.
Аноним 12/05/21 Срд 00:53:24 #254 №742549 
2021-05-12 00-50-54.mp4
Аноним 12/05/21 Срд 00:58:17 #255 №742550 
>>742549
Круто!
Аноним 12/05/21 Срд 01:02:19 #256 №742551 
>>742550
Спасибо!
Аноним 12/05/21 Срд 01:11:30 #257 №742552 
>>742549
Весь свет запеченый?
Аноним 12/05/21 Срд 01:12:39 #258 №742553 
>>742549
SSAO не хватать, очень сильно бросается в глаза отсутствие затенения в углах
Аноним 12/05/21 Срд 01:44:29 #259 №742555 DELETED
>>742549
Збс.
Аноним 12/05/21 Срд 02:26:02 #260 №742558 
>>742543
> так и не смог осилить эти гребенные контейнеры
Да чего там осиливать-то?
<- Как-то так как на пикче.
> Двач ещё знаки умножения сожрал, из за чего я даже понять не могу как эти две строчки моими заменить.
Вот так:
> dir.x = ( get_action_strength(right) - get_action_strength(left) ) ж 3
> dir.z = ( get_action_strength(down) - get_action_strength(up) ) ж 3
Аноним 12/05/21 Срд 02:27:07 #261 №742559 
1620775616579.png
>>742558
> <- Как-то так как на пикче.
Блять!
Аноним 12/05/21 Срд 05:12:12 #262 №742562 
>>742559
Вижу порнуху.
Аноним 12/05/21 Срд 05:45:35 #263 №742563 
>>742559
ytn
Аноним 12/05/21 Срд 17:35:20 #264 №742592 
image.png
>>742553
Версия с САСАО
>>742552
Не знаю запекает ли его GIProbe. Игрался с BakeLightmap, но он всегда дает неадекватный результат.
Аноним 12/05/21 Срд 17:37:46 #265 №742593 DELETED
>>742592
>Игрался с BakeLightmap, но он всегда дает неадекватный результат.
В какой версии? В 3.3 лайтмаппер переписали
Аноним 12/05/21 Срд 17:39:10 #266 №742594 
>>742593
А вот в 3.3 как раз не игрался, кстати! Надо поковыряться с ним
Аноним 12/05/21 Срд 17:58:58 #267 №742595 DELETED
Нужно ли делать пул для audio 3d нод? Иными словами, если у меня 100 врагов в ряд, но играют звук только ближайшие к игроку, будут ли снижать производительность остальные? Может кто проверял и знает
Аноним 12/05/21 Срд 18:24:18 #268 №742597 
траблы ао.png
>>742592
Вот в этих отмеченных маркером местах должно быть затемнение.
Аноним 12/05/21 Срд 18:30:25 #269 №742598 
>>742595
> Нужно ли делать пул для audio 3d нод?
Не нужно, звук пуллируется аудиосервером на уровне аудиошин (bus). Просто размещай аудиоплеер чайлдом в ассете и управляй им из инстансов. Например, сам ассет врага пусть решает, воспроизводить ему звук или нет. В тридэ там ЕМНИП даже настройка дальности искаропки есть.
> Может кто проверял и знает
Я проверял. Основные проблемы там, когда ты на фоне играющего ogg запускаешь много сэмплов wav начинается кряхтение в колонках. Я пытался забороть, но хуй забил на игору вообще, поэтому решения не знаю. И кстати, это кряхтение ещё на версии 3.0.6 было, так что может и оптимизировали уже.
Аноним 12/05/21 Срд 18:32:31 #270 №742599 
lol
Аноним 12/05/21 Срд 19:08:34 #271 №742603 
>>742597

ебать дебил
Аноним 12/05/21 Срд 19:12:26 #272 №742604 
>>742603
Эмм... Щас короче ты аргументированно возражаешь, почему это я дебил, иначе я пишу репорт господину модератору.
Аноним 12/05/21 Срд 19:18:49 #273 №742605 
>>742604

Там свет потому-что
Аноним 12/05/21 Срд 19:26:03 #274 №742606 
1620836762444.png
>>742605
Просто гугли матчасть.
И да, извинись.
Аноним 12/05/21 Срд 19:29:58 #275 №742607 DELETED
>>742598
Спасибо. Много сэмплов одновременно потещу.
Аноним 12/05/21 Срд 19:31:06 #276 №742608 DELETED
>>742597
Кому должно? Ирл никакого АО не существует, это просто костыль для старых техник освещения - но у анона используется GI Probe, она уже учитывает переотражения.
https://nothings.org/gamedev/ssao/
Аноним 12/05/21 Срд 19:31:07 #277 №742609 
>>742606

> пачиму прямо под источником света не тимно а?а?
Аноним 12/05/21 Срд 19:37:32 #278 №742611 
1620837450438.png
>>742608
> Ирл никакого АО не существует
Да ты штоо???
>>742609
Ты автор? Покажи с другого ракурса, что это источник света, а не блик. А если не автор, так не пизди. Я там вижу только блик с засветкой (мы же о поверхности над заложенной дверью говорим, да?) а у отраженного света тоже полутень будет. Везде будет.
Аноним 12/05/21 Срд 19:38:53 #279 №742612 DELETED
>>742606
Ну так у тебя на 1 тени не включены.
Аноним 12/05/21 Срд 19:40:34 #280 №742613 
>>742612
Глаза разуй, там есть тени на первой и затенение на второй, в довесок к теням. Вот это затенение в узких местах и углах - и есть АО. Отражает распространение света в реальном мире.
Аноним 12/05/21 Срд 19:51:25 #281 №742615 DELETED
>>742613
Э, ну не тралируй э?
Там есть освещенность поверхности (по фонгу или как там), но тени шары не отбрасывают.
См. пик 1 источник света не дает тени, пик 2 дает - шары затеняют друг друга и пол.
Аноним 12/05/21 Срд 19:53:48 #282 №742616 
у кого есть уже рабочий проэкт?
Аноним 12/05/21 Срд 20:11:33 #283 №742619 DELETED
>>742616
Это что значит?
Аноним 12/05/21 Срд 20:14:11 #284 №742620 
>>742619
что можно поиграть в игру
Аноним 12/05/21 Срд 20:30:30 #285 №742625 DELETED
>>742620

>>740501 (OP)
Аноним 12/05/21 Срд 21:25:17 #286 №742637 
Игроделы, поясните, почему вы выбрали годот для своих игр? Интересует лично ваше субъективное мнение, почему он, а не любой другой. Ну только не говорите мне про бесплатность. Они сейчас все в том или ином виде бесплатные.
Аноним 12/05/21 Срд 21:40:19 #287 №742643 
>>742637
Ты открой анрил, потом юнити, а в конце годот и сам всё поймёшь.
Аноним 12/05/21 Срд 21:43:07 #288 №742644 
>>742637
Я пробовал юнити и он мне не нра, а годот пробовал и он мне нра.
Аноним 12/05/21 Срд 21:55:21 #289 №742647 
>>742644
чем именно?
Аноним 12/05/21 Срд 22:07:13 #290 №742650 
>>742643
Открыл только в обратном порядке ну и из анриала и не захотелось выходить впринцапе, хотя и юнити неплох, а годот мне повесил компьютер намертво когда запустил тест игры хотя комп не зависал уже лет 5.
Аноним 12/05/21 Срд 22:09:01 #291 №742651 
>>742647
Юнити какой-то всратый, а годот ок норм.
Аноним 12/05/21 Срд 22:11:50 #292 №742652 
>>742643
анрил мне вообще не понравился
у юнети чувствуется, что они тупо больше, как компания и продукт стабильный
годот я помню запускал вроде вторую версию и у меня были проблемы с установкой, импортом примеров и т.д. работала только стим версия и то через раз
Аноним 12/05/21 Срд 22:26:50 #293 №742655 
>>742652
> работала только стим версия и то через раз
Сейчас уже 3.3 версия вышла, очень стабильная и лично мне нравится.
Аноним 12/05/21 Срд 22:42:08 #294 №742658 DELETED
>>742637
Выбирал по следующим критериям: 3д, опенсорс, редактор сцен, кроссплатформа на пк и мобилы, актуальный (не такое говно мамонта как огре, ирлихт и прочие). Порадовала возможность кодить на c++, но внезапно оказалось что на гдскрипте очень быстро писать, а потом завезли C#.
Аноним 12/05/21 Срд 22:44:07 #295 №742659 
годот больше для 3д?
Аноним 12/05/21 Срд 23:02:47 #296 №742660 
>>742658
>опенсорс
Зачем конкретно тебе это? Без негатива спрашиваю. Ты правишь сорсы?
Аноним 12/05/21 Срд 23:04:19 #297 №742661 
image.png
>>742558
>>742559
>Да чего там осиливать-то?
Сама логика мне не очень понятна. В школе кое-как меня научили кодить на html. На ремпае было легко брать кусочки кода, и тупо вставлять в свой проект. А где нужно побольше знаний тут же ступор, и не понимания что от меня хотят. За скрин ниже мне уже пиздец стыдно.

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

>>742562
Да.
Аноним 12/05/21 Срд 23:06:40 #298 №742662 
>>742661
>и пойду дальше
следующая остановка - гей-шлюха на бонге, задумайся, сына
Аноним 12/05/21 Срд 23:18:49 #299 №742663 DELETED
>>742661
Input.get_action_strength
Аноним 12/05/21 Срд 23:35:14 #300 №742664 
>>742660
Нет, и что? Может когда-то пригодится, может нет. Факт что возможность есть
Аноним 12/05/21 Срд 23:41:14 #301 №742665 DELETED
>>742660
>Ты правишь сорсы?
Да, а еще подключаю с++ либы.
>Зачем конкретно
А зачем в 2к21 пользоваться не опенсорсными инструментами? Это странно.
Аноним 12/05/21 Срд 23:41:39 #302 №742666 
>>742637
Нативный OpenGL.
Аноним 12/05/21 Срд 23:46:34 #303 №742668 
>>742665
>Это странно.
Нет, странно не пользоваться чем-то только потому что там нет функций, которыми ты не пользуешься и не будешь никогда пользоваться. Вот это действительно странно.
Аноним 12/05/21 Срд 23:47:02 #304 №742669 DELETED
>>742637
С какой целью спрашиваешь? Какую игру делаешь/планируешь делать? Какие именно фичи интересуют?
Аноним 12/05/21 Срд 23:48:44 #305 №742671 
>>742669
гк в основном
Аноним 12/05/21 Срд 23:50:29 #306 №742672 DELETED
>>742671
Тогда вряд ли подойдет - в ГК надо чтобы тысячи кубов бессмысленно разлетались по физике.
Аноним 12/05/21 Срд 23:52:48 #307 №742674 DELETED
>>742668
Ты, наеврное, запутался в отрицаниях - потому что фраза звучит логично. (Не пользоваться чем-то, где нет Х если тебе не нужно Х).
Аноним 13/05/21 Чтв 00:01:24 #308 №742675 
>>742663
Благодарю, теперь работает!
>>742662
Ахах, нет. Я отрисую сцены и соберу онли вн через ремпай.
Аноним 13/05/21 Чтв 00:03:03 #309 №742676 
>>742672
>в ГК надо чтобы тысячи кубов бессмысленно разлетались по физике
годо не тянет, хочешь сказать?
Аноним 13/05/21 Чтв 00:11:57 #310 №742677 DELETED
>>742676
Годот для более интеллектуальных игр, где каждый объект расставлен и используется к месту.
Аноним 13/05/21 Чтв 00:25:34 #311 №742678 
>>742677
чел, в гк если и есть "тысячи объектов", то они супер-простые и их явно не тысячи, а максимум сотни и они все супер-простые и если годотя не тянет сотню простых объектов с физоном, то ШТОШ МДАУШ
Аноним 13/05/21 Чтв 00:40:56 #312 №742679 DELETED
>>742678
100 объектов это 100100 взаимодействий по дефолту.
Хотя это ж опенсорс, надо просто найди где там в буллете ограничитель расстояния физ взаимодействия. Беру свои слова обратно - и для ГК подходит.
Аноним 13/05/21 Чтв 18:45:28 #313 №742974 
Для андроида возможна разработка?
Аноним 13/05/21 Чтв 19:57:42 #314 №743003 DELETED
>>742974
Конечно.
Аноним 14/05/21 Птн 03:28:05 #315 №743104 
>>742637
У юнити очень сложный неинтуитивный интерфейс. Сраная студия вешает мне комп. Запуск отладки очень долгий. Очень много весит.
Аноним 14/05/21 Птн 05:14:49 #316 №743106 
изображение.png
>>743104
>много весит
как и годот)
Аноним 14/05/21 Птн 12:03:41 #317 №743158 
>>743106
А чем годот справа отличается, почему он столько весит?
Аноним 14/05/21 Птн 12:30:56 #318 №743161 
>>743158
Скомпилен на дебаге?
Аноним 14/05/21 Птн 13:44:32 #319 №743175 
>>743161
да, наверное так. точнее сказать сейчас не могу, ибо винда неделю назад переустановилась и MSVC в данный момент отсутствует
Аноним 14/05/21 Птн 20:58:39 #320 №743237 
>>743003
с танцами и бубном?
Аноним 14/05/21 Птн 22:05:57 #321 №743253 
>>734420 (OP)
Пойду сюда что ль побомблю. Ёбаный ты нахуй, какого ж хуя до сих пор нельзя НОРМАЛЬНО сделать интеграцию с гуглоплеем. Ёбаный же стыд PGSGP уже давно мёртв, разработчикам плагина на него похуй и на 3.3 обновы не видать (кроме костыля, который, сука, без пердолинга, один хуй не работает). Надеюсь, блять, в ёбаной четвёртой версии вся хуйня будет работать нормально
Аноним 14/05/21 Птн 22:06:44 #322 №743254 
>>742637
Я кроме петухона нихуя не знаю, потому и выбрал годо вместо изучения шарпов (ведь я тупой)
Аноним 15/05/21 Суб 08:02:43 #323 №743284 
>>743161
Ты хочешь сказать, что юнити компилят в дебаг моде?
Аноним 15/05/21 Суб 08:05:40 #324 №743285 
>>743253
добро пожаловать в опен сорс
Аноним 15/05/21 Суб 12:04:13 #325 №743303 
>>743284
Я предполагаю, что годо на пикрил справа скомпилен на дебаге, а слева - на релизе, откуда и разница в объеме файлов
Аноним 15/05/21 Суб 12:45:33 #326 №743305 
>>743303
слева официальный бинарник, да. а справа конпеляция, только уже хз, как оно было собрано) но скорее всего в дебаге, да
Аноним 15/05/21 Суб 13:12:48 #327 №743307 DELETED
>>743303
Хз, самособранный, в дебаге всего 131мб весит
Аноним 15/05/21 Суб 13:13:48 #328 №743308 DELETED
>>743307
134*
Аноним 15/05/21 Суб 18:28:54 #329 №743351 
>>743285
Да хули там, понятное дело, что опенсорс, я вот только и могу по этой причине беспомощно бугуртеть
Аноним 15/05/21 Суб 18:35:15 #330 №743352 
>>743285
Ну, я тем не менее пропозал запилил. У кого тоже болит - можете пойти залайкать это говно
щитхаб.ком/godotengine/godot-proposals/issues/2724
Аноним 15/05/21 Суб 18:56:46 #331 №743353 
Безымянный.png
Безымянный1.png
Пытаюсь заспавнить случайное количество кнопок-сцен, чтобы они были всегда по середине, но почему-то получается, как на первой картинке. Если в "Удаленный" вручную выставить для HboxContainer margin_right в ноль, тогда все как надо, как на второй картинке. В коде почему-то эти команды не воспринимаются. Для HboxContainer стоит параметр grow_direction - horizontal - Both.

>func _ready():
>>var hbox = $Control/CenterContainer/HBoxContainer
>>var r = 3
>>for _i in range(r):
>>>var f = fighter.instance()
>>>f.set_custom_minimum_size(Vector2(77, 87))
>>>hbox.add_child(f)

>>hbox.set_margin(MARGIN_BOTTOM, 0)
>>hbox.set_margin(MARGIN_LEFT, 0)
>>hbox.set_margin(MARGIN_RIGHT, 0)
>>hbox.set_margin(MARGIN_TOP, 0)
Аноним 15/05/21 Суб 19:16:06 #332 №743355 
>>743353
хотя в print(hbox.margin_right) пишет, что устанавливается
Аноним 15/05/21 Суб 19:18:19 #333 №743356 
>>743355
и если задавать в _процессе, то работает хмммммм
Аноним 15/05/21 Суб 19:24:58 #334 №743357 
>>743356
в реади и через
>hbox.set_deferred("margin_right", 0)
не получается хммммммммммммм
Аноним 16/05/21 Вск 03:31:21 #335 №743408 DELETED
Учитесь делать метроивдании посоны
https://pedrovmvictor.itch.io/metroidvania-demo-godot
Официальный ответ Галактической Администрации Аноним OP 16/05/21 Вск 22:24:31 #336 №743489 
>>742637
Он удобный.
Аноним 16/05/21 Вск 22:29:51 #337 №743490 
>>743357
Нужен принудительный апдейт канвы.
Аноним 16/05/21 Вск 22:54:53 #338 №743493 
>>743490
Это как? Разве я не принудительно?
Аноним 16/05/21 Вск 23:01:55 #339 №743494 DELETED
Обновился и отвалились автолоады. Сильно не заглядывал, но похоже автолоад грузится и добавляется в дерево, но не под именем MightyAutoLoad какое ему дал, а под девственным псевдонимом @@2, поэтому остальные скрипты его через FindNode не находят. так что послал сингтоны в жопу
Аноним 16/05/21 Вск 23:07:51 #340 №743496 
1621195670915.png
>>743493
Нэт.
Аноним 16/05/21 Вск 23:10:42 #341 №743497 
>>743494
> его через FindNode не находят
Безумие.
Если у тебя автолоад синглтон, тебе не нужно никакое финдноде. У тебя твоё имя сразу регистрируется в редакторе глобально. И ты просто пишешь
> MightyAutoLoad.MightyMethod()
Аноним 16/05/21 Вск 23:19:11 #342 №743499 DELETED
>>743497
Во-первых раньше работало (да и в примерах везде через Find или GetNode)
Во-вторых в C# с именем не прокатило. В гдскрипте может и осталось.
Аноним 16/05/21 Вск 23:29:52 #343 №743502 
>>743496
а вот это?
>hbox.set_margin(MARGIN_RIGHT, 0)
Аноним 17/05/21 Пнд 18:22:51 #344 №743605 
Есть ли способ сымитировать нажатие кнопки на паузе? В "Удаленный" ставлю кнопке Pressed, но сигнал не эмитится. В обычном режиме эмитится.
Аноним 18/05/21 Втр 12:22:17 #345 №743698 
>>743605
Снимай с паузы кнопку. На то пауза и нужна, чтоб даже сигналы не излучались.
>>743502
hbox.update()
Аноним 18/05/21 Втр 23:48:13 #346 №743784 
>>743698
>Снимай с паузы кнопку
Не знаю, поменял в pause_mod на process, stop, все равно кнопка не нажимается не знаю.
>hbox.update()
Не, че-то не помогает. Ну буду через процесс что уж.
Аноним 19/05/21 Срд 19:49:09 #347 №743906 
Антуан-платформеропогромист, ты жив?
Аноним 20/05/21 Чтв 18:59:05 #348 №744074 
Как в 3д можно заставить перса поворачиваться в сторону курсора и двигаться в этом направлении?
Аноним 20/05/21 Чтв 19:10:45 #349 №744081 DELETED
>>744074
Вот тут прочитай
https://kidscancode.org/godot_recipes/3d/rotate_interpolate/
Аноним 20/05/21 Чтв 22:01:42 #350 №744115 
888.jpg
>>744081
Спасибо. Я нашёл что искал.
Прошу сразу простить мою наглость, но вы сможете перевести это на С#?
Мне не понятно откуда он взял строка 35/36 project_ray_origin()....
и строка 10/11 gett_world().direct_space_satate/space_state.intersect_ray
Аноним 20/05/21 Чтв 23:15:49 #351 №744122 DELETED
>>744115
На C# обычно все так же, только функции будут называться в стиле CamelCase.
Взяты они, очевидно, из классов Camera.
Был сайт, но он сломался так что могу дать только такую ссылку https://web.archive.org/web/20200814024633/http://godotsharp.net/api/3.2.0/Godot.Camera/
Сам принцип рейкаста описан в документации годота
https://docs.godotengine.org/en/stable/tutorials/physics/ray-casting.html
Вообще советую для C# настроить студию или Vs code, там будет проще, чем вслепую.
Аноним 21/05/21 Птн 03:43:14 #352 №744134 
А есть ли способ из CollisionPolygon2D создать область, например, белого цвета?
Аноним 21/05/21 Птн 04:02:07 #353 №744137 
Не могу найти ни одного туториала по гранд стратегиям
Аноним 21/05/21 Птн 13:04:32 #354 №744175 
Подскажите, какие есть наработки по balancing active ragdoll? Если такого нет, то с чего начать?
Хочу сделать симулятор с реалистичной ходьбой.
Аноним 21/05/21 Птн 13:06:20 #355 №744177 
>>744134
> extends CollisionPolygon2D
> func _draw():
> > draw_circle(bla, bla, bla)
Аноним 21/05/21 Птн 13:30:44 #356 №744179 DELETED
>>744134
func _ready():
 $Polygon2D.polygon = $StaticBody2D/CollisionPolygon2D.polygon
>>744177
Можно и сам полигон рисовать
func _draw():
 draw_polygon($StaticBody2D/CollisionPolygon2D.polygon, PoolColorArray(массив цветов))
Аноним 21/05/21 Птн 13:49:45 #357 №744183 DELETED
>>744175
По-моему актив рэгдолл недопилили, год назад начинали. Кто-то предлагал взять два скелета, с обычной анимацией и физикал, и блендить.
Аноним 21/05/21 Птн 14:08:16 #358 №744184 DELETED
>>744137
Туториалов на игру целиком не видел.
По генерации полигональных карт видел, по кликанью по провинциям тоже.
Например https://github.com/t-karcher/ClickableMap
не мог вспомнить название, потом сообразил что годот в папке пользователя хранит историю по всем когда-либо открытым проектам :3
Аноним 21/05/21 Птн 14:41:03 #359 №744186 
>>744184
Оооооооооааа
палец вверх
Аноним 21/05/21 Птн 20:12:07 #360 №744220 
https://youtu.be/8scpuFtImcw
Аноним 21/05/21 Птн 21:45:48 #361 №744231 DELETED
>>744220
Ля какая, еще и движкопися
Аноним 22/05/21 Суб 15:28:06 #362 №744341 DELETED
Ну что, готовимся? Через 2 дня старт. Есть категории 2д и 3д, можно использовать заготовочки кода и арта.
https://godotengine.org/article/announcing-gogodotjam
Аноним 22/05/21 Суб 19:46:24 #363 №744374 
>>744341
Нее... Я ещё минимум до июля буду занят. Ваще не до джемов.
мимо автор игор, постов, охуительных историй, беспонтовых начинаний
Аноним 22/05/21 Суб 19:53:29 #364 №744375 DELETED
>>734420 (OP) >>734425 >>734427 >>734428 >>734435 >>734436 >>734437 >>734438 >>734439 >>734440 >>734457 >>734459 >>734463 >>734491 >>734527 >>734557 >>734564 >>734570 >>734571 >>734595 >>734664 >>734727 >>734737 >>735092 >>735094 >>735095 >>735096 >>735097 >>735098 >>735351
Спaсибо!
Аноним 23/05/21 Вск 02:31:05 #365 №744419 
image.png
А может кто объяснить, как разделить сигнал/почему так происходит?
Есть сигнал для KinematicBody, срабатывающий по mouse_entered(). Есть 11 мешей (скопированных из одного, в котором как раз дочерний KinematicBody и CollisionShape). По нажатию кнопки я получаю стену срабатываний (предположительно, по количеству мешей), хотя жму один раз всего над мешем с установленным аутлайном, если это пикрил _input(event). При этом func _on_KinematicBody_mouse_entered(): показывается, что срабатывает всего один раз.
Аноним 23/05/21 Вск 02:46:55 #366 №744420 
>>744341
Ага, сейчас подготовимся, а они через сутки выкатят тему "LGBTQ+ representation BLM ACAB".
Аноним 23/05/21 Вск 03:27:21 #367 №744421 DELETED
>>744420
Выкрутимся https://ru.wikipedia.org/wiki/Абхазские_негры
Аноним 23/05/21 Вск 03:32:51 #368 №744422 
>>744421
Или игра, где ты Абрам Ганнибал и пиздишь жену.
Аноним 23/05/21 Вск 03:53:22 #369 №744424 
>>744419
ээээ_прессед по-моему не один раз срабатывает, а пока не отпустишь. is_just_pressed один раз срабатывает.
Аноним 23/05/21 Вск 03:54:53 #370 №744425 
>>744419
а _mouse_entered() срабатывает, когда в область курсор наводишь, без нажатия кнопки
Аноним 23/05/21 Вск 05:59:49 #371 №744435 DELETED
>>744419
Посмотри в сторону https://docs.godotengine.org/en/stable/classes/class_collisionobject.html#class-collisionobject-method-input-event
Аноним 23/05/21 Вск 09:25:05 #372 №744441 
>>744419
> почему так происходит?
Потому что по умолчанию все элементы_канвы прозрачны для событий мыши/тача. То есть, получив событие, они не препятствуют получению его же остальным слоям канвы.
> как разделить сигнал
Есть два стула:
1. Сделать canvas_item "непрозрачным", там есть свойство в инспекторе ищи, accept_event().
2. Обрабатывать события в _unhandled_input и первый кто обработал устанавливает флаг SceneTree.set_input_as_handled(), тобой, в коде, вручную, при соблюдении твоих условий, и если он посылает, то _unhandled_input больше не вызывается для этого события нигде
Аноним 23/05/21 Вск 11:17:22 #373 №744449 
>>744441
>>744435
>>744424
>>744425
Спасибо. Подумаю над этим.
Аноним 23/05/21 Вск 16:47:25 #374 №744492 
image.png
Вопрос из разряда архитектурно-частных.
Дошёл до генерации игрового поля на старте уровня.
https://docs.godotengine.org/en/stable/getting_started/step_by_step/instancing.html
Если я инстанцирую повторяющиеся меши, это же снизит нагрузку и увеличит скорость работы сцены?
Дополнительный вопрос. Скрипты же и сигналы тоже в инстанцирование попадают нормально?
Аноним 23/05/21 Вск 17:25:58 #375 №744497 
>>744492
Дополнительный вопрос. Видел неоднократно, когда на даже небольшую ноду создают отдельную сцену. В чём смысл?
Аноним 23/05/21 Вск 17:27:38 #376 №744498 
>>744492
>Дополнительный вопрос
Дык ты попробуй. Сингалы надо коннектить в скрипте. Скрпиты инстанцируются нормально.
>>744497
Чтоб реюзабельно было.
Аноним 23/05/21 Вск 18:59:23 #377 №744510 
>>744498
Другой вопрос. А генерация. Это что, для тайловой карты 10 на 10 надо цикл в сотню, что ли, загонять? Или у движка есть какие-то инструменты для такого?
Аноним 23/05/21 Вск 19:29:43 #378 №744520 
>>744510
Не понял вопроса. Какие инструменты тебе конкретно нужны?
Аноним 23/05/21 Вск 20:08:45 #379 №744526 
image.png
image.png
>>744520
Ну я имею в виду, что для заполнения гексагонального поля 10 на 10 клеток, мне надо будет сделать цикл х от 1 до 10 с вложенным в него циклом у от 1 до 10. Либо считать, исходя из квадрата числа (карта квадратная-то). Двойные-тройные и т.д. циклы это же плохо и медленно в общем случае? Есть ли инструмент оптимизации этого процесса? Иначе придётся ждать инстанцирование 6400 раз для того же поля 80 на 80 (у меня это занимает уже секунд 5 против моментального запуска карты 20 на 20), что уже не выглядит так просто как 10 на 10.
Аноним 23/05/21 Вск 20:12:37 #380 №744527 
>>744526
Начинай учить многопоточность. В один поток ты такое не затащишь. Вообще, сам подумай, кто в 2к21 будет делать игру без многопоточности?
Аноним 23/05/21 Вск 20:20:47 #381 №744528 
>>744526
Хотел тебе гридмап посоветовать (увидел, что ты гексы в тридэ делаешь), но оказалось, что у гридмапа гексагональной сетки нет, в отличие от двадэшного тайлмапа. Даже не знаю, что теперь и предложить. Получается, что ты правильно велосипедишь велосипед.
Аноним 23/05/21 Вск 20:35:34 #382 №744529 
1621791332245.png
>>744528
>>744526
Вот например вариант. Если у тебя не предполагается карта высот, но хочется красиво наклонять камеру вокруг мапы, то можно сделать отрисованную через вьюпорттекстуру на тридэспрайте двадэшную тайлмапу.

Но скорость её заполнения всё равно смотреть надо, и я уверен, в один поток всё равно будет медленно, поэтому >>744527
Аноним 23/05/21 Вск 20:42:57 #383 №744532 
>>744527
Ну в общем и целом для пошаговой игры я в этом вижу, скорее,
плюс. Не надо усложнять логикой управления многопоточности.
Просто вот такие телодвижения, когда у меня простые модель шестиугольника, сваянные на коленке в блендере, а оно на пекарне конца 20 г.в. грузит по 5 секунд, вызывают подозрения, что когда это будет заполненная карта, то это уже будет ощутимо. Хотя, может, занимаюсь преждевременной оптимизацией. Хз. Пока пилю как есть, хотя бы до уровня mvp. А то так вообще никогда ничего не закончить.
>>744528
>что у гридмапа гексагональной сетки нет, в отличие от двадэшного тайлмапа
Я в гридмап почти неделю проебался, чтобы понят, что он даже с велосипедами не подходит. Точнее можно, но велосипед становится ещё сложнее.
Аноним 23/05/21 Вск 20:46:43 #384 №744533 
>>744529
>можно сделать отрисованную через вьюпорттекстуру на тридэспрайте двадэшную тайлмапу.
Я этот же совет видел на форуме годота раза два.
Но что-то мне показалось сложнее, чем в чистом 3д, когда дошёл до взаимодействия с тайлами. Уж и не помню, что в итоге мне не понравилось. С получением координат, что ли, была беда какая-то.
В итоге, https://www.redblobgames.com/grids/hexagons/ + 3д взял за основу.
Аноним 23/05/21 Вск 20:58:06 #385 №744535 DELETED
>>744492
Не занимайся преждевременной оптимизацией. Делай саму игру. Если ты не упарываешься в симуляцию планеты, то скорее всего у тебя вся карта легко будет рисоваться. Если же вдруг будет не хватать, то повторяющиеся куски можно будет переписать на MultiMeshinstance или шейдеры.
Аноним 23/05/21 Вск 21:01:02 #386 №744536 DELETED
>>744526
У тебя тут просто ошибочка закралась - ты в цикле каждый раз грузишь сцену с диска, когда надо сделать preload всего один раз, и только инстанцировать. Отсюда и тормоза.
Аноним 23/05/21 Вск 21:03:02 #387 №744537 
>>744532
>>744533
Тогда вот тебе ответ на твой вопрос. Если тебе нужно заполнить одним циклом некое двумерное поле, определи для поля фиксированную ширину (количество столбцов, C). И тогда:
X = i mod C (остаток от деления)
Y = i div C (деление нацело)
Лол, посмотрел сейчас твой скрин с кодом, а у тебя так и делается. Только каким-то переусложнённым черезжопным образом. Тебе нужно вдовесок к вышеуказанным вычислениям выбрать сдвиг наполовину для каждой, скажем, нечётной строки. И вуаля, готово. Но это по отрисовке. Для заполнения тебе сдвиги уже не нужны. У тебя есть одномерный массив со всеми тайлами и ты получаешь координаты каждого тайла через эти нехитрые вычисления икса и игрека.

Могу геометрический смысл наглядно нарисовать в пейнте, если не уловил.
Аноним 23/05/21 Вск 21:03:03 #388 №744538 
>>744536
хехе
Аноним 23/05/21 Вск 21:04:09 #389 №744540 
>>744536
Блин, увидел. Спасибо. Это да, большой факап, перекочевавший из первого кода без цикла.
Аноним 23/05/21 Вск 21:04:17 #390 №744541 
>>744536
А слона-то я и не заметил...
>>744537-кун
Аноним 23/05/21 Вск 21:12:16 #391 №744546 
>>744537
> Только каким-то переусложнённым черезжопным образом.
Ровно таким же, если сократить те же i в выражении. Это колдовство осталось из криво созданных изначально моделей и подгонки на глаз, отчего вариант i mod mapSize выдавал не те координаты, что я ожидал.

Короче, пробежаться надо по коду завтра незамыленным глазом в поисках глупостей.
Аноним 23/05/21 Вск 21:21:29 #392 №744547 
1621794088783.jpg
>>744546
Утро вечера мудренее!
Аноним 24/05/21 Пнд 15:12:54 #393 №744674 DELETED
Каеф
https://www.youtube.com/watch?v=w9Cs_hfePM4
Аноним 24/05/21 Пнд 19:07:31 #394 №744691 
>>744177
>>744179
Спасибо пацаны
Аноним 24/05/21 Пнд 19:41:31 #395 №744694 
rUSc7i.gif
Вот и тему объявили. Змейку им запузырить, что ли?
Аноним 24/05/21 Пнд 19:53:14 #396 №744695 
>>744694
писюн))
Аноним 24/05/21 Пнд 19:57:41 #397 №744696 DELETED
>>744694
Ферму в опенворлде
Аноним 24/05/21 Пнд 20:00:46 #398 №744697 
>>744696
У меня была охуенная идея игры - менеджер дачи, где нужно играть за бабку и заставлять всю семью как можно больше вкалывать в огороде за лето и как можно дольше не давать им превратить дачу в место отдыха.
Аноним 24/05/21 Пнд 20:03:44 #399 №744699 
>>744697
Спасибо, спиздил
Аноним 24/05/21 Пнд 20:04:56 #400 №744701 
>>744699
Раз спиздил, так воплощай.
Аноним 24/05/21 Пнд 20:11:23 #401 №744703 
>>744697
а рост где
Аноним 24/05/21 Пнд 20:15:12 #402 №744705 
>>744674
Не хуже Геншина.
Аноним 24/05/21 Пнд 20:18:10 #403 №744707 DELETED
>>744703
>в огороде
Аноним 24/05/21 Пнд 20:18:29 #404 №744708 
>>744703
Рост помидоров и огурцов.
Аноним 24/05/21 Пнд 20:23:24 #405 №744709 
>>744697
а еще возможность вырастить овощи до чересчур больших размеров и количества. А еще красить домик в неприлично-яркие цвета и клеить много слоев обоев.
Аноним 24/05/21 Пнд 20:24:01 #406 №744710 
>>744709
Типа как Крыжовник Чехова вы ж читали все
Аноним 25/05/21 Втр 00:44:08 #407 №744727 
>>744710
Надо перечитать. Совсем забыл уже. Только Вишнёвый сад и Бабы всё ещё поммню.
Аноним 25/05/21 Втр 02:11:50 #408 №744730 
Вот построил я CollisisonPolygon2D, хочу в его середину поместить надпись. Как найти середину? Я нашел как найти центр масс, но точки у меня не однородно расположены, надпись съезжает далеко от центра.
Аноним 25/05/21 Втр 04:20:07 #409 №744731 DELETED
>>744730
Где-то попадалось про расположение надписей на карте, но я не вникал. Могу только предложить почитать это и по ссылкам там еще походить.
https://github.com/Azgaar/Fantasy-Map-Generator
Либо тебе нужен центроид. Не знаю отличается ли он от центра масс.
Ну и банально проверь что ты label центрируешь, а не по левому краю ставишь.
Аноним 25/05/21 Втр 07:37:37 #410 №744735 
>>744731
Йоооооооо
Аноним 26/05/21 Срд 13:42:00 #411 №744898 
>>744697
Кинь полную пасту.
Аноним 27/05/21 Чтв 03:18:44 #412 №745023 
Вот я хочу, перемещать камеру по экрану, но GUI оставался на месте. Поместил интерфейс в узел CanvasLayer, который специально для этого, но теперь я не могу кликать сквозь этот CanvasLayer. А как?
Аноним 27/05/21 Чтв 03:20:03 #413 №745024 
>>745023
> но GUI оставался на месте
но хочу, чтобы GUI оставался на месте
Аноним 27/05/21 Чтв 09:37:08 #414 №745046 DELETED
>>745024
Mouse filter.ignore или как то так называется
Аноним 27/05/21 Чтв 13:05:18 #415 №745075 DELETED
>>745023
В общем я был неправ, у CanvasLayer нет галочки с инпутом.
Могу предложить не пользроваться канвас лейром.
У меня в проектах примерно такой сетап
ВьюпортКонтейнер - Вьюпорт нужного размера - инстанс сцены с уровнем, камерой и игроком
После него все гуи ноды какие нужны.
Вроде все просто, быстро и удобно. Единственное что надо понастраивать ресайз окна, если планируется.
Аноним 27/05/21 Чтв 19:21:25 #416 №745136 
А можно ли как-то при инстанцировании задавать значение своего кастомного аргумента, чтобы потом в скрипте этой инстанцированной ноды можно было использовать это значение? Пробовал с export var и с созданием функции внутри скрипта инстанцирумой ноды или меша. Не получилось. Говорит, что нет такого метода в мешинстанс, например.
Аноним 27/05/21 Чтв 20:01:28 #417 №745145 DELETED
>>745136
Не очень понятно, но должно работать как ты описал.
Видимо ты вызываешь метод у мешинстанса, а не своей ноды.
Аноним 27/05/21 Чтв 21:10:34 #418 №745149 
>>745145
>>745136
А вот объясните, когда надо взывать методы мешинстанса, а когда ноды? и что лучше использовать в общем случае? ноды?
Аноним 27/05/21 Чтв 21:13:29 #419 №745150 
>>745136
> А можно ли как-то при инстанцировании задавать значение своего кастомного аргумента
В гдскрипте на данный момент нет приватных переменных, то есть, создавая инстанс, ты можешь получить доступ к любой его переменной. Итак. У нас есть bullet.tscn, в которой есть переменная speed = 0.
> var bullets = load("bullet.tscn")
> var current_bullet = bullets.instance()
Инстанс создался и у него выполнилась функция _init()
> current_bullet.speed = 1500
Нужная переменная в инстансе поменяла значение.
> world.add_child(current_bullet)
Вот теперь у инстанса выполнились _enter_tree, _ready и начали раз в кадр вызываться _process/.../
Аноним 27/05/21 Чтв 21:21:04 #420 №745151 
>>745150
Ага, так и делал. И как я увидел, я делал для мешинстанса. И так, похоже, делать не надо.
Аноним 27/05/21 Чтв 21:28:13 #421 №745153 
>>745151
> И так, похоже, делать не надо.
Мешинстанс причём тут?
Код показывай, чо ты там нахуевертил? Так надо делать и так делали 30 лет до годота и так будут делать 330 лет после годота. Это классика ООП.
Аноним 27/05/21 Чтв 22:10:40 #422 №745165 DELETED
>>745149
В смысле когда? Когда тебе надо что то сделать с мешинстансом, то вызываешь его методы. Когда не с ним, то не у него. Что ты вообще сделать пытаешься?
Аноним 27/05/21 Чтв 22:18:02 #423 №745171 
>>745165
Ну допустим, есть гипотетическая структура Node - MeshInstance - MeshInstance2.
Причём первый - родительский для второго, а второй показывается при том же клике мышью на первый. Вод здесь всю эту ситуацию логично обрабатывать методами, вызываемыми у родительского мешинстанса, или у ноды?
Аноним 27/05/21 Чтв 23:54:54 #424 №745186 
изображение.png
>>745150
>нет приватных переменных
обмазывал ли кто-нибудь годот подобными модулями?
Аноним 28/05/21 Птн 02:20:25 #425 №745187 
Пацаны, я не понимаю. Вот у меня есть сигнлтон, в нем раз в секунду меняется флаг
>extends Node2D
>var flag = false
>func _process(delta):
>>...
>>flag = !flag
В другом скрипте я пытаюсь вызвать сеттер, когда меняется флаг. В логе он меняется.
>extends Control
>var a = global.flag setget setter
>func setter():
>>print("Yay")
Почему сеттер не срабатывает? Он же меняется в извне и в другом классе.
Аноним 28/05/21 Птн 02:21:17 #426 №745188 
>>745187
>extends Node2D
extends Node на самом деле, ну да ладно
Аноним 28/05/21 Птн 02:41:27 #427 №745190 
u
Аноним 28/05/21 Птн 03:28:18 #428 №745191 DELETED
>>745187
У сеттера сигнатура setter(value)
Аноним 28/05/21 Птн 03:42:39 #429 №745193 
>>745191
>var variable = value setget setterfunc, getterfunc
Нет
Аноним 28/05/21 Птн 03:43:10 #430 №745194 
>>745193
А, то есть да, стоит у меня там валью
Аноним 28/05/21 Птн 14:09:18 #431 №745247 
Как кошерно работать с глобальными переменными, где хранятся всякие уникальные состояния?
Из мыслей - отдельная нода, где все переменные выгнаны типа
export(bool) bar unitSelected
Или можно как-то красивей?
Аноним 28/05/21 Птн 14:10:16 #432 №745248 
var unitSelected
Быстрофикс.
Аноним 28/05/21 Птн 14:24:06 #433 №745253 DELETED
>>745187
Погоди, ты пытаешься сделать сеттер на переменную из другого файла? Ну не, так вряд ли можно.
Аноним 28/05/21 Птн 14:27:32 #434 №745254 
>>745194
Ну так
> func setter(value):
Же.
Аноним 28/05/21 Птн 14:27:43 #435 №745255 
>>745253
Эээээээх.
А как можно реагировать на изменение переменной в синглтоне?
Аноним 28/05/21 Птн 14:28:00 #436 №745256 
>>745253
> вряд ли можно
Можно.
Аноним 28/05/21 Птн 14:28:07 #437 №745257 
>>745255
только через _процесс?
Аноним 28/05/21 Птн 14:29:40 #438 №745258 
>>745254
Не срабатывает.
Аноним 28/05/21 Птн 14:30:53 #439 №745259 
>>745247
> как-то красивей?
В стиле годоскрипта.
GlobalData.set_my_parameter_as(new_value)
где
set_my_parameter_as - это функция, опционально чей-то сеттер.
Аноним 28/05/21 Птн 14:31:29 #440 №745260 
>>745258
Скрины отладчика показывай.
Аноним 28/05/21 Птн 14:37:00 #441 №745261 
>>745255
> А как можно реагировать на изменение переменной в синглтоне?
Сигналы. Сигналы родимые. Они же события в ентерпрайз-кодинге. Изучи их. Пойми их. И пользуйся их силой.
В синглтоне:
> signal my_new_state(new_state)
...
> emit_signal("my_new_state", moya_peremennaya)
В левой ноде:
> Singleton.connect("my_new_state", self, "singleton_state_callback")
> func singleton_state_callback(new_state):
> > print("nakanetcta ya vizhu, chto v singletone peremennaya stala", new_state)
Аноним 28/05/21 Птн 14:37:34 #442 №745262 DELETED
>>745255
Сигналы посылать.
В глобале
signal flag_changed(value)
var flag setget flag_set
func flag_set(value): emit_signal(flag_changed, value)
В самой сцене
func _ready():
global.connect("flag_changed", self, "on_flag_changed")

func on_flag_changed(value):
...

>>745247
Кошерно вообще не иметь глобальных переменных.
Ну если по началу тебе так проще, то как угодно.
Экспорт вообще нужен только для того чтобы в редакторе годота свойства ручками вписывать. Если ты просто собираешься пользоваться переменной - то без экспорта так же работать будет.
Аноним 28/05/21 Птн 14:39:13 #443 №745263 
1622201952254.jpg
>>745262
Брооо!
Аноним 28/05/21 Птн 15:14:07 #444 №745265 
image.png
image.png
image.png
image.png
>>745260
>>745256
А в отладчике нет ничего
Аноним 28/05/21 Птн 15:16:08 #445 №745266 
>>745262
>>745261
Хорошо, но сетгет почему-то не работает, согласны?
Аноним 28/05/21 Птн 15:19:52 #446 №745267 
>>745262
>Кошерно вообще не иметь глобальных переменных.
А как тогда работать со значениями, идущими от инстанцированных элементов? Напримример, в каждом инстанцированном объекте есть переменная. Для каждого инстанса там своё значением, но вот на глобальной сцене надо учитывать значение из последнего инстанса, с которым ты повзаимодействовал.
Тут либо каждый раз выяснять, с кем в последний раз взаимодействовал, после чего тянуть значение, либо в процессе взаимодействия положить значение из инстанцированного элемента в глобальную переменную, а после уже не вспоминать, с каким же инстансом ты взаимодействовал.
Аноним 28/05/21 Птн 16:09:04 #447 №745269 
>global.connect
>Singleton.connect
Вот до этого я бы никогда не додумался без вас пацаны
Аноним 28/05/21 Птн 19:40:07 #448 №745291 DELETED
>>745267
Просто в ООП за это будет отвечать конкретная сущность, которая и занимается отслеживанием с кем взаимодействовали. Иначе у тебя глобал быстро разрастется до неподдерживаемой лапши.
Вообще то что ты описываешь чревато сложноуловимыми багами, когда игрок провзаимодействовал с двумя объектами очень быстро.
Плюс что будешь делать, если захочешь взаимодействовать с несколькими объектами (выделять рамочкой к примеру)
Аноним 28/05/21 Птн 21:37:21 #449 №745306 DELETED
>>745269
Прост так заложено в синтаксисе сигналов.
sender_node.connect("signal", receive_node, "func_name", [array_of_binds])
То есть ты, вообще говоря, можешь подключать все что угодно к чему угодно, не обязательно к self.
Просто если ты не пишешь в начале от кого будет сигнал, то подразумевается что от самой этой ноды, в которой скрипт.
Аноним 28/05/21 Птн 21:47:33 #450 №745307 DELETED
>>745266
Нет, не согласен, я сильно в гдскрипт не закапывался, но чисто с программерской логики, эта конструкция делает не то, что ты думаешь.

Пример из документации выглядит так:
var my_var = 5 setget my_var_set
То есть 5 это - просто значение, которым переменная инициализируется при создания.

Когда ты пишешь
var a = global.flag setget setter
Ты на самом деле не создаешь никакой связи между a и global.flag.
Просто изначальное значение переменной a задается равным значению global.flag на тот момент времени. Если бы ты в дальнейшем менял саму переменную a, то вызывался бы setter. А флагу нет до изменений a никакого дела.
Если тебе надо, чтобы реагировал флаг, то ему, в его файле, и надо определять setget.
Аноним 29/05/21 Суб 00:43:12 #451 №745332 
>>734420 (OP)
Я ебанат и скачал движок в стиме. Теперь он обновляется сам-по-себе и без обновлений не хочет запускаться. Есть проверенный способ отвязать его от стима?
Аноним 29/05/21 Суб 00:59:17 #452 №745336 
Вопрос по использованию поиска пути https://docs.godotengine.org/en/stable/classes/class_astar2d.html
Чтобы получить весь путь от точки 1,1 до точки 5,5 через get_id_path, я должен соединить точки черезх connect_points, причём все 25 точек со всеми 24, кроме той, что соединяю?
>>745332
А чем не вариант забрать прокт, снести стимовскую версию, скачать на https://godotengine.org/download/windows и использовать его для своего проекта?

Аноним 29/05/21 Суб 01:25:45 #453 №745339 DELETED
>>745336
Насколько я понимаю AStar работает с графом. Самый банальный пример который приводят - на сетке/гриде, сначала добавляют в него все точки, потом соединяют между собой все соседние (или еще и диагональные)
https://github.com/godotengine/godot-demo-projects/blob/3.3-2ce76ff/2d/navigation_astar/pathfind_astar.gd
Аноним 29/05/21 Суб 01:29:03 #454 №745340 DELETED
>>745336
Я хотел сказать, что каждую с каждой соединять не надо. Он путь найдет по цепочке соседних.
Аноним 29/05/21 Суб 01:37:57 #455 №745344 
image.png
image.png
>>745340
Да, я уже к этому пришёл, только что.
Потому что, в противном случае, получается телепортация из 42 в 48 для примера пикрил.
Аноним 29/05/21 Суб 13:05:06 #456 №745400 
>>745336
>снести
А, логично, я додик, спасибо
Аноним 29/05/21 Суб 13:06:31 #457 №745401 
>>743253-кун репортинг ин

Короче, оставил им фича-реквест, позже накатал тикет в PGSGP и решил забить хуй на тот функционал что хотел. Выпустил так :с
https://lowbudgethomebrew.itch.io/go-froggit-godot

Первый опыт, разъебите меня
Аноним 29/05/21 Суб 14:19:30 #458 №745412 DELETED
>>745400
>снести
А как же тикающий счетчик наиграных часов?
Аноним 29/05/21 Суб 14:31:41 #459 №745413 DELETED
>>745401
Шрифт надо бы настроить до пиксель перфекта
Флаги для выбора языка в 2021 имхо не используют
В кредитсах стоит указать Godot (у него MIT лицензия)
В браузере хотелось бы прыгать по пробелу
Не очень понял по какому принципу жабка то делает промежуточный допрыг, то тонет.
Аноним 29/05/21 Суб 19:04:55 #460 №745464 
>>745401
У тебя в игре нет полоски, показывающей насколько сильно будет прыгать (а в "Как играть" полоска есть). И да, шрифт размазанный какой-то.
Аноним 29/05/21 Суб 19:39:08 #461 №745472 DELETED
>>745464
Вообще то она у него там есть - вторая сверху.
Кстати, я бы ее еще шире и ярче сделал - практически не видно, а какой же сейчас заряд.
Аноним 29/05/21 Суб 23:37:54 #462 №745579 
>>742637
1) Тяга к опенсоурсу.
2) Году в 12 игрался с юнити. но юнити начал обрастать и тяжелеть, что пиздец. Особенно стало, когда понадобилась студия - до того хорошо жил во встроенном иде с моно.
3) Есть приличное 3д
40 Не такой брошенный во времени, как огре3д и урхо3д.
Аноним 30/05/21 Вск 16:14:49 #463 №745687 DELETED
Как думаете как сделано? Проверяется что угол нормалей вверх?
Аноним 30/05/21 Вск 18:03:10 #464 №745712 
>>745687
Да, типичный автоматический ландшафтный материал. На ютубах полно примеров для UE.
Аноним 31/05/21 Пнд 12:15:54 #465 №745836 
>>745412
Он всё-равно работает через очко
Аноним 31/05/21 Пнд 12:18:09 #466 №745837 
>>745413
Промежуточный допрыг? Я думаю, речь идёт про бонус неуязвимости, который даётся на каждом новом старте. Надо бы описать их, да.
>>745464
>>745472

Спасибо за фидбек, анонасы! Пофикшу в скором времени
Аноним 31/05/21 Пнд 13:31:08 #467 №745860 DELETED
>>745837
>бонус неуязвимости
Понял, только после 10 игр заметил мигающую иконку.
И то что таймер относится к тонущему листику я только потестив подольше узнал.
Аноним 31/05/21 Пнд 15:17:43 #468 №745912 
Блять, пол часа сидел искал баг и оказалось что match по какой-то причине не мог сравнить нормально два int-а. Переписал на if-elif и все магически заработало. Какого хуя Хуан?
Аноним 31/05/21 Пнд 16:07:09 #469 №745915 DELETED
>>745912
Покажи код, где не смог, оформлю ишью.
Аноним 31/05/21 Пнд 18:06:37 #470 №745940 
>>745915
Извиняй, но я уже все пофиксил и ломать обратно не хочется.
Аноним 31/05/21 Пнд 18:21:21 #471 №745942 DELETED
>>745940
Сделай бэкап, это в любом случае полезно.
Аноним 31/05/21 Пнд 18:27:23 #472 №745943 DELETED
>>745940
Покажи код на if-elif, я перепишу на match и проверю.
Аноним 31/05/21 Пнд 20:32:21 #473 №745964 
>>745912
А там точно два инта? Я так объёбывался.
Аноним 31/05/21 Пнд 20:33:53 #474 №745965 
>>745943
if settings[option] == 0:
pass
elif settings[option] == 1:
pass
elif settings[option] == 2:
pass

Да вот такая обычная конструкция, не знаю на что тут смотреть. В settings[option] валялся интегер от 0 до 2, что я перепроверил консолькой еще.
Но по какой-то причине тригерились не 0, 1, 2 ветки, а местный дефолт, то есть _: , причем это происходило не всегда. Не знаю уж баг это или нет, но после переписи - все стало нормально.

Вот на что стоит действительно написать issue, так это на AudioStreamPlayer2D. Мой .ogg стрим (не знаю проблема ли это только .ogg или .wav тоже) зацикливается, даже если в самом годоте галочку убрать с Loop у стрима. Приходится через код отрубать и это 100% баг, причем он и в прошлом релизе был.
Аноним 31/05/21 Пнд 20:45:38 #475 №745966 
>>745964
Если годот по какой-то причине не решил их во флоат где-то сконвертить и потом округлить до целого числа при выводе в консольку - да. Но тогда бы и if нормально не работал, я так думаю.
Аноним 31/05/21 Пнд 21:11:40 #476 №745973 
eyjej.jpg
>>744115
Парни ну помогите, Я тот который переделывал гд-скрипт разворота 3д объекта на C#
Я почти допёр, как сделать управление, топдайн шутера в 3д, единственно мне не хватает малости, чтобы поворот модели следовала за курсором мыши, а так модель крутится волчком влево и вправо при движении мыши по Х и по У

Аноним 31/05/21 Пнд 22:21:33 #477 №745980 
>>745965
А, блять. Не только у стрима есть параметр loop оказывается. У самого файла в меню импорта тоже есть параметр loop и он зачем-то по умолчанию включен, интересное открытие.
Аноним 31/05/21 Пнд 22:52:51 #478 №745986 
>>745860
Я вот прям щас занимаюсь описанием бонусов, будут в апдейте :)
Аноним 02/06/21 Срд 23:25:30 #479 №746328 
>>745412
Только в окне выбора проекта тикает, к сожалению
Аноним 02/06/21 Срд 23:30:07 #480 №746329 
>>745401
Ты охуел?
Аноним 03/06/21 Чтв 01:02:22 #481 №746343 
Глобал шлет сигнал раз в секунду. Хочу, чтобы узел брал значение, сравнивал с предыдущем и показывал изменение, то есть их разность, и рисовать стрелочку. Узел у меня создается каждый раз новый и как только он создается, value у меня всегда равно нулю, почему-то. А в следующие секунды все показывается нормально. Значение new_value мне присылает родительский узел, он тоже это делает раз в секунду по сигналу от глобала.

>var new_value : int
>var value : int = new_value

>func _ready():
>>value = new_value
>>hide_arrow()
>>global.connect("flag_changed", self, "every_second")

>func every_second():
>>if value > new_value:
>>>arrow_down()
>>>num.set_text(str(abs(new_value - value)))
>>if value < new_value:
>>>arrow_up()
>>>print(new_value, " ", value)
>>>num.set_text(str(abs(new_value - value)))
>>if value == new_value:
>>>hide_arrow()
>>value = new_value
Аноним 03/06/21 Чтв 01:05:45 #482 №746344 
>>746343
А еще я вот так пробовал, не помогло

>func _ready():
>>...
>>global.connect("flag_changed", self, "ass")

>func ass():
>>call_deferred("every_second")

>func every_second():
>>...
Аноним 03/06/21 Чтв 01:20:16 #483 №746349 
>>746344
Ладно, я в реади проверил, там тоже нули
Аноним 03/06/21 Чтв 01:36:05 #484 №746350 
>>746349
Ладно, я разобрался, ребята
Аноним 03/06/21 Чтв 01:36:46 #485 №746351 DELETED
>>746350
Не за что
Аноним OP 03/06/21 Чтв 12:49:52 #486 №746403 
>>746344
>>746343
Пастебин поддерживает разметку ГДскрипта. Это так, к слову.
Аноним 03/06/21 Чтв 14:59:35 #487 №746415 
Есть у меня мыслишка. Неделю уже развиваю или около того. Сделать опенсорсный репозиторий с мини-играми в виде готовых сцен годота. Все мини-игры должны обладать унифицированными интерфейсами для последующего встраивания в более крупные проекты.
Что я хочу собрать?
Змейки, тривряды, тетрисы, пятнашки, пакманы, взломы замков, механических, электронных, свои авторские пазлы, и многое-многое другое. Для заполнения ими игровых миров анона. Берёшь сцену из репа, встраиваешь в свою игору, юзая стандартизированный АПИ.
Как вам идея? Кто хотел бы поучаствовать?
АПИ должен включать в себя функции отображения мини-игры, скрытия, опционального запоминания состояния, позволяющие организовать включение и выключение виртуальных устройств с мини-играми в "макро"-игре, при скрытии осуществляется возврат значения (через сигнал), позволяющий организовать собственно взлом доступа куда-либо через мини-игру, или получения чего-либо, или продвижения по квесту.
Аноним 03/06/21 Чтв 15:30:05 #488 №746418 
>>746415
Поздравляю, ты украл мою идею, где персонаж должен ходит по комнатам и решать рандомные случайно выпадающие миниигры. Сука, а я даже анимацию персонажу не могу настроить.
sageАноним 03/06/21 Чтв 17:11:41 #489 №746448 DELETED
>>746415
Была похожая мысль, запилить всяких миниигр и в ф-дроид. Можем скооперироваться, пиши АПИ.
Аноним 03/06/21 Чтв 17:11:58 #490 №746449 DELETED
>>746448
Unsage
Аноним 03/06/21 Чтв 19:23:40 #491 №746475 
>>746448
> пиши АПИ
Предлагаю продумать АПИ вместе, чтобы всем было удобно и чтобы обойти подводные камни, которые не увидишь в одиночку.
>>746418
Сорян. Зато ты теперь можешь не писать кучу миниигор, а подсоединить нашу (пока ещё не существующую) базу миниигор прамо в свой проект и сконцентрировать усилия на стиле.
Аноним 04/06/21 Птн 02:01:13 #492 №746519 
Я импортировал JSON файл в синглтон, присвоил его словарю dict1. В другом скрипте создал еще словарь dict2 = singlton.dict1. Беру из dict2 данные, обновляю их и сохраняю в dict2 новые данные. Но оказывается обновляются и данные в синглтоне. Так и должно быть? И dict2 = Dictionary.new() не работает, функции нет в Dictionary. Короче, чтобы хранить начальные неизменные данные, надо в синглтоне еще один dict3 создать и распаковывать в него? Или можно во втором скрипте все-таки сделать независимый словарь?
Аноним 04/06/21 Птн 02:51:34 #493 №746523 
>>746519
duplicate()
Аноним 04/06/21 Птн 14:31:58 #494 №746617 
>>746523
duplicate(true), без deep=true все равно будут референсы, а не копии
Аноним 04/06/21 Птн 22:52:14 #495 №746651 
Как лучше закладывать поведение ИИ в игру, и где его обрабатывать для пошаговой игры? Есть идея гонять принятие решений в многопотоке, пока игрок ходит свой ход, чтобы потом ИИ имел заданный набор шаблонов для поведения к своему ходу. Из идей только в синглтоне крутить в цикле принятие решений.
Аноним 05/06/21 Суб 10:59:43 #496 №746695 DELETED
>>746651
Думаю так и надо делать.
Хотя мне в другом треде настойчиво советуют GOAP или Utility AI. Он вроде как выбирает исходя из текущей ситуации, а не перебирает дерево вариантов.
Аноним 05/06/21 Суб 12:07:18 #497 №746707 
>>746695
Ну я тоже ориентируюсь на utility ai, но вот если конечная цель не так легко достижима и состоит, по сути, из набора более мелких целей, то всё равно придётся перебрать, какая же из целей лучше здесь и сейчас.
Аноним 05/06/21 Суб 12:33:05 #498 №746714 DELETED
>>746707
Ну вот насколько я понял утилити ничего не перебирает, а просто идет по списку доступных действий и выдает каждому оценку, и берет из самой дорогой категории с самым высоким весом (если таких несколько одинаковых то тут рандом). Это по идее быстрая операция. Или я чего-то не понял про перебор.
Еще читал что делают двухуровневый ИИ, один стратегический - он решает какую конечную цель делать, и один для агентов - он уже решает мелкие цели.
Аноним 05/06/21 Суб 21:15:13 #499 №746758 
Как получить доступ к ключу в словаре? Мне надо в цикле сравнить, равно ли название первого ключа названию ключа в подподсловаре, например, второго ключа.
>for entry in data:
>>for i in data[entry]["relations"]:
>>>for entry1 in data:
>>>>if entry != entry1:
>>>>>for j in data[entry1]["relations"]:
>>>>>>if entry == data[entry1]["relations"].key() - вот тут не получается
Аноним 05/06/21 Суб 21:18:28 #500 №746759 
>>746758
>>>>>>if entry == data[entry1]["relations"][j].key()
Аноним 05/06/21 Суб 21:24:40 #501 №746760 DELETED
>>746758
Что то странное ты делаешь.
for entry in data:
Ты уже получаешь подряд все {ключ:значение}
Зачем после этого лезть в data по entry?
Если же ты хотел перебрать все ключи, то пишется
for key in data.keys():
Аноним 05/06/21 Суб 21:25:55 #502 №746761 DELETED
>>746758
А, у тебя двач [ i ] съел.
Ну ты попробуй все равно описать алгоритм.
Аноним 05/06/21 Суб 21:41:01 #503 №746763 
>>746760
>>746761
У меня есть провинции.

>{
>"Province1" : {
>>"name":"Ass",
>>"pops" : "3500",
>>"relations" : {
>>>Province2:FRIENDLY,
>>>Province3:BAD
>>>}
>>},
>"Province2" : {
>...

Хочу, чтоб каждая сравнивала свое отношение к другой провинции и отношение другой к себе. Если у обиех плохое, то ВОЙНА.
Аноним 05/06/21 Суб 23:19:04 #504 №746769 DELETED
>>746763
В общем у меня вот так заработало.
Аноним 05/06/21 Суб 23:23:23 #505 №746770 DELETED
>>745973
Не заметил этот пост, сорри.
Советую делать как тут
https://kidscancode.org/godot_recipes/3d/rotate_interpolate/
Шаг 1. Преобразовать координаты мышки в координаты в 3д мире.
Шаг 2. Временному объекту сделать look_at на эту позицию цели
Шаг 3. Плавно проинтерполировать направление настоящего объекта
Если будут трудности может завтра напишу подробнее
Аноним 05/06/21 Суб 23:28:09 #506 №746771 
>>746769
ййооооо вау спасибо
Аноним 06/06/21 Вск 17:51:42 #507 №746876 
>>746329
Да
Аноним 07/06/21 Пнд 02:35:41 #508 №746949 
Привет. Есть нода2д на которой лежит layout на котором лежит контрол. Как взять глобальные координаты мира под контролом? Походу лайаут создал ещё один вьюпорт. И я совсем не понимаю как с одного вьюпорта влезть в другой.
Аноним 07/06/21 Пнд 03:45:00 #509 №746952 DELETED
>>746949
А что еще есть? Камера? Сейчас попробовал - rect_global_position контрола возвращает все правильно.
Аноним 07/06/21 Пнд 04:01:04 #510 №746953 
>>746952
У меня возвращает какие то левые координаты относительно экрана. А мне надо относительно world2d.
Естественно камера сместилась в ворлд 2д.
sageАноним 07/06/21 Пнд 17:03:50 #511 №747040 DELETED
>>746953
Покажи дерево нод, потому что не понятно что ты называешь world2d, layout.
В любом случае, даже если не разберешься, там можно элементарно посчитать - $Camera2D.get_camera_position() - $Button.rect_global_position
Аноним 07/06/21 Пнд 22:53:58 #512 №747113 
Безымянный.png
>>747040
Вот. Нода Effect должна начать спамить монетки, которые через слой канваса должны получить глобал позишн в мире лейбла score и полететь туда.
Аноним 07/06/21 Пнд 23:21:00 #513 №747124 DELETED
>>747113
Ну значит CanvasLayer прибит гвоздями, считай по форумле выше.
Аноним 08/06/21 Втр 09:35:07 #514 №747171 
ОП в треде.
Перекачу ближе к вечеру.
Про оп-пикчу анона помню, поставлю. Предлагайте дополнения в шапку. Позже перечитаю и скомпоную.
Всем цемки! Обнял! Убегаю! На связи!
ПЕРЕКАТ Аноним OP 08/06/21 Втр 13:10:50 #515 №747203 
>>747202 (OP)
>>747202 (OP)
>>747202 (OP)

comments powered by Disqus

Отзывы и предложения