Gamedev


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

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

Godot #14 Аноним # OP 14/01/20 Втр 03:52:14 6354271
. (364Кб, 1920x1804)
1920x1804
С чего начать?
С изучения документации. Если не можешь в инглиш, и даже в гугл-переводчик, то начат перевод официальной документации: https://docs.godotengine.org/ru/latest/
Но вообще, будь мужиком и изучи английский: https://godot.readthedocs.io/en/stable/

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

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

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

Архивы:
1 http://arhivach.ng/thread/207802/
2 http://arhivach.ng/thread/388500/
3 http://arhivach.ng/thread/388501/
4 http://arhivach.ng/thread/388502/
5 http://arhivach.ng/thread/388503/
6 http://arhivach.ng/thread/432708/
7 http://arhivach.ng/thread/433902/
8 http://arhivach.ng/thread/436355/
9 http://arhivach.ng/thread/455461/
10 http://arhivach.ng/thread/479963/
11 http://arhivach.ng/thread/489815/
12 http://arhivach.ng/thread/494513/
Аноним 14/01/20 Втр 04:57:09 6354392
Отписываюсь в тред по самому лучшему двиглу на планете Земля, я первый!
Аноним 14/01/20 Втр 07:40:08 6354623
>>635439
надеюсь и последний
Аноним 14/01/20 Втр 08:28:47 6354674
>>635173
>Пулы в движке тоже есть.
Тыкни лицом, не нашел.
Аноним 14/01/20 Втр 09:22:05 6354685
>>635467
https://godotengine.org/qa/2239/what-is-the-best-way-to-do-object-pooling
> There is no GC in gdscript so your game wont pause in random moments of time to free the memory, this is why there is NO NEED for object pooling in gdscipt.
Если ты говоришь о пулах, как о парадигме, то эту функцию выполняет само дерево сцены. Создай ноду, но не включай её в дерево. Храни её в переменной (my_node_pool например), добавляй в неё ноды, которые требуется держать в памяти наготове, при этом у них не будут обрабатываться коллбэки. Добавляй и удаляй их путём репарента в основное дерево / из него.
Репарент делай осторожно, через call_deferred, что обсуждалось в прошлом треде
https://godotengine.org/qa/9806/reparent-node-at-runtime
Аноним 14/01/20 Втр 11:55:02 6354816
>>635468
Благодарствую, анон. Тонны нефти скачиваний тебе.
Аноним 14/01/20 Втр 21:07:16 6355547
>>635462
С утра рано приходится вставать, вот и бесишься!
Аноним 16/01/20 Чтв 07:50:51 6357428
unknown-2.png (14Кб, 452x370)
452x370
Чем Годоти хорош именно для 3D?
Платформеро-рогаликоунтерменш мнение знать не хочу, поэтому 2D мимо.
Если порыться в гитхабе, то есть куча свободных 3D движков разной степени кривизны, в чем существенное отличие его от конкурентов? Что по оптимизации и простоте работы? Сцена из трёх кубов не будет выдавать 3 фпс? Есть ли готовые 3D игры на Годоти дабы посмотреть среднее по больнице или на Годоте сидят только сектанты 2D, а 3D "для галочки", как это было в Gamemaker 1?
Почему именно годот тред, а не Lumix, Wicked, Armory, Xenko и т.д.?
Или все отличия заканчиваются на финансировании Хуана, что позволяет вкладывать деньги в пиар?
Аноним 16/01/20 Чтв 08:01:48 6357439
>>635742
>Lumix, Wicked, Armory, Xenko и т.д.
Это заброшенные движки без комьюнити.
Аноним 16/01/20 Чтв 08:43:58 63574610
> Чем Годотн хорош именно для 3D?
Рабочим процессом. Движок требует минимум сторонних инструментов для создания готовой игры. Фактически, нужен только 3D-редактор.
> в чем существенное отличие его от конкурентов?
Зашкаливающая простота. В движок вкатываешься за день. В скриптинг за второй день.
> Что по оптимизации и простоте работы?
Есть проблемы с оптимизацией. Проблемы есть. Но над ними работают.
> а 3D "для галочки", как это было в Gamemaker 1?
Начиная с третьей версии триде уже не для галочки.
> Сцена из трёх кубов не будет выдавать 3 фпс?
Дело не в количестве кубов, а в количестве нормалмапов в материалах. Над этим работают.

Ой, кажется я забыл номер поста! Или не забыл? )
Аноним 16/01/20 Чтв 13:24:20 63579011
>>635746
>Дело не в количестве кубов, а в количестве нормалмапов в материала
А окклюжен куллинг уже завезли, можно делать локации размером больше одного экрана без просадок фпс?
Аноним 16/01/20 Чтв 14:24:56 63580112
>>635790
Что такое "размером в экран" в применении к 3д объему? Ты под чем то?
Аноним 16/01/20 Чтв 14:39:21 63580313
>>635801
"Размером в экран" - это игра с фиксированной камерой, отсутствием движения камеры или скроллинга, весь игровой процесс которой происходит в рамках этого экрана. Например, тетрис, или бомбермен.
Аноним 16/01/20 Чтв 14:40:55 63580414
>>635803
И причем здесь окклюжен? Если у тебя будет скролл над картой бомбермена рамером 10х10 экранов, окклюжен практически никак не повлияет.
Аноним 16/01/20 Чтв 14:41:21 63580515
>>635804
зы. потому что этим занимается фруструм куллинг.
Аноним 16/01/20 Чтв 16:06:58 63582216
>>635805
А он в годоте есть?
>>635804
Для приведенного тобой примера да, окклюжен работать не будет. Но если у меня вид из глаз и большая карта с домиками, в которые можно входить, а в домиках куча мебели, лежат вилки на столах, я правильно понимаю, что сейчас в годоте будут рендериться внутренности каждого домика, попавшего в кадр, если смотреть на них снаружи?
Аноним 16/01/20 Чтв 16:18:40 63582817
1553070052369.webm (2316Кб, 1920x1012, 00:00:21)
1920x1012
>>635822
>А он в годоте есть?
Есть конечно.
>Для приведенного тобой примера
Это был приведенный тобой пример. Или ты другой анон?
>например, тетрис, или бомбермен.

>я правильно понимаю
Правильно. Будет через пол года. Если тебе надо раньше, придется самому отключать вилки-ложки, например, когда персонаж отошел за area рядом с домом.
Для интерьеров есть https://github.com/lawnjelly/godot-lportal
Аноним 16/01/20 Чтв 17:11:43 63583718
>>635828
Из видоса не совсем понятно где у стрелочки перед, так как впереди ее выдающейся части исчезают стены.
Аноним 16/01/20 Чтв 17:26:30 63584019
1441578137021.gif (4Кб, 434x293)
434x293
>>635837
Это не стрелочка. Так обозначают конус видимости из камеры. Да, можно было сделать нагляднее.
Аноним 16/01/20 Чтв 18:38:44 63584820
>>635828
>ручками расставлять порталы в 2к20 веке
Не, спс, я игры хочу делать, а не заниматься дрочкой.
Аноним 16/01/20 Чтв 18:43:05 63585021
>>635848
Нет, ты не хочешь делать игры, иначе уже давно бы расставил порталы вместе с дверьми, это занимает наносекунду времени.
Аноним 16/01/20 Чтв 18:44:52 63585222
>>635848
Ну так свали нахуй в движкосрач-загон.
Аноним 16/01/20 Чтв 21:54:44 63587323
>>635828
>Будет через пол года
Лол. Это разве не базовая фича которая должна быть одной из первых вообще? Да хоть сраный з-буффер перебрать, долго чтоль
Аноним 17/01/20 Птн 09:32:04 63595924
>>635873
Как видишь, этой базовой фичи в годоте нет, на том видео показан левый васянский модуль, с которым нужно перекомпилировать движок и шаблоны экспорта, и который криво работает.
Аноним 17/01/20 Птн 15:57:20 63606725
изображение.png (173Кб, 1920x1177)
1920x1177
Перекатываюсь со своими баклажанами и механикой из юньки в годотоцаря.

Ананас, я разобрался как делать подобие префаба. Теперь хочу напрограммировать коллизию, можно руками делать, см. пик. Но можно ли _create_collision_polygon_2d_node (ток в 3.1 появилось) вызвать как то с gdскрипта или городить свой велосипед. Коллизия нужна чтобы мышой кинематикбади2д двигать, через pickable.

И еще вопрос пока не забыл. Если я двигаю одну на другую коллизию, как из сортировать. А то сразу две\три\... двигаются.
Аноним 17/01/20 Птн 16:19:50 63607026
cESsIBFO1Q.webm (187Кб, 942x580, 00:00:11)
942x580
>>636067
одна на другую-кун, как победить
Аноним 17/01/20 Птн 16:38:37 63607327
>>635959
Раз этой фичи нет, значит она не базовая.
Аноним 17/01/20 Птн 17:13:28 63608428
>>636067
Тебе вот прямо совсем обязательно вручную из кода коллизии добавлять? Просто добавить к ноде физический объект с коллизией религия не позволяет?
Потому что сделать это можно, конечно, но придётся дополнительно ебаться с регистрацией нового объекта в сервере физики.
Аноним 17/01/20 Птн 17:23:19 63608629
>>636084
В идеале сделать префаб уровня, закинул картинку и всё. Остальное на лету, при старте сцены. Похуй можно и руками, на сцене предполагается порядка 60-120 таких объектов. Руками тоже можно протыкать каждый.
Аноним 17/01/20 Птн 17:27:59 63608830
>>636067
Что еще за подобие префаба? Просто делаешь отдельную сцену characterZombie и туда в корень добавляешь кинематик, спрайт и коллижн. А потом всю сцену интсансишь в сцене игры.
Аноним 17/01/20 Птн 17:39:41 63608931
>>636088
>Что еще за подобие префаба?
забей юнити сленг, отвыкаю

>А потом всю сцену интсансишь в сцене игры.
Это уже освоил. Но повторюсь у меня не 100 одинаковых зомби, а наоборот 100 разных по шейпу и вариативности спрайтов. Щас я как, делаю отдельную сцену item, туда только спрайт\скрипты\что угодно кроме коллизии, они все разные будут. Далее делаю 100 инстантов в сцене игры. Колизии как указал было бы заебок делать на лету, при старте. Пойду хуану метод предложу, чтобы не только в редакторе кнопку держал.

про порядок, там вообще оказалось ничего нет. народ велосипеды изобретает.
Аноним 17/01/20 Птн 17:43:36 63609032
>>635427 (OP)
Как передать следующей сцене параметры? Например я пишу get_tree().change_scene("res://scene2.tscn")
И хочу, чтобы в этой scene2 был определенный текст. Как це сделотб?
Аноним 17/01/20 Птн 17:49:55 63609233
Аноним 17/01/20 Птн 17:51:48 63609534
image.png (605Кб, 615x450)
615x450
>>636092
Для нескольких десятков переменных сойдет?
Аноним 17/01/20 Птн 17:52:53 63609735
>>636095
а чего нет? я пока не вижу проблем. Пусть убедят в обратном.
Аноним # OP 17/01/20 Птн 18:20:00 63610736
>>636095
> Для нескольких десятков переменных сойдет?
У игры должен быть как минимум один синглтон, олицетворяющий действующий инстанс игры, это игровой мир, если там мир, или игровое поле с расстановкой фигур и правилами. Так или иначе, есть некая структура данных, которую лично тебе выгодно держать в памяти от начала и до конца игровой сессии. Эту же структуру удобно использовать в качестве файла сохранения (сериализовать).

Поэтому самым "правильным" (ИМХО!) решением будет записать необходимые данные в эту глобальную структуру, а когда новая сцена загрузится, она прочитает эти данные у себя в коллбэке _ready()
Аноним 17/01/20 Птн 18:50:57 63611837
>>636095
Вообще говоря в гдскрипе есть классы. То есть ты можешь вполне осмысленно их группировать как и в любом другом языке.

class Pupa:
 func za(lupa):
  return lupa.zarplata

class Lupa:
var zarplata = 300

var pupa = Pupa.new()
var lupa = Lupa.new()

print(pupa.za(lupa))
Аноним 17/01/20 Птн 18:57:44 63612138
>>636118
не легче создать ноду и уже потом наследовать от неё?
Аноним 17/01/20 Птн 18:59:25 63612339
>>636121
Это было к вопросу о куче глобальных переменных в одном главном файле.
Аноним 17/01/20 Птн 19:35:40 63614440
>>636118
Эти встроенные классы говно. Мне гораздо удобнее нововведенная в 3.1. Команда class_name <> которая регистрирует скрипт как класс глобально. Классы становятся отдельными файлами и вызываются из других классов. Вот твой пример в таком варианте:

файл pupa.gd
class_name Pupa
func za(lupa):
return lupa.zarplata

файл lupa.gd
class_name Lupa
var zarplata = 300

файл zalupa.gd

var pupa = Pupa.new()
var lupa = Lupa.new()

print(pupa.za(lupa))
Аноним 17/01/20 Птн 20:05:31 63615941
>>636144
Дело вкуса, не люблю отдельный файл для каждого пука, если микрокласс на пару переменных. Насмотрелся на это в интирпрайз жабе.
Аноним 17/01/20 Птн 20:18:51 63616942
Совокупился с порядком ( не нашел как, через красивый пикабл кинетикбади решить. area2d и _unhandled_input только. Ну и жопа. А еще предлагали решение через кнопки О_о
Аноним 17/01/20 Птн 20:28:23 63617543
Аноним 17/01/20 Птн 20:29:03 63617644
Аноним 17/01/20 Птн 20:30:06 63617745
>>636169
Про порядок ты имеешь в виду когда спрайты один над другим? Тоже год назад сношался с этим, тоже только area2d и unhandled input работал.
Аноним 18/01/20 Суб 00:44:50 63633846
>>636177
Ага, именно он.

>>636175
Попробую. Походу то что нужно. Thx.
В шапку Аноним 18/01/20 Суб 21:47:06 63658147
Ну что вы, бэтманы? Появилась новая платформа для публикации игр на годоте! Все что нужно - просто запостить пак-файл. Даже экспорт не нужен. Хотя, для некоторых это может быть минусом.
https://youtu.be/pathScTBsk0
Аноним 18/01/20 Суб 21:49:56 63658248
>>636581
Условия какие? Не получится что все что им отправишь становится их собственностью?
Аноним 18/01/20 Суб 23:32:15 63660249
1579379534116.png (10Кб, 558x113)
558x113
>>636582
Уже неважно. Это поделие не работает в фаерфоксе.
Аноним 19/01/20 Вск 00:32:00 63662050
>>636581
И нахуя оно надо? Купить доменное имя, арендовать сервер за 5 баксов в месяц и можешь сам хоститься.
Аноним 19/01/20 Вск 03:21:14 63668051
>>636602
Забавно, потому что на моей некропека наоборот хтмл годота работало в лисе, но не в хромом
Аноним 19/01/20 Вск 05:07:00 63669652
ScreenshotBrave[...].png (175Кб, 1080x1920)
1080x1920
>>636581
Работает прям в мобильнике, правда игры зумерское гиперкэжуальное г.
Аноним 19/01/20 Вск 07:31:09 63671253
Можно ли тут юзать 2д скелетную анимацию на 3д спрайтах?
Аноним 19/01/20 Вск 07:34:20 63671354
>>636712
Имею ввиду чтоб можно было анимировать движение в 8 направлениях в изометрии. Надо подменять риги и скелеты или это только для платформеров?
Аноним 19/01/20 Вск 11:59:09 63673355
14275323941370.jpg (113Кб, 687x906)
687x906
>>635427 (OP)
Гайс, передо мной стоит такая задача:

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

Понимаю, что это по идее делается с помощью шейдеров, но что-то у меня ничего не получается. Помогите, пожалуйста
Аноним 19/01/20 Вск 12:31:53 63673756
>>636733
Загугли gonkee shaders у него есть готовое решение.
>>636713
Бля Анон не могу открыть с телефона документацию вместо тебя.
Аноним 19/01/20 Вск 12:53:41 63674357
>>636737
>Загугли gonkee shaders
Можешь ткнуть меня где у него именно про эффект размытия (blur)? На Гитхабе и на ютуб-канале нашел только про огонь, дым и всякое такое.
Аноним 19/01/20 Вск 18:38:14 63680158
Anmerkung 2020-[...].jpg (19Кб, 867x128)
867x128
>>636733
>>636743
В общем я разобрался почти со всем, кроме этого:
>Желательно, чтобы размывалось не моментально, а постепенно в течение одной секунды

Как такое сделать? Чтобы к переменной отвечающей за размытие каждый кадр добавлялось например 0.01, а по достижении числа 1 процесс прекращался?

Я вот попытался написать функцию, но она почему-то включает размытие сразу на 1, а не повышает постепенно

Аноним 19/01/20 Вск 19:01:26 63680559
>>636804
Я не программист и вообще пишу код первый раз в жизни, гугля на ходу. Но я рад, что тебе весело.
Аноним 19/01/20 Вск 20:44:23 63682160
>>636743
> Можешь ткнуть меня где у него именно про эффект размытия (blur)?
Бля. Не нашёл. Сорян. По памяти помню, что примерно как на твоём скрине >>636801 из скрипта обращаемся к юниформу и задаём радиус размытия. Поищу ещё может найду.
Аноним 19/01/20 Вск 23:06:54 63685561
>>636821
Само размытие по нажатию кнопки уже работает, теперь мне надо только этот плавный переход как-то настроить
Аноним 20/01/20 Пнд 10:00:00 63692162
>>636159
> Насмотрелся на это в интирпрайз жабе.
А я не могу наглядеться. Загляденье просто! Особенно, когда среда разработки осуществляет менеджмент этими файлами так, что ты можешь абстрагироваться от них. Однако, сам факт их наличия предоставляет широкие возможности для бэкапа.
Аноним 20/01/20 Пнд 10:10:16 63692263
>>636855
> плавный переход как-то настроить
Просто скармливай шейдеру обновлённые значения радиуса размытия из _process или из корутины, не знаю, как тебе удобнее. Но вот этот мрак на скрине >>636801
это пиздец. Сеттер возвращает void и твой if бессмысленнен. Но даже если туда подставить геттер, чекать ифом значение юниформа бессмысленно в рамках твоей задачи. Ещё раз: просто скармливай новые значения шейдеру через сеттер.
func blur_increase(): Mat.set_shader_peram("blur", wrapf(current_blur + blur_step, blur_min, blur_max))

Аноним 20/01/20 Пнд 11:42:15 63694164
Cancerapr.jpg (55Кб, 306x403)
306x403
>>636922
Все понял, спасибо.
Аноним 21/01/20 Втр 03:06:31 63716765
image.png (1072Кб, 1119x558)
1119x558
Подскажите, куда копать, картинка состоит из множества sprite, куски в png-24. Фотошопил без АА. Не могу избавится от ебучих линий.
Аноним 21/01/20 Втр 07:45:11 63719466
>>637167
Отключить АА при импорте. Либо свойством filter либо пресетом 2d pixel (что делает то же самое).
Аноним 21/01/20 Втр 07:55:28 63719667
>>637194
И кстати ещё сам редактор при разрезе на куски может смягчать кромки. Выбери жесткое попиксельное выделение в фоторедакторе, если импорт не поможет.
При соблюдении обоих советов куски пикчи совместятся пиксель к пикселю. Но без сглаживания отдельные куски могут на краях выглядеть рвано. Тут три решения. 1. Резать под ровными углами, 1:2, 1:3, 1:4 и т.д. 2. Резать со сглаживанием а затем масштабировать вырезанный кусок на пару пикселов больше, чтобы края перекрывались. 3. Резать по кромкам изображённых объектов, пока не останется задний фон. Затем дорисовать задний фон, это лучше подходит, если у тебя многослойное изображение в формате psd, тогда просто слои сохраняешь в отдельные файлы.
Аноним 21/01/20 Втр 11:10:40 63722468
compute shader еще не завезли?
Аноним 21/01/20 Втр 11:20:14 63722569
Аноним 21/01/20 Втр 12:02:25 63723170
Аноним 21/01/20 Втр 12:12:24 63723571
>>637224
ЧТо считать собрался?
Аноним 21/01/20 Втр 13:02:54 63724972
>>637235
да пока уже ничего, проекты вкатились на другие движки

например, погодные эффекты
Аноним 21/01/20 Втр 13:17:09 63725173
>>637235
Без компот-шейдора не получится сделать снег/дождь, который не проваливается сквозь крыши.
Аноним 21/01/20 Втр 13:18:01 63725274
>>637251
Ну это не так, делали в треде полтора года назад.
Аноним 21/01/20 Втр 13:25:18 63725475
>>637252
Не делали, а обсуждали. Так ничего и не сделали. Был в том обсуждении.
Аноним 21/01/20 Втр 13:26:37 63725576
>>637254
> Был в том обсуждении, предлагал дичайшие костыли вроде лепки нескольких инстансов частиц вокруг домов.
Быстрофикс.
Аноним 21/01/20 Втр 14:08:00 63726777
>>637194
Спасибки, выручил. Отключение filter спасло мою душу.

>>637196
>Выбери жесткое попиксельное выделение в фоторедакторе
Именно это и указал, АА был отключен в редакторе при экспорте.

В любом случае, приму инфу к сведению, про порезку. Пол игры на этом строится. Когда отключил filter на импорте, даже при скалирование окна игры, всё стало как по маслу, без разрезов. Годот сила.
Аноним 21/01/20 Втр 14:39:39 63728478
1579607327273.png (69Кб, 610x385)
610x385
>>637267
> Годот сила.
Годот круто!
Аноним 22/01/20 Срд 01:01:37 63751979
1562653167600.webm (20443Кб, 1920x1080, 00:00:30)
1920x1080
Аноним 22/01/20 Срд 18:28:59 63779480
>>637519
Очень круто. Буду делать шутан, возьму на заметку.
Аноним 22/01/20 Срд 18:40:59 63780581
>>637794
На самом деле, визуал водички оказался очень недоработанным (в плане отражений и прозрачности), да и автор его почти не развивает, так что не рекомендую для продакшна.
Аноним 22/01/20 Срд 19:32:02 63786182
>>637805
Воду я даже не заметил если честно, меня ток контроллер интересует.
Аноним 22/01/20 Срд 20:21:34 63789383
>>637861
> меня ток контроллер интересует
Ща гляну, что там за контроллер. Ставлю бочку нефти, что там нет кроуча с автодетектом вентшахт.
>>637805
> визуал водички оказался очень недоработанным
Ща тоже глянем. Я делал водичку по туториалу ещё на версии 3.0 посмотрим, удалось ли этому её превзойти.
Аноним 22/01/20 Срд 20:23:46 63789484
>>637893
> Ща гляну, что там за контроллер.
Ба, да это тот самый говноассет, который я доводил до ума в прошлом треде!
> mvarray[0] = true
Аноним 22/01/20 Срд 21:07:55 63790485
>>637894
>Ба, да это тот самый говноассет, который я доводил до ума в прошлом треде!
Понял, принял
Аноним 22/01/20 Срд 21:29:56 63790786
>>637904
Однако же замечу, моих постов из прошлого треда тебе не хватит, чтобы довести до ума. Вообще, всё зависит от потребностей твоего проекта. Тут уже стоит задуматься о модульном контроллере, чтобы можно было подключать и отключать фичи. С другой стороны, почему бы не поднять модульность на уровень компоновки персонажа и подключать контроллеры по мере надобности? Надо это обдумать.
Аноним 22/01/20 Срд 22:55:39 63795887
Вкатываюсь в годо. Возник вопрос:
Каким макаром лучше запилить в годо многомерный массив?
Я пока вижу два варианта:
1) сделать одномерный с домножением индеков на число, типа N[i,j,k] эквивалентно N[i100 + j10 + k]
2) Сделать ноду N1 создающую массив нод N2, каждая из которых создает массив нод N3... ну вы пони.
Но может есть менее упоротые варианты?
Еще вопрос: логично, что в случае с ОЧЕНЬ большим массивом, во втором варианте будет просто адское кол-во нод. Как это скажется на производительности если эти ноды будут иметь минимальный функционал и, по сути, будут только хранить данные?
Аноним 22/01/20 Срд 23:02:31 63796588
>>637958
>Как это скажется на производительности если эти ноды будут иметь минимальный функционал и, по сути, будут только хранить данные?
В том смысле - дергает ли годо ноды и имеющие свойства(переменные) но не имеющие никаких функций? Или они просто безболезненно висят не потребляя ресурсов компа кроме оперативы?
Аноним 22/01/20 Срд 23:16:18 63798089
1451679150489.png (37Кб, 485x573)
485x573
Аноним 22/01/20 Срд 23:22:02 63799590
>>637980
Мда. Так и думал, что можно проще. Еще такой вопрос: при таком способе ведь не будет ограничения на кол-во измерений? 10-мерный массив можно так запилить? И есть ли ограничение на кол-во элементов в массиве, или оно условно бесконечно?
Аноним 22/01/20 Срд 23:23:03 63800091
>>637965
Вот этот вопрос тоже в силе
Аноним 22/01/20 Срд 23:36:52 63800892
>>637995
Ты лучше пиши что ты хочешь сделать, потому что 10-мерный массив это очень странно.
>есть ли ограничение на кол-во элементов в массиве, или оно условно бесконечно?
Там int, 2,147 миллиарда, если выделилась память.
Аноним 22/01/20 Срд 23:46:08 63801493
>>638008
>потому что 10-мерный массив это очень странно.
Не, я понимаю что странно, лол. Хочу проверить работоспособность одного своего алгоритма, для одной утилитки на комп. Так что описать, что я хочу сделать в двух словах наверное не выйдет. Короче будем считать, что мне нужно запилить массив на много (около 10) измерений.

>Там int, 2,147 миллиарда, если выделилась память.
Но, всегда ведь можно вложить в этот массив еще массив на пару миллиардов, так?
Аноним 22/01/20 Срд 23:48:30 63801594
>>638014
У тебя массивы сплошно заполнены или разрежены хотя бы?
Аноним 23/01/20 Чтв 00:00:53 63801895
>>638015
Нууу.. я на самом деле сам пока еще думаю, как лучше сделать. Но, будем считать для простоты что сплошные
Аноним 23/01/20 Чтв 00:02:33 63801996
>>638015
Просто массив будет заполняться по ходу работы проги, и я хз, как оно повернется.
Аноним 23/01/20 Чтв 00:11:13 63802397
>>638015
Хотя массив этот должен хранить списки, так что мб сразу проще пилить в виде ступенек
Аноним 23/01/20 Чтв 00:48:19 63805198
>>638018
Ты с арифметикой дружишь? Если у тебя первое измерение (ширина) 2 миллиарда, и в каждом столбце (высота) 2 миллиарда ячеек, то тебе надо чтобы в компе стояло 2 миллиарда плашек по 4гб (минимум)
Аноним 23/01/20 Чтв 01:02:22 63806199
>>638051
Да я спросил чисто для теории. Не придирайся. В моей проге, надеюсь, до такого не дойдет.
Аноним 23/01/20 Чтв 01:03:57 638062100
>>638051
Но там реально дохуя этих элементов, и я вообще хз, во что это выльется и заработает ли.
Аноним 23/01/20 Чтв 01:04:27 638063101
>>638061
> Хочу сделать прогу. Но какую не скажу.
Неужели на нашем движке собрались писать вирусы? Вот это честь!
Аноним 23/01/20 Чтв 01:07:10 638064102
>>638051
Но вообще да, я не посчитал, когда спрашивал
Аноним 23/01/20 Чтв 01:17:42 638071103
>>638063
Естественно не скажу, т.к. это не прога, а алгоритм обработки довольно специфичного списка данных, который х*й знает работает ли вообще.
Аноним 23/01/20 Чтв 02:00:34 638080104
>>638071
Все еще непонятно зачем тебе 10-мерность. Ты уверен что тебе нужно arr[3][14][59][265][5][35][89][793][23][846], а не скажем просто arr[x][y][10].
Аноним 23/01/20 Чтв 04:10:37 638095105
>>638080
Если кратко, и не вдаваясь в подробности - для скорости "индексации" - чтобы быстро переходить к нужному элементу, подходящему под заданные условия, а не ворошить каждый раз многотонный список. Хотя, конечно, возможно есть более простые решения, но, думаю вариант с разбиением списка на сотню тысяч (а мб и больше) частей тоже не так уж плох.
Аноним 23/01/20 Чтв 08:35:53 638113106
>>638095
> возможно есть более простые решения
> с разбиением списка на сотню тысяч (а мб и больше) частей
Именно так. Деревья. Все юзают их, а не многомерные массивы.
Аноним 23/01/20 Чтв 08:39:32 638114107
>>638113
Как запилить такое дерево и чем плохи массивы?
Аноним 23/01/20 Чтв 08:44:34 638116108
>>638114
Ты так спрашиваешь, будто я профи байтоёбства. Гугли октодеревья, бинарные деревья поиска и прочее такое найдёшь далее по ссылкам из нагугленного текста. Учись гуглить и курить матчасть. Без этого не станешь девелопером. И готовься к тому, что 99% инфы будет на английском.
Аноним 23/01/20 Чтв 08:49:39 638119109
>>638116
Ладно, хоть скажи, это реализуемо на gdscript, или придется делать вставки на C++?
Аноним 23/01/20 Чтв 08:53:44 638121110
>>638119
Реализуемо.
Главное - пытайся и делай. Могу помочь с алгоритмом, если ты перестанешь строить из себя секретного спецагента и внятно объяснишь, что ты хочешь посчитать. Возможно, оно уже реализовано в движке, если ты правильно поставишь себе задачу и прошерстишь АПИ движка.
Аноним 23/01/20 Чтв 09:18:25 638124111
>>638121
Ок, я погуглю в свободное время. Если будет что непонятно - спрошу
Аноним 23/01/20 Чтв 09:18:47 638125112
>>638121
Пасиб за разъяснения
Аноним 23/01/20 Чтв 15:35:11 638252113
>>638095
Возможно тебе нужна база данных, типа sqlite.
Аноним 24/01/20 Птн 19:36:39 638769114
>>638252
Возможно ему вообще не игровой движок нужен, а чистая ИДЕ для обкатки своих идей в простом ЯП.
Аноним 24/01/20 Птн 19:38:54 638771115
>>638769
Кстати да, хоть он и пишет, что данные будет собирать из игры, игру же можно реализовать в виде клиент-сервера, и собирать обезличенные данные о юнитах (без графона и так далее), игровое поле просто как массив объектов в любом ЯП.
Аноним 25/01/20 Суб 01:56:09 638805116
>>635742
Годот хоршо только скоростью с которой ты будешь создавать, писать на гдскрипте намного быстрее и проще чем на си, если ты делаешь игру мальенкой кампанией(один), то на U или на U, ты за занчительный промежуток времени сделаешь нихуя, а на гд можно написать годную мобилку за 1 день
Аноним 25/01/20 Суб 01:58:51 638806117
>>636067
Я вообще картинки делаю texture rect и инпут с них ловлю
Аноним 25/01/20 Суб 02:00:44 638807118
>>636070
Сделай не кинематик, а риджыд(в нем надо будет когда поднимаешь мод менять на кинематик, а когда кладешь обратно), еще чуть выше написал про то что инпут ловлю с тексутр ректа, если так делать то будешь мышкой брать ток 1 объект
Аноним 25/01/20 Суб 02:33:53 638810119
1550245237562.png (42Кб, 381x516)
381x516
1482252550386.png (44Кб, 381x516)
381x516
Кто-то давно спрашивал, что будет, если собрать Годот только 2д. Со всеми откюченными флагами, пустой проект с одной картиночкой, вышло 6Мб под ведроид одна архитектура arm7eabi и 17Мб под винду. Запускается на телефоне около секунды.
Аноним 25/01/20 Суб 05:21:20 638827120
>>638807
попробую. пасиб за совет, может проще будет. в целом я победил через area2d и _unhandled_input. Норм работает.
Аноним 25/01/20 Суб 09:07:57 638848121
Всем здоровья в этом треде. Хочу спросить, вкатываться мне в годот или нет, если я хочу рпг по шаблону фоллача 2, но при этом нихера не шарю в коде?
2д графон, пошаговые бои, диалоги разветвленные, вот это все.
Пробовал РПГ мейкер, он не позволяет диалоги сложные строить, печаль. Гамак пробовал, он начинает в определенный момент просто виснуть от обилия файлов.
Что делать, анон? Вливаться в ГОДОТ? Если да, подскажи, как облегчить себе жизнь?
Аноним 25/01/20 Суб 10:06:16 638851122
>>638848
> как облегчить себе жизнь?
Выучить программирование. Если выучишь, то сможешь на годоте такое сделать.
Аноним 25/01/20 Суб 10:32:04 638852123
>>638848
>но при этом нихера не шарю в коде?
Главное выучить программирование. Потом сможешь использовать любой движок.
Аноним 25/01/20 Суб 14:05:41 638879124
>>638810
Годно. Однако в век терабайтов с гигагерцами интересно разве что в академических целях. Более-менее красивая игра с графоном, звуком, будет весить от 600 Мб. Экономия 5-7 мегов тут погоды не делает.
Отвечает Александр Друзь Аноним # OP 25/01/20 Суб 14:16:24 638882125
>>638848
Ты не сможешь сделать годной игры без навыков в программировании. Годоскрипт прост лишь для кодеров со стажем, увы. Если ты принципиально не понимаешь логики компьютеров, как персонаж тролля, набрасывающего в соседних Индия-тредах, то ты и в годоскрипте будешь как слепой котёнок тыкаться.
У меня стаж кодинга 20 лет и то я целый год над одной только диалоговой системой работал, постоянно переделывая и отбрасывая неудачные варианты. А ещё бывает, натыкаешься на неочевидные вещи, никак не отражённые в документации. Например, есть кнопка, у неё есть сигналы. Есть диалог, у него есть сигналы. Это в доках есть. Так же в доках подробно описано, как вешать обработчики на сигналы. Но в доках не написано, что ты можешь получить ссылку на кнопки в диалоге и назначить обработчики на их сигналы нажатия, чтобы потом получать нажатие кнопки ОК в диалоге и действовать соответственно. Предполагается, что ты это уже понимаешь.

Короче говоря. Геймдевелопинг - это сложное и обширное ответвление от софтдевелопинга в целом. Наивно вкатываться в него с нуля. Поэтому я и много других анонов в очень многих тредах советуют новичкам начинать с общих курсов кодинга, чтобы хоть немного поднатаскаться в матчасти. А потом уже игры делать, уровня фолыча, с корованами и домиками деревянными.
Аноним 25/01/20 Суб 16:34:52 638922126
>>638848
>но при этом нихера не шарю в коде
Опиши свое "нихера". Если ты можешь отличить переменную от массива, а интерфейс от абстрактного класса - то можешь спокойно вкатываться.
Аноним 25/01/20 Суб 16:37:39 638923127
75823-triangle-[...].png (27Кб, 200x200)
200x200
Нужен человек который может нарисовать СВЕТЯЩУЮСЯ ЛИНИЮ и возможно объяснить как это сделать, а то я совершенно не могу в 2д графику, а делать через шейдеры в падлу, да и не производительно
Нужно что-то как на картинке
Аноним 25/01/20 Суб 17:01:09 638935128
>>638922
>интерфейс от абстрактного класса
>питон
Аноним 25/01/20 Суб 17:15:21 638942129
>>638923
>делать через шейдеры не производительно
Это не так. Видеокарты рисуют быстрее процессоров.
Аноним 25/01/20 Суб 17:16:39 638943130
>>638935
> питон
Нет, не слышали.
https://docs.godotengine.org/ru/latest/getting_started/scripting/c_sharp/
Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека.
Аноним 25/01/20 Суб 17:20:41 638946131
>>638923
> нарисовать СВЕТЯЩУЮСЯ ЛИНИЮ
Какое грамотное, полное и всеобъёмлющее ТЗ. Я сделаю этот заказ за 3 тыс рублей.
Аноним 25/01/20 Суб 17:26:22 638949132
>>638942
Мб я чет не понимаю, но ведь видеокарте проще нарисовать текстурку, чем для каждого пикселя сделать по какой--нибудь операции разве не?
Аноним 25/01/20 Суб 17:46:08 638973133
>>638949
Нет. Ведь быстрее "нарисовать текстурку" на GPU а не на CPU.
Аноним 25/01/20 Суб 17:53:56 638985134
>>638943
С языком все в порядке, а что там с поддержкой платформ? iOS точно нет, html версия и андроид в бете?
Аноним 25/01/20 Суб 18:15:08 638992135
1579965307178.png (30Кб, 483x308)
483x308
>>638985
> iOS точно нет
Ну что же ты пиздишь? Тредом не ошибся, няша? Дорогу указать?
Аноним 25/01/20 Суб 18:20:15 638995136
>>638992
Ты втираешь что-то странное. Экспорт c# в андроид заявлен в 3.2 который еще не зарелизился. Экспорт в ios заявлен как не сделанный. Пруфы экспорта c# в ios какие нибудь имеются?
https://github.com/godotengine/godot/issues/20268
Аноним 25/01/20 Суб 18:26:13 638998137
>>638995
> Ты втираешь что-то странное.
Сорян, запостил не читая тред. Позор мне.
Аноним 25/01/20 Суб 18:55:01 639004138
>>638998
Да не страшно, Хуан мог бы и почетче на сайте написать, из чего куда есть экспорт, а куда нет.
Аноним 25/01/20 Суб 18:56:28 639005139
>>639004
>>638998
Заткнитесь, людям надежда нужна, а не ваша правда ёбаная.
Аноним 25/01/20 Суб 19:18:25 639010140
>>639005
А какая связь между C# и надеждой?
Аноним 25/01/20 Суб 19:51:34 639014141
>>639010
Сишарп - надежда игростроя.
Аноним 26/01/20 Вск 03:02:05 639062142
>>635427 (OP)
> С чего начать?
alt+f4, затем uninstall
Аноним 26/01/20 Вск 16:24:56 639156143
image.png (4184Кб, 1868x1034)
1868x1034
Смарите че сделал, где-то за пару вечеров, если попросите кину апк, управление мышкой, для старта тыкните на иконку годо
https://yadi.sk/d/n41WryoNBr-dhw
Аноним 26/01/20 Вск 16:31:50 639162144
>>639156
Какая версия движка?
Аноним 26/01/20 Вск 16:36:02 639164145
>>639162
А, неважно, у меня на 3.1.2 запустилось. А звука там нет или это у меня из-за линокса не заиграло?
Аноним 26/01/20 Вск 16:39:06 639167146
>>639156
Если в игре есть звуки, пожалуйста, переименуй все звуковые файлы, чтобы они были с мелких букв и переэкспортируй.
Аноним 26/01/20 Вск 16:40:19 639168147
>>639162
3.1.1
>>639164
Звук, есть у меня играет, можешь просто найтколл включить.
Хотя тогда не будет эффекта когда плюху ловишь
Аноним 26/01/20 Вск 16:42:16 639170148
>>639168
> Звук, есть у меня играет,
>>639167
> пожалуйста, переименуй все звуковые файлы, чтобы они были с мелких букв и переэкспортируй
Да, это баг. Баг case-sensitive в линуксах.
Аноним 26/01/20 Вск 16:42:50 639171149
Аноним 26/01/20 Вск 16:43:38 639172150
>>639170
А так часто в линуксах бывает? Погодите а как вы ехе запускаете на лиунксе?
Аноним 26/01/20 Вск 16:51:46 639178151
>>639172
> Погодите а как вы ехе запускаете на лиунксе?
Я свой ельф сделал, очевидно. Точнее просто взял от одной из своих игор. Заработало! И со звуком!

Тут другой вопрос. Музыка закончилась, я еду дальше в тишине. Нужно либо запускать шарманку сначала, либо уровень заканчивать.
Аноним 26/01/20 Вск 16:57:06 639179152
>>639156
> управление мышкой,
Ассет, который ты спиздил, также управляется и стрелками с клавиатуры. И гораздо удобнее.
Аноним 26/01/20 Вск 16:57:42 639180153
>>639178
Я пока забил на эту игру и делаю другую, т.к. там проблема в шейдере на телефоне, при столкновении на компе шейдер работает отлично, а телефоне дергает картинку 1 раз в бок и обратно, почему пока не разобрался да и лень как-то, все равно еще 100000 фишек надо добавлять чтобы это стало играбельным.
А по поводу той-же музыки, всё равно я не могу использовать этот трек, если буду выкладывать в гуглплей, сам я музыку писать не умею, есть один друг одногруппника, который умеет что-то, но не хочу его просить пока все настолько неготово
Аноним 26/01/20 Вск 17:00:13 639182154
Аноним 26/01/20 Вск 17:00:57 639183155
>>639179
Я знаю что такое ассет, но не умею их устанавливать, т.е. еще ни разу не получилось когда пытался, управляется стрелками т.к. управление на компе я вообще делал только для теста, эта игра не задумывалась для пк. По этому сначала я сделал на стрелки, но управление стрелками оч далеко от управления наклоном, по этому придумал сделать на мышку, максимально похоже на управление гироскопом.
Аноним 26/01/20 Вск 17:02:30 639184156
>>639183
Скрестил пальцы за тебя, анончик! Сделай игру за всех нас!
Аноним 26/01/20 Вск 17:06:11 639185157
>>639172
В шапке есть подсказка (после жирных букв)
Аноним 26/01/20 Вск 17:07:55 639186158
Где изменить дефолтную папку для сохранения? Не хочу каждый раз менять путь с документов на нужную мне.
Аноним 26/01/20 Вск 17:12:09 639188159
Аноним 26/01/20 Вск 17:18:02 639189160
1433095458969.png (408Кб, 1408x700)
1408x700
Аноним 26/01/20 Вск 17:21:59 639192161
>>639189
Кстати советую забекапить папку C:\Users\ИМЯ_ЮЗЕРА\AppData\Roaming\Godot
У меня от экспериментов с шейдерами с падением драйвера видюхи, и от ковыряния с экспериментальными билдами, пару раз зависал комп целиком, и после ребута все настройки были проебаны.
Аноним 26/01/20 Вск 17:57:48 639201162
В годоте есть автодополнение кода и навигация по элементам, как в вижуал студио?
Аноним 26/01/20 Вск 18:12:40 639205163
>>639201
Ну немношк есть. До студии канеш далеко. Но ребята стараются.
Аноним 26/01/20 Вск 18:28:38 639211164
Аноним 26/01/20 Вск 19:32:48 639219165
>>639211
Практически, если речь о годоскрипте, то для него сторонние тулзы не нужны, а если речь о сишарпе, то мне, например, удобнее безо всяких тулзов открыть в студии сгенерированный годотом солюшен и не забывать сохраняться после написания кода.
Аноним 27/01/20 Пнд 01:50:04 639249166
image.png (205Кб, 480x360)
480x360
Короче, анон, я тут подумал, и решил взять и добавить в годот блекдж и куртизанок

Что хочу переделать:
- выкинуть их рендер, встроить vulkan/DX12/OGL (знаю что в 4 версии это тоже хотят сделать - но они там еще лет сто будут делать)
- выкинуть их питон-скрипт, заменив нормальным скриптовым языком и доделать C#
- выкинуть bullet, встроить physx
- оптимизировать 3Д

Почему не контрибутить? потому что хочу многое переделать, они не пустят (и вообще у них ущербная политика контрибуции - доходит до того что пофиксив баг, надо потом им доказать что это был очень важный фикс бага)
Аноним 27/01/20 Пнд 02:22:08 639251167
>>639249
А мог бы игру делать.
Аноним 27/01/20 Пнд 02:34:50 639253168
>>639251
я не знаю какую игру делать. я программист, художничать не умею.
Аноним 27/01/20 Пнд 03:56:20 639256169
>>639249
Если вулкан сделаешь, вообще заебись будет, а то этот ебаный жылет2 без гпу, а жилет3 вообще нихуя не работает.
А если выкинуть питон скрипт то нахуй тогда овобще гд нужен, он же только для тех кому лень в си подобные
Аноним 27/01/20 Пнд 04:23:22 639259170
ну вулкан будет и в 4.0 godote (только когда?)

вместо питона думаю что-нибудь типа JavaScript/TypeScripts для ленивых и довести до ума C# для остальных. Плюс когда-нибудь хотелось бы и свои блюпринты

Ну а конкретно сейчас переделываю систему сборки (scons меняю на premake5) и обмазываюсь профиляторами (надо узкие места латать)

Если все пойдет, открою свой форк на гитхабе
Аноним 27/01/20 Пнд 04:24:37 639260171
Аноним 27/01/20 Пнд 04:27:11 639261172
>>639253
Это вообще не проблема. Можно качать готовое. Можно делать лоуполи по гайдам. Можно рисовать пиксельарт по гайдам. Можно делать процедурную генерацию графона. Главное просто начать и делать. Вот тебе мотивирующий видосик https://www.youtube.com/watch?v=7TXEZ4tP06c
Аноним 27/01/20 Пнд 08:16:13 639275173
>>639259
> открою свой форк
А мог бы игры делать.
Аноним 27/01/20 Пнд 08:19:52 639276174
>>639256
> он же только для тех кому лень в си подобные
Не только.
Аноним 27/01/20 Пнд 12:27:14 639324175
>>639261
А что ему рисовать? Хуи на стенах?
28/01/20 Втр 02:28:45 639415176
1566274700193.png (98Кб, 791x605)
791x605
>>639201
Навигация по элементам есть, как можно заметить и в левом нижнем углу по списку, так и подчеркивание гиперссылок при наведении мышки +ctrl
Ночной ПРОтип - чтобы автодополнение работало, надо подсказать ему кастом типа через "as ИмяТипа" как выделено строчкой выше. Динамический язык же.
Аноним 28/01/20 Втр 08:35:30 639443177
Бампусики.
Аноним 29/01/20 Срд 03:09:36 639619178
goodneighborscc0.png (1Кб, 192x96)
192x96
Бывает, попадется годный моноширинный битмапный фонт, а как вставить в Годот непонятно, надо качать какую то левую тулзу BMFont, конвертировать шрифт в ttf, потом там ручками размечать 100500 букв...
На самом деле все оказалось намного проще, надо просто добавить в проект картинку шрифта, и вот такой файл, сохранить с расширением .fnt
Потом просто загрузить текстовому контролу этот fnt в свойстве custom fonts (он определится как битмапфонт).
Чтобы картинка осталась пикселизированой, выбрать картинку в проекте, открыть у нее вкладку import, убрать галочку с filter, и нажать reimport.
Вся эта ботва также работает с юникодом, id это просто десятичный код символа.
В конце прилагаю скрипт на питоне для генерации по своим размерам. Заменить ✶ на звездочки.
===
goodneighbors_cc0.fnt
===
info face="FontName" size=16 bold=0 italic=0 charset="" unicode=1 stretchH=0 smooth=1 aa=0 padding=0,0,0,0 spacing=0,0 outline=0
common lineHeight=16 base=16 scaleW=192 scaleH=96 pages=1 packed=0 alphaChnl=0 redChnl=0 greenChnl=0 blueChnl=0
page id=0 file="goodneighbors_cc0.png"
chars count=96
char id=32 x=0 y=0 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=33 x=12 y=0 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=34 x=24 y=0 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=35 x=36 y=0 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=36 x=48 y=0 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=37 x=60 y=0 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=38 x=72 y=0 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=39 x=84 y=0 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=40 x=96 y=0 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=41 x=108 y=0 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=42 x=120 y=0 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=43 x=132 y=0 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=44 x=144 y=0 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=45 x=156 y=0 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=46 x=168 y=0 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=47 x=180 y=0 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=48 x=0 y=16 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=49 x=12 y=16 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=50 x=24 y=16 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=51 x=36 y=16 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=52 x=48 y=16 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=53 x=60 y=16 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=54 x=72 y=16 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=55 x=84 y=16 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=56 x=96 y=16 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=57 x=108 y=16 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=58 x=120 y=16 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=59 x=132 y=16 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=60 x=144 y=16 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=61 x=156 y=16 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=62 x=168 y=16 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=63 x=180 y=16 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=64 x=0 y=32 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=65 x=12 y=32 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=66 x=24 y=32 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=67 x=36 y=32 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=68 x=48 y=32 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=69 x=60 y=32 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=70 x=72 y=32 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=71 x=84 y=32 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=72 x=96 y=32 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=73 x=108 y=32 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=74 x=120 y=32 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=75 x=132 y=32 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=76 x=144 y=32 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=77 x=156 y=32 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=78 x=168 y=32 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=79 x=180 y=32 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=80 x=0 y=48 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=81 x=12 y=48 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=82 x=24 y=48 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=83 x=36 y=48 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=84 x=48 y=48 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=85 x=60 y=48 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=86 x=72 y=48 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=87 x=84 y=48 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=88 x=96 y=48 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=89 x=108 y=48 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=90 x=120 y=48 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=91 x=132 y=48 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=92 x=144 y=48 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=93 x=156 y=48 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=94 x=168 y=48 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=95 x=180 y=48 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=96 x=0 y=64 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=97 x=12 y=64 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=98 x=24 y=64 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=99 x=36 y=64 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=100 x=48 y=64 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=101 x=60 y=64 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=102 x=72 y=64 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=103 x=84 y=64 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=104 x=96 y=64 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=105 x=108 y=64 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=106 x=120 y=64 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=107 x=132 y=64 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=108 x=144 y=64 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=109 x=156 y=64 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=110 x=168 y=64 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=111 x=180 y=64 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=112 x=0 y=80 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=113 x=12 y=80 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=114 x=24 y=80 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=115 x=36 y=80 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=116 x=48 y=80 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=117 x=60 y=80 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=118 x=72 y=80 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=119 x=84 y=80 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=120 x=96 y=80 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=121 x=108 y=80 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=122 x=120 y=80 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=123 x=132 y=80 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=124 x=144 y=80 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=125 x=156 y=80 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=126 x=168 y=80 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
char id=32 x=180 y=80 width=12 height=16 xoffset=0 yoffset=0 xadvance=9
===
gen_fnt.py
===
TABLE_W=16; TABLE_H=6; CHAR_W=12; CHAR_H=16; CHAR_STEP=9; FILE_NAME="goodneighbors_cc0.png" #TABLE_x = columns and rows in image; CHAR_x = char pixel dimensions; CHAR_STEP = how much pixels shift after printing one char
CHARSET=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ "
print("info face=\"FontName\" size=%s bold=0 italic=0 charset=\"\" unicode=1 stretchH=0 smooth=1 aa=0 padding=0,0,0,0 spacing=0,0 outline=0" % (CHAR_H))
print("common lineHeight=%s base=%s scaleW=%s scaleH=%s pages=1 packed=0 alphaChnl=0 redChnl=0 greenChnl=0 blueChnl=0" % (CHAR_H, CHAR_H, TABLE_W✶CHAR_W, TABLE_H✶CHAR_H))
print("page id=0 file=\"%s\"" % (FILE_NAME))
print("chars count=%s" % (TABLE_W✶TABLE_H))
loop_i_j=[print("char id=%s x=%s y=%s width=%s height=%s xoffset=0 yoffset=0 xadvance=%s" % (ord(CHARSET[I+J✶TABLE_W]), I✶CHAR_W, J✶CHAR_H, CHAR_W, CHAR_H, CHAR_STEP)) for J in range(0,TABLE_H) for I in range(0,TABLE_W)]
Аноним 29/01/20 Срд 03:22:26 639622179
>>639619
П.с. и картинка и код под лицензией CC0 (public domain) вдруг это неочевидно.
Аноним 29/01/20 Срд 09:01:23 639639180
>>639622
Спасибо, няша! Родина тебя не забудет.
Аноним 29/01/20 Срд 10:08:49 639648181
>>639253
> не знаю какую игру делать. я программист
Ты - треугольник.
Многоугольники охотятся за тобой.
Постигни искусство вертушки и заряди им в щщи!
https://www.youtube.com/watch?v=5CKJ4ulHO28
Аноним 29/01/20 Срд 10:47:30 639656182
1.PNG (8Кб, 506x261)
506x261
Анон, помоги. GetCollider возвращает Godot.Object, а что бы узнать группу нужен CollisionObject. Как кастовать не нашел. Как быть?
Аноним 29/01/20 Срд 10:57:22 639657183
>>639656
> Как кастовать не нашел. Как быть?
Попробуй не использовать var. Прописывай тип явно.
Spatial collider = raycast.GetCollider();
или
Node2D collider = raycast.GetCollider();
Поищи, есть ли в сборке шаблонизированная GetCollider<T>? Если есть юзай её, выводя нужные тебе типы.
Аноним 29/01/20 Срд 10:58:46 639658184
Аноним 29/01/20 Срд 11:06:51 639659185
>>639657
А смысл прописывать другой тип, если GetCollider в любом случае дает Object?
Аноним 29/01/20 Срд 11:08:45 639660186
>>639658
А вот за это спасибо, получилось
Аноним 29/01/20 Срд 11:11:42 639661187
>>639659
Он даёт тебе ссылку на экземпляр базового класса, иначе говоря, он даёт тебе ссылку на данные, но не предоставляет интерфейса. Чтобы получить интерфейс, ты должен ПРИВЕСТИ базовый класс к желаемому тебе дочернему. В ссылке на МСДН выше это всё объяснено.
>>639660
Пожалуйста! Обращайтесь в истинную веру!
Аноним 29/01/20 Срд 21:54:11 639791188
Как экспортнуть игру БЕЗ pack файла с ресурсами?
Чтобы спрайты лежали в папочках, можно было отредактировать их, перезапустить билд и они подтягивались.
Хочу отдать билд художнику побаловаться.
Аноним 29/01/20 Срд 22:02:01 639793189
>>639791
Шапку прочитай. ПРОСТО не экспотируй, а отдай проект + экзешник.
Аноним 29/01/20 Срд 22:04:12 639794190
>>639793
Не работает без редактора, видимо ресурсы дублируются в .import и не переимпортируются без запущенного редактора после изменения.
Аноним 29/01/20 Срд 22:06:16 639795191
>>639794
Ок. Пусть запустит godot -e в командной строке, он запустится в режиме редактора.
Аноним 29/01/20 Срд 22:10:26 639796192
15776318830450.png (309Кб, 427x700)
427x700
Аноним 29/01/20 Срд 22:15:53 639798193
>>639796
Понятно, думаю над решением проблемы.
Аноним 29/01/20 Срд 22:18:13 639799194
1580325492830.jpg (21Кб, 292x282)
292x282
>>639796
Блять, редактор прост, как швейцарский армейский нож. Хули твой художник так туп? Научи его открывать проекты в редакторе.
Аноним 29/01/20 Срд 22:21:45 639801195
>>639798
> думаю над решением проблемы
Да что тут думать? В одном из первых тредов приводил пример, как создавать текстуры в рантайме из внешних пикч. Только зачем анону ебаться с этими велосипедами, если проще и быстрее научить художника открывать проект в редакторе. Не сложнее, чем открыть кино в видеоплеере. Охуеваю с зумеров. Просто пиздец!
Аноним 29/01/20 Срд 22:39:15 639805196
>>639801
Но ведь поебаться с велосипедами это так по кайфу для бумеров. Я бы вообще взял класс image.cpp и на его основе сделал модуль-автоимпортилку при запуске, только времени нет
Аноним 29/01/20 Срд 22:46:44 639809197
>>639805
Чем дольше живёшь, тем больше понимаешь, что именно ВРЕМЯ - твоя главная ценность.
>>639796
> Слишком сложна
Сделай ему ярлык для автозапуска проекта. Или погоди, ему сложно или тебе?
Аноним 30/01/20 Чтв 01:18:25 639844198
Аноним 30/01/20 Чтв 01:32:53 639845199
>>639844
Уже собрал, и уже вылетела разок.
Аноним 30/01/20 Чтв 07:09:24 639859200
>>639844
в чем смысл делать видео состоящее из скрола статьи?

и его еще и лайкают - что с людьми не так? открыть статью никак, надо ее смотреть через ютуб?
Аноним 30/01/20 Чтв 07:19:59 639861201
>>639859
На безрыбье и рак рыба, так что соси хуй
Аноним 30/01/20 Чтв 07:30:11 639863202
>>639859
Зумеры же. Клиповое мышление. Для нас бумеров там ссылка на статью в описании.
Аноним 30/01/20 Чтв 09:12:01 639872203
>>639861
на каком безрыбье? Ты можешь открыть саму статью и за пять минут все нужное прочесть.
Ну или открыть получасовой видос чтобы посмотреть на эту же статью под гундявого картавого петросянящего тянущего диктора.

Мой выбор очевиден - я прочел статью...
Но вот мир почему-то выбирает видосы (сейчас увидел такое же зачитывание патчноута по вышедшему юнити 2019.3 - прям в таком же формате - что-то там туда-сюда скросит в патчноуте)


меня просто шокирует эта мода на видосы.. Особенно по программированию - это же пиздец как уныло учиться программированию по видео: то что пишется за 5 минут, в видосе мусолится по полчаса
(люди реально тратят 28 минут жизни на то чтобы узнать как писать цикл for на C#? они больные?
Аноним 30/01/20 Чтв 09:14:40 639873204
>>639872
>на каком безрыбье?
Ну накинь еще каналов для индюков, про обзоры всяких юнити и пэйнтеров и годотов, даун. Увидел один ролик и начал недовольно пердеть ртом, уебок.
Аноним 30/01/20 Чтв 09:24:34 639876205
>>639872
Видосы - это интернет-аналог лекций в вузике. Не нравится - не смотри. Но от видосиков уже не уйти. Их популярность будет только расти.
Аноним 30/01/20 Чтв 09:27:48 639877206
>>639876
Жрать говно тоже становится популярным и от этого не уйти.
Аноним 30/01/20 Чтв 09:45:17 639878207
1580366716243.png (71Кб, 1019x709)
1019x709
1580366716985.png (32Кб, 519x492)
519x492
Посаны. Посоветуйте вариантов оптимальных. Есть одна программа на годоте, которую я пишу лениво уже второй год. Именно программа, не игра. Конструктор диалогов. Может, кто помнит?
Так вот. В моём так сказать "роад-мапе" заложено, что выводить готовые диалоги программа сможет либо в жсон-файлы, либо в БД. И вот по жсон-файлам у меня возникла идея, как бы прикрутить к этому делу схемы? Мне не нравится, что сейчас у меня структура выходного файла прибита гвоздями к коду. Я хочу, чтобы у меня в отдельной панели настроек имелась схема, в которой описывались бы элементы выходного файла и их поля. Согласно этой схеме строился бы интерфейс ввода данных в диалог и конечно же строился бы сам выходной файл. При загрузке сохранённого файла, он бы загружался по схеме и предупреждал о несоответствии. Схемы предполагаю хранить в отдельных файлах в директории конфига программы. Я в принципе не вижу никаких непреодолимых препятствий сделать это всё, однако предлагаю обсудить паттерны и подходы для реализации этого. Ну, чтобы не изобретать велосипедов. Буду рад не только постам, но и полезным ссылкам.
Аноним 30/01/20 Чтв 09:50:22 639879208
>>639878
Занимаешься хуйней без задач уже два года.
Достаточно просто сделать загрузку диалогов из файла, и писать их ручками в json/yaml, зачем тратить годы на визуальный редактор?
Давно бы уже игру доделал за это время, и сейчас бы лежал в гамаке на Багамах.
Аноним 30/01/20 Чтв 09:52:33 639880209
>>639879
> Достаточно просто сделать загрузку диалогов из файла, и писать их ручками в json/yaml
Я посмотрю на тебя, как ты будешь для эрпогэ на 50+ часов геймплея писать разветвлённые диалоги с несколькими концовками и перекрёстными ссылками, в зависимости от этапов игры. Ручками. В блокноте.
Аноним 30/01/20 Чтв 09:58:47 639881210
>>639876
>Видосы - это интернет-аналог лекций в вузике.
не аналог:
- преподаватели готовятся к лекциям а не "ну эм наверное тут вот так почему то не работает".
- у них есть к этому способности и навыки
- есть живое общение (ради которых лекции и существуют)
- всё равно учатся по учебникам, а не маханиям рук преподавателя перед доской. преподаватель объясняет непонятные вещи из учебника, а не учит с нуля.


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

видосы это телешоу, а не обучение. И те кто хотят учится по видосам - на самом деле не хотят, им нужно только зрелище (ну там поржать над шутками автора и т.д.)
Аноним 30/01/20 Чтв 09:59:30 639882211
>>639879
И это не визуальный редактор, а классический, по паттерну "master-detail".
Аноним 30/01/20 Чтв 10:02:29 639883212
>>639880
> Ручками. В блокноте.
Именно так, только не в блокноте, а в vscode, с подсветкой, поиском, сворачиванием блоков и прочими фичами. И делать буду естественно не один файл на 100000 строк, а буду разбивать на отдельные маленькие файлы для каждого персонажа/катсцены. Я же не долбоёб.
> для эрпогэ на 50+ часов
Ты сначала сделай хотя бы игру на пару часов геймплея. У тебя за два года вышло 0 часов геймплея, ты с такими темпами 50 часов за остаток жизни не доделаешь.
Аноним 30/01/20 Чтв 10:02:49 639884213
>>639881
> преподаватели готовятся к лекциям а не "ну эм наверное тут вот так почему то не работает"
жыды-квест готовится к своим видосам. Не равняй под одну гребёнку всех. Обидно, конечно, что русскоязычные ютуб-лекторы мычат. Селяви.
> есть живое общение
В комментариях.
> всё равно учатся по учебникам
Спорим об одном и том же. На лекции послушал общую инфу, обсудил. И идёшь учить матчасть по учебникам. Никто и не спорит.
Аноним 30/01/20 Чтв 10:04:40 639885214
>>639883
Лучше день потерять, а потом за пять минут долететь (С)
Аноним 30/01/20 Чтв 10:07:11 639886215
>>639881
Ты пидар тупой, я тебе написал, что у него есть подробные уроки с разбором движков, а это просто новости кто сам не мониторит.
Аноним 30/01/20 Чтв 10:07:30 639887216
>>639885
Но ты потерял не день, а два года, за которые вполне можно было сделать полноценную игру.
Аноним 30/01/20 Чтв 10:46:20 639890217
>>639887
Вот щас бы воспринимать поговорки буквально. Это ты что ли тут топишь за ютуб-туториалы вместо нормального обучения?
Аноним 30/01/20 Чтв 11:13:48 639894218
>>И идёшь учить матчасть по учебникам. Никто и не спорит.
но в видео уроках не так. Типа - посмотрел видосы и уже типа все умеешь

>>639884
>что русскоязычные ютуб-лекторы мычат
зарубежные тоже не ок - вечно восторженно взахлеб базарят- уши режет. А еще их вечная английская лыба....
https://www.youtube.com/watch?v=AD4JIXQDw0s

Аноним 30/01/20 Чтв 11:15:02 639895219
Аноним 30/01/20 Чтв 11:15:50 639896220
>>639886
>что у него есть подробные уроки с разбором движков
то что я у него на канале посмотрел - это не обзоры движков, это именно зачитывание чужих статей, плюс пара тыков мышкой иногда.
Аноним 30/01/20 Чтв 11:28:39 639897221
>>639896
Потому что ты слепой уебан .
Аноним 30/01/20 Чтв 11:53:46 639901222
>>639895
>>А мог бы игры делать...
ну конечно же ты еще можешь смотреть 80 часов видео по json-schema вместо одного учебника
Аноним 31/01/20 Птн 00:54:57 640020223
>>639845
Ох я проебался. Оказывается я из мастера выкачал уже 4.0.dev, а не 3.2.
Аноним 02/02/20 Вск 22:35:42 640652224
Анончик. Поясни, пожалуйста, что за беда с производительностью при экспорте под андроид. Честное слово, заебался уже экспериментировать.
Беру простой чисто 2Д платформер, рисую карту в tiled экспортирую в проект как набор tilemap'ов. Далее, если экспортировать под пека, выдает стабильные 60фпс, почти на чем угодно. Если же экспортирую под android или html5, то получаю дикие лаги с падением fps до 20 и ниже. Если вместо тайлмапов, просто кидать большую текстуру (экспортирую карту из tiled'а как один большой png), тогда все работает почти нормально. В html получаю fps = 60 (проседания только если еще несколько страниц в браузере открывать), в андроиде же все равно fps не стабилен где-то в районе 50-60fps. Причем на разных устройствах по разному. Причем на более слабых иногда даже больше бывает, чем на более мощных. При том что дело именно в отрисовке, на рассчет одного физического фрейма уходит максимум 0.004с, даже если физику выкрутить на 120). Сразмерами чанков тайлмапов пробовал играться, ни на что не влияет.

Можно ли вообще добиться стабильных 60fps на андроиде и как под это дело проект оптимизировать?

Аноним 02/02/20 Вск 22:37:43 640653225
>>640652
Пробовал тайлмапы создавать не в tiled'е, а непосредственно в годоте - та же самая фигня.
Сам тайлсет если, что идет единым атласом.
Аноним # OP 03/02/20 Пнд 00:32:34 640667226
>>640652
Андроидопроблемы.
Не рекомендую делать игры для андроида. Делая игры на проприетарный гуглозондовый андроид, ты предаёшь своих пекабратьев. Отлучаю тебя от церкви ГНУ ЖОПАЕЛЬ, отступник. Пиздуй нахуй. Навсегда.
Аноним 03/02/20 Пнд 03:49:18 640671227
Аноним 03/02/20 Пнд 05:51:05 640675228
>>640671
Ну вообще изначально планировал пару слоев параллаксного бэкграунда. Плюс 3-4 слоя самой карты. Плюс слой фореграундного параллакса. Но смысл в том, что данная проблема появляется даже при наличии всего одного тайлмапа на сцене.
Т.е. даже если я сделаю кучу слоев но большими текстурами/картинками - то производительность в принципе норм и держится близко к 60 fps (на одном слабом старом девайсе, даже, каким-то образом, показало 66fps при включенном vsynce, я х.з. как такое может быть). Как только заменяю хотя бы один слой карты на тайлмап, фпс тут же проседает до 20-ки. Даже на достаточно мощных устройствах.

В поиске нашел только вот такие тикеты:
https://github.com/godotengine/godot/issues/7885
https://github.com/godotengine/godot/issues/26620
Но в них нихера решения нету.
Аноним 03/02/20 Пнд 11:45:30 640710229
Вышел 3.2, а вы про него ничего не пишите.
Совсем все плохо?
Аноним 03/02/20 Пнд 11:53:25 640711230
>>640710
Мы игры делаем, а не пиздим в тредах попусту.
Аноним 03/02/20 Пнд 11:59:14 640715231
>>640711
Да, игр полон тред.
Аноним 03/02/20 Пнд 12:14:48 640720232
>>640710
1) Для тех кто использует плагин для импорта тайлмапов из tiled'a. При переходе на godot 3.2 все ваши карты пойдут по пизде, но поправить это несложно.
Ищете в вашем проекте следующий файл скрипт:
\addons\vnen.tiled_importer\tiled_import_plugin.gd
В нем находите строку:
options.apply_offset = true и меняете на false
Затем очищаете каталог .import и открываетет проект заново. Все должно быть нормально.

2) Так же если вы используете touchscreenbutton с текстурами на кнопках и какой-нибудь формой в свойстве shape с флагом centered, то будьте готовы, что выши контролы уедут в сторону. Т.е. shape будет отображаться по центру текстуры в редакторе, а вот реагировать она будет как будто она в левом верхнем углу. В бестекстурных кнопках такого не наблюдается.

Это то, что вылезло на моих проектах. Может есть еще какие-нибудь подводные камни, я хз.
Аноним 03/02/20 Пнд 13:18:07 640730233
>>640675
А какая версия годота, 3.1 хотя бы? Какой рендерер, gles2? Скрипты что то с тайлами делают или ты только рендер тестишь?
Аноним 03/02/20 Пнд 19:24:37 640776234
>>640720
>Обновляться во время работы над серьёзным проектом
Ну такое.

А вообще, осенью интересовался тайледом, но не понял, чем он лучше встроенного редактора. Обесните плиз.
Аноним 03/02/20 Пнд 19:29:24 640778235
>>640720
> Это то, что вылезло на моих проектах. Может есть еще какие-нибудь подводные камни, я хз.
На моём проекте вылезло вот что: Я использовал неявный каст StreamTexture на ImageTexture и в 3.1. вопросов не было, а в 3.2. мне показало ошибку компиляции. Видимо, типизацию доработали.
Аноним 03/02/20 Пнд 23:05:12 640838236
>>640776
>>Обновляться во время работы над серьёзным проектом
>Ну такое.
А что такого. Проект все равно под контролем версий, миграция отдельной веткой идет, откатить назад вообще не проблема, тем более, что по факту изменения мизерные.

>А вообще, осенью интересовался тайледом, но не понял, чем он лучше встроенного редактора. Обесните плиз.
Возможностей редактирования карты в разы больше. Намного удобнее встроенного редактора. Во встроенном редакторе можно накидать простенькую карту, но вот если захочешь ее изменить, то это будет боль.
Аноним 03/02/20 Пнд 23:09:31 640839237
>>640838
> Возможностей редактирования карты в разы больше. Намного удобнее встроенного редактора.
Пойду ещё раз пересмотрю туториалы. Может я с наскока чего-то недопонел.
Аноним 03/02/20 Пнд 23:13:04 640841238
>>640730
Был 3.1 сейчас 3.2 - сэйм щит.
Gles 2. Пробовал 3-й - результат был может быть на пару кадров лучше.
Скрипты с картой ничего не делают. Только персонаж по ней гуляет туда сюда и все. Физика стандартная платформенная.

Завтра прогоню пару тестов с разными вариантами и подробнее распишу, что и как с цифрами.
Аноним 03/02/20 Пнд 23:13:06 640842239
>>640838
А еще по плагину поясни. Он экспортирует полностю готовую карту или мне всё равно придётся ебаться с настройкой коллизий, окклюзий света, навполигоном?
Аноним 03/02/20 Пнд 23:28:48 640846240
>>640842
Уже сам загуглил.
Аноним 03/02/20 Пнд 23:38:45 640851241
>>640841
> Физика стандартная платформенная.
Коллижн шейпы у тайлов? Хотя вроде ты пишешь физика не тормозит. А клетки какого размера?
Вообще про твою проблему пишут много, пробуй менять квадрант, они же чанки (начни с 16 или 32, или 8), ставить целочисленные camera zoom, подумай над увеличением размера клетки (меньше клеток на экране = быстрее), отключи Ysort если без него можешь обойтись. Пока не знаю что еще посоветовать. Можно включить сжатие тектур, но вряд ли поможет.
Аноним 04/02/20 Втр 02:02:55 640857242
Аноним 04/02/20 Втр 03:10:13 640858243
>>636602
Да тяжело понимаю. но твоя жопа теперь в полной их власти
Аноним 04/02/20 Втр 05:37:06 640863244
>>636581
Ну и нахрена это надо, когда есть б-жественный итч.ио, на который можно билды заливать по одному клику мыши и вдобавок тебе не будут тыкать пачкой говнорекламы в лицо сходу с главной страницы?
Аноним 04/02/20 Втр 08:18:13 640872245
>>640857
Я верил и верю в годот!
Аноним 04/02/20 Втр 08:34:04 640875246
>>640851
>Коллижн шейпы у тайлов? Хотя вроде ты пишешь физика не тормозит.
Все коллижен шейпы идут отдельным слоем, и не привязаны к тайлам. Формы у всех либо прямоугольники, либо трапеции с редкими закруглениями.

>Вообще про твою проблему пишут много,
Пишут то много, а вот решения нет. Судя по github'у они просто пересылают друг друга от тикета к тикету и никто решением не занимается.

>пробуй менять квадрант, они же чанки (начни с 16 или 32, или 8),
Пробовал, не дает эффекта при минмальном 8 и максимальном 128 эффект одинаковый.
>ставить целочисленные camera zoom,
Не использую, везде один к одному.

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

>отключи Ysort если без него можешь обойтись.
не использую, слои просто разнесены по разным Z level'ам

>Можно включить сжатие тектур, но вряд ли поможет.
Не пойдет - пиксельарт
---------------

Погонял сегодня разные варианты, получаются вот такие цифры:

1)Карта нарисована тайлмапами
режим stretch 2D = 10...15fps
режим stretch Viewport = 15...20fps

2)Карта сделана несколькими большими текстурами
режим stretch 2D = 35...40fps
режим stretch Viewport = 50...60fps (c периодическими падениями до 45)
-------
Физика работает отлично, максимум на один физический фрейм уходит 0.005сек (при 120 фреймах в секунду), инпут лага нету. Т.е. затык именно в отрисовке.
-------
На компе во всех режимах стабильные 60fps
-------
Похоже придется делать по последнему варианту. Написать скрипт для tiled'а, чтобы он автоматом сохранял мне каждый слой карты в отдельную картинку, и из них уже сцену лепить. Плюс возможно сделать в настройках опцию для залочивания FPS на 40 или 30 (это кстати вообще возможно в годоте? ), чтобы не было рывков, т.к. насколько я понял добиться постоянных 60fps от андроида почти нереально.
Аноним 04/02/20 Втр 08:34:45 640876247
>>640857
Годот стал сучкой Эпик Геймсов. Хааааааааааа.
Аноним 04/02/20 Втр 08:43:19 640877248
>>640875
Погоди, я немного недопонел. А ты пробовал делать стандартные тайлмапы и тестить их в андроиде? Может там сами тайлмапы тормозят и tiled не при чём вообще?
Аноним 04/02/20 Втр 08:44:37 640879249
>>640876
В срачетреде вчера уже обсудили. УЕЧ будет с годоскриптом! Hell YEAH!!
Аноним 04/02/20 Втр 08:46:30 640880250
>>640877
Да пробовал. Такая же фигня. Тем более что из tiled'а они как раз в стандартные тайлмапы и импортируются.
Аноним 04/02/20 Втр 08:48:50 640881251
>>640880
То есть, tiled и tiled exporter не при чём и их не нужно указывать в гугле при поиске решения. Тормозят сами тайлмапы.
Аноним 04/02/20 Втр 09:11:17 640883252
>>640881
Да.
---
Попробовал на gles3 переделать. Та же фигня. В некоторых вариантах даже на 5...10fps порисовка падает.
Аноним 04/02/20 Втр 09:25:50 640884253
>>640883
Мобильные процессоры какие-то странные. Вроде мощ есть. Но в ряде задач они дичайше тормозят. По видимому реализация тайлмапа как раз использует такие подходы, которые ОК для классической архитектуры пека и неподьёмны для мобильной. Я честно говоря, не особо разбираюсь в железе, так что могу посоветовать только отказаться от использования тайлмапов. Конструируй тайлмапы и конверитруй их в картинки. Юзай спрайт для помещения картинки целиком на игровое поле. Интерактивные объекты делай отдельными спрайтами.

И ещё к тебе просьба, попробуй собрать бенчмарк тайлмапов от анона из прошлых тредов под андроид и замерить фпс https://govdot.herokuapp.com/4Anon.rar
Аноним 04/02/20 Втр 13:32:18 640918254
>>640875
>Пробовал, не дает эффекта при минмальном 8 и максимальном 128 эффект одинаковый.
А 16 и 32 пробовал?
Аноним 04/02/20 Втр 14:41:00 640928255
>>640875
Ладно вот такой вопрос - а какой у тебя аппарат и сколько у него RAM (в идеале сколько свободной).
Аноним 04/02/20 Втр 14:51:15 640932256
Аноним 04/02/20 Втр 15:02:06 640933257
>>640932

> Godot 2D performance is usually bottlenecked by the methods used with OpenGL, there are currently drawcalls per quad.

> drawcalls per quad.

Я слышал, конечно, что говнотя это плохо, но не ожидал, что настолько.

У меня нет слов.

Аноним 04/02/20 Втр 15:06:10 640934258
>>640933
Иди нахуй, толстяк.
Аноним 04/02/20 Втр 15:10:43 640936259
>>640934

Понимаешь.

В универе, сука.

Первокуры дебилы.

На OpenGL 1.0 с его glVertexf2/3

УЖЕ, БЛЯДЬ, ДОГАДЫВАЛИСЬ ЧТО МОЖНО, СУКА ПОЛОЖИТЬ ВСЕ ТАЙЛЫ В ОДНУ ТЕКСТУРУ А К ВЕРШИНАМ КВАДОВ-СПРАЙТОВ ПРИДЕЛАТЬ, БЛЯДЬ, ТЕКСТУРНЫЕ КООРДИНАТЫ И ХУЯРИТЬ ВСЕ КВАДЫ СРАЗУ.

Аноним 04/02/20 Втр 15:14:06 640937260
>>640936
Лучшее в мире советское образование, охоспаде. Оно было недоступно Хуану. Но на то и опенсорц - братушки из России подтянутся и пофиксят баги, а Хуанчик помержит.
Аноним 04/02/20 Втр 15:16:08 640938261
123
Аноним # OP 04/02/20 Втр 15:17:35 640940262
>>640938
Я сегодня добрый.
Аноним 04/02/20 Втр 15:21:16 640944263
>>640940

Еще бы, такой обсёр, его еще месяца два в срачетреде поднимать на знамя боротьбы с говнотей будут.
Аноним 04/02/20 Втр 15:24:46 640947264
>>640936
1. Это не опенжл 1.0.
2. Ты вырвал фразу из контекста, не понимая как работает движок. Мнение о том как вася написал бы хеллоу ворлд очень важно для нас.
Аноним 04/02/20 Втр 15:26:59 640949265
>>640944
Тебе обсёр, а мне пиар и известность. Учись сынок, как делать просмотры на дизлайках.
Аноним 04/02/20 Втр 15:31:10 640951266
>>640947

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

Даже в говномамонтном опенгле, в котором не поддерживается этот ваш инстансинг и мультидров.
Аноним 04/02/20 Втр 15:35:38 640954267
>>640947

>2. Ты вырвал фразу из контекста, не понимая как работает движок. Мнение о том как вася написал бы хеллоу ворлд очень важно для нас.

Движок работает как дебил, если он рисует 1 тайл за один дравкол.
Аноним 04/02/20 Втр 15:39:22 640955268
>>640951
Вась, я понимаю что ты увидел знакомое по хеллоу ворлду слово дравкол, и возбудился, но тайлмапы и так рисуются одним квадом, а то что ты там себе выдумал это дело десятое, еще раз повторю, что ты нихуя не понял сути пулл реквеста, который просто кеширует на стороне движка больше данных, чтобы меньше времени тратить на переключении состояний.
Аноним 05/02/20 Срд 07:29:17 641076269
1.png (517Кб, 1440x720)
1440x720
2.png (881Кб, 1440x720)
1440x720
3.png (493Кб, 1440x720)
1440x720
4.png (844Кб, 1440x720)
1440x720
>>640884
>Конструируй тайлмапы и конверитруй их в картинки. Юзай спрайт для помещения картинки целиком на игровое поле. Интерактивные объекты делай отдельными спрайтами.

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

Экспортнул проект 4anon под андроид в двух видах
Один под разрешение 1440x720, второй под 720х360 с растягиванием через viewport
(Проект не переделывал, просто в настройках изменил разрешение и передвинул контролы, чтобы они попадали в экран)
Экспортировал с debug-keystore

Результаты на пиках:
Для версии с меньшим разрешением рузультаты на 5-10 fps в первых двух сценах лучше, в сцене с тайлмапом - всего на пару кадров больше.
Аноним 05/02/20 Срд 07:30:44 641077270
5.png (479Кб, 1440x720)
1440x720
>>640884
>>641076

Это с тайлмапом, тут вообще все печально 7-8 fps. Т.е в нинешнем виде для андроида тайлмапы совсем не подходят.
Аноним 05/02/20 Срд 07:31:30 641078271
>>640918
>А 16 и 32 пробовал?
Да, пробовал

>>640928
>Ладно вот такой вопрос - а какой у тебя аппарат и сколько у него RAM (в идеале сколько свободной).

проц: Mediatek MT6739 - 4x ARM Cortex-A53 @ 1.30Ghz
GPU: PowerVR Rogue GE8100
Разрешение 1440x720
Обьем встроенной памяти 16Гб (на момент запуска свободно >2Гб)
Обьем оперативки 2Гб (на момент запуска свободно 880 Мб)
Андроид 8.1.0

Аноним 05/02/20 Срд 07:41:15 641080272
>>640932
>В общем, надо подождать, чувак сделавший порталы, уже делает батчинг

Я посмотрел его изменения в коде, и меня сомнения мучают, Судя по коду и комментам выглядит так будто он просто следит пришла ли команда на смену текстуры в opengl и сравнивает ее с предыдущей, и если новая текстура совпадает со старой, то просто отменяется смену.
Я не спец в opengl и вообще, объясните кто разбирается - я правильно понял или я мудак и там что-то более толковое?
А то если я все-таки правильно понял, то это как-то совсем костыльно выглядит.
Аноним 05/02/20 Срд 08:19:48 641084273
>>641080
>Я не спец в opengl и вообще, объясните кто разбирается - я правильно понял или я мудак и там что-то более толковое?
это называется кешированием стейта. И да, оно толковое. Любое изменение стейта дергает видеокарту - это дорого. И видеокарта настолько тупа что без этого будет менять стейт даже если он такой же как уже установлено

Поэтому сначала придумали батчинг - чтобы одинаковые стейты сортировать по пакетам

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

(ну а потом придумали что все стейты надо ставить один раз и больше не трогать, появился термин pipeline и родились вулканы и дк12, где это легко в основу философии)





Аноним 05/02/20 Срд 08:26:18 641085274
>>641084
Ок. Понял, я мудак. Спасибо за разъяснение.
Аноним 05/02/20 Срд 08:35:34 641088275
>>641085
Твои подозрения обоснованны. Ты сам того не ожидая, вскрыл самую болезненную тему всего опенсорца в целом. Видишь ли, чтобы выкладывать исходники под открытой лицензией, надо понимать, что ты выбрасываешь на ветер труд, за который мог бы получать деньги. Мы, к сожалению не при коммунизме живём, и кушать за что-то надо. Поэтому в опенсорце есть два вида сорцев: спонсируемые и фанатские.
Со спонсируемыми всё ясно. Разрабу платит бабло крупная фирма, он делает проект и ему помогает сообщество. Выгоду имеют все. Разраб имеет хлеб с маслом. Корпорация имеет бесплатный софт, на разработку которого может влиять. Сообщество имеет бесплатный софт и дополнительную денежку на хлеб с маслом ибо любимый софт бесплатен, и в этот софт можно вносить правки и фиксы.
А фанатские сорсы часто пишутся фанатиками опенсорца, никем не спонсируются, фанатики живут на хлебе и воде (и бородавках с пяток). И частенько такие фанатии - поехавшие. И частенько они пишут костыли и на полном серьёзе считают их венцом творения.

Как мы видим по новостям, годот плавно перемещается от состояния поделки фанатика Хуана к профессиональному опенсофту под крылом майкрософта и эпиков.
Аноним 05/02/20 Срд 09:00:30 641093276
>>641088
>Как мы видим по новостям, годот плавно перемещается от состояния поделки фанатика Хуана к профессиональному опенсофту под крылом майкрософта и эпиков.
И к чему этот дурацкий вывод? Хуан всегда пилил годот профессианально за деньги.
Аноним 05/02/20 Срд 10:21:31 641097277
>>641088
>Как мы видим по новостям, годот плавно перемещается от состояния поделки фанатика Хуана к профессиональному опенсофту под крылом майкрософта и эпиков.
А кто возьмется переписывать тысячи строк Хуановского говнокода, которые уже сейчас делают годот непригодным для разработки игр?
Аноним 05/02/20 Срд 10:24:30 641098278
>>641093
>пилил годот профессианально
Ага, профессиональные 7 фпс запилил, охуеть просто >>641077
Такую сценку еще древние движки из нулевых типа HGE запросто выводили со стабильными 60 фпс, а годотя не может.
Аноним 05/02/20 Срд 10:27:43 641099279
>>641097
У корпораций есть такой трудовой ресурс. Надо будет - пригонят индусов. Всё решаемо. Модуль за модулем с сохранением интерфейса перепишут. При этом новые модули будут с новым интерфейсом. Старый интерфейс пометят как deprecated и оставят для совместимости на пару мажорных версий.
В большом бизнесе всё решаемо.
Аноним 05/02/20 Срд 10:43:14 641102280
>>641098
Вопрос не в качестве кода, олень, а в том платят деньги разрабу или, нет. Хуангу и так платили, что должно измениться, он перестанет срать кодом?
Аноним 05/02/20 Срд 10:46:02 641103281
>>641099
У майкрософта уже есть бабилонджиэс, нахуй им годот, а эпики задонатили так крошки. Блендеру 3кк, хуангу 0.25кк.
Аноним 05/02/20 Срд 14:31:50 641141282
>>641077
Анон, анооон! А попробуй ещё экспортнуть в хтмл5 и запустить на андроиде. Тоже так всё печально будет?
Цель: выяснить источник тормозов на андроиде, аппаратный или софтварный
Аноним 05/02/20 Срд 15:08:08 641150283
>>641109
В по/рашу, хохлозависимый
Аноним 05/02/20 Срд 15:08:39 641152284
>>641141
В одном из issues попадалось, что тормоза тайлмапа возможно из-за неправильнного выделения памяти, соответственно если у него тайлмапы сжирают 400 метров, а всего на старте свободно 800, то возможно память просто закончилась совсем.
Аноним 05/02/20 Срд 16:26:03 641170285
>>641152
Запустил ща пример с изометрической тайлмапой в линуксе. Занимает 60 мегов.
Аноним 05/02/20 Срд 16:36:27 641173286
>>641170
Там зависимость от количества клеток (т.е. обратно пропорционально размеру клетки), так какой то китаец писал, сам я не тестил.
Аноним 05/02/20 Срд 17:40:12 641195287
1580913611605.png (5Кб, 898x28)
898x28
>>641173
Окей, скачал и запустил 4анон. Всё равно немного 84 мега. Нужны данные с андроида.
Аноним 06/02/20 Чтв 00:23:46 641369288
>>635427 (OP)
ладно окей, сажусь на годот для своей изометрической игоры
Аноним 06/02/20 Чтв 05:31:45 641392289
>>641141
Мне лень конвертировать 4anon и заливать его на сервак, поэтому я проверил на своем проекте >>640875 который у меня уже залит.
Запускал на том же телефоне в хроме.
С картой картинками - 10...15FPS, с картой тайлами 5...10FPS. Плюс очень долгая загрузка.
Аноним 06/02/20 Чтв 08:08:15 641413290
Аноним 06/02/20 Чтв 10:43:12 641439291
Аноним 06/02/20 Чтв 10:48:32 641441292
>>641439
Хаха, знатно потроллил хейтерков. Молодец, Хуан!
Аноним 06/02/20 Чтв 11:03:21 641448293
>>641441
>потроллил
В каком месте?
Аноним 06/02/20 Чтв 11:04:09 641449294
>>641441
Никаких хейтерков нет. Есть люди, которые хотят пользоваться движком, но недовольны низкой производительностью. Как движка, так и разработчиков.
Аноним 06/02/20 Чтв 11:27:59 641464295
>>641439
Наверное для тебя это будет открытием, но все люди мыслят по разному, есть те, кто действительно не представляют себе визуальные образы, а воспринимают все как логические цепочки.
Аноним 06/02/20 Чтв 11:29:14 641465296
>>641449
> недовольны низкой производительностью
Дак пусть не делают эрпогэ с открытым миром и корованами. Рано ещё. Мини-игры пусть делают и не бугуртят.
Аноним 06/02/20 Чтв 11:31:47 641468297
>>641464
Двачую. И как же здорово, когда два таких человека объединятся, один с образами и второй с логикой.
Аноним 06/02/20 Чтв 11:42:02 641469298
>>641468
И ебут друг друга в жоппы
Аноним 06/02/20 Чтв 11:56:16 641471299
>>641439
"Видеть" музыку - признак аутизма
Аноним 06/02/20 Чтв 12:03:33 641472300
>>641465
Я вот хотел сделать на андроид тетрис на тайлмапах, но похоже не выгорит.
Аноним 06/02/20 Чтв 13:47:14 641480301
>>641472
Да, да. А ещё ты на нём денег поднять хотел. А ещё ты не тролль, и не хейтерок.
Аноним 06/02/20 Чтв 16:02:00 641494302
>>641464
>есть те, кто действительно не представляют себе визуальные образы, а воспринимают все как логические цепочки.
Нет.
Аноним 06/02/20 Чтв 16:10:31 641496303
>>641480
А вот и не угадал, я хочу запилить несколько игрушек под GPL в F-Droid, а то там пустовато, а потом хвастаться количеством устанровок Годота.
Аноним 06/02/20 Чтв 16:11:13 641497304
>>641494
Есть. Я лично видел таких в 2000х на форумах с регистрацией.
Аноним 06/02/20 Чтв 16:15:05 641499305
>>641496
Блять, для тетриса не нужен высокий фрейм рейт. Ну по крайней мере на начальных этапах игры, когда скорость низкая. Но уж тайлмап точно не обязателен. Двигай фигуры по координатам, кратным длине квадрата из которого фигуры состоят. Мой Тетрис на тайлмапе, но исключительно по причине удобства. Можно и без него.
Аноним 06/02/20 Чтв 16:21:13 641502306
>>641499
Ну я же не только тетрис хотел, а вообще разные олдовые аркадки. Понятно что придется написать свой тайлмап на спрайтах, просто думал воспользоваться готовым, просто как массивом клеток. А так он просто место в билде жрет.
Аноним 06/02/20 Чтв 16:47:47 641512307
>>641502
Вообще, годот, как я понял, произрастает из аргентинского движка для казуальных игор под винду, уровня зумы, тривряд, для убивания времени в офисе, алавар ещё была контора, занимавшаяся подобным.
Поэтому совершенно не удивительно, что оптимизация под винду там хоть какая-то есть (для казуальных кликалок), а под андроидом - сорян. Не завезли. Под линуксом я сейчас тоже натыкаюсь на редкие, но обескураживающие недоразумения (например в конфиг записываются имена файлов в нижнем регистре, несмотря на заглавные буквы в именах, отчего в экспортированном проекте аудио невозможно найти на охуительной файловой системе, чувствительной к регистру, и звука поэтому нет).
Затянем пояса братие и ждём 4.0 с вулканом. Верим, ждём, надеемся.
Аноним 06/02/20 Чтв 17:00:08 641518308
Аноним 06/02/20 Чтв 17:02:50 641521309
>>641512
Можно считать что никакой преемственности нет. Все равно тормозит в данном случае только на андроиде. Было бы время поотлаживал бы, но пока некогда.
Аноним 06/02/20 Чтв 17:06:47 641524310
>>641518
Вот-вот. Время андроидо-игор в самом разгаре и даже, возможно, слегка на спад уходит. А они только нашли деньги, чтобы основное пофиксить.
>>641521
Короче говоря, андроид пролетает. То-то я гляжу, Петя Сканер на ютубе, сначала с двадэ на тридэ перешёл, а потом вообще затих. Щас вот недавно анонс какой-то выкатил, попахивающий разводом на бабло. Видимо до него тоже дошло, что для андроеда годот пока ещё слишком сырой и решил стричь бабло на бессмысленных и беспощадных курсах, как это делают друзяшки Хуана.
Аноним 06/02/20 Чтв 17:18:13 641529311
>>641524
Пролетают тайлмапы, 200 спрайтов 30 фпс будет держать в любом случае.
Аноним 06/02/20 Чтв 17:29:46 641533312
>>641529
Для олдовых игор 200 даже много. Можно и в сотню уложиться.
Например, тетрис. Ты посчитал площадь игрового поля 10х20, но большую часть времени заполнена треть-четверть поля. К 200 количество заполненных клеток приближается на грани проигрыша.
Аноним 06/02/20 Чтв 18:59:08 641546313
>>641533
Не очень хочется чтобы фпс снижался в зависимости от заполненности поля. Да и в других аркадах типа арканоида обратная зависимость будет.
Аноним 06/02/20 Чтв 19:05:38 641549314
>>641546
Тогда предлагаю два хардкорных варианта:
1. Отрисовывать шейдером.
2. Отрисовывать на канве.
Сам как-то хотел тряхнуть стариной и попробовать рисовать на канве, но поскольку я нацелен на пека, то оставил попытки и пользуюсь тайлмапами.
Аноним 06/02/20 Чтв 19:23:37 641551315
Аноним 06/02/20 Чтв 20:03:12 641554316
1581008591570.png (62Кб, 605x724)
605x724
Накидал тут заготовочку для замены тайлмапа на кастомдроч в своём тетрисе. Пойду посру. Держу в курсе.
Аноним 06/02/20 Чтв 20:41:43 641557317
>>641551
Оно хоть аппаратно рисуется?
Аноним 06/02/20 Чтв 20:52:53 641559318
1581011572153.png (9Кб, 289x404)
289x404
1581011572485.png (58Кб, 423x832)
423x832
>>641557
Я не знаю. Давайте заглянем в исходники?
>>641554
Ну, собственно, вот и всё. Полнофункциональная замена тайлмапа (в части отрисовки простейшего набора квадратных тайлов) пикрелейтед:
Аноним 06/02/20 Чтв 21:10:21 641560319
>>641559
>Я не знаю. Давайте заглянем в исходники?
Ну что, заглянул?
Аноним 06/02/20 Чтв 21:17:35 641561320
>>641560
Не. Я чай пил. И ещё в ньюсаче раковал. Если честно, я не вижу смысла заглядывать. Ведь в годоте всё, абсолютно всё выводится через ГЛЕС-драйвер, выбираемый в правом верхнем углу. То есть, как бы ты не извращался с нодами, в конечном итоге всё выведется на видеокарту и ею аппаратно отрисуется. Кроме ЦПУ-партиклов в ГЛЕС2, которые введены недавно и по сведениям документации, рисуются программно.
Аноним 06/02/20 Чтв 21:21:55 641564321
Можно ли и не муторно ли будет в годоте делать чанки, которые подгружаются по мере перехода игрока и которые сами по себе содержат ноды?
Аноним 06/02/20 Чтв 21:34:01 641569322
Аноним 06/02/20 Чтв 21:45:28 641570323
>>641564
Буквально в прошлом треде обсуждали и перетекли в этот тред. Треды читать полезно. Даю ссылку на последний пост в цепочке: >>635481
Мы правда не называли это чанками, но я думаю, терминология тебе не помешает разобраться. Речь о пуле чанков, реализованном через ветвь нод в памяти, отдельную от дерева.
Аноним 06/02/20 Чтв 22:05:35 641571324
>>641559
Добавил ещё один такой объект для пенели Next и начало помаргивать из-за того, что ради отрисовки одного тайла перерисовывается всё поле. Всё таки придётся реализовывать заложенную изначально вот здесь >>641554 интеллектуальную отрисовку только меняющихся тайлов.
Аноним 06/02/20 Чтв 22:15:13 641573325
>>641571
>интеллектуальную отрисовку только меняющихся тайлов.
Правда что ли? Прям как на GDI или в первом pygame, только я на pygame я сделал тетрис без этой техники дидов. Значит, там нет аппаратной поддержки(((
Аноним 06/02/20 Чтв 22:31:50 641577326
1581017509944.png (8Кб, 293x403)
293x403
>>641573
> Правда что ли?
Ну, пока не получается. Выходит говнокод. Ничо не рисуется, только один тайл. Дебажу...
Аноним 06/02/20 Чтв 23:04:45 641581327
>>641570
Уверен что этот пулинг не держит все ноды загруженными в памяти?
Аноним 06/02/20 Чтв 23:06:16 641583328
>>641549
Да это понятно, но тогда и смысл в годоте теряется. Я ж хотел шоукейс простого кода запилить.
Аноним 06/02/20 Чтв 23:11:00 641584329
1581019859723.png (25Кб, 368x285)
368x285
>>641581
Он держит в памяти только то, что явным образом держишь ты. Полная свобода по менеджменту чанками в твои руки. Отдалённые выгружаешь через queue_free() самостоятельно.
>>641573
>>641577
Короче говоря, интеллектуальная отрисовка по заветам GDI-дидов не потребовалась. Проблема оказалась тривиальнее, пикрелейтед.
Аноним 06/02/20 Чтв 23:12:02 641585330
>>641583
> шоукейс простого кода
Что сложного в этой портянке >>641559 ?
Аноним 06/02/20 Чтв 23:14:48 641586331
>>641549
Я кстати не уверен что рисовать на канве быстро. Это ж либо опенгл-примитивы, а я слышал они сильно тормозят, поскольку не треугольники, тогда и рисовать надо треугольниками даже линии и подгонять всякие антиалиасинги. Или рисовать в картинку и гонять текстуру каждый кадр.
Аноним 06/02/20 Чтв 23:15:55 641587332
>>641585
Да ничего, но кроме игры придется еще и этот код класть. Не чисто
Аноним 06/02/20 Чтв 23:35:27 641589333
1581021325273.png (165Кб, 858x959)
858x959
>>641586
Ну, тут только самому тестить, скорость мерять. Не стоит доверять слухам.
>>641587
Ну, я своих целей только что достиг. Добился аутентичного лука энд фила из детства. Пикрелейтед.
Аноним 06/02/20 Чтв 23:56:23 641592334
>>641589
Кажется, поле меньше было
Аноним 06/02/20 Чтв 23:58:55 641593335
>>641592
Да, было 10 на 20, а я пиздюком мечтал, вот бы выпустили модель тетриса побольше. И вот, когда китайцы не доставляют, идёшь и реализуешь мечту самостоятельно!
Аноним 07/02/20 Птн 00:02:03 641594336
>>641593
У тетриса есть жоско прописанные правила, там поле определённого размера должно быть, как в шахматах.
Аноним 07/02/20 Птн 00:05:03 641595337
>>641594
Ой, вот не надо, а. Нарушай правила. Живи быстро. Целуй медленно. INSTALL GODOT
Аноним 07/02/20 Птн 00:09:40 641596338
images (6).jpeg (12Кб, 214x236)
214x236
Аноним 07/02/20 Птн 10:43:05 641623339
>>641596
У шахмат есть жестко прописанные правила, там расстановка фигур строго фиксирована.
То что ты запостил это уже не шахматы.
Аноним 07/02/20 Птн 10:50:04 641624340
1581061804255.png (72Кб, 782x252)
782x252
Аноним 07/02/20 Птн 11:43:25 641630341
>>641595
>>641596
>>641624
Права на Тетрис сейчас принадлежат Нинтендо, и у них есть методичка со всеми строго расписанными параметрами, такими как размер поля, цвет фигур, особенности управления и т. д. Шаг влево-шаг вправо - расстрел. Впрочем, вы и сами это без меня знаете.
Аноним 07/02/20 Птн 11:58:01 641633342
>>641624
Недавно видел соревнования по реалтайм шахматам. Выглядело очень забавно. Там можно двигать все фигуры одновременно, но у каждой фигуры есть куллдаун после каждого хода.
Аноним 07/02/20 Птн 12:06:10 641634343
>>641630
>Права на Тетрис сейчас принадлежат Нинтендо
У них же были права только на версии для консолей, не?
Аноним 07/02/20 Птн 12:42:33 641641344
>>641630
Это как раз дополнительный аргумент почему в клоне тетриса не должно быть такое же поле.
Аноним 07/02/20 Птн 13:11:57 641647345
>>641641
Всё равно легально ты его не выпустишь, даже с полем другого размера.
Аноним 07/02/20 Птн 15:41:33 641654346
>>641630
Это традиция такая, раз в год постить беспруфные маняфантазии насчет тетриса? Опровергаемые пятью секундами в гугде.
07/02/20 Птн 15:46:11 641657347
>>641647
Так он не тетрис выпускает, а брикдроппер.
Аноним 07/02/20 Птн 16:16:23 641661348
1581081382265.png (56Кб, 300x727)
300x727
>>641630
> Права на Тетрис сейчас принадлежат Нинтендо

>В 1996 году он с Хенком Роджерсом (англ. Henk Rogers) создал компании The Tetris Company LLC и Blue Planet Software, пытаясь получить прибыль от бренда Tetris. The Tetris Company LLC (TTC) зарегистрировала слово Tetris как торговую марку. С тех пор несколько компаний купили у TTC лицензию на торговую марку, но законность игр тетрамино, которые не используют название Tetris, не оспаривалась в суде. По американским законам, игру нельзя защитить авторским правом (только запатентовать), поэтому основным имуществом компании является торговая марка Tetris. Несмотря на это, TTC преследует клоны игры под именами, непохожими на Tetris. В мае 2010 года юрист TTC послал[14] письмо в Google с требованием убрать с рынка Android Market все 35 клонов данной игры, хотя их имена не схожи с именем «Tetris». Впрочем, по сообщениям прес-службы корпорации Google, Сергей Брин послал Пажитнова нахуй.

Надо бы внести это в шапку ньюфаготреда, чтобы залётным неповадно было хуйню нести.
Аноним 07/02/20 Птн 16:19:22 641663349
1581081555476.png (608Кб, 1759x922)
1759x922
>>641661
Скрин посыла нахуй вдогонку.
07/02/20 Птн 16:46:49 641669350
>>641661
Не читай советских википедий. Гугли суд 2012, там американский судья перечислил признаки Тетриса защищаемые законом, в том числе поле 10 на 20
Аноним 07/02/20 Птн 16:52:17 641671351
>>641661
>(только запатентовать)
Ну вот, епта, и хули они не запатентуют?
Аноним 07/02/20 Птн 17:14:57 641675352
>>641669
Загуглил. Там доебались до клонирования лука и фила. И действительно. Игры-клоны выпускать неправильно и подло. В этом вопросе я полностью поддерживаю сторону обвинения.
Теперь встречный вопрос. Как упомянул анон выше >>641657 я делал клон аппаратного устройства. Насколько юридически законно использовать этот клон как вспомогательную игровую активность в тридэ эрпогэ с открытым миром, домиками деревянными набигающими и корованами за 1999 руб в стиме?
Аноним 07/02/20 Птн 17:26:00 641676353
1549198383585.png (263Кб, 1637x994)
1637x994
>>641671
В свое время, Pajitnov не смог запентовать свой invention потому что работал в Soviet Academy of Sciences, в которой все права передавались government сроком на 10 лет. А даже если бы и запатентовал, то срок 20 лет уже вышел.
Аноним 07/02/20 Птн 17:33:20 641678354
>>641676
Мдаа лоханулся паренек. Но вышел из ситуации в итоге неплохо.
Аноним 07/02/20 Птн 22:26:43 641700355
Аноним 07/02/20 Птн 23:33:02 641706356
>>641700
они охуели, не успела еще видео не одного полезного выложить уже патреон блять пиарит. Хотябы онлифэнс бы пиарила с учетом что тян
Аноним 08/02/20 Суб 12:15:40 641747357
1581153339487.png (94Кб, 1032x667)
1032x667
Помогите мне победить прокрастинацию :с
Вместо того, чтобы делать игры, я реализую жсон-схему в годоскрипте.
08/02/20 Суб 18:34:17 641788358
как годот дружит со звуком? можно ли без задержек воспроизводить десяток звуков в одну долю секунды, несколько раз в секунду, чтоб ничего не пошло по пизде?
Аноним 08/02/20 Суб 20:30:49 641796359
08/02/20 Суб 22:23:59 641812360
image.png (388Кб, 474x355)
474x355
>>641796
Благодарствую, будем попробовать.
Аноним 09/02/20 Вск 00:07:28 641838361
1581196046744.png (70Кб, 671x464)
671x464
Аноним 09/02/20 Вск 01:34:39 641858362
>>635427 (OP)
Что за хуйня с версией Годота 3.2? В версии 3.1 всё работало, теперь VehicleBody стоит на месте.
Аноним 09/02/20 Вск 01:40:20 641859363
Дополню: они что-то намутили с VehicleBody, из-за чего мой автомобиль едет со скоростью 1 хуан в час на любой мощности двигателя
Аноним 09/02/20 Вск 01:42:54 641861364
А, эти дурачки добавили галочку use as traction, но уведомили о ней только в жопе гитхаба и на вики пока не видно обновлений по этому поводу
Надо галочку use as traction на колёсах пометить
Аноним 09/02/20 Вск 11:07:34 641897365
>>641861
У меня примерно такое же было при переходе с 3.0 на 3.1 с анимацией частиц. Бомбил сильно. Вся анимация перестала работать и выводился спрайтлист целиком. И все связанные с анимацией настройки ИСЧЕЗЛИ!!! Как же я бомбил! Как же я проклинал Хуана! А потом методом тыка обнаружил, что анимация подключается отдельным шейдер-ресурсом и только в режиме GLES3. В документации наверное и по сей день не отражено.
Аноним 09/02/20 Вск 15:47:33 641957366
>>635427 (OP)
Что такое "Ассет"? Именно в годоте
Аноним 09/02/20 Вск 15:56:00 641962367
>>641957
1. Это цифровой ресурс (картинка, звук, 3д модель) - https://docs.godotengine.org/en/3.2/getting_started/workflow/assets/index.html
2. Готовый "строительный кубик", дающий какую-либо функциональность, обычно ставится как аддон в проект, либо плагин в редактор, изредка как модуль в движок. https://godotengine.org/asset-library/asset
Аноним 09/02/20 Вск 16:00:49 641964368
1581253248191.png (48Кб, 583x380)
583x380
>>641838
Моё лицо моя главная функция, когда понял суть жсон-схемы:
Аноним 09/02/20 Вск 17:02:49 641973369
>>641962
Спасибо. Я тут посижу с вами пока не надоест
Аноним 09/02/20 Вск 17:38:28 641977370
Котаны. Есть некий код, который вытаскивает числа из массива, числа могут быть целыми и дробными. Почему-то целые числа он не видит в упор, считая все числа float'ом. Типизировать числа в массиве скрипт в данном случае к сожалению не может. Я имею ввиду что-то типа PoolTypedArray<[T1, T2, ... Tn]>
Аноним 09/02/20 Вск 17:46:25 641979371
>>641977
Я обычно могу расшифровать любые непонятные вопросы, но ты победил, признаю. Какие то квадратные скобочки внутри угловых, массивы из разнородных типов, объясни нормально.
Аноним 09/02/20 Вск 17:55:00 641982372
>>641979
<> - элемент типизирования по шаблону (быдляцк. "дженерик") примеры List<T> где List общий тип, Т уточняющий тип, List<String> означает типизировать общий тип списка до строкового.
[] - элемент описания массива, пример [T1, T2, T3] массив уточняющих типов для шаблона выше.
Gdscript позволяет создавать массивы из разнородных элементов. Но не умеет в типизирование.

Слоуфикс:
>>641977
> Я имею ввиду что-то типа PoolTypedArray<T1, T2, ... Tn>
Вот такое гдскрипт не умеет. Умеет шарп, но та задача, что я решаю в гдскрипте, в шарпе имеет готовые решения, тысячи их.
Аноним 09/02/20 Вск 18:18:57 641988373
>>641977
Решил проблему. Отбой. Любая проблема решаема, если немношк подумать.
Аноним 09/02/20 Вск 18:20:57 641990374
1444253370337.png (25Кб, 616x292)
616x292
>>641982
Я знаю, что такое дженерики в C# (и в чем разница с шаблонами), но мне кажется ты пишешь про несуществующую фигню, что-то вроде Array<int OR float>. Ну да ладно.
В любом случае PoolTypedArray нету, есть только PoolRealArray, с другой стороны обычный Array таки хранит тип объекта, ты можешь его проверять через typeof(variable)
Аноним 09/02/20 Вск 18:25:00 641992375
>>641990
Именно так. Я просто взглянул на код под другим углом и добавил ещё один if typeof(bla-bla-bla) && data == int(data)
Аноним 09/02/20 Вск 23:33:38 642039376
Аноним 10/02/20 Пнд 01:24:11 642048377
Не хочу разводить срач, но как фиксить оптимизацию 3д-проекта, если на другом движке (не буду упоминать его здесь) на аналогичной сцене с 3д мешами больше фпс на мобильных устройствах? Выбрал годот из-за удобного языка, поэтому почему я не остался на том движке можно не спрашивать.
Пока думаю, как менять разрешение на мобильных, ибо у меня смена разрешение работает только на десктопе
Аноним 10/02/20 Пнд 02:28:35 642049378
>>642048
Это довольно обширная тема, поэтому для начала опиши в общих чертах жанр, компоновку сцены и т.д., какие фичи используются.
Разрешение выставляется где-то в настройках проекта -> window. Также можешь попробовать с/без vsync.
Во-первых, думаю стоит переключиться в GLES2, понятно что отвалится довольно много фич. Среди них - частицы на gpu, текстуры глубины (останутся только нормали), HDR, продвинутые свойства материалов, как микрорассеивания, фильтр постпроцессинга цветовой гаммы, SSAO. Перестанут работать GIProbe, поэтому надо будет запекать тени, что тоже даст большой прирост. Также советуется уменьшать количество одновременно действующих источников света. Нельзя просто воткнуть 5 ламп которые светят на один куб.
Вроде бы для GLES2 надо отключить сжатие текстур ETC2 и S3TC, и вместо этого включить ETC
Подробнее тут https://docs.godotengine.org/en/latest/tutorials/misc/gles2_gles3_differences.html
https://docs.godotengine.org/en/latest/tutorials/3d/baked_lightmaps.html
Также надо будет проверить настройки неба. По-моему, я читал, что процедурное небо тормозит. Но точно не помню.

Так, что дальше. Если у тебя вид издалека, то придется сделать LOD. Он делается легко, надо добавить меши разной детализации к ноде, и скриптом переключать их видимость в зависимости от расстояния до камеры.
Если у тебя коридорный шутан, можешь попробовать перекомпилировать движок добавив модуль https://github.com/lawnjelly/godot-lportal/ и расставив порталы между комнатами.
Если у тебя много однотипных объектов - армии солдатиков, стаки кубов - то тебе надо воспользоваться MultiMeshInstance.
В годоте пока нет окклюжн куллинга, поэтому если у тебя домик в котором тысяча бутылочек, то надо тоже воспользоваться какой-то оптимизацией, или портальной, или подобием чанков.
Да, в случае таких оптимизаций, придется перенести коллижн шейпы уровня в отдельное дерево, а не детьми мешей. Чтобы объекты, которых не видно за стеной, не проваливались.
Если у тебя какие-то сложные рассчеты будут, будет смысл смотреть в сторону C# (пока на айфоны) или сразу C++.

Общие принципы - надо уменьшать количество материалов и шейдеров, переиспользуя их повторно для разных объектов.
Мобилки не любят прозрачность. Надо сводить количество прозрачных объектов к минимуму.
Подробности тут http://docs.godotengine.org/en/latest/tutorials/3d/3d_performance_and_limitations.html
Там также упоминается, что мобилки fillrate-bound, т.е. весь экран делится видеочипом на "квадраты" и мобилка не любит, когда много пикселей выводится в одном и том же квадрате. Т.е. не надо накладывать стеки спрайтов друг на друга.

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

У Годота есть особенность прогрузки шейдеров и моделек при спавне. Чтобы этого не происходило, по видимости, надо делать по аналогии со Скайримом, в котором была комната куда складывались все трупы, а тут надо при загрузке уровня выстрелить всеми снарядами и заклинаниями скрыто от глаз игрока.
Вот все что я вспомнил сходу.
Аноним 10/02/20 Пнд 02:35:44 642050379
>>642049
А, вот что забыл. Не надо делать архитектуру уровня одним цельным мешем, а надо нарезать на кусочки, иначе не будет работать frustrum occlusion камеры.
Аноним 10/02/20 Пнд 03:08:00 642051380
>>642049
Сложно, буду делать в 2д
На самом деле полезная информация, пошел думать с чего начать.
Аноним 10/02/20 Пнд 03:16:35 642053381
>>642051
Я возможно не очень удачно вываливаю такую инфу.
Попробуй упрощенный план:
1. Включить gles2
2. Уменьшить количество источников света и теней, убрать процедурное небо
3. Запечь тени, не пользоваться gi probe
4. Поменьше перерисовок в одном месте экрана, учитывая что то, что скрыто препятствием, все равно рисуется
5. Снизить количество вершин в мешах, размеры текстур.
5. При необходимости добавить lod/чанки/порталы/мультимеши
Также, прочитал, что в Годоте есть какой-то новый профайлер с синхронизацией, работает по usb-шнурку, суть такова - в редакторе отключаешь источники света, ноды с мешами, и тут же видишь что вносило вклад в тормоза.
Аноним 10/02/20 Пнд 06:18:14 642061382
>>641861
>>641897
Вот, кстати, да. Хуан бы на полученный грант, занялся приведением документации в нормальный вид. А то дохуя моментов которые в доках либо хреново описаны, либо вообще никак.
Аноним 10/02/20 Пнд 06:31:51 642062383
>>642049
Анончик, а можешь накидать подобных советов по оптимизации чисто 2Д проекта (пиксельный платформеро-квест) под мобилки?

А то из всех моих изысканий пока только подходит отказ от тайлмапов, заменой их на статичные пикчи (>>640875
). И то, стабильных 60fps все равно не получается добиться, постоянно идут провалы.
Аноним 10/02/20 Пнд 08:43:05 642068384
>>642062
> постоянно идут провалы
Возможно, у тебя по логике игры грузятся объекты, например, пули для оружия, у которых в _ready() что-нибудь долгое вычисляется?
Аноним 10/02/20 Пнд 09:34:00 642073385
>>641675

Всё очень просто, с китайцев спросу нет, они не люди, с тебя будет, поскольку ты хоть и сноуниггер но по прежнему белый и географически по прежнему в европе.
Аноним 10/02/20 Пнд 09:41:10 642076386
>>642062
Да у тебя вроде и так все нормально было, просто телефон слабый? Пока слежу за прогрессом нового батчинга теперь тут https://github.com/godotengine/godot/pull/35957
Обещают 5х прирост на тайлмапах, сегодня соберу и погоняю.
Аноним 10/02/20 Пнд 10:01:36 642081387
>>642073
Блеать. Я так и думал. То есть, поле 12х24 не поможет? Надо туда чисто свои игры пихать и внешний вид делать непохожий?
Аноним 10/02/20 Пнд 11:02:00 642093388
>>642076
Качаю
git fetch origin pull/35957/head:batch-2d
git cherry-pick a78034682a7e7038c8b0111e42c3325bc92a2337
Аноним 10/02/20 Пнд 11:13:48 642097389
>>642093
Гитобог, расшифруй команды. Я понял только что качаешь головную ветку бранча 35957
Аноним 10/02/20 Пнд 11:21:22 642098390
>>642097
Сам полчаса составлял. 1 команда качает пулл-реквест 35957 и создает бранч под названием batch-2d.
Черри пик мерджит коммит под указанным номером оттуда в мой мастер, только эти 4 измененных файла, иначе он мне весь годот 4.0 выкачает.
Аноним 10/02/20 Пнд 11:23:05 642100391
>>642098
Извените за сленг.
Аноним 10/02/20 Пнд 11:32:15 642104392
>>642100
>>642098
То есть, получается, у тебя весь движок 3.2, а эти 4 файла из 4.0 лично твой пека у себя хранит под бранчем с отдельным именем и в случае чего перекачает всё заново в этой же конфигурации?
Аноним 10/02/20 Пнд 11:39:22 642105393
>>642104
>у тебя весь движок 3.2,
Да.
> эти 4 файла из 4.0
Тут я сам не до конца понял, но думаю так: пулл реквест привязан к мастеру
>lawnjelly wants to merge 1 commit into godotengine:master from lawnjelly:batch-2d
А в годоте гитхаб организован так, что мастер - это текущая рабочая ветка преальфы 4.0
Во всяком случае, когда я попробовал сделать просто pull этого PR, он мне скачал 26789+ изменений файлов. Возможно, если я переключусь на этот новый бранч batch-2d, То у меня будет мастер 4.0 + эти 4 измененные файла.
Аноним 10/02/20 Пнд 11:43:12 642106394
>>642105
С нетерпением жду, чем всё закончится. Было бы круто подрубать фиксы из мастера в стабильную сборочку. И желательно, чтобы стабильность не херилась.
Аноним 10/02/20 Пнд 15:25:23 642125395
Снова вопрос про то, как лучше реализовать мою задумку. Дана одна сцена и меню выбора уровней. Необходимо, чтобы при нажатии, например, на кнопку уровня под номером "2" загружалась сцена с дополнительным условием, например расположение точки финиша на сцене.
И ещё вопрос как лучше сделать вызов окна выигрыша. В моей реализации я просто включаю скрытую ноду окна выигрыша Короче говоря хочу меню выбора уровней как в Энгри Бердс и прочих подобных дрочильнях.
Аноним 10/02/20 Пнд 16:54:21 642140396
Аноним 10/02/20 Пнд 17:11:38 642150397
>>642068
>Возможно, у тебя по логике игры грузятся объекты, например, пули для оружия, у которых в _ready() что-нибудь долгое вычисляется?
Вот именно, что нет. Просто статичный уровень, персонаж на нем и немного вывода на экран (НЕ в консоль) для дебага. И просто гуляя туда-сюда периодически получаю провалы на 5-10 fps.
-------
>>642076>>642076
>Да у тебя вроде и так все нормально было, просто телефон слабый?
вот конфигурация >>641078
не хайенд конечно, но в моем понимании тянуть, тянуть то должен.
-------
>>642076
>Пока слежу за прогрессом нового батчинга теперь тут https://github.com/godotengine/godot/pull/35957
>Обещают 5х прирост на тайлмапах, сегодня соберу и погоняю.
Анон, держи в курсе, пожалуйста. Если действительно хотя бы в 2-3 раза прирост будет, то тоже дерну эту ветку и попробую собрать.
-------------

Аноним 10/02/20 Пнд 17:49:11 642160398
>>642125
> Дана одна сцена и меню выбора уровней. Необходимо, чтобы при нажатии, например, на кнопку уровня под номером "2" загружалась сцена с дополнительным условием, например расположение точки финиша на сцене.
Сцены, которые ты грузишь кнопками - это игровые уровни. Каждый твой уровень должен иметь функцию, которая в качестве аргумента принимает координаты точки финиша. То есть иметь единый интерфейс. После этого в коде кнопок у тебя стоит вызов этой функции.
Это только один из возможных вариантов.
Аноним 10/02/20 Пнд 17:54:12 642164399
>>642150
>>642106
Держу в курсе - пока успел потестить пример из ишью, и тест 4anon из шапки. Пример действительно разогнался, как и заявлено, а вот мой тайлмап - нет. Почему, пока не смог выяснить. Может получится настроить профайлер через кабель, сучий андроид все время связь теряет.
Аноним 10/02/20 Пнд 18:04:45 642165400
>>642125
Служебное меню, доступное в любой момент выполнения приложения должно быть синглтоном (великим и ужасным антипаттерном, за который не перезванивают). Добавляешь сцену с выбором уровней в автозагрузку, вешаешь на нее кнопку Esc например или Tab, по которой она появляется и скрывается. Из этой сцены кнопки выбора уровней задают параметр активной сцены в движке, которая есть игровой уровень, как написано выше. Второй вариант передачи параметров в игровой уровень: держать переменную в нём. Если загруженная главная сцена нуждается в параметре, она обращается к синглтону и берет эти данные у него. Я пользуюсь этим способом, у меня в авто загрузке всегда висит синглтон world, который, как видно из названия, держит в себе всю актуальную информацию об игровом мире (даже если это "мир" настольной игры). Этот же файл удобен как данные для файла сохранения. Способ я редко афиширую. Из-за антипаттерна в составе.
Аноним 10/02/20 Пнд 18:08:20 642167401
>>642164
Не появилось ли годных эмуляторов андроида? Помню щупал парочку в дремучих нулевых, но работали они паскудно.
Аноним 10/02/20 Пнд 18:18:21 642171402
>>642167
А хотя, что толку от эмуляторов? Они же на железе пекарни будут выполняться и там всё предположительно тормозить не будет.
Аноним 10/02/20 Пнд 20:01:29 642204403
ЧЁ ЗА ХУЙНЯ С ТОРМОЗАМИ У VehicleBody
Выставляю в редакторе силу тормоза (brake) 100500, а годот сбрасывает её до одного. Что блядь удивительного, так это то, что в оф. руководстве написано, что BRAKE ОКАЗЫВАЕТСЯ МОЖЕТ ПРИНИМАТЬ ЗНАЧЕНИЯ БОЛЬШЕ ОДНОГО, но как это сделать не уточняется. Только потом узнал, что значение надо менять не через редактор, а через К О Д
Аноним 10/02/20 Пнд 20:03:17 642205404
Или всё же выставляется, но редактор упорно продолжает показывать значение 1 у brake, хотя в самом руководстве рекомендуется опираться на значение 20-25 при 1000кг массы
Аноним 10/02/20 Пнд 20:10:20 642207405
>>642205
>>642204
Неадекватность документации в ряде вопросов - факт известный. Юзай треды на реддите через поиск в гугле для более полноценной инфы. Пока так. Держись там. Хорошего настроения. И успешных игор.
Аноним 10/02/20 Пнд 20:10:27 642208406
>>642167
Пару лет назад пользовался Nox, чтобы на компе играть в какую-то ферму, правда со временем он разбухал все больше и больше, да и скорее всего сливает все что на него устанавливаешь китайским авторам. Из забавного юзкейса - нашел в дампе памяти 3д модельку и выковырял ее. Искал чит энжином по примерному значению float. Правда, к этому времени хакеры вытащили ее то ли расшифровав сетевой трафик, то ли риппером с буфера opengl и выложили
Аноним 10/02/20 Пнд 22:21:54 642239407
Как для платформера сделать проверку, что игрок стоит на полу?
Я написал код:


# Called when the node enters the scene tree for the first time.
func _ready():
pass

const SPEED = 400
const GRAVITY = 12
const JUMP_POWER = 450

var velocity = Vector2()
var jumps = 0

func get_input():
var veloc = Vector2()
if Input.is_action_pressed('right'):
veloc.x += 1
if Input.is_action_pressed('left'):
veloc.x -= 1
return veloc*SPEED

func _process(delta):
var veloc = get_input()
velocity.x = veloc.x

velocity.y += GRAVITY

if Input.is_action_pressed('up'):
if jumps > 0:
velocity.y = -JUMP_POWER
jumps -= 1

velocity = $kinematic.move_and_slide(velocity)

var coll = $kinematic.move_and_collide(Vector2(0,0.001),true,true,true)

if coll != null:
jumps = 1


и он не работает, когда игрок движется влево или вправо.
Аноним 10/02/20 Пнд 22:31:36 642241408
>>642239
Так, ну на первый взгляд:
1. надо перенести это в _physics_process
2. В move_and_collide вектор надо домножать на delta (в move_and_slide не надо)
3. velocity который ты рассчитываешь, вообще никак не используется?
Аноним 10/02/20 Пнд 22:37:08 642244409
>>642239
Неправильно. Ты просто указываешь направление на пол единичным вектором Vector2.DOWN если пол внизу. И после этого у тела заполняется свойство is_on_floor()
Другое дело, если тебе надо цепляться за стены. В таком случае тебе вообще лучше рассмотреть переход плеер-контроллера на полноценный RigidBody c полноценной симуляцией физики, чем ебаться с этим кинематическим велосипедом.
Аноним 10/02/20 Пнд 22:38:34 642246410
>>642244
> Ты просто указываешь направление на пол единичным вектором move_and_slide(velocity, Vector2.DOWN) если пол внизу.
Быстрофикс.
Аноним 11/02/20 Втр 00:29:50 642268411
1581370189322.png (40Кб, 728x337)
728x337
Бля, у меня уже мозги вскипели! Как может брекпоинт не срабатывать на 81 строке но срабатывать на 84? Притом, что по показаниям локальных переменных она (функция вызываемая в 84й строке) отработала. Если ставить брекпоинты внутри _type_selection, они срабатывают. И вообще, после 76 строки сразу перескакивает на 84ю. Как может срабатывать функция, если её ещё не вызвала функция уровнем выше?
Если что я первым делом заподозрил глюк отладчика и перезапустил редактор.
Аноним 11/02/20 Втр 10:35:39 642299412
>>642268
Бля, утро вечера мудренее. Это похоже компилятор скрипта преобразовал
> a = b()
> return a
в
> return b()
Аноним 11/02/20 Втр 15:03:58 642352413
Я правильно понимаю, что если ты пишешь на C#, то у тебя не будет никаких автодополнений?
Аноним 11/02/20 Втр 15:12:07 642354414
>>642352
Под студией нормально вроде пишется, забудьте о моем глупом вопросе
Аноним 11/02/20 Втр 15:16:10 642355415
>>642299
Хотел вчера высказать такое предположение, но не думал, что гдскрипт делает такие оптимизации. Может, у тебя реально не тот if выполняется?
Аноним 11/02/20 Втр 15:24:56 642359416
>>642355
Да нет, иф именно тот.
Аноним 11/02/20 Втр 19:42:06 642426417
КАк сделать передвижение камеры перетаскиванием? Стрелочки ниудобна
Аноним 11/02/20 Втр 19:45:16 642427418
>>635427 (OP)
Помогите новичку. Как писать на C#? Он выдаёт только GDScript
Аноним 11/02/20 Втр 19:50:47 642433419
>>642427
Надо качать с сайта версию с c#. Или собрать самому. И иметь в виду что c# на айфоны пока не сделали, а в webassembly в альфе.
Аноним 11/02/20 Втр 20:05:24 642446420
>>642426
Управление в 3д редакторе:
Пр. кнопка мыши - вращать камерой
Ср. кнопка мыши - вращать вокруг выбранного объекта
Шифт + Ср. кнопка мыши - перетаскивание камеры редактора
Пр. кнопка мыши + WASD - движение как в шутере
F - навести камеру на выбранный объект.
Аноним 11/02/20 Втр 20:20:15 642451421
1581441614880.png (38Кб, 703x482)
703x482
Аноним 11/02/20 Втр 20:38:13 642458422
>>642451
Какой же сишарп няшный. Да даже питон няшнее гдскрипта
Аноним 11/02/20 Втр 20:42:13 642462423
>>642458
Вкусовщина. Мне гдскрипт своим внешним видом нравится Такой-то питоно-луа-паскаль. А вот слоупочность его - разочаровывает.
Аноним 13/02/20 Чтв 01:25:44 642666424
1439323251753.png (16Кб, 1080x1920)
1080x1920
1451885288875.png (13Кб, 1080x1920)
1080x1920
>>642106
>>642098
Потестил сегодня вечером немного, результат не то чтобы впечатлил, но около x2 прироста на простейшем примере мигания клеточками дает.

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

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

карта 20x40 (тайл 16x16 пикс)
19 fps Debug, no batch
26 fps Debug, batch
23 fps Release, no batch
33 fps Release, batch

Аноним 13/02/20 Чтв 01:34:31 642668425
>>642666
Ну неплохо. Лишние фпс не помешают. Удачно я зашёл перед сном.
Аноним 13/02/20 Чтв 11:32:56 642697426
А помните, пару тредов назад анон жаловался, что нельзя на лету менять скелеты под анимации. Как с этим ситуация в 3.2? Можем ли теперь запилить убийцу скайрима с модами, которые в готовую игру кастомный скелет устанавливают?
Аноним 13/02/20 Чтв 11:48:36 642698427
>>642697
Поменьше слушай пиздаболов.
Аноним 13/02/20 Чтв 11:49:27 642699428
>>642433
>>642451
Не. я написал код на C#. Но как его в годот засунуть. Когда привязыааю к сцене скрипт он создаёт новый гдскрипт
Аноним 13/02/20 Чтв 11:52:53 642700429
>>642699
> как его в годот засунуть
Нужно скачать специальный годот-моно.
Аноним 13/02/20 Чтв 12:07:35 642704430
1505187180871.png (42Кб, 391x343)
391x343
Аноним 13/02/20 Чтв 12:12:26 642705431
>>642699
Либо, если ты имеешь в виду, что у тебя уже есть .cs файл, то у каждой ноды, в свойствах, самое последнее свойство Script -> Load...
Аноним 13/02/20 Чтв 12:27:55 642708432
1494758583817.png (55Кб, 841x642)
841x642
Аноним 13/02/20 Чтв 12:34:56 642709433
>>642697
Наверное, сегодня займусь. Часика через 4 покажу как.
Аноним 13/02/20 Чтв 16:11:45 642731434
13/02/20 Чтв 19:09:44 642753435
Мне так стыдно, но я не умею по нормальному учится, только вот так, опытом. Но я уже день пытаюсь понять как эту камеру двигать. (Движение мышкой есть)
Move_and_collide для камеры не работает. Я очень тупой но мне очень нужно.
Аноним 13/02/20 Чтв 19:22:45 642756436
>>642753
Опиши внятнее что ты делаешь.
Если контроллер игрока - то, логично, ты можешь приделать камеру нодой к kinematicbody игрока, которое умеет move and collide.
Если ты делаешь какую-то стратежку, то можно просто камере задавать translate.
Если у тебя катсцена, то вообще вроде бы можно нарисовать путь для пролета камеры анимацией.
Аноним 13/02/20 Чтв 19:29:01 642758437
Котаны, ещё вопрос. Вот допустим есть у меня метка-триггер. Как сделать последовательность таких триггеров, чтобы после срабатывания первого срабатывал второй?
Аноним 13/02/20 Чтв 19:29:33 642759438
>>642758
Точнее чтобы первый триггер исчезал и появлялся второй и так далее
Аноним 13/02/20 Чтв 19:45:17 642761439
>>642759
По-моему, достаточно задавать $Area1.disable=true
Аноним 13/02/20 Чтв 20:33:31 642768440
>>642761
Так а второй тогда как включать? Нет, ты не понял. Я хочу, чтобы оно всё автоматом шло. Я передаю сцене метки с координатами 1,2,3.., и они по очереди меняются
Аноним 13/02/20 Чтв 21:33:09 642783441
1545538916738.png (148Кб, 828x823)
828x823
>>642768
Ну например вот так
Аноним 13/02/20 Чтв 21:34:27 642785442
Аноним 13/02/20 Чтв 21:39:56 642786443
>>642785
Разберешься, в общем все основное в первой половине, а во второй это уже как ты сам захочешь задавать области, их формы и тд
Аноним 13/02/20 Чтв 21:57:09 642789444
1488041223235.png (157Кб, 1502x606)
1502x606
>>642785
Я все сильнее упростил, теперь можно просто прикрепить к ноде со скриптом список всех триггерных зон, и они будут срабатывать по порядку. А там уже рисовать их на карте как душе вздумается.
Аноним 13/02/20 Чтв 21:59:59 642792445
>>642789
9-ю строчку забыл стереть.
Аноним 13/02/20 Чтв 22:02:00 642793446
>>642792
мне проект уже 16 числа сдавать, вместо разработки твоего пикрелейтед я почти неделю работал над красивыми шейдерами
Аноним 13/02/20 Чтв 22:03:35 642794447
>>642793
Да, шейдеры сложно, я их пока не осиливаю.
Аноним 14/02/20 Птн 02:45:30 642828448
1581512602649.png (185Кб, 1101x865)
1101x865
1476438368370.png (245Кб, 1079x846)
1079x846
>>642709
До конца разобраться не вышло, продолжу завтра.
Общая идея такая - импортируем одного персонажа, импортируем второго. Сохраняем анимацию первого в отдельный файл .anim. Загружаем второму. Он воспроизводит анимацию. Проблема с T-позами. Она начинает проигрываться с той позы, в которой был персонаж. Надо как-то их сначала в блендере приводить к T-позе перед экспортом, возможно.
Аноним 14/02/20 Птн 08:34:45 642849449