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

Gamedev

Ответить в тред Ответить в тред
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 397 53 130
Godot #21.06 Аноним # OP 08/06/21 Втр 13:09:56 747202 1
1623146992546.png 429Кб, 994x1400
994x1400
Добро пожаловать в тред любви, взаимопомощи и кода ссылками на https://pastebin.com

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

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

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

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

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

Архивный: https://arhivach.net/thread/664976/
Аноним 08/06/21 Втр 13:36:06 747206 2
Спасибо чуваку напомнившему про камеру. Все получилось. Нормально вычисляю через трансформы положение элементов.
Аноним 08/06/21 Втр 21:03:48 747317 3
>>747311
Хмм. А что использовать? Просто контрол ноды в главную сцену вставлять?
Аноним 08/06/21 Втр 23:00:39 747353 4
>>747318
Чот сложна.
>>745023 →
> Вот я хочу, перемещать камеру по экрану, но GUI оставался на месте. Поместил интерфейс в узел CanvasLayer, который специально для этого, но теперь я не могу кликать сквозь этот CanvasLayer. А как?
Сорян за поздний ответ. У тебя в канваслеере по умолчанию первая контрол-нода разворачивается на всю доступную площадь (Макет -> Полный прямоугольник). И! И перехватывает события мыши на себя.
>>747311
> CanvasLayer, странный он какой то
Проблем не в нём, а в вышеописанном. У меня были поначалу проблемы с этим. Я их пофиксил делая первую контрол-ноду в слое размером в пиксель (Макет -> Слева сверху (для лево-верхнего виджета, например)
>>745075 →
> у CanvasLayer нет галочки с инпутом
Разумеется нет. Потому что она есть у потомков контрол-ноды, которые ты там помещаешь.
> Могу предложить не пользоваться канвас лейром.
А я предлагаю разобраться в вопросе...
>>747318
...а не городить велосипед с вьюпортом, который вообще не для этого.
Аноним 08/06/21 Втр 23:33:00 747380 5
Еба
Аноним 09/06/21 Срд 01:59:30 747408 6
Аноны, как начать строить комьюнити для своей игры?
Аноним 09/06/21 Срд 02:27:20 747411 7
>>747410
Интеллектуальная под Андроид.
Ссылочку тут оставлю на браузер, если у тебя хром, погамаешь.
https://gotm.io/2ch-studio/hbt
Комьюнити нужно исключительно чтобы находить неудобства, к которым у меня глаз замылен. Ну и мб когда куплю подписку девелопера в гуглсторе иметь пару скачавших.
Аноним 09/06/21 Срд 02:50:54 747412 8
>>747408
А на итчио залил?
Аноним 09/06/21 Срд 02:52:37 747414 9
>>747411
Не, на итч не заливал. Какие там правила для залива? Если полотенце на пол бросят, подбирать?
Аноним 09/06/21 Срд 02:53:47 747415 10
>>747411
Ну ты колорист конечно
Аноним 09/06/21 Срд 03:06:08 747417 11
>>747415
У меня Моник старый половину цветов не передаёт. Это сарказм такой?
Аноним 09/06/21 Срд 11:05:51 747438 12
Аноним 09/06/21 Срд 12:20:23 747445 13
Аноним 09/06/21 Срд 17:28:26 747514 14
>>747438
Ты не мог бы сказать точнее что там не так? Потому что я явно не понимаю. Вроде ж норм.
Аноним 09/06/21 Срд 19:42:18 747531 15
Хз зачем, но перекачусь!
Так и не сделал гребанное меню в игре(
Аноним 09/06/21 Срд 20:29:23 747539 16
Аноним 10/06/21 Чтв 22:29:07 747712 17
>>747411
Да это ж годус на минималках
Аноним 11/06/21 Птн 00:54:04 747756 18
У при запуске начинается цепочка вычислений, обмена сигналами между узлами и синглтонами. Например, расчитывается что-то в синглтоне в _ready, отправляется сигнал, затем в скрипте какого-то узла по сигналу еще что-то расчитвается, отправляется другой сигнал, в другом скрипте расчитывается по этому сигналу расчитывается из другого синглтона. Иногда yield(get_tree(), "idle_frame") помогало, но что-то больше не помогает. Почему так и как избегать всего этого? Пробовал
>yield(get_tree().root, "ready")
но у меня все сломалось от такого.
А как дождаться что все, что есть загрузилось?
Аноним 11/06/21 Птн 06:50:32 747781 19
Screenshot3.jpg 59Кб, 1022x335
1022x335
Здесь анон обещал запустить серию туторов на ру в 3D и с С# скриптом. Как там успехи?
Аноним 11/06/21 Птн 12:26:07 747806 20
>>747378
Принимаю возражения. Постил сгоряча. Извиняюсь. Изучу матчасть по вьюпортам.
Аноним 11/06/21 Птн 12:33:52 747808 21
>>747756
> А как дождаться что все, что есть загрузилось?
Опрос дерева построен так, что дерево опрашивается рекурсивно, при этом в первую очередь выполняются потомки, затем предки. То есть, если рассматривать выполнение колбэка ready, он сначала выполнится для всех листьев, затем для всех ветвей, затем для ствола, и наконец для корня. То есть, если у тебя выполнилось ready для корневого узла, ты можешь быть уверен, что все остальные узлы уже ready выполнили.
Аноним 11/06/21 Птн 12:36:18 747813 22
>>747756
Yeld может ждать выполнения функции. Если ты конечно не с сигналами работаешь. Если с сигналами, тогда знаю только про ожидание сигнала.
Аноним 11/06/21 Птн 12:50:31 747816 23
>>747756
Путаница какая-то. Вот поэтому и рекомендуется предпродакшен и диздок с как можно более точным и полным описанием, что откуда и куда. Без этого получится как у при запуске.
Аноним 11/06/21 Птн 16:04:45 747898 24
>>747877
>Если же все это непонятно, то вместо yield(get_tree(), "idle_frame"), который ждет всего 1 кадр, можно просто завести таймер на 5 секунд с фейковым экраном загрузки, я так делал :3
Пиздец :D
Аноним 11/06/21 Птн 16:14:49 747900 25
>>747875
Предлагаю любую популярную 2д игру в 3д.
Начать с аркадных гоночек вид сверху.
Потом если не надоест платформер.
Затем РПГ

Стратегии не советую, сложно для понимания, да и сам жанр умирает, но если начнёшь ты будешь первым на ютубе среди ру и анг кто пилит тутор по РТС.
11/06/21 Птн 18:34:24 747925 26
>>747900
геймплейно 2д и 3д абсолютно разные
11/06/21 Птн 20:20:01 747941 27
>>747926
да
геймплейно 2д и 3д сильно отличаются, любой кто переходил из 3д в 2д или наоборот это знает
но никто не мешает делать 2д игры в 3д, только не надо себе врать!!!
Аноним # OP 11/06/21 Птн 22:42:41 747951 28
Аноним 12/06/21 Суб 01:47:48 747959 29
почему у меня функция, которая вызывается по сигналу, срабатывает раньше, чем реади в том же скрипте, что и функция?
Аноним 12/06/21 Суб 02:28:13 747960 30
Безымянный.png 182Кб, 1304x876
1304x876
Как такое возможо, пацаны?
Аноним 12/06/21 Суб 03:15:52 747964 31
>>747900
>да и сам жанр умирает
Э
Аноним 12/06/21 Суб 08:09:36 747971 32
>>747951
Мощно. Это вулкан?
Аноним 12/06/21 Суб 09:11:09 747978 33
>>747964
Назови пару стратегий РТС за прошлый гол, кроме Тоталов, рефоржа вара и ремастера СинСи.
Аноним 12/06/21 Суб 10:56:52 747988 34
>>747539
Чего ты айкаешь? Мне и так грустно.
>>747986
Зачем мне следовать за тобой, если у меня уже есть концепт своей игры? Он куда проще, и профита даст больше. Только сука как же я ненавижу программирование. Гребаный ад где все следует по правилам, которые ты никогда не поймешь!

Ебал я в рот ебучие движки, с ебучими языками!
Аноним 12/06/21 Суб 11:14:01 747994 35
>>747988
Ты только что поговорил с копипастой спам-бота.

А по теме, программирование намного проще освоить, чем рисование, моделирование и музыку. Тебе не нужно надрачивать скилл годами тяжёлого труда, ты просто читаешь правила в книжке со списком правил (ака мануал) и затем используешь эти правила для составления программы. Не нужно даже наизусть помнить, достаточно знать где можно найти забытое.

Если очень трудно освоить общие принципы программирования, поиграй в игры для маленьких детей, в которых нужно с помощью кнопок задать программу виртуальному роботу, чтобы он решил головоломку.
Аноним 12/06/21 Суб 11:44:35 748000 36
Аноним 12/06/21 Суб 11:50:40 748001 37
image.png 5Кб, 154x148
154x148
>>747994
>Ты только что поговорил с копипастой спам-бота.
Да насрать, я просто хотел выговорится.
>А по теме, программирование намного проще освоить, чем рисование, моделирование и музыку.
Нихера чел! В рисовании ты когда делаешь, сразу видишь что у тебя выходит. Даже если ты совершил ошибку, тебе не вылезет окно в программе "ОШИБКА ОШИБКА, ИСПРАВТЕ ТО ЧТО ВЫ СДЕЛАЛИ!"
>Если очень трудно освоить общие принципы программирования, поиграй в игры для маленьких детей, в которых нужно с помощью кнопок задать программу виртуальному роботу, чтобы он решил головоломку.
Да и само программирование скучная херня, которая отбирает больше сил и нервов, чем принесения удовольствия.
>Не нужно даже наизусть помнить, достаточно знать где можно найти забытое.
Это можно отнести к чему угодно в наши дни, к рисованию в частности.
Аноним 12/06/21 Суб 13:36:13 748028 38
>>747900
> да и сам жанр умирает
Я бы не сказал, что жанр умирает. Скорее кризис идей. Ведь на рынке сейчас ни одной нормальной популярной пошаговой стратегии. А вот те же парадоксовские игры, типа стеллариса - вполне себе стратегии, и вполне себе популярные. Даже индюшатина, типа northgard, нашла свою аудиторию, причём немалую. Но игра нормально играется в первые часов 10. Потом надоедает, потому что ничего нового не привнесли.
Та же история, что с wow и hs. Они не были основоположниками мморпг и ccg, но привнесли что-то, что заставило прочих равняться на близзов и популяризировало соответствующие жанры. А сейчас близзы стагнируют в боязни, ка бы чего не случилось, и не хотят рисковать в попытках выпустить новый мир и геймплей, а переключились на ремастеры.

Вот и с rts и tbs, мне кажется. Выпусти новую, или, даже правильней сказать, старую механику с взглядом с нового ракурса - и будет успех. Не все могут бесконечно играть в ск, стронгхолд, homm3 и дисайплсов. И вот этот перетекающий народ и есть шанс заново запустить жанр to the moon.
Аноним 12/06/21 Суб 13:55:24 748036 39
>>747959
Подозреваю, что реди срабатывает при инстанцировании/загрузке объекта, куда прицеплен скрипт, либо если скрипт грузится в проект. Но это не точно. Я не годот эксперт и в треде сам на правах вопрошающего.
Аноним 12/06/21 Суб 18:12:48 748070 40
>>748001
>В рисовании ты когда делаешь, сразу видишь что у тебя выходит.
Ага. И выходит обычно говно. И ты понимаешь, что это говно. Но совершенно не понимаешь, почему конкретно говно, и как переделать говно в конфетку. А ведь говнографика не выполняет свою главную задачу - вызывать какие-то эмоции, которые задумывались рисователем. Страшные сцены будут выглядеть смешно, серьёзные сцены будут выглядеть нелепо, милые сцены будут выглядеть отвратно, смешные сцены будут выглядеть постыдно и так далее. А говнокод, пусть и говно, но свою главную задачу решает. И пользователь никогда не узнает, что его любимая программа состоит из говна, потому что он её код никогда не увидит, а если даже увидит, то не сможет понять, почему он говно. Да и ты сам, когда учишься кодить, не знаешь, говнокод это или не говнокод, поэтому не можешь себя критиковать, а в рисовании ты прекрасно знаешь как выглядит говно, и критикуешь себя за рисование говна. Короче кодинг проще.

>Даже если ты совершил ошибку, тебе не вылезет окно в программе
Вот именно! Компилятор тебе по-дружески укажет на ошибку в коде, даст направление, в котором нужно искать, практически ссылку на страничку в руководстве. И ты её исправляешь, потому что ты либо уже знаешь как это исправить, либо загуглишь и по первой ссылке найдёшь решение. А в рисовании ты можешь нарисовать что угодно и программа тебе ничем не поможет, ей вообще без разницы что у тебя получится, она не может сказать тебе, где ты ошибся, почему ошибся и как это исправить. И никто не скажет точно, каждый скажет свою вкусовщину и не сможет ясно и чётко ответить. Это кошмар какой-то, ты рисуешь говно и понимаешь что это говно, но никто не может тебе помочь исправить ошибки. А компилятор иногда тебе прямым текстом говорит: вот здесь замени А на Б и всё заработает, компилятор умный и добрый.

С другой стороны, если у тебя куча EAV (ошибка доступа к памяти), тогда просто не лезь писать код, пока не продумал структуру программы и всю работу с данными. Если ошибка со стороны библиотеки - обращайся к руководству библиотеки, и т.д. Если ошибка логическая (программа работает, но ответ неправильный) - опять же думай головой, решение где-то близко. А в рисовании сколько ни думай, внутренний критик говорит только "это говно". Даже прочитав теорию, всё равно не помогает...

>Да и само программирование скучная херня, которая отбирает больше сил и нервов, чем принесения удовольствия.
Скорее всего ты просто берёшься за непосильные задачи, которые намного выше уровня твоего навыка. Либо это просто личное. Мне нравится видеть, как из ничего появляется и развивается рабочая программа, способная самостоятельно выполнять то, что без неё тебе пришлось бы делать вручную, долго и трудно. Это как рождение живого существа, которое постепенно взрослеет и учится новым навыкам, а потом помогает тебе, отвечает заботой в ответ на заботу. А картинка - ну вот ты её нарисовал, положил в папку и всё, будет лежать и занимать место или пылиться на полке, толку от неё никакого, одни страдания, стыд и самобичевание.
Аноним 12/06/21 Суб 19:00:38 748076 41
image.png 650Кб, 835x260
835x260
>Либо это просто личное
p.s. Пишу в начале, потому что концовка зачетная. Мне нравится рисование своей простотой, а...
"Да и само программирование скучная херня, которая отбирает больше сил и нервов, чем принесения удовольствия."

>>748070
>И ты понимаешь, что это говно. Но совершенно не понимаешь, почему конкретно говно, и как переделать говно в конфетку.
Как раз наоборот, с помощью анализа ты можешь спокойно понять где и что нужно поправить.
>А говнокод, пусть и говно, но свою главную задачу решает.
Я в ремпае пока каждой строчке отступы не сделал, оно мне игру не запускало!
В годод же я скопировал код из инета, решив вставить его в свой проект, но нихуя не работает! Я его написал не туда куда нужно, а как делать по другому я не знаю. И все, иду нахуй тут же, посмотрев на весь проект целиком я могу только закрыть и пойти спрашивать программиста почему у моего перса спец атаки не работают! Он же тоже НЕ БУДЕТ ЕБАТЬ ПОЧЕМУ, он на другом языке работает, а на годот ему похуй!
>Короче кодинг проще.
Его проще забросить, и не вспоминать никогда! Тут согласен на все сто!
>Вот именно! Компилятор тебе по-дружески укажет на ошибку в коде, даст направление, в котором нужно искать, практически ссылку на страничку в руководстве.
Я скопировал чужой код, так же для спец приема, вставил. Ничего не работает! Почему? Я мне пк не говорит! Молчит в тряпочку! Видит код, а про себя думает "Вот я его вижу, но ничего не сделаю. Пусть он помочиться, перепишит все там нахуй!" Ахуеть в крысу он тебе не поможет. А за точку которую ты случайно поставил, осудит и обоссыт!
>А в рисовании ты можешь нарисовать что угодно и программа тебе ничем не поможет, ей вообще без разницы что у тебя получится, она не может сказать тебе, где ты ошибся, почему ошибся и как это исправить. И никто не скажет точно, каждый скажет свою вкусовщину и не сможет ясно и чётко ответить. Это кошмар какой-то, ты рисуешь говно и понимаешь что это говно, но никто не может тебе помочь исправить ошибки. А компилятор иногда тебе прямым текстом говорит: вот здесь замени А на Б и всё заработает, компилятор умный и добрый.
Если тебя палками не бьют, по твоему это похуизм?! Программе не важно кто и что ты за человек, и по этому она тебя не осуждает! И если ты будешь общаться не с ясельной группой, нормальные худы скажут "Вкусовщины собой нету, и даже в абстракционизме есть правила, которыми пользуются и ОСТАЛЬНЫЕ ХУДОЖНИКИ!" Та же самая композиция, по твоему если её сделать плохо - это будет вкусно?
>Даже прочитав теорию, всё равно не помогает...
Я бывал на уроках информатики, и читал тамошние учебники, выполнял от туда задания. Что такое переменная?! Я не знаю что такое переменная! А построение примерные пропорции лица я запомню на все оставшуюся жизнь. Потому что я чужие лица смотрю каждый день.
>Скорее всего ты просто берёшься за непосильные задачи, которые намного выше уровня твоего навыка.
Да я готов и три в ряд сделать, только чтобы там были вн вставки.
>Мне нравится видеть, как из ничего появляется и развивается рабочая программа, способная самостоятельно выполнять то, что без неё тебе пришлось бы делать вручную, долго и трудно. Это как рождение живого существа, которое постепенно взрослеет и учится новым навыкам, а потом помогает тебе, отвечает заботой в ответ на заботу.
Ага, гомункул гребаный который будет тормозить и пускать слюни из рта. Я таких стараюсь в подвале старом харде держать, морить голодом пока они сами не вымрут. Но они пожирают друг друга, регенерируя оторванные конечности.
>А картинка - ну вот ты её нарисовал, положил в папку и всё, будет лежать и занимать место или пылиться на полке, толку от неё никакого, одни страдания, стыд и самобичевание.
Картина попадает в сеть из твоего пера, собирая толпу людей которых зацепили твои взмахи кисточкой! Грациозное палатное которое получает большое внимание, разносясь по разным соцсетям с ссылкой на автора оригинала. Зрители кормят художника деньгами и овациями! А конкуренты и коллеги репектуют, ожидая твой следующий шаг к вершине мастерства!
Аноним 12/06/21 Суб 19:17:20 748083 42
>>748076
Годот пишет всегда, когда возникает проблема. Ну или рассказывай какой код использовал, поможем
Аноним 12/06/21 Суб 19:30:20 748089 43
image.png 152Кб, 1226x67
1226x67
Привет, годотчикам! Я балуюсь и делаю рогалик для себя и хочу накатить тайлы https://opengameart.org/content/dungeon-crawl-32x32-tiles-supplemental там они предоставляются в виде отсортированных по папочкам, и в виде одного большого изображения. Проблема в том, чтобы всё это загнать в один тайлсет: либо я добавляю по одному спрайту и получаю огромную кучу, в которой нужно сразу записывать в какую нибудь глобальную переменную айдишники, чтобы не забыть, либо выделять на одном огромном изображении нужные мне атласы и автотайлы. Не то чтобы я был против, но я не понимаю как сделать атлас на нескольких строчках с разрывами как на пике. Делать несколько атласов для одного тематического набора тайлов кажется сомнительным решением и костылём, который аукнется в будущем. Посоветуйте выход из ситуации, пожалуйста!
Аноним 12/06/21 Суб 19:38:57 748094 44
>>748093
Инструмент для этого не посоветуешь? А то я пробовал гуглить - какие-то все не очень варианты были
Аноним 12/06/21 Суб 19:41:23 748095 45
>>748077
так так вот это интересно
Аноним 12/06/21 Суб 19:44:20 748096 46
Аноним 12/06/21 Суб 19:45:27 748097 47
Аноним 12/06/21 Суб 19:48:51 748098 48
image.png 66Кб, 1085x791
1085x791
>>748083
Тут не код.
Из последнего я скопировал стены, которые не позволяют моему персонажу падать в пустоту сквозь поле, и сетку я сделал таким же образом. Но, открыв файл через несколько недель решил сделать тоже самое во круг поле, скопировав блок стоящий на сетке. Но итогу правая стенка не пропускает игрока, левая и задняя пропускают. Что не так? Только всевышний знает!
>>748080
Окей.
>>748077
>Художникам проще рисовать, логикам программировать, никакого открытия тут нет.
Ты это тому скажи.
>Ты можешь нарисовать схему где опишешь кто кому посылает сигнал и когда, к примеру.
Мне эти схемы не о чем не говорят. Я в них могу видеть только ответвление по вн, или же семейное древо.
Аноним 12/06/21 Суб 19:51:17 748102 49
Аноним 12/06/21 Суб 20:00:58 748105 50
>>748098
Скрипты к стенкам приклеены? Попробуй развернуть их на 180 градусов для прикола
Аноним 12/06/21 Суб 20:20:37 748107 51
>>748105
Пробывал, тоже самое. Если проблема со скриптами, почему правая стенка работает как надо?
Аноним 12/06/21 Суб 20:32:47 748109 52
>>748108
Понятно, спасибо что написал об этом. Но сейчас уже нет желания открывать и править все это.
Аноним 12/06/21 Суб 20:40:12 748111 53
>>748076
>с помощью анализа ты можешь спокойно понять где и что нужно поправить.
Не помогает оно, и так двигаешь, и эдак, а оно всё равно не то. Как в меме с унитазом, из стороны в сторону двигаешь и всё не то.

>Я в ремпае пока каждой строчке отступы не сделал, оно мне игру не запускало!
Есть такое выражение: RTFM! То есть читай грёбаный мануал! Наверняка не читал вообще или невнимательно.

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

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

>Я скопировал чужой код, так же для спец приема, вставил. Ничего не работает! Почему?
Потому что ты:
>скопировал чужой код
>скопировал
>СКОПИРОВАЛ
Вот почему.

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

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

>Что такое переменная?!
Это коробочка с надписью, в которой ты можешь хранить какие-нибудь данные, например, числа. И обращаешься к коробочке ласково, по имени.

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

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

Сколько тебе лет вообще? Говоришь как старик, по какой-то причине решивший освоить геймдев на старости лет. Или как ребёнок, привыкший к тому что всё делают за него и не желающий работать своими руками, но для ребёнка ты слишком много знаешь. Возможно, это не твоё. Продолжай рисовать картины и собирать толпы людей в сети) Ну или закажи разработку игры на фрилансе, если не хочешь учиться программированию.
Аноним 12/06/21 Суб 21:29:25 748115 54
image.png 23Кб, 485x216
485x216
Как обновить элемент в массиве?
Есть dictionary, где хранимое значение - массивы. Положим
array = [0, 1, 0, 0]
Нужно проапдейтить только определённый элемент массива, например, второй (заменить 1 на 4).
Как это сделать? Вариант, как для массива array[1] = 4 не катит, потому что dictionary["arrayZ"][1] = 4 выдаст ошибку.
Из придуманного - перекладывать весь массив по новой по типу пикрил, но это какой-то сизифов труд.

Есть какой-то метод нормальный для этого?
Аноним 12/06/21 Суб 21:40:20 748117 55
image.png 5Кб, 270x63
270x63
>>748115
Есть, конечно, вариант ещё пикрил, но тоже кажется тупым.
Аноним 12/06/21 Суб 21:47:47 748119 56
>>748117
Какую ошибку выдаёт? dictionary["arrayZ"][1] = 4 по идее должно работать
Аноним 12/06/21 Суб 21:55:43 748120 57
image.png 362Кб, 422x604
422x604
>>748112
Да я не парюсь, просто много сил жрет ковыряется в этом. А удовольствие победы несоизмеримо с выносом мозга на таких затупах.

>>748111
>программирование намного проще освоить
>Есть такое выражение: RTFM! То есть читай грёбаный мануал Наверняка не читал вообще или невнимательно.
>Действительно, почему? Да потому что так дела не делаются. Ты должен разумно подходить к разработке.
>Аниме-хейтеры назовут любую картинку в стиле аниме говном.
>Твои "нормальные худы"
>Но мне вот не нравятся их "высокохудожественные" кляксы, мне нужно аниме, но даже зная все формальные правила получается какое-то говно.
Бля я просто угораю! Приплел с нихуя аудиторию аукционов, не поняв что под нормальными худами я имел ввиду пик ниже. Если ты не знал, вся стилизация основана на реализме. Если ты захочешь нарисовать человека, ты "умный программист" будешь рисовать ему две ноги, два глаза, две руки, и два полужопия. Знаешь почему? Потому что человек априори выглядит так а не иначе. Если у тебя получается говно, значит ты рисуешь не аниме тян, а того же гомункула, у которого шея с пальчик, растет на затылке.
>Это никак не помогает. Я тоже знаю, где у человека глаза, нос, рот, уши.
А слепой ничего не увидит.
>Сколько тебе лет вообще?
Больше 18, меньше пенсионного возраста.
>Возможно, это не твоё. Продолжай рисовать картины и собирать толпы людей в сети) Ну или закажи разработку игры на фрилансе, если не хочешь учиться программированию.
Я в прошлом треде написал что я буду делать, при неудачи. То бишь найму программиста/реализую задумку в виде маленького комикса.

Я очень хочу разобрать всю твою писанину, но впаду от понимания того, что ты опять ответишь в такой же развернутой манере! А говорить я не особо люблю. Ведь я творец, а не клоун. Занавес.
Аноним 12/06/21 Суб 21:57:23 748121 58
>>748119
Блин, действительно работает. Немного не то юзал в качестве ключа - ошибся с переменной, содержащей ключ.
Аноним 13/06/21 Вск 01:28:17 748136 59
>>748077
На второй картинке рекомендуется вместо get_parent использовать PackedScene?
Аноним 13/06/21 Вск 03:32:35 748138 60
>>748120
>реализую задумку в виде маленького комикса
Если ты умеешь рисовать, почему бы сначала не нарисовать комикс? Или параллельно с игрой, если есть время. Так можно заранее привлечь аудиторию и точнее определиться с персонажами для игры, если она вообще нужна. Или, если аудитория уже есть, комикс будет проще для восприятия - его не нужно скачивать, запускать и проходить, просто читаешь на странице любимого художника и не паришь мозги. Т.е. в теории у комикса шире охват сообщества, чем у игры.

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

Ладно, к чёрту стикманов, вот я точку поставлю и ты точку поставишь. И твоя точка хороша, а моя - говно. И я её десять раз обведу и заново переделаю, но всё равно моя точка будет хуже. Она всегда хуже. Я не понимаю, почему. Знаю, это моя заниженная самооценка виновата. Но всё равно я только говно делаю.

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

Вообще я изначально пытался помочь с принятием программирования, а ты продолжаешь бодаться. Ради чего? Просто перестань буянить, когда встречаешь какие-то сложности, трезво оцени ситуацию и читать самоучители, выполняя все упражнения из них. Тебе не нужно написать десять тысяч программ, это только художнику нужно десять тысяч рисунков сделать, а тебе достаточно научиться писать программы. Это просто, если контролировать себя и не психовать.
Аноним 13/06/21 Вск 09:44:04 748155 61
>>748138
> моя заниженная самооценка
Ещё перфекционизм на вышеописанную проблему работает нехило.
Аноним 13/06/21 Вск 10:00:34 748160 62
>>748155
>Ещё перфекционизм
Вот-вот, именно так. Но код с перфекционизмом всё же проще писать: мой перфекционизм зачастую удовлетворяется ровными отступами, правильными заглавными буквами, правильным числом пробелов, пустыми строками между блоками кода, длинными понятными именами и т.д., т.е. главное чтобы выглядело опрятно и красиво. А с рисунками так не получается, на один пиксель ошибёшься - уже совсем другой результат, а пикселей миллионы. С 3D-моделями ещё хуже, пытаюсь до миллиметров всё вычислить и всё равно говно получается. А код пишешь себе и пишешь, практически как на родном языке говоришь.

да, меня бомбит с "кодит сложна, рисувать лигко"
Аноним 13/06/21 Вск 10:04:30 748161 63
>>748160
Я это ты, бро. Бомблю с того же самого, когда люди, которым по жизни легко, не понимают как такое может быть, что кому-то по жизни сложно? "Да вы просто не стараетесь" говорят они. Пиздец.
> С 3D-моделями ещё хуже, пытаюсь до миллиметров всё вычислить и всё равно говно получается.
А ещё квады. Маниакально трясусь над моделькой, чтоб недайбох нигде многоугольника не образовалось, иначе пиздец. В то время, как васян уже сдаёт готовую модельку, ему перезванивают, а мне нет.
Аноним 13/06/21 Вск 10:59:19 748167 64
image.png 12Кб, 512x512
512x512
image.png 1345Кб, 1132x671
1132x671
>>748138
>Т.е. в теории у комикса шире охват сообщества, чем у игры.
1. Нихуя. Играют охотнее, чем читают.
2. Если я сделаю игру, смогу расширить пул площадок для продвижения себя любимого как минимум на два. itch.io и тд
3. Я хочу сделать для игрока челлендж, при котором он борется за получение желаемого арта.

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

>Вот ты нарисуешь стикмана и я нарисую стикмана: палочки, кружочки, всё по линеечке если нужно. Вот только твой стикман моих глазах будет неплох, я буду даже завидовать, а мой стикман в моих глазах будет выглядеть как говно, и чем больше я буду пытаться его исправить, тем больше буду портить. С формальной точки зрения стикманы одинаковые - все размеры, пропорции, толщина линий, цвет чернил и т.д. равны, но мой всё равно намного хуже.
В реальности же ты сделаешь ему длинную шею, разные размеры рук, и просрешь ещё много пропорций которые важны в построении человека. Это уже не смотря на то, что крутан будет все это делать в векторе, а ты в растре мышкой рисовать. xD Считай шутка среди cg худов.

>Ладно, к чёрту стикманов, вот я точку поставлю и ты точку поставишь. И твоя точка хороша, а моя - говно. И я её десять раз обведу и заново переделаю, но всё равно моя точка будет хуже. Она всегда хуже. Я не понимаю, почему. Знаю, это моя заниженная самооценка виновата. Но всё равно я только говно делаю.
У меня тоже заниженная самооценка. Не мое мнение, а людей со стороны. Мне это не мешат если получилось говно, изменить ошибку, а потом в дальнейшем попытаться её не допустить.

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

>Вообще я изначально пытался помочь с принятием программирования
Это не возможно принять, боль и страдания от тильда только в пучины депрессии вгоняют. Чем дольше сидишь, тем больше не понимаешь.
>Тебе не нужно написать десять тысяч программ, это только художнику нужно десять тысяч рисунков сделать, а тебе достаточно научиться писать программы.
Тебе нужно много знать чтобы написать одну программу, а мне чтобы нарисовать один рунок достаточно посмотреть на свою ногу.

>>748160
>>748161
>да, меня бомбит с "кодит сложна, рисувать лигко"
>которым по жизни легко, не понимают как такое может быть
Я если сравнивать с другими худами, даже на средний уровень ещё не вышел. Но даже с таким бэкграундом рисование легче, чем программирование.
>как васян уже сдаёт готовую модельку, ему перезванивают, а мне нет.
Вася потратит на эту подельку в лучшем случае две рабочих недели, из которых спать и есть будет 7 часов. Остальное выдрачивание.

Аноним 13/06/21 Вск 11:01:51 748168 65
image.png 19Кб, 303x415
303x415
>>748167
Отклеилось. 2 пик там не актуален, посчитал что этот аргумент можно спокойно списать.
Аноним 13/06/21 Вск 12:51:42 748179 66
Есть ли в godot реализация Breadth-first search?
AStar знаю и использую для поиска пути. Но для реализации разведки карты это не подходит, BFS выглядит более адекватным, но не могу найти такой функции.
Аноним 13/06/21 Вск 21:20:02 748227 67
Аноним 14/06/21 Пнд 00:45:07 748277 68
Если я делаю так:
>func draw_lines():
>>for i in get_children().size():
>>>var colour = generate_colour(i)
>>>var line_2d : Line2D = get_child(i).get_node("Line2D")
>>>yield(generate_colour(i), "completed")
>>>line_2d.set_modulate(colour)
>
>func generate_colour(number : int):
># yield(get_tree(), "idle_frame")
>>var colR := randf() 2
>>var colG := randf()
2
>>var colB := randf() 2
>>var colour = Color(colR, colG, colB, 2)
>>return colour
то будет ошибка
>First argument of yield() not of type object.

А если сделаю так (раскоменчу yield в generate_colour):
>func draw_lines():
>>for i in get_children().size():
>>>var colour = generate_colour(i)
>>>var line_2d : Line2D = get_child(i).get_node("Line2D")
>>>yield(generate_colour(i), "completed")
>>>line_2d.set_modulate(colour)
>
>func generate_colour(number : int):
>>yield(get_tree(), "idle_frame")
>>var colR := randf()
2
>>var colG := randf() 2
>>var colB := randf()
2
>>var colour = Color(colR, colG, colB, 2)
>>return colour
То будет ошибка
>Invalid type in function 'set_modulate' in base 'Line2D'. Cannot convert argument 1 from Object to Color.
Аноним 14/06/21 Пнд 00:48:00 748280 69
>>748277
А если не ставить yield нигде, то будет ошибка
>Invalid type in function 'set_modulate' in base 'Line2D'. Cannot convert argument 1 from Nil to Color.
Аноним 14/06/21 Пнд 01:20:50 748290 70
>>748280
Как так получается, что спустя 1 кадр меняется класс с Color на Object?
Аноним 14/06/21 Пнд 08:31:02 748352 71
>>748277
Смотри как распидорасило твой код, а ты при этом ещё и корпел над ним, угловыми скобачками отступы симулировал, а про знаки * забыл. Юзай пастебин, Люк!
Аноним 14/06/21 Пнд 08:58:46 748353 72
>>748277
Значит, смотри сюда, когда ты юзаешь yield, то метод, в котором он вызван, перестаёт возвращать любые значения, кроме корутинного объекта https://docs.godotengine.org/ru/stable/classes/class_gdscriptfunctionstate.html который управляет состоянием функции. Соответственно, до твоего return colour дело не доходит. Если хочешь ебаться таким образом, то делай так: https://pastebin.com/iHN3EcC3
Аноним 14/06/21 Пнд 09:13:10 748355 73
>>748353
Обосрался таки с советом. Замени в строке 8:
>if typeof(ref.color) == TYPE_COLOR:
Потому что нельзя сравнивать разные типы, а я объявил строковую константу и сравниваю с цветом.
Аноним 14/06/21 Пнд 10:30:16 748358 74
Аноним 14/06/21 Пнд 14:59:56 748393 75
>>748358
Не совсем так, как мне надо, но сделал по твоему подобию, даже йылды оказались не нужны, все заработало, как надо. Тысячи благодарностей.
А вот так
var line_2d : Line2D = get_child(i).get_line_2d()
всегда рекомендуется делать?
Аноним 14/06/21 Пнд 15:01:36 748394 76
Аноним 14/06/21 Пнд 15:02:55 748395 77
>>748366
Я просто хотел заставить одну функцию дожидаться завершения другой, чтобы другая не слала null.
Аноним 14/06/21 Пнд 15:09:17 748397 78
>>747514
желтый с фиолетовым плохо сочетается. Погугли, какие цвета хорошо сочетаются и поставь их, а то от этих глаза болят.
мимо
Аноним 14/06/21 Пнд 19:45:11 748454 79
>>748393
> всегда рекомендуется делать?
Вообще говоря, вкусовщина. Твой вариант опрашивает дерево строковым запросом. Диды неодобряе такой подход, но мне как-то в стрингосраче убедительно на миллисекундах показали, что современные строки работают на исчезающе малую величину медленнее, чем числа, и этим можно пренебречь. Мой вариант опрашивает потомка ноды в её массиве потомков, индексы которого инт, то есть везде работа с числами, но не строками. Но на этапе оптимизации вспомни этот момент и сможешь оптимизировать пару лишних фреймов.
Аноним 14/06/21 Пнд 20:30:15 748473 80
Аноним 14/06/21 Пнд 20:32:44 748474 81
Аноним 14/06/21 Пнд 22:49:57 748525 82
>>748454
>Но на этапе оптимизации
Хо-хо!
Аноним 14/06/21 Пнд 23:27:56 748535 83
image.png 1489Кб, 1897x958
1897x958
>>748525
На самом деле такое может случиться, когда фпс начнёт падать меньше 30. Помнится мне, у меня комп обосрался, когда я на годоте сделал реализацию http://stuffin.space/
Жалко, что код при обновлении пекарни не сохранил. Или нет. В следующий раз нормально напишу.
Аноним # OP 16/06/21 Срд 00:15:16 748711 84
Проверяем галку ОПа. Были траблы.
Аноним 16/06/21 Срд 12:26:20 748883 85
>>748731
Дак вот восстановленные из бекапа и проверял.
Аноним 17/06/21 Чтв 17:09:32 749051 86
Как можно заставить узлы Label сталкиваться друг с другом, а не перекрывать?
Аноним 17/06/21 Чтв 17:13:39 749052 87
>>749051
У меня несколько персонажей, у каждого Лэйбл над головой, хочу, чтобы Лэйблы не накладывались друг на друга
Аноним 17/06/21 Чтв 17:51:07 749061 88
>>749057
2д, надписи могут двигаться вверх и по-горизонтали. Если три игрока рядом, каждая надпись должна занять ближайшее к своему игроку место.
Я попробовал сделать каждому персонажу дочерний узел RigidBody, а его дочерний узел Label. И все надписи поместил на один Collision-слой. Сначала они сталкиваются, но потом сталкиваются как-то слабо.
Аноним 17/06/21 Чтв 17:53:03 749062 89
>>749061
Скорее вообще не сталкиваются
Аноним 17/06/21 Чтв 20:36:11 749070 90
>>749062
Сделай втупую, сделай в лоб, как я зимой делал: лейбл сидит в ригидбоди, ригидбоди прикручено джойнтом к боде персонажа, когда персы сближаются, все их лейбл-блоки будут отталкиваться физическим движком и занимать удобное для себя положение.
Аноним 17/06/21 Чтв 20:39:20 749071 91
>>749070
аааааа джоинты точно
Аноним 17/06/21 Чтв 22:41:21 749081 92
image.png 89Кб, 1345x731
1345x731
А помнишь, антуан, как ты помогал кодить платформер?
Я тебе ещё спрайтов нарисую.
Ты только заходи...
хоть иногда...
Аноним 17/06/21 Чтв 22:45:05 749082 93
>>749081
Я ХЗ, ещё как минимум до конца июня ваще никак. Дел не в проворот. Ты пока спрайты рисуй, рисуй.
Аноним 17/06/21 Чтв 22:51:52 749086 94
image.png 800Кб, 1158x478
1158x478
>>749082
Рад, что ты жив, цел и орёл
Я сейчас немного другую пиксельную хуйню делаю, туда хоть кодить не надо, но как освободишься, хайдде тоже время найдётся.
Аноним 18/06/21 Птн 11:59:08 749202 95
>>749081
Че там кодить то бля?
Аноним 18/06/21 Птн 12:24:18 749204 96
>>749202
Буквально всё. Я с кодом не очень дружу.
Аноним 18/06/21 Птн 13:07:02 749211 97
>>749202
> Че там кодить то бля?
Подскажи, как сделать в двадэ выглядящее симпатчно и удобно-играбельное вскарабкивание по вертикальным поверхностям. Это одна из фишек Хайди. Делать двадэ-клон Хайди без реализации её фирменной фичи, это будет хуйня какая-то. Очередной митбой.
Я пока что рассматриваю вариант с физикой: По бокам от капсулы персонажа расположены два физических тела в форме квадрата, которые двигаются вверх-вниз и немножко подворачиваются внизу к центру, что на тестовых сценах выглядит весьма няшно.
мимо тот самый кодер
убегаю, чмоке фсем в чати
Аноним 18/06/21 Птн 22:57:31 749347 98
Делаю сейвы по гайду https://docs.godotengine.org/en/stable/tutorials/io/saving_games.html.
Получается не очень. Можно сохранять данные в словарях, но не сгенерированную заранее по известным значения карту, потому что инстанцируется всё рантайм из кода.
Вот как это инстанцирование сохранять? Вручную все-все-все параметры вытаскивать и сохранять? Или как-то можно всё дерево сохранить?
Аноним 18/06/21 Птн 23:52:54 749372 99
Аноним 20/06/21 Вск 19:01:12 749723 100
У меня 2D персонаж приходит в последнюю точку NavigationPath2D и начинает трястись. Точнее он может прямо в нее прийти, почему-то, поэтому трясется. Как это лучше пофиксить? Двигается с помощью velocity = move_and_slide(velocity )
Аноним 20/06/21 Вск 19:08:53 749727 101
>>749723
>Точнее он не может прямо в нее прийти
Аноним 20/06/21 Вск 19:16:12 749729 102
>>749723
Пальцем в небо: у него длина "шага" больше расстояния до точки, вот он её и перешагивает. Надо если расстояние меньше определённой величины - телепортировать
Аноним 20/06/21 Вск 20:35:37 749750 103
Аноним 21/06/21 Пнд 02:40:31 749776 104
Противники дерутся и в какой-то момент один из них погибает через queue_free. Почему-то проверки "if enemy:" не работают, хотя в отладчике вижу, что var enemy = null, ставлю везде проверку на "is_instance_valid(enemy)". Во дела.
Аноним 21/06/21 Пнд 04:20:53 749778 105
Аноним 21/06/21 Пнд 09:03:15 749781 106
>>749777
Надо юзать референс. Референсы чистит автоматом.
Аноним 21/06/21 Пнд 21:14:38 749953 107
>>749798
> когда вызываешь queue_free, зануляй и переменную
А ещё лучше, как диды, сделать себе утилитарную функцию free_and_nil (у дидов в стандартных либах было, нам же придётся где-нибудь в утилитарном синглтоне объявить)
> func free_and_null(obj : Object, queue : bool = true):
> > if queue:
> > > obj.queue_free()
> > else:
> > > obj.free()
> >obj = null

Аноним 21/06/21 Пнд 21:20:43 749955 108
>>749775
> Если я не хочу
На нет и суда нет. Всё тобой вышеупомянутое сделано не просто так. Движок не просто так зовётся движком. У движка архитектура. Благодаря архитектуре ты встраиваешь в готовый продукт (в нашем случае игру) сторонние компоненты не абы как, а в строго определённые места и строго определёнными способами. Если бы ты мог просто импортнуть длл-ки, то какой же это движок? Так, голое ИДЕ.

Через шарп можно.
Аноним 21/06/21 Пнд 22:59:33 749988 109
Аноним 21/06/21 Пнд 23:36:56 749995 110
у
Аноним 22/06/21 Втр 13:20:40 750075 111
>>750013
Ну вот, видишь. Всё не так страшно. Но зато у тебя уже есть готовый адаптер (твой натив-плагин), который может распарсить полученные данные и распихать их по нодам годота.
Аноним 24/06/21 Чтв 20:25:06 750621 112
>>750370
Да стандартный вывод он и в африке стандартный. Было бы удивительно, если бы он не заработал.
Идея адаптера ( https://ru.wikipedia.org/wiki/Адаптер_(шаблон_проектирования) ) же в том, что твоя сторонняя либа ничего не знает о годоте. Годот ничего не знает о либе. А вот натив-плагин (адаптер) знает обоих и может через интерфейс годота обмениваться данными с годотом, а через интерфейс сторонней либы - с ней.
Аноним 24/06/21 Чтв 22:46:53 750631 113
Как заставить Control-узел расширяться при расширении размеров его детей? У меня узел Panel, в нем HBoxContainer, в нем TetureRect и Label. Размер Panel не меняется, текст в Label выходит за рамку.
Аноним 24/06/21 Чтв 23:05:15 750632 114
>>750631
И как уменьшить, если текст стал короче?
Аноним 25/06/21 Птн 07:08:16 750646 115
Безымянный.png 13Кб, 1048x165
1048x165
Справа от 959 и 620 по сигналу появляются стрелочка и число. Хоть и ХБоксКонтейнер, а похуй, накладывается, зато панель, на которой это все находится, расширится, ну что за хуйня бляха!
Аноним 25/06/21 Птн 08:05:15 750652 116
>>750646
Ай, я там использовал Панель, а надо было ПанельКонтейнер
Аноним 25/06/21 Птн 09:07:48 750655 117
А почему вот это не работает?
if child extends Container :
Ошибка:
Parse Error: ':' expected at end of line.
Аноним 25/06/21 Птн 09:09:29 750656 118
>>750655
А, надо
if child is Container :
Аноним 25/06/21 Птн 09:11:59 750657 119
Почему в классе Control есть функция rect_size(), а в ее дочернем PanelContainer ее нет?
Аноним 25/06/21 Птн 10:31:28 750661 120
Двущ, за тайлмап поясни.
Хочу взять нод, запихнуть тайлмап, отчертить комнату.
И сделать таких комнат штук 5-6, чтобы потом склеивать ноды в разном порядке, чтобы строить уже уровни.
Говно идея? Может есть что по лучше из вариантов?
Аноним 25/06/21 Птн 10:43:17 750663 121
>>750661
По мне лучше комнаты закодировать в текстовом виде, и на основе этого текста отрисовывать без лишней мороки с гуём.
Аноним 25/06/21 Птн 10:48:56 750664 122
>>750663
Я когда-то в csv файлах хранил заготовленные комнаты.
Для рогалика збс, пара файлов - пара слоёв(пол\стены\враги\предметы), но чот для годота это хуета как по мне.
Или я может долбаёб и не разобрался ещё до конца.
Аноним 25/06/21 Птн 14:27:06 750691 123
>>750657
Прячет.
>Очень часто потребность в сокрытии методов получения и установки значений возникает в связи с разработкой более богатого интерфейса, предоставляющего дополнительное поведение.
https://refactoring.guru/ru/hide-method
Аноним 25/06/21 Птн 14:31:09 750693 124
>>750664
> я может долбаёб и не разобрался ещё до конца
Ставлю бочку нефти на это.

В нескольких прошлых тредах я неоднократно убеждал анонов, что данные игрового мира должны быть платформонезависимы, в случае с годотом платформой является сам годот, его иерархия классов и его дерево сцены. Ты должен хранить данные уровней без привязки ко внутренним потрохам годота. То есть, ни о каком тайлмапе описательный язык твоего файла данных знать не должен.
Аноним 25/06/21 Птн 20:33:40 750730 125
Почему, когда PanelContainer раздувает в стороны при изменении в Remote любого значения margin контейнер ужимается до размера содержимого, а при изменении в коде не ужимается?
Аноним 25/06/21 Птн 21:52:35 750733 126
>>750730
Потому что ему сигнал об изменении размеров не приходит. Пришли ему вручную этот сигнал.
Аноним 26/06/21 Суб 01:06:42 750750 127
>>750733
Да вроде приходит. Послал вручную, не помогло.
Пускал сигнал в _процессе - тоже не помогает.
Если законнектить и в _on_resized() изменять марджин, случается Stack Overflow (Stack Size: 1024).
Как сделать-то
Аноним 26/06/21 Суб 01:11:06 750752 128
>>750750
Короче, если сделать вот так
>func _process(delta):
>>emit_signal("resized")
>>margin_right -= 1
>>margin_right += 1
то сжимается, но это происходит не моментально, вижу сперва большую рамку, а потом тут же она становится маленькой.
Аноним 26/06/21 Суб 01:29:07 750753 129
>>750752
Даже вот так достаточно
>func _process(delta):
>>margin_right -= 1
>>margin_right += 1
Аноним 26/06/21 Суб 03:16:14 750754 130
>>750752
Происходило не моментально, потому что я удалял старые лэйблы через queue_free. Поставил просто free и ничего больше не дергается. И даже процесс не нужен. Во дела.
Аноним 26/06/21 Суб 06:03:40 750757 131
Мужики, здарова. Смотрите, у ноды Button два сигнала: button_down() и mouse_exited().
Mouse_exited() сам по себе хорошо отрабатывает, когда курсор покидает кнопку,
но при зажатой кнопке (когда прошёл сигнал button_down()), mouse_exited() не срабатывает когда курсор выходит за пределы кнопки.
Точнее сработает спустя какое-то время, когда отпустишь кнопку на мышке за пределами Button.

Это можно как-то порправить?
Аноним 26/06/21 Суб 09:55:31 750761 132
У меня камера2д, а точнее ее позишн, выходит за правый и нижний предел и если дошел до правой стороны экрана и хочу передвинуть экран влево, мне приходится ждать, пока позишн вернется. А если он уедет слишком далеко вправо или вниз или вправо-вниз, то вообще непонятно где камера и куда нажимать, чтобы она вернулась. Короче очень уродливо это все получается.
Аноним 26/06/21 Суб 12:26:18 750766 133
>>750761
для камеры существуют лимиты
Аноним 26/06/21 Суб 12:32:35 750770 134
>>750766
Лимиты установлены. Позиция камеры спокойно уходит за правый и нижний лимит.
Аноним 26/06/21 Суб 12:49:33 750776 135
>>750770
Если совсем невмоготу и не фиксится, попробуй закостылить.
Когда камера обнаруживает какую-то деталь на правом нижнем лимите, включается скрипт "если позиция камеры > максимальный лимит, то позиция камеры = максимальный лимит"
Меня бы за такое половина кодеров выебла с особой жестокостью, а ЯнДев бы одобрил.
мимокрокодил
Аноним 26/06/21 Суб 16:45:30 750829 136
Безымянный.png 18Кб, 673x151
673x151
Есть какой-то способ сжать использование видеокарты текстурой, кроме как сжать под видеокарту или изменить масштаб?
Аноним 26/06/21 Суб 18:59:33 750851 137
>>750831
Каким образом шейдер узнает является ли это на рисунке домиком первого или второго игрока? Это только если здания выделять как указывает автор ниже.
>>750836
Для видеокарты - да, возможно дешевле. Для упрощения кодовой базы и вычислений - хуже. Грузить каждое изображение гораздо дороже, чем тайлмап.
Ведь как то раньше делали огромные тайлсеты под юнитов в героях 3. С кучей картинок и анимаций. И ничего, не лагало.
Аноним 26/06/21 Суб 19:00:20 750852 138
>>750836
Эм, как ты видишь, видеокарта жрет на каждый пиксель 1 байт. Ей пофиг лоуполи там или нет. Она никак не оптимизирует изображение.
Аноним 26/06/21 Суб 19:12:31 750854 139
>>750853
Ну, у меня не 3д. И вряд ли будет 3д.
Аноним 26/06/21 Суб 19:17:30 750856 140
>>750855
Это бы очень помогло. Я пытался писать такой шейдер, но тайлмапе было грустно от таких попыток.
Аноним 26/06/21 Суб 19:21:14 750857 141
>>750855
Правда есть нюанс. Передние объекты могут цветом залезть на заднюю ячейку, где другой цвет игрока. Я могу как-то взяв ячейку с текстуры ее перекрасить?
Аноним 26/06/21 Суб 20:11:40 750864 142
Аноним 26/06/21 Суб 21:59:47 750879 143
Аноним 26/06/21 Суб 23:31:44 750884 144
>>750836
В общем, я покопался и нашел самый дешевый способ. Через вижуал сервер делать канвас итемы, которые будут брать из дикта RECT'ы для обрисования тайла. После этого к ним прикрепляется один из шейдеров замены цвета у игрока. После этого канвас итемы можно перемещать и делать с ним что угодно.

Выигрыш:
- 150 мб видеокарты минимум
- Оперативка не заспамлена бесполезными параметрами объектов
-Все работает очень быстро, т.к. ты идешь напрямую в вижуал сервер.

Минусы:
- Если понадобится анимация, то работа с нодами будет проще чем канвасы.
- Распределять и перерисовывать в файлике все минимум сутки.
- Канвас итемы жрут ноды. После 4.2х тысяч нод годот превращается в тыкву (в билдах 3.2 тестил, сейчас хз). Можно рисовать на обычном канвасе, но на сколько понял, придется его перерисовывать, если объект надо нарисовать сзади.
Аноним 26/06/21 Суб 23:56:57 750887 145
>>750879
О, немного горжусь собой.
Аноним 27/06/21 Вск 01:50:51 750889 146
Доступ к размеру размеру видимой игровой области это get_viewport().size.
А если я зуммировался, то как размер видимой области получить?
Аноним 27/06/21 Вск 16:59:20 750933 147
>>750889
>А если я зуммировался
get_porrige()
Аноним 27/06/21 Вск 17:30:54 750936 148
674567457.jpg 7Кб, 247x250
247x250
Аноним 28/06/21 Пнд 06:30:11 750984 149
Я четыре дня делал камеру
Аноним 28/06/21 Пнд 06:42:45 750985 150
>>750936
Пацаны я зуммировался ((((((((((
Аноним 28/06/21 Пнд 07:47:40 750987 151
>>750933
>get_porrige(porrige)
Пофиксил тебя. Хотя я всё равно не согласен, что для пориджа отдельная функция, уж лучше get_meal(porrige) если конкретный порридж, или get_meal(GLOBAL.MEALSARRAY.PORRIGE) если в принципе
Аноним 28/06/21 Пнд 08:28:53 750989 152
Аноним # OP 28/06/21 Пнд 16:13:05 751034 153
1624885978058.mp4 713Кб, 800x450, 00:00:02
800x450
> зуммировался
> порридж
> порридж
Аноним 28/06/21 Пнд 16:50:43 751043 154
>>751034
Оооо зумера порвалооооооооооо
Аноним 29/06/21 Втр 05:14:42 751128 155
Как запускать редактор в фулскрине по-умолчанию?
Аноним 29/06/21 Втр 07:34:30 751131 156
2021-06-29 07-2[...].mp4 1138Кб, 1920x1080, 00:00:13
1920x1080
Пытаюсь заставить спрайты отображаться поверх других таких же спрайтов при наведении на спрайт мышкой. При наведении на красный спрайт почему-то выскакивает зеленый раньше красного. В одной точке есть и красный, и зеленый спрайты. Может мне кто-нибудь объяснить почему так выходит?
https://pastebin.com/eT6XRcYi
Аноним 29/06/21 Втр 07:44:13 751132 157
godot.windows.o[...].png 11Кб, 356x186
356x186
Аноним 29/06/21 Втр 08:10:27 751134 158
>>751131
А в самой игре срабатывает только когда курсор на границе прямоугольника CollisionShape
Аноним 29/06/21 Втр 09:49:56 751137 159
>>751134
У меня Ареа2Д имеет детей-Контрол ноды. Поставил им всем майус фильтр Игноре, заработало.
Аноним 29/06/21 Втр 12:44:12 751145 160
1624959852864.png 11Кб, 424x488
424x488
>>751128
В свойствах ярлыка, не?
Аноним 29/06/21 Втр 12:55:30 751146 161
Аноним 29/06/21 Втр 12:55:58 751147 162
Аноним 29/06/21 Втр 12:58:55 751148 163
Аноним 29/06/21 Втр 13:02:42 751149 164
>>751148
Да я нубяра какой я движкосрачир )))))
Аноним 29/06/21 Втр 13:17:18 751152 165
1624961836855.png 184Кб, 604x567
604x567
Аноним 29/06/21 Втр 14:49:52 751168 166
>>751152
ну что за клоунада
Аноним 30/06/21 Срд 14:54:24 751347 167
>>751147
У меня дети в разных узлах находятся
Аноним 30/06/21 Срд 21:03:21 751406 168
>>751347
Ты всерьёз считаешь это проблемой? И неприменимостью туториала?
Аноним 01/07/21 Чтв 20:28:43 751500 169
Аноним 01/07/21 Чтв 20:38:53 751504 170
Подскажите нубу в чём проблема.
Я из одного скрипта добавляю скрипт к другой ноде.

Первый скрипт:
> extends Node
> func _ready():
> > $"/root/Node/Sprite".set_script(load("res://Sprite.gd"))

Скрипт, который приаттачиваю:
> extends Sprite
> func _init():
> > print("Yop")
> func _input(event):
> > if event is InputEventMouseButton:
> > > print("Yep")

Функция _init() печатает Yop, что как бы говорит, что скрипт добавлен. А _input(event) не пашет. Хотя если скрипт добавлять вручную, а не кодом, то всё нормально.
Аноним 01/07/21 Чтв 21:08:47 751507 171
>>751504
У меня работает...Скинь скриншот сцены полностью, что ли.
Аноним 01/07/21 Чтв 22:13:44 751511 172
>>751504
Я рекомендую не использовать load для загрузки скриптов в ноды, если ты в точности не уверен, что хочешь именно загружать скрипты в ноды.
Лично для меня, после того, как Хуан ввёл именование классов, этот функционал стал deprecated. Load пусть грузит ресурсы (в том числе packed-сцены), а объекты я теперь создаю через языковые механизмы:
> class_name MySprite extends Sprite
и
> $"/root/Node".add_child(MySprite.new())

Однако, у тебя скорее всего Спрайт - это отдельно загруженная упакованная сцена без скриптов, к которой ты хочешь грузить разные скрипты. Тут надо крепко задуматься, всё ли ты правильно делаешь? ИМХО, загрузка скриптов в ноды - это утилитарный функционал движка и даже скорее редактора. В игре тебе надо всё иначе организовать. Заготовить скрипт с параметрами в сохранённой сцене. Инициализировать сцену параметрами после загрузки. Я бы так делал.
Аноним 01/07/21 Чтв 22:16:17 751512 173
Screenshot.png 59Кб, 956x855
956x855
Аноним 01/07/21 Чтв 22:32:04 751513 174
>>751511
Задумка у меня простая. На сцене сотня спрайтов, и у каждого скрипт с _input(event) в которой проверяется mouse movement. Я вот думаю, не сильная ли будет нагрузка. По сути достаточно чтобы скрипт работал только у пяти спрайтов в определённый момент времени. Вот и хочу добавлять, убирать скрипты ненужным в данный момент спрайтам.
Аноним 01/07/21 Чтв 22:58:54 751517 175
>>751513
Вводишь марку is_active и все
Аноним 01/07/21 Чтв 23:16:40 751525 176
Аноним 01/07/21 Чтв 23:21:18 751526 177
>>751521
Спасибо! То что надо.
Аноним 01/07/21 Чтв 23:27:03 751527 178
>>751521
Был бы ты тёлочкой, я бы тебя поцеловал.
Аноним 02/07/21 Птн 00:19:57 751534 179
>>751527
Поцелуй его пабрацке ногомо.
Аноним 02/07/21 Птн 03:58:52 751547 180
>>751521
Нельзя его юзать. Тебе может понадобиться менять визуал у ноды. И этот код смены визуала ты явно будешь хранить в скрипте. А ты его вырубил.
Аноним 02/07/21 Птн 08:49:12 751557 181
>>750796
>Я так понимаю, объясняют это тем, что если бы mouse_exited срабатывал то тут же начинали бы нажиматься соседние кнопки, при том что первую ты еще не отпустил.
Это кстати работает не только для кнопок: к TextureRect приконнектить два сигнала mouse_entered() и mouse_exited(), и они перестают работать, если зажать кнопку мыши, когда курсор находится над TextureRect.

Для себя пока нашёл такое решение: отказался от кнопок, вместо них использую спрайты, на которые вешаю этот скрипт https://pastebin.com/yztZazat
Аноним 02/07/21 Птн 08:55:51 751558 182
>>751547
>И этот код смены визуала ты явно будешь хранить в скрипте. А ты его вырубил.
Хранить этот код в скрипте, который не будешь вырубать. Не?
Аноним 02/07/21 Птн 09:09:43 751559 183
Аноним 02/07/21 Птн 12:16:20 751577 184
Аноним 02/07/21 Птн 21:11:04 751644 185
Как можно зарендерить 3D меш поверх UI?
Аноним 02/07/21 Птн 21:39:41 751651 186
>>751644
Вьюпортом. В UI-контролах даже есть такой. Во вьюпорте стало быть, рендеришь требуемый меш. Вьюпорт показывается поверх предыдущих нод и позади следующих.
Аноним 03/07/21 Суб 15:05:36 751709 187
Я так понимаю через таймлайн AnimationPlayer'а к синглтоновскому-сеттеру/параметру доступ не получить, да?
Аноним 03/07/21 Суб 20:11:12 751739 188
1625332273692.png 9Кб, 414x214
414x214
>>751732
> через интерфейс не нашел как добавить
Через интерфейс плеера анимаций можно вписать абсолютный путь к синглтону. Только есть один нюанс. У меня на 3.3.2. Ключи не добавляет, пишет, что требуется 3 параметра, а добавление вызывается с двумя. поэтому, если прям сильно надо, то сначала настрой анимацию на прокси-ноде того же типа, что и твой синглтон, затем замени путь. Пик рилейтед.
Аноним 03/07/21 Суб 20:12:53 751740 189
>>751651
Да, получилось, спасибо.
Аноним 03/07/21 Суб 22:09:27 751749 190
>>751741
На твоём месте, если бы мне понадобился анимированный синглтон, я бы добавил анимационный плеер прямо в него, а ещё лучше - сразу связку из плеера и анимационной стейтмашины, всё настроил бы в редакторе, а в игре мой код бы просто делал что-то типа такого:
> Singleton.transit_to("new_state")
Аноним 04/07/21 Вск 00:51:03 751771 191
>>751749
Благодарю за пояснение
Аноним 04/07/21 Вск 00:59:11 751772 192
>>751771
Да, это какое-то очень странное говно, ставлю абсолютный путь, пытаюсь добавить метод/параметр из синглтона, пишет неправильный путь, но если использовать сначала ноду из сцены, добавить метод/параметр и потом переименовать все под синглтон - работает без проблем. Никогда бы не догадался до такого обхода.
Аноним 04/07/21 Вск 13:02:32 751791 193
Что нового?
Аноним 04/07/21 Вск 15:44:58 751847 194
Никто не знает как сделать кастомный анимейшн плеер?
Аноним 04/07/21 Вск 15:51:10 751851 195
Аноним 04/07/21 Вск 16:58:21 751864 196
>>751772
Ну что тут сказать? Это хак. В его классическом смысле (как лайфхак, только коде-хак). Что-то не задумывавшееся разработчиками. И что интересно, хак этот я придумал читая твой вопрос. Читаю пост, и такой себе думаю, я ж там клацал и открывался текстбокс с вводом пути вручную, а что если туда ебануть абсолютный путь до синглтона? И такой открыл, и такой ебанул, а он такой ключи не добавляет. А я такой путь вернул, ключ добавил, путь переписал, запустил - работает. И я такой - ОооООоо, чеэсвэээ!
>>751791
> Что нового?
Говорят, Хуан в четвёрке все попапы сделает в отдельных окнах. Или не все? Поясните, посаны. Это какая-то хуйня, если он так сделает. Мне например внутриоконные псевдоокна, которые есть сейчас, больше подходят.
Аноним 04/07/21 Вск 17:33:20 751870 197
>>751864
> Мне например внутриоконные псевдоокна, которые есть сейчас, больше подходят.
К хорошему быстро привыкаешь.
Аноним 04/07/21 Вск 18:27:48 751876 198
>>751849
Тики для вызова функций на определенном тике.
Аноним 04/07/21 Вск 18:40:54 751878 199
>>751876
Но ведь это уже есть. Или что ты имеешь ввиду?
Аноним 04/07/21 Вск 18:48:17 751880 200
1625413696135.png 14Кб, 281x196
281x196
1625413696158.png 11Кб, 366x273
366x273
1625413696174.png 3Кб, 314x71
314x71
1625413696175.png 13Кб, 407x211
407x211
Аноним 04/07/21 Вск 18:49:44 751881 201
1625413783698.png 2Кб, 280x47
280x47
>>751880
Третья пикча не та:
Аноним 04/07/21 Вск 19:02:38 751882 202
>>751878
У меня все нарисовано через визуал сервер. Я столкнулся с проблемой апдейта ридов и подсчета тика без таймера через сохранение инты предыдущего тика времени ос.

Крч у меня 2 проблемы.
1. Я хз как обновлять рисунок сделанный через VisualServer.canvas_item_create()
2. Я хз как по времени OS сделать нормальную обработку анимаций через redraw
Аноним 04/07/21 Вск 20:15:26 751891 203
>>751882
По первому пункту ящитаю (с дивана) что редактор так же делает, например, когда в запускаемом проекте ты выставил галочку "показывать коллизии". Он эти коллизии рисует напрямую через АПИ вижуалсервера (осторожно, диван!) поэтому я бы глянул исходники редакторной части движка, чтобы подглядеть, как это реализовано там.
По второму пункту примерно то же, только непонятно зачем тебе время ОС, один хуй там те же тайминги, что приходят в мейнлуп (тоже диванное предположение, требуется проверка, но впадлу).
Аноним 04/07/21 Вск 21:54:57 751911 204
>>751891
Разобрался. Вызов VisualServer'a идет отдельным потоком в движке, и годот прост не успевал почему-то получить новые параметры для перерисовки.

По второму пункту ещё не пробовал. Мне хочется, чтобы object'ы которые висят в памяти и не имеют нод спокойно себя рисовали и анимировали сами, либо через такую же обертку не несущую оверхеда
Аноним 05/07/21 Пнд 01:57:34 751938 205
Может вопрос и глупый, но должен был задать

Вижу, что на оф. сайте можно скачать отдельную версию с поддержкой Mono. Вопрос такой: в стим версии есть вообще поддержка Mono?
Аноним 05/07/21 Пнд 17:38:56 751994 206
>>751938
В чем профит стим версии перед нормальной?
Аноним 05/07/21 Пнд 18:49:11 752009 207
>>751994
Тоже не понимаю. Может Хуан изначально местный ассетстор планировал через стим воркшип организовать, хз.
Аноним 05/07/21 Пнд 21:22:19 752022 208
Как получить дубликат объекта в годоте?
Как сравнить кастомные классы?
Аноним 06/07/21 Втр 02:44:40 752036 209
>>752025
у object нет метода duplicate.
Аноним 06/07/21 Втр 12:59:58 752075 210
>>752067
Но я не могу получить класс кастомного объекта. Я его не создам, не прописав заранее класс в код. А значит не смогу сделать обертку для object на века.
Аноним 06/07/21 Втр 15:33:12 752098 211
Вот бы кто нибудь сделал игруху на годоте
Аноним 06/07/21 Втр 22:45:29 752158 212
>>752084
Чтобы тащить гарбадж коллектор за собой? Увольте.
Аноним 06/07/21 Втр 22:49:33 752159 213
Аноним 07/07/21 Срд 00:20:59 752164 214
>>752098
Вот как товарищ погромизд освободится, так может и продолжим делать.
Аноним 07/07/21 Срд 00:55:38 752165 215
Аноним 07/07/21 Срд 01:06:21 752166 216
>>752165
Пытающийся в графен. Пиксели содомирую, короче.
Аноним 07/07/21 Срд 05:48:36 752182 217
Чот тайлмапы не оч понял.
Делаю одиночные плитки, могу кодом выставлять через set_cell, делаю атлас и могу только первую картинку юзать из атласа.
Типо кодом только одиночными плитками можно пользоваться и автотайлами?
Аноним 08/07/21 Чтв 08:50:43 752416 218
>>752328
Тьфу блядь, ещё раз прочитал доку и увидел, спасибо.
Аноним 08/07/21 Чтв 10:31:35 752417 219
2021-04-1618-20[...].mp4 535Кб, 2560x1440, 00:00:07
2560x1440
2021-07-08 08-2[...].mp4 1513Кб, 1920x1080, 00:00:10
1920x1080
Как сделать, чтобы окно вело себя так, как на видео? Чтобы игра и объекты всегда были в центре и не меняли расположение, как на втором видео.
Аноним 08/07/21 Чтв 11:44:32 752424 220
>>752417
anchor или привязки
Аноним 09/07/21 Птн 20:53:50 752750 221
Аноним 09/07/21 Птн 22:40:00 752759 222
У кого-нибудь случайно шейдеров не завалялось, которые бы определенный цвет зеркалили?
Аноним 10/07/21 Суб 03:24:13 752778 223
Почему шецдера со screen_texture не работают? Что за лажа?
Аноним 10/07/21 Суб 14:16:27 752839 224
>>752811
В глес 3 жалуется мне на какой то буфер, блеать. В редакторе работает, в игре нет. Мб я какую настройку в проекте не включил, хз
Аноним 10/07/21 Суб 14:18:07 752840 225
>>752839
Вот такую муйню получаю.

E 0:03:52.159 copytexscreen: Can't use screen texture copying in a render target configured without copy buffers.
<C++ Error> Condition "storage->frame.currentrt->effects.mipmaps[0].sizes.size() == 0" is true.
<C++ Source> drivers/gles3/rasterizercanvasgles3.cpp:1259 @ copytexscreen()
Аноним 11/07/21 Вск 00:45:47 752963 226
Аноним 11/07/21 Вск 04:41:32 752971 227
>>752963
BackBufferCopy почему-то не работает. Я без понятия как его использовать.
Аноним 11/07/21 Вск 15:47:45 753017 228
Аноним 11/07/21 Вск 16:53:31 753030 229
>>753017
>>752963
Бля, анон, я не знаю ответа на этот вопрос. Прости!
Аноним 11/07/21 Вск 19:55:56 753077 230
>>753030
Мне даже в чате годота не отвечают. Это очень странно
Аноним 11/07/21 Вск 20:04:44 753079 231
Безымянный.png 155Кб, 1245x856
1245x856
>>753038
Я не понимаю что происходит. Я взял шейдер из оф демки, поместил на спрайт и получаю ошибки
Аноним 11/07/21 Вск 20:22:59 753084 232
>>753079
В оф демо работает, кстати. И пока я хуй знает почему.
Аноним 11/07/21 Вск 21:02:33 753091 233
Так, было в какой-то настройке дело. Теперь правда все равно нихуя не работает. Но это хотя бы не очень раздражает.
Аноним 11/07/21 Вск 21:14:29 753092 234
Безымянный.png 92Кб, 606x373
606x373
Шейдер если видит что угодно кроме цвета заднего фона, красит воду в бело-красный (чтобы виднее при тесте) цвет. В зависимости от угла наклона камеры, шейдер либо работает, либо нет. Что блять странно и уродливо. Кто-то с этим сталкивался?
Аноним 11/07/21 Вск 21:17:30 753094 235
>>753092
Шейдеры - штука капризная, если ты конкретно не знаешь, что именно ты делаешь - шейдеры тебя выебут. И они тебя судя по постам уже ебут, ибо ты копипастишь. Что посоветовать тут? Совет может быть один: пиши свой шейдер с нуля.
Аноним 11/07/21 Вск 21:58:38 753103 236
>>753094
Я и пишу свой шейдер с нуля. Есть что по делу сказать? Почему шейдер у которого логика "вода наехала на что угодно фоном != цвета фона сделай белым" - не работает на весь экран?
Аноним 11/07/21 Вск 22:21:02 753105 237
1626031262296.jpg 38Кб, 600x750
600x750
>>753103
> Есть что по делу сказать?
Есть.
> Почему шейдер не работает
Потому что ты не разобрался в вопросе и не знаешь, что ты делаешь.
Это не троллинг.
Это мой личный опыт, в геймдеве, в годоте и вообще в айти.
Предлагаю тебе пикрелейтед.
Аноним 11/07/21 Вск 22:32:11 753109 238
>>753106
У меня канвасы которые нарисованы через visual server поверх node2d. Чтобы их выстраивать попорядку, я использую z index, но что-то мне подсказывает, что у годота есть на z-index оптимизон, отрубающий получение скрин текстуры? потому что шейдеры работающие непосредственно с текстурой канваса - в порядке.
Угол наклона камеры, эт я конечно шизофразно спиздел. В общем в зависимости от положения камеры шейдеры либо включаются, либо отключаются, хотя канвасы ещё в камере (но видимо годот думает, что уже нет).

>>753105
Естественно я не разобрался в вопросе. Потому что я нахуй не понимаю, что происходит. Я делаю шейдер, на тестовом полигоне он работает как надо. Сую в мейн сцену, а игра думает, что моя камера не смотрит на объект и вырубает работу шейдера нахуй. Покажи мне пожалуйста документацию, где описано такое поведение, чтобы я разобрался.
Аноним 11/07/21 Вск 22:33:36 753110 239
>>753109
> Покажи мне пожалуйста
Мне лень. Я лучше пивка ещё ёбну за твои успехи. Давай, успехов там тебе! И хорошего настроения!
Аноним 11/07/21 Вск 22:44:07 753112 240
Аноним 11/07/21 Вск 23:34:05 753118 241
>>753109
Отбой. Мысль про z-index не верная. Все равно нихуя не пашет
Аноним 12/07/21 Пнд 16:13:26 753194 242
4.0 всё еще не вышел?
Аноним 12/07/21 Пнд 16:47:51 753200 243
Аноним 12/07/21 Пнд 20:02:41 753251 244
>>753194
Зачем он? По сути в 3.3 есть все что нужно для разработки игр.
Аноним 12/07/21 Пнд 20:03:57 753252 245
>>753251
Нет предела совершенству.
Аноним 13/07/21 Втр 01:04:14 753289 246
Кто-то сталкивался с 15 screen_texture шейдерами под андроид? У меня жуткие лаги от них.
Аноним 13/07/21 Втр 01:57:06 753295 247
>>753289
Судя по всему:
- backbuffercopy уникален на каждый рид, тем самым превращая устройство андроид, где больше 10+ шейдеров с SCREEN_TEXTURE в лагающее говно.
- Каждый текст до сих пор вызывает draw call, будь то label или что-то иное, вроде draw_text().
- Канвас итем если состоит из нескольких текстур - вызывает 3 дравкола. Да, движку не интересно склеить все текстуры в одно внутри канвас итема и реюзать.

Вопрос в следующем, когда оптимизон от движкопись?
Аноним 13/07/21 Втр 02:36:50 753299 248
>>753295
У меня до сих пор бомбит, что на рисование 30 символов выделяется 20 мб оперативы.
Аноним 13/07/21 Втр 21:10:01 753475 249
>>753295
> когда оптимизон от движкопись?
Форкай и делай сам. Не жди Хуана.
Как только ты напишешь "зачем мне форкать, у меня есть юнити/уеч/гамак/итп" - на тебя моментально от меня летит репорт за движкосрач со всей любовью, побрацке, ногомо.
Аноним 13/07/21 Втр 22:26:48 753484 250
Годотеры, когда альфа 4 версии будет?
Аноним 13/07/21 Втр 23:22:25 753495 251
Аноним 13/07/21 Втр 23:39:33 753498 252
1626208768240.png 596Кб, 1655x1035
1655x1035
>>753495
Кубы содомируются на Вулкане.
Аноним 13/07/21 Втр 23:45:07 753499 253
>>753475
Бле, я так то на годоте игру хотел доделать без форков. А то я сейчас форкану, починю эту залупу или хотя бы методы себе в годот выведу, а за это время движкописи новой версией починят другие баги, на которые я натолкнусь завтра.
Может есть кто знает фишку/костыль чтобы это обойти или имеет влияние в кругах движкопись,чтобы они в работу взяли?
Аноним 14/07/21 Срд 00:08:48 753501 254
>>753499
Нужно быть кабанчиком. Если ты кабанчик, ты подскочишь, порешаешь вопросики, Хуан и Акиен мигом твои пулл реквесты одобрят.
Аноним # OP 14/07/21 Срд 23:24:17 753835 255
>>753825
Спасибо за совет. Это важно.
Аноним 15/07/21 Чтв 00:12:47 753855 256
>>753668
Так они были всегда.

А что в 3.4 будет? Никак не могу найти заявленных фич
Аноним 15/07/21 Чтв 19:14:55 754035 257
Для spatial:
rotate_object_local ( Vector3 axis, float angle ) - вращение в координатах самого объекта (object space)
global_rotate ( Vector3 axis, float angle ) - вращение в координатах world space

rotate ( Vector3 axis, float angle ) - это вращение в координатах родительского объекта (parent space), правильно?
Аноним 15/07/21 Чтв 20:39:31 754063 258
Аноним 17/07/21 Суб 13:30:43 754712 259
>>750984
Хвала Cinemachine. Аой...
Аноним 19/07/21 Пнд 15:53:40 755373 260
Тут есть ребята которые умеют красивые шейдеры писать желающие помочь-проконсультировать?
Аноним 19/07/21 Пнд 16:44:24 755407 261
>>755373
Я не умею, братюнь, сорян. Попробуй видосики на ютубе.
Аноним 19/07/21 Пнд 16:45:58 755408 262
>>755407
Я от туда могу только копировать. А я хочу понять.
Аноним 19/07/21 Пнд 16:48:13 755410 263
>>755408
Чтобы понять, следует читать матчасть. На твоём месте я бы загуглил GLSL и там уже по ссылочкам читал джва месяца.
Аноним 19/07/21 Пнд 18:31:37 755464 264
>>755414
Есть атлас 900х900.
Есть выбранная картинка 300 на 300.
Как шейдером разделить картинку на 8 равных частей?

Как перевернуть изображение через шейдер?
Аноним 19/07/21 Пнд 21:02:36 755541 265
Вот есть у меня VBoxContainer нулевого размера.
Потом я добавляю в него Label-ы через код, по идее его margin-ы и размер должны измениться же?
Потому что все показывается нормально, но в коде эти переменные не обновляются после добавления Label-ов.

Как в связи с этим получить актуальные размеры контейнера?
Аноним 19/07/21 Пнд 22:18:45 755605 266
>>755564
UV атлас текстуры работает не так. Он разделит всю текстуру на 8 частей, а не выделенную часть.

Аноним 19/07/21 Пнд 22:32:53 755625 267
>>755618
Нет, атлас текстура уже порезала мне на 9 элементов 300 на 300.
Я беру по случайному куску 300х300 UV и получаю UV по всей текстуре, а не по этому куску. И соответсвенно этот кусок не могу поделить штатными методами.
Аноним 19/07/21 Пнд 23:36:05 755663 268
>>755634
Тайлмап. И атлас. И не передаёт в шейдер, а один раз на видюхе закешил и берет от туда регионы. По крайней мере так должен делать нормальный движок.
Аноним 20/07/21 Втр 12:44:47 755733 269
>>755663
Чел деление на регионы делается на проце, какой нахуй шейдер, кеш и ещё какая залупа. Просто, если нужно отрисовать несколько регионов этой тайлмапы, создаётся батч и эта текстура уходит на отрисовку, где каждый регион указывает свой прямоугольник. Всё. Никакой хуйни. Так работает любой тайлмап под капотом в любом движке, фреймворке, библиотеке.
Аноним 20/07/21 Втр 13:11:17 755755 270
>>755733
Блэт треды перепутал. Ну да похуй.
Аноним 20/07/21 Втр 14:08:58 755787 271
>>755772
Каким овериндженерингом? Я шейдер пишу под тайлмапу.
Аноним 20/07/21 Втр 20:14:11 755898 272
Аноним 21/07/21 Срд 06:21:42 755980 273
Аноним 21/07/21 Срд 06:35:39 755982 274
лутший движок для игр
Аноним 21/07/21 Срд 11:37:23 756015 275
>>755980
Рано или поздно от этого старья придется отказываться. Сейчас лучше сосредоточиться на Vulkan.
Аноним 21/07/21 Срд 12:13:18 756024 276
1626858797635.png 45Кб, 718x501
718x501
>>755980
> оправдывают удаление GLES2
Но ведь удаляют глес 3. Пруф пик:
Аноним 23/07/21 Птн 20:04:41 756770 277
Блдь а как сглаживать line2d, polygon2d и тд?
Аноним 23/07/21 Птн 20:10:02 756775 278
Аноним 23/07/21 Птн 22:11:30 756814 279
>>756775
Да, но не меняется ничего же
Аноним 24/07/21 Суб 00:06:45 756862 280
>>756838
Появляются тут такие аноны, но редко, на быструю помощь не рассчитывай. Рикаминдую ютуб. Сканера знаешь? Он делал подробный туториал по сборке на андроид.
Аноним 24/07/21 Суб 00:09:39 756863 281
Аноним 24/07/21 Суб 05:01:55 756886 282
>>756838
Хбт сделано под андроид на годоте. Под айос года полтора назад были баги в 3.1. Возможно поправили.
Аноним 24/07/21 Суб 07:34:16 756892 283
>>756863
Пробовал, шейдеры дохнут(
Аноним 24/07/21 Суб 14:19:48 756935 284
1.jpg 179Кб, 1200x631
1200x631
годоти, поясните сложный прикол. почему созданный встроенный меш всегда повернут на 90 градусов? это "фича"?
Аноним 24/07/21 Суб 14:25:26 756938 285
>>756935
почему ось X направлена ВЛЕВО?
Аноним 24/07/21 Суб 17:01:33 757008 286
можно ли как-то перезагрузить ВСЮ игру? Закрыть и сразу же открыть.
Аноним 24/07/21 Суб 18:52:06 757053 287
>>757008
get_tree().reload_current_scene()
Аноним 24/07/21 Суб 19:13:32 757062 288
>>757053
Спасибо конечно, но я же специально выделил слово ВСЮ. Грубо говоря так же, если бы я закрыл и открыл игру.
Аноним 25/07/21 Вск 00:07:18 757219 289
>>757062
> если бы я закрыл и открыл игру
OS.execute("path/to/game")
get_tree().quit()
Аноним 25/07/21 Вск 12:08:07 757396 290
>>757219
Круто, очень близко к тому что я хотел. Я пытался сделать настройки, которые включаются только при перезапуске игры. В итоге сделал временно костыльный недоспособ, но пока хватит.
Аноним 25/07/21 Вск 17:36:16 757524 291
Передаю текст в скрипт и делаю reload();
Если ошибка отсутствует, все норм. Если присутствует - все крашится к хуям. Не хочу, чтобы крашилось.
Как сделать так, чтобы это говно начало мне возвращать ошибку?
Аноним 25/07/21 Вск 18:43:53 757532 292
Безымянный.png 30Кб, 493x446
493x446
>>757524
Вот тут не возвращается ошибка, что меня раздражает. Он просто роняет игру и все.
Аноним 25/07/21 Вск 20:49:19 757586 293
пытаюсь вкатиться, ебался с движением по склону часов пять. Ничего нормального нагуглить не смог
Аноним 25/07/21 Вск 21:00:54 757587 294
Аноним 25/07/21 Вск 21:19:45 757593 295
>>757582
Тоже. Эта хуйня всегда возвращает 0. Ей норм. А потом берет и роняет игру с ошибкой. Сука, ебаный хуан.
Аноним 25/07/21 Вск 21:41:47 757607 296
>>757587
все уже просмотрено, про прыжки нигде не говорят, а у меня именно они косо работают, впрочем похуй, решил своей головой думать и переписать с нуля.
Аноним 25/07/21 Вск 22:12:27 757629 297
>>757600
Конечно, и возврат ошибки о ней. Но хуан на столько жесток, что РОНЯЕТ НАХУЙ ВСЕ при проверке на парсинг, и возвращает ошибку только если при компиляции срабатывает какая-то переменная can run. Я в шоке. Кто-нибудь знает как поправить код и перекомпилить годотю? А то я на С++ на винде заебусь пакеты качать.
Аноним 25/07/21 Вск 22:13:24 757631 298
>>757629
Если кто-то знает как из годота достучаться до:
GDScriptParser - буду благодарен.
Аноним 25/07/21 Вск 22:42:07 757646 299
err.png 31Кб, 1132x569
1132x569
>>757636
Я хочу сам написать этот код на гдскрипте и вкинуть куда-нибудь в консоль или в текстовую ноду.
Как пользоваться нативскриптом так и не разобрался. Если есть норм примеры, дай плз. Тогда я тупо попробую скопировать парсер и анализатор.
Аноним 26/07/21 Пнд 00:19:04 757661 300
>>757656
Я гдскриптом буду запускать питонопарсер, чтобы понять запустился ли гдскрипт?
Аноним 26/07/21 Пнд 00:42:22 757669 301
>>757665
Я попробовал через ос экзекют, он орет с незнакомого символа юникода. Если у тебя есть работающий пример - будет хорошо.

Я бы хотел попробовать сделать прототип, где каждый игрок пишет скрипт своему персонажу, чтобы проходить уровни. Я могу запустить нормальный скрипт, но не могу отловить ошибку чтобы показать, что скрипт кривой. А так же не могу отловить ошибку, чтобы откатить выполнение скрипта, чтобы игрок мог продолжить исправлять скрипт.
Последнее что я хочу - это писать свой лексер и парсер)
Аноним 26/07/21 Пнд 00:45:31 757670 302
>>757669
Вообще, как только кто-то накостылит плагин/ещё что-то позволяющее пользакам адекватно встраивать скрипты в твою игру, это позволит расширить аудиторию годота, хотящих побырому наверстать такого рода игры. Возможен даже асинхронный опенвлрлд, где каждый пишет свой объект и грузит скрипт на сервер, чтобы другие игроки их выкачали.
Аноним 26/07/21 Пнд 00:55:45 757672 303
>>757671
Это устанавливать студию и мучится с прикреплением ее к годоту. Поэтому проще тогда уж на юнити.
Аноним 26/07/21 Пнд 01:00:53 757673 304
>>757672
В общем, тяжёлый пакет говна и то и другое. В гдскрипте прелесть в том, что он весит мало и запускается на любом калькуляторе.
Аноним 26/07/21 Пнд 01:26:48 757677 305
>>757676
Ну да, только как писать токены на кондишены и на for() я пока не знаю.
>>757675
Выглядит здорово!
Аноним 26/07/21 Пнд 01:52:01 757680 306
>>757678
Ну на псевдоязыке такие паттерны я тоже могу к чему угодно написать) А вот как дело до областей видимости дойдет, там не все так просто.
Аноним 26/07/21 Пнд 02:26:55 757686 307
>>757685
Не для твг. Твг я уже не успею.
Аноним 26/07/21 Пнд 02:53:43 757688 308
Обожаю все что связано с геймдевом в C#
\.nuget\packages\godot.net.sdk\3.3.0\Sdk\Sdk.props(29,3): Не удается найти пакет SDK для .NET. Убедитесь, что пакет установлен и версия, указанная в файле global.json (если он имеется), соответствует установленной.
Аноним 26/07/21 Пнд 03:14:46 757689 309
>>757688
Короче т.к. папочка была ещё на 86х, хуанокод не мог залезть в 64х. Я в шоке.
Аноним 28/07/21 Срд 15:35:59 758373 310
Почти дописал свой парсер языка на с#.
Сделал математические, логические и операции сравнения. Установку/получение переменных. Вызов дефолтных функций с любым количеством параметров (без возврата/с возвратов значения). Ифы.
Остались циклы, объявление функций и вызов функци игрока. Потом полировка и все, можно писать игры на программирование.
Аноним 28/07/21 Срд 15:45:56 758388 311
1627476355906.png 18Кб, 401x420
401x420
>>758373
> Почти дописал свой парсер языка
>>757669
> Я бы хотел попробовать сделать прототип, где каждый игрок пишет скрипт своему персонажу, чтобы проходить уровни.
В шапке описан вариант, как такое сделать без танцев с бубном. Правда из-за полного доступа к скриптингу, такой проект будет беззащитен против крыс.
>>747202 (OP)
> - Для приверженцев опенсорца существует возможность распространять проекты в незапакованном формате. Просто скачай темплейт с оф.сайта и положи экзешник/эльфешник в папку с проектом, этого достаточно. Имя файлу можно задать любое. Дополнительно можешь вшить свою иконку в экзешник. После этого, запустившийся файл темплейта обнаружит рядом с собой файл project.godot и начнет грузить проект из него и из файлов, лежащих в распакованном виде в той же директории. Для запущенного таким образом проекта папка res:// становится доступна для записи (если это не ограничено правами доступа в системе).
Данный метод прямо позволяет не ебаться с подгрузкой скриптов в рантайме, а просто модифицировать весь проект на лету (в том числе редактором, и даже лучше редактором), а потом перезапускать "game.exe" в корневой папке проекта.
Аноним 28/07/21 Срд 21:27:32 758620 312
>>758475
Чувак... Я ни слова не сказал о паковании зипов.
Аноним 28/07/21 Срд 21:49:59 758626 313
>>758620
Ты про аддон диалоговой системы который работает на экспрешенах?
Аноним 28/07/21 Срд 23:13:38 758651 314
Короче уже не важно. У меня работает нода for, нода while.
Осталось функции запилить и отлаживать. Возможно, будет работать в разы быстрее чем гдскрипт, лол.
Аноним 29/07/21 Чтв 03:42:19 758681 315
>>758651
Так, вызов пользовательских функций и скопы сделал. Осталось потестить пару дней и можно в релиз, писать игру вокруг всего этого.
Аноним 29/07/21 Чтв 07:49:49 758689 316
>>758626
Я про шаблон экспорта, который по сути является запускным файлом игры. Когда ты делаешь "экспорт", редактор пакует все файлы проекта в PCK кладёт его в указанную тобой папку и рядом кладёт "шаблон экспорта", который по сути является запускным файлом игры. Однако, как написано в ОП-посте, если просто положить в папку с проектом шаблон экспорта, и кликнуть по нему, он запустит игру прямо из проекта.

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

Это уже будет не моддинг, а чистое комьюнити-редактирование игры целиком. Тут уж впору организовывать контроль версий и апрувить пуллреквесты.
Аноним 29/07/21 Чтв 08:11:16 758690 317
>>758689
Я как бы могу скрипты и из годота релоадить. Твои шаблоны экспорта ошибки позволяют отлавливать в коде?
Аноним 29/07/21 Чтв 08:18:25 758691 318
>>758690
> Твои шаблоны экспорта
> Твои
> Твои
Мопед не мой. Я просто разместил объяву.
Аноним 29/07/21 Чтв 09:17:30 758692 319
Порекомендуйте плагин для Google Play In-App Review, которым пользуетесь.
Аноним 29/07/21 Чтв 09:32:21 758695 320
>>758692
Порекомендуй свой, Бардинов, хуле скромничаешь?
>>758693
Телепаты в отпуске. Я позвонил им, они говорят
> пусть пакет нацеливания переустановит
> пусть восстановит удалённые сборки
> пусть перезапустит годот
Аноним 29/07/21 Чтв 09:42:33 758696 321
>>758695
>Порекомендуй свой, Бардинов, хуле скромничаешь?
Чиво блять?
Аноним 29/07/21 Чтв 10:02:54 758700 322
>>758696
Таво, блять. Не отпирайся. Запостил свой вопрос с правильно написанным Google Play In-App Review по которому в гугле первым постом вылезает годот-плагин на гитхабе за авторством некоего И. Бардинова. Рекламируешь свой плагин? Распиши его плюсы и минусы ИТТ.
Аноним 29/07/21 Чтв 10:25:15 758708 323
Аноним 29/07/21 Чтв 10:32:09 758710 324
1627543928868.png 39Кб, 898x445
898x445
>>758708
Зачем обзываешься, Бардинов?
Аноним 29/07/21 Чтв 10:55:50 758715 325
616216313613.png 24Кб, 901x198
901x198
>>758710
Странный человек, сам какой плугин используешь?
Аноним 30/07/21 Птн 04:52:06 758839 326
>>757669
>Последнее что я хочу - это писать свой лексер и парсер)
Попробуй сделать имплементацию Forth. Вся машина пишется примерно за день-два.
>не могу отловить ошибку чтобы показать, что скрипт кривой
У Форт-машины очень мало ошибок, которые легко отловить:
- стек пуст (попытались снять число с пустого стека)
- стек переполнен (практически неактуально на современных ПК)
- слово не найдено (обратились к слову, которого нет в словаре)
Такие вещи как деление на ноль обрабатываются самими словами, а не Форт-машиной. В твоём случае обработка подобных ошибок будет на GDScript, что-то вроде "вызвали слово деления, но второе от вершины слово - ноль, значит нужно кинуть ошибку деления на ноль". Хотя можно сделать и на самом Форте (собственно Форт пишется на Форте, не считая самых примитивных слов)...

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

Далее, ты можешь описать базовые игровые слова, например: идти поворот толкнуть открыть проверить закрасить и т.д. Каждое слово может использовать некоторое количество чисел со стека, например, слово идти берёт со стека число клеток, на которое нужно передвинуть фигурку персонажа в направлении его взгляда, а слово поворот берёт направление поворота (0/1 или 0-3). Игрок может мгновенно взаимодействовать с персонажем вот так:
>10 идти 0 поворот толкнуть 5 идти
Получается "пройти 10 клеток, повернуть налево, толкнуть препятствие, попытаться пройти ещё 5 клеток вперёд", при этом игровой персонаж выполнит эту программу после нажатия enter. Далее можно использовать подпрограммы - слова:
>: пройти-по-кругу ( диаметр -- ) dup идти 0 поворот dup идти 0 поворот dup идти 0 поворот идти ;
>2 пройти-по-кругу 5 пройти-по-кругу 10 пройти-по-кругу
Здесь мы объявляем слово пройти-по-кругу, которое возьмёт одно число со стека и ничего на стек не положит (см. комментарий в круглых скобках, общепринятый формат "берёт -- отдаёт"), в процессе оно дублирует (dup) число на вершине стека для своей работы, но это уже детали реализации. А дальше самое интересное - ходим кругами (квадрат тоже круг, только квадрат) с диаметрами 2, 5 и 10, или ещё сколько угодно. Можем использовать это слово в другом слове. А можем переписать этот код так:
>: влево ( -- 0 ) 0 ;
>: идти-и-повернуть ( направление расстояние -- направление расстояние ) dup идти swap dup поворот swap ;
>: пройти-по-кругу ( диаметр -- ) влево swap идти-и-повернуть идти-и-повернуть идти-и-повернуть идти drop ;
Кстати, повторное объявление пройти-по-кругу перезапишет предыдущее, и в результате в последующем коде мы будем обращаться к самому свежему объявлению этого слова, а на весь предыдущий код это переопределение никак не влияет, что очень удобно в некоторых случаях.
Данный код, во-первых, стал читабельнее, во-вторых, теперь можно будет использовать слово идти-и-повернуть в других словах, например, в хождении зигзагом:
>: вправо ( -- 1 ) 1 ;
>: зигзаг ( длина-шага шаги -- ) 0 do влево swap идти-и-повернуть drop вправо swap идти-и-повернуть drop loop ;
>5 10 зигзаг
Тут использован цикл со счётчиком, который позволяет выполнить код указанное число раз. Всё просто и понятно, если предварительно ознакомиться со стандартными словами и порядком аргументов.

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

мимо джва+ года мечтаю о такой игре с Фортом
Аноним 30/07/21 Птн 05:08:35 758840 327
>>758839
Так и знал, что ошибусь в коде, вот исправленная версия:
>: зигзаг ( длина-шага шаги -- ) 0 do влево swap идти-и-повернуть swap drop вправо swap идти-и-повернуть swap drop loop drop ;
По-русски:
- изначально вершина стека выглядит так: ... длина-шага шаги
- первое число с вершины (шаги) вместе с 0 "съест" do как начало цикла (аналог for)
- потом кладём на вершину "влево" (0), и обмениваем местами (swap) с "длина-шага"
- выполняем слово "идти-и-повернуть", которое сохранит вершину стека нетронутой
- однако "влево" нам больше не нужно, поэтому сбрасываем его (swap drop)
- и теперь кладём на вершину "вправо", снова крутим (swap)
- выполняем второе "идти-и-повернуть", снова сбрасываем направление (swap drop)
- повторяем цикл (loop) пока не досчитаем до "шаги"
- сбрасываем оставшееся "длина-шага" (drop)
Кажется что слишком сложно, но на самом деле всё просто, ощущение сложности создаёт количество операций со стеком и обратная польская запись, но ко всему привыкаешь и принимаешь это как единственно возможное решение любых задач)
Аноним 30/07/21 Птн 06:06:48 758843 328
>>758840
Это очень интересный комментарий, потому что я уже написал свой компилируемый парсер для годота который умеет в базовые конструкции люого языка. Почему твой комментарий интересный? Потому что он интерпретатор. Но уже не охото переделывать.
Аноним 30/07/21 Птн 09:14:04 758852 329
>>758843
>он интерпретатор
Что интересного в простом интерпретаторе? Правда, Форт-машина - не простой интерпретатор, от интерпретатора в ней только интерактивный режим (как в консоли питона или консоли JS), а все новые слова компилируются в шитый код по мере их поступления (из консоли или из файла). В интерактивном режиме Форта невозможно делать некоторые вещи, например, нельзя напрямую использовать ветвление и циклы (только в составе вызываемых слов). Но для простого управления персонажем этого должно быть достаточно, а для чего-то большего описываешь слова и они моментально компилируются.

А что ты сделал? Как так "умеет в конструкции любого языка"? Некоторые языки очень сильно отличаются друг от друга.
Аноним 30/07/21 Птн 10:26:13 758864 330
>>758852
У меня есть:
- создание кастомный функций пользователем
- вызов этих самых функций
- вызов подкапотных функций написанных мной
- обязательность функции Мейн откуда пойдет начало скрипта
- циклы форич, вайл
- ифы
- области видимости
- переменные интового и булевого типа
- математические формулы (плюс, минус, умножить)
- логические операторы - энд, ор, нот
- операторы сравнения - равно, не равно, больше, меньше, больше или равно, меньше или равно

Ну дальше надо дотестить и мб массивы добавить для удобства.
Аноним 30/07/21 Птн 15:14:33 758955 331
>>758864
func main(){
@b = 5;
@g = 1;
for @tile_num in tiles(){
@b = @b+@tile_num;
}
g(@b, @g);
}
func g(@a, @g){
if (@g == 1){
print(@g);
}
print(@a);
}"
Аноним 30/07/21 Птн 15:14:50 758956 332
>>758955
Крч такой код обрабатывает.
Аноним 30/07/21 Птн 17:43:12 758988 333
>>758955
Собачки в коде нахуя? Обоснование есть?
Аноним 30/07/21 Птн 19:40:13 759039 334
>>759015
Вначале была явная инициализация, через вар. Но потом мне показалось это скучным и лишь мешающим пользователю. Плюс переменные с собачками явно видно.
Аноним 30/07/21 Птн 20:47:10 759059 335
В общем ищу программиста, который бы продолжил делать мой проект с написанием кода для игрока. Я не могу сейчас его делать, т.к. два проекта не потяну. Пишите свои тгшчки. У меня гениальная геймдизайнерская задумка.
Аноним 30/07/21 Птн 21:29:33 759080 336
>>759015
> упрощая парсер
Каким образом он упрощает парсер? Вместо case else (в который попадают переменные в парсерах здорового человека, когда все ключевые слова обработаны, а значит остались только объявляения переменных) у него дополнительный case @.
>>759039
> скучным и лишь мешающим пользователю
Очередной аутист, блять.
Аноним 30/07/21 Птн 22:18:33 759098 337
>>759080
Жаль что ты неуч ебаный, который ни одного парсера в глаза не видел и выдумывает как оно работает.
Аноним 30/07/21 Птн 22:28:10 759099 338
Разве это говно может быть красивее, чем предыдущее с собаками?
func main(){
b = 5;
g = 1;
for tile_num in tiles(){
b = b+tile_num;
}
g(b, g);
}
func g(a, g){
if (g == 1){
print(g);
}
print(a);
}
Аноним 30/07/21 Птн 23:03:05 759105 339
>>759098
> ты неуч ебаный, который ни одного парсера в глаза не видел
Смешные заявления от неуча, видевшего ОДИН парсер-...
>>759100
..-.токенизатор
Аноним 30/07/21 Птн 23:32:22 759114 340
>>759105
Смешно читать заявления от неуча, который экстрополирует свою проблему на других.
Аноним 30/07/21 Птн 23:39:40 759116 341
>>759114
> ты неуч, яскозал
Аргументация - моё почтение.
У меня нет проблем с парсерами, такшта мне нечего экстраполировать на залётного тролика, демагогящего редукцией к невежеству.
Аноним 31/07/21 Суб 00:10:13 759126 342
>>759116
Ты поздно с детского сада приходишь. Троллики у него, нет ты дурак. Просто пиздец.
Аноним 31/07/21 Суб 06:13:14 759173 343
>>759172
Нужно удалить в програм файлсе 86 папку с net залупой, если она присутствует в х64. + скачать говно именно той версии, которую поддерживает годот.
Аноним 31/07/21 Суб 09:04:24 759178 344
>>759175
Опять годот виноват в том, что залётный движкосрачер вкатился в опенсорц на инвалидной коляске, свалился на первой же кочке и был выебан древним, отточенным механизмом опенсорца на потеху всех УМВР-пасанов.
Аноним 31/07/21 Суб 21:48:33 759318 345
в 4вермии будет прорыв?
Аноним 31/07/21 Суб 21:54:53 759320 346
Пахом.jpg 48Кб, 604x471
604x471
>>759318
Уже, блять, ты видел как рендерит ахуенно?
Аноним 31/07/21 Суб 21:59:00 759322 347
Аноним 31/07/21 Суб 22:04:36 759325 348
>>759322
Да это уже много, до этого годот был непригоден просто к 3д, а сейчас сразу считай твердочёткий прорыв. Рывок со дна поносного до альфа центавры. Вопрос по производительности остаётся. Осталось заменить гдскрипт на сишарпу. Хотя надо узнать, они же там что-то переделывали, производительность может увеличилась?
Аноним 01/08/21 Вск 12:54:09 759483 349
подскажите как настроечки сделать, допустим я хочу подрубить msaa внутри игры. Я нагуглить не могу, разучился
Аноним 01/08/21 Вск 21:05:26 759607 350
>>759483
Берешь в поиск убиваешь msaa и ставишь галочку.
Аноним # OP 04/08/21 Срд 16:20:58 760758 351
1628083259595.png 9Кб, 287x235
287x235
Блять, за что мне это? Хуан, за чтоооо??? Нахуй ты поп-апы поломал? Неужели нельзя было оставить псевдооконные классы в зелёных нодах, как сейчас в трёшке, и выводить их в отдельное окно через встраивание в выделенный класс на скриншоте? Вот уёбок, прости господи.
Аноним 04/08/21 Срд 17:47:03 760791 352
Безымянный.png 105Кб, 951x706
951x706
Пацаны, годот ставит мне залупу 6.5 версии, а она не работает на 18 жаве. Как мне поднять её до 7.1?
Аноним 05/08/21 Чтв 04:54:13 761041 353
Бля, прошел 9 кругов ада, но все же все запустилась. Но при добавлении адмоба в модули андроида проект фаталит. Кто знает почему?
Аноним 05/08/21 Чтв 23:40:47 761509 354
>>761091
Я думал надо выбирать версию под размер челена.
Аноним 08/08/21 Вск 14:45:15 762542 355
Можно ли как-то без viewport в качестве фона сделать текстуру или градиент? На переднем плане 3D модель.
У меня сейчас в настройках Environment: Background - Color+Sky. Могу менять цвет фона, но хотелось бы туда присобачить текстуру.
Аноним 08/08/21 Вск 18:39:57 762712 356
>>762628
Про Sky там ничего не написано? а то мне без него никак.
Аноним 08/08/21 Вск 19:54:37 762732 357
>>762720
Спасибо, это мне подходит. Сейчас буду учиться растягивать его на весь экран.
Аноним 09/08/21 Пнд 01:20:04 762822 358
>>762720
>во вьюпортах нет ничего страшного
Они мне фпс просаживают.
Аноним 09/08/21 Пнд 14:03:00 762882 359
пук.png 6Кб, 476x531
476x531
Хочу рендерить много-много квадратиков разных размеров, некоторые в будущем могут иметь текстуру и коллизии. Я знаю про компонент TileMap2D, но для него нужно создавать тайлсет, а это создаёт лишние трудности. Короче, хочу рисовать вручную, как на пикриле (я уже делал более сложный код, этот для примера).

Вопросы:
1. Чё как с оптимизацией? Я читал про то, что _draw() выполняется один раз (обновить можно только вызовом update()) и результат кэшируется, но что на счёт видимости на экране - кулинг есть?
2. Как прикручивать физику? Создавать отдельные ноды статикбоди с кучей коллижншейп под каждую зону? Тайлмап ведь именно так делает, только скрытно от юзера?
3. Стоит ли вообще смотреть в сторону тайлмап, если мне не нужна сортировка по Y, разворачиваю тайлы я через код (я пробовал автотайлы, там нужно много лишнего рисовать, не умеет он использовать один тайл в 4 ракурсах сразу, очень жаль), а необходимость делать все тайлы заранее и одного размера меня сильно ограничивает? Заполнение и настройка тайлмапы выглядит как лишние телодвижения, если я могу просто спамить draw_rect().
4. Я правильно понял, что если какой-то тайл имеет полупрозрачность, нужно создавать отдельную тайлмап, на которой будет фоновый тайл? Что-то я не нашёл переключения слоёв, как, например, в Tiled. Полупрозрачность нужна для совмещения разных типов тайлов, но без нескольких слоёв ничего совместить не получится. Довольно странно создавать отдельный тайлмап, при том что вручную я мог бы нарисовать гораздо быстрее (в один проход).
Аноним 09/08/21 Пнд 16:14:01 762943 360
>>762927
>основную сцену перенесешь во вьюпорт, отрендеришь в текстуру и выведешь поверх спрайта
Кстати, это возможно как-то сделать без мерцания экрана? Я пробовал сделать рендер мира в контрол на экране, но если просто перенести сцену во второй вьюпорт, вьюпорт ничего не рендерит до следующего кадра (чёрная картинка на выходе). Если использовать yield (ожидание следующего кадра), то на экране видно мерцание из-за того, что основной вьюпорт рендерит пустую сцену один кадр, пока сцена не вернётся из второго. Так и не понял, как от этого избавиться, и просто нарисовал весь мир простыми формами на картинке, но всё равно интересно, как это правильно делать, чтобы ничего не мигало.

другой анон
Аноним 09/08/21 Пнд 16:36:34 762950 361
>>762943

>Если использовать yield, то на экране видно мерцание
В том числе и из-за этого тоже отказался от вьюпорта, это даже хуже чем снижение fps.

тот самый анон
Аноним 09/08/21 Пнд 16:43:27 762953 362
>>762950
Ещё про фпс: почему-то на линуксе и в html5 drawcalls в два раза больше, чем на андроиде для одной и той же игры.
Аноним 09/08/21 Пнд 20:15:45 763000 363
>>762882
>Я читал про то, что _draw() выполняется один раз (обновить можно только вызовом update()) и результат кэшируется, но что на счёт видимости на экране - кулинг есть?
Ээээ, короче, я потестил. Кэширование и кулинг действительно присутствуют, но есть и нюанс...
1. В "кэш отрисовки" судя по всему, загоняются вызовы функций, а не текстура. То есть если 64 квадрата полностью закрывают большую площадь - норм, если квадратов 4096 на той же площади - у меня просадка до 16 фпс. Я ожидал кэширование в виде текстур...
2. Если ни одного кусочка нарисованного на экране нет, то оно и не рисуется, фпс на 75. Как только на экране появляется хотя бы один пиксель, все эти 4096 вызовов вступают в бой и просаживают фпс. То есть кулинг идёт по целой ноде, а не тому, что нарисовано. Тут я ничего хорошего не ожидал, т.к. ожидал кэширование текстурой.

Из этого следует вопрос, как превратить нарисованное в текстуру, не извращаясь с вьюпортами? Мне бы функцию типа get_texture() или convert_to_texture(), но я не нашёл. Когда ищу "how to draw to texture" поисковик выдаёт обсуждения на тему "как рисовать во вьюпорт", но мне не нужен вьюпорт, мне нужно кэшировать рисунок в текстуру.

Кстати, на SDL2 это делалось очень легко, быстро сделал чанковую отрисовку с кэшированием через текстуры, фпс был очень хорошим. А здесь что-то непонятное...
Аноним 10/08/21 Втр 00:15:24 763034 364
>>763000
>мне не нужен вьюпорт, мне нужно кэшировать рисунок в текстуру
Ладно, не важно, я уже сделал через вьюпорт. Похоже, вьюпорт - единственный способ рендерить в текстуру. Правда, потом приходится повторно вызывать _draw() для очистки рендерера, т.к. пусть даже его не видно в основном вьюпорте, он всё равно рендерится во втором.
Аноним 10/08/21 Втр 08:50:07 763052 365
Аноним 10/08/21 Втр 12:29:18 763073 366
А можно как-то дождаться выполнения update() или _draw()?

У меня такая система получилась:
- в сцене есть второй вьюпорт
- в нём камера и node2d
- нода содержит скрипт рендеринга в текстуру
- чтобы отрендерить что-то:
1. передаём ноде информацию о том, что рендерить
2. вызываем у ноды update() и делаем yield(VisualServer...)
3. в _draw() происходит отрисовка
4. там же делается yield(VisualServer...)
5. текстура из вьюпорта сохраняется в last_texture ноды
6. нода переключает себя в режим очистки
7. снова вызывается update() и yield(VisualServer...)
8. в _draw() ничего не рисуется (очистка кэша)
9. возврат к п.2, переносим текстуру из last_texture в спрайт

Что я ожидаю:
1. Тот, кто запрашивает рендер, ждёт текстуру.
2. Нода-рендерер делает текстуру и возвращает её.
3. Запрашивавший текстуру получает её и довольно урчит.
4. Нода-рендерер чистит свою _draw(), не трогая текстуру.

Что получается: текстура рендерится, но запрашивающий получает неактуальную текстуру, а предыдущую. Если запрашивающий делает два yield(VisualServer...) подряд, то ВНЕЗАПНО происходит две отрисовки текстуры подряд, что в 2 раза затратнее, чем могло бы быть, но текстура приходит верная. Если запрашивающий не делает yield(VisualServer...) совсем, текстура вообще не приходит или приходит какая-то не та, возможно предпредыдущая, сложно понять.

Как это решить? Мне нужно чтобы _draw() вызывался только два раза, а не четыре, но при этом нужно получить текстуру вот прям сразу, а не в следующий раз. Я пытался делать yield(update(), "complete"), но судя по ошибкам в консоли, update() не является функцией (лолшто).

Вообще читал про yield, странный какой-то механизм, тяжело представить себе его работу.
Аноним 10/08/21 Втр 15:10:30 763099 367
Аноним 10/08/21 Втр 18:00:54 763122 368
>>763073
Ладно, я уже сам разобрался.

>ВНЕЗАПНО происходит две отрисовки текстуры подряд
Это я сам виноват. У меня отрисовка текстуры происходит по проверке одной переменной, значение которой менялось после yield, в итоге всё это срабатывало дважды. Перенёс одну строчку и теперь всё один раз выполняется, как задумано.

>запрашивающий получает неактуальную текстуру, а предыдущую
А вот это связано с очень странным поведением yield: если вложенная процедура останавливается ждать чего-то, выполнение вызывающей её процедуры продолжается так, будто процедура уже завершилась. Пример:
func f1():
_ f2()
_ print("1")
func f2():
_ yield(VisualServer, "frame_post_draw")
_ print("2")
Вопрос: что будет выведено? 21 или 12? Логично предположить, что должно быть 21, т.к. f2 по идее остановлена и вместе с ней остановлена f1. А нет, на самом деле yield ставит метку "вернись сюда, когда %сигнал%" и всё, дальше программа выполняется как если бы f2 уже завершилась, и ответ будет 12.

Я обнаружил это только после того, как обмазался print() и начал беспорядочно тыкать yield во все места. Потом догадался создать дополнительный signal, чтобы приостановить вышестоящую процедуру (в примере это f1) и всё заработало. Как-то так:
func f1():
_ f2()
_ yield(self, "f2_done")
_ print("1")
func f2():
_ yield(VisualServer, "frame_post_draw")
_ print("2")
_ emit_signal("f2_done")
Мне кажется, что это жуткий костыль, но по-другому будет только костыльнее. Имхо, о таком должны в мануале большими буквами писать, а то даже если это где-то и написано, я не нашёл. Уж точно во встроенной справке ничего об этом нет...
Аноним 10/08/21 Втр 18:49:33 763136 369
>>763129
Ну да, я читал этот фрагмент, но не так понял.
Аноним 10/08/21 Втр 18:55:11 763137 370
>>763129
Я вспомнил, что меня запутало:
https://docs.godotengine.org/en/stable/tutorials/viewports/viewports.html
>But if you use this in _ready() or from the first frame of the Viewport's initialization, you will get an empty texture because there is nothing to get as texture. You can deal with it using (for example):
># Wait until the frame has finished before getting the texture.
>yield(VisualServer, "frame_post_draw")
># You can get the image after this.
Я зацепился за это "wait" и думал, что весь мой код останавливается, или по крайней мере весь код из одного скрипта. А если выполнение продолжается как после return, то это никакое не "wait", не знаю, как это правильно назвать. Могли хоть предупредить, что "ждёт" только одна конкретная функция...
Аноним 13/08/21 Птн 15:42:38 763602 371
Screenshot2021-[...].png 572Кб, 1920x1080
1920x1080
Screenshot2021-[...].png 582Кб, 1920x1080
1920x1080
Screenshot2021-[...].png 404Кб, 1920x1080
1920x1080
Небо с высоты
Ответ на незаданный вопрос Аноним 14/08/21 Суб 08:32:23 763781 372
1628919142946.png 83Кб, 275x183
275x183
Нахуй ТВГ. Нахуй геймдев. Нахуй всё.
Аноним 14/08/21 Суб 18:53:07 763919 373
>>763781
Ты чего так расстроился-то?
Ну не успели и не успели, да и хрен с ним! Ещё доделаем.
Аноним 15/08/21 Вск 14:55:53 764025 374
Как лучше обнулять вектора:
= Vector2(0, 0)
или
.x = 0
.y = 0
?
Аноним 15/08/21 Вск 15:39:00 764030 375
Аноним 15/08/21 Вск 16:10:39 764033 376
Аноним 15/08/21 Вск 16:42:24 764037 377
>>764025
Очевидно через абстрактную фабрику обнуления векторов.
Аноним 15/08/21 Вск 17:27:57 764042 378
>>764037
а если на фабрике забастовка? как занулять?
Аноним 15/08/21 Вск 21:28:00 764091 379
>>764042
Годогвардейцев пошли, пусть отпиздит шатателей киберлодки.
Аноним 15/08/21 Вск 21:39:33 764098 380
Двач, а как компьютер выводит цвет на экран? Ну вот, допустим, пилю я веб страницу и в css указываю три байта rgb цвета. Как выстроена цепочка событий внутри компьютера, чтобы отобразить указаный мной цвет?
Аноним 17/08/21 Втр 12:26:22 764281 381
>>764025
> Как лучше обнулять вектора:
1. Выбираешь несколько способов, предложенных выше.
2. Оборачиваешь каждый способ в функцию.
3. Запускаешь каждую функцию в цикле 999999 раз, подсчитывая время выполнения.
4. Выбираешь ту, которая выполнялась быстрее всего.
Аноним 21/08/21 Суб 17:38:44 765224 382
Аноним # OP 21/08/21 Суб 20:47:15 765313 383
>>765224
Прости анончик-рокетджамповый-попрыгунчик. Было 10 тредов назад. Никого не заинтересовало (меня тоже). Добавить в шапку?
Аноним 24/08/21 Втр 08:49:32 765804 384
А в годоте есть 2.5д тайлы? Типо как обычные, но которые могут разделяться на слои и перекрывать друг-друга. Если есть, то поставлю годот, gameMaker залупа гойская.
Аноним 24/08/21 Втр 08:56:52 765805 385
Вопрос - я тайлмапу могу натянуть на PlaneMesh, чтобы использовать в качестве террейна?
Аноним 24/08/21 Втр 13:03:22 765816 386
Аноним 24/08/21 Втр 13:09:53 765817 387
>>765816
Я знаю про гридмапу, мне плоское нужно.
Аноним 24/08/21 Втр 13:47:41 765827 388
>>765824
> Вообще в таких случаях за пару часов можно написать конвертор, который берет графон и коллижны с тайлмапа и генерит по ним гридмапу
А есть готовые расширения?
Аноним 24/08/21 Втр 14:02:49 765833 389
>>765832
Не надо, я гипотетически спрашивал. В принципе, наверное, даже коллижнов не надо, раз все плоское будет, я их могу отдельно поверху нарисовать.
Аноним 24/08/21 Втр 14:02:51 765834 390
>>765822
> от встроенного редактора тайлов в годоте жопа горит у многих
Горела во времена 3.0. Нынче он стал поюзабельней. И главное - сторонние редакторы, увы, не обеспечат никогда полной поддержки фич.
Аноним 24/08/21 Втр 15:12:18 765852 391
>>765838
Ну ка покажи мне, как в стороннем редакторе создаются настроенные и функциональные автотайлы. С коллизиями и окклюзиями где надо.
Аноним 26/08/21 Чтв 04:40:54 766067 392
Есть примеры на годоте хорошие имитаций древних софтварных псевдо и ранних 3д рендеров, без фильтрации текстур, с пиксельными тенями и прочим?
Аноним # OP 26/08/21 Чтв 14:53:53 766116 393
>>766067
Не знаю. Не интересуюсь древностью, не испытываю ностальгии. С удовольствием играю в ремастеры денди-игор, без уёбищных пикселов. Ненавижу уёбищное лоуполи плойка-стайл. Извини, не могу тебе помочь.

Тем временем близится время, то самое время, время перекатывать штрендовс. Давайте припомним, кто что хотел в шапочку вшить?
Аноним 26/08/21 Чтв 15:00:15 766118 394
>>766116
Нахуй ты отвечаешь тогда, говна кусок? Всем глубоко насрать, что ты там не испытываешь и во что ты там с удовольствием не интересуешься, человек конкретный вопрос задал, если тебе нечего по теме ответить - молчи в тряпочку.
ПЕРЕКАТ Аноним # OP 26/08/21 Чтв 15:09:35 766123 395
1629979773886.png 91Кб, 500x400
500x400
Аноним 26/08/21 Чтв 15:10:17 766124 396
>>766118
Он тебе ответил, чтобы ты не чувствовал себя одиноко.
Аноним # OP 26/08/21 Чтв 15:31:23 766142 397
>>766124
Тоже, кстати, да. А он ругаться сразу. Злые анончики.
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов