Godot #58 # OP 985261 В конец треда | Веб
Добро пожаловать в тред любви, взаимопомощи и типизированных луа-террейнов одним мешем!
Шапка: https://hipolink.me/godothread
Предыдущий: >>981386 (OP)
Архивный: >>977039 (OP)
2 985266
>>85261 (OP)
Когда в годотю новый ги завезут? Надоело ждать, раз сделали хули не завозят?
pong-paddle-blocks.webp274 Кб, 3840x2006
3 985292
>>985233 →

>блокскрипт. Он визуальнее визуального.


Он может быть полезен для обучения новичков, но фактически это тот же GDScript, только вместо ручной печати команд ты таскаешь их мышкой.

В идеале визуальный язык должен качественно отличаться от текстового тем, что может наглядно демонстрировать взаимосвязи между объектами.

>>85266

>Когда новый ги


1. Над этим работает сам Хуан, в соло.
2. Там вроде ещё есть какие-то проблемы.

Можешь пробовать собрать движок сам:
https://github.com/godotengine/godot/pull/86267

>Milestone 4.4


Значит, можно ожидать в одной из следующих тестовых сборок 4.4, либо придётся ждать 4.5.
4 985297
>>85292

> В идеале визуальный язык должен качественно отличаться от текстового тем, что может наглядно демонстрировать взаимосвязи между объектами.


Да.
Мы это подробно обсудили в прошлом году в треде блочных языков (интересно, утонул ли он?)
5 985300
>>85292

>Он может быть полезен для обучения новичков, но фактически это тот же GDScript, только вместо ручной печати команд ты таскаешь их мышкой.


Да, но он реально выполняет свою роль, он проще скриптинга, не нужно учить api, кликаешь на объект, вылезает окошечко с его свойствами, в констракте грамотно сделано, условия слева, события справа. А ноды нисколько не упрощают, только усложняют. Конечно, по идее это не нужно, но по идее и гдскрипт не нужен, пили на сишарпе или плюсах и в хуй не дуй
6 985313
>>85300

> Конечно, по идее это не нужно, но по идее и гдскрипт не нужен, пили на сишарпе или плюсах и в хуй не дуй


Вот видите, мы постоянно из крайности в крайность кидаемся. То ничего не нужно, то всё нужно.

Я вам вот что скажу: нужен грамотный транспилинг, чтобы любой мог писать логику так ,как ему нравится и в любой момент мог спуститься на уровень ниже, чтобы оптимизировать. Самый высокий уровень: блоки/ивентщиты, уровнем пониже ноды/лапша, еще ниже высокоуровневые скрипты типа гдскрипта/питона/жс, еще ниже низкоуровневые скрипты типа шарпа/жавы, ну и в самом низу си/си++/паскаль/раст. И между этими уровнями уже сегодня можно спускаться сверху вниз. Тулчейны имеются. Но вверх, очевидно, задача нетривиальная, да и не нужно это.
7 985319
>>85300

>не нужно учить api


Угу волшебным образом знания сами в голову подгрузятся
8 985333
>>85319
Если не юзал констракт то не пиши не позорься, я же написал, как там сделано
9 985334
>>85333
Чел, ну допустим у тебя будет что-то в выпадающем списке. Как ты узнаешь что из этого что не изучая?
А так в текстовых ЯП есть автодополнение.
10 985336
>>85334
Ты не пынямаешь. Я вот начинал с констракта, а сейчас на сишарпе, и констракт это единственный упрощенный "скриптинг", есть фишки для новичков, которые позволяют кодить простое просто
sage 11 985349
>>85336
Мне кажется что Абу уже давно прикрутил нейронку и она копирует людей и потом пишет от их лица. Как будто я после трёх литров пива. Еще года три назад можно было определить Анонов по стилю написания, сейчас вообще не возможно.
12 985355
>>85349
Ты о чем, бот?
13 985375
>>85349
Какие нахуй боты нейронки? Вы что ёбнулись, друзья? Или ньюфаги? Любитель констракта здесь уже лет 5 сидит. Душнила с ним спорящий тоже не меньше. Вы их двоих не узнали штоле?

>>85319

> волшебным образом знания сами в голову подгрузятся


Есть настолько интуитивные приложения, что никакие справочники не нужны. Например Paint никто не учил тебя как в нём рисовать. Там настолько всё очевидно, что ты просто берёшь мышку и рисуешь.

Полагаю, в констракте что-то подобное.
14 985378
>>85375
Я недавно вкатился, и только потому что у движка якобы есть поддержка сишарпа. Меня десять раз обосрали в прошлом треде за мой выбор яп. Да мы ебанулись. Нейронки даже ошибки те же самые делают в предложениях.
Я как-то своим бывшим друзьям, лет десять назад, говорил что на даваче боты треды пишут в б. А они мне Ты что ебанутый, быть такого не может, это же так сложно написать.
1732271778307.jpg188 Кб, 1440x1287
# OP 15 985379
>>85378
Любишь шарп - пиши на шарпе. Официально.
16 985381
>>85375

> Любитель констракта здесь уже лет 5


Не пизди, я здесь с самого основания
image.png880 Кб, 1887x748
17 985385
>>85375

>Paint никто не учил


А зачем сравнивать с ним? Тут сравнивать впору с фотошопом. А там таки надо учить. Вон какой код в констракте приходится писать прямо внутри поля.
18 985388
А как можно поменять шрифт через код во всём проекте? Попробовал ProjectSettings.set_setting("gui/theme/custom_font", переменная с шрифтом), и другие способы, но чет не получалось
1732280121072.png148 Кб, 600x399
19 985390
>>85385

> Тут сравнивать впору с фотошопом.


Что важнее: кисть или рука?
20 985400
>>85388
Попробуй через настройки кастомной темы UI.
21 985402
>>85375

>Душнила с ним спорящий тоже не меньше.


Спасибо за комплимент, ты тоже молодец.

>>85300

>проще скриптинга, не нужно учить api, кликаешь на объект, вылезает окошечко с его свойствами


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

API никуда не девается. Пример - вывести текст:
1. Открыть меню - "список доступных функций".
2. Пролистать колёсиком до функции "print text".
3. Перетащить мышкой функцию в окно кода.
4. Набрать желаемый текст на клавиатуре.

Классическим кодом будет примерно так:
1. Нажимаешь "p", "r", "i" или что-то вроде того.
2. Видишь - подсказка "print()" - жмёшь enter.
3. Набираешь желаемый текст на клавиатуре.

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

Удобный визуальный язык должен абстрагировать пользователя от таких действий полностью. Как? Например, у тебя есть два объекта: "динамик" и "генератор звуков" - просто соединяешь динамик с генератором звуков и можешь слышать звуки. Без необходимости каким-либо способом вызывать API команды уровня "play sound: path to sound".

С таким языком ты можешь глянуть на монитор и мгновенно осознать: "ага, динамик соединяется с генератором звуков, значит, должно что-то звучать". Вместо необходимости искать глазами и читать текстовую строку "play sound", независимо от её внешности - цветная рамка её суть не меняет.

Но подобные языки - это DSL, а не что-то общее.
https://en.wikipedia.org/wiki/Domain-specific_language
Поэтому движок может предоставить только общие средства создания таких языков (GraphEdit в Godot).
21 985402
>>85375

>Душнила с ним спорящий тоже не меньше.


Спасибо за комплимент, ты тоже молодец.

>>85300

>проще скриптинга, не нужно учить api, кликаешь на объект, вылезает окошечко с его свойствами


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

API никуда не девается. Пример - вывести текст:
1. Открыть меню - "список доступных функций".
2. Пролистать колёсиком до функции "print text".
3. Перетащить мышкой функцию в окно кода.
4. Набрать желаемый текст на клавиатуре.

Классическим кодом будет примерно так:
1. Нажимаешь "p", "r", "i" или что-то вроде того.
2. Видишь - подсказка "print()" - жмёшь enter.
3. Набираешь желаемый текст на клавиатуре.

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

Удобный визуальный язык должен абстрагировать пользователя от таких действий полностью. Как? Например, у тебя есть два объекта: "динамик" и "генератор звуков" - просто соединяешь динамик с генератором звуков и можешь слышать звуки. Без необходимости каким-либо способом вызывать API команды уровня "play sound: path to sound".

С таким языком ты можешь глянуть на монитор и мгновенно осознать: "ага, динамик соединяется с генератором звуков, значит, должно что-то звучать". Вместо необходимости искать глазами и читать текстовую строку "play sound", независимо от её внешности - цветная рамка её суть не меняет.

Но подобные языки - это DSL, а не что-то общее.
https://en.wikipedia.org/wiki/Domain-specific_language
Поэтому движок может предоставить только общие средства создания таких языков (GraphEdit в Godot).
22 985403
>>85402

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


Никто тебя ни в чем не пытался убедить, я сейчас на юнити прогаю сишарпой, конечно, это гораздо лучше. Дальше писанину твою не читал, ты шизоид
f0a2362366032f0648ad7ced78afdaf1.webp13 Кб, 600x360
23 985404
>>85403

>на юнити


>сишарпой


>не читал

24 985405
>>85402

> Классическим кодом будет примерно так:


> 1. Нажимаешь "p", "r", "i" или что-то вроде того.


> 2. Видишь - подсказка "print()" - жмёшь enter.


> 3. Набираешь желаемый текст на клавиатуре.


В трёшке было так. В четвёрке почему-то поменяли порядок сортировки подсказок и проще принт целиком напечатать, чем прокручивать его в списке. Подскажите, может это можно как-то отменить? Вернуть как было в трёшке?
25 985414
>>85405
Щас понял. Оно при сортировке ставит подчёркивание первее конца строки. И это, походу, баг, а не фича. Если его пофиксить, то сортировка вернётся в норму. Возможно, даже как-то супер-просто фиксится, надо просто найти в исходниках функцию сортировки.
26 985419
>>85405 >>85414
На мой взгляд, сейчас всё правильно работает. Тебе значительно дольше печатать "print_orphan_nodes", чем тот же print, printerr и т.п. Даже если ты редко используешь эту функцию, иметь её ближе удобно.

Изменения сортировки подсказок в 4.0 касались в первую очередь наследования классов, и с этим всё хорошо. Раньше ты получал рандомные встроенные функции и константы сверху списка, а сейчас - то, что объявлено тобой в унаследованном классе.

Изменения произошли здесь:
https://github.com/godotengine/godot/pull/58931
Там же ссылки на обсуждения проблем 3.x.

Здесь жалоба, аналогичная твоей:
https://github.com/godotengine/godot-proposals/issues/9808
С обсуждением, почему откатывать не нужно.
27 985429
>>85419

>дольше печатать


Что дольше: 1 раз напечатать nt_orphan_nodes или 10 раз напечатать nt? Как по мне, print нужен даже чаще.

>в первую очередь наследования классов, и с этим всё хорошо


Да, с этим хорошо, и к этому никаких претензий. Претензии только к подчёркиваниям.

>С обсуждением, почему откатывать не нужно.


>Calinou changed the title Change autocompletion sort order to purely alphabetical or give an option for it in settings. Change autocompletion sort order to be purely alphabetical or add an editor setting for it on May 23


Тащемта да, откатывать не нужно, нужна опция.
Хотя я не видел в интернетах ни одного довольного новой сортировкой, но вот недовольных хватает. Это повод задуматься.

Но, я смотрю, воз и ныне там.
28 985446
Сколько миллионов было потрачено потому что какой-то шизик с манией решил свой язык придумать. Теперь они нахуй сортировки автодополнения фиксят туда-сюда.

Бляяяя.
29 985463
>>85446

Godotaны такой вопрос.

Если спрайт, допустим, размером 500x500, но в движке мы его скейлим на 0.1,
то есть в игре он будет 50x50, то как этот спрайт себя ведет?

Он так и остается 500x500, просто визуально отображается как 50x50?
Или он скейлится один раз а затем сохраняется где-то в памяти и используется с меньшим размером?
Или он пересчитывается каждый кадр?

Просто надоело постоянно вручную менять спрайты в GIMP.
30 985465
>>85463
Остается, движок же не знает, вдруг ты потом из скрипта скейлишь.
Надоело вручную - автоматизируй. Тул скриптами, или батником каким нибудь с imagemagick.

Погуглил, и оказывается в 4 годоте есть такая опция импорта.
Она индивидуальная для каждой картинки, но если нажать Preset - set as default, то такие настройки импорта будут распространяться на последующие добавленные картинки.
31 985470
>>85463
В дебаггере есть вкладка video ram, в ней показывается разрешение каждой картинки и сколько памяти она ест.

Алсо 500х500 не так страшно. У тебя же не 4к текстуры.
32 985473
https://godotengine.org/article/dev-snapshot-godot-4-4-dev-5/

Хуан UID завез, теперь любителям бесконечного рефакторинга жить легче станет.
sage 33 985477
>>85473
а? что он там завез?
sage 34 985478
>>85477
Статья на сайте Godot Engine представляет собой обзор текущего состояния разработки Godot 4.4, в частности, версии Dev 5. В ней обсуждаются новые функции и улучшения, включая оптимизацию производительности и обновления в редакторе. Также авторы подчеркивают важность обратной связи от сообщества для дальнейшего совершенствования движка.

Ясно спасибо.
35 985479
>>85477
>>85478
ГПТ головного мозга, плез. Сказали же тебе - UID у каждого скрипта/файла/ресурса, позволяет надежно отслеживать все переименования/перемещения файлов, затрудняя твоим кривым рукам поломку твоей инди-дрочильни при рефакторинге твоей говеной структуры проекта. Ясно-понятно, принял-понял, как слышно? Прием, шшш.
sage 36 985480
>>85479
Так это уже было, или что я пропустил?
sage 37 985481
>>85480
Я не поленился и почитал, просто ноль полезной информации. . . . . .. . .
38 985482
>>85480
Если бы было, то не было бы нытья "я поперемещал кучу всего, и все зависимости сломались!"
sage 39 985483
>>85482
Я уже привык и каждый раз проверю. И обычно только если на паку выше перемешаешь, случаться проблемы.
sage 40 985484
>>85482
А если в целом то ладно молодцы хоть что то делают.
41 985493
>>85482
Дык оно просто криво работало. Но было же. Зависимости отслеживаются, если перемещать файлы из редактора. Но не всегда. Если цепочка вложенных зависимостей слишком сложная, может поломаться. Желательно держать открытыми все сцены, где используется перемещаемый файл.

Изменение не в том, что УИДы добавили, а в том, что их добавили для всего, в том числе для импортируемого всякого.
42 985495
>>85465
о, нихуя, такое и мне полезно будет
43 985512
>>85478

>обзор текущего состояния разработки Godot 4.4, в частности, версии Dev 5


>Dev 5


Всмысле 4.5 или 5.0? Если 5.0, то известны мин. требования к пеке для 2д разработки, что бы не было больно? Для меня это как бы новое хобби, и если требования возрастут, не хочется на пеку много тратиться. А пока черная пятница, я могу подевешле что-то найти.
44 985516
>>85512
не ссы, пока поддержка веба есть режим совместимости на опенжл3 никуда не уйдет
45 985518
>>85512
Да в любом случае имеет смысл брать что-инбудь, цены будут расти
46 985519
>>85512
4.4 dev 5 это сырая пятая пре-бета версии 4.4, потом какие-нибудь 4.4 beta1-2-3 пойдут, потом release candidate (RC1-2-3), потом, наконец, релиз 4.4.

До 5.0 еще лет 5, так что не трясись.
47 985552
>>85429

>не видел в интернетах ни одного довольного


Нам что, открывать новые issue?

>Здравствуйте, работаю над попенворлд 3д экшн, суть не важна, хотел только сказать, что доволен новой сортировкой подсказок в коде. Спасибо!


>100500 лайков, один комментарий


>Комментарий: Это не проблема, закрываю


>Комментарии ограничены до проверенных


Конечно, чаще всего пишут о том, чем недовольны.
48 985553
>>85446

>Сколько миллионов было потрачено


https://duckduckgo.com/?q=how+many+programming+languages+exists

>There are estimates of over 8,000 programming languages in existence, with some sources suggesting the number could be as high as 9,000. However, only a small fraction of these are widely used in practice today.


Давай, поплачь ещё, что кто-то свой язык делает.
49 985555
>>85463

>будет 50x50, то как этот спрайт себя ведет?


Если сгенерированы mipmap, то будет использован наиболее подходящий по размеру вариант. Без них получается сжатие с возможными артефактами.

Mipmap позволяет создать несколько качественно уменьшенных вариантов, чтобы уменьшить число артефактов при сжатии полигонов в реалтайме:
https://ru.wikipedia.org/wiki/MIP-текстурирование
Это выгодно, если ты планируешь делать сильное приближение и/или отдаление камеры в 2D игре.

Но если планируешь использовать только 1/10 от изначального размера, т.е. в игре камера не будет приближаться к спрайтам, лучше сжать оригинал.
50 985557
>>85446

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


Ты про c++? Там ракеты и самроеиы падали.
Или про C#? Он в банкинге и трейдинге использовался, а значит точно наносил убытки в миллионы.
51 985558
>>85512
Подробнее о нумерации и поддержке версий Godot:
https://docs.godotengine.org/en/latest/about/release_policy.html
Прогресс разработки актуальных версий Godot:
https://github.com/godotengine/godot/milestones

>3.7 - 48% complete, 24 open, 23 closed


>4.4 - 66% complete, 1145 open, 2271 closed


Как видишь, ни 4.5, ни 5.0 пока не планируется.

На версию 5.0 откладывают только предложения:
https://github.com/godotengine/godot-proposals/milestones

>5.0 - 0% complete, 40 open, 0 closed



>если требования возрастут


Godot всегда делали с упором на то, чтобы он был максимально доступен всем, включая детей нищих африканских стран или что-то в этом роде. Должно быть достаточно компьютера 2007-го года, разве что видеокарта должна быть помоложе (2013+).

>А пока черная пятница


А разве это не развод перед новым годом? Перед распродажей всегда завышают цены, как и перед новогодними праздниками. К лету снова снижают.
52 985560
>>85555
Так с мипмапом оригинал никуда не девается, вроде.
Фишка мипмапа в матемтическом свойстве, что 1/4+1/16+1/256... ~= 1/3, иными словами, размер оригинала увеличивается на треть, но в этой трети можно хранить ВСЕ шаги уменьшения картинки вдвое.
То есть это другая оптимизация, не размера, а скорости (чтобы не масштабировать в реалтайме, а доставать уже уменьшенную картинку и при надобности интерполировать между двумя соседними шагами до нужного нецелого размера).
image.png107 Кб, 1284x741
53 985562
>>85429
Погуглил, так и старой многие не довольны.
https://github.com/godotengine/godot-proposals/issues/9808
https://github.com/godotengine/godot/issues/21726
https://github.com/godotengine/godot-proposals/issues/4189
https://github.com/godotengine/godot/pull/58931
Я так понимаю, что можно придумать примеры которые ломают то одну, то другую схему, и надо делать вообще более сложную систему, которая учитывает не только, какой класс сейчас редактируешь, но и какие слова часто использовал (в VsCode вроде так, последнее использованное начнет подниматься вверх по списку - но это значит, что сортировка станет непостоянной, и когда ты пойдешь работать над другой частью проекта, может запутать)
1732394436944.jpg115 Кб, 478x479
54 985569
>>85562
Придётся ждать следующую версию, когда пофикс... Так, падажжи. А ведь в VSCode есть поддержка гдскрипта.
vscodot.mp42,8 Мб, mp4,
1280x700, 0:35
55 985570
56 985571
>>85570
Божечьки, какой каеф!
57 985572
Желаю вам удачи!
58 985585
>>85562

>какие слова часто использовал


Это неудобно в долгосрочной перспективе.

В идеале нужен ИИ, который держит в контексте не только весь проект, но и твои идеи/рассуждения.

>>85570
Какой же у VSCode дурацкий гуй... Откуда эта мода на боковое меню иконками? Виндувс же вроде уже отказалась от размещения таскбара сбоку экрана.

>>85572
Куда собрался? Ты теперь навсегда годотер.
sage 59 985590

>В идеале нужен ИИ


Rider несколько методов которые ты недавно использовал или часто используешь вроде бы держит всехда сверху.
60 985594
>>85261 (OP)
Каково состояние годота в качестве инструмента разработки мобильных дрочилок на ведроид/айкос?
61 985596
>>85585
В vs code, боковую панель, можно переместить
sage 62 985597
>>85594
Меня никто не спрашивал но я выскажу своё скромное мнение.

Вроде как есть но я сам лично не пробовал.
Но если чтото не будет работать. То можно портировать под веб html5.
А с него уже другими свистелками переделка можно на что угодно портировать.
Примеров успешных проэктов на js и ts фреймворках в мире полно.
sage 63 985598
>>85594
А вообще об этом наверно стоит беспокоиться только в последнюю очередь на любом движке. Ты хотя бы доживи до стадии релиза. А как сбилдить или портировать на куда тебе надо ты точно потом точно разберешься.
64 985603
>>85594

>Каково состояние годота в качестве инструмента разработки мобильных дрочилок на ведроид


Я пробовал, далеко не зашёл, но пока нормально.

Из хорошего:
- сборка APK на готовом шаблоне быстрая;
- UI работает практически так же, как на ПК;
- легко регулировать FPS даже в рантайме;
- легко настроить действие кнопки back.
Пока не пробовал, но хорошо:
- remote debug без установки всех файлов;
- поддержка мультитача, разных датчиков;
- можно включать разрешения галочкой;
- встроенная поддержка микротранзакций;
- можно собирать с нуля и это несложно.

Подводные:
- для многих фишек ОС нужна будет сборка с нуля;
- костные анимации Polygon не работают в GLES3;
- Vulkan пока слабо поддерживается смартфонами;
- запуск простой Vulkan игры долгий (3+ секунды);
- какие-то сложности с виртуальной клавиатурой;
- какие-то сложности с общей файловой системой.
Но моему смартфону уже почти 4 года, если что.

По экспорту смотри сам, в целом несложно:
https://docs.godotengine.org/en/stable/tutorials/export/exporting_for_android.html
https://docs.godotengine.org/en/stable/tutorials/export/android_gradle_build.html

>>85597

>портировать под веб html5


>свистелками переделка можно на что угодно


Билд под веб самый ограниченный и медленный. Примитивные игры лучше писать на голом JS, чем использовать движок, а тяжёлые игры в браузере типичной домохозяйки/ребёнка будут тормозить. Поддержка веба тут скорее маркетинговая уловка.

>>85598

>потом точно разберешься


Для мобильных игр это категорически неправильно. Мобильные игры должны всегда тестироваться на реальных устройствах с самого раннего прототипа, буквально когда у тебя только меню и квадратик по экрану ползает. Потому что геймплей на мобилках чрезвычайно завязан на сенсорный экран, плюс неудобное положение пользователя в окружающем пространстве, и оценить это всё возможно только плейтестом на реальном устройстве. Желательно нескольких с разными разрешениями экрана. Иначе получится фигня и придётся менять даже игровые механики. Поэтому порты с ПК редко взлетают - изначальный дизайн игры не заточен для мобилок. Особенно это важно для твоей первой мобильной игры, и для первой игры на новом для тебя движке.

Поэтому первым должен идти билд, а уже потом - разработка игровых механик, что будут на этом устройстве тестироваться так, как должен играть потенциальный игрок. Если игра, например, для расслабления в автобусе - нужно симулировать обстановку автобуса или тестировать в нём, чтоб убедиться в читаемости и удобстве интерфейса и геймплейных механик. Впрочем, если ты просто копипастишь успешную игру, это уже не так важно.
64 985603
>>85594

>Каково состояние годота в качестве инструмента разработки мобильных дрочилок на ведроид


Я пробовал, далеко не зашёл, но пока нормально.

Из хорошего:
- сборка APK на готовом шаблоне быстрая;
- UI работает практически так же, как на ПК;
- легко регулировать FPS даже в рантайме;
- легко настроить действие кнопки back.
Пока не пробовал, но хорошо:
- remote debug без установки всех файлов;
- поддержка мультитача, разных датчиков;
- можно включать разрешения галочкой;
- встроенная поддержка микротранзакций;
- можно собирать с нуля и это несложно.

Подводные:
- для многих фишек ОС нужна будет сборка с нуля;
- костные анимации Polygon не работают в GLES3;
- Vulkan пока слабо поддерживается смартфонами;
- запуск простой Vulkan игры долгий (3+ секунды);
- какие-то сложности с виртуальной клавиатурой;
- какие-то сложности с общей файловой системой.
Но моему смартфону уже почти 4 года, если что.

По экспорту смотри сам, в целом несложно:
https://docs.godotengine.org/en/stable/tutorials/export/exporting_for_android.html
https://docs.godotengine.org/en/stable/tutorials/export/android_gradle_build.html

>>85597

>портировать под веб html5


>свистелками переделка можно на что угодно


Билд под веб самый ограниченный и медленный. Примитивные игры лучше писать на голом JS, чем использовать движок, а тяжёлые игры в браузере типичной домохозяйки/ребёнка будут тормозить. Поддержка веба тут скорее маркетинговая уловка.

>>85598

>потом точно разберешься


Для мобильных игр это категорически неправильно. Мобильные игры должны всегда тестироваться на реальных устройствах с самого раннего прототипа, буквально когда у тебя только меню и квадратик по экрану ползает. Потому что геймплей на мобилках чрезвычайно завязан на сенсорный экран, плюс неудобное положение пользователя в окружающем пространстве, и оценить это всё возможно только плейтестом на реальном устройстве. Желательно нескольких с разными разрешениями экрана. Иначе получится фигня и придётся менять даже игровые механики. Поэтому порты с ПК редко взлетают - изначальный дизайн игры не заточен для мобилок. Особенно это важно для твоей первой мобильной игры, и для первой игры на новом для тебя движке.

Поэтому первым должен идти билд, а уже потом - разработка игровых механик, что будут на этом устройстве тестироваться так, как должен играть потенциальный игрок. Если игра, например, для расслабления в автобусе - нужно симулировать обстановку автобуса или тестировать в нём, чтоб убедиться в читаемости и удобстве интерфейса и геймплейных механик. Впрочем, если ты просто копипастишь успешную игру, это уже не так важно.
65 985604
>>85594
Под айос не знаю, под андроид полет нормальный - 3 приложения за последние пару лет опубликовал в гугл плей без какого-либо геморроя, одна из приложений гуевая менюха-менеджер с low process mode. Сейчас делаю четвертую в 3д, по тестам на локальных девайсах тоже норм.
66 985614
>>85603

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


Спасибо, анон, именно поэтому я и спрашивал
67 985618
>>85594
Хуевая, лучше не стоит. Проблемы есть и с мультипоточностью, и с шейдерами, и с поддержкой взаимодействия с системой. Всё довольно криво и косо, юнити в этом плане подойдёт лучше.
68 985633
>>85618
Пошел нахуй, лжец
69 985634
Признавайтесь, кто тред в программаче создал?
https://2ch.hk/pr/res/3290860.html (М)
70 985635
>>85634
Съеби, серун.
71 985637
>>85635
Неприятно, годотя?
72 985639
>>85552

>Нам что, открывать новые issue?


Не ну типа:
Анон1: Мне не нраица
Анон2: А мне заебись
73 985646
Годаны, два вопроса.
1. Вот в 2д есть нода CanvasGroup, чтобы за один дравколл отрисовывать всех её детей. А есть что-нибудь подобное для 3д?
2. Шейпы коллизий. Они по умолчанию рисуются только рёбрами, и не видно, особенно когда пытаешься подогнать к модельке. Как сделать, чтобы у коллижоншейпов отрисовывались ещё и грани?
74 985651
В прошлом треде я бухтел по поводу террейнов. Дескать, хули нету в ядре движка. Обещал попробовать плагины и блендер.
Итак. Единственный (в ассетлибе) террейн-плагин на гдскрипте, поддерживающий скульптинг и дырки, это Heightmap Terrain от Zylann. И у него есть две проблемы:
1. Ублюдский скульптинг. Прямо вот как будто автор сам им не пользуется. Точечное аккуратное редактирование отдельными кликами невозможно, гизмо рисуется неправильно, настройки кисти в виде полосок прокрутки без текстового поля.
2. Всратая работа с текстурами. Сука ну почему нельзя StandardMaterial3D использовать? Ну нахуя эти вот извращения с запихиванием бампмапы в альфу текстуры альбедо? Или это какое-то принципиальное ограничение террейнов?

Все остальные плагины либо на плюсах (при экспорте ждёт ебля с пересборкой темплейта), либо на б-гомерзком шарпе.

И я всё ещё считаю, что движок, стремящийся в нишу тридэ, должен иметь встроенный террейн. И старфилдовское "модами допилят" тут не прокатит - мододелы делают только то, что надо лично им, ровно так, как надо им, а если тебе не нравится - ну сделай сам. И отмазка про малую востребованность тоже мимо: среди трёхмерных игр таких, которым террейны не нужны, меньшинство; а поддержку вулкана, а рендерер для чего пилили, чтобы так и вариться дальше в двадэ?
Карочи аргх.
А в блендере я потыкался и понял, что в годоте левелдизайнить гораздо комфортнее. Блендер охуенен для моделирования, но на больших сценах всё же Годот и шустрее, и удобнее. Воттаквот.
75 985657
>>85651

> считаю, что движок


> должен иметь встроенный террейн


Молодец, возьми с полки пирожок.
Я хотел написать, >сделай сам, это опенсорц< но вспомнил, что деланье ты называешь

> ебля с пересборкой темплейта


Поэтому полка, поэтому пирожок.
76 985658
>>85651
heightmap это прошлый век
77 985661
Беру свои слова назад. Шейдеры красота неописуемая.
Вот только как их самому писать, это какой там язык используется?
78 985664
>>85658
бред
79 985665
>>85661
Скоро на slang перейдут.
80 985671
Привет, я друг.
Меня тут три месяца не было. Скажи, на Годовом уже появились игры (ну, знаешь, такие программки, в которые играют больше 1000 человек)?
81 985673
>>85671
К сожалению есть только недоделанный кал. Это же Годо, у них сейчас другая задача, вместо создания движка для игр они собирают донаты с ГЛГБТК++ фондов.
image.png48 Кб, 1565x126
82 985676
>>85671
Always been.
Еще с 2016, с игры написанной лично Хуаном
>>85673
Харепортил.
84 985694
Порепортил каникульного движкосрачера
86 985726
>>85261 (OP)
Вот в чем дело, загружаю скрипт в коде таким образом
load(путь к скрипту).new(аргумент), но получаю ошибку, что мой скрипт не принимает аргументы.
При этом в скрипте есть _init, который принимает аргумент и если сделать этот скрипт классом, то все работает, но при использовании load выскакивает ошибка.
Что я делаю не так?
87 985730
>>85726

>Что я делаю не так?


>Godot #58


Подумай хорошенечко.
88 985732
>>85730
Что? Я, вроде, в актуальный тред пишу
89 985736
Поясните.
Вот я делаю StandardMaterial3D -> преобразовать в ShaderMaterial. Дальше смотрю код этого шейдера и вижу, что карта высот (heightmap_texture) в нём не используется вообще. Хотя в исходном материале она была задана.
Шозанах? Я как раз эту часть шейдера хотел поменять, а её внезапно нету.
1732595460664.png29 Кб, 807x212
90 985758
>>85726

> загружаю скрипт в коде таким образом


> load


Объект уже существует и просто меняет скрипт у себя. У него не отрабатывает init и аргументы оттуда игнорируются. https://docs.godotengine.org/en/stable/classes/class_object.html#class-object-private-method-init
Чтобы инстанцировать с аргументами, тебе нужно создавать объекты, а не грузить скрипт в существующие.

1. В скрипте делаешь class_name ClassName
2. В целевом участке кода:

> var cn := ClassName.new(arg)


> add_child(cn)



Тока так.
91 985759
>>85724

>Годнота


Опять управлять тянкой, которую насилуют в случае поражения. То есть фап-контент противоречит игре.

Почему так мало игр, где ТЫ насилуешь монстров? И побеждаешь в бою, если изнасилуешь правильно.
92 985760
>>85646

>CanvasGroup, чтобы за один дравколл отрисовывать


Не, там другая суть. Сначала твои ноды рендерятся по отдельности, а потом CanvasGroup копирует результат, применяя к нему закреплённый на нём шейдер.

>А есть что-нибудь подобное для 3д?


В смысле, чтобы применить эффект для копипасты? Конечно. Используй SubViewport, там transparent_bg установи true, чтобы фон был прозрачный. Текстуру обработаешь как обычно с 2D шейдерами. Вроде бы можно как-то вытащить отдельно буфер глубины...

>Шейпы коллизий


>пытаешься подогнать к модельке


Ставь камеру ортогонально спереди/сверху/сбоку. Будет намного проще, чем с перспективным видом. Хоткеи +/- как в блендере: на клавишах нумпада.

>отрисовывались ещё и грани


Создай тестовый MeshInstance с примитивом. У сфер, капсул, цилиндров и параллелепипедов одинаковые параметры (должны быть). Как настроишь, значения можно скопировать, кликнув в инспекторе правой кнопкой мыши (копирует с учётом типа поля, т.е. скопированный Vector3 вставится в любой Vector3).
93 985762
>>85758

>Объект уже существует


А если сделать так?

>var script: Script = load("res://script.gd")


>var object = script.new(args)


Так должно работать...

>>85726

>ошибку, что мой скрипт не принимает аргументы


Не знаю, попробуй сделать так:

>print(load("res://script.gd"))


Чтобы понять, что у тебя там загрузилось.

А зачем грузишь скрипты через load? Моддинг?
94 985763
>>85736
Попробуй выключить uv1_triplanar:
https://docs.godotengine.org/en/stable/classes/class_basematerial3d.html#class-basematerial3d-property-heightmap-enabled

>Note: Height mapping is not supported if triplanar mapping is used on the same material. The value of heightmap_enabled will be ignored if uv1_triplanar is enabled.


Если что-то из стандартных функций не нужно, Godot генерирует облегченную версию шейдера.
95 985765
>>85651

>прошлом треде я бухтел


Помню, тебе какая-то трава нужна была вдоль дорог.

>Ублюдский скульптинг


Скульптинг... Травы? А не много ли тебе нужно?

>Точечное аккуратное редактирование отдельными кликами


...травы? Травы ведь? Вдоль дороги, да?

>Всратая работа с текстурами


Это нужно, чтобы оптимизировать рендеринг.

>нельзя StandardMaterial3D использовать?


Куда StandardMaterial3D засунешь, если у тебя там несколько разных текстур альбедо? У тебя текстура травы, земли, камней, песка. Их нужно смешивать в разных пропорциях в зависимости от того, что там нарисовано на твоём ландшафте. Для этого нужен специальный шейдер, а не тот, что в Godot.

Если тебе достаточно одной текстуры травы, то тебе вообще не нужен никакой ландшафт. Просто слепи модельку травы в блендере и импортируй как меш.

>ебля с пересборкой темплейта


Если плагин типа такого, то сборка не нужна:
https://github.com/TokisanGames/Terrain3D
Т.к. там уже готовые .dll/.so в папке /bin лежат.

>тут не прокатит - мододелы делают только то, что надо лично им, ровно так, как надо им


А если разработчики Godot Engine его сделают?

>среди трёхмерных игр таких, которым террейны не нужны, меньшинство


Ага. А если новичок попытается сделать копание? Классические террейны сейчас мало используются. Посмотри на количество 3D игр на мобилках... Там летающие в пространстве меши, иногда GridMap. А большинство игр с террейном - это клоны майна, а значит, воксельные со сглаживанием.

>в блендере


>левелдизайнить


Никто тебя не заставляет весь уровень в блендере лепить. Слепи свою траву там, импортируй в Godot.
95 985765
>>85651

>прошлом треде я бухтел


Помню, тебе какая-то трава нужна была вдоль дорог.

>Ублюдский скульптинг


Скульптинг... Травы? А не много ли тебе нужно?

>Точечное аккуратное редактирование отдельными кликами


...травы? Травы ведь? Вдоль дороги, да?

>Всратая работа с текстурами


Это нужно, чтобы оптимизировать рендеринг.

>нельзя StandardMaterial3D использовать?


Куда StandardMaterial3D засунешь, если у тебя там несколько разных текстур альбедо? У тебя текстура травы, земли, камней, песка. Их нужно смешивать в разных пропорциях в зависимости от того, что там нарисовано на твоём ландшафте. Для этого нужен специальный шейдер, а не тот, что в Godot.

Если тебе достаточно одной текстуры травы, то тебе вообще не нужен никакой ландшафт. Просто слепи модельку травы в блендере и импортируй как меш.

>ебля с пересборкой темплейта


Если плагин типа такого, то сборка не нужна:
https://github.com/TokisanGames/Terrain3D
Т.к. там уже готовые .dll/.so в папке /bin лежат.

>тут не прокатит - мододелы делают только то, что надо лично им, ровно так, как надо им


А если разработчики Godot Engine его сделают?

>среди трёхмерных игр таких, которым террейны не нужны, меньшинство


Ага. А если новичок попытается сделать копание? Классические террейны сейчас мало используются. Посмотри на количество 3D игр на мобилках... Там летающие в пространстве меши, иногда GridMap. А большинство игр с террейном - это клоны майна, а значит, воксельные со сглаживанием.

>в блендере


>левелдизайнить


Никто тебя не заставляет весь уровень в блендере лепить. Слепи свою траву там, импортируй в Godot.
96 985792
>>85758
Но я не меняю никакой скрипт, я просто загружаю новый и передаю ссылку на него в переменную.

>1. В скрипте делаешь class_name ClassName


Я про это знаю, но это сильно забивает автодополнение. Десяток лишних классов, экземпляры которых нужно создавать не так уж и часто, мне не нужны в автодополнение.

>>85762

>var script: Script = load("res://script.gd")


>var object = script.new(args)


Тоже самое. Ошибка, что new не принимает аргументы.

>Чтобы понять, что у тебя там загрузилось.


Загрузился этот самый скрипт. Я могу с ним нормально работать, просто я не могу передать аргументы в конструктор.

>А зачем грузишь скрипты через load? Моддинг?


Не, не для этого. Просто у некоторых айтемов, которые у игрока в инвентаре, должны быть уникальные функции, сначала я делал это через class_name, но потом меня стало напрягать замусореность автодополнения.
sage 97 985809
пиздец, мой художник по ходу сольётся
1732616940807.jpg192 Кб, 750x750
98 985813
>>85792

> меня стало напрягать замусореность автодополнения


Ебать пиздец.
Просто пиздец.
Я не знаю, чему тут еще помочь.
Автодополнение у него замусорено, ёб твою мать. Это толстота такая?
99 985842
>>85646

>Вот в 2д есть нода CanvasGroup, чтобы за один дравколл отрисовывать всех её детей. А есть что-нибудь подобное для 3д?


Если ты про батчинг, то для 3-ки есть Mesh Merge (вручную/скриптами). https://github.com/godotengine/godot/pull/57661 Для одинаковых объектов MeshInstance. А в 4-ке это вроде не так важно, там автоматический mesh instancer, а для разных дроуколлы дешевле, так что тут стоит вообще проверить, надо ли с этим париться.
Если же ты про порядок рендера, то для 3д есть render priority.
100 985896
>>85809
Поэтому либо все один аки человек-оркестр плюс свободные ассеты, либо плоти людям. Ситуация типичная, не переживай, справишься. Геймлпей энивей важнее арта.
101 985934
Как в годе сделать так чтобы спрайт отрисовывал круг и он был виден в редакторе?
102 985936
>>85934
Все, нашел в доке
103 985966
>>85651

>Ну нахуя эти вот извращения с запихиванием бампмапы в альфу текстуры альбедо? Или это какое-то принципиальное ограничение террейнов?


Оптимизация шейдера. В доках же описано почему. https://hterrain-plugin.readthedocs.io/en/latest/#packing-textures-manually
Чтение текстуры в шейдере - дорогая операция. Так бы пришлось читать 2 текстуры, притом что из первой используется только RGB (3 из 4 каналов), а неровности - 1 канал из 4. Логично объединить их 3+1.
104 985975
>>85896
Этот человек пытался выжать максимум выгоды, ведя сразу три проекта с одними и теми же спрайтами. Если кому интересно, могу скинуть ссылку на Discord-сервер, где всё это задокументировано. Возможно, кому-то пригодится, чтобы в будущем не наступить на те же грабли.

Я, между тем, две недели работал, как одержимый: по 12 часов в день, с утра до вечера, вкладывая в проект всю душу.

Теперь даже не знаю, что делать. Идея была его, спрайты тоже его. Перерисовывать? Ну, честно говоря, совсем не хочется. У меня были планы выпустить игру в Steam в раннем доступе, довести её до ума и сделать по-настоящему крутой продукт. А ему, как оказалось, важнее было всё сделать быстро и по-своему, но при этом он ни разу об этом прямо не сказал.

Позже выяснилось, что он крайне болезненно реагирует на любую критику. Начал придираться буквально ко всему, без причины, просто из-за собственного настроения.
105 985976
>>85975

> Идея была его, спрайты тоже его.


Нахуй с таким вообще связываться, он потом тупо тебя засудит.
106 985977
>>85976
Да там обычный рогалик, по типу Brotato, только с другими спрайтами.
107 985982
>>85977
Если честно, я бы хотел, чтобы кто-нибудь почитал чат дискорда. Мне интересно ваше мнение, чтобы понять, в чём я был неправ.
108 985983
>>85977
Ну смотри, допустим идея не копирайтится. Но есть ли у тебя договор с ним на передачу прав на спрайты?
109 985985
>>85982
У меня нет дискорда. Выкладывай текст на какой нибудь файлообменник.
110 985986
>>85760

>CanvasGroup


Ты перепутал с BackBufferCopy, буквально его описал.
https://docs.godotengine.org/en/stable/classes/class_canvasgroup.html

>Merges several 2D nodes into a single draw operation.


Батчинг крч.

>Ставь камеру ортогонально


Не работает с более-менее сложными формами, становится непонятно, что там и как.

>Создай тестовый MeshInstance с примитивом


Вот это годный воркароунд, спасибо.
111 985989
>>85983
Да не хочу продолжать с его спрайтами, их там было совсем немного: всего пара мобов с одной анимацией, бонус и спавны.
112 985991
>>85985
Попозже скину
113 986002
>>85975
Я бы пересобрал проект со свободными спрайтами, на итче хватает, выложил бы что получилось и двигался дальше получив экспириенс. Потому что, будем честны, ваша первая игра, даже если бы вы не разосрались, нихуя не взлетела бы. Как и вторая. И третья.

>всю душу


>по-настоящему крутой продукт


И советую снять розовые очки, иначе геймдев тебя пережует и выплюнет. Что, впрочем, уже и происходит. Дискорд ваш читать лень. Просто продолжай работать.
проблемы с уголком.png25 Кб, 777x392
114 986014
>>85765

>трава


Нет. Участки неровной земли между асфальтированными дорогами и домами в городе. Щас выгляни в окно и посмотри на землю во дворе. Вот оно и надо. Точечно редактировать - чтобы подогнать к тротуарам, бордюрам, заборам и стенам.
А как раз именно трава НЕ нужна.

>оптимизировать рендеринг


Понян. >>85966 понятно объяснил.

>А если разработчики Godot Engine его сделают?


>если



>Никто тебя не заставляет весь уровень в блендере лепить


Ну, сам уровень и заставляет. Террейн, дороги, бордюры дома - основа, в общем.

>Классические террейны сейчас мало используются


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

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

Я от безнадёги стал курить, как завелосипедить свой простенький террейн, и чот прихуел. Шейдером?! Шейдером сука. Вот эту абсолютно статичную хуйню, которая делается ровно один раз и никогда более (в рантайме) не меняется - вот её изгибают шейдером?! Но зачем, а главное нахуя? Это ж бред, считать такое каждый кадр - это хуже NFT. Походу, запекание шейпа - это утерянная технология древних.
lodgeometry.webp363 Кб, 1337x845
115 986015
>>86014
Шейдер - это то, что рисует материалы. Они и так везде используются в рендере. Запекание в zylann hterrain есть, но смысл террейна то в динамических лодах - когда детально рисуется та поверхность, что ближе к камере. В zylann hterrain запекание есть, там будет меш на выходе, но движку потом придется рисовать его целиком.
116 986016
>>85989 пара спрайтов - это считай ничего, просто выкинь их и все.
117 986023
>>85813

>Это толстота такая?


Не он один от этого страдает:
https://github.com/godotengine/godot-proposals/issues/1566

>👍142 🚀29 👀25



>>85792

>Ошибка, что new не принимает аргументы.


Ну, похоже на баг, т.к. по идее должно работать.

>не могу передать аргументы в конструктор.


А тебе они действительно нужны в _init()?

>должны быть уникальные функции


Можно попробовать цеплять к ним ноду...

>напрягать замусореность автодополнения.


Добавляй префиксы, будет как-то так:

>class_name Inventory


>class_name InventoryItem


>class_name InventoryItemHint


>class_name InventoryItemEffect


>class_name InventoryItemEdible


>class_name InventoryItemTool


>class_name InventoryItemWeapon


>class_name InventoryItemThrowable


И т.д. Это, конечно, костыль, но лучше, чем ничего.
С рабочими name space было бы как-то так:

>class_name Inventory.Item.Effect


Так что особой разницы в ощущениях как бы и нет.
117 986023
>>85813

>Это толстота такая?


Не он один от этого страдает:
https://github.com/godotengine/godot-proposals/issues/1566

>👍142 🚀29 👀25



>>85792

>Ошибка, что new не принимает аргументы.


Ну, похоже на баг, т.к. по идее должно работать.

>не могу передать аргументы в конструктор.


А тебе они действительно нужны в _init()?

>должны быть уникальные функции


Можно попробовать цеплять к ним ноду...

>напрягать замусореность автодополнения.


Добавляй префиксы, будет как-то так:

>class_name Inventory


>class_name InventoryItem


>class_name InventoryItemHint


>class_name InventoryItemEffect


>class_name InventoryItemEdible


>class_name InventoryItemTool


>class_name InventoryItemWeapon


>class_name InventoryItemThrowable


И т.д. Это, конечно, костыль, но лучше, чем ничего.
С рабочими name space было бы как-то так:

>class_name Inventory.Item.Effect


Так что особой разницы в ощущениях как бы и нет.
118 986025
>>85986

>Батчинг крч.


Батчинг в 2D происходит автоматически, и это не то.

>Ты перепутал с BackBufferCopy


Это ты невнимательно читаешь.

Читай внимательно:

>The CanvasGroup uses a custom shader to read from the backbuffer to draw its children.


>To duplicate the behavior of the builtin shader in a custom Shader use the following:


>void fragment() {


>vec4 c = textureLod(screen_texture, SCREEN_UV, 0.0);


Т.е. эта нода каждый кадр копирует с экрана...

Пример того, для чего нужен CanvasGroup:
https://www.reddit.com/r/godot/comments/xrfkc5/
120 986027
>>86025

>копирует


А, нет, копирует из "back buffer", которых у приложения может быть несколько. Но вот вопрос, как часто этот буфер обновляется? Когда ноды двигаются? Каждый кадр? Батчинг имеет смысл только если уменьшает количество вызовов отрисовки, а если каждый кадр рендерить в задний буфер - будет больше вызовов.

Например, если использовать это:
https://docs.godotengine.org/en/stable/classes/class_subviewport.html#enum-subviewport-updatemode

>UpdateMode UPDATE_ONCE = 1


>Update the render target once, then switch to UPDATE_DISABLED.


Тогда у тебя вместо 9000 вызовов будет только 1 - копирование готовой картинки из ViewportTexture.

Но если у тебя стоит:

>UPDATE_WHEN_VISIBLE


>UPDATE_WHEN_PARENT_VISIBLE


>UPDATE_ALWAYS


У тебя будет 9001 вызов отрисовки: сначала сами объекты, а потом их копирование из текстуры.

Поэтому я сомневаюсь на счёт роли CanvasGroup.
121 986029
>>86026
Я прочитал твою портянку. Тебя конечно тяжело читать. Ну да ладно.
Вот поэтому и нужен договор с художниками. Причем с прописанными эксклюзивными правами, чтобы арт и персонажей нельзя было использовать где-то еще.
Договоры на то и нужны. Поскольку вы не смогли определиться кто из вас главный (да-да, из двоих кто-то главнее).
122 986030
>>86029
Спасибо за совет
123 986031
>>86026
Ты только что случайно (пункт 1 правил Двача):

>УК РФ Статья 138


>УК Украины Статья 163


Чтоб понимали, это алкаш-гомофоб из >>981122 (OP)

В переписке объективные претензии к тебе. На его месте я б с тобой разорвал контакт раньше, молча.

>>85975

>три проекта с одними и теми же спрайтами.


Это нормальная практика на фрилансе. Юридически проблемы нет, ведь это его проект, а не твой личный.

>Начал придираться буквально ко всему, без причины, просто из-за собственного настроения.


Это ты по настроению всё делаешь. Не проецируй проблемы со своими гомоэмоциями на других.

>>86029
Не защищай этого токсика - получил, что заслужил. Неожиданно, что кто-то с ним вообще связался.
124 986032
>>86029
Я, кстати, вообще нашел его случайно по скриншоту с Двача, а потом нашел сайт.

https://gamin.me/posts/22832

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

И потом оказалось, что он работал еще с двумя людьми параллельно со мной.

То есть, он нашел как минимум четырех "лохов", включая меня.

На такую мразь надо вообще везде объявления расклеивать, чтобы с ним не работали. Нахуй таких пинком под жопу вытравливать из геймдева.
125 986034
>>86032

>лохов, включая меня.


Ты не лох, ты токсичный агрессор. Остынь.

>с двумя людьми параллельно со мной.


У тебя уже были фантазии что между вами любовь?
Понимаю, тяжело переживать измену любовника...

>такую мразь


В чём он виноват? В том, что просил твоей помощи?
126 986035
>>86034

>В чём он виноват? В том, что просил твоей помощи?


Тем что сразу не предупредил
127 986037
>>86035

>сразу не предупредил


Он же вроде ясно выразился:

>Целей заработать нет, только приятно провести время во время разработки и получить фан от процесса и общения.


Что ты ожидал? Что между вами внезапно вспыхнут интимные отношения, только он да ты наедине?

Мог бы заранее спросить, не работает ли он с кем-то, если тебя настолько волнует этот интимный момент.

А вот твой пост:

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


>По сути, он просто тестирует, кто ему больше подходит, а затем избавляется от остальных.


>Меня он отсеял, прекратив сотрудничество спустя две недели активной работы.


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

>Все усилия и время, вложенные в проект, оказались потраченными впустую.


Это неправда, поскольку:
1. Код у тебя никто не отбирал - ты можешь просто поменять графику и продолжить работу один или с другими людьми. Учитывая разногласия, ты явно собирался делать что-то другое - вот и делай сам.
2. Ты за это время набрался опыта и навыков. Даже если ты не будешь больше использовать Godot, опыт разработки игр ценен вне зависимости от движка. И кроме того, опыт работы в команде - даже если он был неудачным. Делай выводы и станешь лучше.
128 986040
>>86031
Я его и не защищал, я просто не стал комментировать его личность, а ответил только по существу. У нас же тред дружбы и взаимопомощи, а еще он новичок в годоте, мы же не гейткиперы, и помогаем всем годотерам. К тому же он двачер.
129 986042
>>86032
Я тебе по программистски логично объясню.
Если ты пробуешь и покупаешь помидоры в одном магазине, это не означает что у тебя пропадает право покупать их в других магазинах.
Если ты выбираешь, скачиваешь картинки для своей игры, это не значит что ты не можешь больше скачивать картинки других художников.
Тут произошло то же самое. Он выбирал программиста, и это не значит что он не имеет права пробовать других. Договор то вы не заключали, значит и обязанности продолжать сотрудничать нет.
Если у вас не было договора какого-то, получается ты код ему сам добровольно писал. В следующий раз заключай на нужных тебе условиях, раз тебе так не нравится, нанимайся по договору, где будет написано что делаешь ты и что ты за это получаешь - например деньги.
В любом случае для вас это к лучшему, потому что представь, что было бы если бы так без договора выпустили игру и потом начали бы делить прибыль. Это ж пиздец. Если не знаешь как оно бывает - посмотри сериал "кремниевая долина", там понятно и доступно показаны такие переделы.
130 986045
>>86031
хотя если почитать тот тред, а как с ним будет заключать договор петербуржец в казахстане? Подозреваю что neekaque
131 986046
>>86014

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


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

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

Потом, возникает вопрос: какова роль в геймплее у данных участков неровной земли? На чём у игры геймплейный фокус: автомобилях, пешеходах, или, возможно, менеджменте города? Может ли игрок взаимодействовать с неровными участками?

Если тебе не нужен фотореализм графики, то можно обойтись программной тряской автомобиля, когда сходит с дороги на обочину - без буквальных кочек. Простое замедление тоже может оказаться более естественным по ощущениям, чем точная модель взаимодействия с бугорками на обочине дороги.

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

>А как раз именно трава НЕ нужна.


Речь шла о плоской текстуре травы.

>>Никто не заставляет в блендере лепить


>Ну, сам уровень и заставляет


У тебя есть 2D эскизы/наброски/концепт уровня? Референсы? Похожие уровни из других игр? Не волнуйся, если что, никому не интересны чьи-то каракули типа пикрила. Но так нам будет проще подсказать более удобное решение проблемы.
132 986060
>>86014
А ты не думал в сторону модульности/тайловости? Не обязательно квадратно гнездовой, главное что делать не так много частей то надо. Ну например у тебя могут быть замоделены куски канавы, а остальная земля будет плоскостью.
Видео 27-11-2024 120203.mp48,8 Мб, mp4,
1280x658, 0:24
133 986066
Сап анончики, Прошу помощи
Каким образом лучше всего сделать линию от пули
ЧТобы как в утракиле
Сидел пердел над партиклами но они дают не тот эффект
134 986071
>>86066
Просто цилиндр, а то и вообще банальная прямоугольная плоскость.
Вот это глянь https://docs.godotengine.org/en/stable/tutorials/3d/particles/trails.html
Раньше надо было аддон качать
135 986084
Привет всем. Делаю игру, где есть всякие НПС. И у них есть диалоги при взаимодействии. Как эти диалоги грамотно хранить и менеджить? Сейчас храню их в CSV/Translation, и вот не знаю как красиво (масштабируемо) архитектурно сделать так, чтоб какие-то из этих диалогов проигрывались один раз, другие повторялись, и чтоб эти диалоги (в том числе повторяющиеся) в целом менялись в соответствии с общим прогрессом игрока по сюжету. Пока только придумал сохранять "биты" сюжета для каждого из НПС как ресурсы с полями ключей "от" и "до" csv-файла диалогов, которые будут вложены в "мета-биты" сюжета, которые можно будет засовывать в экспорты квестов и событий. Еще можно сделать массив "битов" у каждого из НПС свой, и он будет обновлять текущий "бит", смотря на поля, на которые ему нужно смотреть. Какой вариант лучше? И самое главное - как это можно еще сделать? Мне мои варианты не очень нравится. Что-то мне подсказывает, что можно проще и удобнее.
136 986089
>>86084
Я для сложных веток диалогов использую дополнительные ноды с embedded скриптами, дальше уже от конкретного диалога зависит. Тебе посоветую не повторять мой путь, не костылять и взять готовый плагин диалогов.
137 986091
Есть ли способ заебашить в годот каких-нибудь клёвый ИИ-алгосов, типо генетических алгоритмов или обучение с подкреплением?
138 986106
140 986167
>>86023

> Добавляй префиксы


> Это, конечно, костыль


Когда я учился это был хороший тон в кодинге. А нынче вона чо, кастыли!
141 986191
>>86167
Не, это всегда было костылем, как раз от отсутствия классов или неймспейсов.
142 986225
>>86191
Не, это не всегда было костылём, как раз когда я учился это было хорошим тоном в кодинге.
143 986254
>>86225
Вот прям так и говорили, не надо использовать классы и неймспейсы, замусоривайте имена переменных? Такое может быть, если учился на бейские каком нибудь. Потому что если уже были неймспейсы или классы, то за Inventory.InventoryItemEffect бы били по рукам в приличном заведении.
144 986259
>>86254

> Inventory.InventoryItemEffect


У тебя каша в голове. Охуенную антирекламу своего учебного заведения ты щас сделал. Где учился?
145 986263
>>86046

>исключительно город (современный)


Город ВСЖ. Не облагороженный мегаполис с ровными газонами, а кривой-косой артефакт уходящих времён.

>какова роль в геймплее у данных участков неровной земли?


Научиться их делать :3
Весь этот проект затевался с целью вкатиться в 3д. Так что я просто поставил себе задачу: хочу сделать такой вот уровень, соответственно и ищу инструменты под это.

Вообще, я почитал про ArrayMesh и всё сопутствующее, вроде не оч сложно. Попробую навелосипедить простенький террейн под свои задачи. Существующие плагины нацелены на огромные открытые миры и ЛОДы, а мой будет сделан под запекание меша, точечное редактирование и маленькие локации. Примерно как они используются в Халфлайфе.
Олсо, была даже мысль слепить уровень в Хаммере, а потом импортировать через VMF-импортер. Но это не даст мне новых знаний, а велосипединг - даст.

>Ты хочешь простое и быстрое решение, что как бы намекает, что это вообще не важный элемент


Да не, просто надеялся успеть слепить к определённой дате. А теперь уже точно не успеваю.

>>86060

>А ты не думал в сторону модульности/тайловости?


Не. Панелькам надо давать не-панельное окружение, только тогда они раскрываются во всей своей чужеродности.
146 986267
>>86259
Анон, тебе не стоит закапывать себя еще глубже перефорсом.
147 986273
Анон с кашей в голове, в силу своей некомпетентности, говорит мне
>>86267

> тебе не стоит закапывать себя еще глубже



Забавно.
148 986274
>>86273
Ну ок, ты решил закапываться. Не буду мешать.
149 986291
>>86023

>Ну, похоже на баг, т.к. по идее должно работать.


Попробовал в пустом проекте, точно так же не работает.

>Можно попробовать цеплять к ним ноду...


Не хотелось бы

>И т.д. Это, конечно, костыль, но лучше, чем ничего.


Я все таки тоже решил сделать костылем. Сразу после создания вызываю собственную функцию "инициализации". Конечно, возможно, я в будущем об этом пожалею, но пока что это самый логичный вариант, который пришел мне в голову.
150 986300
>>86291
так и есть. есть issue на гитхабе, в гдскрипте нет перегрузки функций, а значит нет разных конструкторов. А значит редактор не сможет создать экземпляр с дефолтным конструктором без параметров. Нерешенная проблема, так и советуют делать свою функцию инициализации.
151 986336
>>86032
Поцоны это просто эпик!

Похоже, что художник еще и персонажа полностью сплагиатил. Просто вбейте в Яндекс.Картинки название: Not Involved “Survived”.

https://www.youtube.com/watch?v=898Yqyte8qo

https://play.google.com/store/apps/details/Not+Involved?id=com.strayfeet.notinvolved

https://strayfeetgames.itch.io/not-involved
152 986338
>>86336
Ладно, я, можетскуфпротивный и алкоголик. Но он украл у тяночки писечки. Это нельзя так просто оставить.
154 986340
>>86336
Это его новелла, как выяснилось, и он уже давно получает какие-никакие донаты.
Но кодеры ему нужны чисто за бесплатно, которых потом можно легко отсеять.
Короче, ушлый человек пытается развести по максимуму "лохов", при этом не рассказывая всех подробностей.

Такой себе Мориарти — гений преступного мира, дергает из тени за ниточки, манипулируя глупцами.

Теперь понятно, почему его так триггерило, когда я не хотел звать звукоря и предлагал нагенерить нейронкой.
155 986341
>>86340
Или я если честно не уверен Киеран или Кирсан звучат для меня одинаково.
156 986345
>>86341
Спросил у команды разрабов посмотрим что ответит.
Похоже что команда минимум из четырёх человек и они давно делают похожие игры.
157 986391
>>86112
Алгоритмы ИИ не ограничиваются лишь LLMками
158 986398
>>86391
У тебя не хватит мощностей и видео памяти.
Что бы их хотя бы каждые 10 минут обучать.
По сравнению, это то же самое что криптовалюту майнить.
159 986401
>>86391
Алгоритмов нет, там просто рандом.
В указанном тебе диапазоне из нескольких триллионов варинатов.
Которые понравились тебе.

Если варианты правильные - лак.
Нейронка двигается в указанном направление.
160 986408
>>86026
четвёртое следствие теоремы Тарана: связался с хинзиром - потерпел убыток
161 986409
>>86391
Но если говорить о конкретном видео, то оно просто собрало разные LLM под разными именами,
которые указаны в константах, чтобы было понятно,
к кому обращаются.

И всё равно, даже не зная имён и обращений, они поняли, кто человек.

Сука, я как будто в некоторые моменты думаю, что сам с нейронками общаюсь на дваче.

А иногда и сам собой, когда забываю старые свои сообщения.
162 986410
>>86408
тестинг как же ты заебал гадёныш мелкий
или кто это еще срёт под каждым мои постом?
163 986411
>>86410
если я вам всем не нравлюсь
я могу уйти навсегда с двача
мне не сложно бдут
и варитесь сами в своем говне без меня
164 986412
>>86410
>>86411
лечи паранойю, шизик - это моё первое сообщение в треде. я вообще мимо шёл из /po в /news
165 986413
>>86412
я не первый раз в интернете.
И большая половина моей жизни прошла на дваче и общение с двачерами в скайпе и дискорде. Не рассказывай мне сказки мальчик кто тут шизик.
всем насрать.jpeg105 Кб, 1002x752
166 986532
>>86336
>>86338
>>86339
>>86340
(ну и всё нижеследующее, не хочу просто столбик из ответов вместо поста)

Чел, заебал. Здесь тред движка и раздел делания игорь, а не площадка для шизобсуждения твоих протыклассников.
167 986551
Изгнанного разрабами шизохейтера Godot помните?
Похоже, он нашёл ещё один способ, как поднасрать:
https://godotengine.org/article/statement-on-godloader-malware-loader/
Видать, всё никак не может охладить свою жопу.
168 986552
>>86551
Почитал, ознакомился, и мне пришла в голову идея, почему Хуан не сделал возможность зарегистрировать pck-файлы в системе, чтобы они запускались установленным в системе годотом? Было бы интересно и необычно. Дааа... Мало кто поймёт в наше время. Открывать игры словно офисные документы.
169 986558
>>86551
Я уже давно подозревал, что в .pck файлы будут эксплоиты встраивать. У рантайма годота нет никаких сендбоксов, он исполняет все что в него пихают, и был вопрос времени, когда появятся первые вирусы
170 986559
>>86551

>шизохейтера


Которого?
171 986560
>>86558
Так никакой дополнительной проблемы pck не создает. Так чел скачал pck и запустил, а так бы он скачал .exe и запустил. Было бы то же самое.
172 986565
>>86558
Более того на стороне годота ничего сделать и нельзя. Песочницей должна заниматься операционная система, антивирусы (делаемые миллионными корпорациями). В современном андроиде например приложению просто не покажут файлы других приложений или системные.Ему не покажут память других процессов, где данные банковских карточек и паролей. А проблемы решета винды не должен решать маленький опенсорсный годот. Экзешник и не может сам себя "запесочить". Что он сделает, скажет мамой клянусь - ничего плохо не делаю? Так хакеры найдут какой нибудь буффер оверран, и выйдет еще хуже - все будут утверждать, что бинарник безопасен, а хакеры уже научились сбегать.
173 986566
>>86551
А вот за что я бы ладошкой надавал, так это за вредные советы вида - доверяйте площадкам Стим, Эпик стор, Плей стор. Да с хуяли? Там индусы сидят на модерке и им никто исходники никогда не показывает. Они максимум могут поверхностно что-то заметить. Ну так ничто не мешает злоумышленнику положить в стим прогу, которая будет срабатывать только у игрока через неделю, а не у проверяющего. То же самое касается совета личного знакомства - каким это раком личное знакомство защищает? Может быть это тебе человек симпатичен, а он тебя ненавидит и специально тебе билд с трояном подкидывает.
174 986567
>>86559
Который перевозбудился. Хуан этого не оценил.

>>86560

>никакой дополнительной проблемы pck


>так бы он скачал .exe и запустил


Разница есть - антивирусы не могут оценить скрипт настолько хорошо, насколько чисто машинный код. Конечно, это та же проблема, что и с Python...

>>86558

>нет никаких сендбоксов


Давно предлагали, Хуан справедливо отказывал. Пользователь сам должен решать, запускать ему конкретную программу или нет. А разработчик самостоятельно должен очищать данные от кода. Остальные проблемы движок решить не может.

>>86552

>запускались установленным в системе годотом


Идея интересная, но для осуществления придётся отказаться от кастомных сборок с модулями. И на мобильных платформах всё равно плеер тащить.

Впрочем, это имеет смысл только пока .pck намного меньше плеера (<150 МБ). Практически любая игра с графикой и музыкой будет в несколько раз тяжелее текущей стандартной сборки Godot. троллейбус.jpg
175 986568
>>86567

>Разница есть - антивирусы не могут оценить скрипт настолько хорошо,


Это не проблема pck, это проблема антивирусов... К тому же 99% pck незашифровано, и gdscript даже проще анализировать, лол.
ну то есть я понимаю что разница в том, что если пользователь скачал exe и запустил, современная винда ему покажет окошко - винда предотвратила запуск незнакомого приложения, нажимте подробнее. А если скачать godot.exe+pck, то она его запустит, потому что сам экзешник один и тот же (в рамках версии) и подписан. Ну так это значит что винде надо изменить свое поведение, она все равно помечает файлы, которые были скачаны с интернета, значит ей надо помечать каждый новый скачанный godot.exe как незнакомый. Или блокировать загрузку .pck из godot.exe, так эе как она может блокировать загрузку .dll из .exe, пока пользователь не подтвердит.
image.png158 Кб, 857x816
176 986569
Почему сейвы такая ебаная боль? Это же базовый функционал, предполагаемый по дефолту в каждой игре.
177 986570
>>86567

>Идея интересная, но для осуществления придётся отказаться от кастомных сборок с модулями. И на мобильных платформах всё равно плеер тащить.


Проблема не в этом, а в разных версиях. Игры сделанные под 3.0.6, 3.1, 3.4, 3.6 не запустятся поздней или ранней версией. Не говоря про бурный рост 4.0.3, 4.1, 4.2, 4.3, 4.4 там в каждой были breaking changes.
178 986571
>>86569
Так когда ты меняешь игру (логику, структуру данных), то старый сейв перестанет подходить. Это ты сам своими руками сделал, чем тебе тут помогут?
179 986572
>>86566

>ничто не мешает злоумышленнику положить


Стим об этом узнает и забанит. А для регистрации требуется куча данных из реальной жизни. Заметь: упоминаний itch.io там нет, потому что на itch.io ты регистрируешься как на любой файлопомойке.

>Может быть


Жить вообще опасно - можно умереть. Это советы, помогающие снизить риск, а не на 100% защититься. Полная защита от вирусов - отсутствие подключения к интернету и каким-либо внешним устройствам.

Что они должны были написать?

>Не играйте в игры, а то умрёте (шанс 1:1000000000)!



>>86568

>это проблема антивирусов


Антивирусы скажут "ок, блокируем все .pck", доволен?
180 986574
>>86571
Я не хочу это все реализовывать для каждой игры, я хочу игры делать.
181 986575
>>86572

>упоминаний itch.io там нет, потому что на itch.io ты регистрируешься как на любой файлопомойке


Зато у итча есть официальный лаунчер с сандбоксом, через который и рекомендуется запускать индюшатину.
182 986577
>>86572

>Стим об этом узнает и забанит.


С чего ты взял что узнает? С чего ты взял что забанит? Никто это не гарантирует. А если и забанит, дело то уже может быть сделано, кто то запустит малварь до этого момента.

>А для регистрации требуется куча данных из реальной жизни


Учитывая что я видел кикстартер зареганный на бомжа, не считаю это непреодолимым препятствием.
В общем это такой очевидный самообман - раз с площадки значит надежно. Что то уровня дорогое или популярное значит хорошее.
183 986579
>>86574
Не хочешь - не реализуй. Добавь сейвы когда игра будет полностью готова и никогда не меняй формат и не добавляй ни одной новой фичи в игру.
184 986580
>>86570

>в разных версиях


Это как раз не проблема - я уже придумал:
1. Делаем общий лаунчер, .pck связаны с ним.
2. В .pck должен быть идентификатор версии.
3. Лаунчер смотрит версию в .pck и:
3.1. Если ещё нет, скачивает нужную версию.
3.2. Запускает .pck в плеере нужной версии.

Ну и вспомни VC++ Redistributable, C# .NET, Java JRE.

Т.е. при желании организовать это можно. Но зачем?
185 986581
>>86572

>Антивирусы скажут "ок, блокируем все .pck", доволен?


Доволен. Я же написал - до подтверждения пользователем. Так же, как сейчас с запуском незнакомых .exe. Хочет - пусть разрешает.
186 986582
>>86580
Вроде такой лаунчер уже есть. (Аддоном?) По крайней мере я помню скриншот для разработчика для управления версиями движка.
187 986585
>>86582
Их куча уже
188 986586
>>86577

>С чего ты взял что узнает?


Пострадавшие пожалуются.

>С чего ты взял что забанит?


Репутация и профиты Valve дороже всего - они даже прогибаются под Роскомнадзор, что им постоянно спамит запросами "УДОЛИЛ БЫСТРА АТО ЗАБАНЮ".

>кто то запустит малварь до этого момента.


Да и хер с ним, ничтожная цифра в статистике.

>кикстартер зареганный на бомжа


Смешно, но таких наверняка меньшинство. Защита в первую очередь нужна от скрипт-кидди, которых большинство, а не от гениев преступного мира.

>уровня дорогое или популярное значит хорошее.


А у тебя логика примерно как:

>Даже в дорогом ресторане можно отравиться, так что рекомендовать есть в ресторане нельзя: пускай продолжают жрать дохлых крыс с помойки!

189 986587
>>86586

>Пострадавшие пожалуются.


С чего ты взял? Некоторые могут и через месяц не заметить что у них пароли или деньги с банка украли.

>Репутация


Не работает. Даже конкретно со Стимом, прям в этом году с ним судятся и что, у него дела хуже?

>Да и хер с ним, ничтожная цифра в статистике.


Это тем более касается раздуваемой проблемы с .pck. Она В РАЗЫ меньше потенциальных малварей в стиме - а нас убеждают что стим надежный источник.

>А у тебя логика примерно как:


>Даже в дорогом ресторане можно отравиться, так что рекомендовать есть в ресторане нельзя: пускай продолжают жрать дохлых крыс с помойки!


Найс соломенное чучело- У меня логика примерно такая - хватит жрать в макдоналдсе, надо выращивать номальную корову самому или хотя бы брать у фермера, у которого проверяешь чем он ее кормил и лечил.
190 986592
>>86569

>Почему сейвы такая ебаная боль?


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

>функционал, предполагаемый по дефолту


Есть несколько альтернатив сохранениям:
- относительно короткая игровая сессия, которую интересно повторять много раз с самого начала;
- игра даёт игроку пароль или ключ-код, который возможно ввести для начала с другого уровня;
- вся игра проходится за одну игровую сессию.
Конечно, сейчас такие игры нечасто встречаются.

>>86574

>Я не хочу это все реализовывать для каждой игры


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

>я хочу игры делать


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

>Некоторые могут и через месяц не заметить


Думаю, если бы GTA V была трояном, это рано или поздно обнаружили бы. Игры со дна Стима только извращенцы всякие собирают, это их проблемы.

>прям в этом году с ним судятся и что


Если каждая собака будет лаять "в Стиме все игры с вирусом, не кочайте, у меня так брат умер", тогда им перестанут пользоваться. Валв это не выгодно.

>раздуваемой проблемы


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

>потенциальных малварей в стиме


Про Стим и так все знают и он борется с этим. А специальные Годо-трояны на гитхабе - новость.

>надо выращивать номальную корову самому


Ты об играх или об аддонах? Аддоны Годо на халяву - одна из главных киллер-фич, а их нехватка - главная претензия приверженцев юнити. Ты же предлагаешь рекомендовать всем изобретать всё с нуля.

Короче, тебе просто поспорить хочется, так ведь?
192 986596
>>86594
Я написал все предельно ясно. Говорить "в стиме все безопасно" - распространять вредную идею. Любой сторонний софт небезопасен, если ты не проверял исходники.

>Проблема реальная и началась с аддонов-троянов на гитхабе


С чего ты перешел на аддоны? Речь в новости про якобы "читы" для популярнх игр, распространяемые в виде godot.exe + pck. Проблема pck тут раздута, потому что такие трояны качали всегда и запускали даже если они в виде exe и антивирус предупреждает, pck не вносит тут никакой дополнительной проблемы.

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


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

>короче, тебе просто поспорить хочется, так ведь?


Я бы хотел, чтобы приверженцы и создатели опенсорса не писали глупости вроде "слепо доверяйте стиму".
193 986602
>>86596

>в стиме все безопасно


>слепо доверяйте стиму


Чини переводчик, там

>Trusted distribution platform


Значение "trusted" знаешь?

>если ты не проверял исходники.


Ой всё, теперь только в GNU/игры играть будем...

>С чего ты перешел на аддоны?


Основной вектор атаки этих хакеров.

>Речь в новости про якобы "читы"


Не про читы, а про аддоны, кряки, моды.

>в виде godot.exe + pck.


Там прям исходники с трояном дают, какие pck?

>такие трояны качали всегда и запускали


Только в газетах не писали про Godot.

>даже если они в виде exe и антивирус


Антивирус бессилен против pck, если ты уже дал все возможные разрешения exe, который 100% чист и подписан всеми возможными сертификатами. Только разработчик игры, сам того не ведая, вложил троян.

>в виде исходного кода. Который...


...никому не приходит в голову проверять.
image.png330 Кб, 1805x627
194 986605
>>86602
Ты вообще не в теме о чем идет речь.
Там же по ссылке написано - рекламировались читы и кряки. Цель хочет взломать какую-то программу или игру, скачивает малварь. Раньше бы она скачивала .exe, сейчас скачивает .exe+pck, и запускает в любом случае, потому что ведется на халяву. Это вовсе не про аддоны или исходиики.

>Антивирус бессилен против pck


Это проблема антивируса. Антивирус может: 1) анализировать pck, как он это делает с другими типами виртуальных машин. 2) отслеживать поведение, например запросы в сеть, чтение/перезаписывание файлов которые не должен читать.

>никому не приходит в голову проверять.


Никогда в жизни не подключал ни один аддон, не прочитав сначала его исходники. Это блджад базовая гигиена. Ведь любой аддон может запустить автолоад тулскрипта, который хоть зашифрует тебе файлы, хоть сольет твои файлы в интернет. Вот об этом должны писать в Секьюрити тим годота, а не о том что всякие стимы якобы доверенная платформа.
195 986607
>>86602

>Ой всё, теперь только в GNU/игры играть будем...


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

Вся сцена (тестовая):
WorldEnvironment
DIrectionalLight3D
LightmapGI
Camera3D
SpotLight3D
MeshInstance3D / PlaneMesh
Выбираю лайтмапу, пытаюсь запечь - годот падает.
Оказалось: лайтмапе надо задать environment mode. По дефолту там Scene, и если в сцене не задано нормальное небо, происходит краш, дескать sky is null.

А собсно. Запекать я взялся после того, как сцена с уровнем разрослась, и в рантайме фпс упал до 6-7. Опытным путём выяснил: виноват свет. Запёк. Нихуя не поменялось. Хотя вроде всем источникам света Bake Mode выставлен Static. Что я мог упустить?
197 986710
>>86657

>Запёк. Нихуя не поменялось.


Источники света удалил со сцены (выключил)?
198 986714
>>86657
Хз что у тебя за версия, в тройке был баг с динамично-запеченным светом, то есть объект движется туда-сюда, а запеченный свет это учитывает - баг сильно ронял фпс.

Нашел его: https://github.com/godotengine/godot/issues/71162
199 986720
>>86657

>Опытным путём выяснил: виноват свет.


Ты отключал свет и это снижало нагрузку?

Обычно, проблема не от света, а от теней:

>дроуколы = источники_тени × объекты_в_сцене


Поэтому основная оптимизация - это уменьшение количества объектов и источников света, отбрасывающих тени возле камеры.

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

Оптимальное решение зависит от сцены. Городская улица ночью оптимизируется иначе, чем композиция комнат в доме с закрытыми окнами и лампами.

Ну и в зависимости от визуального стиля, конечно.
image.png200 Кб, 365x273
200 986725
А олдовые stencil shadows, которых в годоте пока нет, быстрее традиционных современных теней?
201 986726
>>86725
Олдовое быстрее. Потому что закон Мура. Потому что корпоративный сговор интел и майкрософт!
202 986735
>>86725
Shadow volume изобрели в 1977, а shadow mapping изобрели в 1978. Разница в том, что shadow volume генерирует процедурную геометрию, которая делит игровое пространство на две части, в то время как shadow mapping всего лишь рендерит геометрию в специальную текстуру со стороны источника света.

>>86726

>Потому что закон Мура.


Закон Мура уже несколько лет не работает - кристалл мельче, а скорость на преждем уровне. Вытягивают только за счёт всяких костыльных оптимизаций, дополнительных сложных инструкций (типа AVX, их требуется явно использовать и они не везде), разных сопроцессоров типа NPU (для вычисления тензоров, полезны в специфических задачах типа нейронок) и многоядерности, которая в играх редко полезна.
203 986754
>>86735

> Закон Мура уже несколько лет не работает


Вот бы посмотреть на ебало фанатика, которому я объяснял, что закон Мура не работает в середине 2010х. Он мне доказывал, что закон Мура вечен и фундаментален и вот-вот, и ух, и ваще.
204 986760
Что произойдет если сделать игоря под свободной лицензией и выложить на гитхаб?
205 986761
>>86710
>>86720

>Ты отключал свет и это снижало нагрузку?


Да.

>проблема не от света, а от теней


Вот это неожиданный фокус. Чота не увидел особо настроек по оптимизации теней. Ну, кроме distance fade.

>Городская улица ночью оптимизируется иначе


Вот про это бы почитать где-нибудь.

Я когда-то (лет 15 назад) моддил сурс-игры, и там было всё просто. Есть источники света статические, есть динамические. Статические запекаются и в рантайме не светят; динамические, не пекутся, супер оптимизированные, в рантайме светят и отбрасывают тени.
А тут я карту освещения запёк, но источники света отключать не могу: динамические объекты типа персонажа перестают освещаться, выглядит всё сильно иначе, чем только с динамическим светом. А если не отключаю, их свет складывается с картой освещения, да и тормоза.

>>86725
Ля, утерянные технологии предков. Кармак батяня.

>>86735

>Закон Мура уже несколько лет не работает - кристалл мельче, а скорость на преждем уровне


Закон Мура не про скорость, дебич. Он про количество транзисторов на кристалле. И с этим пока полный порядок. А вот рост производительности замедлился, тут трудно спорить с очевидным.
Вот же ж не каждый день разговариваю с людьми про закон Мура, но вот ровно сегодня случилось объяснять про него подруге. И вдруг вы тут про него же. У меня ж паранойя разовьётся от таких совпадений, остановитесь!
206 986768
>>86760
Ровным счётом ничего. Полный гитхаб таких игорей, всем на них насрать. Ты не Кармак и твоя игра не Дум, чтобы кого-то заинтересовать своими исходниками.
207 986772
>>86760
Если игра станет супер-пупер популярной: кабанчики начнут делать клоны со слегка перекрашенными текстурами, тебя упоминать, естественно, не будут.

Если игра будет популярной в узких кругах (рогалики, стратегии): через несколько лет найдутся желающие высрать свой гениальный код в твой репозиторий, но вы разойдётесь во взглядах и получится форк.

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

>>проблема не от света, а от теней


>Вот это неожиданный фокус.


Читай в документации, как тени работают. Чтобы от источников света были проблемы, их нужно сильно больше, чем обычно бывает в играх. А вот тени, если точнее, shadow mapping, всегда тормозит игру. Я вот в чужих играх тени всегда на минимум ставлю или вообще выключаю, независимо от движка игры.

>настроек по оптимизации теней


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

В остальном - убирать лишнее, объединять мелкое.

>>Городская улица ночью оптимизируется иначе


>Вот про это бы почитать где-нибудь


Не знаю, где. Но в целом, источники света далеко от игрока - это не источники света в прямом смысле, а имитация текстурой. Типа мерцающий огнями город в GTA не использует источники света, там просто малюсенькие квадратики с текстурой "огонёк". Тут названия "источников света" в игровых движках сбивают новичков с толку, т.е. они пытаются тупо расставить лампочки, получают 0 FPS и жалуются.

>динамические объекты типа персонажа перестают освещаться, выглядит всё сильно иначе, чем только с динамическим светом. А если не отключаю, их свет складывается с картой освещения, да и тормоза.


Vulkan Mobile? Нашёл твою проблему:
https://github.com/godotengine/godot/issues/85145
Что делать? Если ты на мобилки 3D игру делаешь, то вообще выключай тени, не обжигай людям руки.

>Закон Мура не про скорость


>Он про количество транзисторов на кристалле


Как это подтверждает фразу >>86726

>Олдовое быстрее. Потому что закон Мура.


Алсо, если кристалл увеличить, то и транзисторов получается больше. Это какая-то особая магия?

>А вот рост производительности замедлился


О чём речь и шла изначально (скорость алгоритма).

>объяснять про него подруге


Спасибки! Жду тебя завтра! Чмоки! <3
208 986775
>>86761

>>проблема не от света, а от теней


>Вот это неожиданный фокус.


Читай в документации, как тени работают. Чтобы от источников света были проблемы, их нужно сильно больше, чем обычно бывает в играх. А вот тени, если точнее, shadow mapping, всегда тормозит игру. Я вот в чужих играх тени всегда на минимум ставлю или вообще выключаю, независимо от движка игры.

>настроек по оптимизации теней


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

В остальном - убирать лишнее, объединять мелкое.

>>Городская улица ночью оптимизируется иначе


>Вот про это бы почитать где-нибудь


Не знаю, где. Но в целом, источники света далеко от игрока - это не источники света в прямом смысле, а имитация текстурой. Типа мерцающий огнями город в GTA не использует источники света, там просто малюсенькие квадратики с текстурой "огонёк". Тут названия "источников света" в игровых движках сбивают новичков с толку, т.е. они пытаются тупо расставить лампочки, получают 0 FPS и жалуются.

>динамические объекты типа персонажа перестают освещаться, выглядит всё сильно иначе, чем только с динамическим светом. А если не отключаю, их свет складывается с картой освещения, да и тормоза.


Vulkan Mobile? Нашёл твою проблему:
https://github.com/godotengine/godot/issues/85145
Что делать? Если ты на мобилки 3D игру делаешь, то вообще выключай тени, не обжигай людям руки.

>Закон Мура не про скорость


>Он про количество транзисторов на кристалле


Как это подтверждает фразу >>86726

>Олдовое быстрее. Потому что закон Мура.


Алсо, если кристалл увеличить, то и транзисторов получается больше. Это какая-то особая магия?

>А вот рост производительности замедлился


О чём речь и шла изначально (скорость алгоритма).

>объяснять про него подруге


Спасибки! Жду тебя завтра! Чмоки! <3
1732996901867.png130 Кб, 1000x1000
209 986777
>>86761

> Закон Мура не про скорость, дебич. Он про количество транзисторов на кристалле. И с этим пока полный порядок.


С законом Мура случился непорядок ровно в тот момент, когда заговорили о многоядерных процессорах. Именно тогда количество транзисторов перестало удваиваться, но чтобы поддерживать общемировую мурошизу, производители начали лепить несколько ядер, то есть удваивали не количество транзисторов на кристалле, а количество кристаллов в производственной единице.
210 986784
>>86775

>Vulkan Mobile?


Forward+. Пока что этот проект не покидал родной комп.
Я просто, видимо, чего-то не понимаю в том, как вообще работает 3д.

>Можно уменьшить размер текстуры теней


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

>источники света далеко от игрока - это не источники света в прямом смысле, а имитация текстурой


Light3D.distance_fade_enabled = true. Плюс спрайт, который имитирует размытое световое пятно. Всё это уже сделал.

А тут ещё Terrain3D, оказывается, вообще никак не умеет в статическое освещение. Зато умеет запекаться в меш, после чего можно его смело удалять из сцены. Удалил - стало сильно легче. Спрашивается: а как же я не заметил раньше, что это именно он тормозит? Скрывал же, проверял же. Оказалось: эта сука при скрытии не скрывается. И продолжает жрать фепесы, соответственно. Так что единственный вариант - бэкапнуть его в отдельную сцену, запечь геометрию и удалить нахер.

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

>Как это подтверждает фразу


Вообще никак к ней не относится. Олды охуенны, нодискасс. Тени в Думе 3 это лучшие тени в игровой индустрии (без рейтрейсинга), тут разве что первый сталкач способен что-то противопоставить, но он был позже и тормозил. Свет в ХЛ2 был сравним с современным, но динамические тени работали нормально даже тогда на любом нище-пк. Славься Пресвятой Габен! Кармак акбар!
211 986788
>>86777
важен не закон Мура, а закон масштабирования Деннарда

мимо анальник
212 986803
>>86559

>Которого?


https://x.com/Xrayez
image.png84 Кб, 936x763
213 986813
>>86788
>>86777
Распараллеливание упирается в закон Амдала. Получился смешной парадокс, чем больше ядер, тем больше ресурсов уходит на их синхронизацию.
>>86761
Зачем ты обзываешь кого-то дебичем, если сам сел в лужу? Закон Мура напрямую связан со скоростью, ради скорости всю миниатюризацию и делали (потому что сигналу проходить меньший путь по проводникам, а значит циклы переключений транзисторов быстрее = быстрее частота процессора).
214 986816
>>86784
Можешь описать:
- свою сцену, которая тормозит - чего там и сколько?
- характеристики ПК и что у него загружено на 100%?
Если можешь, лучше скриншоты показать:
- из игры, где сильные просадки ФПС;
- та же сцена из редактора;
- сетка (wireframe);
- overdraw.
Режимы отображения - в левом верхнем углу.
А то бесполезно гадать, что там может лагать.

>Terrain3D


Ну, это естественно, там ведь кастомный шейдер.
Для статического освещения юзается слот UV2...

>А тень теперь как отбрасывать на землю?


Создай невидимый меш, у которого только тень.

Если меши хайполи, меш тени делай лоупольным.
215 986818
Щас размышляю о создании визуальной новеллы с вертикальной ориентацией на мобилки. Я всё что необходимо знаю и уже делал APK - работает. Но непонятен вопрос камеры/вьюпорта/спрайтов.

Вот с Control-нодами всё просто: они автоматически прилипают к краям экрана, можно настроить свои отступы от краёв, контейнеры всё сортируют. Ну да, конечно, если все спрайты статичные - в принципе TextureRect достаточно для визуальной новеллы.

Нюанс в том, что я хочу анимации а-ля Live2D, т.е. это только Skeleton2D + Polygon2D, плюс планирую потом прикрутить топдаун геймплей. Пропорции экрана на мобилках бывают самые разные и хотелось бы ещё поддерживать горизонтальную ориентацию. Короч, необходимо как-то стыковать Node2D с экраном.

Вопрос в том, как это делать лучше? Тупо спрашивать разрешение экрана и из кода подгонять спрайты? Или использовать невидимые Control в качестве якорей? И хотелось бы без проблем пользоваться Camera2D...

Кажется, что простой вопрос, но ответ не очевиден.
216 986824
>>86091

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


Тебе чисто поиграться или чтоб быстро работало?

Если поиграться - запили сам на GDScript. Можно использовать видеокарту (compute shader). Вот для генетических алгоритмов тебе ничего не нужно, это тривиальная логика, которой не нужна скорость:
1. Что-то сгенерировать (код, строку, нейронку).
2. Как-либо оценить успешность экземпляров (как правило требуется выполнить какой-то код и тупо сравнить результаты с ожидаемым идеалом).
3. Отсортировать по успешности (Array.sort_custom).
4. Самых успешных скрестить (режешь на кусочки и соединяешь рандомно) и мутировать (тупо рандом).
5. Повторять цикл 2-4, пока не надоест играться.
Что-то интересное появляется через тысячи циклов.
Самое сложное в ГА - сформулировать задачу, что теоретически решаема за приемлемое время. Ибо миллиардов лет в запасе у тебя, скорее всего, нет.

Быстрое готовое решение reinforcement learning:
https://github.com/edbeeching/godot_rl_agents
Но я не знаю, как оно работает - я не пробовал.

>>86398

>У тебя не хватит мощностей и видео памяти.


>Что бы их хотя бы каждые 10 минут обучать.


Ты вообще не в теме. LLM - это жирные монстры. В реальности для обучения нейронок хватит любого тостера, просто они будут специализированными. Обучаемые нейронки уже много лет в телефонах. Успешность LLM связана с тем, что в них можно практически что угодно кинуть и получить что-то сравнительно разумное в ответ. Но классическое машинное обучение вообще не об этом, поэтому не требует какого-то сложного оборудования. Первые нейросети вроде в 1960 появились, представь себе увеличение мощности вычислений с тех пор. Плюс некоторые нейросети эффективнее крутить на ЦПУ.
217 986890
>>86816

>бесполезно гадать


Так я, в общем-то, и не прошу помощи. Просто ною. Весь день ебусь с какой-нибудь проблемой, а ночью, когда уже кончаются силы думать, выплёскиваю накопившееся на двач - вдруг у анона есть какие соображения на данный счёт. Есть - хорошо, воспользуюсь. Нет - ну, на следующий день со свежей головой буду курить доки и смотреть туториалы.
218 986899
>>86890
Правильно. Лучше ныть, чем просить.
Видео 02-12-2024 003537.mp46,8 Мб, mp4,
1280x658, 0:22
219 986906
Сап аноны, снова я за советом
Как лучше всего реализовать прыжок? умножая на дельту он выдает плавное говно, а надо что бы сохранял свои характеристики сколько бы не грузило игру
220 986910
>>86906
Пропуки пофикси для начала.
221 986952
>>86910
без пропуков никак потому что годотя
222 986971
Можно ли в годоте запускать игру, например, в окне размером 1000на1000, но разрешением 4к? В юнити можно и удобно производительность тестить
223 986974
>>86971
Конечно, в играх это называется downsampling.

Читай статью целиком, полезно:
https://docs.godotengine.org/en/stable/tutorials/rendering/multiple_resolutions.html
224 986975
>>86906

>Как лучше всего реализовать прыжок?


Примерно так, если у тебя CharacterBody3D:

>velocity.y -= gravity × delta


Момент отталкивания от земли - разовый толчок:

>velocity.y = (какое-то большое значение)



>выдает плавное говно


Какое у тебя значение гравитации?
Если хочешь резче, то увеличь это значение.

>>86910

>Пропуки пофикси


Так у него стиль игры такой - пропуковый.

>>86952

>без пропуков никак


Всё там фиксится, ты просто криворукий немножко.
225 986983
>>86971
Да, половина пиксельных игр похожее делают, только в другую сторону - запускаются в окнах 1920x1080 с внутренним разрешением 320x180.

>>86974
Разве в его конкретном случае это не upsampling?
226 986996
Мне надо, чтобы когда игрок заводит мышку в определенную зону - срабатывало определённое событие. Я сделал area2d c колизиншейр, настроил сигнал mouse_entered и оно даже работает, но плохо. Большая часть тупо не засчитывается. Работает только если заводить мышку с определённого угла с определенной скоростью и то не всегда. Что я делаю не так?
227 986997
>>86996
Как всегда, только я написал и ответ нашелся. Один из слоев сцены блокировал мышку, я поставил filter_mouse в игнор и попустило
228 986998
>>86997
Маладца. В дебаггере в misc показывается куда кликает твоя мышь и кто ест ее инпут - полезно для отлавливания твоих случаев.
229 987012
>>86975
Спасибо добрый анон
ТАмщемто able to пропуки, я не виноват хочу что бы освещение было на всей карте
230 987026
>>86983

>Разве в его конкретном случае это не upsampling?


Downsampling (число образцов снижается) - синоним сжатия:
http://en.wikipedia.org/wiki/Downsampling
Upsampling (число образцов повышается) - синоним интерполяции:
http://en.wikipedia.org/wiki/Upsampling
231 987048
Хочу сделать couch coop игру, какие подводные?
232 987082
>>87048
Нужно быть социоблядью чтобы тестировать
233 987085
>>87082
Макросы тебе в помощь (я так в старых ммо рейдики прохожу)
235 987089
>>87086
Да бля я на сишарпе терплю
Тяжко
Да не буду я учить гдскрипт
236 987090
>>87089
Бля анон, гдскрипт элементарно на шарп переводится, вот обратно с шарпа на гдскрипт гораздо тяжелее.
237 987091
>>87089
Чел... Видео про формулу.
238 987093
>>87091
Я слишком туп что бы переписать такое да еще и с английского объяснения дак еще и с гдскрипта
Легче прыжок просто выпилить лул
239 987097
>>87093
Ты не туп, ты просто настроил себя на сложность. А оно легко. Просто внимательно посмотри, нет там ничего сложного.

> с английского объяснения


Нейросети же, ёпт.
240 987137
>>85261 (OP)
Кто-нибудь использовал AudioStreamGenerator?

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

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

В целом я понял, почему возникают щелчки - из-за резкой смены амплитуды, например, с 0 до 1 и наоборот. Для этого нужно было сделать fade-in/fade-out. Сделал - для одной отдельной волны работает хорошо, щелчки исчезли. Но если одна волна хотя бы немного соприкасается с другой - опять щелчки, а в случае наслоения двух волн теперь вообще какая-то хрень получается.

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

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

> А где ещё искать по этой теме не знаю.


> Почему так сложно-то?


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

Я 25 лет назад генерировал звуки на спектруме и на денди с клавиатурой и спецкартриджем с бейсиком, но мои знания тебе не помогли бы, да я и забыл уже всё.
242 987144
>>87137
Я в звуке не шарю, знаю только что на годоте аудиогенератор написан, покопайся, может поможет:
https://github.com/YuriSizov/boscaceoil-blue
https://github.com/YuriSizov/gdsion
243 987145
>>87137
Возьми тетрадь в клетку, нарисуй дискредитацию (сэмплирование) и все поймешь. Читай всякую базу по обработке сигналов. Почему то все думают что в годоте есть какой то учебник физики, поэтому будет искаться любой запрос вида годот + как сделать физическаяхуйнянейм?
Какие у тебя могут быть ошибки? Вариант 1 - ты просто сложил два числа, забыв пронормировать. А значит амплитуда достигла абсурдных значений, которые не выдерживает мембрана динамика, и начинается клиппинг. Вариант 2 - ты добавялешь новый звук не с нулевой точки синусоиды, а например прямо с единицы, с самой высокой.
Как можно заметить, совершенно в произвольные моменты так делать не получится. Как минимум выключение придется делать плавно и не мгновенно.
244 987228
>>87137
Ух... Ща вкину сумбуром несколько соображений.

Начнём с дебага. Запиши полученный звук и посмотри глазами, что там за волна выходит. Audacity тебе поможет, ну или средствами годота навелосипедь осциллограф. При разработке синтезатора без осциллографа никак.

С какого-то хуя buffer_length это флоат, хотя везде и всегда (в том числе и у акдиокарт) это целое число, обычно степень двойки. Это число семплов, обрабатываемых за один подход. Типичный буфер в обычной ОСи - 1024; для реалтаймового исполнения/записи музыки - 128. Что курил Хуан? Для лучшей синхронности рекомендую выставить это значение по формуле B/R, где B это количество семплов в буфере, а R - mix_rate.

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

Генерируя звук, учитывай, что 1 это максимум, а так вообще волна размещается в диапазоне от -1 до 1; всё, что за пределами этого значения, вызывает клиппинг. Только не на мембране динамика, а, как правило, в драйвере аудиокарты при преобразовании в int (ЦАПы работают только с интами).

>В сообществах Godot


Синтез звука это не движко-специфичная тема, её обсуждают в самых разных местах. Попробуй искать по запросам типа "как написать синтезатор с нуля". На хабре немало находится. И ещё эта тема идёт рука об руку с ТОЭ, потому что исторически синтез делался сначала в аналоге, и зачастую цифровые синтезаторы просто повторяют аналоговые схемы.
random beeps.mp41,2 Мб, mp4,
300x150, 0:55
245 987265
>>87137
Вчера ночью решил-таки свою проблему. Проблема заключалась в том, что я делил амплитуду строго на количество участвующих волн, и это число резко изменялось при добавлении/удалении волн. После изменения кода на move_toward(x, y, 0.01) все эти навязчивые щелчки полностью прекратились.

Всем спасибо за ответы, но проблема оказалась совершенно не там, где я её ожидал. Лол. Даже не обращал внимания на проблемную строчку кода. Забавно, но написал я её типа "потом переделаю нормально", но потом совершенно забыл о ней...

>>87228

>Что курил Хуан?


Читай документацию внимательнее.

Со скоростью у меня всё в полном порядке, более того, мне совсем не важна производительность на данном этапе. Мне нужен простой, удобный, гибкий и понятный инструмент для моих экспериментов. С высокой вероятностью ничего не выйдет, так что вкладываться в производительный код не нужно. Переписать готовое проще, чем изобретать новое.
246 987320
>>87265
Ну, у тебя теперь есть AR-огибающая. Теперь надо сделать настраиваемое время нарастания и затухания. Добавь сюда настраиваемый спад после окончания нарастания (время и величину), и получится уже полноценная ADSR-огибающая, прям по классике.
Добавь разную форму генерируемой волны - звук синусоид не имеет гармоник, он скучный.
Дальше фильтр, хотя бы простейший ФНЧ (low-pass), с настраиваемой частотой среза и добротностью.
Ну и останется только управлять фильтром через ADSR-огибающую - и всё, получится полноценный синтезатор.
Дальше делаешь OS.open_midi_inputs(), ловишь InputEventMIDI через _input и по прилетающим нотам играешь звук.

Блин, аж зачесалось самому запилить...

Жаль, Годот не умеет миди аутпутать. Так бы я ему очень полезное применение нашёл, хех. Судя по обсуждению на гитхабе, тема вообще востребованная.
247 987343
>>87320

>по прилетающим нотам играешь звук


Почему все в этом ИТТ треде решили, что я хочу реализовать обычный музыкальный синтезатор? Физический синтезатор у меня есть, ещё пробовал множество виртуальных. Это совсем не интересно. AudioStreamGenerator позволяет услышать любой, произвольный поток данных, и это интересно. Щас поэкспериментирую, если получится - скину в тред.

Спасибо за подсказки и всё такое, конечно. Честно говоря, не ожидал, что кто-то вообще откликнется.
248 987353
>>87343
По-моему, чисто исторически на годоте больше всего байтоебов - часто приходится в чем то разбираться и писать свое.
mood.jpg177 Кб, 1000x1000
249 987566
Игры-то делаете?
250 987570
>>87566
Да бля, диздок пишу. Идея, сеттинг нравится, а сомнения грызут, мол, хуйню сделаю и много времени потрачу.
ZEng.mp436 Мб, mp4,
1920x1080, 0:29
251 987575
>>87566
Седня наконец игра прошла модерацию на говняндекс игры. Это было долго, мучительно, но наконец сделал это. Щас сделаю 10 клонов этой игры с мультиплеером и фермой и начну по 300к получать
252 987578
>>87570
Overthinking не сделает тебя успешным
253 987589
>>87575
Кости и мясо норм? Может сделать децкий вариант.
254 987594
>>87589
Не знаю, мне кажется я нахожусь ещё на таком этапе качества, когда без разницы какой у игры сеттинг и рейтинг. И чтобы хоть как-то взлететь нужно вложить котлету зеленых. Впрочем хуй знает, я ещё знакомлюсь со всеми этими площадками и рекламами
1733403811290.png96 Кб, 663x636
255 987635
>>87566

> Игры-то делаете?


Давно уже сделал. Сижу играю.
256 987663
>>87589
На яндекс игорах видел игру где надо помогать человекам самоубиваться. Типичный уровень: чел идет в ванную, игрок тапает на шампунь, он разливается по полу, чел поскальзывается и его голова лопается как арбуз от удара по раковине
258 987704
>>87343

>все в этом ИТТ треде решили


На самом деле не все, а только я, сорьки.
И я уже даже наполовину реализовал. Дошёл до фильтров щас, но там матан начинается, пока не раскурил. А ещё гдскрипт слишком медленный, вытягивает максимум 512@22050. И я решил воспользоваться этим как поводом, чтобы наконец освоить с++. Правда, пока отдельно от годота, чисто в консольке. Но зато как освою - смогу и для годота модули писать на плюсах, и даже в самом движке ковыряться.

>услышать любой, произвольный поток данных


Будет хуита, скринь. Вангую что-то похожее на синий или даже фиолетовый шум, вне зависимости от типа входных данных.
image.png47 Кб, 956x536
259 987706
>>87699

>CollisionShape3D debug color customization


АХУЕННО
Недавно вкатился в 3д и пиздец без этого как неудобно, приходится каждый раз отключать другие колижены/модели чтобы что-то разглядеть
260 987708
>>87706
Теперь из коллиженов радугу сложишь.
261 987714
>>87699

>CSG всё


API не поменялось, ноды остаются теми же, только внутреннюю реализацию меняют на намного более надёжную и стабильную, чем раньше. Аналогично физическому движку, что некому поддерживать.
image.png149 Кб, 595x870
262 987716
>>87714

>Аналогично физическому движку, что некому поддерживать


Кстати, тут такое дело...
263 987718
>>87716

>такое дело


Да, вижу:
https://github.com/godotengine/godot/pull/99895
Ну и что? Это пока не удаляет встроенный движок.

Так-то никому не мешало раньше закинуть аддон в проект, теперь дополнительно +8? МБ из коробки. По опыту, Jolt не панацея, решает только часть проблем.

Блин... Я сам себе 2D игрушку на смартфон делаю, буквально 1 картинка только, а весит 95 МБ. Думал кастомный билд сделать без 3D, но чёт лень как-то. Получается, 4.4 будет ещё более жирным для меня, придётся делать кастомный билд, хоть мне и лень...
264 987720
>>87704

>как поводом, чтобы наконец освоить с++


Молодец, пригодится. А мне лень осваивать.

>вытягивает максимум 512@22050


Мне хватит всего 8 кГц, как здесь: >>87265
Или даже 4 кГц. Выше 2 кГц звуки не особо нужны.

>шум, вне зависимости от типа входных данных


Согласен, неправильно выразился. Я просто хочу максимальную свободу в плане генерации. Вообще, планировал сделать самый простой, но достаточно разборчивый на слух синтезатор голоса из формант. Обнаружил, что базовые гласные и согласные звуки генерировать проще, чем мне казалось раньше: там достаточно комбинации всего 2-3 волн и шума. Типа хочется максимально свой искусственный голос, не используя каких-то сторонних готовых решений или машинное обучение на чьих-то сторонних записях, фактически голос из "ничего" (кроме простого кода). Раньше всегда удивляли некоторые инструменты, изображающие звуки "а", "о", "у" и т.п., теперь понял.
265 987722
>>87570

>диздок пишу. Идея, сеттинг нравится


Молодец, так и надо с серьёзными проектами.

>хуйню сделаю


Почти что угодно может быть популярно, главное не уходить в самобичевание - считай себя крутаном и окружающие подумают, что так оно и должно быть. Неудачными проекты становятся из-за того, что их разработчик/автор был недостаточно дерзким. Разумеется, это не касается объективных проблем. Субъективные вкусы возможно навязать массам.

>много времени потрачу


Воспользуйся принципом Парето с умом:

>20% усилий дают 80 % результата, а остальные 80 % усилий — лишь 20 % результата.


Т.е. определись, что в твоём проекте принесёт 80% результата за 20% усилий и сделай это в начале. Получится играбельный прототип, на котором можно оценить перспективность до вложения 80% усилий, и маневрировать с минимальными затратами. Конечно, сложность прототипа зависит от жанра (поэтому у одиночек почти не бывает сюжетных ММОРПГ).

>>87575

>игра прошла модерацию


Молодец. Хотя не ясно, о чём вообще игра? Просто уворачиваться от падающих объектов? Алсо, она, получается, заточена на ПК/клавиатуру? По-моему, популярнее всего мобильные игры/игры, в которые несложно играть в мобильном (Яндекс-)браузере. У множества людей сегодня нет ни одного ПК, а вот смартфонов у них может быть даже несколько; в интернете попадаются люди, у которых ПК только на работе, а домой покупать лень, ведь есть смартфон.

>>87635

>Давно уже сделал. Сижу играю.


Ты тоже большой молодец!
266 987734
"Не копируйте. Воруйте!" © Виталик и Миша, 2024
267 987746
>>87718
К 4.5 или типа того обещали поработать над размером бинарников.

>Это пока не удаляет встроенный движок.


Пока. Но удалят. Он мегавсрат.
268 987766
>>87722

>Хотя не ясно, о чём вообще игра? Просто уворачиваться от падающих объектов?


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

> заточена на ПК/клавиатуру?


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

Думаю следующее развитие игры будет с бесконечным лутингом шутингом, типа поднимаешься или спускаешься и подбираешь разные мечи с разными свойствами, а старые продаешь и качаешься
a.jpg50 Кб, 640x996
269 987885
>>85261 (OP)

>тред любви


ДЕЛАЮ ДЕЙТСИМ
@
ЖЕНЮСЬ НА НЕЙ


Подводные?
270 987916
>>87888 (Del)
Вот что происходит с людьми, если забыл закрыть гермодверь.
271 987942
>>87575
Выглядит очень залипательно. Только с графоунием бы поработать, а то не совсем понятно чего там происходит - куски мяса летят, кости - а почему? Визуальный шум. Ну и разнопиксель.
272 988005
Чего на итч для андроида загружать, апк или ааб?
273 988016
>>88005
АПК. Его пользователь может установить. (апк может быть под одну архитектуру, или содержать в себе несколько, кратно увеличиваясь в размере)
ААБ нужен только гуглу, его вроде нельзя установить непосредственно, гугл автоматически нарезает его на апк под устройство пользователя.
274 988019
>>88016
Ты умен. Спасибо.
image.png1,8 Мб, 1160x914
275 988053
Слышь делай
image.png28 Кб, 1009x96
276 988058
Привет всем. Почему такое может быть?
image.png13 Кб, 528x71
277 988061
Возник теперь другой вопрос. Почему архив с виндовым экспортом может помечаться антивирусами? В прошлый раз я решил, что это rcedit гадит в .exe и этим пугает smartscreen. Теперь даже с выключенной галочкой Modify Resources архив начал блочиться виндовым эджем. Упаковал ту же папку экспорта, но с glcache - и все, не блокируется. Перепаковал без glcache - опять малварь. Что это? Малвари там нет, если что.
278 988062
>>88058
Это у игрока система не поддерживает вулкан, как выяснилось.
279 988063
>>88058
Юзер твоей игры? Скорее всего происходит краш где-нибудь в самом начале. Годот пишет такие логи в юзерпас, пусть глянет чего там: https://docs.godotengine.org/en/stable/tutorials/io/data_paths.html#accessing-persistent-user-data-user
280 988065
>>88063
Спасибо. Уже разрешилось. Через opengl запустился. >>88062
281 988071
>>88061
Подумал, что проблема может быть в протухшем 7z, в котором недавно находили эксплоит. Нет. Перепаковал в rar, сканирую архив на винде - угроз нет, заливаю на площадку, скачиваю обратно - эдж репортит вирус. Куда копать?
282 988072
>>88071

>угроз нет, заливаю на площадку, скачиваю обратно - эдж репортит вирус


Прикинь если площадка его встраивает в архивы?

А если серьезно - закинь оба архива на вирустотал, сразу всеми антивирями проверит. Еще знаю что в тройке помогала снятая галочка с Embed PCK.
283 988087
>>88072

>Прикинь если площадка его встраивает в архивы?


Это итч. Не знаю даже.

>закинь оба архива на вирустотал


Вирустотал ничего не находит.
Hybrid analysis репортит пик 2 и пик 3 для экзешника. Винда удаляет архив автоматически и репортит троян пик 3.
284 988088
>>88087

>Винда удаляет архив автоматически и репортит троян пик 3.


пик 4
фикс
285 988091
>>88087
Гибрид выдает тоже самое для экзешника из архива, который не блокируется виндой автоматически. Я не понимаю.
286 988092
>>88091
В общем-то, похоже, что кто-то зарепортил false positive, и оно залетело в базы мелкомягких. Жаль.
287 988093
>>88092
Бывает. Многие антивири имеют форму контакта для оспаривания. Когда-то я каждую неделю такую хуиту вилкой вычищал.
288 988096
>>88093
Дя я соль в архив буду подсовывать. Экзешник все равно ванильный от движка. А вот с PCK придется думать, если такое будет повторяться. Не буду ж я ждать, пока там мистер антивирус решит снизойти до меня и во всем разобраться.
289 988099
>>88096
Хотя а как тогда он rar тоже детектил как малварь? Сложно. Но надо попробовать.
290 988108
>>88096

>Экзешник все равно ванильный от движка


Попробуй соседнюю версию
291 988138
На поки пуки кто-нибудь свою фигню выкладывал? По статам если судить самая популярная веб-платформа.
292 988140
>>88108
Я разобрался в общем. Надо было всего лишь снять ограничение fps и включить v-sync в настройках проекта. Настройки по умолчанию. "Майнер крипты" сразу перестает помечаться дефендером. Круто!
293 988142
>>88140

>снять ограничение fps и включить v-sync


Пиздец, какого хуя? У меня два проекта так же настроены, без всинка ебучего и с лимитом фпс. Да пошли они нахуй в своей винде, дегенераты.
294 988153
>>88142

>Да пошли они нахуй в своей винде


Во-во. У меня кап 60 стоял если что. Может, на другое значение не будет ругаться.
295 988159
>>88087
Кстати !ml означает что это нейросеть в антивирусе возбудилась.
image.png48 Кб, 591x303
296 988185
На случай если кто гадает куда пропал итч
297 988186
>>88185
Товарищ Сталин, произошла чудовищная ошибка...
image.png1,5 Мб, 1920x1080
298 988189
>>88186
Разберемся и с тобой тоже.
17297469219120.png1,1 Мб, 936x910
299 988206
>>88159
Счастье-то какое. Дождались! Побыстрее бы уже ИИ-чип в каждый компьютер засунули для blazingly fast заshit, а до того момента лучше вообще запретить запускать файлы не из виндус стора ради безопасности. И коляску запретят пусть, неча там администрировать. Ради нашего же блага.
300 988207
бля, походу тесты чебурнета и до меня докатились(дс2), не открывается сайт годоти
301 988209
>>88207
Все, геймдев закончился. Итч удолили, годотю заблочили, в архивы вирусню подсадили. Пойду курьером устраиваться, пока вы меня не опередили.
302 988216
>>88207
>>88209
https://nightly.link/godotengine/godot-docs/workflows/build_offline_docs/master/godot-docs-html-stable.zip

Вот оффлайн дока два, если вы по ней страдаете.
1733739568678.png53 Кб, 403x448
303 988217
>>88185

> ЭЙАЙ паверед брэнд протекшон софтвер.


У меня нет слов. Это просто... ПИЗДЕЦ.
304 988219
>>88207
Ты русофоб. Блокировки нужны русским чтоб стать базовыми трад базовиками.
image.png133 Кб, 836x631
305 988225
>>88185
Половина индюков интернета ждет когда проснется аутсорсный индус на саппорте регистратора. РИП итч.
306 988230
>>88219
Русские и без того шлепа гигачады и базовички. Это у русских в генах, и никакое западное влияние этого не изменит. Это ты русофоб.
307 988352
Как сделать инвентарь с "размерами" предметов, как в пое итд?
308 988354
>>88352
Братан, не хочу расстраивать, но боюсь придется кодить.
309 988355
>>88354
Кодить не проблема, как ноды выстроить не соображу
310 988367
>>88352
>>88355
У тебя ютуб не грузится что ли?
311 988376
>>88355

> как ноды выстроить


Как диапазоны в екселе.
Ячейки инвентаря фиксированного размера. Размеры предметов выражаешь в целочисленных ячейках инвентаря, например 1х1, 2х3, 3х4 и т.п. Заполняешь сверху вниз, проверяя пустые ячейки.
image.png151 Кб, 751x865
312 988441
Делой
313 988469
Как научиться нормально программировать и масштабировать механики? Как только я начинаю что-то проектировать, то меня сразу уводит в сторону костылей и говнокода.
Делаю такую механику: кликаем на статик боди, передаём инфу в глобальную переменную, кликаем на area3d, проверяем переменную и спавним объект, если тру. Но это же пиздец, да? А мне нужна механика ещё сложнее: из одного массива вытащить 10 разных объектов и я начинаю хуеверить с переменными, проверять их и т.д. Говнокод короче. В теории это будет работать, но таким макаром я сплошные костыли буду пилить.
314 988474
>>88469
Подписался на ответы. Сам такой же.

Предварительно ответ я знаю, но он мне не помог: Якобы надо смотреть как другие делают и повторять только лучшие практики. Ага. Хуй там плавал.
315 988475
>>88469

>А мне нужна механика ещё сложнее: из одного массива вытащить 10 разных объектов и я начинаю хуеверить с переменными, проверять их и т.д. Говнокод короче. В теории это будет работать, но таким макаром я сплошные костыли буду пилить.


Одного класса же объекты? map или any у массива используй.
>>88469

>передаём инфу в глобальную переменную


Для такого самый крайний случай - это signal/event bus. А лучше прямые сигналы и подписки и отписки при каких-либо условиях. Твой вариант и правда пиздец
316 988476
>>88469

>кликаем на статик боди, передаём инфу в глобальную переменную, кликаем на area3d, проверяем переменную и спавним объект, если тру


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

Остальное хз.
317 988477
>>88469
А, ну и еще.

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

318 988479
>>88477
бля)
319 988484
>>88477
Давай ты будешь кодить, а мы руководить? Будет заебись, еще захочешь. У меня тут идея на миллион есть.
320 988509
321 988524
>>88509
Мы. С тобой. Будем дружно жить. Ты - работать. Я - руководить. Твои - слова. Мой - закон. Я твой слуга. Ты мой гегемон.
liblast.webm38,8 Мб, webm,
1280x720, 2:20
322 988535
323 988536
>>88535
Из меня песок посыпался, за што
324 988664
Jolt замержили, теперь заживем.
1733978361042.mp43 Мб, mp4,
800x600, 0:50
325 988696
>>88664
Ну теперь-то мы сделаем игры!
326 988717
Слушаем тянучку
https://www.youtube.com/watch?v=jEWFSv3ivTg
327 988837
>>87635
Делай с самозамкнутым полем и камерой перемещаемой
328 988852
>>88717
Я и так слушаю тянучьку в своей голове
329 988919
>>88355

>как ноды выстроить не соображу


Стандартными UI нодами этого не сделаешь.
Делай кастомную ноду-сетку, потомок Container.

>>88376

>например 1х1, 2х3, 3х4


А если нужны формы как в тетрисе - "Г", "Т", "Z" и т.д.?

Короче, нужно два двумерных массива:
1. Массив инвентаря, хранящий ссылки на предметы.
2. Массив предмета, хранящий ФОРМУ предмета.

Операция добавления предмета:
1. Взять форму предмета и инвентарь.
2. Проверить, что форма входит в инвентарь.
3.1. Если не входит - отменить операцию.
3.2. Если входит - скопировать форму в инвентарь.

Операция извлечения предмета:
1. Взять форму предмета и инвентарь.
2. Удалить форму из инвентаря (заполнить null).

Операция перемещения/вращения предмета:
0. Заблокировать изменения инвентаря.
1. Сделать копию массива инвентаря.
2. Извлечь из копии инвентаря предмет.
3. Попытаться разместить предмет в копии.
4.1. Если неудачно, то просто удалить копию.
4.2. Если успешно, то заменить оригинал копией.
5. Разблокировать изменения инвентаря.
Блокировка нужна в случае многопоточности игры.
329 988919
>>88355

>как ноды выстроить не соображу


Стандартными UI нодами этого не сделаешь.
Делай кастомную ноду-сетку, потомок Container.

>>88376

>например 1х1, 2х3, 3х4


А если нужны формы как в тетрисе - "Г", "Т", "Z" и т.д.?

Короче, нужно два двумерных массива:
1. Массив инвентаря, хранящий ссылки на предметы.
2. Массив предмета, хранящий ФОРМУ предмета.

Операция добавления предмета:
1. Взять форму предмета и инвентарь.
2. Проверить, что форма входит в инвентарь.
3.1. Если не входит - отменить операцию.
3.2. Если входит - скопировать форму в инвентарь.

Операция извлечения предмета:
1. Взять форму предмета и инвентарь.
2. Удалить форму из инвентаря (заполнить null).

Операция перемещения/вращения предмета:
0. Заблокировать изменения инвентаря.
1. Сделать копию массива инвентаря.
2. Извлечь из копии инвентаря предмет.
3. Попытаться разместить предмет в копии.
4.1. Если неудачно, то просто удалить копию.
4.2. Если успешно, то заменить оригинал копией.
5. Разблокировать изменения инвентаря.
Блокировка нужна в случае многопоточности игры.
330 988922
>>88919

>в случае многопоточности


А, нет... Немного запутался... Т.к. пока игрок "держит предмет мышкой в воздухе" игра может попытаться добавить другой предмет в инвентарь. Поэтому этот "висящий в воздухе" предмет не должен удаляться из оригинального инвентаря - иначе куда он вернётся?.. Однако, для вращения или смещения на 1 клеточку требуется удалить оригинал предмета... Поэтому тут придётся делать копию инвентаря и блокировать...

Или можно попробовать без копии, как-то так:

>func item_can_fit(item: Item, at: Vector2i) -> bool:


>_ for v in item.shape:


>_ _ var p := v + at


>_ _ if p not in grid or grid[p] not in [null, item]:


>_ _ _ return false


>_ return true


Принудительное размещение:

>func item_place(item: Item, at: Vector2i) -> void:


>_ for v in item.shape:


>_ _ grid[v + at] = item


Принудительное удаление:

>func item_remove(item: Item, at: Vector2i) -> void:


>_ for v in item.shape:


>_ _ grid[v + at] = null


Соответственно, предмет:

>class_name Item extends...


>var shape: Array[Vector2i] = [Vector2i(0, 0)]


Инвентарь:

>var grid: Dictionary[Vector2i, Item] # Godot 4.4



Тогда такой алгоритм перемещения, без копий:
1. Проверяем, войдёт ли предмет в новую позицию.
2. Если войдёт, сначала удаляем его из старой.
3. Потом помещаем его в новую позицию.

Отдельный вопрос - как работать с вращением?..
- Можно хранить несколько shape на все 4 поворота.
- Можно сделать функцию get_shape_rotated()...
Второе удобно тем, что форма 2x2 просто копируется.
330 988922
>>88919

>в случае многопоточности


А, нет... Немного запутался... Т.к. пока игрок "держит предмет мышкой в воздухе" игра может попытаться добавить другой предмет в инвентарь. Поэтому этот "висящий в воздухе" предмет не должен удаляться из оригинального инвентаря - иначе куда он вернётся?.. Однако, для вращения или смещения на 1 клеточку требуется удалить оригинал предмета... Поэтому тут придётся делать копию инвентаря и блокировать...

Или можно попробовать без копии, как-то так:

>func item_can_fit(item: Item, at: Vector2i) -> bool:


>_ for v in item.shape:


>_ _ var p := v + at


>_ _ if p not in grid or grid[p] not in [null, item]:


>_ _ _ return false


>_ return true


Принудительное размещение:

>func item_place(item: Item, at: Vector2i) -> void:


>_ for v in item.shape:


>_ _ grid[v + at] = item


Принудительное удаление:

>func item_remove(item: Item, at: Vector2i) -> void:


>_ for v in item.shape:


>_ _ grid[v + at] = null


Соответственно, предмет:

>class_name Item extends...


>var shape: Array[Vector2i] = [Vector2i(0, 0)]


Инвентарь:

>var grid: Dictionary[Vector2i, Item] # Godot 4.4



Тогда такой алгоритм перемещения, без копий:
1. Проверяем, войдёт ли предмет в новую позицию.
2. Если войдёт, сначала удаляем его из старой.
3. Потом помещаем его в новую позицию.

Отдельный вопрос - как работать с вращением?..
- Можно хранить несколько shape на все 4 поворота.
- Можно сделать функцию get_shape_rotated()...
Второе удобно тем, что форма 2x2 просто копируется.
331 988961
https://godotengine.org/priorities/

Че пацаны, время новогодних вишлистов
332 988967
>>88919

> Короче, нужно два двумерных массива:


> 1. Массив инвентаря, хранящий ссылки на предметы.


> 2. Массив предмета, хранящий ФОРМУ предмета.


Я делал тетрис, у меня фигуры кодировались черепашкой, ЕВПОЧЯ. ЕНП, ТВС.
333 988992
Вот выйдет 4.4, тогда точно начну разрабатывать игры!
334 989013
>>88961
На новый год я хочу импорт анимации блендшейпов. Передай им, пожалуйста.
335 989014
>>89013
Это иначе работает. Годот хочет, а ты исполняешь.

>>88992
Обещаешь?
336 989015
>>89014

>Это иначе работает


Тогда неинтересно. Я хочу пользоваться вылизанным продуктом со всеми нужными мне фичами забесплатно, а контрибуить пусть кто-нибудь другой будет.
337 989016
>>89013
Звучит как что-то не из геймдева. Для геймдева есть кости, а вершины можно в самом движке кодом двигать.
Блендшейпы в годоте вообще ограниченные, например не может быть несколько копий одного меша, но с разным состоянием блендшейпа. Получается если бы ты даже добавил несколько неписей, они моргали бы и открывали рот только одновременно.
338 989017
>>89016

>Для геймдева есть кости


У меня аниме стиль моделек, относительно низкий полигонаж и руки-крюки. Шейпы для эмоционирования это самый подходящий вариант.

>например не может быть несколько копий одного меша, но с разным состоянием блендшейпа


Я об этом даже не знал. Звучит, конечно, не очень. Но конкретно это для меня не проблема. А вот то, что костные анимации из блендера приходится приправлять шейпами уже в годо, удручает невероятно.
339 989019
>>89017
Вообще я не вникал детально как это все устроено. Я так понимаю кости могут только двигать вершины вдоль линии или поворачивать и у них нет негативных весов а блендшейпы это что-то вроде интерполяции между двумя произвольными "лепками" вершин, поэтому имеют больше степеней свободы? Например можно растянуть шар во все стороны одновременно, что неочевидно как сделать костями. Хотя рот и глаза вроде и костями анимируют https://www.youtube.com/watch?v=-2jjnxiC7H0
Может быть реально сделать аддон, который сконвертирует блендшейпы в костную анимацию, хм. Ведь в принципе какую-то желеобразность костями делают
https://www.youtube.com/watch?v=o8JZdq1LqQU
340 989057
>>89013

>импорт анимации блендшейпов


Блендшейпы импортируются. В чём проблема?

>>89016

>не может быть несколько копий одного меша


Тебе кто-то запрещает вызов mesh.duplicate()?

>>89017

>аниме стиль моделек, низкий полигонаж


Тогда тебе нужно лица текстурой рисовать.

>приправлять шейпами уже в годо


Так в чём проблема-то? Что не работает?

>>89019
Да, предназначение блендшейпов - это, например, настройка пропорций лица персонажа. Один раз настаиваешь значение и забываешь о нём. Для анимирования блендшейпы редко используются.

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

Примерно так:
1. Берём базовый меш с блендшейпами.
2. Даём игроку GUI для настройки пропорций.
3. Завершаем, копируя меш без блендшейпов.
4. Анимируем очищенный меш костями.
341 989061
>>89057

>>импорт анимации


>Блендшейпы импортируются. В чём проблема?


Он же написал - анимации. Ты чем читаешь? Даже в твоем цитировании это есть.
342 989062
>>89057

>Тебе кто-то запрещает вызов mesh.duplicate()?


Это же не бесплатно, значит меньше моргающих персонажей
343 989075
Свежий шоврил для шовкейса.
https://www.youtube.com/watch?v=n1Lon_Q2T18
344 989077
>>89075
Тоже посмотрел. Зитифоно неиронично выглядит как что-то, что я бы купил.

А говнюки с paw rescuers обещали гайд про оптимизон графона под слабые мобилки, но наебали. Не куплю.
image.png2 Кб, 183x30
345 989082
>>89019

>блендшейпы это что-то вроде интерполяции между двумя произвольными "лепками" вершин


По-моему, между базисом и произвольным состоянием.

>Может быть реально сделать аддон


Можно в блендере превратить кость в контроллер шейпа. И в годо просто восстанавливать этот драйвер. Быстрее воссоздания анимации будет. Круто придумал?
>>89057

>Блендшейпы импортируются.


>Что не работает?


Анимация мне нужна. Я хочу чтоб годо переваривал пикрил в gltf. Чтоб для анимаций помимо каналов костей импортировались каналы блендшейпов.

>Тогда тебе нужно лица текстурой рисовать.


Не настолько низкий полигонаж.
346 989176
Делайте игры
347 989227
>>89061

>Он же написал - анимации


Хммм... Ладно, понял - данные треков анимаций.

>>89062

>значит меньше моргающих персонажей


Моргать должны персонажи на переднем плане.
Персонажи заднего плана игрока не волнуют.

>>89082

>Круто придумал?


Ты сначала убедись, что тебе это вообще нужно...

>импортировались каналы блендшейпов


https://github.com/godotengine/godot/issues/38443
Проблема, видимо, решена в 4.0, ты всё ещё на 3.x?
https://github.com/godotengine/godot/pull/53865
Ещё здесь можно посмотреть, лень разбираться:
https://github.com/godotengine/godot/issues/63198

>Не настолько низкий полигонаж.


В стиле аниме у тебя два пути:
- хайполи, иначе "лопата" лица будет рубленной;
- лоуполи с лицом-текстурой, иначе деталей мало.
Промежуточные варианты выглядят упорото.
sddefault.jpg30 Кб, 640x480
348 989232
>>89227

>В стиле аниме у тебя два пути:


Самый тру путь - это относительное лоуполи + кастомные нормали + кастомные шейдеры. GGX-style один из примеров (от слова Guilty Gears 10, не от слова glass glass из PBR).
349 989247
Годноты принёс
https://oceanofpdf.com/?s=godot+4
350 989257
>>89247
Неплохо. Сборник полезных методик и подходов, а не туториал очередного платформера.

Подожду версию от 2025 года.
351 989316
>>89257
ты хоть один платформер сделал в своей жизни?
1734273848066.webp66 Кб, 1280x720
352 989325
Сможем ли мы сделать игру уровня Miside?
353 989348
>>89325
Сможем, конечно. Но зачем? троллейбус_из_буханки

Я хочу симулятор приятной жизни с дередере/генки, а не очередной тупой хоррор про яндере/янгире...

Прочитал я про этот MiSide, полное разочарование. Очередное "злой прототип ИИ хочет всех убить без аргументированной причины, просто он злой".

А были надежды на что-то глубокомысленное.
354 989356
>>89316
Да. А ты?
355 989362
>>89348

> Прочитал я про этот MiSide, полное разочарование.


Очередной дурачок ждёт от игры кинца и кинцовых атрибутов типа глубокомысленного сюжета. Дурачок, там геймплей разнообразный и весёлый. Люди для этого в игры играют. А за глубокомысленным сюжетом люди берут книги почитать.
356 989371
>>89362

>ждёт от игры кинца и кинцовых атрибутов


Там задумка в том, что ты попадаешь в мир к своей виртуальной вайфу из симулятора отношений с ней. Сценарий линейный и насыщенный на события. Т.е. замахивались они как раз на интерактивное кинцо.

>геймплей разнообразный и весёлый


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

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

Но раз релиз относительно успешен, могут его ещё доработать как-то. Вроде, обещали "мирный режим".

Впрочем, ты чего возбудился-то? Фанбой что ли?
357 989392
>>89371

> Т.е. замахивались они как раз на интерактивное кинцо.


Хуективное хуецо. Хуле ты хопой завилял. Это игра. С геймплеем. Разнообразным и насыщенным. По существу тебе возразить нечем, чукча-читатель. Пойди ещё обзоров почитай, ебанаш.

> Впрочем, ты чего возбудился-то? Фанбой что ли?


Люблю обссыкать безыгорных теоретиков, делающих выводы космической глупости в силу глубины своей некомпетентности. А что?
358 989399
Девочки, не ссортесь. Лучше игры делайте.
359 989418
>>89392
Игра, не игра - не важно, меня бесит, когда:
- злодей без реальной мотивации, "просто злой";
- списывают все его злодейства на то, что он ИИ.
Это лень автора и попытка сыграть на эмоциях.

Там затронуты серьёзные темы ИИ и оцифровки человеческого сознания, а это уже не "просто игра".

Да и какой дурак будет играть в это ради мини-игр? Очевидно же, что эта конкретная игра привлекает поднимаемыми темами, а не каким-то геймплеем. Геймплей тут как раз лишь дешёвый наполнитель.

Ты ещё скажи, что в DDLC "играют" ради "геймплея".
360 989440
>>89418

>меня бесит


Опасный ты чел, тебе лучше дорогу не переходить.
361 989507
>>89227
Спасибо! У меня 4 годо. Видимо, я чего-то не так делал. Я посмотрю еще.
>>89232
Да, я на него и ориентировался. Все презентации Arc System по их стилю впитал. Но попробовал и понял, что не по силам мне такое сейчас, и отказался. Пока что обычные неосвещенные текстурки с рисованными тенями делаю.
362 989524
Пачаны, дело значит вот какое. Поставил годот 4. Думал норм все. На ноуте летал, на стационарном не завёлся. Говорит, нет поддержки опенгл3, хотя от видюхи дрова поддерживают и вулкан. Это исправить можно? Типа, пишет, установи префикс" --дивайсдрайвер-опенгл 3"
image.png3,3 Мб, 1800x1800
364 989595
Делай игры
image.png1002 Кб, 813x813
365 989610
Нафига вы в оп-пик паудер засунули блин
366 989642
>>89594
спс за советы. Хоть и не настроилось, как хотел, мб от старья проблема, но вроде хоть быстрее открываться стал в режиме совместимости. Пока и так пойдет.
HighProfile.jpg72 Кб, 1184x902
367 989646
>>89524
Звучит так, что у тебя он запускается не на дискретной видеокарте, а на встройке процессора. (Правда так обычно на ноуте происходит, а не на десктопе).
Вроде в панели нвидии можно указывать, на какой карточке запускать какую прогу.
meme (1).jpg233 Кб, 1280x720
368 989647
Гайс, мой диск решил пошутить в последний раз и пукнулся.

Есть ли возможность восстановить проект игры, если у меня имеется index файл, который заливал на итч? Чтобы все файлы и скрипты были и норм работало в годоте. Или это всё?
369 989648
>>89647
Билд игры состоит из "плеера" движка + pck.
Pck декомпилируется.
https://github.com/GDRETools/gdsdecomp
Ну картинки может придется как то конвертировать потом.
Могу сейчас попробовать на каком то своем проекте.
370 989651
>>89648
Давай, попробуй. Я пока тут пароли вспоминаю
371 989654
>>89651
А какая у тебя версия годота?
372 989655
Проклятая макака раздает баны и не дает ответить, пришлось через .life зайти
>>89654
3.5.2, а это для чего? Я думал ты со своим проектом поэксперементируешь, свой не кину
373 989656
>>89655
Чтоб я на такой же проверил, а то вдруг по другому будет.
374 989657
>>89647
Ах ты хитрец какой, чью-то игру из интернета скачал и захотел скопировать
375 989659
>>89657
Нууу у меня есть бэкапы вообще всех файлов что я использовал в годоте, и проекты тоже, в архив кинул в тг, но те что к последней игре относятся, устаревшие, поэтому лучше восстановить как-то игру с сайта
376 989662
>>89655
Да, открыл старый проект в 3.5.2, экспортировал index.html+pck, декомпилировал тулзой (нажал кнопку full recover), он воссоздал прямо проект, открыл этот проект, запустил, игра работает, скрипты читаются, картинки те же. Бегло смотрел конечно.
377 989663
>>89662
Спасибо! Помогло. Жаль только коменты удалило, но это фигня
meld.png84 Кб, 1161x667
378 989665
>>89663
Возьми дифф тулзу (например WinMerge, Meld, да вроде в VsCodium есть встроенная)
Раз ты говоришь что у тебя есть предыдущая версия.
Просто замержишь комменты из старой в новую и все.
379 989679
>>89646
У меня такой панели нет. Надо приложуху искать...
380 989680
>>89594
Дрова норм стоят. Эффект ощущается. Но вот годот не может найти опенгл необходимый. Да это пока и не важно. Постепенно настрою думаю. Главное, что работает.

Кстати, тестил юнити, тот без косяков запустился, что 5ый, что 2019... К слову...
381 989681
>>89680
Уп
Видимо, я таки не ролностью настроил карточку. Все таки. Это в кишках винды надо смотреть, наверно.
382 989682
>>89610
А каво надо было засовывать?
А где ты был когда ОП просил арт для переката?
383 989704
>>89647
>>89659
Попробуй лучше с диска восстановить, наверняка какая-нибудь его увидит.
384 989707
>>89662

>декомпилировал тулзой (нажал кнопку full recover), он воссоздал прямо проект, открыл этот проект, запустил, игра работает


В очередной раз убедился, что сложную игру лучше делать на C++, чтобы ворам не делать уж настолько простой задачи.
385 989724
>>89680

>не может найти опенгл


А ты ниче не попутал? Ты уверен, что у тебя проект НЕ в форвард+ моде? Для опенгл нужен компатибилити или какой-то такой, не помню.
386 989730
>>89707

>сложную игру лучше делать на C++, чтобы ворам


Зачем "ворам" твоя "сложная игра"?

Если кому-то очень хочется скопировать твой код - скопируют независимо от любых твоих ухищрений.

Если кто-то скопирует и ты это знаешь - иск в суд за нарушение копирайта. Много проблем, но возможно.

Но обычно серьёзные дяди ничего не копируют, т.к. понимают все связанные проблемы (технические, юридические и т.д.). А тупые макаки, ассетфлиперы, скрипт-кидди и прочие индюки опасности для тебя не представляют, если ты хоть немного лучше них.

Просто сделай себе имя до публикации игры и тогда фанбои будут защищать тебя независимо от клонов.

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

Да - если ты параноик, то просто делай говнокод и копировать его будет себе дороже для любого, кто попытается сделать что-то рабочее на его основе. Симулятор яндере, например, с нуля переделать оказалось проще, чем поддерживать оригинал...
387 989732
>>89730

>копировать его будет себе дороже


Или вот Microsoft выкупили Minecraft, чтобы начать переписывать его с нуля на C++, только в итоге им пришлось поддерживать и Java-версию, что они переделывают по десятому кругу. Кто захотел бы сознательно копировать код, который даже после многомиллиардных вложений нужно переписывать буквально с нуля? Они купили только права и бренд, другими словами - ИМЯ игры/разработчика. Ибо сегодняшние игроки выбирают игры по имени...

Короч, тряска за код - сродни движкописанию с нуля.
388 989733
>>89730

>Если кому-то очень хочется скопировать твой код


Есть разница, между просто в два клика восстановить проект из гдскрипта, или ебаться недели над обфусцированым с++.
389 989737
>>89733
А дальше что? Что будешь делать с проектом?

Если это сколько-либо сложный проект, ты просто охренеешь от сложности внутренних систем, где ты неизбежно будешь копаться и что-то менять. А эти внутренние системы отражают мышление автора, отличающееся от твоего. Почему так много людей используют библиотеки через API, но так мало их модифицируют изнутри? А у игры нет своего API.

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

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

Это просто страшилки уровня "у меня украли игру и сделали её успешной, ничего не поменяв в файлах, однако мой оригинал совершенно никому не нужен".
390 989742
>>89737
так это затруднит изменение файлов.
391 989747
>>89737

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


Да, бывает. Вчера был шокирован тем, как я четырехмесячной давности изящно реализовал один очень нужный мне алгоритм. В прошлый раз я этот код отложил, а вчера вот он резко понадобился. Передо мной был гдскрипт, но я так ничего и не понял. А уж чего говорить про чужой код.
392 989779
>>89507

>неосвещенные текстурки с рисованными тенями


>>89232

>кастомные нормали + кастомные шейдеры


Лучше фотореалистичное аниме, прям как в жизни...
393 989881
Вот бы сделали портативную приставку Godot, а чтобы файлы PCK были как дампы картриджей для неё.
394 989885
>>89881
Идея для стартапа. Делай.
395 989890
>>89881
Еще нужно вернуть аналоговые проявления всякой игровой атрибутики типа мануалов и коробков для картриджей. В одной цифре скучно и бездушно все.
396 989895
>>89747
Когда у меня такое случилось (года три назад), я вдруг осознал: надо сразу писать понятный код, уделять больше внимания оформлению, не сокращать имена функций и переменных, а любую фигню, которая в перспективе может оказаться хоть капельку недостаточно очевидной, подписываю комментариями. Ещё и в шапке файла пишу краткое содержание, зачем он вообще нужен и что делает в общем. Если в функции больше десяти строк - документирую краткое описание её работы.

С тех пор любой свой код открываю - и прям супер быстро понимаю его. При этом на написание тратится не сильно больше времени, часто оформлением я занимаюсь в процессе осмысления, что же делать дальше, или при мелких затупах.
image.png901 Кб, 842x799
397 989920
>>89890
Двачую. Сейчас такое осталось живо только в ретро комьюнити. Вон у чуваков коробка, инструкция, и вязаная карта.
398 989948
>>89895
Согласен. Вот это очень полезная фича в Godot:
https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_documentation_comments.html
Часто пользуюсь ей, с тех пор как узнал о ней.
399 989951
>>89948
Оно в автокомплите будет показываться? Или только в окошке документации и по crtl+click?
400 989953
>>89951
Для @export-параметров - в подсказках инспектора.
Ctrl+click открывает сам скрипт, а не документацию.
Сгенерированную документацию можно найти по F1.
401 989995
Парни, такой вопросик. Я слышал, что гдскрипт не очень подходит для числодробилок всяких. Получается, что всякие кликеры-идлеры с постоянным инкрементов и десятками разных мультиплаеров и калькуляциями 1000 раз в секунду лучше не делать, а сразу хуячить на юнити C#?
402 989996
>>89995
Понятия не имею, где ты такое слышал. Требуй пруфы от тех, кто тебе такое заявлял. Считает не скрипт, а регистры процессора. Я всю жизнь так считал. Пруф ми вронг.
403 989999
>>89995

>всякие кликеры-идлеры с постоянным инкрементов и десятками разных мультиплаеров и калькуляциями 1000 раз в секунду лучше не делать


Это не числодробилка, а фигня. У меня аналогичная приложуха в гуглплее опубликована. Приходи когда тебе под гиг данных потребуется перебирать.
404 990071
>>89996
а регистры это делают по приказу ассемблерного кода. так получилось, что компилятор плюсов, например, транслирует в ассемблер практически идеально в плане эффективности.
мимо не шарю
405 990074
>>89995
А зачем в кликере столько рассчетов, там же таймеры на день или неделю
406 990100
>>89995
Ваще не парься. Если у тебя меньше 20к таких операций в секунду, можешь смело юзать гдскрипт. А если больше - переписывай на плюсах, сисярп не вывезет тоже.

К тому же у гдскрипта узкое место не математика, а вызовы годотовского апи.
407 990105
>>90100

>годотовского апи


Это которое?
408 990129
>>89995

>не очень подходит для числодробилок


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

Для примера, когда ты генерируешь поле 100×100 клеточек один раз в самом начале игры, тебе без разницы, 1 мс на это уйдёт или 50 мс - игрок это не заметит вообще. А вот если ты генерируешь что-то громадное, типа 100000×100000, уже есть разница между "ждать 1 секунду" и "ждать 50 секунд".

>кликеры-идлеры


>калькуляциями 1000 раз в секунду


Там вычисления в лучшем случае раз в секунду, исключительно пока игрок смотрит на счётчик. Нет необходимости обновлять все рассчёты чаще. Плюс используются различные формулы для упрощения. Значительно затратнее вывод анимаций, если есть.
409 990130
>>90100

>у гдскрипта узкое место


>вызовы годотовского апи


В точности наоборот. Вызовы API из GDScript часто дешевле, чем из внешнего C#/C++ модуля. Вроде бы вызвано тем, как ОС накладывает ограничения на взаимодействие разных программ (exe/dll), чего нет у внутреннего интерпретатора GDScript.

Т.е. на десктопе (x86) самое оптимальное - делать внутренний модуль на C++ и пересобирать движок.

А если пишете внешний модуль - делаете расчёты локально и передаёте Godot ссылку на данные. Это позволяет избежать дорогих вызовов внешнего API.

>>90105
Думаю, имеются в виду любые обращения к API.
410 990131
Вот вы тут яйца вылизываете. Модули какие-то, вызовы. Камон, реалистично - тот анон никогда не упрется в лимиты гдскрипта, потому что его понимание "числодробилки" это 2+2*2 и кликеры, лул.
411 990144
>>90130

> Вроде бы вызвано тем, как ОС накладывает ограничения на взаимодействие разных программ (exe/dll)


> Вроде бы


Ну вот как узнаешь, как на самом деле, так и приходи.
Изучи что такое адресное пространство.
DLL подгружаются в адресное пространство вызывающего процесса и с этого момента все их функции вызываются из единого адресного пространства. Учите базу. Классику. Матчасть.
412 990146
>>90131
Мы всё прекрасно понимаем. Ничто не помешает нам бесконечно обсуждать байты ИТТ. Ну не игры же делать, в самом-то деле, а?
413 990165
>>90144

>Учите базу. Классику. Матчасть.


В сети ты герой, а лично в лицо Хуану это скажешь?
https://docs.godotengine.org/en/stable/classes/class_audiostreamgeneratorplayback.html

>bool push_buffer(frames: PackedVector2Array)


>Pushes several audio data frames to the buffer. This is usually more efficient than push_frame in C# and compiled languages via GDExtension, but push_buffer may be less efficient in GDScript.


>bool push_frame(frame: Vector2)


>Pushes a single audio data frame to the buffer. This is usually less efficient than push_buffer in C# and compiled languages via GDExtension, but push_frame may be more efficient in GDScript.



Ещё момент:

>все их (DLL) функции вызываются...


Мы обсуждаем вызов godot.exe изнутри module.dll.

Честно, не изучал GDExtension, но полагаю, что там происходит вызов по ссылке, полученной во время инициализации модуля. Это, по идее, должно быть медленнее прямого вызова "родной" функции DLL. Особенно с учётом оптимизаций компилятора, что, естественно, недоступны на стыке DLL <-> EXE.
414 990171
>>90165

> Честно, не изучал


Ну вот как изучишь, тогда и приходи.

> лично в лицо Хуану это скажешь?


Я в другмо гороед.
415 990192
>>90171
Кто такой гороед?
416 990218
>>90192
Кто здесь??
417 990286
>>85261 (OP)

>типизированных луа-террейнов одним мешем


шо це и причем тут Годо?
418 990295
>>90286
Возможно, это ОП так рофлит над моим бугуртом из прошлого треда.
419 990312
>>90295
А что там было вкратце? А то выпадал тут на некоторое время
image.png282 Кб, 948x511
420 990346
>>90312

>выпадал тут на некоторое время


надеюсь не как как кишка из жопы пидора

вчера камшот 4.4 дев 7 релизнулся:
https://godotengine.org/article/dev-snapshot-godot-4-4-dev-7/

jolt теперь интегрирован в годот
подсказки из документации вылазят при простом наведении мышкой (пикрил)
хуйня для любителей запекать
и многое другое
421 990354
>>90346

> jolt теперь интегрирован в годот


Молодцы. Надо уметь вовремя признавать свою неправоту. Лучше вставить физику от умельцев, чем велосипедить свою.
422 990381
>>90346

> вчера камшот 4.4 дев 7 релизнулся


ух, жду эту шлюшку к новому году позабавиться
423 990384
>>90381
Тоже жду, чтоб начать игры делать наконец.
424 990385
>>90354
Ты поехавший? Jolt 1.0 появился только в 2022 году. А нормальные фичи там еще только полгода назад завезли. По твоему всем надо было бросить разрабатывать годот и ждать, или все таки надо было иметь какую то временную физику?
425 990388
>>90381
Главное чтобы в 3 не ленились бекпортировать.
426 990390
test
427 990391
>>90381
К новому году не успеют, многие после дев 7 уходят на новогодние каникулы. Жди после НГ.
Godot4.3.mp437,6 Мб, mp4,
1280x720, 1:41
428 990415
В шапку вам на перекат
Screenshot 2024-12-21 150432.png24 Кб, 748x449
429 990464
У вас так же?
image.png136 Кб, 1298x842
430 990479
>>90464
Клаудфларовский айпишник в блоке РКНа.
1734786550109.png144 Кб, 1212x970
431 990484
>>90464
УМВР
432 990522
>>90415
Годо новогодний
433 990524
>>90415
Я бы поостерегся добавлять в шапку неизвестно, тут даже интерфейса редактора нет.
434 990572
>>90524
Там мышь без фильтрации ввода. Верный признак стоковых ФПС-контроллеров годота. Но да, надо более весомое подтверждение, что автор приложил больше усилий, чем скачивание ассетов и запуск ОБС.
435 990573
>>90572

>Там мышь без фильтрации ввода. Верный признак


Такое одной галочкой где угодно переключается.
436 990574
>>90573
Эммм...да. Несомненно, но сначала ты должен запрограммировать эту галочку.
437 990576
>>90574
Я к тому, что по одной такой галочке гадать годот это или не годот - такое себе. А потом тролль сможет гоготать, что закинул что-то левое в шапку.
438 990588
>>90576
Ааа... ну да.
440 990650
>>90627
А ну значит сразу нет. Видосики мы здесь ставим только от анонов. С других ресурсов только арт.
441 990659
>>90650
Кто "мы"? Много раз в шапке были не-двачерские видосы, в том числе те, которые я сам в тред приносил.
442 990670
>>90659
Нас много и мы в погонах, гражданин, потише там.
443 990690
>>90670

>Нас много и мы в погонах, гражданин, потише там.


Ах ты сучка, у меня колом, как игры делоть на годоти?
Обновить тред
« /gd/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее