Gamedev


Ответить в тред Ответить в тред

Check this out!
<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
311 53 75

Godot #15 Аноним # OP 15/02/20 Суб 22:48:51 6431881
.png (61Кб, 270x270)
270x270
С чего начать?
С изучения документации. Если не можешь в инглиш, и даже в гугл-переводчик, то начат перевод официальной документации: https://docs.godotengine.org/ru/latest/
Но вообще, будь мужиком и изучи английский: https://godot.readthedocs.io/en/stable/

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

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

Предыдущий тонет там: >>635427 (OP)

Архивы:
1 http://arhivach.ng/thread/207802/
2 http://arhivach.ng/thread/388500/
3 http://arhivach.ng/thread/388501/
4 http://arhivach.ng/thread/388502/
5 http://arhivach.ng/thread/388503/
6 http://arhivach.ng/thread/432708/
7 http://arhivach.ng/thread/433902/
8 http://arhivach.ng/thread/436355/
9 http://arhivach.ng/thread/455461/
10 http://arhivach.ng/thread/479963/
11 http://arhivach.ng/thread/489815/
12 http://arhivach.ng/thread/494513/
13 http://arhivach.ng/thread/515567/
Аноним 15/02/20 Суб 22:51:10 6431902
image.png (1Кб, 287x19)
287x19
После перезагрузки проект просто вылетает. Даже ошибку не выдаёт
Аноним 15/02/20 Суб 22:51:40 6431913
image.png (32Кб, 504x290)
504x290
>>643190
В предыдущих сериях:
Аноним 15/02/20 Суб 22:57:16 6431944
>>643190
Имею ввиду, что вылетает при срабатывании триггера
Аноним 15/02/20 Суб 22:58:05 6431955
1581796684539.png (4Кб, 97x698)
97x698
>>643190
>>643191
Бывает такое.
Мне помогает закомментить всё и переписать заново иным образом. В процессе переписывания я в 90% случаев нахожу, где я проебался.
Аноним 15/02/20 Суб 23:00:52 6431976
1581796852323.png (2Кб, 182x34)
182x34
>>643194
Помимо вывода есть ещё отладчик. Там тоже много интересного пишут.
Аноним 15/02/20 Суб 23:01:13 6431987
>>643197
Не в моём случае.
Аноним 16/02/20 Вск 00:19:16 6432128
1487535997336.jpg (10Кб, 194x259)
194x259
1484409359958.webm (7864Кб, 1920x1080, 00:00:59)
1920x1080
>>643179 →
Нашел способ воспроизвести краш с 100% вероятностью. Надо войти в режим прокладывания маршрута, и начать быстро кликать по своим зданиям, возможно, при этом немного прокручивая карту
Не знаю точно, что происходит, но в один момент вылетает ошибка. Игре кажется, что после этого с ней все в порядке, но на самом деле ей уже настал omae wa mou shindeiru.
Текст ошибки намекает на обработчик мыши и его параметры. Возможно, ты где-то не дописал аргументы?
P.s. игра не выносит ресайз окна, но это ты исправишь покурив http://docs.godotengine.org/en/3.2/tutorials/viewports/multiple_resolutions.html
Аноним 16/02/20 Вск 02:26:18 6432239
>>643212
Ввёл логирование с помощью файла. Доступ к логам в игровом меню (которое раньше было пустым). Если на сайте с созданием файлов все ок, то в скором времени отладка у пользователей будет без проблем. Спасибо за детальный разбор ошибки! В скором времени её поправлю и выложу новую версию.
Аноним 16/02/20 Вск 03:26:19 64323010
>>643212
Твой баг поправил, новую версию залил. Логирование через файл на html-5 не пашет.
Аноним 16/02/20 Вск 03:30:36 64323111
Короче сделал сигналы и привёл в порядок queue_free, теперь всё зробит
Аноним 16/02/20 Вск 13:46:56 64329212
Допустим у меня есть очень много button которые делают одно и тоже, можно как-то объединить их? Чтобы при нажатии любой они давали один сигнал, а не для каждой прописывать.
Аноним 16/02/20 Вск 13:52:49 64329513
1532111726390.png (157Кб, 1502x606)
1502x606
>>643292
Ты можешь поступить так, как я показывал в прошлом треде.
Пройтись в цикле по всем кнопкам и всем им подключить один сигнал.
Аноним 16/02/20 Вск 15:06:12 64330714
>>643295
Двачую этого.
Кроме того, у сигналов есть возможность привязки к ним любых дополнительных данных, в качестве которых можно указывать ссылку на кнопку. Таким образом, все кнопки будут выполнять один обработчик сигнала, но подавать на вход ссылку на себя:

for button in buttons.get_children():
-> button.connect("pressed", self, "on_arraybtn_pressed", [button])

func on_arraybtn_pressed(sender):
-> print(sender.name)
Аноним 16/02/20 Вск 15:47:25 64331215
Аноним 16/02/20 Вск 17:56:51 64333116
image.png (41Кб, 603x217)
603x217
Чому не сохраняет?
Аноним 16/02/20 Вск 18:15:20 64333517
Аноним 16/02/20 Вск 18:32:07 64334118
>>643331
хтмл5? Там какие-то проблемы с схоронением. При работе в браузере сохранение в файлы должно прозрачно заменяться схоронением метаданных в локальное хранилище браузера. Однако там есть куча подводных камней, с которыми я попытался разобраться, но потом хзабил.
Аноним 16/02/20 Вск 18:40:59 64334619
Я не вкатывальщик и вкатываться не планировал. Просто так вышло что я здесь. Если кто-то хочет потешить свое самолюбие за счет моей глупости или получить плюсик в карму, пожалуйста поотвечай на мои слишком тупые вопросы.
Пока только два :
1)Как ограничить движение 2д камеры? Камера передвигается перетаскиванием мышкой и wasd со стрелочками, и если как ограничить передвижение у стрелочек я понимаю, то как с перетаскиванием неебу. Желательно чтобы при отдалении камеры колесиком я не выходил за пределы.

2) Нужно перелистывание слайдов, я примерно понимаю как это можно сделать. Нажимаешь на кнопку - выключает видимость X, включает видимость Y, еще раз выкл Y вкл Z. Но как это сделать покрасивее и удобнее? Не прописывать же вкл/выкл для 15 слайдов допустим.
Аноним 16/02/20 Вск 18:41:28 64334720
Аноним 16/02/20 Вск 18:46:18 64335221
>>643347
В смысле UWP? Приложение шындовс-маркета штоле? Вообще не пробовал туда экспортить.
В любом случае, смотри директорию, в которую выгружаешь на наличие ожидаемых тобой файлов.

Аноним 16/02/20 Вск 18:50:21 64335322
>>643352
>В смысле UWP
win32 или как его (exe)
Оказалась какая-то проблема с правами доступа у годота.
С ноута и компа знакомого всё работает, хз.
Аноним 16/02/20 Вск 18:50:33 64335423
>>643346
1. Ограничить движение камеры точно так же, как ограничить любую переменную по диапазону: проверяешь выход за границы диапазона и отменяешь изменение.

2. Максимально абстрактный вопрос. Как сделать красиво? Нужно обладать вкусом. И сделаешь красиво. Чтобы обладать вкусом, нужно перелопатить определенное количество контента, в нашем случае игр. И тогда начнёшь понимать, что красиво, а что нет.
Аноним 16/02/20 Вск 18:52:00 64335524
>>643353
Не может этого быть. Директория user://в корректно работающей винде это директория к которой у данного юзера полные права. Значит у тебя винда зверь-сиди.
Аноним 16/02/20 Вск 18:56:47 64335625
>>643346
1. Да в общем то так же. У тебя где то выставляется координата x и y.
Насчет колесика - ну ты можешь высчитать сколько пикселей видно на экране, и на столько отступить от лимита. Наверняка и готовое решение можно нагуглить. Какую нибудь rts камеру.
2. Можно много чего сделать, во-первых массив или список. Опять же смотри пример >>643295
Эффекты можно разные сделать, затухания там.
А можно вообще просто сделать большой "уровень" и выставить твои слайды по порядку, и летать камерой.
Аноним 16/02/20 Вск 18:58:37 64335826
>>643353
Нет пробелов или русских букв в имени пользователя? Выведи в отладку как полностью путь к файлу получается.
Аноним 16/02/20 Вск 19:34:53 64335927
>>643358
У меня сохранения формата "файл1.сохранение".
Может быть в этом дело, но на других компьютерах с такими русскими буквами в названии все нормально.
Аноним 16/02/20 Вск 19:43:06 64336228
>>643359
Я ещё раз пересмотрел твой код и обратил внимание на то, что у тебя сначала открывается сейв, прочитывается, парсится в переменную, вносятся изменения и затем файл открывается на запись и записываются новые данные.
Дело твоё, конечно, но я бы не рекомендовал модифицировать сейв файлы. Только если игра предполагает. Типа, как в Андертейле, когда главный злодей игроку сейвы трёт.
В основном же, я предлагаю тебе хранить актуальные данные в том же globaldata и просто брать их оттуда для сохранения.
Аноним 16/02/20 Вск 19:45:06 64336329
>>643354
Спасибо, я имел ввиду сделать код по красивому, без лишних строчек, я уверен можно не повторять одну и ту же точку

>>643356
Спасибо, попытаюсь понять >>643295
Аноним 16/02/20 Вск 19:55:48 64336630
Кстати, насчёт сейвов, годаны. Вот как вы решаете проблему нумерации? Скажем, игра начинает сохранять сейвы по эф-пяточке. Файл1, файл2, файл3. Потом игрок зафейлил игру и загрузился с точки в несколько сейвов назад. Крайний сейв это, скажем Файл100, а игрок загрузил Файл90 и играет дальше. Теперь задача, как только игрок нажимает ф5, нужно определить, что сохраняться надо не в Файл91, а в Файл101. Как?
Если брутфорсом перебирать названия файлов на существование, не будет ли это слишком долго в случаях, когда игрок наплодил ТЫСЯЧИ ФАЙЛОВ?
Если внутри игры хранить счётчик, получится перезапись существующих файлов.
Можно ли кроссплатформенно получать от системы уникальное имя файла и юзать его как сейв?
Аноним 16/02/20 Вск 20:16:59 64337231
>>643366
Самое простое, что приходит в голову - время.
Аноним 16/02/20 Вск 20:19:36 64337332
>>643359
Я писал про имя пользователя. user:// это C:/Users/<username>/AppData/Roaming/Godot/GameName, ~/.local/share/godot/app_userdata/GameName
Аноним 16/02/20 Вск 20:34:21 64337533
>>643372
Ну да, тоже думал об этом. Только в довесок ко времени ещё имя игрока: Player1_20200216_203145.sav перезапись файлов будет только если игрок начнёт бешено спамить кнопку сохранения. Впрочем, его пыл можно ограничить таймером в пару секунд, а можно и не ограничивать.
Аноним 16/02/20 Вск 20:56:40 64337934
>>643373
> <username> = Вася Пупкин

File not found: C:/Users/Вася
Аноним 16/02/20 Вск 23:51:27 64339735
>>643379
пробел не воспринимает шоле?
Аноним 17/02/20 Пнд 01:18:10 64340536
>>643362
Тащемта я подобный трюк в одной старенькой ааа игре видел, только не помню в какой. Вроде в халве подобное
Аноним 17/02/20 Пнд 08:42:03 64343937
>>643397
Это зависит от настроек шынды. Годот, как типичное кроссплатформенное приложение, имеет модуль ОС, который в хостовой системе использует её хостовые функции, в случае с виндой - винАПИ, которые могут возвращать совершенно разные результаты в зависимости от настроек. Очевидно, что модуль спроектирован под дефолтную винду с настройками искаропки и не учитывает, что какой-то ZVER в реестре отключил длинные имена в путях файлов.
Аноним 18/02/20 Втр 22:01:13 64374738
Аноним 18/02/20 Втр 22:33:54 64375139
думаю начать пилить видосы по сабжу и выложить на тытрубу, есть идеи про что сделать?
19/02/20 Срд 00:54:26 64375540
>>643751
Обзор годных игор на годоте - вот это ещё никто не делал.
19/02/20 Срд 08:55:35 64376841
>>643751
Тоже думаю, но денег нет на хороший микрофон, а имеющиеся микрофоны в гарнитурах записывают говняно.
Из идей: Курс по скриптам для продвинутых (типизация, оптимизация, бенчмарки, обзоры и применение скриптовых ассетов и аддонов, конпеляция с дополнительными модулями самого редактора и экспортных шаблонов). Курс по архитектуре игор (как что называть, в какие папки что складывать, как организовать главное меню, как грузить локации в игровой мир, как сохранять прогресс, по чекпоинтам, по квиксейвам, как организовывать хранение файлов сохранений, как настраивать звук в игре, чтобы фон играл отдельно и плавно переключался на экшн-саундрек в схватках с врагами). Курс по тридэ (как организовать эргономичное передвижение по лестницам, чтобы игрок видел перед собой свои руки, перехватывающие перекладины лестницы и мог в случае чего остановиться, достать ствол и отстреливаться от вражин, сюда же механики падения при ранении и отстреливании врагов лёжа, реализованное в популярных шутанах, комбинированный 1/3person контроллер с плавным масштабированием камеры и переключением плеча, реализация режимов ходьбы, ползанья, полётов (левитации и на крыле), распознавание стен, ступеней, потолков рейкастами и зонами, и адекватная реакция коллиженшейпа на них, реализация пойнт и клик управления в стиле РТС, передвижение по навигационному полигону и переключение с этого режима в режим WASD и много лругое).
Курс по двадэ (подробные разборы платформенных и топдаунных механик, проектирование уровней с расстановкой по ним секретов и активностей, разбор популярных подходов к реализации оных активностей, примеры реализаций каждого в гдскрипте, создание мини-игор и интеграция их в тридэ через вьюпорт-текстуру и многое другое).

Если обладаешь поставленным голосом, студийным микрофоном, можем посотрудничать. Напишу тебе планы лекций, а ты зачитаешь и выложишь. Если ты согласен с утверждением, что авторитет создаётся годами, а рушится за секунду, если готов долго и кропотливо работать чисто по фану, без отдачи, то пиши в личку, обсудим.
Аноним 19/02/20 Срд 14:19:09 64378842
Что там с системой мультиплеера в версии 3.2? Стал ли он достаточно простым уровня другого движка, который нельзя называть?
Аноним 19/02/20 Срд 14:39:25 64379043
>>643788
Не щупал, но вроде он и был простой, как rpc.
Аноним 19/02/20 Срд 14:59:52 64379544
Аноним 20/02/20 Чтв 13:44:44 64395945
https://gotm.io/podotchet/space

Добавил простенькую кнопку скипа хода и пару новых подсказок во время игры с low bot.
Теперь заблоченные другими строениями пути перерасчитываются не полностью, а частично (до заблоченной клетки), сохраняя дальнейший путь выстроенный игроком. (Теперь не будет казаться, что пути не сохраняются)
Добавлен новый спрайт ангара.
Добавлены логи, которые можно смотреть в game_menu.
Правки мелких багов и недоработок.
Аноним 20/02/20 Чтв 16:08:32 64398046
>>643795
Вахтёр, ты берега попутал, хули ты тут разжигаешь? Пора жаловаться на тебя Абу.
Аноним 21/02/20 Птн 08:22:17 64404247
>>643959
Это всё замечательно, ты молодец. Я не любитель подобных игор, но желаю тебе успехов. Работай над анимациями, чтобы домики красиво строились и разрушались. Чтоб кораблики красиво разлетались на обломки. Чтобы динамичное меню свистело и пердело. И музон бодрый поставь.
Аноним 21/02/20 Птн 13:17:28 64409648
Аноним 21/02/20 Птн 15:53:29 64411449
>>644042
Спасибо за поддержку!

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

Чуть позже, когда на 99% отлажу/оптимизирую некоторые модули, постараюсь вкинуть сюда/гит/ассеты (network,логгер, класс для быстрой работы с хексами и т.п.).

Вчера затестил на игру с одного клиента на андроиде, против второго с компа. Все работает отлично. Только HTML-5 ругается.
Если кто-то знает, почему put_packet выдает 1 ошибку, поделитесь решением (FAILED = 1 — Generic error).
Аноним 21/02/20 Птн 16:46:11 64412050
>>644114
> Если кто-то знает, почему put_packet выдает 1 ошибку, поделитесь решением (FAILED = 1 — Generic error).
Возможно, сетевые ошибки?
Аноним 21/02/20 Птн 19:36:46 64414251
Аноним 21/02/20 Птн 20:04:34 64414552
>>644120
На андроид и винде в приложухе пашет даже при задержках в 10сек. Ощущение, что gotm.io блочит. Либо я чего то не шарю.
Аноним 21/02/20 Птн 20:47:05 64414753
>>644145
Ну это уже ящитаю повод им в саппорт постучаться.
Аноним 22/02/20 Суб 16:49:50 64425354
Есть у кого напримете иконки энергии (электричества) квадратного типа в центр которой можно вставить число?
Аноним 22/02/20 Суб 17:20:48 64425855
ИТТ Вкатывальщик 22/02/20 Суб 22:39:50 64432456
Идеи для вката целой минитимы 3 долбаёба, чтобы было минимум рисовашки и чтоб экшон был.
Естесна, 2Д нужны.
Ну и чтобы по максимум изучить годот.
Аноним 22/02/20 Суб 23:26:12 64434057
>>644324
Идей куча. Фейкомыльце найдешь при грамотном прочтении треда. Недавних постов. Сейчас занимаемся туториалами, но на организацию реального девелопа ресурсы тоже найдутся.
Аноним 23/02/20 Вск 03:28:05 64437158
С++ нужно знать?
Вкатывальщик 23/02/20 Вск 08:20:37 64439059
>>644371
Вообще всем. Хорошо знать нельзя, но кто что знает - тому хватает.
Аноним 23/02/20 Вск 11:50:43 64441160
Хей, анончики! Поясните по использованию .gdignore: Например, я делаю эрпогэ с корованами и много моделирую. В проекте свалены файлы blend, референсы, вспомогательное барахло (старые версии и бэкапы) все это я прячу в папочке с маркером .gdignore и годот их не видит, и все вроде нормально, но зачем мне всё это держать внутри проекта? Допустим, к разработке подключились новые люди, занимаются кодингом и им гигабайты модельного барахла качать не айс.
И тут возникает вопрос. А кто вообще придумал хранить это внутри проекта? Может лучше вынести модели блендера и документы фотошопа наверх, а внутрь только забрасывать экспорт из них, glb, png.
Получается .gdignore вообще не нужен?
Аноним 23/02/20 Вск 13:24:31 64442361
Господа, в честь Вашего теплого приема, особенно от >>644042, на 23 февраля, я запилил Вам хардкор лвл в https://gotm.io/podotchet/space и мне очень интересно, сможете ли Вы его пройти.
Если все же Вас это заинтересует, и Вы вдруг пройдете, сбрасывайте сюда тактику, скриншот победы и пожелание награды в разумных пределах: (
- Подписка на новые apk для андроид, где можно поиграть по сети?
- Рублей 300 на карту?
- Занесение Вашего ника куда-нибудь?).

Всем хорошего дня и настроения!
Аноним 23/02/20 Вск 13:35:21 64442462
>>644423
Рублей 300 скину только первым трем, потому что он чет иногда играет нормально, а иногда багает, сук. И именно когда я выложил!
Аноним 23/02/20 Вск 13:43:36 64442563
Какой последний положняк годота + ведро? Год назад когда заходил было дико неоптимизировано. Изменилось ли за год что нибудь? Если нет, продолжу ковырять свой платформер на libgdx
Аноним # OP 23/02/20 Вск 14:34:15 64443064
>>644425
> Какой последний положняк годота + ведро?
ОП предлагает делать игры для пекабояр. На ведро похуй. Желает Хуану выпилить поддержку ведра и ябла. Если анонимус желает делать игры на ведро, от ОПа он не получит здесь ни поддержки, ни помощи.
Аноним 23/02/20 Вск 14:56:47 64443565
>>644430
А порицание и струи мочи?
Аноним 23/02/20 Вск 15:13:21 64444866
>>644425
Да, с версии 3.2 стало практически летать. Ведроид стал неплохой платформой для годота. Единственное, что пока сосет - html5.
Аноним 23/02/20 Вск 16:53:32 64448667
Вопрос. Допустим я хочу сделать общий класс/ноду (пока не очень понимаю, как это лучше сделать в годоте) item и наследовать от него все предметы. Стоит ли делать это с помощью "extends ..." на наследуемом объекте?
Аноним 23/02/20 Вск 18:10:16 64450968
>>644486
В документации пример как раз про твои айтемы
Аноним 23/02/20 Вск 18:23:37 64451569
>>644430
Анон же, в свою очередь, советует ОПу свернуться калачиком и сосать свой собственный стручок. Ну и не указывать анону, что и как ему делать.
Аноним 23/02/20 Вск 18:25:44 64451870
>>644425
Если будешь использовать тайлмапы, то получишь 10 fps на выходе. Остальное вроде норм.
Аноним 23/02/20 Вск 18:42:45 64452271
14866643930360.jpg (47Кб, 741x691)
741x691
>>644515
>Анон же, в свою очередь, советует ОПу свернуться калачиком и сосать свой собственный стручок
Аноним 23/02/20 Вск 19:07:43 64452972
>>644518
При заполнении или расчете ходьбы(столкновений) по клеткам?
Аноним 23/02/20 Вск 19:33:07 64453773
Аноним 23/02/20 Вск 23:40:42 64464874
>>644518
Что вместо тайлмапов юзать?
Аноним 24/02/20 Пнд 05:20:22 64466275
>>644425
>>644518
->
>>642666 →

>>642076 →

git fetch origin pull/35957/head:batch-2d
git cherry-pick d04cd4a 
> Потестил сегодня вечером немного, результат не то чтобы впечатлил, но около x2 прироста на простейшем примере мигания клеточками дает.

> карта 40x80 клеток (тайл 8x8 пикс)

> 14 fps Debug, no batch
> 26 fps Debug, batch
> 17 fps Release, no batch
> 33 fps Release, batch

> карта 20x40 (тайл 16x16 пикс)
> 19 fps Debug, no batch
> 26 fps Debug, batch
> 23 fps Release, no batch
> 33 fps Release, batch
Аноним 24/02/20 Пнд 11:04:00 64468776
>>644648
Если прям срочно надо, прям горит, то можешь юзать ручную отрисовку на канве (холсте, канвасе, canvas) Решение было в прошлом треде, со скрином готового кода на 50 строк.
Аноним 25/02/20 Втр 12:57:47 64493677
Те кто говорит о плохой производительности - использовать многопоточность в коде пробовали?
Аноним 25/02/20 Втр 13:35:55 64494778
>>644936
Чтобы пробовать треды, нужно быть программистом, а у нас в основном геймдизайнеры-директора.
> Many people think they will magically speed up your code. But just creating threads because they are cool could well slow your code down.
https://godotengine.org/qa/30262/how-to-properly-use-threads
Аноним 25/02/20 Втр 14:14:06 64495679
>>644936
Там затык в выводе графики, а не в процессоре.
Аноним 25/02/20 Втр 14:24:20 64496280
>>644956
Выпустили уже 4? Тестил кто хуановулканг?
Аноним 25/02/20 Втр 20:00:12 64504381
>>644962
только 3.2.1 на подходе
Аноним 25/02/20 Втр 22:20:37 64506682
>>644962
Вроде бы там прорывов нет. Да и сколько устройств на андроиде поддерживает вулкан? Нагуглил что 10-30% максимум.
Аноним # OP 25/02/20 Втр 22:22:17 64506783
>>645066
> устройств на андроиде
Честно говоря, похуй сколько их там.
Вулкан нужен для десктопной платформы, пекабоярам.
Вкатывальщик 25/02/20 Втр 22:23:51 64506884
>>645067
Но... Khronos... Всем...
Аноним 25/02/20 Втр 22:27:39 64506985
>>645068
ГЛ ЕС позиционировался как мобильная платформа, Вулкан же как полностью глобальная, иначе говоря, на пека она будет работать (и работает, что это я) без мобильных ограничений. На мобилах тоже, ибо к 2020 мобилы для мобильных игродебилов уже сравнялись по мощщи с мемными игровыми ноутбуками.
Аноним 26/02/20 Срд 08:58:54 64512086
Научите ставить декали на объекты.
Следы от пуль, от покрышек, кровь, вино, кетчуп, вода - вот это всё. Предполагаю, что принцип, как с наложением теней?
Аноним 26/02/20 Срд 19:54:15 64524287
>>643188 (OP)
Помогите разобраться с рейкастами. Как сделать, чтобы персонаж стрелял не из центра камеры, а из ствола оружия, при этом, ствол оружия должен при стрельбе быть направлен в точку пересечения вектора, направленного из центра камеры на цель, помеченную прицелом на камере в центре. Не могу разобраться, есть какая-то формула?
Вообще, при стрельбе рейкастом это как бы и не актуально. Но если делать ракетницу, то стрельба будет идти объектами-ракетами же. Или бластер, где стрельба будет производиться видимым лучом, повторяющим ранее произведённый прицельный рейкаст.
Аноним 26/02/20 Срд 20:10:30 64524988
>>645242
Ухх, лень полностью расписывать, что-то вроде такого:
Нода персонажа
-Нода оружия
--Нода кончика ствола
Таким образом они все вместе двигаются
Дальше ноде ствола делаешь look_at ( Vector3 target, Vector3 up ) или look_at_from_position ( Vector3 position, Vector3 target, Vector3 up ) - это в Spatial
Ну и рейкаст кидать от объекта кончика ствола, а не от камеры
Аноним 26/02/20 Срд 20:13:04 64525289
Аноним 26/02/20 Срд 20:16:00 64525390
>>645249
> look_at
Бля, ну конечно же! Чот затупил. Ведь знал же о ней.
>>645249
>>645252
Спасибо, годаны!
Аноним 27/02/20 Чтв 12:49:31 64532891
Так, ну экспортнул я на линух dodge the creeps, 41 стыдливый мегабайт, динамическая о линковка.
Где я обосраля, неужели дефолтный шаблон настолько плох?
Аноним 27/02/20 Чтв 13:18:27 64533292
1582798706962.png (77Кб, 904x682)
904x682
Блеать, ну как так? Откуда там циклическая ссылка? Класс это же не инстанс.
Аноним 27/02/20 Чтв 13:43:03 64533893
>>645332
is Switcher? Но тогда это неюзабельно.
Аноним 27/02/20 Чтв 13:44:37 64533994
>>645328
Под виндой сам движок с редактором примерно 30Мб.
Аноним 27/02/20 Чтв 13:48:24 64534195
>>645338
Чому неюзабельно? ЧЯДНТ? Я хочу чтобы каждый свичер мог ссылаться на такой же свичер и если в нодпач левый объект (левого класса) то чтоб игнорировался.
Аноним 27/02/20 Чтв 14:11:00 64534596
1582801859123.png (102Кб, 1109x837)
1109x837
>>645338
Переопределил to_string но это такая дикость, пиздец.
Аноним 27/02/20 Чтв 14:16:34 64534697
>>645341
Да не, ты все делаешь логично, но гдскрипт пока такое не переваривает. Пишут что работают над этим, обещают в 4.0. На всякий случай попробуй переименовать Switcher во что то другое, а потом обратно, вдруг подхватит.
Аноним 27/02/20 Чтв 14:21:32 64534898
>>645339
Под линухом тоже, но столько же весит и шаблон экспорта.
Короче, соберу свой годот, тем более там очень изи.
Я только не понима, как собрать шаблоны, исходников для них отдельных не нашел, они в дереве проекта в директории platform.
Мб он мне их при сборе движка тоже соберет, было бы заебись.
Аноним 27/02/20 Чтв 14:27:28 64534999
1582802847605.png (20Кб, 481x280)
481x280
1582802847690.png (47Кб, 604x374)
604x374
1582802847728.png (9Кб, 321x160)
321x160
1582802847740.png (12Кб, 493x124)
493x124
>>645346
Да, это сработало! И код стал элегантнее. И при наличии левой ноды в параметрах она игнорируется, как я и хотел.
Аноним 27/02/20 Чтв 14:27:30 645350100
>>645348
Просто отдельная сборка с флагами tools=no
https://gist.github.com/Calinou/ceb6d24b16d85bc47f9c5de9c9ae341d
Чтобы сильно уменьшить размер надо уже конкретно фичи отключать - 3d, видеокодеки. На ведре у меня сейчас 7Mb для 2d.
Впрочем если ты пытаешься сделать что то вроде dll (.so?) И пользоааться установленным в систему движком, то тут не знаю, не пробовал.
Аноним 27/02/20 Чтв 15:32:22 645357101
>>645350
Запутался, что такое tools?
Я итак собираю с tools=no отключаю нщн всякие модули, после этого в bin только бинарник годота.
Аноним 27/02/20 Чтв 15:45:10 645361102
>>645357
tools это редактор, темплейты - годот без редактора.
Аноним 27/02/20 Чтв 15:53:32 645366103
>>645361
Блять, пиздец.
Спасибо, анон, проорал
Аноним 27/02/20 Чтв 15:56:21 645367104
>>645366
Ну это упрощенно, наверняка есть какие то тонкости. Тот же андроид там еще свои ресурсы в темплейт куда то сует.
Аноним 27/02/20 Чтв 16:00:06 645369105
>>645366
С чего проорал-то?
>>645357
> Запутался, что такое tools?
https://en.wikipedia.org/wiki/Toolset
Есть такое понятие в программистском укладе - тулсет. В него входят редакторы и средства отладки. Нынче зумеры не чтят лапти дидов и под "движком" подразумевают тулсет движка. А Хуан - олдфаг, матчасть знает. Поэтому компиляция с tools=no как раз и даёт нам чистый движок без редактора (тулсета).
Аноним 27/02/20 Чтв 16:09:37 645370106
>>645369
С зависимостей между опциями.
Я не могу собрать tools=yes с некоторыми disable*-опциями, но при в сборкогайде написано, что я всего должен пересобирать шаблоны, если пересобираю двигло.
Т.е. мутные возможности таковы, как я понял:
- собрать эдитор и шаблоны, но не вырубить некоторые опции у шаблонов.
Следствие - минимальные шаблоны.
Еще я не могу target=release сделать, тому шо для шаблонов можно debug или release_debug. Но я могу собрать tools=yes target=release_debug debug_symbols=no на деле похуй, стрипну
В
- собрать отдельно с tools=no, без 3д, отключается всё, а потом пытаться собрать эдитор с tools=yes, убирая disablы, пока не соберется. Вопрос в совместимости остается открытым, хотя это один продукт.
И еще хотелось бы хотя бы один комментарий в коде модулей увидеть, я молчу про их краткое описание.
Аноним 27/02/20 Чтв 16:11:47 645371107
>>645370
> но при этом в сборкогайде
> что я всегда должен
> Следствие - неминимальные шаблоны
Аноним 27/02/20 Чтв 16:12:13 645372108
>>645370
>Я не могу собрать tools=yes с некоторыми disable*-опциями
Да, не можешь, у него в зависимостях, вроде бы, 3d и advanced gui (rich textbox и подобное)
Аноним 27/02/20 Чтв 16:39:00 645377109
>>645370
> Вопрос в совместимости остается открытым, хотя это один продукт.
Ты собираешь минимальный шаблон, в котором есть только те классы, которые ты экстендил скриптами своего проекта. А в редакторе нет смысла отключать модули. Потом запускаешь свой проект на дебаг-шаблоне и проверяешь, если какая хуйня - он в консоль напишет, чего ему не хватило. Пересобираешь или исключаешь из проекта. Когда всё работает, запускаешь на релизном шаблоне. Если всё норм - релизишь. Если не норм - ещё раз всё перепроверяешь.
Редактор пересобирать есть смысл только если ты добавляешь модули третьей стороны. Тогда да, они должны быть и в тулзовой сборке и в сборке-шаблоне.
Аноним 27/02/20 Чтв 17:02:13 645382110
>>645377
> в консоль напишет
Кто? Только что собрал только шаблон без дебага, заменил оригинальный, godot gui при экспорте сказал, что шаблон инвалид. Подробностей не было.
Аноним 27/02/20 Чтв 17:15:00 645383111
>>645377
>>645382
Разобрался, но не совсем.
Понял, что если скормить в виде шаблонов релиз и дебаг мой собранный релиз (т.е. один и тот же), то все будет норм.
Но я не понимаю, зачем ему при экспорте пути к двум шаблонам, как он выбирает нужный, зачем он вообще их сравнивает. Т.е. как мне, допустим, попросить релизный только или только отладочный юзать?
Аноним 27/02/20 Чтв 17:25:54 645386112
>>645383
Нашел эту галочку. При экспорте. Ладно, когда игру сделаю, тогда уже подберу.
Аноним 27/02/20 Чтв 21:19:17 645421113
1582827556435.png (87Кб, 777x647)
777x647
Так. Возникла проблем по этому вопросу >>645349 указывающие друг на друга ноды устраивают циклический вызов друг друга и весело переполняют стек. Я уже и так думал и эдак, туплю, не могу найти приемлемого решения.
Код теперь выглядит так. Я убрал все велосипеды и задействовал встроенный механизм из ветки Control. Обошлось без самодельных классов вообще. Однако о циклический вызов таки споткнулся. Мне надо как-то ограничить перебор ссылочных списков по направлениям, но перебранные мною способы не помогают этого добиться. Вводил флаги. Добавлял состояния. Ничего не помогает. Либо не работает перебор, либо при циклическом вызове флаги сами меняются и происходит опять переполнение стека.
Примерное развитие моей мысли таково:
1. Как-то отделить первый вызванный свичер от остальных.
2. В первом обработчике отдать команду во все 4 направления.
3. В остальных обработчиках отдавать направления только в противоположном направлении от триггернувшего.
Аноним 27/02/20 Чтв 22:56:53 645435114
>>645421
чего вообще хочешь добиться?
Аноним 27/02/20 Чтв 23:00:40 645439115
>>645435
Пазл из взаимосвязанных ключей, которые могут переключаться группами и по отдельности. Распространённая штука во множестве игор. Интересно решить именно так, через ссылочный список из соседних элементов. Если ничего не выйдет сделаю по старинке - массивом и набором правил.
Аноним 27/02/20 Чтв 23:39:29 645443116
>>645439
сделай два метода - просто переключение и переключение по нажатию. То что по нажатию - вызывает простое переключение как у нажатого так и у соседей. Метод простого переключения ничего не знает о соседях.. и замени pressed = !pressed на вызов метода

просто есть вероятность что при такой манипуляции годо генерит сигнал и у тебя по нажатию преключаются соседи, которые начинают переключать соседей и так до бесконечности..
29/02/20 Суб 18:27:05 645666117
Годот выдаёт ошибку что не находит пространство имён godot. Что не так?
Штатный телепат Аноним 29/02/20 Суб 18:29:25 645667118
>>645666
Время переустанавливать шындовс!
29/02/20 Суб 18:31:05 645668119
>>645667
Самое время. Но это же не исправит ошибку
Аноним 29/02/20 Суб 18:37:08 645669120
>>645666
Черт, что ты там шатаешь.
29/02/20 Суб 18:40:05 645671121
2323.JPG (36Кб, 1343x708)
1343x708
>>645666
н-н-ничего( Я просто установил годот. Он начал выдавать ошибку что нет билдера С# какого то. Я же не глупый, зашёл на офф сайт, скачал билдер какой то. Всё заработало, но теперь выдаёт ошибку что ему не известно пространство имён godot
Аноним 29/02/20 Суб 19:07:45 645675122
>>645671
УМВР. Внимательно доустанови чего не хватает.
Также рекомендую научиться гуглить https://github.com/godotengine/godot/issues/19060
У нас тред не совсем тред техподдержки, скорее тред обмена опытом.
Аноним 29/02/20 Суб 19:11:57 645677123
>>645675
Спасибо большое. Знаю что не тред тех поддежки, просто подзаколебало гуглить
Аноним 29/02/20 Суб 19:15:29 645678124
>>645677
Просто задавая такие вопросы здесь, отдавай себе отчёт, что в треде может не быть людей, способных ответить оперативно, день или два. За это время можно горы сайтов в гугле перелопатить. Ну и инглиш. Даже не пытайся вкатываться в геймдев без минимального знания.
Аноним 29/02/20 Суб 19:33:31 645681125
>>645671
Там надо Visual Studio или VS Build Tools, + .NET Framework 4.5. Плюс Mono 5.18 который он вроде бы ставит сам.
Аноним 02/03/20 Пнд 20:45:32 646103126
Как правильно грузить опенворлд, чтоб не тормозило?
Я для себя наметил такие наметки:
1. Основой сцены является т.н. distant land - огромный низкополигональный террейн 8х8 километров (8Кх8К движковых юнитов) с мыльнейшей текстурой травы и гор, без нормалмапы. По этому террейну расставлены низкополигональные деревья, горы, камни.
2. Вся эта структура видна только издалека, при приближении к любой её части она будет заполняться автоподгружаемыми чанками с высоким левелом детализации.
3. Каждый чанк имеет фиксированный размер. Он имеет в себе скрипты и всё интерактивное наполнение. И здесь главный вопрос, как лучше построить политику компоновки:
3.1. Как в ГТА - Чанки имеют размер 1х1 юнит (метр), грузятся быстро целыми пачками по мере приближения к ним, причём, когда ты быстро летишь на машине, они пропускаются из загрузки, что экономит ресурсы пеки.
3.2. Как в Скайриме - Чанки (ячейки) это логически цельные локации разных размеров. Интерьерные локации грузятся путём предзагрузки через загрузочный экран. Экстерьерные подгружаются автоматически при приближении и внимательный игрок может поймать их на этом, когда горы поблизости резко обрастают деталями.
4. Динамические объекты живут как формулы мировой логики (логики игрового мира) и наполняются телами в виде моделей при приближении игрока. Материализовавшиеся модели получают от мировой логики инфу, что они делают в данный момент, на этапе материализации. Чтоб ранее убитые враги не падали замертво на глазах кекающего от такой хуйни игрока, а чтоб материализовывались сразу мёртвыми.

Дополняйте поправляйте. И примерчиками кода порадуйте.
Аноним 03/03/20 Втр 11:27:26 646173127
>>645443
Сделол. Было сложно, но я нагородил велосипед из байтоёбства вперемешку со строкоёбством.
Только я сделал несколько иначе. Я в упор не нашёл в документации корректно работающего поля у потомков Control отвечающего за хранение состояния "нажатости". Фокус контролы самовольно передают друг другу. Состояние графической "продавленности" тоже передают. Поэтому пришлось добавить в метаданные кнопкам велосипедное поле, хранящее всё что мне нужно - набор флагов направлений. После чего пришлось подписать все кнопки не на один сигнал, а на целых три: button_down задаёт флаг из всех направлений, button_up снимает все флаги, pressed работает исходя из флага в данный момент, если флагов нет - ничего не делает, если флаги все - обходит всех имеющихся соседей, соседям слева устанавливает флаг "влево", справа - вправо, сверху - вверх, снизу - вниз, если есть только определенный набор флагов, обходит только эти указанные направления. Таким образом я исключил циклический вызов и кодом в 90 строк делаю то же самое, что на массиве я же сделал за 30 строк. Но теперь, оперируя простановкой соседей контролам, я могу гибко менять правила обхода контролов. Что для варианта с массивом потребовало бы другого велосипеда с правилами обхода.
> и замени pressed = !pressed на вызов метода
> просто есть вероятность что при такой манипуляции годо генерит сигнал и у тебя по нажатию преключаются соседи
Не, мне того и надо, чтобы присвоением значения дёргались сигналы.
Аноним 03/03/20 Втр 11:45:33 646176128
1583225132814.png (49Кб, 560x399)
560x399
1583225133092.png (70Кб, 786x399)
786x399
1583225133239.png (81Кб, 883x461)
883x461
>>646173
Код вдогонку. Может кому интересно будет.
Мелкие пояснения:
1. Учусь работать с битовыми масками. Пора бы уж. 2020 год! Число & Маска == Маска - возвратит тру, если в числе есть указанные в маске биты.
2. Очень удобно константы направлений пошли как ключи для словаря соседей (nb).
3. Принцип метаданных оказался очень удобен для расширения функционала объектов. Даже наследование не нужно. Но насколько это отличается по скорости от поиска метода в классе?
Аноним 03/03/20 Втр 12:00:20 646180129
1583226020047.png (73Кб, 789x422)
789x422
>>646176
Хех. Запостил код и сразу же обнаружил критическую ошибку. При простом задании правил обработки соседей будет обработан только первый обнаруженный сосед. Так как иф со всеми элифами - это один оператор. Быстрофикс.
Аноним 03/03/20 Втр 13:17:24 646185130
>>646180
Что-то мне подсказывает, что первый иф вообще лишний. Но проверить пока что не смогу. От компа ушёл.
Аноним 04/03/20 Срд 11:52:02 646494131
1583311921863.png (31Кб, 793x161)
793x161
>>646185
Таки да. Код ужался вот так:
Аноним 04/03/20 Срд 11:55:47 646496132
1583312147103.png (75Кб, 778x541)
778x541
Просто оставлю это здесь. Вдруг кому-то понадобится.
Аноним 10/03/20 Втр 10:02:38 647765133
Правильно ли я понимаю, что галка Local to scene фактически включает мне инстансинг материала?
Аноним 11/03/20 Срд 23:47:23 648320134
>>647765
Правильно понимаешь.
Аноним 12/03/20 Чтв 11:36:16 648397135
Тут кто-нибудь пилит что-нибудь на нетив/нетив биндах?
Аноним 12/03/20 Чтв 11:41:35 648399136
>>648397
Я хотел запилить, но ниасиливаю.
Аноним 12/03/20 Чтв 11:47:42 648406137
>>648397
Я прям в движке на плюсах писал. Но в результате время линковки оказалось долгим, так что я перешел просто на гдскрипт
Аноним 12/03/20 Чтв 11:50:28 648410138
>>648406
Ну так правильно. Официально рекомендовано писать модули, линковать их один раз, и дальше работать с ними через скрипт.
Аноним 12/03/20 Чтв 11:55:08 648414139
>>648410
Вообще я хочу освоить "нейтивскрипт" - традиционные динамические библиотеки. Но ниасиливаю. Раньше, в дельфи это как-то всё намного проще было.
А так для меня этот вариант самый удобный. Движок пересобирать не надо. Пересобираешь только библиотеки свои. Распространяешь вместе с конечной игрой.
Аноним 12/03/20 Чтв 11:56:47 648416140
>>648410
То есть всю игру чисто на нетив никто не пишет?
Аноним 12/03/20 Чтв 12:01:02 648419141
>>648410
Сама игра спокойно запихивается в модуль. Плюс в том, что нейтив либу нельзя подключить к html экспорту, а модуль можно.
Аноним 12/03/20 Чтв 22:13:23 648605142
Господи, вы только поглядите, какие навигационные полигоны красивые!
Построение маршрута одной функцией!
https://www.youtube.com/watch?v=KU1PslMiZ98
Аноним 14/03/20 Суб 21:25:00 649038143
1584210299881.png (39Кб, 626x274)
626x274
Олдовый стайл.
Аноним 14/03/20 Суб 21:30:58 649039144
Разрабы годота платят создающим игры на их движке как фалько? По сути платить не придется
(Автор этого поста был предупрежден.)
Аноним 18/03/20 Срд 00:26:29 649705145
Курс создания игор в стиле первой плойки. От одного из авторов годота, Мизизиза.
https://youtu.be/azH4LD6lMpo
Аноним 18/03/20 Срд 17:41:31 649885146
Аноним 18/03/20 Срд 22:10:01 649948147
b.jpg (257Кб, 1485x868)
1485x868
>>649705
За 800р научат делать модельки в из кубов в стиле гнома. Это же уровень бесплатных туториалов для новичков.
Аноним 18/03/20 Срд 22:33:50 649957148
>>649948
Научу тому же самому бесплатно ИТТ.
Аноним 19/03/20 Чтв 07:33:55 649994149
>>649985
Хреновая (очень) производительность с тайлмапами на чем-либо отличном от PC.
Аноним 19/03/20 Чтв 08:30:00 649995150
Аноним 19/03/20 Чтв 12:54:14 650028151
>>649957
Да тут каждый второй так умеет делать, в чем смысол
Аноним 19/03/20 Чтв 17:39:41 650070152
Аноним 19/03/20 Чтв 22:01:32 650108153
>>650028
> в чем смысол
В обмене опытом.
Аноним 19/03/20 Чтв 23:34:03 650117154
1584650041971.png (117Кб, 771x820)
771x820
>>649038
Нелехко игоры кодировать!
Аноним 20/03/20 Птн 13:22:58 650167155
>>643188 (OP)
Как импортировать GLTF2/0 в MeshInstance?
Аноним 20/03/20 Птн 13:31:41 650168156
>>643188 (OP)
Бля буду, баг нашёл. При открытом микшере громкости на переднем плане фпс в редакторе отпускается до 10 кадров в секунду на 1080Ti.
Аноним 20/03/20 Птн 13:34:30 650169157
>>650168
В редакторе сниженный фпс, by design.
Аноним 20/03/20 Птн 13:43:18 650172158
>>650167
Напрямую не нашел.
Либо импортишь как obj и выбираешь во вкладке Import - OBJ as Mesh
Либо как gltf, потом открываешь ее Open Anyway, выбираешь свой меш, и делаешь ему Save as
Аноним 20/03/20 Птн 14:02:23 650174159
1584702067222.mp4 (7633Кб, 800x600, 00:00:20)
800x600
Экспериментирую с буллетхеллом.
Аноним 20/03/20 Птн 14:46:46 650188160
Кто тут писал, что он не может сделать нормальный фпс контроллер, чтобы как в халве можно было адекватно взаимодействовать с rigidbody? У скамерсофта в начале неплохой отрывок кода, который вроде как исправляет эту проблему.
https://youtu.be/vVe_DsiWNOI
Аноним 20/03/20 Птн 14:57:34 650193161
1584705394228.mp4 (15203Кб, 852x480, 00:00:10)
852x480
>>650188
> вроде как исправляет эту проблему
Эта проблема исправлена версией 3.2, заслуги мобилкодела-скамера здесь нет.
Аноним 20/03/20 Птн 15:40:45 650210162
Аноним 20/03/20 Птн 15:41:45 650212163
>>643188 (OP)
Как правильно настроить вес rigidbody?
У меня предмет одинаково легкий при весе 300 и 30000
Аноним 20/03/20 Птн 16:05:12 650218164
>>650210
Вообще, как сказать. Я делаю прямо на канве func _draw(): draw_circle(Vector2.ZERO, diameter, color) технически это создаёт спрайт внутри движка. На моём уровне спрайта нет, а кинематик-пулька рисует сама себя.
>>650212
Одинаково лёгкие они у тебя, когда их кинематик-персонаж толкает, да? Внимательно изучи документацию по move_and_slide. Там есть один интересный параметр по умолчанию: бесконечная инерция.
Аноним 20/03/20 Птн 18:02:59 650232165
>>650174
На спрайтах не взлетит, надо смотреть в сторону multimesh или частиц а то и шейдеров, физику тоже скорее всего надо выбрасывать и писать свою на distance squared.
Аноним 20/03/20 Птн 18:15:59 650234166
1584717266021.mp4 (9747Кб, 1024x600, 00:00:23)
1024x600
>>650232
Тут даже не в спрайтах дело, я упёрся в производительность на количестве объектов. Даже если у них нет визуала, они всё равно просаживают фпс.
Про мультимешь знаю. Но мне-то не только визуал нужен, а детект коллизий. Сейчас пытаюсь реализовать такую логику:
Есть спавнер пуль. Он создаёт вокруг себя Area2D, которая детектирует координаты тел, находящихся в ней. Далее частицы летят, спавнер проверяет совпадение координат детектированных тел и пулек. Таким образом пульки отрисовываются одной функцией и для них не нужны тысячи объектов. Будем посмотреть, что получится.
Аноним 20/03/20 Птн 18:28:03 650235167
>>650234
Подозреваю что любые Area будет вносить оверхед, тебе надо просто поверять по формуле, что-то типа (x-px)✱(x-px) + (y-py)✱(y-py) < radius✱radius
Аноним 20/03/20 Птн 18:43:22 650238168
1584719001996.png (5Кб, 509x214)
509x214
>>650235
И действительно. Накладывающиеся друг на друга эреи создают пикрелейтед. Пойду изучать формулу.
Аноним 20/03/20 Птн 19:58:13 650246169
image.png (34Кб, 762x593)
762x593
>>650218
>draw_circle(Vector2.ZERO, diameter, color)
Аж вспомнились уроки паскаля и си в моей школе, ухх какие kerbal space program уровня /б/ мы с помощью примитивов и графиков делали
Аноним 20/03/20 Птн 20:01:03 650247170
>>650218
>бесконечная инерция
Там же только выбор между отключением функции толкания вообще, не?
Аноним 20/03/20 Птн 20:02:06 650248171
1520187396951.jpg (64Кб, 1184x732)
1184x732
>>650238
Расстояние между двумя точками равно диагонали треугольника на координатной сетке (одна сторона это разница координат по x, вторая по y)
Это расстояние сравнивают с радиусом (или суммой радиусов если у тебя игрок тоже круг, а не точка)
Очевидно, что если расстояние меньше радиуса, то круги пересекаются.
Формула диагонали d = sqrt(a2+b2) по теореме Пифагора
Мы проверяем d < r
Но поскольку корень дорогая операция, в движках оперируют squared значениями
d2 < r2
Таким образом в левой части просто не извлекают корень, а в правой, если возможно, используют константу. Например, если размер пули не меняется.
Аноним 20/03/20 Птн 20:07:38 650250172
>>650246
Ну дак! Яж и ностальгирую таким образом по старым добрым временам. Отыскиваю вот такие пасхалки от Хуана, который тоже их заложил, ностальгируя по старым временам.
>>650247
Ну дак! Либо стул с инерцией, либо стул с коллизиями. Любое упрощение в главном является усложнением в мелочах. Кинематик боди с его простыми функциями движения означает, что всю физику тебе придётся запиливать самому.
>>650248
Слава Хуану, скваред предусмотрительно вынесен в интерфейс и выполняется в скомпилированных потрохах движка на си++.
Аноним 21/03/20 Суб 22:38:45 650401173
1584819525050.png (7Кб, 218x196)
218x196
Блять, я такого говна накодил прошлой осенью, пиздец!
Проще всё заново переписать.
И главное, все мы знаем знаменитую пословицу, что когда возвращаешься к коду, который написан давно, то ничего не понятно. Мне-то понятно, как там и что. Но оно так мудацки написано, что у меня фейспалм с прошлогоднего себя. Например, была задача с компоновкой графического интерфейса. Я нахуярил CanvasLayer в который положил несколько Control, пикрелейтед. Потом прилепил к нему скрипт и в нём хуярил логику для всех ветвей этой сцены. Потом я сделал ветви отдельными сценами, но скрипт переделывать мне было лень и я продолжил хуярить говнокод туда. Результат немного предсказуем - глючная каша.
Сейчас сижу, сдерживая дым из горящего пердака копипащу в отдельные скрипты подсцен фрагменты оригинального скрипта, чтобы инкапсулировать поведение каждой субсцены.
Аноним 23/03/20 Пнд 21:24:26 650779174
как парсануть джсон?
Аноним 23/03/20 Пнд 21:32:13 650781175
>>650779
Ты серьёзно такой немощный?
parse_json()
Аноним 24/03/20 Втр 01:12:03 650814176
как заставить спрайт смотреть в ту сторону, куда направлен вектор? пилю топдаун, довольно важно
Аноним 24/03/20 Втр 01:20:36 650815177
>>650814
нашёл
$имяспрайта.rotation = velocity.angle()
Аноним 24/03/20 Втр 05:41:15 650826178
изображение.png (131Кб, 768x392)
768x392
Есть способ сделать тени короче? Маску там наложить какую-нибудь, скрипт, не?
Аноним 24/03/20 Втр 08:36:13 650833179
>>650826
Спрайт света меньше сделать, например.
Аноним 24/03/20 Втр 08:52:29 650834180
>>650833
Но это же совсем не то. Меня интересует именно уменьшение длины тени, чтоб она выглядела так, будто её сам объект отбрасывает от источника света, который находится где-то сверху, а не на уровне ног.
Аноним 24/03/20 Втр 12:14:40 650853181
>>650834
Это скорее всего тебе придется на красные ноды перейти с синих. ЕВПОЧЯ.
Аноним 24/03/20 Втр 15:36:25 650874182
1585053384279.png (95Кб, 942x674)
942x674
Посаны, велосипед или нет?
Ткните носом в АПИ, если есть, пока я не написал ещё сотню строк кода.
Аноним 24/03/20 Втр 16:05:08 650883183
1585055106995.png (108Кб, 677x797)
677x797
1585055107144.png (35Кб, 775x271)
775x271
1585055107168.png (3Кб, 268x116)
268x116
>>650874
А используется это вот так:
Аноним 24/03/20 Втр 16:29:16 650886184
Аноним 24/03/20 Втр 16:54:33 650893185
1585058072891.png (45Кб, 751x402)
751x402
>>650883
Как будто на 20 лет назад вернулся, во времена старого доброго дельфи!
Двоеточие-равно сильно добавляет атмосферы.
Аноним 24/03/20 Втр 17:25:24 650902186
>>650886
Оба варианта вполне подходят. Придётся с шейдерами пердолиться?
Аноним 24/03/20 Втр 17:29:34 650904187
>>650902
> Придётся с шейдерами пердолиться?
Шейдеры не так страшны, как ты их себе малюешь. Стоит освоить шейдеры и всё остальное отбросишь за ненадобностью и тормознутостью.
Аноним 24/03/20 Втр 17:30:09 650905188
>>650902
Оба варианта с ссылками на исходники, я сам 2д не занимаюсь. В первом, вроде бы нет шейдера, просто полигон рисуется дублированно несколько раз разными градациями яркости. Но и выглядит похуже. Второй с шейдером.
Аноним 26/03/20 Чтв 12:24:43 651196189
Всем привет. Как Шейдеры нормально использовать на все элементы, а не только на 1? Когда делаю color-rect сверху, чтобы он что-то сделал со screen_texture выдает ошибку. 2D. Да и работать с полной screen_texture не удобно, хочу ограниченную рамку и менять все что под ней относительно этой рамки.
Аноним 26/03/20 Чтв 15:45:29 651240190
Аноним 26/03/20 Чтв 15:48:52 651244191
>>651196
Или нет, падажжи. Тебя хуй поймёшь. Может имеется ввиду, что ограничить отрисовук рамкой? Тогда ClipContent
Аноним 26/03/20 Чтв 21:52:54 651332192
Аноним 26/03/20 Чтв 22:55:20 651346193
1585252517882.png (273Кб, 855x571)
855x571
Аноним 27/03/20 Птн 06:20:42 651374194
>>643188 (OP)
Есть какой-то способ, как ускорить/оптимизировать сам Godot? У меня даже на зионе с 8 гб оперативы он умудряется тормозить. Сомневаюсь, что можно делать что-то сложнее хеллоуворлда с такими лагами. Я, конечно, понимаю, что движок целиком в одном exe под 50 метров, вряд ли из него что-то можно выкинуть, но ведь исходники открытые, должен быть способ перекомпилировать в облегченном режиме...

А ещё бы интерфейс по-проще, вместо "а-ля Блендер", но это неосуществимые мечты
Аноним 27/03/20 Птн 08:31:44 651380195
>>651374
Время переустанавливать шындовс. Или что там у тебя. Потому что кроме тебя на тормоза редактора никто не жалуется.
Аноним 27/03/20 Птн 09:36:09 651383196
1585290968415.png (56Кб, 463x379)
463x379
1585290968835.png (11Кб, 488x214)
488x214
>>651380
Ничо не тормозит на вот таком конфиге.
Аноним 27/03/20 Птн 12:12:34 651400197
>>651374
Пиши конкретику, тут вообще не ясно что именно у тебя тормозит. У меня на двух ядрах и 4 гб не тормозит, если не использовать еба постпроцессинг. Какая у тебя видеокарта? Возможно в ней затык.
У меня была история с тормозами когда я добавил ноду с ошибкой. Не помню, в чем там была причина, то ли моделька была неправильная, то ли скрипт, в результате в лог сыпалось много ошибок, и из за этого сцена запускалась в 10 раз дольше. После удаления ноды и добавления заново все исправилось.
Аноним 27/03/20 Птн 13:24:58 651411198
>>651244
Нет. Мне надо взять кусок экрана и размазать его со всеми элементами на нем. Но мне выдает ошибку буфера. Я ставлю copybuffer снизу, но мне все равно выдает ошибку и в игре все что было с шейдером черное. Я так понял из-за вечного шейдерного цикла. Чертов SCREEN_TEXTURE;
Аноним 27/03/20 Птн 14:11:25 651417199
>>651380 >>651400
Походу проблема была в старой версии, щас скачал актуальную с сайта и вроде не лагает. Раньше прям даже главное меню сильно лагало, установить и запустить пример платформера - боль.
Аноним 27/03/20 Птн 16:12:57 651442200
>>643188 (OP)
Что ж, пришло время задавать очень глупые вопросы.
Статус: Новичок.
Что за управление в Godot ?
ПКМ - Вращение сцены. А Как двигаться ?
Аноним 27/03/20 Птн 16:22:20 651444201
>>651442
Управление в 3д редакторе:
Пр. кнопка мыши - вращать камерой
Ср. кнопка мыши - вращать вокруг выбранного объекта
Шифт + Ср. кнопка мыши - перетаскивание камеры редактора
Пр. кнопка мыши + WASD - движение как в шутере
Shift+F вкл/ввкл режим WASD
F - навести камеру на выбранный объект.
Аноним 27/03/20 Птн 19:21:43 651467202
image.png (2313Кб, 1920x1080)
1920x1080
Хочу сделать игру типа Obsurity Huper light Drifter.
Что лучше выбрать, Годот или Гейммейкер?
Точно знаю, что гейммейкер подойдёт, ведь оригинал на нём и сделан, но это вроде очень ограниченный движок, а Годот позиционируется как что-то уровня Юнити, но без тормозов.
Может ли Годот в такое 2Д и есть ли тут какие-то подводные камни?
Просо если изучать с 0, то лучше уж что-то более продвинутое и мощное.

Не срача ради. Не надо сравнивать движки, просто ответе на вопрос, будет ли для этой цели Годот таким же подходящим как гейммейкер и есть ли у него какие-то плюсы в этом плане?
Аноним 27/03/20 Птн 19:28:00 651468203
>>651467
Брать 3д движок для 2д игры и рассчитывать на то, что "будет быстрее"? Ну такое.

В любом случае результат зависит только от тебя. Движок за тебя игру не сделает.
Аноним 27/03/20 Птн 19:44:57 651469204
>>651467
>Годот позиционируется как что-то уровня Юнити, но без тормозов.
Кем? Где?
>Не срача ради. Не надо сравнивать движки, просто ответе на вопрос, будет ли для этой цели Годот таким же подходящим как гейммейкер
Да, конечно.
>Может ли Годот в такое 2Д и есть ли тут какие-то подводные камни?
Есть, кое что придется оптимизировать самому.
Аноним 27/03/20 Птн 19:47:16 651470205
>>651411
Ты прав, что-то странное, то же самое. Попробую разобраться.
Аноним 27/03/20 Птн 20:00:44 651479206
>>651469
>Годот позиционируется как что-то уровня Юнити, но без тормозов.
>Кем? Где?
У него в классе. А может старшики из 5б просветили.
Аноним 27/03/20 Птн 20:19:53 651487207
Аноним 28/03/20 Суб 20:20:13 651744208
Кто делал под андроид/ios, подскажите какой там минимальный размер apk файла с одним движком выходит.
Аноним 28/03/20 Суб 20:56:24 651761209
1431853130061.png (42Кб, 381x516)
381x516
>>651744
Если заморачиваться то 6 MB.
Аноним 28/03/20 Суб 20:59:15 651764210
g.png (2Кб, 496x37)
496x37
>>651761
А что примерно и где настраивается для этого? А то сейчас в apk засовывается чудо таких размеров.
Аноним 28/03/20 Суб 21:02:16 651767211
>>651764
А ты для одной архитектуры экспортишь? Armeabi-v 7a либо Arm 64-v 8a
Аноним 28/03/20 Суб 21:05:12 651768212
>>651764
Вот мой батник сборки

call d:\python36\Scripts\scons.bat p=android -j2 verbose=true tools=no target=release_debug ndk_platform=android-21 optimize=speed tools=no use_lto=no deprecated=no xaudio2=no disable_3d=yes disable_advanced_gui=yes no_editor_splash=yes builtin_bullet=no builtin_certs=no builtin_enet=no builtin_libtheora=no builtin_libvorbis=no builtin_libvpx=no builtin_libwebp=no builtin_libwebsockets=no builtin_mbedtls=no builtin_miniupnpc=no builtin_opus=no builtin_pcre2=no builtin_recast=no builtin_squish=no builtin_thekla_atlas=no builtin_xatlas=no debug_symbols=no separate_debug_symbols=no android_stl=no module_bmp_enabled=no module_bullet_enabled=no module_csg_enabled=no module_cvtt_enabled=no module_dds_enabled=no module_enet_enabled=no module_etc_enabled=no module_gdnative_enabled=no module_gridmap_enabled=no module_hdr_enabled=no module_jpg_enabled=no module_mbedtls_enabled=no module_mobile_vr_enabled=no module_mono_enabled=no module_opensimplex_enabled=no module_opus_enabled=no module_pvr_enabled=no module_recast_enabled=no module_regex_enabled=no module_squish_enabled=no module_stb_vorbis_enabled=no module_svg_enabled=no module_tga_enabled=no module_thekla_unwrap_enabled=no module_theora_enabled=no module_tinyexr_enabled=no module_upnp_enabled=no module_visual_script_enabled=no module_vorbis_enabled=no module_webm_enabled=no module_webp_enabled=no module_websocket_enabled=no module_xatlas_unwrap_enabled=no config=force

Плюс до сборки у меня накатываются

git fetch origin pull/35957/head:batch-2d
git cherry-pick --strategy-option=theirs d04cd4a
git fetch origin pull/36065/head:camera2d_helper_editor_only
git cherry-pick --strategy-option=theirs 69603e2

Плюс можно руками выкинуть GodotPaymentV3.java если не пользуешься.
Аноним 28/03/20 Суб 21:07:52 651770213
>>651768
Да, естественно это без 3d, и без rich texteditor ну мало ли не очевидно
Аноним 28/03/20 Суб 21:12:50 651771214
>>651767
ну конкретно это открыта для одной, а так делал дефолтную под две, хроме x86

>>651768
это надо движок пересобрать сам?
Аноним 28/03/20 Суб 21:21:48 651772215
1501980652152.png (7Кб, 303x130)
303x130
>>651771
>так делал дефолтную под две
Это удваивает размер сходу. А в плеймаркете, вроде, можно по отдельности заливать апк под каждую архитектуру.
>это надо движок пересобрать сам?
Да.
Аноним 28/03/20 Суб 21:24:43 651773216
>>651772
да сборки под каждую понятно, что увеличивают на количество сборок в одном пакете, просто сама библиотека движка на 27 мб впечатлила
спасибо, буду разбираться
Аноним 28/03/20 Суб 21:26:54 651775217
>>651773
На всякий случай уточню, ты же не debug экспортил, а release?
Аноним 28/03/20 Суб 21:35:48 651776218
>>651775
Как было дефолтное при установке, ничего не менял.
Аноним 28/03/20 Суб 21:40:20 651777219
1502401344928.png (59Кб, 887x1003)
887x1003
>>651776
Вот эта галочка, возможно если ты ее уберешь, тебе этого хватит.
Аноним 28/03/20 Суб 21:48:19 651779220
Как правильно пользоваться Area? Я правильно понимаю, что Area можно использовать как зону-триггер? Вот с RayCast было несложно разобраться (у него много параметров, функций, etc), а назначение Area не ясно.
Аноним 28/03/20 Суб 21:53:00 651781221
>>651779
>Area можно использовать как зону-триггер?
Да, можно. Она посылает сигналы, если в нее вошла/вышла другая зона, вошло/вышло Kinematic/Rigid/Static Body. Можно вручную вызывать функции, которые перечисляют с какими area или body есть пересечение. Еще там можно задавать свою гравитацию и параметры звука, но с этим я пока не знаком.
Аноним 29/03/20 Вск 00:32:41 651818222
изображение.png (12Кб, 225x300)
225x300
Просмотрел по диагонали это: https://godotengine.org/article/optional-typing-gdscript
>Jul 22, 2018
>...
>Future
>New instructions for typed code to allow faster execution. This includes avoiding the Variant evaluator and using typed arrays as well.
Я так и не понял, есть в Годо типизированные массивы или нет?
Если есть, как они правильно объявляются? Без типа у меня так:
>export var collection = []
Но тогда при задании значений массива через GUI приходится для каждой (!) ячейки указывать тип из большого списка типов. Я задолбался даже с 6-ю ячейками. Есть какой-то способ указать редактору, что я планирую заполнять массив данными одного типа?

И какой извращенец придумал хранить в массивах variant'ы? Это же противоречит самой сути массива, предназначение которого - однородные данные...
Аноним 29/03/20 Вск 00:49:36 651820223
>>651818
Сам спросил @ сам ответил:
>Type hints can't be used with arrays. The Array container in Godot is a variant container. If you have a particular need for a single-typed array, there are the Pool*Array types.
https://godotengine.org/qa/43783/static-typing-of-arrays-syntax
Короче, всё через жопу. Ну, хотя бы для строк есть PoolStringArray, и то ладно...
Аноним 29/03/20 Вск 08:11:50 651854224
>>651851
вот уж сисярп там точно не нужен, если надо скрипты, то надо брать что-то нормальное интерпретируемое вроде Lua
Аноним 29/03/20 Вск 11:17:22 651868225
>>651820
Вроде в 4.0 что-то переделают в этом плане, и всякие Pool*Array тоже заменят на другое.
Аноним 29/03/20 Вск 11:19:42 651869226
>>651868
Ну там собственно сделать С API, дальше сами желающие будут пилить биндинги под нужные им языки.
Аноним 29/03/20 Вск 12:58:23 651875227
>>651854
> надо брать что-то нормальное интерпретируемое вроде Lua
ГДскрипт и есть потомок луа.
Аноним 29/03/20 Вск 13:10:19 651876228
>>651868
>в 4.0 что-то переделают
Чорт, опять новая мажорная версия?
Помнится, когда я щупал 2.x, узнал, что скоро будет 3.0, в которой много чего поменяют, и в итоге забил на Годо более чем на год, ожидая выхода этой самой 3.0, чтобы не углубляться в заведомо устаревшую версию...

>всякие Pool*Array тоже заменят на другое
Хорошо бы сделали как в Pascal:
var A: array [n .. m] of String; // массив с фиксированными границами
var A: array of String; // динамический массив, можно изменять длину

Вот именно второй вариант я ожидал больше всего.
Если в GDScript есть Variant, то имеющиеся сейчас массивы должны описываться так:
var A: array of Variant
Можно было сделать этот тип массива типом по умолчанию, но уж точно не делать его единственным. -_-
Аноним 29/03/20 Вск 13:12:53 651877229
1441481597276.jpg (7Кб, 184x184)
184x184
>>651875
>ГДскрипт и есть потомок луа.
Аноним 29/03/20 Вск 13:41:45 651881230
изображение.png (17Кб, 445x289)
445x289
изображение.png (5Кб, 214x144)
214x144
Задумался тут: если мне нужно сместить точку крепления модели (origin point), я могу это только через дополнительный Spatial сделать, так ведь? Как движок относится к большому числу таких пустышек?

Ещё я такие пустышки использую как точки спавна, и меня беспокоит, должен ли я заменять эту точку на то, что спавнится, или пусть дальше висит... Удобно просто делать сцену дочерней от точки спавна, но я подозреваю, что с большим числом моделей это может сильно повлиять на производительность. Нет?

Вообще, сколько всего объектов (не полигонов, а вот этих сущностей) может держать Godot без просадок производительности?
Аноним 29/03/20 Вск 13:45:05 651884231
>>651877
Код сравни построчно, человек-мем, блеать.
Аноним 29/03/20 Вск 13:49:15 651885232
>>651881
> Как движок относится к большому числу таких пустышек?
Хуёво. Я десятком постов выше экспериментировал с буллетхеллом. Так вот там, если просто спавнить пустышки и добавлять их в дерево, то где-то на 5к штук начинает падать фпс. Экспоненциально. Я там отписался, что из-за спавна Area фпс падает, но потом заменил Area на пустышку, охуел и не стал ничего сообщать.
Аноним 29/03/20 Вск 13:51:56 651887233
>>651884
Это питон, а не луа. Луа это говноподелие без массивов, с индексами начинающимися с 1, и так далее.
Аноним 29/03/20 Вск 13:57:50 651890234
>>651887
> Луа это говноподели
Я не луашизик, срущий своим луа по всем тредам, если чо. Но, справедливости ради, луа при всех своих странностях является одним из быстрых скриптовых языков. И юзается в большом количестве игор. Примеры сам загуглишь.
Аноним 29/03/20 Вск 13:59:00 651891235
>>651890
>является одним из быстрых скриптовых языков.
Только за счет того что в нем очень мало возможностей. А LuaJIT нечестно сравнивать, потому что даже Java обгоняет его в таком случае.
>И юзается в большом количестве игор
В основном доисторических 10+ лет назад.
Аноним 29/03/20 Вск 14:25:14 651894236
>>651891
Ну таки да. Но луашизику хуй чо докажешь. Второй год уже ноет, типа "почему луа не завезли?"
Аноним 29/03/20 Вск 14:40:31 651896237
>>651875
вообще-то питона и далеко не Lua
Аноним 29/03/20 Вск 14:41:05 651897238
>>651894
Пиздец. За 2 года давно сам бы биндинги сделал.
Аноним 29/03/20 Вск 14:42:11 651898239
изображение.png (4Кб, 217x116)
217x116
>>651885
>где-то на 5к штук начинает падать фпс
Ну, это было ожидаемо. Ладно, от части Spatial я могу избавиться (хотя всё равно не ясно, можно ли как-то иначе изменять origin без плясок с бубном). Тогда следующий вопрос: возможно ли "выключать" отдельные ноды из общего дерева, чтобы они временно не тормозили игровой цикл, пока не потребуются? Собирался грубо кодом разрывать связь между предком и потомком, сохраняя потомка в отдельной переменной, чтобы потом возвращать когда понадобится, но мне на глаза постоянно попадается вот эта вкладка "Pause", и мне любопытно. Пауза ведь именно для такой заморозки объектов, которая мне нужна? Или она для чего-то другого? Если я поставлю на паузу дерево из, скажем, сотни веток - они все будут исключены из общего цикла, или будет что-то вроде if not entity.paused then entity.process else continue? В первом случае выигрыш примерно как в моём варианте, во втором всё равно каждый кадр будут лишние операции.
Аноним 29/03/20 Вск 14:42:28 651899240
Аноним 29/03/20 Вск 14:46:34 651900241
>>651898
> возможно ли "выключать" отдельные ноды из общего дерева, чтобы они временно не тормозили игровой цикл, пока не потребуются?
Возможно. Буквально в прошлом треде и начале этого обсуждали такой трюк:
1. Делаешь ноду, не включенную в общее дерево. Она висит в памяти в спящем режиме, у неё и всех её потомков не вызываются колбэки и т.п.
2. Ноды, которые надо выключить, перекидываешь в потомки этой ноды.
3. Ноды, которые надо включить, возвращаешь на свои места в дереве.
4. С помощью этой нехитрой системы можно организовать пул для динамической подгрузки чанков локаций.
Аноним 29/03/20 Вск 14:49:09 651901242
>>651891
Java не обгоняет LuaJIT
нет, его используют и сейчас все так же активно в индустрии, т.к. замены пока не сделали сопоставимой
Аноним 29/03/20 Вск 14:58:03 651902243
>>651901
>Java не обгоняет LuaJIT
В некоторых бенчах обгоняет. Как и питон, и т.д.
> его используют и сейчас
Там где он уже есть в легаси, как например в ГТА потому что он у них там давно.
В новых играх - где?
Аноним 29/03/20 Вск 15:05:45 651907244
>>651902
в новых играх и скриптовые языки-то почти и не используют, т.к. там какой-либо моддинг не предусмотрен
roblox, factorio, don't starve.. почти везде, где есть какие-то моды и не используют свой язык, типа tes
Аноним 29/03/20 Вск 15:10:55 651908245
>>651907
Авторы факторио неоднократно писали что взяли Луа, так что.
Аноним 29/03/20 Вск 15:11:42 651909246
>>651908
Авторы факторио неоднократно писали, что пожалели о том, что взяли Луа
самофикс
Аноним 29/03/20 Вск 15:13:22 651910247
>>651909
Другие не жалели, а roblox с учетом масштаба работы еще и прорабатывали обоснованность выбора каждого из языков.
Аноним 29/03/20 Вск 15:16:08 651911248
Аноним 29/03/20 Вск 15:17:15 651912249
>>651911
Что вперед, ты о чем вообще?
Аноним 29/03/20 Вск 15:19:25 651914250
>>651910
Другие - это ноль, на уровне статистической погрешности. А уеблокс вообще не игра, а какое то кривляние для школьников, похуй.
Аноним 29/03/20 Вск 15:19:57 651915251
>>651912
> Что вперед
>>651911
> Делай игры.
>>651912
> ты о чем вообще?
Делай. Игры.
Аноним 29/03/20 Вск 15:21:16 651916252
>>651915
Так я делаю, к чему вообще это.
Аноним 29/03/20 Вск 15:40:41 651919253
>>651900
О, ну почти именно так я и планировал. Только хотел извлекать одну ноду в переменную целиком, а не поштучно закидывать.

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

Так а для чего режим паузы нодов? Погуглил, жалуются, что паузить можно только всё дерево целиком...
Аноним 29/03/20 Вск 15:43:56 651920254
>>651919
Помещения дома не критичны, на то, что ты их менеджерить будешь и выгружать/загружать скорее больше ресурсов и потратишь. Просто разбивай сам уровень на чанки по какому-то радиусу и сохраняй на диск ненужные, а все их ноды удаляй.
Аноним 29/03/20 Вск 15:45:31 651921255
>>651920
Критичны, окклюжн куллинга то нет.
Аноним 29/03/20 Вск 16:14:39 651927256
>>651920
>Помещения дома не критичны
Только если:
1. В помещениях мало объектов
2. Мало домов с помещениями
я жта хочу, но чтоб в домики заходить можно было

Вопщем, надо просто тесты провести и самому убедиться.
Аноним 29/03/20 Вск 16:49:50 651938257
>>651927
> Вопщем, надо просто тесты провести и самому убедиться.
Святые боги! Адекват в треде!
Аноним 29/03/20 Вск 19:15:27 651998258
изображение.png (30Кб, 1440x900)
1440x900
изображение.png (132Кб, 1440x900)
1440x900
изображение.png (56Кб, 1440x900)
1440x900
изображение.png (183Кб, 1440x900)
1440x900
Продолжение >>651881 >>651898
Короч, если кому-то интересно, я немного поэкспериментировал и пришёл к таким выводам:
- отключение нод работает именно так, как я думал;
- подключение и отключение статикбади происходит мгновенно;
- подключение и отключение динамикбади вызывает фриз игры на секунду.
Похоже, что дело не в количестве нод, а в наличии подвижных объектов. В частности, пробовал наполнять жёлтую комнату как статичными, так и динамичными объектами (те же точки, то же количество) - статичные появляются мгновенно, динамические при появлении и исчезновении вызывают очень неприятную задержку, но после появления ведут себя как обычно (не тормозят).

Ещё заметил момент, важный конкретно для моей игры - если предмет выкатывается из комнаты, он по-прежнему остаётся привязанным к "исчезающим". То есть для игрока предмет на улице, но выходя на улицу предмет исчезает, таким образом становится недосягаемым. Знаю, как это можно исправить, да. Но вот от лага при добавлении/удалении хотелось бы избавиться. Я был бы согласен, если бы объекты появлялись постепенно, если б не вызывали лаг... А, ну, можно попробовать добавлять/удалять не в цикле for, а в _(physics)_process, но сомневаюсь, что получится норм.

Пока что Godot превосходит мои ожидания :D
Аноним 29/03/20 Вск 19:41:11 652005259
>>651998
Думой над архитектурой.
Допустим по сюжету игры планируется появление и исчезновение объектов. Значит ты их все грузишь при загрузке локации, затем те, которых нет для игрока делаешь невидимыми/отключёнными в большом невидимом сундуке под землёй (привет, скайрим).
> Знаю, как это можно исправить, да.
Полагаю ты про parents и owners говоришь сейчас? Если так, то сомнительно использовать механизм овнеров для динамической передачи нод между нодами. Возможно наткнуться на трудноотлавливаемые баги.
Я бы посоветовал делать одну общую ноду для "пропсов", которая по запросу игровой логики выдаёт из своего пула заранее загруженных объектов нужные локациям. Так ты избежишь проблем с
> если предмет выкатывается из комнаты, он по-прежнему остаётся привязанным к "исчезающим"
Чтобы была возможность дизайнить расположение объектов в редакторе, делай объекты-пустышки, которые уничтожают сами себя при загрузке сцены, а на их места ставятся реальные объекты из общей ноды, описанной выше.
Как-то так.
Аноним 30/03/20 Пнд 02:23:20 652083260
изображение.png (434Кб, 1440x900)
1440x900
изображение.png (429Кб, 1440x900)
1440x900
изображение.png (475Кб, 1440x900)
1440x900
изображение.png (656Кб, 1440x900)
1440x900
>>651998
>подключение и отключение динамикбади вызывает фриз игры на секунду.
Короче, я ошибся. DynamicBody вообще не имел отношения к этим фризам.
Лень писать, опишу ситуацию кратко:
- динамические кубики CSGBox лагов не вызывали;
- сферы на скриншоте - CSGSphere с параметрами 24x12;
- снижение CSGSphere 24x12 -> 8x4 снизило нагрузку/лаги;
- 64 головы Suzanne из Blender (по 507 вершин) не тормозят.
Вывод - CSG перед появлением в дереве производит какую-то ресурсоёмкую операцию (пытается произвести слияние, даже если не с кем?), и именно она вызывает тормоза. После удаления из дерева тоже происходит какая-то операция, и снова тормоза. Всё остальное время лагов нет - меш, видимо, кэшируется. С обычными мешами такого нет.

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

>>652005
>Значит ты их все грузишь при загрузке локации
Именно так и делаю.
>отключёнными в большом невидимом сундуке под землёй
Так не пойдёт, Годо работает не так, хранить нужно отдельно от дерева сцены.
Точнее нужно хранить ссылку на вырезанную из общего дерева ветку в отдельной переменной.
>Полагаю ты про parents и owners говоришь сейчас?
Не знаю про owners, но я хотел передавать объект из одной ветки в другую.
>одну общую ноду для "пропсов", которая по запросу игровой логики выдаёт из своего пула заранее загруженных объектов нужные локациям
Несколько раз перечитывал, много думал, но ничего не понял. Грубо говоря, мне нужно передать ветку "предмет" из ноды "квартира" в ноду "улица", потому что нода "квартира" скрывает своё содержимое, когда игрок выходит за пределы квартиры (в целях оптимизации дерева сцены, разумеется). Если так не сделать, то "предмет" исчезнет прямо в руках игрока, когда он перешагнёт порог квартиры/закроет дверь в квартиру снаружи.
>дизайнить расположение объектов в редакторе, делай объекты-пустышки
Я так и сделал, но у меня эти пустышки нужны для спавна рандомных предметов (запилил универсальный скрипт).
>реальные объекты из общей ноды
Эм, а зачем их хранить в общей ноде? У меня они сразу появляются на точках спавна. Когда не нужны - скрываются во внутреннюю переменную скрывающей ноды (все сразу). Проблема в том, что делать общую ноду на всю сцену нерационально, у меня сейчас по сути каждая комната занимается скрытием/отображением предметов (генерация только при запуске сцены).

Вот, для примера, на скриншоте с мартышками 3.7К нод - это улица с многоэтажками, а 12.5К нод-сирот - это внутренности тех комнат, в которых игрока сейчас нет (поэтому они скрыты). Если выйти из комнаты с мартышками, они все будут скрыты. Комната сама принимает решение, когда скрывать (с помощью Area), и сама же хранит все свои внутренности. В данный момент всё это выглядит превосходно, проблема только в том, что предметы комнаты нельзя вынести за пределы комнаты. Хотя, я думаю, можно использовать ту же Area, что следит за игроком, чтобы "выпускать" предметы за пределы комнаты...

Вообще, мне главное придерживаться модульного дизайна, чтобы каждый элемент сцены был максимально независим от других. Иначе не получится так легко собирать рандомную сцену (хотя над алгоритмом сборки я всё ещё думаю). Поэтому, например, каждая комната, являясь отдельным модулем, сама заботится о генерации, отображении и скрытии находящихся в ней предметов. Такую систему легко масштабировать... контролировать, правда, трудно, но с этим я ещё разберусь.
Аноним 30/03/20 Пнд 16:21:01 652128261
>>652083
> Не знаю про owners, но я хотел передавать объект из одной ветки в другую.
Так узнай. https://docs.godotengine.org/en/stable/classes/class_node.html#class-node-property-owner
Это часть механизма загрузки сцен. Её нельзя игнорировать, ибо при сохранении овнера твои ноды выгрузятся со своим овнером, даже если будут у другого парента. А может и не выгрузятся. А может и не сразу, но выгрузятся. В общем - всё проверяй.
> Эм, а зачем их хранить в общей ноде?
> спавна рандомных предметов (запилил универсальный скрипт)
Скрипт наследуется от Node? Вот-вот. По факту общая нода для объектов у тебя уже есть. Только она их не хранит, а спавнит. А теоретически эффективнее делать так: Если объект стал не нужен игроку и скрывается с его глаз, он не уничтожается, а возвращается в пул, где был создан и там, в "большом невидимом сундуке" лежит до тех пор, пока снова не понадобится игроку, после чего ему скрипт-менеджер пула, который нода, назначает новое имя, задаёт новые координаты и закладывает игроку в руки.
Не происходит дорогой операции выделения памяти в куче для нового объекта.
Не происходит дорогой операции выгрузки мусора сборщиком мусора.
Происходят относительно дешёвые операции по изменению координат объектов в пространстве (физический движок) и, возможно их видимости (графический движок).
> главное придерживаться модульного дизайна
Решительно двачую!
Аноним 30/03/20 Пнд 18:58:50 652156262
изображение.png (30Кб, 470x324)
470x324
изображение.png (54Кб, 486x645)
486x645
изображение.png (12Кб, 369x181)
369x181
изображение.png (16Кб, 435x201)
435x201
>>652128
>Это часть механизма загрузки сцен
А, ну про это я уже читал: https://godotengine.org/qa/903/how-to-save-a-scene-at-run-time
Просто речь шла про передачу от родителя к родителю, а owner только к сохранению относится.

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

>относительно дешёвые операции по изменению координат объектов и их видимости
Я бы не сказал, что это дешёвые операции, я попытался расширить зону действия Area комнат на улицу, и заметил, что если игрок триггерит сразу несколько домов по два этажа, происходит небольшой лаг. Хотя, возможно, это опять из-за CSG, только теперь виноваты лестницы (каждая ступенька - CSGBox). Кстати, заодно протестировал удаление/вставку не всей ветки, а по одной ноде за тик физического движка - стало ещё хуже, но скорее всего это из-за CSGBox. Я понимаю, что по-хорошему нужно обычные меши вставить и уже на них тестировать, но т.к. это только тест - мне лень.

Чтобы было понятнее, вот скриншоты моего кода:
1 - "генератор" (заполняет точки спавна рандомными предметами);
2 - "оптимизатор интерьера" (переписывал несколько раз уже);
3 - "глобальный RNG" (хотелось упростить выбор из списка);
4 - "менеджер ресурсов" (должен ускорять генерацию, но сомневаюсь).
Есть некоторые недочёты, но это тест, а не финальная версия)
Аноним 30/03/20 Пнд 19:22:16 652159263
>>652156
> лестницы (каждая ступенька — CSGBox)
Это безумие, анон. Ты настолько ленив, что не можешь открыть блендер и за 3.5 минуты набросать простейшую модель лестницы?
Аноним 30/03/20 Пнд 19:29:54 652160264
>>652156
В конце концов, там есть простые графические примитивы мешей. Они наверняка будут пошустрее CSG.
> вот скриншоты моего кода
Я предпочитаю избавляться от сравнений строк со строками в своём коде. Впрочем, это моё, бумерское. Детская травма. Нынче я понимаю, что строки работают не медленнее числовых типов. Но, тем не менее.
Аноним 30/03/20 Пнд 19:46:52 652165265
>>652159
>Ты настолько ленив, что не можешь открыть блендер
Да.

>Это безумие
https://docs.godotengine.org/en/stable/tutorials/3d/csg_tools.html
>CSG tools can be used for designing all kinds of levels, such as a maze or a city; explore its limitations when designing your game.
Ну вот я и exploring их limitations, пока пытаюсь design что-то вроде city.

Вообще всё началось с "а потянет ли Годо что-то эдакое, если потянет - можно будет думоть дальше".
Потянуть вроде потянул, теперь можно думоть. (думоет)

>>652160
>Я предпочитаю избавляться от сравнений строк со строками в своём коде
Я тоже, но:
- экспортные строки ничем не заменишь (хотя надо посмотреть, есть ли функция length(string) > 0);
- я без понятия, чем отличаются body, кроме name, чтобы понять, которая из них Player;
- загрузка ресурсов идёт по адресу, адрес ничем другим не заменишь.
Я лично сомневаюсь только на счёт name == "Player", но альтернативы пока не вижу (не создавать же отдельный метод it_is_player() и проверять его наличие через has_method()?), да и это сравнение по идее должно тормозить только если в сцене существует множество объектов, чьё имя начинается на "Play...". Если строка начинается с любой буквы кроме "P", она заведомо не равна "Player", и может быть пропущена. Но как именно сравнивает строки Godot - не знаю. Кроме того, эта проверка происходит только на входе/выходе объекта из Area, вряд ли она будет вызываться достаточно часто.

У меня в предыдущей версии "оптимизатора" была функция is_player_indoor, которая перебирала все объекты, с которыми пересекается Area, и вызывалась она в _ready, чтобы проверить, нужно ли скрывать интерьер сразу после запуска. Я понял, что это совершенно лишняя операция, когда попробовал безусловно скрывать интерьер - вокруг игрока он отображается, даже если игрок появляется в комнате при загрузке сцены. С другой стороны, хотелось бы создавать сразу выключенные интерьеры (так можно избавиться от лишнего добавления/удаления в сцену), но я пока не уверен, как лучше это сделать.
Аноним 30/03/20 Пнд 20:19:14 652170266
>>652165
> не создавать же отдельный метод it_is_player() и проверять его наличие через has_method()?
Нет, конечно. Группы же есть (if body is_in_group("string_group_name") эээ, тоже строки, отпадает). Слои коллизий есть (тут соответственно уже можно либо вообще не ловить коллизии ни с кем кроме плеера, стало быть любое боди будет плеер, либо if body.get_collision_layer_bit(N) = M:). Приглашаю в документацию.
Аноним 30/03/20 Пнд 21:53:55 652173267
Аноним 30/03/20 Пнд 22:25:48 652176268
изображение.png (63Кб, 561x519)
561x519
>>652170
>Слои коллизий есть (тут соответственно уже можно либо вообще не ловить коллизии ни с кем кроме плеера
Аааааа, точно, точно. Я многократно натыкался на эту табличку с переключателями слоёв, но думал "ну, это мне не нужно, наверное". Было бы логично настроить детекторы только на игрока...

А вот, кстати, на счёт коллизий и лестниц. Кажется, я когда-то где-то видел, что в играх лестницы физически на самом деле не лестницы вовсе, а наклонные плоскости - в современных играх это имеет смысл или нет? А то я тут починил коллизию персонажа-игрока и вдруг появились проблемы с движением по лестницам: вверх трясёт, вниз прыгает. Если же сделать просто наклонную плоскость, то персонаж съезжает вниз. Контроллер персонажа самодельный, его нужно рефакторить, много мусора... Может, есть какие-то советы (кроме "возьми готовое")? На картинке у меня один луч определяет, находится ли игрок на земле (регулирует гравитацию и способность двигаться и прыгать), другой проверяет, не пытается ли игрок забраться на лестницу (т.к. на лестнице центральный луч зависает над землёй). Так вот движения и прыжки по плоскости и с небольшими выступами происходят нормально, но на более-менее крутой лестнице всё выглядит как-то не очень (после починки коллизии капсулы)...

А ещё я хоть и сделал камеру, которая приближается к игроку, когда с чем-то сталкивается, но она всё равно то в стены проваливается, то трясётся на углах (ну, когда луч прерывается, но не полностью). Чувствую, что ещё долго буду настраивать комфортное поведение камеры, и что делаю что-то не так( У моей камеры есть луч, растянутый между камерой и моделькой игрока, и второй луч, направленный назад. Первый луч приближает камеру, если обзор что-нибудь загораживает, второй луч предотвращает удаление камеры слишком далеко. Хотя, наверное, можно было обойтись одним лучом (надо будет попробовать отодвинуть его чуть назад)... Но вот резкие "вибрации" на углах объектов сильно напрягают. Скажем, в дверном проёме в режиме от третьего лица вообще всё начинает вибрировать, да и просто в помещениях тоже...
Аноним 30/03/20 Пнд 22:27:04 652177269
>>652176
> Если же сделать просто наклонную плоскость, то персонаж съезжает вниз.
Там, вроде, есть параметр угла наклона
Аноним 30/03/20 Пнд 22:28:34 652179270
>>652177
А конкретнее вот это
move_and_slide(... floor_max_angle
is the maximum angle (in radians) where a slope is still considered a floor (or a ceiling), rather than a wall. The default value equals 45 degrees.
Аноним 30/03/20 Пнд 23:09:34 652183271
>>652176
> в современных играх это имеет смысл или нет?
Посмотри стримы по Half-Life: Alyx и сделай выводы: Пройдёт не более полугода и классические игоры уйдут в прошлое. Вангую, к лету китайцы резко опустят ценники на виар-комплекты в ответ на возросший спрос.
А в виаре никакие жульничества не прокатят ибо игроки сразу упрутся в них и высмеют разработчика на форумах. Всё придётся делать по честному: Лестницы со ступенями. Вёдра с вогнутой коллизией. Ноги и руки с кинематикой вместо капсульной коллизии.

Будущее всегда наступает незаметно. И Габен принёс нам будущее в этом марте.
Аноним 30/03/20 Пнд 23:13:11 652186272
>>652176
>второй луч предотвращает удаление камеры слишком далеко
А, он предотвращает отдаление камеры колёсиком мыши, если позади камеры препятствие. Без этой дополнительной проверки камеру можно было задвинуть в стену, после чего она возвращалась назад, и поэтому пришлось сделать отдельный луч (сам по себе он камеру не сдвигает). Уже забывать начал))

>>652179
>move_and_slide(... floor_max_angle
Значение по умолчанию floor_max_angle = 45 градусов. То есть оно и без дополнительных параметров должно считать лестницу полом (или потолком). Я проверил - похоже, этот параметр отвечает только за состояние функций is_on_floor и других, но у меня они всё равно не работают, поэтому я ими не пользуюсь (использую для этого лучи).

Мне, скорее всего, нужно это:
>If stop_on_slope is true, body will not slide on slopes if you include gravity in linear_velocity.
...но я проверил, и как-то не заметил особых отличий.

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

А, вот ещё - мне хотелось добиться возможности прыгать при движении по лестнице, так вот иногда удаётся настроить возможность прыжков, а иногда настройка сбивается. Да и прыжки на лестнице почему-то получаются выше, чем на ровной земле, лол. Надо разбираться...
Аноним 30/03/20 Пнд 23:21:16 652188273
>>652183
Чел, ты несешь хуйню, в виаре одни только жульничества и канают, а твоя хуяликс это по меркам виар вообще ничто, сделанная для габеноутят.
Аноним 30/03/20 Пнд 23:21:29 652189274
>>652186
Старайся делать как можно меньше кода. На любую задачу сначала гугли документацию. А то ты много велосипедов изобретаешь. Для контроля камеры есть нода SpringArm
Аноним 30/03/20 Пнд 23:22:08 652190275
>>652188
Хах, заскринил. Ставки сделаны.
Аноним 30/03/20 Пнд 23:27:22 652197276
>>652186
Вот что, я посмотрел как сделано в каком-то контроллере, и там move_and_slide_with_snap
Работает примерно так - если ты передаешь snap вектор который смотрит вниз, то персонаж "прилипает" к полу. Если надо прыгнуть, передаешь нулевой вектор.
Аноним 30/03/20 Пнд 23:28:54 652199277
>>652190
Скринь, хуле. Чел, я виаром уже пару лет занимаюсь. Там наоборот от реализма отходят в пользу телепортов, чтобы игроков не тошнило, к лоу поли чтобы игроков не укачивало, а та самая аликс приучает игроков что ничего не подвигать кроме того что геймдизайнер разрешил.
Аноним 30/03/20 Пнд 23:31:04 652200278
>>652183
>ибо игроки сразу упрутся в них и высмеют разработчика на форумах
Я пытаюсь сделать игру в первую очередь для себя.

>Всё придётся делать по честному: Лестницы со ступенями
Вот, кстати, уж где-где, а в современных VR-играх смысла в лестницах нет, там ведь игрок тупо телепортируется с места на место. Передвигаться в VR вообще сложно. А ещё я не представляю, как можно играть в VR, если у тебя в комнате и без него развернуться негде...

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

>>652189
>На любую задачу сначала гугли документацию
Так скучно. Я читаю встроенную справку, но остальное пытаюсь сначала сам сделать.

>Для контроля камеры есть нода SpringArm
Написано "для 3 лица". Мой контроллер может переключать между первым и третьим) Но спасибо, посмотрю.

>А то ты много велосипедов изобретаешь
Это у меня по жизни так. Я вообще очень долго не хотел даже пробовать готовые движки.

>>652197
>move_and_slide_with_snap
Заметил эту функцию, когда листал справку, надо будет проверить...
Аноним 30/03/20 Пнд 23:39:25 652203279
>>652199
> а та самая аликс приучает игроков что ничего не подвигать кроме того что геймдизайнер разрешил
Теперь ты хуйню несешь, чел занимающийся виаром, виара не видавший. Не позорься, посмотри, как её стримят хоть. Ясен хуй, сам ты в неё поиграть не сможешь. Гранаты в ведре поносить не сможешь.
Аноним 30/03/20 Пнд 23:43:32 652204280
>>652203
>ведро дали потрогать
>100500 других пропсов не дали
>ТОЛЬКО ВЫИГРАЛИ! ЗАТО КАСКА ЕСТЬ!
Аноним 30/03/20 Пнд 23:51:47 652207281
>>652204
> 100500 других пропсов не дали
Что ж ты за отбитый долбоёб, а? Ясен хуй, сформулировать ты ответ на это не способен. Да и не видел ты, как в алихе можно ящики и бочки таскать руками. Что тебе на форумах написздели, то ты и ретранслируешь. А моменты, когда ты одной рукой лечишься в лечилке, а второй рукой держишь на прицеле угол из-за которого может комбайн выскочить - просто бесценны!
Аноним 31/03/20 Втр 00:03:11 652210282
>>652200
> Вот, кстати, уж где-где, а в современных VR-играх смысла в лестницах нет, там ведь игрок тупо телепортируется с места на место. Передвигаться в VR вообще сложно. А ещё я не представляю, как можно играть в VR, если у тебя в комнате и без него развернуться негде…
1. Телепорты от тошноты - мера временная, потому что гироскопы не поспевают за головой.
2. Двигаться путём прожима аналогового стика на контроллере можно уже сейчас, но из-за 1. у многих возникает морская болезнь.
3. Согласно моему вангованию, эту проблему победят уже в этом году.
4. Раз двигаться можно стиком, от тебя требуется только сидеть во вращающемся кресле.
5. Однако в этом случае ты не сможешь пригибаться и уворачиваться. Так что встал и стой, сцкнх!
6. Согласно моему вангованию, ближе к концу года, возможно в начале следующего, китайцы выкинут на рынок недорогие и функциональные беговые дорожки и в виаре можно будет вообще полноценно бегать, прыгать, перекатываться.
7. Жирные тюлени вроде нас с тобой, несомненно соснут, но рыночек порешает нас, а не зумеров.
8. Так что, да, остаётся только
> сделать игру в первую очередь для себя
Потому что корпорации, по моему вангованию, повторюсь, не позднее, чем за пару лет, ПОЛНОСТЬЮ перепрофилируются на виар.

Всё, нах, можете скринить.

Аноним 31/03/20 Втр 00:09:22 652211283
>>652207
>>652210
Иди обсуждай это в каком нибудь другом треде, годот к концу года вр тянуть все равно не будет еще, там же надо 120 фпс в 2-4К.
Аноним 31/03/20 Втр 01:05:53 652217284
>>652210
>корпорации ПОЛНОСТЬЮ перепрофилируются на виар
Туда им и дорога, у меня их игры даже на диск не помещаются, не говоря уж о запуске, так что вообще без разницы, какими эти игры будут.

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

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

>Двигаться путём прожима аналогового стика на контроллере можно уже сейчас
Тогда чем это отличается от обычной игры? Только углом обзора как в подзорной трубе.

>Телепорты от тошноты
Всегда думал, что телепорты для того, чтобы сидеть/лежать неподвижно, а не топтаться стоя.

>>652211
>там же надо 120 фпс в 2-4К
Ну 120 фпс допустим вытянуть можно с лёгкостью, а 2-4К сделать тупо апскейлом.

Мне больше волнует, почему у меня контроллер камеры при повышении фпс до 700+ начинает замедляться. :C
Аноним 31/03/20 Втр 03:39:38 652225285
>>643188 (OP)
Как видос записать и скинуть? Да, вопрос тупой, в инете 100000 ответов, но я не хочу среди них искать нормальный, куда проще если кто-то поделится проверенным
Аноним 31/03/20 Втр 03:43:29 652226286
>>650834
Добавь больше источников света, типо поставь их 3 рядом, тень не может быть "короче" или "длиннее", тень там где нет света, а заслоненный свет не может взять и появится через 2 метра
Аноним 31/03/20 Втр 04:00:09 652228287
>>652226
Вот зачем писать чушь через неделю, не разбираясь в вопросе, когда уже даже показано как сделать.
Аноним 31/03/20 Втр 04:02:08 652229288
>>652226
> заслоненный свет не может взять и появится через 2 метра
Почему бля?
Аноним 31/03/20 Втр 04:21:27 652231289
>>650826
Возьми фонарик, коробку, и поэксперементируй как надо светить чтобы свет был какой нужно
Аноним 31/03/20 Втр 04:24:31 652232290
>>652229
Потому что свет это частица если она пропала то она не появится, всё ее нет, она умерла нахуй, откуда ей заного взятся то
Аноним 31/03/20 Втр 04:25:29 652233291
>>652228
Только, я вот че-то не нашел ответа на вопрос
Аноним 31/03/20 Втр 04:39:04 652234292
>>652233
Палю ультимативную годноту: делаешь в орто3д, и настраиваешь высоту коробок и ламп как надо
Аноним 31/03/20 Втр 04:41:33 652235293
изображение.png (31Кб, 1086x536)
1086x536
>>652232
>откуда ей заного взятся то
я такое говно ещё в гамаке делал или в камстракте
Аноним 31/03/20 Втр 11:30:15 652254294
изображение.png (23Кб, 629x412)
629x412
>>652226
>тень не может быть "короче" или "длиннее",
Может, зависит от высоты источника света над отбрасывающим тень объектом.
Предлагаю вернуться в 5-й класс и повторить чё вы ты там изучали про свет и тень)))
Ну или хотя бы выходи на улицу почаще, а то ты походу тени только в детстве в играх видел.
Аноним 31/03/20 Втр 11:37:11 652255295
>>652225
Я записываю GeForce Experience-м, одной кнопкой. Если нету, можно OBS-ом. Потом нарезаю в консольке ffmpeg-ом. Иногда Webm-converter for retards.
Аноним 31/03/20 Втр 13:40:01 652272296

короче, есть один спрайт палки
палкой можно будет махать в игре
можно ли как-то сделать анимацию махания палкой чем-то типа создания ключевых кадров? нужно чтоб просто менялся её угол наклона
не делать же мне анимацию для палки, ну
Аноним 31/03/20 Втр 13:43:38 652273297
>>652272
>не делать же мне анимацию для палки, ну
в смысле, не рисовать же её вручную
Аноним 31/03/20 Втр 13:51:21 652274298
>>652272
Ну да, в годоте все свойства анимируются примерно как в блендере
1. В AnimationPlayer в анимации добавляешь новый трек, Property Track
2. В всплывшем окне выбираешь объект, а в нем свойство rotation_degrees
3. Ставишь время на 0, кликаешь правой кнопкой по таймлайну и insert keyframe
4. Ставишь время в середину, крутишь объект как тебе надо, вставляешь новый keyframe
5. Ставишь время в конец, крутишь объект в начальное положение, еще один keyframe
Аноним 31/03/20 Втр 14:00:30 652275299
Как понять, почему сцена закрывается во время загрузки, но при этом никаких ошибок не вываливается?
Аноним 31/03/20 Втр 14:05:28 652276300
>>652275
А консолька что? Которая отдельно висит.
Аноним 31/03/20 Втр 16:09:08 652303301
>>652276
Тоже молчит. Выглядит, будто сцена штатно закрывается, но на самом деле это краш.
Происходит это со сценой, в которой я сделал такую штуку (вид сверху):
__с__
__д__
сдддс
__д__
__с__
Где д - блок дороги, с - точка спавна, _ - пустота.
На точке спавна должна спавниться точно такая же сцена с некоторым шансом, которая тоже что-то спавнит.
Методом тыка выяснил, что падение происходит только в определённых условиях, но определить точно эти условия не смог, потому что у меня даже print() из кода не успевает ничего вывести, когда эти условия срабатывают. Было предположение, что это происходит тогда, когда два блока накладываются друг на друга - но смещение точек спавна выше или ниже ничего не дало. Ещё было предположение, что происходит переполнение стека возвратов, но, судя по всему, в одном направлении генерироваться такая штука может достаточно долго. Пытался приделать проверку коллизий перед спавном, но они не работают в _ready, поэтому решил не мучиться. Короче, так и не понял, почему это происходит и почему без сообщений об ошибках. Версия Годо 3.2.1 stable.

Но это уже не важно, я решил отказаться от такой генерации. Нужно генерировать сначала меш ландшафта, а потом на нём расставлять домики, так должно быть правильнее...
Аноним 31/03/20 Втр 17:27:55 652311302
>>652303
> Тоже молчит. Выглядит, будто сцена штатно закрывается, но на самом деле это краш.
Переполнение стека вызовов функций. Ищи, где у тебя бесконечная рекурсия. У меня такое бывает частенько, если с рекурсией проебусь. Ошибка возникает на долю секунды, после чего сеанс отладки прерывается.
Аноним 31/03/20 Втр 18:40:37 652319303
>>652311
Значит, рекурсивно генерировать сцену всё-таки не получится(
Ну и ладно, всё равно собирался что-то другое придумать...
Аноним 31/03/20 Втр 21:08:12 652334304
>>652319
Чо сразу сдаёшься? Вполне получится. Главное правильно рекурсию организовать.
Аноним 01/04/20 Срд 16:22:46 652561305
Аноним 02/04/20 Чтв 21:59:14 652797306
1585853953799.png (23Кб, 1101x669)
1101x669
1585853953887.png (38Кб, 736x380)
736x380
Пытаюсь отрисовать 2д скелет (с целью создания процедурно-векторной графики без текстур). Он получается в масштабе 2х. ЧЯДНТ?
Аноним 02/04/20 Чтв 22:10:11 652800307
>>652797
Глянь в настройках проекта, Display, Window, и там где то в конце Stretch, Shrink чтобы стояло 1
Аноним 02/04/20 Чтв 22:37:59 652812308
1585856279031.png (5Кб, 437x119)
437x119
>>652800
Всё по дефолту же!
Аноним 02/04/20 Чтв 23:01:25 652815309
1585857684663.png (2Кб, 444x566)
444x566
>>652800
Главное, чего я не могу понять, в редакторе у кости одна позиция - её начало. В рантайме, как видно из скрипта, позиция кости - это середина. Мне приходится отрисовывать две линии, от кости к предку, от кости к потомкам. Иначе получается вот такое:
Аноним 02/04/20 Чтв 23:05:01 652816310
1585857901439.png (11Кб, 654x695)
654x695
>>652815
Вот в режиме тулскрипта. Никакого масштабирования нигде не ставил, все значения по дефолту.
Аноним 03/04/20 Птн 04:10:32 652849311
Кто-нибудь знает, как правильно настраивать физику?
Проблемы:
- кинетикбоди пинает ригидбоди
- если отключить бесконечную инерцию, всё равно пинает, но только уже сдвинутые
- круглые ригидбоди катятся и не останавливаются
- сила трения непонятно на что влияет
- непонятно как влияет на физику масса объекта
До того момента, как я узнал про флаг бесконечной инерции, думал, что физика здесь упорота принципиально.
Помогла вот эта статья, но только частично: https://kidscancode.org/godot_recipes/physics/kinematic_to_rigidbody/
То есть на неподвижные ригидбоди это работает, а если что-то сдвинуто/катится - опять "пинает".
Круглые ригидбоди вообще неуправляемые, что с массой, что с трением. Катятся и катятся.
Что делать(
Аноним 03/04/20 Птн 17:49:28 652950312
>>652849
>круглые ригидбоди катятся и не останавливаются
За это отвечает Angular Damp в размере 0.8-1
> сила трения непонятно на что влияет
Проверил на 3д кубах - все работает, 0 трения скользит как по льду, 1 сразу останавливается или опрокидывается, 0.5 ведет себя как игральный кубик
>непонятно как влияет на физику масса объекта
Как и должна, передача импульса, все дела, тяжелый объект при столкновении сдвинет легкий, легкий объект отскочит от тяжелого.
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов