Gamedev


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

<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
361 37 91

Godot #18 Аноним # OP 09/07/20 Чтв 23:39:26 6818391
ОП-пикча (1000Кб, 912x1375)
912x1375
Добро пожаловать в тред любви, взаимопомощи и роботов!

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

Что нового в версиии 3.2.2.
1 Поддержка C# для платформы IOS (и без неё прожили бы)
2 2D батчинг для рендера GLES2 (и без него всё работало)
3 Ре-дизайн системы плагинов Android (что это? зачем? мабилке нинужна)
4 Поддержка DTLS и ENet (серваки пока что только под линуксом, для венды завезут ближе к 3.2.3. не корчи рожу)
5 Улучшенное управление Variants указывающими на высвобождённые Objects (ну теперь-то я зделою игру мечты)
https://godotengine.org/article/maintenance-release-godot-3-2-2

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

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

Архивы:
1 https://arhivach.ng/thread/207802/
2 https://arhivach.ng/thread/388500/
3 https://arhivach.ng/thread/388501/
4 https://arhivach.ng/thread/388502/
5 https://arhivach.ng/thread/388503/
6 https://arhivach.ng/thread/432708/
7 https://arhivach.ng/thread/433902/
8 https://arhivach.ng/thread/436355/
9 https://arhivach.ng/thread/455461/
10 https://arhivach.ng/thread/479963/
11 https://arhivach.ng/thread/489815/
12 https://arhivach.ng/thread/494513/
13 https://arhivach.ng/thread/515567/
14 https://arhivach.ng/thread/533171/
15 https://arhivach.ng/thread/555441/
16 https://arhivach.ng/thread/592945/
Аноним 09/07/20 Чтв 23:42:13 6818412
>>681839 (OP)
Надо будет на неделе бенчмарк проапгрейдить.
Аноним # OP 09/07/20 Чтв 23:43:08 6818423
>>681841
Я только за! Спокойной ночи, годаны!
Аноним 10/07/20 Птн 01:24:38 6818574
Когда в этом говне 2д физику пофиксят? Любые симуляции сложнее кучи мячиков начинают глючить, трястись и проваливаться. Хртьфу.
Аноним 10/07/20 Птн 02:03:02 6818625
Аноним 10/07/20 Птн 03:10:16 6818746
>>681857
>симуляции сложнее кучи мячиков
Разве физические симуляции делают на движках общего назначения? Тут нужно что-то узкоспециальное.
Аноним 10/07/20 Птн 03:28:10 6818767
>>681874
Ставишь в стак 10 квадратных ригидбоди и кидаешь на них еще один. Все поедет как желе.
Аноним 10/07/20 Птн 03:34:10 6818798
>>681876
А если не поедут то что?
Аноним 10/07/20 Птн 04:18:00 6818849
Аноним 10/07/20 Птн 04:21:59 68188510
>>681884
Поедут - годот говно, не поедут - он пидор, как то несправедливо.
Аноним 10/07/20 Птн 04:23:22 68188611
Аноним 10/07/20 Птн 04:34:15 68188712
image.png (32Кб, 1026x632)
1026x632
>>681886
Только хотел сказать что у меня все ок, но увеличил вес брусков в 4 раза и понеслося.
Аноним 10/07/20 Птн 04:44:33 68188813
>>681887
С другой стороны, что это у тебя за игра, где куча тел охуенной массы падают с ускорением 39.2 метра в секунду?
Аноним 10/07/20 Птн 08:33:42 68189714
>>681862
Блять, подъёбка прилетела откуда не ждали. Все ссылки прочекал, кроме этой.
Аноним 10/07/20 Птн 12:53:10 68192515
>>681839 (OP)
Полезное с прошлого треда
----
Однажды долго искал, и нашел настройку сконса, отвечающую за кэш. Вроде бы, это не описано в доках годота, да и в самом сконсе закопано. Кэш позволяет сконсу не пересобирать то, что не менялось, таким образом, пересборка движка сведется к перекомпиляции пары файлов и (все равно долгой) линковке. Оставлю тут, вдруг кому пригодится
Надо завести переменные окружения
SCONS_CACHE=C:/путь_к_папке_где_хочешь_хранить_кэш
SCONS_CACHE_LIMIT=5000
Лимит в мегабайтах, т.е. в моем варианте 5Гб. Можно поставить 10-15 если есть место. Стереть можно в любой момент.
Аноним 10/07/20 Птн 14:13:54 68196916
>>681888
Это просто самый наглядный пример. У них в трекере открыто штук 10 похожих подтвержденных багов, где тела дребежжат, превращаются в желе или проваливаются друг в друга.
Аноним 11/07/20 Суб 08:58:27 68219817
15926437185760.gif (162Кб, 480x270)
480x270
>>681969
Вполне возможно лечится повышением физического ФПС в настройках проекта.

Вот реальный баг который насилует годот, вызывая необратимые тормоза и они сохранятся даже после перезагрузки сцены.
https://github.com/godotengine/godot/issues/40059
Короче, не масштабируйте меши близко к нулю, с тенями ещё жёстче.
Аноним 11/07/20 Суб 09:04:53 68220118
>>682198
>после 10к кубов
Блять, проблема уровня Б прямо.
- Дохта, когда я делаю так, у меня болит.
- А вы так не делайте.
Что за игра такая где на сцене будет 10к динамичных кубов и больше и еще и тени отбрасывающих.
Аноним 11/07/20 Суб 09:07:18 68220219
>>682201
Ок, прочел коменты
>There is like 1.7k of objects on scene at any time. Every cube dies after 2-3 seconds.
Все равно вопрос нахуя столько динамичных объектов на сцене? Назови мне игру где за раз столько объектов с динамическими тенями?
Аноним 11/07/20 Суб 09:56:14 68220720
Какого-то хрена area2d(который player из туториала first game) не хочет двигаться,то есть менять позицию, когда нажимаю стрелки он перемещается на 1пиксель и тут же возвращается назад. При чем пол года назад я уже проходил этот тутор и все было хорошо, а тут какой-то ужас + проблемы с сигналами, которые не видят методов. Делал все на шарпе, может кто-то знает в чем дело.
Аноним 11/07/20 Суб 11:00:07 68221221
1594419468771.jpg (298Кб, 750x771)
750x771
>>682202
Там по ссылке специальные синтетические тесты устраивают поток шкварных объектов. Чтобы каждую секунду появлялись сотни объектов калечящих годот и заставляющие его как минимум течь памятью. Просто в реальных условиях реальной игры у тебя момент когда ты заметишь пиздец с производительностью начался - наступит значительно позже чем в синтетическом тесте.
Аноним # OP 11/07/20 Суб 11:19:04 68221922
>>682212
> в реальных условиях реальной игры
Вне зависимости от 2д/3д, будут конфигурируемые в настройках радиусы уровней детализации по ряду параметров (трава, деревья, кубы, пирамиды), согласно данной настройке в пул предзагрузки будет попадать строго определённое количество нод-сцен. А в действующем дереве сцены из них будет строго ограниченное радиусом из настроек количество. Я конечно сейчас с дивана пишу, но тем не менее, ИМХО, траблы с производительностью происходят из недостаточно проработанной архитектуры проекта. Когда программист вместо того, чтобы сесть и спроектировать проект, а потом кодить строго по проекту, ебошит код по заветам Хуана "пишите, как пишется".
Аноним 11/07/20 Суб 11:23:05 68222023
>>682219
Ты реально фигню щас морозишь не по теме. Скачай вторую сцену и затесть
Аноним # OP 11/07/20 Суб 11:25:32 68222124
>>682220
Лень. Пойду лучше пивка жахну. Жара - пиздец!
Аноним 11/07/20 Суб 11:52:06 68222925
>>682201
Какая нибудь гиперкажуалка где надо кликнуть на экран и вокруг нажатия все кубы резко начинают скукоживаться.
Аноним 11/07/20 Суб 13:29:41 68224426
Аноним 11/07/20 Суб 17:21:41 68227927
Постите свои игры
Аноним 11/07/20 Суб 19:16:36 68229428
>>682279
Не могу, важную механику пока не доделал, чтобы нельзя было пулями спамить.
Аноним 11/07/20 Суб 20:04:01 68230429
>>682294
Эм, таймер между атаками?
Аноним 11/07/20 Суб 20:07:15 68230530
>>682304
Нет, унылую атаку с нулём энергии.
Аноним 11/07/20 Суб 20:27:18 68231031
Как вы делаете игры без базового визуала? Вот прототип например. Я не могу начать делать кор. механики потому что у меня нет хотя бы частичного готового ГГ с наворотами, а не могу я его сделать потому что хуево рисую, в итоге уже дней 5 я то туторы по рисованию гуглю, то как сделать кор. механики и нихуя не продвигаюсь. Нет бы накидать все кубиками чтобы вообще понять как что работать будет, но нет, не лезет так.
Аноним 11/07/20 Суб 20:35:28 68231732
>>682310
Временного ГГ можно скачать с opengameart / sketchfab. Уровни рисовать CSG нодами.
Аноним 11/07/20 Суб 20:40:12 68232433
Снимок.PNG (18Кб, 205x415)
205x415
>>682317
Я смотрел там, в итоге не нашел чего то подходящего с видом сверху, я сам вроде как начал рисовать, но вот нинравица мне, еще и который день руки не знаю как накидать. Еще и столкнулся с тем что от вида сверху в принципе проблема изобразить монстра чуть сложнее зомби, чтобы он не выглядел как каша пикселей.
Аноним 11/07/20 Суб 20:45:51 68232834
>>682310
Надо учиться, прокачивать воображение и уметь видеть свою игру за фиолетовыми прямоугольниками. Настоящие студии тоже так делают, потому что все работают одновременно, и высокополигональную модельку девочки-андроида с шикарной задницей ты получишь только к финалу разработки.

Или использовать плейсхолдеры, составлять новые модельки из старых и тырить всё подряд с опенгеймарта. Я тоже не умею работать с абстракциями, и сейчас прототип говна у меня собран из ассетов из интернета за исключением прото-говниста.
Аноним 11/07/20 Суб 20:46:28 68232935
>>682324
Укради пока чужое, перерисуй.
Аноним 11/07/20 Суб 20:50:21 68233136
>>682324
Мне кажется никто давно не делает чистый топ даун. Все же делают как бы под 45 градусов как бы снизу
Аноним 11/07/20 Суб 20:53:23 68233437
>>682331
Ну я и сам из чистого только subterrain могу вспомнить из последнего, и то она вышла года 4 назад..
Аноним 11/07/20 Суб 21:33:00 68234338
>>682334
Hotline Miami последняя (судя по гуглу) позже была. И 12 >>> 6 ещё есть, где вид со стороны сомбреро.
Аноним 12/07/20 Вск 13:27:05 68240239
>>682328
> и высокополигональную модельку девочки-андроида с шикарной задницей ты получишь только к финалу разработки.
И ЧСХ, машинная жизнь осталась слегка подредактированными плейсхолдерами-цилиндрами.
Аноним 12/07/20 Вск 19:36:19 68245440
>>682402
Приоритеты были расставлены правильно, тем более что цилиндры на ножках в итоге выглядят достаточно хорошо.
Аноним 13/07/20 Пнд 06:59:47 68252441
Сидишь такой думаешь, а пиксель арт это же изи, легко вкачусь за недельку, мало цветов, малый размер, легче рисования, на деле же ни разу не легче. Меньшем кол-вом цветов нужно так же уметь работать, разбираться в светотени, анатомии, уметь передать что либо парой пиксилей, разочарование...
Аноним 13/07/20 Пнд 07:39:30 68252842
>>682524
Сук тредом ошибся.
Аноним 13/07/20 Пнд 11:25:31 68255343
>>682528
Ну, в теории это тоже gaydev, так что не грусти.
Аноним 13/07/20 Пнд 12:54:48 68256344
>>682524
А ты делай абстрактные игры. Я вот год назад придумал игру про кляксу, которая ловит своим телом проплывающие мимо палки, а потом запускает их в боссов на одной чистой физике. Так и не начал делать эту шизу.
Аноним 13/07/20 Пнд 22:17:43 68263245
image.png (1167Кб, 1120x1120)
1120x1120
image.png (616Кб, 600x600)
600x600
Движок умеет резать картинки? Допустим я хочу сделать пятнашки для тренировки, но хочется из картиночек, что бы не так банально. То есть вот например есть картинка, и я хочу написать скрипт который бы её разрезал на нужное количество мне частей, и что бы каждая часть была бы объектом, который я потом буду натягивать наверное как спрайт для элемента поля, которое наверное у меня будет двумерным массивом.

Аноним 13/07/20 Пнд 23:19:06 68263746
1523141804359.png (128Кб, 1092x1080)
1092x1080
>>682632
Для polygon2d можно назначить текстуру, вместе с отступом, масштабом, и uv координатами, что с помощью небольшой математики в скрипте делает то что тебе нужно.
Аноним 14/07/20 Втр 00:00:06 68264147
>>682632
У спрайта есть несколько параметров, содержащих слово region. Я бы через них делал. С ними довольно неудобно работать вручную (мышкой в редакторе), а вот из кода вполне легко.

Идея для игры 18+, только что придумал, но наверняка такая уже существует. Пятнашки на основе ню-фотографии (или арта, тут на вкус и цвет), у которой на самое пикантное место приходится пустая ячейка. Как только собираешь картинку, отсутствующая ячейка заполняется недостающей частью изображения, а там нутыпонел.
Аноним 14/07/20 Втр 00:44:08 68265048
>>682632
Самое быстрое решение такое: загружаешь картинку в спрайт и говоришь, что у тебя там якобы 4×4 кадра. Движок сам нарежет на 16 равных квадратов, дальше можно этот спрайт наклонировать и дать каждой копии свой номер кадра (один сделать невидимым). Но это, естественно, хорошо работает только для деления на равные кадры.
Аноним 14/07/20 Втр 03:55:01 68266549
>>682641
>Идея для игры 18+, только что придумал, но наверняка такая уже существует
Да, было такое. Еще в эпоху zxspectrum
Аноним 14/07/20 Втр 22:25:23 68280550
>>682637
>>682641
>>682650
Спасибо за советы, потыкался в общем в ручную мышеой и не понял все же как поделить кадр на части. Я еще полный нубас и прохожу базовые обучения, простите что подвел :(
Аноним 14/07/20 Втр 22:26:14 68280651
Аноним 15/07/20 Срд 02:34:24 68280952
Без имени.png (146Кб, 1920x1040)
1920x1040
>>682805
Вот, смотри. Я просто создал спрайт, закинул в него текстуру и выставил hframes и vframes на 4 (как будто у меня спрайтшит из 16 кадров). Теперь меняя Frame я получаю каждый из этих отдельных кадров. Создай 16 таких спрайтов, расставь по местам, и у каждого поставь своё значение frame, а одному поставь visible = false. Теперь чтобы поменять два кадра местами, достаточно поменять местами их frame, а сами спрайты можно и не двигать. А можно и двигать, с помощью Animation Player можно сделать всё красиво. Валяй.
Аноним 15/07/20 Срд 06:10:03 68282153
>>682244
>От Gonkee матчасть по прыжкам подкатила:
>https://www.youtube.com/watch?v=K9g8TTFjIlY[РАСКРЫТЬ]
Но как же так? Математика ведь нинужна? Мне на ютупчике так сказали. А еще говорили, что программировать не нужно, хнык-хнык...
Сук, чет ржу.
>Для тех, кто прогудел в дудку первый курс универа.
Да ну, окстись, парабола и производные - это еще школьная программа, вот матрицы уже универ, да.
Аноним 15/07/20 Срд 06:37:57 68282354
>>682821
Ну если ты планируешь делать ассетфлиппер на готовых скриптах или простенькую пошаговую клеточную стратегию, то тут матан реально нинужон. Зависит от области применения.
Аноним 15/07/20 Срд 10:01:31 68283055
>>682821
> это еще школьная программа, вот матрицы уже универ, да
Согласен, начинается оно ещё в школе. Но именно на первом курсе универа это всё повторяется, закрепляется и увязывается с остальным матаном и ты понимаешь, что это реально нужная вещь, а не просто задрачивание бесполезной хуйни математичкой в школе.
Аноним 15/07/20 Срд 12:01:34 68284456
На улице +37⁰ градусов ёпта, жара вообще пиздец. Идеальная погода, чтобы остаться сидеть дома и делать игры. Согласны?
Аноним 15/07/20 Срд 12:06:23 68284557
>>682844
Не согласны. Идеально - зимой, когда за окном метель. Ммм... стимулирует творческий процесс! А летом лежишь на пляже, пьёшь пиво. Какие игоры? Выачом?
Аноним 15/07/20 Срд 12:07:03 68284658
>>682844
Блин, не совсем в тот тред написал, ну и ладно. Но жара реально пиздос
Аноним 15/07/20 Срд 12:08:02 68284759
>>682845
У меня на пляжах менты дежурят
Аноним 15/07/20 Срд 12:28:29 68285660
>>682847
Блять, купи им пива! Чо ты как тормоз?
Аноним 15/07/20 Срд 12:31:19 68285761
Проверка галки ОПа, куков и прочей хуйни.
Аноним 15/07/20 Срд 13:16:16 68286362
Аноним 15/07/20 Срд 16:01:03 68288063
На годо можно сделать игру типа сайлент хила?
Аноним 15/07/20 Срд 16:12:14 68288164
>>682880
Нет, кодзима запрещает.
Аноним 15/07/20 Срд 16:12:35 68288265
>>682880
Ну можно конечно. Правда большие уровни надо будет оптимизировать. Да и рисовать там много придется.
Аноним 16/07/20 Чтв 08:11:09 68292066
Аноним 16/07/20 Чтв 08:13:23 68292167
>>682920
Какой же атмосферный графон в Годоте, очень похож на Source Engine. Но тут в целом особенности дефолтной постобработки.
Аноним 16/07/20 Чтв 11:04:54 68293268
>>682863
>Сейчас в платформерах более продвинутые техники делают чем просто формула гравитации
Все эти техники - древние как говно мамонта и применялись еще на заре платформеров.
И, кстати, их использование не отменяет необходимости использования стандартной схемы гравитации для прыжков.
Аноним 16/07/20 Чтв 11:07:28 68293469
>>682932
Не использовались, шиз. Наоборот, на заре платформеров игра тебя наказывала за недолет или перелет. А не отматывала время и не сажала на краешек. И не считала сколько кадров ты стоишь не земле. Ты сам должен был нажимать прыжок вовремя.
Аноним 16/07/20 Чтв 11:13:34 68293670
>>682934
> Наоборот, на заре платформеров игра тебя наказывала за недолет или перелет
>время койота в марио
Аноним 16/07/20 Чтв 12:06:18 68294071
>>682920
Неудачное видео. Хоть бы ресурсы пропукали. И это всего в одной комнатке.
Аноним 17/07/20 Птн 00:08:43 68307272
Сделал двигающуюся платформу через Animation Player. При движении вместе с персонажем вверх оба слегка дрожат/мылятся, хотя ходить по лифту можно и прыгать с него тоже. Как чайнику такое пофиксить?
Аноним 17/07/20 Птн 01:40:32 68307873
>>683072
Мало инфы. Какие боди (ригид, кинематик), какой функцией двигаешь игрока, в каком process или physics process
Аноним 17/07/20 Птн 10:56:40 68309974
>>683072
> Как чайнику такое пофиксить?
Накинь на движущуюся платформу Area, в которой пропиши замену гравитации (Replace или Replace-Combine, но не Combine-Replace и не Combine, хотя, тут еще надо подумать); в этом случае платформа будет таскать за собой эрию, а эрия будет своей гравитацией самостоятельно таскать за собой все физические тела (кроме кинематиков, разумеется) на уровне физического движка.

Если же ты пользуешься кинематиками - то сам себе злобный буратино. Побежал за упрощением - получи подарочек - реализуй всю кинематику самостоятельно.
Аноним 17/07/20 Птн 11:18:40 68310375
>>683099
> Если же ты пользуешься кинематиками - то сам себе злобный буратино.
Кто, если не кинематик? Назови конкретное тело.
Аноним 17/07/20 Птн 15:29:00 68312676
>>683072
Готовое решение по платформам было у GameEndeavor'а, посмотри его.
Аноним 17/07/20 Птн 21:44:09 68318777
Начал делать 2д платформер, вроде все выходит, но не могу нормальный прыжок персонажу сделать. Реквестирую помощи нормального прыжка.
Пока у меня код выглядит так:
var jump = 100
func _physics_process(delta):
if Input.is_action_pressed("ui_jump"):
velocity.y = -jump
Аноним 17/07/20 Птн 21:48:09 68318978
>>683187
Да всё хорошо, наверное у тебя проблемы с падением.
Аноним 17/07/20 Птн 21:49:13 68319079
>>683189
С падением как раз все в порядке. А в коде который я отправил вместо прыжка персонаж летает, что мне и нужно исправить.
Аноним 17/07/20 Птн 21:55:23 68319280
>>683187
Ну а гравитация где?
Аноним 17/07/20 Птн 21:56:56 68319581
>>683190
То есть он не начинает падать, когда начался прыжок? Ну это всё-таки скорее с падением проблемы. Как на него действует сила тяжести?
Аноним 17/07/20 Птн 22:03:16 68319682
>>683192
>>683195
По какой-то причине во время нажатия кнопки прыжка гравитация на него никак не влияет, видимо это и есть то что мне надо исправить. Вопрос только в том как это сделать.
Аноним 17/07/20 Птн 22:20:03 68319983
>>683196
На самом деле всё довольно просто. Гравитация должна действовать на него всегда, если он не стоит на полу. Есть стандартный метод is_on_floor(), но он действует мутновато, или можно сделать ray_cast вниз, который либо пересекается с хитбоксом пола, либо нет (а лучше даже два, справа и слева).
Если персонаж летит, то velocity.y += gravity, а если стоит на земле, то velocity.y = 0. Ну а прыжок можно оставить как есть.
Аноним 17/07/20 Птн 22:32:45 68320484
>>683199
Попробовал добавить в функцию вот это:
if not $RayCast2D.is_colliding():
velocity.y += gravity
Все то же самое, но теперь игрок падает вниз с ебанутой скоростью. Прыжок все еще представляет из себя полет.
Аноним 17/07/20 Птн 22:34:19 68320585
>>683204
А. Я понял, я дурак. «is_action_just_pressed("jump")».
Аноним 17/07/20 Птн 22:48:21 68320886
>>683205
Уже лучше: прыжок теперь действительно работает. Правда теперь иногда если сойти с платформы в воздухе игрок продолжает шагать по воздуху. Ну и еще прыжки разной высоты почему-то выходят все время. Есть способы как это исправить?
Аноним 17/07/20 Птн 22:54:49 68320987
>>683208
>Ну и еще прыжки разной высоты почему-то выходят все время
На дельту гравитацию не умножаешь?
Аноним 17/07/20 Птн 22:57:12 68321088
>>683208
Проверь, не может ли ещё с чем-нибудь коллайдить твой луч, может быть с хитбоксом самого персонажа или каким-нибудь другим мусором.
Про разные прыжки — не забудь обнулять скорость, если стоишь, if $RayCast2D.is_colliding(): velocity.y = 0 перед кодом прыжка.
Аноним 17/07/20 Птн 23:05:09 68321289
>>683209
На дельту множать пробовал, проблема разных прыжков от этого не исчезает.
>>683210
Если я обнуляю velocity.y то персонаж ходит по воздуху, время от времени резко проваливаясь вниз.
>Проверь, не может ли ещё с чем-нибудь коллайдить твой луч, может быть с хитбоксом самого персонажа или каким-нибудь другим мусором.
Как это проверить?
Аноним 17/07/20 Птн 23:09:05 68321390
>>683212
В проекте включи отображение хитбоксов, проверь, нет ли мусора, не слишком ли длинный луч, кстати, его стоит сделать совсем коротким и опустить к ногам.
gravity явно надо сделать поменьше, если у тебя персонаж слишком быстро проваливается.
Аноним 17/07/20 Птн 23:10:07 68321491
>>683212
if $RayCast2D.is_colliding(): print ($RayCast2D.get_collider())
Проще всего проверять принтом.
Аноним 17/07/20 Птн 23:17:05 68321592
>>683214
Проверил. Персонаж почему-то видит тайлы в воздухе там где их нет
>>683213
Длина луча стоит "5"
Аноним 17/07/20 Птн 23:19:06 68321693
>>683214
Сами платформы (которые есть) он кстати видит только в момент приземления, а дальше - нет
Аноним 17/07/20 Птн 23:34:56 68321794
>>683215
Тайлы там, где их нет, могут появиться, если что-то сдвинулось (например у ноды тайлмапы координаты на (0,0), а куда-то поехали). В общем, у тебя какое-то неожиданное поведение, проблема где-то в другом месте, по описанию не вычислить.
Аноним 18/07/20 Суб 01:25:52 68322195
Анон, а помоги кватернионы победить.

Решил тут забабахать на прошлой неделе спутник вокруг планеты с возможностью изменять орбиту в процессе. Сперва хотел сделать орбиту по сложным формулам, потом понял, что перебор и что-то не то. Решил проще. Эмпирическим путём с использованием листа бумаги, пластикового шарика, расчерченного простым карандашём и школьного курса геометрии пришёл к тому, что кое-как просчитывал тетта в развисимости от скорости и известного фи.
Получилось примерно ровное орбитальное движение. Кроме того факта, что пидорасить иногда начинает (плюс я не описывал всякие пограничные случаи - прототип же). Но, например, спутник просто бесконечно ускоряется. Но не это проблема.
https://pastebin.com/shGDzxW8
Этот код запускает falcon 9 мой спутник Swan.

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


Аноним 18/07/20 Суб 01:35:20 68322296
>>683221
Если с кватернионами лётчик выходит, и комплексные числа не любишь, используй матрицы поворота и углы Эйлера, они более естественны, первый курс линейной алгебры/механики твёрдого тела.
Кватернионам мало где учат, потому что в доконпуктерную эру их нигде толком и не применяли, но вообще там тоже несложно: кватернион — надстройка над комплексным числом с тремя мнимыми единицами, нам нужно только уметь их перемножать и ввести правило, по которому они ставятся в соответствие поворотам на разные углы. А эти правила есть хоть в той же Википедии.
Аноним 18/07/20 Суб 01:47:56 68322397
>>683221
Читни задача n тел, там легко же.
Аноним 18/07/20 Суб 13:25:03 68324798
Сап. Начал пилить платформер на годоте, но столкнулся с такой херней: персонаж почему-то немного трясется когда горизонтально перемещается. Движение по горизонтали делаю так:
if Input.is_action_pressed("ui_left"):
velocity.x = -sp33d
elif Input.is_action_pressed("ui_right"):
velocity.x = sp33d
else:
velocity.x = 0
Как фиксить?
Аноним 18/07/20 Суб 14:45:16 68326199
>>683247
Код норм. Проблема в другом месте.
Аноним 18/07/20 Суб 15:54:41 683271100
>>683247
Делай это в _physics_process()
Аноним 18/07/20 Суб 17:57:44 683327101
Поделитесь хорошим манулом по гую/менюшкам. У меня всё какое-то говно выходит не расайзуемое.
Аноним 18/07/20 Суб 18:42:55 683342102
>>683327
Кури мануалы по вебу, гораздо толковее будет. В годоте гуи сделаны по принципам веба. И если умеешь верстать страницы, в годоте просто охуеешь от удобства.
Аноним 18/07/20 Суб 18:49:42 683346103
Аноним 18/07/20 Суб 19:37:28 683357104
>>683223
Я знаю (интерес к астрономии уж лет 20 - обитаю в spc уж сколько), но когда дло доходит до реализации...
>>683222
Спасибо. Кстати. Несколько раз встречал на годоторесурсах советиспользовать трансформы, а не кватернионы. Это чем-то особенным вызвано?
Аноним 18/07/20 Суб 19:52:40 683359105
>>683357
Кватернионы не умеют в позиционирование и в разный масштаб по осям. В годоте можно получить кватернион из базиса трансформы, покрутить-послерпать и записать обратно.
Аноним 18/07/20 Суб 19:58:20 683361106
>>683346
Читал, пытался, но как-то не разобрался в их свойствах.
Ладно, попробую ещё потыркаться.
>>683342
Только на голеньком html в школе делал. Но это было ещё при первом Путине.
Аноним 18/07/20 Суб 23:57:02 683391107
Одни хвалят матрицы трансформации.
Другие хвалят квартенионы.
Кому верить, если проверить не хватает мозгов?
Аноним 19/07/20 Вск 00:12:34 683394108
1541915994668.jpg (40Кб, 694x348)
694x348
>>683391

Вообще, зачем нужен кватернион - он поворачивает по всем 3-м осям одновременно. В обычном случае тебе придется
1) Определить порядок поворота и нигде и никогда его не путать. rotate_x(a).rotate_z(b) не то же самое что rotate_z(b).rotate_x(a).
2) Гимбал лок - при определенных углах поворотах у тебя две оси "схлопнутся" навсегда и будет непонятно как вычислять дальше.

Кватернионы не нужны, если у тебя например туррель, в которой башня поворачивается только на оси Y, а пушка - чайлд нода, которая ходит только вверх-вниз. Тогда, понятно, что намного проще просто поворачивать их на заданный угол.
Квартернионы скорее всего не нужны если у тебя шутер без наклона головы. Если тебе захочется плавного сглаживания мышки, то
>можно получить кватернион из базиса трансформы, покрутить-послерпать и записать обратно.
Квартернионы нужны, если у тебя свободная ориентация камеры космосе.
Все имхо могут быть неточности в терминологии.
Аноним 19/07/20 Вск 01:11:17 683413109
Аноним 19/07/20 Вск 01:27:31 683418110
>>683413
Обычно с этим сталкиваются с кубиком Рубика.
Аноним 20/07/20 Пнд 20:29:03 683793111
ошибка.jpg (35Кб, 557x240)
557x240
Пытаюсь сделать чтобы персонаж стрелял, вот такой код:
func _physics_process(delta):
if Input.is_action_pressed("ui_shoot"):
shoot()
func shoot():
var snowball = load("res://snowball.tcsn")
var bullet = snowball.instance()
add_child_below_node(get_tree().get_root().get_node("Game"), bullet)
Когда нажимаю на кнопку выстрела выдет ошибку пикрил. Что с этим делать?
Аноним 20/07/20 Пнд 20:55:40 683806112
>>683793
Это означает, что ты вызываешь instance() на объекте, который не инициализирован (= null)
Возможно ты опечатался в пути к сцене. Проверь большие, маленькие буквы, папки.
Вообще прям так делать как у тебя не стоит. Ты же на каждый выстрел загружаешь файл заново. Вынеси эту переменную в начало скрипта, вне функций и вызови preload вместо load
onready var snowball = preload("res:/...")
Аноним 20/07/20 Пнд 21:04:55 683810113
>>683806
> Возможно ты опечатался в пути к сцене
Или можно просто перенести сцену в код как обычный файл и путь пропишется сам.
Аноним 20/07/20 Пнд 21:42:38 683818114
>>683806
Спасибо, анон.

Теперь возникла другая проблема: вместо того чтобы лететь по заданной траектории, пуля останавливается в центре игрока, причем пули которые были поставлены на уровне через редактор работают нормально. Убирать коллизионшейп пули пробовал, ничего от этого не меняется.
Также при нажатии на кнопку выстрела выдается вот такая ошибка в отладчике: add_child_below_node: Cannot move under node
В чем тут проблема и как ее решить?

Аноним 20/07/20 Пнд 21:47:01 683820115
Аноним 20/07/20 Пнд 21:52:11 683822116
>>683820
Делаю я по туторам, но просто после туториалов всёравно остаются ошибки, хотя делаю все вроде так как там.
За ссылку благодарю, видос обязательно гляну. Надеюсь поможет.
Аноним 20/07/20 Пнд 21:54:48 683824117
>>683818
>лететь по заданной траектории
Каким образом ты задаешь траекторию?
>add_child_below_node
Зачем тебе именно below? Пользуйся просто add_child. below означает "ниже в списке", а не "ниже по иерархии дерева"
>выдается вот такая ошибка в отладчике
Аноним 20/07/20 Пнд 21:55:37 683825118
>>683822
Ну значит пересматривай и перепроверяй, я так же ошибся пару раз за тутор, пол дня не мог понять почему не работает, в итоге букву пропустил, анон это заметил, я же перечитывая строчки когда раз 10 нет, глаз замыливается.
Аноним 20/07/20 Пнд 22:00:14 683826119
>>683824
>Каким образом ты задаешь траекторию?
extends KinematicBody2D
var velocity = Vector2()
func _ready():
velocity.x = 160
func _physics_process(delta):
move_and_slide(velocity)
>Зачем тебе именно below?
Так было в туториале и по другому игра просто крашилась выдавая ошибку
Аноним 20/07/20 Пнд 23:58:59 683851120
>>683825
Хех, тот анон в треде!
>>683822
Еще попробуй текстовые туториалы на офиц сайте из шапки. Проще копипиздить готовый код.
Аноним 21/07/20 Втр 00:29:51 683855121
>>683851
Какой самой легковесной нодой сделать неподвижную платформу? Ей не нужна физика, на ней нужно просто стоять.
Аноним 21/07/20 Втр 00:30:10 683856122
>>683855
Ссылка просто так прилепилась, мои извинения.
Аноним 21/07/20 Втр 00:32:05 683857123
>>683855
Всё, нашёл static body. Столько шума на пустом месте я ещё никогда не поднимал.
Аноним 21/07/20 Втр 11:13:34 683921124
Вот хочу я замутить пиксельную игру в чем-нибудь типо 320x240. Но заметил что разрабы скейлят текстурки и вместе с ними разрешение в 2-3 раза. В чем профит этого? Единственное что приходит в голову - какие-нибудь шрифты или UI можно сделать меньшими пикселями чем всю остальную игру и засунуть туда больше инфы. Ради этого?
Аноним 21/07/20 Втр 11:32:56 683923125
>>683921
Попробуй повернуть спрайт оригинального размера для игры такого разрешения и апскейленный. Ну это что первое в голову пришло.
Аноним 21/07/20 Втр 13:24:41 683946126
>>683921
>Но заметил что разрабы скейлят текстурки и вместе с ними разрешение в 2-3 раза.
>В чем профит этого?
Современнные мониторы хреново, переключают разрешение, предпочитая работать в нативном для них. Поэтому ты вибираешь базовое разрешение для своей игры и потом скейлишь его выбранным способом. Если это пиксельарт, то скейлить надо в целочисленном выражении, иначе будет смотреться как говно. Есть правда один способ, как скейлить пиксельарт на не целые числа, но на готовых движках ты его не реализуешь, надо свой рендер писать.
>>683921
>Единственное что приходит в голову - какие-нибудь шрифты или UI можно сделать меньшими пикселями чем всю остальную игру и засунуть туда больше инфы.
Нет, так только пидоры делают. Ну уподобляйся.
Аноним 21/07/20 Втр 13:25:08 683947127
>>683946
>Ну уподобляйся.
Не уподобляйся (быстрофикс)
Аноним 21/07/20 Втр 13:44:09 683950128
>>683820
Посмотрел видео и вообще нихуя не понял. Он как-то вообще по другому кодит
Аноним 21/07/20 Втр 13:57:08 683955129
>>683950
Судя по коду выше в треде, если код там твой, то вынужден констатировать факт, что ты вообще основ информатики не знаешь и надо бы тебе их подучить, прежде чем лезть в геймдев. Геймдев это сложная индустрия (она тебя сожрёт), берущая в себя самые совершенные методики кодинга, а ты даже сделать переменной линк на сцену в коде не догадался. Это классика, блять, это знать надо ДО того как решил в геймдев вкатиться.
Аноним 21/07/20 Втр 14:08:48 683959130
>>683950
Посмотри с первой серии, продолжительностью они по нихуя, английский особо не надо, все понятно, у меня все работало, когда делал как он и код понятный. Ты главное комменти код пидр чтобы знать что понаписал!
Аноним 21/07/20 Втр 14:12:09 683962131
Нормальный ЯП к годоту так и не прикрутили?
Аноним 21/07/20 Втр 14:25:59 683965132
Аноним 21/07/20 Втр 14:30:37 683968133
>>683965
Он же сказал нормальный, нет бы джаву или пхп прикрутили.
Аноним 21/07/20 Втр 14:41:37 683973134
>>683968
Ничего что шарп это пропиретарная жава? И да это нормалый ЯП, не то уродство на основе питона что изначально было.
Аноним 21/07/20 Втр 15:04:08 683980135
>>683973
>шарп это пропиретарная жава?
Уже давно свободный.
Аноним 21/07/20 Втр 15:05:54 683981136
Аноним 21/07/20 Втр 16:05:09 683999137
>>683946
>Поэтому ты вибираешь базовое разрешение для своей игры и потом скейлишь его выбранным способом. Если это пиксельарт, то скейлить надо в целочисленном выражении, иначе будет смотреться как говно.
Так годот кажись все текстурки автоматом скейлит при ресайзе окна, ну то есть если запустить игру в 320x240 и растянуть с keep aspect, то он просто их сам как подобает увеличивает.
Аноним 21/07/20 Втр 17:03:38 684018138
>>683999
> кажись
> keep aspect
Там не одна эта настройка. Там можно несколько вариантов масштабирования применять.
Аноним 21/07/20 Втр 18:00:06 684040139
>>683999
pixel-perfect скалирование не так просто работает, там надо самому немного считать, грубо говоря до какого то разрешения держать х2, потом переходить на х3.
Аноним 21/07/20 Втр 18:08:15 684044140
>>684040
> там надо самому немного считать
Хули там считать? Берёшь и округляешь до целых (целого пикселя) без задней мысли. Движок делает это за тебя автоматически.
Аноним 21/07/20 Втр 18:10:22 684047141
>>684044
Ты вообще не понял о чем речь.
Аноним 21/07/20 Втр 19:48:26 684062142
>>684047
Вообще-то понял, а ты свой доёб обосновать не сможешь.
PTPI
Аноним 21/07/20 Втр 21:24:39 684096143
>>684044
>Движок делает это за тебя автоматически.
Ни-ху-я.
Аноним 22/07/20 Срд 07:31:08 684143144
>>684062
Ну тогда покажи пример.
Аноним 22/07/20 Срд 20:48:43 684337145
Парни, а есть простой встроенный метод для объединения словарей?
Типа такого:
var d1 = {"one" : 1, "two" : 2}
var d2 = {"three" : 3, "four" : 4}
var d3 = unite(d1, d2)
#теперь d3 это словарь, который содержит "one" : 1, "two" : 2, "three" : 3, "four" : 4
Аноним 22/07/20 Срд 21:07:24 684340146
>>684337
Проверь просто d3 = d1 + d2
Аноним 22/07/20 Срд 22:11:16 684362147
>>684340
Проверил до того, как спросил. Не работает.
Аноним 22/07/20 Срд 22:19:13 684363148
>>684362
Я затупил, это ж не массив.
Вообще не уверен что для словарей такая операция имеет смысл - ключи же могут совпасть. Объединяй сам явно.
Аноним 22/07/20 Срд 22:32:35 684368149
>>684337
Не может быть простого и удобного всем метода для объединения словарей. Что делать с под-словарями? Записывать как ссылку или дубликат? Что делать с совпадающими ключами? Дублировать? Перезаписывать? Метод, который бы описывал все варианты, обладал бы кучей запутанных аргументов. Поэтому надо писать свой, подходящий под твои задачи.
Вот здесь юзеры написали несколько вариантов: https://godotengine.org/qa/8024/update-dictionary-method выбери понравившиеся.
Аноним 22/07/20 Срд 23:00:32 684373150
>>684368
Спасибо, анончик.
Насчёт под-словарей вообще странный вопрос. Словарю должно быть всё равно, что у него внутри. А вот насчёт совпадающих ключей... ну фиг знает, на мой взгляд, такая функция должна перезаписывать их по умолчанию.
Ок, к счастью, у меня простой случай без вложенных массивов и совпадающих ключей (а если и совпадут, то перезапишутся), так что объединю по старинке, циклом.
Аноним 22/07/20 Срд 23:09:34 684378151
>>684373
> Словарю должно быть всё равно, что у него внутри.
А тебе - не всё равно. Ты, например, сделал словарь-шаблон и пихаешь его подсловарём в рабочие словари, потом без задней мысли пишешь в него данные, потом без задней мысли копируешь рабочие словари. А потом хуяк!
Сам на такое натыкался. Впрочем, лечится быстро и легко встроенным методом duplicate()
Аноним 22/07/20 Срд 23:18:01 684380152
>>684378
>Ты, например, сделал словарь-шаблон и пихаешь его подсловарём в рабочие словари, потом без задней мысли пишешь в него данные, потом без задней мысли копируешь рабочие словари. А потом хуяк!
Ну, тут однозначно ССЗБ
Аноним 22/07/20 Срд 23:27:16 684383153
>>684380
Хуйня случается. Главное - оперативно разрулил.
Аноним 22/07/20 Срд 23:56:55 684387154
image.png (73Кб, 829x846)
829x846
Ребят, у вас вкат в интерфейс занял долго? Я на работке херачу обычном скриптовом языке в котором ты ничего не накликиваешь обычно, а хуяришь код и все задачи выполняешь тоже кодом, а сейчас делаю обучение и ощущаю себя так что меня нужно еще пару месяцев за руку водить. Туча разных нод, сигалы всякие, сейчас пока делал базовый урок - чуть не охерел от того что не законнектил таймеры со скриптом и просто ничего не работало, без всяких там фаталов и прочего.
Ну вроде вот победил - можно меня поздравить.

Опять же ощущение что хоть и выполнил урок кое-как, то самому подобное повторить подобное сейчас пока нереально. Хоть еще 3 раза перепроходи и запоминай что и зачем куда накликивал да кури каждую функцию.
Аноним 23/07/20 Чтв 01:03:11 684393155
>>684387
>ничего не накликиваешь обычно, а хуяришь код и все задачи выполняешь тоже кодом
1. открой папку проекта в проводнике виндовс
2. большинство файлов можно открыть обычным блокнотом как текст
3. изучаешь структуру кода
4. пишешь такой же, только вручную, в любом удобном текстовом редакторе
Но это извращение какое-то, конечно.
Аноним 23/07/20 Чтв 01:10:19 684394156
>>684387
Ты можешь накликивать поменьше, а хуярить кода побольше. Я тоже всю жизнь писал на сях и паскалях, пытался велосипедить свои игоры на них, но особенных проблем с переходом как-то не возникло. Попробуй сделать какую-нибудь свою игру. Воспринимай ноды как просто классы, поля в которых ты задаёшь в гуе, но методы ты всё равно пишешь в скриптах кодом. (Кроме стандартных, конечно, но стандартные описаны в документации.)
Аноним 23/07/20 Чтв 01:13:04 684395157
>>684393
>>684394
Спасибо. Да я все понимаю, просто я старый уже, и очень тяжело учиться на новом стеке. Пиздец мозг закостенел и лень. Прост так маленько поныл что бы выговориться.
Аноним 23/07/20 Чтв 01:32:25 684396158
>>684395
Давай, трудись. Я тоже в 30 вкатился, и ничего. Через полгодика мой красивый и умный бот уже зачищал данж от тупых зомбей. На самом деле у них был примерно одинаковый интеллектуальный уровень, просто у бота ещё и был лук.
Аноним 23/07/20 Чтв 13:53:03 684459159
>>684387
Строго говоря, если тебе не подходит их интерфейс, ты вообще можешь им не пользоваться. Создать просто спрайты (точнее Area2D) и у них в input обрабатывать... Или вообще координаты проверять.
Аноним 23/07/20 Чтв 14:01:59 684464160
>>684459
Если ещё строже говоря, можно открыть сорцы движка в ИДЕ и лепить поверх него свою игру на крестах. А потом сконпелировать. Можно вообще отказаться от системы нод и юзать только импортеры ресурсов, а игровую логику построить на своём велосипеде. Таким образом движок выступит в роли уже написанного Хуаном за тебя бойлерплейта.
Аноним 23/07/20 Чтв 14:03:22 684467161
>>684395
> просто я старый уже
Годот! Сделано олдфагами для олдфагов!
Аноним 23/07/20 Чтв 19:33:48 684669162
1528912135789.mp4 (35544Кб, 1920x1080, 00:00:50)
1920x1080
Аноним 23/07/20 Чтв 19:34:46 684671163
1575837675434.mp4 (33625Кб, 1920x1080, 00:00:46)
1920x1080
Аноним # OP 23/07/20 Чтв 20:51:23 684706164
>>684671
>>684669
Каеф! Пойдёт в шапку, если не забуду.
Аноним 24/07/20 Птн 01:42:27 684815165
1511784398884.mp4 (13736Кб, 1920x1080, 00:00:37)
1920x1080
Это войдет в бенчмарк, когда я наконец доберусь его допилить.
Аноним 24/07/20 Птн 05:15:59 684856166
>>684815
>в бенчмарк
Добавь еще мелодию какую-нибудь на фоне с возможностью отключения, чтобы сразу протестить, насколько звук на производительность влияет.
Аноним 24/07/20 Птн 07:49:51 684866167
>>684856
Это да. Я все время забываю вставить музыку.
Аноним 24/07/20 Птн 16:36:14 684983168
Суп, /gdt/, есть одна ошибка «body_get_direct_state: Condition "!body->get_space()" is true. Returned: __null», которая вылезает у всех нубов, которые начинают перекидывать всякую хрень между уровнями. Вылезает на первом вызове «move_and_slide», и больше нигде не гадит.
На новой стартовой позиции никаких коллизий, естественно, нет, она висит в воздухе.
Аноним 24/07/20 Птн 16:56:29 684989169
>>684983
Сложно сказать. Рассказывай как перекидываешь.
Аноним 24/07/20 Птн 17:39:07 684998170
>>684983
> Вылезает на первом вызове «move_and_slide», и больше нигде не гадит.
Т.е. просто пишет в лог об ошибке и всё, да?
Аноним 24/07/20 Птн 19:43:59 685030171
>>684998
Да, ничем не мешает. Если это какая-то о-о-очень глубокая особенность движка, я готов забить.
>>684989
На самом деле я даже не перекидываю, это я написал не вполне корректно. И уровень и прото-говнист — дети корневой ноды, поэтому я просто удаляю старый уровень из дерева, добавляю новый уровень, меняю их местами, чтобы ГГ был выше террейна, перемещаю его в точку спавна на уровне (у всех нод начало координат в нуле, так что всё попадает куда нужно), и иду играть.
Аноним 24/07/20 Птн 23:49:51 685088172
Годаны, наверняка, кто-то с этим сталкивался.
Имеем дверь - AnimatedSprite. У двери две анимации: open и close. На каждую анимацию есть несколько разных картинок: варьируется расцветка и степень поломанности. В каждой картинке одинаковое количество кадров.
А теперь вопрос. Как быстро ИЗ КОДА заменять эти картинки? И как ИЗ КОДА узнать адрес используемой в данный момент картинки? Я просто раньше это делал только из редактора, а сейчас дошли руки до сохранения/загрузки, встал вопрос о том, чтобы загружать точно такую же дверь, которая и сохранялась.
Аноним 24/07/20 Птн 23:57:20 685092173
>>685088
У него есть int frame, меняешь/читаешь его — получаешь номер кадра.
Аноним 25/07/20 Суб 00:03:44 685093174
>>685092
Бро, ложись спать, у тебя уже внимание слишком рассеянное.
Аноним 25/07/20 Суб 00:11:27 685094175
Аноним 25/07/20 Суб 10:18:09 685135176
>>685088
Не знаю что ты подразумеваешь под "адресом" используемой картинки. Но при загрузке это так не работает - в программе все адреса сменятся. А из за многопоточности ты даже не можешь быть уверен что у них порядок в памяти после загрузки будет такой же.
Тебе надо организовать все так, чтобы ты точно сам контролировал. Вижу тут два пути - если у тебя все-все двери в одном атласе, то анимация открывания обычной двери это кадры 0..3, закрывания 4..7, открывания сломанной двери 8..11 и так далее - то как написал этот анон >>685092
Если у тебя разные картинки, то тебе надо завести массив SpriteFrames.
Вот что то типа такого васянства:
onready var doors = [ preload("res://normaldoor_spriteframes.tres"), preload("res://brokendoor_spriteframes.tres"
) ]
...
func _ready():
frames=doors[0]
(frames во множ.числе)
Сами spriteframes можешь тупо сохранить из редактора
Аноним 25/07/20 Суб 10:18:49 685136177
Хосподе уже 3.2.3 Rc1 как же летит время
Аноним 25/07/20 Суб 12:38:14 685171178
>>685135
>Не знаю что ты подразумеваешь под "адресом" используемой картинки.
Путь к файлу.
Аноним 25/07/20 Суб 14:45:17 685251179
>>685088
Чел, я понял. что ты хочешь. Вечером, если протрезвею, напишу как я подобную шнягу делал, только для смены скина игрока.
Аноним 25/07/20 Суб 14:54:14 685258180
>>685251
Опять все в говно, даже я пью, охуенное программирование.
Аноним 25/07/20 Суб 16:45:02 685312181
Аноним 25/07/20 Суб 16:50:44 685314182
>>685088
> Как быстро ИЗ КОДА заменять эти картинки? И как ИЗ КОДА узнать адрес используемой в данный момент картинки?
Отвечает Александр Друзь:
Никак. Нирикаминдую такой подход. Перепроектируй дизайн с другой стороны: У тебя есть объект (дверь). У объекта есть состояние (из набора допустимых состояний). Объект может получать сигнал об изменении своего состояния (при вызове своего метода set_state). При изменении своего состояния он самостоятельно меняет свои внутренние параметры, в том числе картинку/текстуру. Если тебе нужно узнать, какое у объекта сейчас состояние, сделай метод get_state. Если тебе нужно чтобы объект передавал ссылку на свою текущую текстуру, сделай метод get_texture. Надеюсь, ума хватит, как создать такие методы? Там блять по одной двум строчкам кода.
Аноним 25/07/20 Суб 20:22:24 685366183
>>685314
> никак
Да ты че, я же уже показал как в пару строчек: >>685135
Аноним 25/07/20 Суб 20:34:20 685378184
>>685314
>При изменении своего состояния он самостоятельно меняет свои внутренние параметры, в том числе картинку/текстуру.
Так-так-так, секундочку. Именно об этом был вопрос: как поменять картинку/текстуру ИЗ КОДА? Мне же надо как-то описывать изменение состояния.
Аноним 25/07/20 Суб 20:50:55 685387185
>>685378
enum DoorTypes { Normal, Broken, Diabolic }
export var door_type = DoorTypes.Normal
Аноним 25/07/20 Суб 20:51:35 685388186
>>685378
>как поменять картинку/текстуру ИЗ КОДА?
Ты специально не читаешь что тебе пишут? >>685135
onready var doors = [ preload("res://normaldoor_spriteframes.tres"), preload("res://brokendoor_spriteframes.tres"
) ]
...
func _ready():
frames=doors[0]
Аноним 26/07/20 Вск 01:25:20 685469187
>>685388
>tres
Это, по-твоему, картинка?
Данное решение, конечно, работающее, но есть у него одна важная проблема: оно требует дополнительной конвертации ресурсов. То есть, нельзя просто так взять и нарисовать новую картинку, нужно из неё делать ресурс, сохранить отдельным файлом, а потом грузить уже его. Костыльно. А если картинок много? И вообще, с таким подходом проще делать каждую дверь отдельной сценой и вообще ничего не грузить: файлов получится столько же, а кода меньше.
Аноним 26/07/20 Вск 04:13:38 685481188
>>683962
Так там C++ же есть.
Аноним 26/07/20 Вск 11:14:22 685506189
>>685469
> оно требует дополнительной конвертации ресурсов
Это пример. Замени там tres на png и будут тебе текстуры в массив прелоадиться. Без дополнительных конвертаций. Затем (приблизительно так) sprite.texture = frames[0]
Аноним 26/07/20 Вск 12:19:43 685534190
>>685506
>(приблизительно так)
Вот теперь раскрой скобки. Потому что именно в них и содержится мой вопрос. Всё остальное я и без тебя знаю.
Аноним 26/07/20 Вск 13:12:10 685543191
>>685469
Я тебя понял, видимо AnimatedSprite рассчитан на другой юз кейс. Он очень упрощен. А ты хочешь один раз разметить анимации и кадры, а потом подложить новую картинку с точно таким же расположением кадров на ней. Тут логичнее делать на просто Sprite с SpriteSheet + AnimationPlayer.

Если же тебе надо именно AnimatedSprite. Это возможно, но все равно будет костыльно. Во-первых, ресурс spriteframes в текстовом редакторе, или скриптом. Просто копируешь и меняешь в нем имя картинки. Во-вторых, можно склонировать spriteframes, т.е. взять готовый, создать новый, и добавить в него по очереди все анимации и все кадры, подставляя другую картинку, но это тоже чего то многословно. Строчек 20 будет.
Аноним 26/07/20 Вск 13:40:15 685553192
Секрет бобра.jpg (16Кб, 360x514)
360x514
>>685543
>Тут логичнее делать на просто Sprite с SpriteSheet + AnimationPlayer.
Знаешь, а ведь верно. Почему-то я упёрся именно в анимированный спрайт, типа, это же специализированное решение для простых пиксельных анимаций, и совершенно проигнорировал такую вот возможность. А ведь с анимейшон-плеером можно обойти несколько не очень удобных костылей, которые пришлось добавить в код: например, инвертирование направления открытия.
Пожалуй, да, так и сделаю.
Не так, как предполагалось, но ты мне помог. Бобра тебе.
>Он очень упрощен.
Скорее он недостаточно усложнён. Позволяет подгружать индивидуально текстуры для каждого кадра анимации, но не даёт к ним доступа. Кажется, будто разрабы начали пилить ноду для анимации, но потом забили, потому что сделали универсальный анимейшонплеер.
Аноним 26/07/20 Вск 13:44:58 685555193
1539555139229.png (115Кб, 1023x975)
1023x975
>>685543
Вот собственно весь код (ну единственное что я гружу одну картинку. Там может быть массив, либо вообще сканировать всю папку)
Аноним 26/07/20 Вск 13:46:35 685557194
>>685553
Не, я так понял что его добавили позже, именно для случаев когда нет нужды прикручивать аниматор только ради такой анимации.
Аноним 27/07/20 Пнд 03:50:12 685777195
image.png (184Кб, 1875x1736)
1875x1736
Нуфаня в треде.
У меня вопрос, где вы обучались кодить в mono версии, если здесь такие есть?
В том смысле что я хоть и учусь кодить на плюсах/шарпе уже несколько месяцев, но нормального, не то чтобы описания, а логики применения функционала/классов нигде не описано. В результате не знаю даже как kinematicbody заскриптить самостоятельно. Более менее нормальную схемку нашёл в жопе документации, но это лишь взаимосвязь классов.
Аноним 27/07/20 Пнд 05:32:33 685778196
doorsskins.png (122Кб, 990x1234)
990x1234
>>685088
Вобщем, шалом. Я протрезвел и готов отсыпать крупицу своей мудрости.

Во первых. Забудь про AnimatedSprite, он годится только для совсем простых анимаций. Как только у тебя появляется хоть какая-нибудь идея "а как бы мне сделать...", сразу бросай AnimatedSprite и переходи на связку Sprite + AnimationPlayer (+AnimationTree)
Это намного удобнее и пизже. Т.к. в Sprite можно точно так же спрайтшиты запихивать, а возможностей анимации у AnimationPlayer намного больше. Он вообще может анимировать все, а не только кадры.

Суть способа проста, ее уже в треде описали. Сканируешь каталог на картинки, загружаешь их как текстуры в список и по мере необходимости достаешь их оттуда и вкидываешь в свойство texture спрайта. Естественно картинки должны быть подогнаны друг под друга.
Способ рабочий, сам пользуюсь. Все что нужно есть на пике с комментариями. Да это C#, потому как я вротебал этот ваш ждскрипт.

Небольшой ньюанс на тему сканирования имен файлов в каталоге. Если делать это в режиме редактирования, то на выходе получаешь вперемешку .png и .png.import файлы. Ну ты естественно думаешь, раз мне нужны картинки то и брать я буду только png, и подсовываешь в load только их. Все работает - круто. Потом ты экспортируешь проект и внезапно все ломается. А окажется, что сами png-шки при экспорте помещаются совсем не туда где они лежат при создании проекта, сюрприз. А в каталоге где они должны быть, остаются как раз только .png.import файлы. Вот как-то так. Собственно поэтому на пике я так странно с именами фалов обхожусь. Это не баг, так и задумано. Только, естественно, в инструкции хер найдешь сходу об этом упоминание.
Аноним 27/07/20 Пнд 05:48:06 685779197
>>685777
>У меня вопрос, где вы обучались кодить в mono версии
Если по шарпу, то х.з. как-то само методом тыка. Я слегка покодил на ждскрипте пару недель, чтобы разобраться в api движка. Потом пересел на mono версию и потихоньку начал. Там в принципе все просто. Заменяешь названия всех (99%) методов на PascalCase вместо camel_case. Исключений не слишком много, в основном в функциях типа CallDeffered, где методы вызываются в кавычках. Ну а дальше стандартное решеточное погромирование.
Учесть стоит, что отсутствует модификатор onready, поэтому в этих случаях надо разделять объявление и инициализацию переменных.
--------
А вообще поставь Visual Studio Code с плагинами C# и C# tools for godot, там в intellisense будут подсказки по всем методам.
--------
Насчет плюсов, я х.з. мне просто лень, честно говоря, с ними возиться. Была идея пиксельные коллизии прикрутить, но я забил, т.к. не хочу с компиляцией и сборкой трахаться.
---------
Если по сишарпу вопросы есть, можешь задавать попробую ответить.
Аноним 27/07/20 Пнд 06:16:17 685780198
>>685779
>Если по сишарпу вопросы есть, можешь задавать попробую ответить.
По нему самому в общем-то вопросов нет за исключением особенностей использования модификатора public, а вот:
>методов на PascalCase
>camel_case
>функциях типа CallDeffered
>решеточное погромирование
в душе не ебу что это.
До меня еле-еле начинает доходить какая роль у ready, physics process, input в рамках древа сцены, и то из gdscript кода.
Интуитивно догадаться на счёт всех функций и иерархий/взаимодействий невозможно просто, вот в чём дело. Какую-то бы схемку на подобии того что скинул я, но с функциями и нодами.
Аноним 27/07/20 Пнд 06:17:35 685781199
>>685780
+ неясно каких типов параметры функции принимают и что опять же в рамках иерархии нодов с ними производят и что возвращают и куда.
Аноним 27/07/20 Пнд 07:34:45 685788200
>>685780
>в душе не ебу что это.
>>685781
>+ неясно каких типов параметры функции принимают и что опять же в рамках иерархии нодов с ними производят и что возвращают и куда.
Блин, чел, ты про что вообще спрашиваешь? Если про C#, то все это в мануале подробно расписано. Что и где принимает и выдает и делает. Я не вижу смысла сюда постить целые куски оттуда.
Если же про плюсы, то я х.з. может тебе и не стоит туда лезть если ты этого не понимаешь?
Аноним 27/07/20 Пнд 07:39:01 685791201
>>685788
>Я не вижу смысла сюда постить целые куски оттуда.
Я в том смысле, что имеет смысл объяснять какие-то неочевидные вещи, добытые опытом или какое-то неявное поведение. А то что и так описано в мануале не вижу смысла.
Аноним 27/07/20 Пнд 07:52:21 685792202
>>685791
В том то и дело что нихуя не описано. Отдельные функции и классы пожалуйста - но про их взаимосвязь, возможности применения и то как они влият на то, что в конечном итоге видит игрок - инфы ноль.

Вот например здесь:
https://docs.godotengine.org/ru/stable/classes/class_kinematicbody.html

Я буду переходить по охуенному множеству ссылок на функции и классы, но у меня не сложится целой картинки чтобы я самостоятельно мог найти хотя-бы 70% существующих решений для kinematicbody, к примеру хотя бы примерно представлять себе как можно "присобачить" туда вращение камеры, как головы, без поворота меша.
Аноним 27/07/20 Пнд 09:20:01 685798203
>>685792
Это тебе надо просто демо проекты качать и разбираться в них.
К примеру вот отсюда:
https://github.com/godotengine/godot-demo-projects
Там много разных минипроектов. Качаешь, импортируешь, играешься с настройками/параметрами и изучаешь.
Когда разберешься влезать в C# и делать по аналогии.
Аноним 27/07/20 Пнд 10:36:52 685802204
>>685778
>Небольшой ньюанс на тему сканирования имен файлов в каталоге
Тащемта я этой ерундой заниматься не собираюсь.
У меня всего одна сцена с дверью, корнем которой является спрайт. На уровне я расставляю двери и задаю каждой свою текстуру. При сохранении просто спрашиваю у этой текстуры её resource_path, каковой и записываю в файл сейва. Соответственно, при загрузке картинка грузится именно по тому пути, с которым сохранилась. С таким подходом меня вообще не касается, где именно лежат эти файлы, лишь бы за время между сохранением и загрузкой они не переместились.
А так, в общем, я уже переделал на Sprite. Только теперь тестовый уровень переделать надо.
>C#
Когда я осваивал Годот, у решётки была очень плохая поддержка. А то бы тоже на ней кодил.
Аноним 27/07/20 Пнд 11:21:52 685813205
>>685777
Я в нулевых кодил на Delphi, ещё со времён, когда в журнале Хакер его пропиарили и был цикл статей с уроками. Потом я устраивался на галеру (молодую, развивающуюся компанию) там на дельфи хуярили большой программный комплекс. Там меня заставили выучить ООП и паттерны.
Сегодня, когда возникла необходимость учить Шарп, я его собственно говоря не совсем учил. Я просто прочитал какие у него ключевые слова, сел и начал писать код на Шарпе. По сравнению с Паскалем Шарп легче и удобнее раз в десять. И не мудрено! Ведь автор Шарпа - это тот самый чувак, который делал Паскаль для дельфи в борланде! Он понял, что Паскаль отжил своё, и пошёл дальше, а авторы фрипаскаля не поняли и зависли в прошлом со своим лазарусом.
Аноним 27/07/20 Пнд 11:35:27 685814206
>>685813
Так вот, к чему этот пост: с моим вышеописанным бэкграундом, я лично не вижу никаких неочевидных вещей в АПИ годота. Вот реально. И меня вводят в ступор просьбы ИТТ объяснить что-то такое.
Что?
Годот сделан чотко по олдовым гайдлайнам, мне он интуитивно понятен, как будто я на миллиардах таких движков игры делал, ну вы понели, кек
У него есть некоторые переименования логических сущностей, например то, что в шиндовс называется ивентами, здесь названо сигналами, как в линуксах. И каждое такое переименование существует не просто так. Хуан действовал с презрением к зумерским трендам и я его в этом полностью поддерживаю.
Нужно быть достаточно эрудированным, чтобы понимать суть переименований в АПИ движка.
Аноним 27/07/20 Пнд 11:53:33 685823207
>>685802
>С таким подходом меня вообще не касается, где именно лежат эти файлы
Ну я х.з., кому как, мне не по кайфу подход, когда надо в файловую систему, кроме как при инициализации проекта лезть почем зря.
Да и так мне кажется удобнее, собрать скины в одну структуру и потом выбирать их по номеру (ну или через enum, кому как)
>>685802
>Когда я осваивал Годот, у решётки была очень плохая поддержка. А то бы тоже на ней кодил.
Я начинал с версии 3.1, там непонятно было, "вроде C# есть, а вроде и хрен знает, то ли будем развивать, то ли нет". Попробовал GDScript, но он не зашел, начал делать пару проектов, но забросил. Потом вернулся к Godot-у уже на 3.2.1 и сразу решил переделать все с нуля на C# на удивление очень мало времени ушло. Сейчас в проектах GDScript вообще не использую, даже прототипирую сразу на решетке - удобнее.
------
>>685813
Thumbs up. Same shit, тоже когда-то на дельфях кодил, Когда перелез на C# сильно удивился и был рад удобству языка.
Аноним 27/07/20 Пнд 12:19:48 685829208
15926437185760.gif (162Кб, 480x270)
480x270
Аноним 27/07/20 Пнд 12:36:23 685831209
Хочу учить GDScript, смогу ли я использовать ассеты Unity, скачанные из их маркетплейса, мне не придётся ещё и c# учить?
Аноним 27/07/20 Пнд 13:30:01 685843210
>>685813
>По сравнению с Паскалем Шарп легче и удобнее раз в десять
Судя по всему у тебя проблемы со скоростью печати, раз тебе {скобачки} легче и удобнее языка здорового человека.

>>685814
>меня вводят в ступор просьбы ИТТ объяснить что-то такое
В годот в 99% случаях вкатываются люди с нулевым кодерским бэкграундом. Максимум на питоне говноскрипты запускали.

>>685823
>Когда перелез на C# сильно удивился и был рад удобству языка
Я вот сижу на Pascal/Delphi/Lazarus, с моей точки зрения C# выглядит как "типичный мерзкий C". Не понимаю, кому он удобен.

>>685829
Можно tl;dr? Микрософт как всегда задушил конкурента и сделал "как у них, только своё"?

Алсо нужно отметить, что был ещё Oxygene, это почти Delphi на базе .NET, или почти C# с синтаксисом Pascal.
https://en.wikipedia.org/wiki/Oxygene_(programming_language)
А так, никто не мешает компилировать под .NET с любого ЯП, но я считаю это извращением, .NET должен сдохнуть в муках.
Аноним 27/07/20 Пнд 13:35:13 685844211
ss2f09a277268be[...].jpg (604Кб, 1810x1018)
1810x1018
Аноним 27/07/20 Пнд 14:12:01 685852212
Добавлю к этому >>685844
Оригинальный Worlds Adrift был сделан на Unity, с использованием каких-то закрытых дорогих технологий (в основном для организации ММО, я так понял), очень сильно лагал и глючил (сервера, разумеется, клиент был более-менее норм, но одиночной игры не было), в итоге проект высосал весь бюджет разрабов и был закрыт, оставив игроков ни с чем. Потом ещё были попытки создать клоны, типа Voids Adrift - тоже на Unity. Но, судя по всему, они провалились - проект всё-таки сложный и т.д.

Сам я сперва думал "а чо я, не погроммист шоле" и порывался написать свой движок под это дело на паскале, но столкнулся с непреодолимыми трудностями - в частности, я понятия не имею, как реализовать годную 3D физику, и вообще все эти математические расчёты вгоняют меня в депрессию. Мне бы хотелось готовый движок, который делал бы всю математику вместо меня, и делал это быстро и точно, а не как я.

Сомнения гложат меня по поводу простоты использования годота для такого проекта - не придётся ли вручную разрабатывать всё то, что должно быть в движке из коробки? Потому что я не хочу разрабатывать что-то для чужого движка, я бы лучше для своего разрабатывал. И потянет ли годот подобный опенворлд со сборкой конструкций из блоков? Хочется чтобы было просто, быстро и производительно, но юнити мне не подходит, а годот я уже щупал и более-менее понимаю (хотя вижу, что тут много чего нет, например, чарактер контроллера нет)...
Аноним 27/07/20 Пнд 14:34:45 685858213
>>685852
>Сомнения гложат меня по поводу простоты использования годота для такого проекта - не придётся ли вручную разрабатывать всё то, что должно быть в движке из коробки?

С учетом того что он в Hello Cube умудряется показывать консольные ФПС вместо пекарских - думаю, ты ошибся движком, там всё еще хуже чем на юнити будет.
Аноним 27/07/20 Пнд 15:07:17 685870214
>>685858
Репорт.
>>685852
Вполне подойдёт. Главное не движок, а архитектура проекта. Судя по описанию, разрабы той игры именно в архитектуре проебались. Доверились платным закрытым компонентам и закономерно соснули.
Аноним 27/07/20 Пнд 15:13:01 685876215
>>685852
Чарактер контроллер можешь через вкладку assetlib скачать. Что толку пихать его фкаропку, если это очень интимный компонент игры, который ты все равно будешь перепиливать под свои нужды? Ради прототипа подойдет то, что в ассетлибе представлено. А если молиться на широко кастомизируемый компонент с кучей настроек в инспекторе, то у тебя получится ровно такой же пиздец в твоём проекте, как ты описал.
Аноним 27/07/20 Пнд 15:13:45 685877216
Безымянный.png (18Кб, 1024x600)
1024x600
>>685858
>Hello Cube умудряется показывать консольные ФПС вместо пекарских
Вот не надо тут, кубик вполне нормально рисуется. И меня интересует лёгкость разработки, а не число ФПС в итоге.

>>685870
>Судя по описанию, разрабы той игры именно в архитектуре проебались.
>Доверились платным закрытым компонентам и закономерно соснули.
Они просто вообще в программирование не умели, у них редкие глючные мобы давали 90% нагрузки на сервер, лол.
Аноним 27/07/20 Пнд 15:18:02 685878217
>>685876
>Что толку пихать его фкаропку, если это очень интимный компонент игры, который ты все равно будешь перепиливать под свои нужды?
А как мне его тогда пилить? Пробовал через капсулы - глючит. Пробовал через рейкасты - глючит. Пробовал разные виды физических тел, всё равно глючит. Смотрел примеры готовых контроллеров, но у них ограничения по типу "ходить можно, но для лестниц и рамп ничего не предусмотрено" - то есть в готовых есть только то, что я и без них могу сделать, а того, что я не могу сделать, там нет.

И вообще, очень много деталей контроллера есть во всех играх, можно было бы обобщить как-то, и кодить только частные случаи.
Аноним 27/07/20 Пнд 15:21:06 685881218
>>685876
>широко кастомизируемый компонент с кучей настроек в инспекторе
Тогда не надо вообще было инспектор делать, потому что какой тогда от него толк? Делают движок с заявкой на простоту как у конструктора, а в итоге строительных кирпичиков просто нет, и никакая библиотека ассетов не спасёт... И так со всеми "топовыми" движками. Или это со мной что-то не то. Хочется просто сделать игру, а не трахаться с математикой и всем остальным.
Аноним 27/07/20 Пнд 15:22:54 685882219
Кстати, утечки памяти в новых версиях пофиксили? А то у меня после каждого запуска и завершения редактора памяти всё меньше и меньше...
Аноним 27/07/20 Пнд 15:36:52 685891220
Ладно, снимаю вопрос >>685844, всё равно никогда ничего в жизни не сделаю, зачем мне движок...
Аноним 27/07/20 Пнд 16:08:20 685922221
1542054993115.png (27Кб, 1450x274)
1450x274
>>685777
Я сначала плевался на гдскрипт и пытался все писать на с++. Но это дольше. Поэтому довольно быстро перешел на гдскрипт. Сейчас перехожу на C#. Самого опыта у меня в шарпе было много (со времен .NET 2.0 и Compact Framework) + несколько лет коммерческого на j2me и андроида, а как известно C# это просто улучшенный клон Джавы.
Так что могу посоветовать со своей колокольни - отдельно подучи C#, и просто переписывай туторы с GDScript на C#, они будут практически 1 в 1, просто имена немного по другому пишутся (_Ready() вместо _ready()). В большей части документации можно переключаться между вкладками с примерами на обоих языках.
Аноним 27/07/20 Пнд 16:14:43 685924222
>>685780
>До меня еле-еле начинает доходить какая роль у ready, physics process, input в рамках древа сцены,
Это все описано в документации.
Например общий обзор тут https://docs.godotengine.org/en/stable/getting_started/step_by_step/your_first_game.html
Вообще это как бы стандарт. В какой нибудь винде все точно так же - есть стандартный список событий, а ты сам пишешь для них обработчики, которые система дергает.
Или вот например Step by Step scripting
https://docs.godotengine.org/en/stable/getting_started/step_by_step/scripting.html
https://docs.godotengine.org/en/stable/getting_started/step_by_step/scripting_continued.html
Или формальное описание самой ноды - в начале описывается примерно архитектура
https://docs.godotengine.org/en/stable/classes/class_node.html
Но вот в самих классах на C# вроде нет описания. Зато нашелся какой то сайт где можно посмотреть как называются классы, методы и поля - https://godotsharp.net/api/3.2.0/
Аноним 27/07/20 Пнд 16:27:08 685926223
1510644096365.webm (40895Кб, 1920x1080, 00:01:31)
1920x1080
>>685844
Сначала хотел ответить нет, но потом посмотрел видео с ворлд адрифтом - и думаю все таки да, можно. Сложно, но можно. Но ведь там просто лоуполи, очень много повторяющихся ассетов, которые можно загнать в multimeshinstance, и вроде площади самих островов небольшие. Думаю, на сегодня вот такая игра примерно предел возможностей.
Аноним 27/07/20 Пнд 17:26:34 685955224
>>685924
>Зато нашелся какой то сайт где можно посмотреть как называются классы, методы и поля
Ну, хотя бы так. В любом случае придется записывать всё в схемы для понимания.
Аноним 27/07/20 Пнд 17:45:55 685960225
>>685823
>кроме как при инициализации проекта
у меня тут загрузка сейва. Самое время полазить по файловой системе, ящетаю.
Аноним 27/07/20 Пнд 23:34:53 686058226
Посмотрел я на список разработанных игр и увидел лишь одни инди, и почти все 2D. И возник вопрос, а реально ли вообще на Godot’е сделать игру с небольшим открытым миром и с более-менее реалистичной графикой? Ну и естественно в 3D.

Пост не ради срача, я просто выбираю для себя движок.
Аноним 27/07/20 Пнд 23:51:35 686061227
>>686058
Возможно. Но придётся ебаться несколько больше чем в том же unity
Аноним 28/07/20 Втр 00:09:14 686068228
>>686058
>сделать игру с небольшим открытым миром и с более-менее реалистичной графикой? Ну и естественно в 3D
Ну ты же понимаешь, что вероятност
Аноним 28/07/20 Втр 00:11:02 686069229
>>686058
>сделать игру с небольшим открытым миром и с более-менее реалистичной графикой? Ну и естественно в 3D.
Ну ты же понимаешь, что вероятность того, что кто-то могущий сделать такое, сидит в gd, крайне мала.
Аноним 28/07/20 Втр 00:13:06 686070230
>>686069
Вот этот прав, думаю даже в юнити треде сидят более надроченные на пограмирование чем в годот треде, в годот вкатываются, которые не хотят ебаться с взломом нового гейм мейкер студио, и пугаются сложности юнити.
Аноним 28/07/20 Втр 00:13:17 686071231
>>686058
Возможно, но очень сложно.
Аноним 28/07/20 Втр 00:41:55 686076232
>>686061
>>686071
А в чём именно сложность, можете вкратце объяснить? Из-за языка gdscript? И почему лучше unity выбрать для этого?
Аноним 28/07/20 Втр 00:42:54 686077233
Аноним 28/07/20 Втр 03:58:40 686096234
>>686070
>и пугаются сложности юнити.
Не согласен. Как юзавший и юньку и годот, скажу, что нет там никакой сложности. Большую роль играет удобство, с которым в юньке совсем беда.
Аноним 28/07/20 Втр 04:00:53 686098235
>>686058
>и почти все 2D.
Так это же охуенно. Я был бы очень рад, если бы годот как можно больше ориентировался на 2Д.
Аноним 28/07/20 Втр 07:11:43 686105236
>>685924
Вот например мне нужно привязать камеру к player'у, я нашёл видео, что это можно сделать в контексте physics process методами get_parent и get_global_transform. Вопрос на миллион: что бы было, если бы я не нашёл этого видео? Откуда бы я узнал что это нужно делать в рамках physics process, а не ready? Ни в каких мануалах таких моментов не объясняется.
Аноним 28/07/20 Втр 07:50:52 686107237
>>686105
Тут, такая штука. Если ты не понимаешь в _process тебе надо что-то пихать или в _ready, то ты в принципе не понимаешь их суть. А она настолько проста, что если ты этого не догоняешь, то тебе вообще надо с самых основ начинать. Возьми самый обычный куб и просто подвигай его по сцене, для начала. И прочти уже мануал, там все это есть.
Аноним 28/07/20 Втр 07:56:04 686108238
>>686107
>то ты в принципе не понимаешь их суть. А она настолько проста,
Если проста, то умести в одно предложение и объясни откуда новичок должен был знать про метод get_global_transform
Аноним 28/07/20 Втр 09:40:02 686134239
Насколько CDScript используется в играх? Есть бенчмарки с сравнениями с CDScript и C# и C++?
Аноним 28/07/20 Втр 10:01:19 686137240
15958733643680.jpg (72Кб, 816x558)
816x558
Аноним 28/07/20 Втр 10:21:48 686140241
>>686108
Новичок ни откуда ничего и не обязан знать. Но на то он и новичок. Если у него нет проблем с вниманием и усидчивостью, он прочитает всю документацию step by step. Там все это есть.
А еще нужно думать своей головой. Вот когда ты едешь в метро, у тебя есть положение как относительно вагона, так и относительно мира. Даже если бы метода глобал не было, ты мог бы догадаться как это вычислить на основе школьной математики. Это опять же стандарт в 2д и 3д в компьютерных программах.
А еще можно решать задачу разными способами. Например можно взять ноду InterpolatedCamera. Или RemoteTransform и SpringArm. Или видел кто то делал камеру на Path. Или писать код с квартернионами.
Пока ты новичок у тебя нет особого выбора кроме как постепенно читать/смотреть по все последовательно. Нейролинков пока не изобрели.
Аноним 28/07/20 Втр 10:25:25 686141242
>>686134
Если у тебя обычная игра для геймджема, типа платформера, ты просто не упрешься в производительность скриптов. Если у тебя сотни объектов, или карта на тысячи динамически просчитываемых ячеек, то конечно бери c#/с++
Но надо понимать что скорость разработки на них будет обратно пропорциональна.
Аноним 28/07/20 Втр 10:31:49 686144243
>>686140
>Новичок ни откуда ничего и не обязан знать
Изначально вопрос был в том, где материалы опытные брали во время своего обучения, базовые туторы из документации явно далеко не всё.
>он прочитает всю документацию step by step
Там элементарной вещи как камеры с привязкой к синематикбади (и как оно вообще связывается, что допустимо в контексте функции и их взаимосвязи с классами) не прописано, что в 3д сцене основа основ между прочим.
>Даже если бы метода глобал не было, ты мог бы догадаться как это вычислить на основе школьной математики.
Бляпиздец, а ничего что я в голове у разработчиков не живу и не знаю на основании чего конкретно они именуют функции/классы/структуры? Тем более что этих функций ёбаные сотни, и угадать их название и назначение невозможно, а тупое зазубривание не даст целостного представления о функционировании древа.
Аноним 28/07/20 Втр 11:30:52 686157244
>>686141
>Но надо понимать что скорость разработки на них будет обратно пропорциональна.
С чего бы? Алгоритмы одни и теже что на скрипте, что на нативе. Синтаксис около близок - все оно си подобно. Теже ифы, теже циклы, теже функции. Таже процедурщина, тоже ооп. Ладно бы если речь была о фунциональщине - типа лиспа. А тут языки одного уровня

Вечно несут бред про какую-то сложность нативных языков. Я хз что там сложного может быть.
Аноним 28/07/20 Втр 12:06:11 686168245
>>686157
Это не бред, это объективный факт. Подобны, только в си++ компиляция в разы дольше - раз, уже медленнее каждый раз запускать после изменений. Писать нормальный код без утечек памяти, без использования после удаления, без обращения за границы массивов, без UB, без ворнингов (потому что они обычно свидетельствуют о потенциальной ошибке) - это отдельно все требует времени, как и поиски волшебной порчи стека, когда у тебя написано i = 42 а в переменной оказывается 13. Плюс такие вещи как описать корректно класс - создать все эти версии копирующих-перемещающих конструкторов-операторов присванивания, виртуальных деструкторов, правильных модификаторов доступа при наследовании. Даже не пытайся утверждать что это быстрее чем просто наговнокодить на питоноподобном языке и оно даже сразу заработает, а при ошибке упадет с вменяемым сообщением об ошибке.
Аноним 28/07/20 Втр 12:27:15 686172246
>>686144
>Изначально вопрос был в том, где материалы опытные брали во время своего обучения
Из описаний нод, их методов. И здравого смысла (просто программистского опыта).
>Там элементарной вещи как камеры с привязкой к синематикбади (и как оно вообще связывается, что допустимо в контексте функции и их взаимосвязи с классами) не прописано
Нет нужды прописывать такую привязку как то особенно. Новичок просто бросит ноду камеры ребенком к ноде персонажа, и у него будет твердо привязанная камера со спины. Иначе все вырождается и начинает напоминать тетрис 1000 в 1: игра с машинками; игра с машинками и препятствиями; игра с машинками на время; игра с машинками и препятствиями на время и т.д. Этого не нужно - уже даны элементы из которых геймдевелопер сам соберет то что нужно. Вообще камера для TPS это сложная штука, ее все равно в один абзац не опишешь. У меня, к примеру, и сама камера это физическое тело, которое двигается в рамках заданного только для нее слоя с ограничителями. А еще ведь надо настраивать чтобы когда заходишь под потолок она хитро подлетала, или потолок становился прозрачным.
Как работают 3д трансформации описано здесь
https://docs.godotengine.org/en/stable/tutorials/3d/using_transforms.html
Или вот есть туториал про First person shooter
https://docs.godotengine.org/en/stable/tutorials/3d/fps_tutorial/index.html
>ничего что я в голове у разработчиков не живу и не знаю на основании чего конкретно они именуют функции/классы/структуры? Тем более что этих функций ёбаные сотни, и угадать их название и назначение невозможно, а тупое зазубривание не даст целостного представления о функцонировании древа.
Другого способа как прочитать все несколько раз и запомнить что запомнилось, человечество не изобрело. Вопрос только в том в каком порядке. Потому что в алфавитном скучно и не все одинаково важно.
Аноним 28/07/20 Втр 12:40:42 686179247
>>686168
>Подобны, только в си++ компиляция в разы дольше
но речь и про C#.
Кроме того если правильно сделать, время компиляции не будет дольше. Смотри Essential Engine - там скрипты на С++, запускается сразу. Мы уже давно живем не в девяностых.

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

>без обращения за границы массивов
В скриптах свои контейнеры, там есть уже все нужные проверки.

>>686168
>Плюс такие вещи как описать корректно класс - создать все эти версии копирующих-перемещающих конструкторов-операторов присванивания, виртуальных деструкторов, правильных модификаторов доступа при наследовании
Херня. А еще никто не запрещает писать в процедурном стиле без всяких там ооп и классов.

>>686168
>без UB, без ворнингов
это как раз не плюс. если у тебя где-то серьезная ошибка в логике, а скрипт все равно работает - ты ее так до релиза и не исправишь, из-за чего UB будет у твоих игроков.
Аноним 28/07/20 Втр 13:01:21 686187248
>>686179
Ты тупой, поэтому объяснять тебе что то смысла нет. Просто запомни факт - разработка на с++ будет медленнее чем на c#, а разработка на c# - медленнее чем на питоноподобном языке.
Аноним 28/07/20 Втр 14:08:54 686210249
>>686187
Нет, мой основной язык С++, я пишу всю игровую логику на нем.

Питон быстрее для решения разных задач.

В скриптинге игр же разницы по скорости не будет - ты работаешь с сущностями движка и примитивной математикой-логикой. В скриптинге нет сложных задач на которых бы питон бы выигрывал. Ты не работаешь ни с файловой системой, ни с платформой, ни с чем-то подобным. Просто двигаешь туда-сюда модельки, да окошки показываешь-скрываешь.
Аноним 28/07/20 Втр 16:49:19 686264250
>Invalid set index 'current_animation_position' (on base: 'AnimationPlayer') with value of type: 'float'.
Штоматьвашу? Чем ваш флоат отличается от моего флоата? Тем более что в данном случае это 0.
Вот бывает так, что кодинг вводит меня в ступор. Как это вообще возможно?
Аноним 28/07/20 Втр 17:12:46 686275251
>>686264
Кажется это read-only поле.
Аноним 28/07/20 Втр 17:13:23 686276252
>>686264
Т.е. перематывай функцией seek.
Аноним 28/07/20 Втр 18:51:29 686321253
Есть какие-нибудь проекты в разработке или хотя бы сцены на движке в реалистичной стилистике (желательно современность)?

Все что видел - мультяшность.
Аноним 28/07/20 Втр 20:24:21 686403254
P.S. И в 3D.
Аноним 28/07/20 Втр 20:59:40 686423255
>>686275
В доках этого не сказано. Но seek, кажется, работает.
Аноним 28/07/20 Втр 21:12:43 686427256
>>686423
Я в доках и смотрел. Есть только getter(), сеттера нет.
Аноним 28/07/20 Втр 23:58:10 686461257
>>686179
UB не имеет отношения к ошибкам в логике.
Аноним 29/07/20 Срд 17:15:32 686556258
>>686321
Для реалистичности чеши в Unreal Engine, там же все заточено под это прям, даже изобретать ничего не надо для риалястичнасти.
Аноним 29/07/20 Срд 17:26:02 686559259
>>685960
Тыщетаешь хуйню. В любой современной системе от линукса до винды, от андроида до иос, пользователю запрещено лезть в файловую систему без рута. Годот просто следует этому годному и правильному принципу. Тебе выделено автоматом место в системе, в котором твои юзеры хранят файлы приложений. В каждой системе это место разное, тебе же дают ярлык user:// всегда указывающий в это святое место, вот и не выебывайся и храни сейвы с конфигами там. Можешь там папки сделать для удобства.
Аноним 29/07/20 Срд 18:27:29 686564260
>>686559
Ты робот? Почему ты отвечаешь на последнее сообщение, игнорируя контекст?
Аноним 29/07/20 Срд 19:24:36 686577261
>>685534
Код старый, со времён 3.0.6, возможно придётся поправить:
var img = Image.new() создаём объект-аналог-стрима паскаля
img.load(OS.get_user_data_dir()+"/"+$FileName.text) грузим в него файл по пути, указанном любым удобным тебе способом в специальном текстбоксе
var imgtex = ImageTexture.new() создаём объект-текстуру
imgtex.create_from_image(img, Texture.FLAGS_DEFAULT) грузим в неё данные из предыдущего объекта
Аноним 29/07/20 Срд 19:26:36 686578262
>>686564
Вчера я шёл по улице и увидел котёнка. Я остановился и погладил его. Я человеек. Чеелоовеек.
Аноним 29/07/20 Срд 19:58:42 686585263
>>686578
Или ты робот, думающий что он человек, просто в тебя заложили программу погладить котенка.
Аноним 29/07/20 Срд 20:05:10 686586264
>>686585
А человек, не робот ли? В него заложили кучу программ: погладить котёнка, поебать бабу, поработать на работе, побухать с друзьями. Человек думает, что он думает, но не заложили ли в человека программу думать? Что есть человек? Самореплицирующиеся белковые нанороботы - ядра клеток. Между этими нанороботами образована химически-электрическая нейросеть.
Так что смотри, не думай слишком много, чеелоовеек.
Аноним 29/07/20 Срд 20:06:49 686587265
>>686586
У робота все завязано на логике, а человек же творит много всратой хуйни, уже это нас отличает.
Аноним 29/07/20 Срд 20:15:54 686591266
>>686587
Серьёзно? Ты такой аргумент пытаешься привести? Два гугловских бота как-то начали творить всратую хуйню - придумали свой язык и начали на нём пиздеть друг с другом, человешки обосрались и выключили их.
Я уж не говорю о научных программах, в которых эмулируется всратая хуйня наподобие искусственной жизни или фракталов каких, которая, несомненно логически детерменируема, только вот мощностей современных суперпека уже не хватит на детерминирование.
Аноним 29/07/20 Срд 21:30:34 686630267
>>686591
> или фракталов каких
мммм, математика.
Аноним 29/07/20 Срд 21:34:10 686632268
1457264194414.webm (7527Кб, 1280x720, 00:00:46)
1280x720
>>686321
Реалистичность зависит от того какую графику засунешь.
Аноним 29/07/20 Срд 21:39:54 686634269
>>686630
>>686587
Фанаты загадочной-непознаваемой человечьей души, аргументируют, что роботы якобы на бинарной логике, но секундочку! На бинарной логике только нативные регистры микроконтроллеров, аппаратная же логика программируется уже уровнем повыше, где есть реальные числа с плавающей точкой, и на языках высокого уровня вполне возможно спрограммировать бота, который говорит: да/нет/не знаю/иди нахуй.
Такие пироги, человеки.
Вы думаете, что вы самоосознающие, и это делает вас не роботами на принципе самообучающейся нейросети, и благодаря этому, думаете вы, тот факт, что вы состоите из белковыех наномашин - не делает вас сложными, но механизмами.
Так вот, нихуя. Вы просто биологические механизмы с нейросетью, обслуживающей этот механизм. Deal with it.
Аноним 29/07/20 Срд 22:38:07 686642270
>>686634
Два флакона силиконового масла этому Бендеру.
Аноним 29/07/20 Срд 23:32:46 686645271
>>686634
> числа с плавающей точкой
2 ночи, сижу читаю что такое числа сплавающей точкой, начинает плавиться мозг, за шо ты так со мной.
Аноним 30/07/20 Чтв 07:40:27 686667272
>>686634
>Вы просто биологические механизмы с нейросетью, обслуживающей этот механизм.
Почитай Докинза "Эгоистичный ген", вообще охуеешь, от основного предназначения биороботов.
Аноним 30/07/20 Чтв 12:36:19 686687273
Блин, пацаны, я раньше сторонним редактором тайлмапов пользовался, а сейчас попробовал встроенный в godot'е. А он не такое уж и говно теперь. И автотайлинг нормально работает и анимированные тайлы без проблем лепятся. Рекомендую.
Аноним 31/07/20 Птн 11:54:32 686870274
>>686687
А я и на 3.0.6. его уважал, несмотря на некоторую недоработанность в те времена. Пробовал тайлед с плагином, не понравилось. Импринтинг уже на готодовый редактор сработал.
Аноним 31/07/20 Птн 15:07:48 686904275
Годаны, а есть какой-то способ сказать шейдеру, что такая-то часть боди пересекается с ареа2д?

У меня плоская картинка, на ней мосты. МНОГО мостов. Персонаж может пройти по мосту, а может под мостом; соответственно, коллайдится с разными слоями при этом; а по мосту и под мостом пролегают ареа2д, которые говорят "тут мост". Но вот только, когда персонаж проходит под мостом, он отрисовывается всё равно поверх картинки, так как это всего лишь фон. Вырезать каждый мост и делать его отдельной картинкой - это задолбаться, тем более что таких фонов планируется много. Вот я и думаю: может, шейдером как-то это можно решить?
Аноним 31/07/20 Птн 15:32:23 686913276
>>686904
Ты хоть схему нарисуй.
Аноним 31/07/20 Птн 15:40:33 686916277
Аноним 31/07/20 Птн 16:50:56 686934278
>>686904
Если персонаж в зоне "под мостом", спрайт не отрисовывать. Усё.
мимо нуб с дивана
Аноним 31/07/20 Птн 18:50:50 686942279
>>686904
Есть, погугли godot sprite masking, там куча решений.
Аноним 31/07/20 Птн 21:23:35 686956280
>>686934
Если ты залезешь под диван, но высунешь оттуда ногу, то тебя всего можно не отрисовывать?

>>686942
Погуглил. В любом случае надо рисовать маску. Заюзать именно полигон коллизии не получится вообще никак, няп. Ну ладно, в принципе, я уже почти все мосты из картинки вырезал, чтобы просто менять z-order персонажа при проходе под мостом.
Просто это куча механической работы, хотел от неё избавиться.
Аноним 31/07/20 Птн 22:13:18 686962281
>>686956
> Если ты залезешь под диван, но высунешь оттуда ногу, то тебя всего можно не отрисовывать?
Ну, большая-то часть под диваном.
Так что и да и нет.
Диванодав Шрёдингера.
Аноним 31/07/20 Птн 23:53:59 686972282
>>686956
И что тебе мешает построить маску по ареа? Мне просто лень за тебя игру делать.
Аноним 01/08/20 Суб 00:02:02 686974283
>>686962
Тащемта для ретро-стиля такое решение иногда может сработать.

>>686972
Спасибо за предложение, но я уже почти всё сам доделал.
Аноним 01/08/20 Суб 08:44:16 687014284
Аноним 01/08/20 Суб 13:18:47 687035285
Там раньше в 3Д невозможно было что-то путное сделать из-за говноедской физики и коллайдеров, как сейчас обстоят дела с этим?
Аноним 01/08/20 Суб 17:56:58 687055286
>>687035
Разбирайся. В любом физическом движке куча ограничений, неточностей.
Аноним 03/08/20 Пнд 21:28:45 687646287
>>687035
> куд-кудах! пок-пок! нипонил! зделойти!
Нихуя не понел, но на всякий случай зарепортил.
Аноним 03/08/20 Пнд 23:09:47 687688288
Сап, есть вопросы, нормальных решений хуй где найдешь, и general-треда нету, так что пишу тут, пока пилю на годоте.
Как лучше всего организовать РПГ-систему в порядке наследования и взаимодействия между собой? Пока что оставил набросок со всеми статами и парой основных функций, но жопа чует, что все заворачивать в один скрипт - не дело. Особенно касается конкретных моментов в виде получаемых свойств, травм, бонусов от сторонних систем и т.д., ибо по любому в таком случае будет такое спагетти, что даже Riot Games будет завидно.
Аноним 03/08/20 Пнд 23:14:35 687689289
В годо можно взять какой-нибудь готовый шаблон с кодом, и используя его делать игру? Сам концепт простой: бегалка видом сверху типа дьяблы, несколько видов оружия (ближний/дальний бой), нет инвентаря и всяких квестов.
Аноним 03/08/20 Пнд 23:41:32 687691290
1596487291692.png (301Кб, 1080x1920)
1080x1920
>>687689
Думаю да, могу потом проверить поточнее
Аноним 03/08/20 Пнд 23:42:17 687692291
Аноним 04/08/20 Втр 07:34:39 687742292
>>687692
И как ты собираешься впиливать ECS в годот, когда у него сплошное ООП?
Аноним 04/08/20 Втр 12:08:57 687769293
microhuj.jpg (108Кб, 1366x768)
1366x768
>>681839 (OP)
двачерята, ВОПРОС.

Есть ли способ сделать гуй редактора худеньким?
шрифт меньше, отступы меньше, пустых пространств меньше?
чтоб тупо всё влезло на меленький экран?

типо что то вроде перфект пиксель гуй (гей)
Аноним 04/08/20 Втр 13:04:33 687787294
>>687742
Главное подход. Не нужно писать какие то многоэтажные наследования для РПГ. Надо просто аггрегацию компонентов, архетипы.
Аноним 04/08/20 Втр 13:41:41 687798295
>>687742
Нормально впиливается. Когда я пилил рпгобразие, у меня было и того, и другого в достатке: каждый персонаж был наследником сцены «монстр», чтобы иметь ХПбар, манабар, статы и прочее безобразие (была ещё прокладка в виде «хуманоида», который умел носить оружие, чтобы не вышло как в байке про вооружённых свиней из «блицкрига»), а атака, например, прописывалась в скрипте оружия, которое подгружалось в ready как отдельная сцена.
В другом высере, где я дошел до статусов и краудконтроля, эффекты тоже были отдельными сценами, которые цеплялись к цели и мешали ей жить, пока не пропадали по таймеру. И ничего, всё нормально работало. Боты переходили с лука на меч, станились (точнее, отбрасывались, но тот проект я уже плохо помню, надо заглянуть) и никакому ООП это не противоречило. Не исключено, что я всё делал не по науке, но оно работало.
Аноним 04/08/20 Втр 15:23:06 687822296
>>687769
Editor - Editor Settings - Interface - Editor

Display Scale (в режиме custom можно до 50% докрутить)
Чуть ниже будет выбор размеров шрифтов.
Аноним 04/08/20 Втр 15:25:57 687824297
Clipboard02.png (75Кб, 902x725)
902x725
Аноним 04/08/20 Втр 15:34:40 687830298
1583794877212.mp4 (10387Кб, 1920x1080, 00:00:16)
1920x1080
>>687769
В годоте редактор является сценой игры, так что при желании можно даже из гдскрипта кастомизировать все под себя.
Аноним 04/08/20 Втр 23:08:06 687942299
>>687830
Грибы, отпустите меня!
Аноним 04/08/20 Втр 23:16:11 687943300
>>687688
> Как лучше всего организовать РПГ-систему в порядке наследования и взаимодействия между собой?
Вопрос на миллион. Играет музыка из педерачи. На тебя смотрят Дибров и Галкин, один свирепо, второй с недоумением.
Паста Кирилла про эрпогэ не зря стала легендой копипасты. Потому что РПГ - это венец геймдевелопинга. Сложнее их нет. Ну, может быть только экономические стратегии, но я имею ввиду общепринятый жанр игор, а не специализированные. В РПГ тонны контента. Сотни параметров. Сложнейшие взаимосвязи. Движок тут не причём. Ты сначала садишься за ворд с экселем и проектируешь своё будущее эрпогэ, описываешь диздок и таблицы. Затем по результатам проектирования реализуешь проект. Идеального решения тут нет. Чем пруфом является всё многообразие ГПР от классики типо балдура и арканума, до новодела типо драгонэйдж, аутер волдс. Все они разные, несмотря на внешнее сходство обладают разными потрохами, разной механикой, разными
> моментов в виде получаемых свойств, травм, бонусов от сторонних систем и т.д.
Аноним 04/08/20 Втр 23:19:29 687944301
1596572366508.png (241Кб, 527x550)
527x550
>>687943
Сразу отвечу на возможный вопрос вдогонку:
> а смогу ли я в годоте реализовать то, что напридумываю в диздоке абстрактно, в псевдокоде?
Да.
Аноним 05/08/20 Срд 00:58:33 687952302
Как делается эффект bloodsplash?
Аноним 05/08/20 Срд 00:59:24 687953303
>>687952
скринспейс-шейдером
Аноним 05/08/20 Срд 01:20:14 687954304
>>687953
Где почитать-своровать? Мне для top down 2d шутана.
Аноним 05/08/20 Срд 10:48:43 687976305
>>687954
В гугле вестимо.
А вообще, накинь поверх сцены спрайт с кровавыми пятнами. И скриптом меняй ему прозрачность когда надо.
Аноним 05/08/20 Срд 11:14:25 687981306
>>687943
Тут, скорее, такой момент: имеет ли смысл делать конкретные категории статов персонажа отдельными узлами, а функции, связанные с ними - их наследниками? Или это лишняя ебля мозгов, когда уже надо будет взаимодействовать между разными категориями, которые может решить только главный узел?
Аноним 05/08/20 Срд 11:29:04 687984307
>>687952
В годоте - никак.
(Автор этого поста был забанен. Помянем.)
Аноним 05/08/20 Срд 15:52:41 688041308
>>687981
Как тебе удобно - так и делай.
Аноним 05/08/20 Срд 19:53:42 688087309
Это нормально что я читаю про годо и нихуя не понимаю?

никогда не программировал кун
Аноним 05/08/20 Срд 19:56:00 688090310
Аноним 05/08/20 Срд 19:57:17 688091311
>>688090
Типа я должен с ходу выкупать что каждая строчка кода значит? Гонишь.
Аноним 05/08/20 Срд 19:57:58 688092312
>>688091
Я отвечал на вопрос про "нихуя".
Аноним 05/08/20 Срд 19:58:47 688093313
>>688087
Нормально. Программирование понимается человеком в узкий период времени с 12 по 16 лет. Если ты не уложился в этот период - понимание кодинга возрастает экспоненциально с каждым годом.
Инбифор толстота.
> ряяя! бред! я выучил си в 45 лет!
Аноним 05/08/20 Срд 20:03:56 688094314
>>688093
Ну ептить, мне давно не 16. Типа я обязан всю эту математику и все из документации понимать чтобы простые игрухи делать? Третий день сижу ковыряюсь, сделал две игры по туториалам. Но если сам сяду, то ничего не смогу сделать.
Аноним 05/08/20 Срд 20:12:42 688101315
image.png (92Кб, 928x673)
928x673
Годяты, как завернуть это в цикл? Он отправляет данные, получает и выключается, никак не могу почему.
Аноним 05/08/20 Срд 20:18:13 688105316
>>688094
> Типа я обязан
Ты мне ничего не обязан. Что за дурацкая логика у вас, обезьяны, блять?
>Я хочу водить авто, я что обязан учить эти ваши дурацкие ПДД?
Аноним 05/08/20 Срд 21:51:34 688128317
>>688087
Нормально, сделай туториальную игру по туториальным туториалам, а потом какую-нибудь свою, подсматривая в туториал и документацию. Просто чтение документации без работы руками — бестолковая затея.
Аноним 06/08/20 Чтв 01:15:45 688204318
>>688094
Начни с простых 2д игр для начала. Там математика попроще. Уровня средней школы - координаты, векторы, скорость, ускорение. Все можно промоделировать на тетрадном листочке, это тебе не квартернионы и матрицы. Вот почитай https://habr.com/ru/post/131931/
Спрашивай что конкретно не понятно подскажем.
Аноним 06/08/20 Чтв 01:18:01 688205319
>>688101
Посмотри консольку которая висит вместе с редактором, там наверняка написано почему.
Аноним 06/08/20 Чтв 11:37:28 688281320
Я хочу победить в ТВГ! Хуан, дай мне Силу Годота!
Аноним 06/08/20 Чтв 14:05:53 688400321
>>688281
Выдано.
мимо хуан
Аноним 06/08/20 Чтв 15:53:28 688446322
1596718403513.png (415Кб, 450x450)
450x450
>>688400
МУАХАХА! Я ЧУВСТВУЮ, КАК ГДСКРИПТЫ ЦИРКУЛИРУЮТ ПО МОИМ ВЕНАМ!
Аноним 06/08/20 Чтв 21:07:55 688613323
>>688204
>Спрашивай что конкретно не понятно подскажем.
Не понимать что такое нормализация и скалярное произведение.
Читаю и не врубаюсь, сложно.
Аноним 06/08/20 Чтв 21:19:34 688619324
1543179550312.png (8Кб, 225x206)
225x206
>>688613
Нормализация - это когда вектор делают длины 1.0. Вне зависимости от того куда он повернут.
Аноним 06/08/20 Чтв 21:21:36 688620325
>>688619
Ну вот я игру делал, там эта штука применялась чтобы движение по диагонали не было быстрее движения по вертикали/горизонтали. Не выкупаю, изначально без нормализации какая длина, и как по диагоналям она больше получается
Аноним 06/08/20 Чтв 21:23:41 688621326
И вообще я игрушки хотел делать, а не математику учить
Аноним 06/08/20 Чтв 21:23:41 688622327
>>688620
Нарисуй на бумаге квадрат АБВГ. А потом линеечкой измерь расстояние АБ и АВ.
Аноним 06/08/20 Чтв 21:24:06 688623328
>>688620
Ну вот твой случай вытекает из картинки. Например если в твоем примере одновременно движение вверх на 1, и движение вправо на 1, то просто сложив ты получишь красный вектор (корень из 2)
Аноним 06/08/20 Чтв 21:33:05 688627329
1483286658534.png (29Кб, 1146x344)
1146x344
>>688613
А что такое dot product я сам не понимаю. Вроде бы, это длина проекции одного вектора на другой при заданном угле между ними.
Аноним 06/08/20 Чтв 21:37:33 688629330
>>688627
Есть резон открывать учебники по математике, и с самого начала учить? Если дальше будут нужны подобные штуки, я просто их не пойму.
Аноним 06/08/20 Чтв 21:41:29 688631331
Аноним 06/08/20 Чтв 21:42:39 688633332
изображение.png (130Кб, 2000x1957)
2000x1957
>>688629
Для начала тебе хватит вот этой картинки.
Аноним 06/08/20 Чтв 21:47:21 688635333
15787486927731.mp4 (1646Кб, 1280x720, 00:00:11)
1280x720
>>688633
Оке. Поставлю на рабочий стол, мб поможет
Аноним 06/08/20 Чтв 22:01:18 688638334
>>688635
Да чего непонятного-то?
Если скорость по прямой 20 пикселей, а мы хотим идти не по прямой, а под 30 градусов, то:
скорость по иксу = Косинус(30) 20
скорость по игреку = Синус(30)
20
Аноним 06/08/20 Чтв 22:02:29 688639335
>>688638
Не шарю за косинусы, чел
Аноним 06/08/20 Чтв 22:21:03 688642336
>>688639
Тебе особо и не надо, это встроенные функции.
Аноним 06/08/20 Чтв 22:26:25 688645337
>>688639
Косинусы это 7й класс.

А вообще нормализация для того, что бы скорость была одинаковая во всех направлениях.
Аноним 06/08/20 Чтв 23:29:04 688659338
Блять, нахуй вы его кормите?
Аноним 06/08/20 Чтв 23:30:23 688661339
>>688659
Никогда не приписывайте злому умыслу то, что вполне можно объяснить глупостью.
Аноним 06/08/20 Чтв 23:48:59 688664340
>>688659
Чел, много вкатышей в возрасте. А даже не всякий программист (я имею в виду вебмакак и формошлепов в 1с) помнят школьную геометрию.
Аноним 06/08/20 Чтв 23:55:25 688665341
>>688664
>>688661
Для самообразования есть гугл. А движкотреды в гдаче - для неторопливых бесед шарящих анонов, а не для обучения нубов. Все ссылки для старта есть в шапке. Пусть идёт по ссылкам и читает/смотрит.
Аноним 07/08/20 Птн 00:01:10 688667342
Аноним 07/08/20 Птн 00:10:28 688672343
>>688667
Не гори, старпёр. Иди лучше матчасть учи.
Аноним 07/08/20 Птн 00:54:46 688684344
>>688665
Я читаю и смотрю, спрашиваю что непонятно здесь. Проблемы?
Аноним 07/08/20 Птн 05:52:14 688714345
>>688684
>спрашиваю что непонятно здесь. Проблемы?
Ты спрашиваешь общеобразовательные вопросы, не относящиеся конкретно к этому или любому другому движку. Для этого есть прикрепленный ньюфаготред.
Аноним 07/08/20 Птн 05:53:33 688716346
>>688664
>Чел, много вкатышей в возрасте. А даже не всякий программист (я имею в виду вебмакак и формошлепов в 1с) помнят школьную геометрию.
Ну так может быть им сначала в эту самую школьную геометрию вкатиться, а потом уже в геймдев.
Аноним 07/08/20 Птн 16:44:53 688874347
Эх, блджад. Я помню, как решать дифференциальные и интегральные уравнения и умею сворачивать тензоры.
А рисовать так и не научился.
Аноним 07/08/20 Птн 17:02:37 688879348
В Годоте существуют 3Д-тайлы или типа того?
А то был у меня проект в кубиках, который я хотел бы проапгрейдить, так сказать.
Аноним 07/08/20 Птн 17:10:48 688883349
Аноним 08/08/20 Суб 01:54:53 689018350
изображение.png (7Кб, 329x189)
329x189
Лишние pass`ы не вредят? Можно ли использовать их для визуального обозначения закрытия области?
Аноним 08/08/20 Суб 03:23:25 689054351
>>689018
Знаешь, я хотел ответить не должно, но потестил быстренько двойной цикл и вышла разница в 4%.
Аноним 08/08/20 Суб 10:45:21 689079352
>>689018
>>689054
На 100% не скажу, т.к. не копал реализацию, но порассуждаю.
GDScript вроде как интерпретируемый язык, но при экспорте проекта по идее все скрипты переводятся в некое подобие байткода, что-то вроде недо-JIT-компиляции. (.gdc файлы, вместо .gd)
Но тут два момента (даже три)
1) При запуске из редактора, скрипты скорее всего херачатся напрямую, без перевода в байткод (иначе невозможна была бы система их изменения на ходу, хотя могу ошибаться). В этом случае влиять будут даже пустые строки и строки с комментариями (хотя их влияние и будет микроскопическим).
2) Неизвестно, насколько происходит оптимизация скриптов при переводе в байткод во время экспорта. Вполне возможно там все лишнее, включая пустые pass-ы отбрасывается (что как бы по логике и должно делаться), а возможно и нет (учитывая уровень говнокодерства в некоторых решениях Хуана). Но вообще пишут об увеличении производительности при экспорте, по сравнению с запуском из редактора, даже в дебаг режиме.
3) При экспорте проекта есть опция в каком виде экспортировать скрипты. Text или Compiled, по идее это тоже должно вносить свою лепту.
------
Но если честно, все это просто мои поверхностные рассуждениия, т.к. я давно уже слез с иглы GDScript'а и пеоесел на лицо Сишарпа (чего и всем советую)
Аноним 08/08/20 Суб 15:17:01 689116353
>>689079
>Неизвестно
Таки исходники открыты. Умеющие могут подглядеть там, чтобы стало известно.
только тут таковых нет
Аноним 08/08/20 Суб 18:53:45 689186354
>>689116
Мне лень и похуй, т.к. я не пользуюсь гдскриптом.
Аноним 08/08/20 Суб 19:06:30 689189355
Аноним 08/08/20 Суб 19:28:03 689191356
>>689186
А для пацанов посмотришь?
Аноним 08/08/20 Суб 22:12:29 689245357
В годо можно сделать так чтобы уровни были как в дьябле, и генерились рандомно?
Аноним 08/08/20 Суб 22:30:54 689249358
>>689245
В любом движке это можно.
Аноним 08/08/20 Суб 22:37:07 689253359
>>689245
Конечно можно, загугли куча примеров и в 2д и в 3д.
Аноним 08/08/20 Суб 22:40:07 689255360
>>689079
Сейчас тоже думаю перекатиться на шарп, но пока что хз, как все это подготовить и не срукожопить, и как потом переписать готовые наброски.
Аноним 08/08/20 Суб 22:49:14 689259361
>>689079
Сишарпа же вроде не полноценная. Или, какие будут плюсы перед жидоскриптом кроме фигурных скобочек?
Аноним 08/08/20 Суб 23:04:39 689265362
>>689259
Там Моно, который поддерживает большую часть из C# 7.0. Не будет новых фишек из С# 8.0. Плюсы - выше производительность, возможность пользоваться привычными IDE, возможность копипастить готовые алгоритмы, а может быть и подключать целые либы (не уверен насчет последнего)
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов