Этого треда уже нет.
Это копия, сохраненная 31 мая 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
.364 Кб, 1920x1804
Godot #14 # OP 635427 В конец треда | Веб
С чего начать?
С изучения документации. Если не можешь в инглиш, и даже в гугл-переводчик, то начат перевод официальной документации: 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/
2 635439
Отписываюсь в тред по самому лучшему двиглу на планете Земля, я первый!
3 635462
>>35439
надеюсь и последний
4 635467
>>635173

>Пулы в движке тоже есть.


Тыкни лицом, не нашел.
5 635468
>>35467
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
6 635481
>>35468
Благодарствую, анон. Тонны нефти скачиваний тебе.
7 635554
>>35462
С утра рано приходится вставать, вот и бесишься!
unknown-2.png14 Кб, 452x370
8 635742
Чем Годоти хорош именно для 3D?
Платформеро-рогаликоунтерменш мнение знать не хочу, поэтому 2D мимо.
Если порыться в гитхабе, то есть куча свободных 3D движков разной степени кривизны, в чем существенное отличие его от конкурентов? Что по оптимизации и простоте работы? Сцена из трёх кубов не будет выдавать 3 фпс? Есть ли готовые 3D игры на Годоти дабы посмотреть среднее по больнице или на Годоте сидят только сектанты 2D, а 3D "для галочки", как это было в Gamemaker 1?
Почему именно годот тред, а не Lumix, Wicked, Armory, Xenko и т.д.?
Или все отличия заканчиваются на финансировании Хуана, что позволяет вкладывать деньги в пиар?
9 635743
>>35742

>Lumix, Wicked, Armory, Xenko и т.д.


Это заброшенные движки без комьюнити.
10 635746

> Чем Годотн хорош именно для 3D?


Рабочим процессом. Движок требует минимум сторонних инструментов для создания готовой игры. Фактически, нужен только 3D-редактор.

> в чем существенное отличие его от конкурентов?


Зашкаливающая простота. В движок вкатываешься за день. В скриптинг за второй день.

> Что по оптимизации и простоте работы?


Есть проблемы с оптимизацией. Проблемы есть. Но над ними работают.

> а 3D "для галочки", как это было в Gamemaker 1?


Начиная с третьей версии триде уже не для галочки.

> Сцена из трёх кубов не будет выдавать 3 фпс?


Дело не в количестве кубов, а в количестве нормалмапов в материалах. Над этим работают.

Ой, кажется я забыл номер поста! Или не забыл? )
11 635790
>>35746

>Дело не в количестве кубов, а в количестве нормалмапов в материала


А окклюжен куллинг уже завезли, можно делать локации размером больше одного экрана без просадок фпс?
12 635801
>>35790
Что такое "размером в экран" в применении к 3д объему? Ты под чем то?
13 635803
>>35801
"Размером в экран" - это игра с фиксированной камерой, отсутствием движения камеры или скроллинга, весь игровой процесс которой происходит в рамках этого экрана. Например, тетрис, или бомбермен.
14 635804
>>35803
И причем здесь окклюжен? Если у тебя будет скролл над картой бомбермена рамером 10х10 экранов, окклюжен практически никак не повлияет.
15 635805
>>35804
зы. потому что этим занимается фруструм куллинг.
16 635822
>>35805
А он в годоте есть?
>>35804
Для приведенного тобой примера да, окклюжен работать не будет. Но если у меня вид из глаз и большая карта с домиками, в которые можно входить, а в домиках куча мебели, лежат вилки на столах, я правильно понимаю, что сейчас в годоте будут рендериться внутренности каждого домика, попавшего в кадр, если смотреть на них снаружи?
1553070052369.webm2,3 Мб, webm,
1920x1012, 0:21
17 635828
>>35822

>А он в годоте есть?


Есть конечно.

>Для приведенного тобой примера


Это был приведенный тобой пример. Или ты другой анон?

>например, тетрис, или бомбермен.



>я правильно понимаю


Правильно. Будет через пол года. Если тебе надо раньше, придется самому отключать вилки-ложки, например, когда персонаж отошел за area рядом с домом.
Для интерьеров есть https://github.com/lawnjelly/godot-lportal
18 635837
>>35828
Из видоса не совсем понятно где у стрелочки перед, так как впереди ее выдающейся части исчезают стены.
1441578137021.gif4 Кб, 434x293
19 635840
>>35837
Это не стрелочка. Так обозначают конус видимости из камеры. Да, можно было сделать нагляднее.
20 635848
>>35828

>ручками расставлять порталы в 2к20 веке


Не, спс, я игры хочу делать, а не заниматься дрочкой.
21 635850
>>35848
Нет, ты не хочешь делать игры, иначе уже давно бы расставил порталы вместе с дверьми, это занимает наносекунду времени.
22 635852
>>35848
Ну так свали нахуй в движкосрач-загон.
23 635873
>>35828

>Будет через пол года


Лол. Это разве не базовая фича которая должна быть одной из первых вообще? Да хоть сраный з-буффер перебрать, долго чтоль
24 635959
>>35873
Как видишь, этой базовой фичи в годоте нет, на том видео показан левый васянский модуль, с которым нужно перекомпилировать движок и шаблоны экспорта, и который криво работает.
изображение.png173 Кб, 1920x1177
25 636067
Перекатываюсь со своими баклажанами и механикой из юньки в годотоцаря.

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

И еще вопрос пока не забыл. Если я двигаю одну на другую коллизию, как из сортировать. А то сразу две\три\... двигаются.
cESsIBFO1Q.webm187 Кб, webm,
942x580, 0:11
26 636070
>>36067
одна на другую-кун, как победить
27 636073
>>35959
Раз этой фичи нет, значит она не базовая.
28 636084
>>36067
Тебе вот прямо совсем обязательно вручную из кода коллизии добавлять? Просто добавить к ноде физический объект с коллизией религия не позволяет?
Потому что сделать это можно, конечно, но придётся дополнительно ебаться с регистрацией нового объекта в сервере физики.
29 636086
>>36084
В идеале сделать префаб уровня, закинул картинку и всё. Остальное на лету, при старте сцены. Похуй можно и руками, на сцене предполагается порядка 60-120 таких объектов. Руками тоже можно протыкать каждый.
30 636088
>>36067
Что еще за подобие префаба? Просто делаешь отдельную сцену characterZombie и туда в корень добавляешь кинематик, спрайт и коллижн. А потом всю сцену интсансишь в сцене игры.
31 636089
>>36088

>Что еще за подобие префаба?


забей юнити сленг, отвыкаю

>А потом всю сцену интсансишь в сцене игры.


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

про порядок, там вообще оказалось ничего нет. народ велосипеды изобретает.
32 636090
>>35427 (OP)
Как передать следующей сцене параметры? Например я пишу get_tree().change_scene("res://scene2.tscn")
И хочу, чтобы в этой scene2 был определенный текст. Как це сделотб?
33 636092
>>36090
я бы пользовал global, как хуан завещал. Тут же всё описано: http://docs.godotengine.org/en/stable/getting_started/step_by_step/singletons_autoload.html

Заведи GlobalSceneParameters.gd и пользуй на благо. вкатыватель-выше-кун
image.png605 Кб, 615x450
34 636095
>>36092
Для нескольких десятков переменных сойдет?
35 636097
>>36095
а чего нет? я пока не вижу проблем. Пусть убедят в обратном.
# OP 36 636107
>>36095

> Для нескольких десятков переменных сойдет?


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

Поэтому самым "правильным" (ИМХО!) решением будет записать необходимые данные в эту глобальную структуру, а когда новая сцена загрузится, она прочитает эти данные у себя в коллбэке _ready()
37 636118
>>36095
Вообще говоря в гдскрипе есть классы. То есть ты можешь вполне осмысленно их группировать как и в любом другом языке.

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))
38 636121
>>36118
не легче создать ноду и уже потом наследовать от неё?
39 636123
>>36121
Это было к вопросу о куче глобальных переменных в одном главном файле.
40 636144
>>36118
Эти встроенные классы говно. Мне гораздо удобнее нововведенная в 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))
41 636159
>>36144
Дело вкуса, не люблю отдельный файл для каждого пука, если микрокласс на пару переменных. Насмотрелся на это в интирпрайз жабе.
42 636169
Совокупился с порядком ( не нашел как, через красивый пикабл кинетикбади решить. area2d и _unhandled_input только. Ну и жопа. А еще предлагали решение через кнопки О_о
45 636177
>>36169
Про порядок ты имеешь в виду когда спрайты один над другим? Тоже год назад сношался с этим, тоже только area2d и unhandled input работал.
46 636338
>>36177
Ага, именно он.

>>36175
Попробую. Походу то что нужно. Thx.
В шапку 47 636581
Ну что вы, бэтманы? Появилась новая платформа для публикации игр на годоте! Все что нужно - просто запостить пак-файл. Даже экспорт не нужен. Хотя, для некоторых это может быть минусом.
https://youtu.be/pathScTBsk0
48 636582
>>36581
Условия какие? Не получится что все что им отправишь становится их собственностью?
1579379534116.png10 Кб, 558x113
49 636602
>>36582
Уже неважно. Это поделие не работает в фаерфоксе.
50 636620
>>36581
И нахуя оно надо? Купить доменное имя, арендовать сервер за 5 баксов в месяц и можешь сам хоститься.
51 636680
>>36602
Забавно, потому что на моей некропека наоборот хтмл годота работало в лисе, но не в хромом
ScreenshotBrave20200119-050544.png175 Кб, 1080x1920
52 636696
>>36581
Работает прям в мобильнике, правда игры зумерское гиперкэжуальное г.
53 636712
Можно ли тут юзать 2д скелетную анимацию на 3д спрайтах?
54 636713
>>36712
Имею ввиду чтоб можно было анимировать движение в 8 направлениях в изометрии. Надо подменять риги и скелеты или это только для платформеров?
14275323941370.jpg113 Кб, 687x906
55 636733
>>35427 (OP)
Гайс, передо мной стоит такая задача:

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

Понимаю, что это по идее делается с помощью шейдеров, но что-то у меня ничего не получается. Помогите, пожалуйста
56 636737
>>36733
Загугли gonkee shaders у него есть готовое решение.
>>36713
Бля Анон не могу открыть с телефона документацию вместо тебя.
57 636743
>>36737

>Загугли gonkee shaders


Можешь ткнуть меня где у него именно про эффект размытия (blur)? На Гитхабе и на ютуб-канале нашел только про огонь, дым и всякое такое.
Anmerkung 2020-01-19 163555.jpg19 Кб, 867x128
58 636801
>>36733
>>36743
В общем я разобрался почти со всем, кроме этого:

>Желательно, чтобы размывалось не моментально, а постепенно в течение одной секунды



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

Я вот попытался написать функцию, но она почему-то включает размытие сразу на 1, а не повышает постепенно
59 636805
>>36804 (Del)
Я не программист и вообще пишу код первый раз в жизни, гугля на ходу. Но я рад, что тебе весело.
60 636821
>>36743

> Можешь ткнуть меня где у него именно про эффект размытия (blur)?


Бля. Не нашёл. Сорян. По памяти помню, что примерно как на твоём скрине >>36801 из скрипта обращаемся к юниформу и задаём радиус размытия. Поищу ещё может найду.
61 636855
>>36821
Само размытие по нажатию кнопки уже работает, теперь мне надо только этот плавный переход как-то настроить
62 636921
>>36159

> Насмотрелся на это в интирпрайз жабе.


А я не могу наглядеться. Загляденье просто! Особенно, когда среда разработки осуществляет менеджмент этими файлами так, что ты можешь абстрагироваться от них. Однако, сам факт их наличия предоставляет широкие возможности для бэкапа.
63 636922
>>36855

> плавный переход как-то настроить


Просто скармливай шейдеру обновлённые значения радиуса размытия из _process или из корутины, не знаю, как тебе удобнее. Но вот этот мрак на скрине >>36801
это пиздец. Сеттер возвращает void и твой if бессмысленнен. Но даже если туда подставить геттер, чекать ифом значение юниформа бессмысленно в рамках твоей задачи. Ещё раз: просто скармливай новые значения шейдеру через сеттер.
func blur_increase(): Mat.set_shader_peram("blur", wrapf(current_blur + blur_step, blur_min, blur_max))
Cancerapr.jpg55 Кб, 306x403
64 636941
>>36922
Все понял, спасибо.
image.png1 Мб, 1119x558
65 637167
Подскажите, куда копать, картинка состоит из множества sprite, куски в png-24. Фотошопил без АА. Не могу избавится от ебучих линий.
66 637194
>>37167
Отключить АА при импорте. Либо свойством filter либо пресетом 2d pixel (что делает то же самое).
67 637196
>>37194
И кстати ещё сам редактор при разрезе на куски может смягчать кромки. Выбери жесткое попиксельное выделение в фоторедакторе, если импорт не поможет.
При соблюдении обоих советов куски пикчи совместятся пиксель к пикселю. Но без сглаживания отдельные куски могут на краях выглядеть рвано. Тут три решения. 1. Резать под ровными углами, 1:2, 1:3, 1:4 и т.д. 2. Резать со сглаживанием а затем масштабировать вырезанный кусок на пару пикселов больше, чтобы края перекрывались. 3. Резать по кромкам изображённых объектов, пока не останется задний фон. Затем дорисовать задний фон, это лучше подходит, если у тебя многослойное изображение в формате psd, тогда просто слои сохраняешь в отдельные файлы.
68 637224
compute shader еще не завезли?
69 637225
>>37224
Пока что нет, только костыли
https://www.reddit.com/r/godot/comments/7o6usp/compute_shader_andor_get_back_data_from_gpu/
Надо подождать, пока завезут. В ожидании ждём, посаны!
70 637231
>>37225
уже год жду)
71 637235
>>37224
ЧТо считать собрался?
72 637249
>>37235
да пока уже ничего, проекты вкатились на другие движки

например, погодные эффекты
73 637251
>>37235
Без компот-шейдора не получится сделать снег/дождь, который не проваливается сквозь крыши.
74 637252
>>37251
Ну это не так, делали в треде полтора года назад.
75 637254
>>37252
Не делали, а обсуждали. Так ничего и не сделали. Был в том обсуждении.
76 637255
>>37254

> Был в том обсуждении, предлагал дичайшие костыли вроде лепки нескольких инстансов частиц вокруг домов.


Быстрофикс.
77 637267
>>37194
Спасибки, выручил. Отключение filter спасло мою душу.

>>37196

>Выбери жесткое попиксельное выделение в фоторедакторе


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

В любом случае, приму инфу к сведению, про порезку. Пол игры на этом строится. Когда отключил filter на импорте, даже при скалирование окна игры, всё стало как по маслу, без разрезов. Годот сила.
1579607327273.png69 Кб, 610x385
78 637284
>>37267

> Годот сила.


Годот круто!
1562653167600.webm20 Мб, webm,
1920x1080, 0:30
79 637519
Контроллер FPS из https://godotengine.org/asset-library/asset/424
Террейн из https://godotengine.org/asset-library/asset/231
Расстановка деревьев с помощью https://godotengine.org/asset-library/asset/380
Водичка из https://github.com/ywaby/godot-WaterPack
80 637794
>>37519
Очень круто. Буду делать шутан, возьму на заметку.
81 637805
>>37794
На самом деле, визуал водички оказался очень недоработанным (в плане отражений и прозрачности), да и автор его почти не развивает, так что не рекомендую для продакшна.
82 637861
>>37805
Воду я даже не заметил если честно, меня ток контроллер интересует.
83 637893
>>37861

> меня ток контроллер интересует


Ща гляну, что там за контроллер. Ставлю бочку нефти, что там нет кроуча с автодетектом вентшахт.
>>37805

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


Ща тоже глянем. Я делал водичку по туториалу ещё на версии 3.0 посмотрим, удалось ли этому её превзойти.
84 637894
>>37893

> Ща гляну, что там за контроллер.


Ба, да это тот самый говноассет, который я доводил до ума в прошлом треде!

> mvarray[0] = true

85 637904
>>37894

>Ба, да это тот самый говноассет, который я доводил до ума в прошлом треде!


Понял, принял
86 637907
>>37904
Однако же замечу, моих постов из прошлого треда тебе не хватит, чтобы довести до ума. Вообще, всё зависит от потребностей твоего проекта. Тут уже стоит задуматься о модульном контроллере, чтобы можно было подключать и отключать фичи. С другой стороны, почему бы не поднять модульность на уровень компоновки персонажа и подключать контроллеры по мере надобности? Надо это обдумать.
87 637958
Вкатываюсь в годо. Возник вопрос:
Каким макаром лучше запилить в годо многомерный массив?
Я пока вижу два варианта:
1) сделать одномерный с домножением индеков на число, типа N[i,j,k] эквивалентно N[i100 + j10 + k]
2) Сделать ноду N1 создающую массив нод N2, каждая из которых создает массив нод N3... ну вы пони.
Но может есть менее упоротые варианты?
Еще вопрос: логично, что в случае с ОЧЕНЬ большим массивом, во втором варианте будет просто адское кол-во нод. Как это скажется на производительности если эти ноды будут иметь минимальный функционал и, по сути, будут только хранить данные?
88 637965
>>37958

>Как это скажется на производительности если эти ноды будут иметь минимальный функционал и, по сути, будут только хранить данные?


В том смысле - дергает ли годо ноды и имеющие свойства(переменные) но не имеющие никаких функций? Или они просто безболезненно висят не потребляя ресурсов компа кроме оперативы?
1451679150489.png37 Кб, 485x573
89 637980
>>37958
Юзай [][]
90 637995
>>37980
Мда. Так и думал, что можно проще. Еще такой вопрос: при таком способе ведь не будет ограничения на кол-во измерений? 10-мерный массив можно так запилить? И есть ли ограничение на кол-во элементов в массиве, или оно условно бесконечно?
91 638000
>>37965
Вот этот вопрос тоже в силе
92 638008
>>37995
Ты лучше пиши что ты хочешь сделать, потому что 10-мерный массив это очень странно.

>есть ли ограничение на кол-во элементов в массиве, или оно условно бесконечно?


Там int, 2,147 миллиарда, если выделилась память.
93 638014
>>38008

>потому что 10-мерный массив это очень странно.


Не, я понимаю что странно, лол. Хочу проверить работоспособность одного своего алгоритма, для одной утилитки на комп. Так что описать, что я хочу сделать в двух словах наверное не выйдет. Короче будем считать, что мне нужно запилить массив на много (около 10) измерений.

>Там int, 2,147 миллиарда, если выделилась память.


Но, всегда ведь можно вложить в этот массив еще массив на пару миллиардов, так?
94 638015
>>38014
У тебя массивы сплошно заполнены или разрежены хотя бы?
95 638018
>>38015
Нууу.. я на самом деле сам пока еще думаю, как лучше сделать. Но, будем считать для простоты что сплошные
96 638019
>>38015
Просто массив будет заполняться по ходу работы проги, и я хз, как оно повернется.
97 638023
>>38015
Хотя массив этот должен хранить списки, так что мб сразу проще пилить в виде ступенек
98 638051
>>38018
Ты с арифметикой дружишь? Если у тебя первое измерение (ширина) 2 миллиарда, и в каждом столбце (высота) 2 миллиарда ячеек, то тебе надо чтобы в компе стояло 2 миллиарда плашек по 4гб (минимум)
99 638061
>>38051
Да я спросил чисто для теории. Не придирайся. В моей проге, надеюсь, до такого не дойдет.
100 638062
>>38051
Но там реально дохуя этих элементов, и я вообще хз, во что это выльется и заработает ли.
101 638063
>>38061

> Хочу сделать прогу. Но какую не скажу.


Неужели на нашем движке собрались писать вирусы? Вот это честь!
102 638064
>>38051
Но вообще да, я не посчитал, когда спрашивал
103 638071
>>38063
Естественно не скажу, т.к. это не прога, а алгоритм обработки довольно специфичного списка данных, который х*й знает работает ли вообще.
104 638080
>>38071
Все еще непонятно зачем тебе 10-мерность. Ты уверен что тебе нужно arr[3][14][59][265][5][35][89][793][23][846], а не скажем просто arr[x][y][10].
105 638095
>>38080
Если кратко, и не вдаваясь в подробности - для скорости "индексации" - чтобы быстро переходить к нужному элементу, подходящему под заданные условия, а не ворошить каждый раз многотонный список. Хотя, конечно, возможно есть более простые решения, но, думаю вариант с разбиением списка на сотню тысяч (а мб и больше) частей тоже не так уж плох.
106 638113
>>38095

> возможно есть более простые решения


> с разбиением списка на сотню тысяч (а мб и больше) частей


Именно так. Деревья. Все юзают их, а не многомерные массивы.
107 638114
>>38113
Как запилить такое дерево и чем плохи массивы?
108 638116
>>38114
Ты так спрашиваешь, будто я профи байтоёбства. Гугли октодеревья, бинарные деревья поиска и прочее такое найдёшь далее по ссылкам из нагугленного текста. Учись гуглить и курить матчасть. Без этого не станешь девелопером. И готовься к тому, что 99% инфы будет на английском.
109 638119
>>38116
Ладно, хоть скажи, это реализуемо на gdscript, или придется делать вставки на C++?
110 638121
>>38119
Реализуемо.
Главное - пытайся и делай. Могу помочь с алгоритмом, если ты перестанешь строить из себя секретного спецагента и внятно объяснишь, что ты хочешь посчитать. Возможно, оно уже реализовано в движке, если ты правильно поставишь себе задачу и прошерстишь АПИ движка.
111 638124
>>38121
Ок, я погуглю в свободное время. Если будет что непонятно - спрошу
112 638125
>>38121
Пасиб за разъяснения
113 638252
>>38095
Возможно тебе нужна база данных, типа sqlite.
114 638769
>>38252
Возможно ему вообще не игровой движок нужен, а чистая ИДЕ для обкатки своих идей в простом ЯП.
115 638771
>>38769
Кстати да, хоть он и пишет, что данные будет собирать из игры, игру же можно реализовать в виде клиент-сервера, и собирать обезличенные данные о юнитах (без графона и так далее), игровое поле просто как массив объектов в любом ЯП.
116 638805
>>35742
Годот хоршо только скоростью с которой ты будешь создавать, писать на гдскрипте намного быстрее и проще чем на си, если ты делаешь игру мальенкой кампанией(один), то на U или на U, ты за занчительный промежуток времени сделаешь нихуя, а на гд можно написать годную мобилку за 1 день
117 638806
>>36067
Я вообще картинки делаю texture rect и инпут с них ловлю
118 638807
>>36070
Сделай не кинематик, а риджыд(в нем надо будет когда поднимаешь мод менять на кинематик, а когда кладешь обратно), еще чуть выше написал про то что инпут ловлю с тексутр ректа, если так делать то будешь мышкой брать ток 1 объект
119 638810
Кто-то давно спрашивал, что будет, если собрать Годот только 2д. Со всеми откюченными флагами, пустой проект с одной картиночкой, вышло 6Мб под ведроид одна архитектура arm7eabi и 17Мб под винду. Запускается на телефоне около секунды.
120 638827
>>38807
попробую. пасиб за совет, может проще будет. в целом я победил через area2d и _unhandled_input. Норм работает.
121 638848
Всем здоровья в этом треде. Хочу спросить, вкатываться мне в годот или нет, если я хочу рпг по шаблону фоллача 2, но при этом нихера не шарю в коде?
2д графон, пошаговые бои, диалоги разветвленные, вот это все.
Пробовал РПГ мейкер, он не позволяет диалоги сложные строить, печаль. Гамак пробовал, он начинает в определенный момент просто виснуть от обилия файлов.
Что делать, анон? Вливаться в ГОДОТ? Если да, подскажи, как облегчить себе жизнь?
122 638851
>>38848

> как облегчить себе жизнь?


Выучить программирование. Если выучишь, то сможешь на годоте такое сделать.
123 638852
>>38848

>но при этом нихера не шарю в коде?


Главное выучить программирование. Потом сможешь использовать любой движок.
124 638879
>>38810
Годно. Однако в век терабайтов с гигагерцами интересно разве что в академических целях. Более-менее красивая игра с графоном, звуком, будет весить от 600 Мб. Экономия 5-7 мегов тут погоды не делает.
Отвечает Александр Друзь # OP 125 638882
>>38848
Ты не сможешь сделать годной игры без навыков в программировании. Годоскрипт прост лишь для кодеров со стажем, увы. Если ты принципиально не понимаешь логики компьютеров, как персонаж тролля, набрасывающего в соседних Индия-тредах, то ты и в годоскрипте будешь как слепой котёнок тыкаться.
У меня стаж кодинга 20 лет и то я целый год над одной только диалоговой системой работал, постоянно переделывая и отбрасывая неудачные варианты. А ещё бывает, натыкаешься на неочевидные вещи, никак не отражённые в документации. Например, есть кнопка, у неё есть сигналы. Есть диалог, у него есть сигналы. Это в доках есть. Так же в доках подробно описано, как вешать обработчики на сигналы. Но в доках не написано, что ты можешь получить ссылку на кнопки в диалоге и назначить обработчики на их сигналы нажатия, чтобы потом получать нажатие кнопки ОК в диалоге и действовать соответственно. Предполагается, что ты это уже понимаешь.

Короче говоря. Геймдевелопинг - это сложное и обширное ответвление от софтдевелопинга в целом. Наивно вкатываться в него с нуля. Поэтому я и много других анонов в очень многих тредах советуют новичкам начинать с общих курсов кодинга, чтобы хоть немного поднатаскаться в матчасти. А потом уже игры делать, уровня фолыча, с корованами и домиками деревянными.
126 638922
>>38848

>но при этом нихера не шарю в коде


Опиши свое "нихера". Если ты можешь отличить переменную от массива, а интерфейс от абстрактного класса - то можешь спокойно вкатываться.
75823-triangle-light-sticker-neon-sign-human-detroit-thumb.png27 Кб, 200x200
127 638923
Нужен человек который может нарисовать СВЕТЯЩУЮСЯ ЛИНИЮ и возможно объяснить как это сделать, а то я совершенно не могу в 2д графику, а делать через шейдеры в падлу, да и не производительно
Нужно что-то как на картинке
128 638935
>>38922

>интерфейс от абстрактного класса


>питон

129 638942
>>38923

>делать через шейдеры не производительно


Это не так. Видеокарты рисуют быстрее процессоров.
130 638943
>>38935

> питон


Нет, не слышали.
https://docs.godotengine.org/ru/latest/getting_started/scripting/c_sharp/
Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека.
131 638946
>>38923

> нарисовать СВЕТЯЩУЮСЯ ЛИНИЮ


Какое грамотное, полное и всеобъёмлющее ТЗ. Я сделаю этот заказ за 3 тыс рублей.
132 638949
>>38942
Мб я чет не понимаю, но ведь видеокарте проще нарисовать текстурку, чем для каждого пикселя сделать по какой--нибудь операции разве не?
133 638973
>>38949
Нет. Ведь быстрее "нарисовать текстурку" на GPU а не на CPU.
134 638985
>>38943
С языком все в порядке, а что там с поддержкой платформ? iOS точно нет, html версия и андроид в бете?
1579965307178.png30 Кб, 483x308
135 638992
>>38985

> iOS точно нет


Ну что же ты пиздишь? Тредом не ошибся, няша? Дорогу указать?
136 638995
>>38992
Ты втираешь что-то странное. Экспорт c# в андроид заявлен в 3.2 который еще не зарелизился. Экспорт в ios заявлен как не сделанный. Пруфы экспорта c# в ios какие нибудь имеются?
https://github.com/godotengine/godot/issues/20268
137 638998
>>38995

> Ты втираешь что-то странное.


Сорян, запостил не читая тред. Позор мне.
138 639004
>>38998
Да не страшно, Хуан мог бы и почетче на сайте написать, из чего куда есть экспорт, а куда нет.
139 639005
>>39004
>>38998
Заткнитесь, людям надежда нужна, а не ваша правда ёбаная.
140 639010
>>39005
А какая связь между C# и надеждой?
141 639014
>>39010
Сишарп - надежда игростроя.
142 639062
>>35427 (OP)

> С чего начать?


alt+f4, затем uninstall
image.png4,1 Мб, 1868x1034
143 639156
Смарите че сделал, где-то за пару вечеров, если попросите кину апк, управление мышкой, для старта тыкните на иконку годо
https://yadi.sk/d/n41WryoNBr-dhw
144 639162
>>39156
Какая версия движка?
145 639164
>>39162
А, неважно, у меня на 3.1.2 запустилось. А звука там нет или это у меня из-за линокса не заиграло?
146 639167
>>39156
Если в игре есть звуки, пожалуйста, переименуй все звуковые файлы, чтобы они были с мелких букв и переэкспортируй.
147 639168
>>39162
3.1.1
>>39164
Звук, есть у меня играет, можешь просто найтколл включить.
Хотя тогда не будет эффекта когда плюху ловишь
148 639170
>>39168

> Звук, есть у меня играет,


>>39167

> пожалуйста, переименуй все звуковые файлы, чтобы они были с мелких букв и переэкспортируй


Да, это баг. Баг case-sensitive в линуксах.
149 639171
150 639172
>>39170
А так часто в линуксах бывает? Погодите а как вы ехе запускаете на лиунксе?
151 639178
>>39172

> Погодите а как вы ехе запускаете на лиунксе?


Я свой ельф сделал, очевидно. Точнее просто взял от одной из своих игор. Заработало! И со звуком!

Тут другой вопрос. Музыка закончилась, я еду дальше в тишине. Нужно либо запускать шарманку сначала, либо уровень заканчивать.
152 639179
>>39156

> управление мышкой,


Ассет, который ты спиздил, также управляется и стрелками с клавиатуры. И гораздо удобнее.
153 639180
>>39178
Я пока забил на эту игру и делаю другую, т.к. там проблема в шейдере на телефоне, при столкновении на компе шейдер работает отлично, а телефоне дергает картинку 1 раз в бок и обратно, почему пока не разобрался да и лень как-то, все равно еще 100000 фишек надо добавлять чтобы это стало играбельным.
А по поводу той-же музыки, всё равно я не могу использовать этот трек, если буду выкладывать в гуглплей, сам я музыку писать не умею, есть один друг одногруппника, который умеет что-то, но не хочу его просить пока все настолько неготово
154 639182
>>39180

> сам я музыку писать не умею


Вот держи https://opengameart.org/content/neon-transit
Этот трек я хотел заюзать для своей Т2 на ТВГ, но прокрастинация одолела.
155 639183
>>39179
Я знаю что такое ассет, но не умею их устанавливать, т.е. еще ни разу не получилось когда пытался, управляется стрелками т.к. управление на компе я вообще делал только для теста, эта игра не задумывалась для пк. По этому сначала я сделал на стрелки, но управление стрелками оч далеко от управления наклоном, по этому придумал сделать на мышку, максимально похоже на управление гироскопом.
156 639184
>>39183
Скрестил пальцы за тебя, анончик! Сделай игру за всех нас!
157 639185
>>39172
В шапке есть подсказка (после жирных букв)
158 639186
Где изменить дефолтную папку для сохранения? Не хочу каждый раз менять путь с документов на нужную мне.
159 639188
>>39182
Спс схоронил
1433095458969.png408 Кб, 1408x700
160 639189
161 639192
>>39189
Кстати советую забекапить папку C:\Users\ИМЯ_ЮЗЕРА\AppData\Roaming\Godot
У меня от экспериментов с шейдерами с падением драйвера видюхи, и от ковыряния с экспериментальными билдами, пару раз зависал комп целиком, и после ребута все настройки были проебаны.
162 639201
В годоте есть автодополнение кода и навигация по элементам, как в вижуал студио?
163 639205
>>39201
Ну немношк есть. До студии канеш далеко. Но ребята стараются.
164 639211
>>39201
Теоретически можно писать в vs code с помощью https://github.com/godotengine/godot-vscode-plugin
Практически, наверное, заебешься.
165 639219
>>39211
Практически, если речь о годоскрипте, то для него сторонние тулзы не нужны, а если речь о сишарпе, то мне, например, удобнее безо всяких тулзов открыть в студии сгенерированный годотом солюшен и не забывать сохраняться после написания кода.
image.png205 Кб, 480x360
166 639249
Короче, анон, я тут подумал, и решил взять и добавить в годот блекдж и куртизанок

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

Почему не контрибутить? потому что хочу многое переделать, они не пустят (и вообще у них ущербная политика контрибуции - доходит до того что пофиксив баг, надо потом им доказать что это был очень важный фикс бага)
167 639251
>>39249
А мог бы игру делать.
168 639253
>>39251
я не знаю какую игру делать. я программист, художничать не умею.
169 639256
>>39249
Если вулкан сделаешь, вообще заебись будет, а то этот ебаный жылет2 без гпу, а жилет3 вообще нихуя не работает.
А если выкинуть питон скрипт то нахуй тогда овобще гд нужен, он же только для тех кому лень в си подобные
170 639259
ну вулкан будет и в 4.0 godote (только когда?)

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

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

Если все пойдет, открою свой форк на гитхабе
171 639260
>>39259
Да ты наркоман.
172 639261
>>39253
Это вообще не проблема. Можно качать готовое. Можно делать лоуполи по гайдам. Можно рисовать пиксельарт по гайдам. Можно делать процедурную генерацию графона. Главное просто начать и делать. Вот тебе мотивирующий видосик https://www.youtube.com/watch?v=7TXEZ4tP06c
173 639275
>>39259

> открою свой форк


А мог бы игры делать.
174 639276
>>39256

> он же только для тех кому лень в си подобные


Не только.
175 639324
>>39261
А что ему рисовать? Хуи на стенах?
1566274700193.png98 Кб, 791x605
sage 176 639415
>>39201
Навигация по элементам есть, как можно заметить и в левом нижнем углу по списку, так и подчеркивание гиперссылок при наведении мышки +ctrl
Ночной ПРОтип - чтобы автодополнение работало, надо подсказать ему кастом типа через "as ИмяТипа" как выделено строчкой выше. Динамический язык же.
177 639443
Бампусики.
goodneighborscc0.png1 Кб, 192x96
178 639619
Бывает, попадется годный моноширинный битмапный фонт, а как вставить в Годот непонятно, надо качать какую то левую тулзу 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)]
goodneighborscc0.png1 Кб, 192x96
178 639619
Бывает, попадется годный моноширинный битмапный фонт, а как вставить в Годот непонятно, надо качать какую то левую тулзу 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)]
179 639622
>>39619
П.с. и картинка и код под лицензией CC0 (public domain) вдруг это неочевидно.
180 639639
>>39622
Спасибо, няша! Родина тебя не забудет.
181 639648
>>39253

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


Ты - треугольник.
Многоугольники охотятся за тобой.
Постигни искусство вертушки и заряди им в щщи!
https://www.youtube.com/watch?v=5CKJ4ulHO28
1.PNG8 Кб, 506x261
182 639656
Анон, помоги. GetCollider возвращает Godot.Object, а что бы узнать группу нужен CollisionObject. Как кастовать не нашел. Как быть?
183 639657
>>39656

> Как кастовать не нашел. Как быть?


Попробуй не использовать var. Прописывай тип явно.
Spatial collider = raycast.GetCollider();
или
Node2D collider = raycast.GetCollider();
Поищи, есть ли в сборке шаблонизированная GetCollider<T>? Если есть юзай её, выводя нужные тебе типы.
184 639658
>>39656

> Как кастовать не нашел. Как быть?


И да, вот так кастовать:
https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/types/casting-and-type-conversions
185 639659
>>39657
А смысл прописывать другой тип, если GetCollider в любом случае дает Object?
186 639660
>>39658
А вот за это спасибо, получилось
187 639661
>>39659
Он даёт тебе ссылку на экземпляр базового класса, иначе говоря, он даёт тебе ссылку на данные, но не предоставляет интерфейса. Чтобы получить интерфейс, ты должен ПРИВЕСТИ базовый класс к желаемому тебе дочернему. В ссылке на МСДН выше это всё объяснено.
>>39660
Пожалуйста! Обращайтесь в истинную веру!
188 639791
Как экспортнуть игру БЕЗ pack файла с ресурсами?
Чтобы спрайты лежали в папочках, можно было отредактировать их, перезапустить билд и они подтягивались.
Хочу отдать билд художнику побаловаться.
189 639793
>>39791
Шапку прочитай. ПРОСТО не экспотируй, а отдай проект + экзешник.
190 639794
>>39793
Не работает без редактора, видимо ресурсы дублируются в .import и не переимпортируются без запущенного редактора после изменения.
191 639795
>>39794
Ок. Пусть запустит godot -e в командной строке, он запустится в режиме редактора.
15776318830450.png309 Кб, 427x700
192 639796
>>39795
Слишком сложна
193 639798
>>39796
Понятно, думаю над решением проблемы.
1580325492830.jpg21 Кб, 292x282
194 639799
>>39796
Блять, редактор прост, как швейцарский армейский нож. Хули твой художник так туп? Научи его открывать проекты в редакторе.
195 639801
>>39798

> думаю над решением проблемы


Да что тут думать? В одном из первых тредов приводил пример, как создавать текстуры в рантайме из внешних пикч. Только зачем анону ебаться с этими велосипедами, если проще и быстрее научить художника открывать проект в редакторе. Не сложнее, чем открыть кино в видеоплеере. Охуеваю с зумеров. Просто пиздец!
196 639805
>>39801
Но ведь поебаться с велосипедами это так по кайфу для бумеров. Я бы вообще взял класс image.cpp и на его основе сделал модуль-автоимпортилку при запуске, только времени нет
197 639809
>>39805
Чем дольше живёшь, тем больше понимаешь, что именно ВРЕМЯ - твоя главная ценность.
>>39796

> Слишком сложна


Сделай ему ярлык для автозапуска проекта. Или погоди, ему сложно или тебе?
198 639844
Тридвашка релизнулась!
https://youtu.be/WoVMAUJeqTU
199 639845
>>39844
Уже собрал, и уже вылетела разок.
200 639859
>>39844
в чем смысл делать видео состоящее из скрола статьи?

и его еще и лайкают - что с людьми не так? открыть статью никак, надо ее смотреть через ютуб?
201 639861
>>39859
На безрыбье и рак рыба, так что соси хуй
202 639863
>>39859
Зумеры же. Клиповое мышление. Для нас бумеров там ссылка на статью в описании.
203 639872
>>39861
на каком безрыбье? Ты можешь открыть саму статью и за пять минут все нужное прочесть.
Ну или открыть получасовой видос чтобы посмотреть на эту же статью под гундявого картавого петросянящего тянущего диктора.

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

меня просто шокирует эта мода на видосы.. Особенно по программированию - это же пиздец как уныло учиться программированию по видео: то что пишется за 5 минут, в видосе мусолится по полчаса
(люди реально тратят 28 минут жизни на то чтобы узнать как писать цикл for на C#? они больные?
204 639873
>>39872

>на каком безрыбье?


Ну накинь еще каналов для индюков, про обзоры всяких юнити и пэйнтеров и годотов, даун. Увидел один ролик и начал недовольно пердеть ртом, уебок.
205 639876
>>39872
Видосы - это интернет-аналог лекций в вузике. Не нравится - не смотри. Но от видосиков уже не уйти. Их популярность будет только расти.
206 639877
>>39876
Жрать говно тоже становится популярным и от этого не уйти.
207 639878
Посаны. Посоветуйте вариантов оптимальных. Есть одна программа на годоте, которую я пишу лениво уже второй год. Именно программа, не игра. Конструктор диалогов. Может, кто помнит?
Так вот. В моём так сказать "роад-мапе" заложено, что выводить готовые диалоги программа сможет либо в жсон-файлы, либо в БД. И вот по жсон-файлам у меня возникла идея, как бы прикрутить к этому делу схемы? Мне не нравится, что сейчас у меня структура выходного файла прибита гвоздями к коду. Я хочу, чтобы у меня в отдельной панели настроек имелась схема, в которой описывались бы элементы выходного файла и их поля. Согласно этой схеме строился бы интерфейс ввода данных в диалог и конечно же строился бы сам выходной файл. При загрузке сохранённого файла, он бы загружался по схеме и предупреждал о несоответствии. Схемы предполагаю хранить в отдельных файлах в директории конфига программы. Я в принципе не вижу никаких непреодолимых препятствий сделать это всё, однако предлагаю обсудить паттерны и подходы для реализации этого. Ну, чтобы не изобретать велосипедов. Буду рад не только постам, но и полезным ссылкам.
208 639879
>>39878
Занимаешься хуйней без задач уже два года.
Достаточно просто сделать загрузку диалогов из файла, и писать их ручками в json/yaml, зачем тратить годы на визуальный редактор?
Давно бы уже игру доделал за это время, и сейчас бы лежал в гамаке на Багамах.
209 639880
>>39879

> Достаточно просто сделать загрузку диалогов из файла, и писать их ручками в json/yaml


Я посмотрю на тебя, как ты будешь для эрпогэ на 50+ часов геймплея писать разветвлённые диалоги с несколькими концовками и перекрёстными ссылками, в зависимости от этапов игры. Ручками. В блокноте.
210 639881
>>39876

>Видосы - это интернет-аналог лекций в вузике.


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

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

видосы это телешоу, а не обучение. И те кто хотят учится по видосам - на самом деле не хотят, им нужно только зрелище (ну там поржать над шутками автора и т.д.)
211 639882
>>39879
И это не визуальный редактор, а классический, по паттерну "master-detail".
212 639883
>>39880

> Ручками. В блокноте.


Именно так, только не в блокноте, а в vscode, с подсветкой, поиском, сворачиванием блоков и прочими фичами. И делать буду естественно не один файл на 100000 строк, а буду разбивать на отдельные маленькие файлы для каждого персонажа/катсцены. Я же не долбоёб.

> для эрпогэ на 50+ часов


Ты сначала сделай хотя бы игру на пару часов геймплея. У тебя за два года вышло 0 часов геймплея, ты с такими темпами 50 часов за остаток жизни не доделаешь.
213 639884
>>39881

> преподаватели готовятся к лекциям а не "ну эм наверное тут вот так почему то не работает"


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

> есть живое общение


В комментариях.

> всё равно учатся по учебникам


Спорим об одном и том же. На лекции послушал общую инфу, обсудил. И идёшь учить матчасть по учебникам. Никто и не спорит.
214 639885
>>39883
Лучше день потерять, а потом за пять минут долететь (С)
215 639886
>>39881
Ты пидар тупой, я тебе написал, что у него есть подробные уроки с разбором движков, а это просто новости кто сам не мониторит.
216 639887
>>39885
Но ты потерял не день, а два года, за которые вполне можно было сделать полноценную игру.
217 639890
>>39887
Вот щас бы воспринимать поговорки буквально. Это ты что ли тут топишь за ютуб-туториалы вместо нормального обучения?
218 639894

>>И идёшь учить матчасть по учебникам. Никто и не спорит.


но в видео уроках не так. Типа - посмотрел видосы и уже типа все умеешь

>>39884

>что русскоязычные ютуб-лекторы мычат


зарубежные тоже не ок - вечно восторженно взахлеб базарят- уши режет. А еще их вечная английская лыба....
https://www.youtube.com/watch?v=AD4JIXQDw0s
219 639895
Ухожу читать учебник.
https://json-schema.org/understanding-json-schema/
А мог бы игры делать...
220 639896
>>39886

>что у него есть подробные уроки с разбором движков


то что я у него на канале посмотрел - это не обзоры движков, это именно зачитывание чужих статей, плюс пара тыков мышкой иногда.
221 639897
>>39896
Потому что ты слепой уебан .
222 639901
>>39895

>>А мог бы игры делать...


ну конечно же ты еще можешь смотреть 80 часов видео по json-schema вместо одного учебника
223 640020
>>39845
Ох я проебался. Оказывается я из мастера выкачал уже 4.0.dev, а не 3.2.
224 640652
Анончик. Поясни, пожалуйста, что за беда с производительностью при экспорте под андроид. Честное слово, заебался уже экспериментировать.
Беру простой чисто 2Д платформер, рисую карту в tiled экспортирую в проект как набор tilemap'ов. Далее, если экспортировать под пека, выдает стабильные 60фпс, почти на чем угодно. Если же экспортирую под android или html5, то получаю дикие лаги с падением fps до 20 и ниже. Если вместо тайлмапов, просто кидать большую текстуру (экспортирую карту из tiled'а как один большой png), тогда все работает почти нормально. В html получаю fps = 60 (проседания только если еще несколько страниц в браузере открывать), в андроиде же все равно fps не стабилен где-то в районе 50-60fps. Причем на разных устройствах по разному. Причем на более слабых иногда даже больше бывает, чем на более мощных. При том что дело именно в отрисовке, на рассчет одного физического фрейма уходит максимум 0.004с, даже если физику выкрутить на 120). Сразмерами чанков тайлмапов пробовал играться, ни на что не влияет.

Можно ли вообще добиться стабильных 60fps на андроиде и как под это дело проект оптимизировать?
225 640653
>>40652
Пробовал тайлмапы создавать не в tiled'е, а непосредственно в годоте - та же самая фигня.
Сам тайлсет если, что идет единым атласом.
# OP 226 640667
>>40652
Андроидопроблемы.
Не рекомендую делать игры для андроида. Делая игры на проприетарный гуглозондовый андроид, ты предаёшь своих пекабратьев. Отлучаю тебя от церкви ГНУ ЖОПАЕЛЬ, отступник. Пиздуй нахуй. Навсегда.
227 640671
>>40652
Сколько слоев?
228 640675
>>40671
Ну вообще изначально планировал пару слоев параллаксного бэкграунда. Плюс 3-4 слоя самой карты. Плюс слой фореграундного параллакса. Но смысл в том, что данная проблема появляется даже при наличии всего одного тайлмапа на сцене.
Т.е. даже если я сделаю кучу слоев но большими текстурами/картинками - то производительность в принципе норм и держится близко к 60 fps (на одном слабом старом девайсе, даже, каким-то образом, показало 66fps при включенном vsynce, я х.з. как такое может быть). Как только заменяю хотя бы один слой карты на тайлмап, фпс тут же проседает до 20-ки. Даже на достаточно мощных устройствах.

В поиске нашел только вот такие тикеты:
https://github.com/godotengine/godot/issues/7885
https://github.com/godotengine/godot/issues/26620
Но в них нихера решения нету.
229 640710
Вышел 3.2, а вы про него ничего не пишите.
Совсем все плохо?
230 640711
>>40710
Мы игры делаем, а не пиздим в тредах попусту.
231 640715
>>40711
Да, игр полон тред.
232 640720
>>40710
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 будет отображаться по центру текстуры в редакторе, а вот реагировать она будет как будто она в левом верхнем углу. В бестекстурных кнопках такого не наблюдается.

Это то, что вылезло на моих проектах. Может есть еще какие-нибудь подводные камни, я хз.
233 640730
>>40675
А какая версия годота, 3.1 хотя бы? Какой рендерер, gles2? Скрипты что то с тайлами делают или ты только рендер тестишь?
234 640776
>>40720

>Обновляться во время работы над серьёзным проектом


Ну такое.

А вообще, осенью интересовался тайледом, но не понял, чем он лучше встроенного редактора. Обесните плиз.
235 640778
>>40720

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


На моём проекте вылезло вот что: Я использовал неявный каст StreamTexture на ImageTexture и в 3.1. вопросов не было, а в 3.2. мне показало ошибку компиляции. Видимо, типизацию доработали.
236 640838
>>40776

>>Обновляться во время работы над серьёзным проектом


>Ну такое.


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

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


Возможностей редактирования карты в разы больше. Намного удобнее встроенного редактора. Во встроенном редакторе можно накидать простенькую карту, но вот если захочешь ее изменить, то это будет боль.
237 640839
>>40838

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


Пойду ещё раз пересмотрю туториалы. Может я с наскока чего-то недопонел.
238 640841
>>40730
Был 3.1 сейчас 3.2 - сэйм щит.
Gles 2. Пробовал 3-й - результат был может быть на пару кадров лучше.
Скрипты с картой ничего не делают. Только персонаж по ней гуляет туда сюда и все. Физика стандартная платформенная.

Завтра прогоню пару тестов с разными вариантами и подробнее распишу, что и как с цифрами.
239 640842
>>40838
А еще по плагину поясни. Он экспортирует полностю готовую карту или мне всё равно придётся ебаться с настройкой коллизий, окклюзий света, навполигоном?
240 640846
>>40842
Уже сам загуглил.
241 640851
>>40841

> Физика стандартная платформенная.


Коллижн шейпы у тайлов? Хотя вроде ты пишешь физика не тормозит. А клетки какого размера?
Вообще про твою проблему пишут много, пробуй менять квадрант, они же чанки (начни с 16 или 32, или 8), ставить целочисленные camera zoom, подумай над увеличением размера клетки (меньше клеток на экране = быстрее), отключи Ysort если без него можешь обойтись. Пока не знаю что еще посоветовать. Можно включить сжатие тектур, но вряд ли поможет.
242 640857
243 640858
>>36602
Да тяжело понимаю. но твоя жопа теперь в полной их власти
244 640863
>>36581
Ну и нахрена это надо, когда есть б-жественный итч.ио, на который можно билды заливать по одному клику мыши и вдобавок тебе не будут тыкать пачкой говнорекламы в лицо сходу с главной страницы?
245 640872
>>40857
Я верил и верю в годот!
246 640875
>>40851

>Коллижн шейпы у тайлов? Хотя вроде ты пишешь физика не тормозит.


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

>Вообще про твою проблему пишут много,


Пишут то много, а вот решения нет. Судя по 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 от андроида почти нереально.
246 640875
>>40851

>Коллижн шейпы у тайлов? Хотя вроде ты пишешь физика не тормозит.


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

>Вообще про твою проблему пишут много,


Пишут то много, а вот решения нет. Судя по 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 от андроида почти нереально.
247 640876
>>40857
Годот стал сучкой Эпик Геймсов. Хааааааааааа.
248 640877
>>40875
Погоди, я немного недопонел. А ты пробовал делать стандартные тайлмапы и тестить их в андроиде? Может там сами тайлмапы тормозят и tiled не при чём вообще?
249 640879
>>40876
В срачетреде вчера уже обсудили. УЕЧ будет с годоскриптом! Hell YEAH!!
250 640880
>>40877
Да пробовал. Такая же фигня. Тем более что из tiled'а они как раз в стандартные тайлмапы и импортируются.
251 640881
>>40880
То есть, tiled и tiled exporter не при чём и их не нужно указывать в гугле при поиске решения. Тормозят сами тайлмапы.
252 640883
>>40881
Да.
---
Попробовал на gles3 переделать. Та же фигня. В некоторых вариантах даже на 5...10fps порисовка падает.
253 640884
>>40883
Мобильные процессоры какие-то странные. Вроде мощ есть. Но в ряде задач они дичайше тормозят. По видимому реализация тайлмапа как раз использует такие подходы, которые ОК для классической архитектуры пека и неподьёмны для мобильной. Я честно говоря, не особо разбираюсь в железе, так что могу посоветовать только отказаться от использования тайлмапов. Конструируй тайлмапы и конверитруй их в картинки. Юзай спрайт для помещения картинки целиком на игровое поле. Интерактивные объекты делай отдельными спрайтами.

И ещё к тебе просьба, попробуй собрать бенчмарк тайлмапов от анона из прошлых тредов под андроид и замерить фпс https://govdot.herokuapp.com/4Anon.rar
254 640918
>>40875

>Пробовал, не дает эффекта при минмальном 8 и максимальном 128 эффект одинаковый.


А 16 и 32 пробовал?
255 640928
>>40875
Ладно вот такой вопрос - а какой у тебя аппарат и сколько у него RAM (в идеале сколько свободной).
256 640932
В общем, надо подождать, чувак сделавший порталы, уже делает батчинг
https://github.com/godotengine/godot/pull/35696
257 640933
>>40932

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



> drawcalls per quad.



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

У меня нет слов.
258 640934
>>40933
Иди нахуй, толстяк.
259 640936
>>40934

Понимаешь.

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

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

На OpenGL 1.0 с его glVertexf2/3

УЖЕ, БЛЯДЬ, ДОГАДЫВАЛИСЬ ЧТО МОЖНО, СУКА ПОЛОЖИТЬ ВСЕ ТАЙЛЫ В ОДНУ ТЕКСТУРУ А К ВЕРШИНАМ КВАДОВ-СПРАЙТОВ ПРИДЕЛАТЬ, БЛЯДЬ, ТЕКСТУРНЫЕ КООРДИНАТЫ И ХУЯРИТЬ ВСЕ КВАДЫ СРАЗУ.
260 640937
>>40936
Лучшее в мире советское образование, охоспаде. Оно было недоступно Хуану. Но на то и опенсорц - братушки из России подтянутся и пофиксят баги, а Хуанчик помержит.
261 640938
123
# OP 262 640940
>>40938
Я сегодня добрый.
263 640944
>>40940

Еще бы, такой обсёр, его еще месяца два в срачетреде поднимать на знамя боротьбы с говнотей будут.
264 640947
>>40936
1. Это не опенжл 1.0.
2. Ты вырвал фразу из контекста, не понимая как работает движок. Мнение о том как вася написал бы хеллоу ворлд очень важно для нас.
265 640949
>>40944
Тебе обсёр, а мне пиар и известность. Учись сынок, как делать просмотры на дизлайках.
266 640951
>>40947

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

Даже в говномамонтном опенгле, в котором не поддерживается этот ваш инстансинг и мультидров.
267 640954
>>40947

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



Движок работает как дебил, если он рисует 1 тайл за один дравкол.
268 640955
>>40951
Вась, я понимаю что ты увидел знакомое по хеллоу ворлду слово дравкол, и возбудился, но тайлмапы и так рисуются одним квадом, а то что ты там себе выдумал это дело десятое, еще раз повторю, что ты нихуя не понял сути пулл реквеста, который просто кеширует на стороне движка больше данных, чтобы меньше времени тратить на переключении состояний.
269 641076
>>40884

>Конструируй тайлмапы и конверитруй их в картинки. Юзай спрайт для помещения картинки целиком на игровое поле. Интерактивные объекты делай отдельными спрайтами.



Ну собственно я к этому решению и пришел.
----
>>40884

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



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

Результаты на пиках:
Для версии с меньшим разрешением рузультаты на 5-10 fps в первых двух сценах лучше, в сцене с тайлмапом - всего на пару кадров больше.
5.png479 Кб, 1440x720
270 641077
>>40884
>>41076

Это с тайлмапом, тут вообще все печально 7-8 fps. Т.е в нинешнем виде для андроида тайлмапы совсем не подходят.
271 641078
>>40918

>А 16 и 32 пробовал?


Да, пробовал

>>40928

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



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

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



Я посмотрел его изменения в коде, и меня сомнения мучают, Судя по коду и комментам выглядит так будто он просто следит пришла ли команда на смену текстуры в opengl и сравнивает ее с предыдущей, и если новая текстура совпадает со старой, то просто отменяется смену.
Я не спец в opengl и вообще, объясните кто разбирается - я правильно понял или я мудак и там что-то более толковое?
А то если я все-таки правильно понял, то это как-то совсем костыльно выглядит.
273 641084
>>41080

>Я не спец в opengl и вообще, объясните кто разбирается - я правильно понял или я мудак и там что-то более толковое?


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

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

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

(ну а потом придумали что все стейты надо ставить один раз и больше не трогать, появился термин pipeline и родились вулканы и дк12, где это легко в основу философии)
274 641085
>>41084
Ок. Понял, я мудак. Спасибо за разъяснение.
275 641088
>>41085
Твои подозрения обоснованны. Ты сам того не ожидая, вскрыл самую болезненную тему всего опенсорца в целом. Видишь ли, чтобы выкладывать исходники под открытой лицензией, надо понимать, что ты выбрасываешь на ветер труд, за который мог бы получать деньги. Мы, к сожалению не при коммунизме живём, и кушать за что-то надо. Поэтому в опенсорце есть два вида сорцев: спонсируемые и фанатские.
Со спонсируемыми всё ясно. Разрабу платит бабло крупная фирма, он делает проект и ему помогает сообщество. Выгоду имеют все. Разраб имеет хлеб с маслом. Корпорация имеет бесплатный софт, на разработку которого может влиять. Сообщество имеет бесплатный софт и дополнительную денежку на хлеб с маслом ибо любимый софт бесплатен, и в этот софт можно вносить правки и фиксы.
А фанатские сорсы часто пишутся фанатиками опенсорца, никем не спонсируются, фанатики живут на хлебе и воде (и бородавках с пяток). И частенько такие фанатии - поехавшие. И частенько они пишут костыли и на полном серьёзе считают их венцом творения.

Как мы видим по новостям, годот плавно перемещается от состояния поделки фанатика Хуана к профессиональному опенсофту под крылом майкрософта и эпиков.
276 641093
>>41088

>Как мы видим по новостям, годот плавно перемещается от состояния поделки фанатика Хуана к профессиональному опенсофту под крылом майкрософта и эпиков.


И к чему этот дурацкий вывод? Хуан всегда пилил годот профессианально за деньги.
277 641097
>>41088

>Как мы видим по новостям, годот плавно перемещается от состояния поделки фанатика Хуана к профессиональному опенсофту под крылом майкрософта и эпиков.


А кто возьмется переписывать тысячи строк Хуановского говнокода, которые уже сейчас делают годот непригодным для разработки игр?
278 641098
>>41093

>пилил годот профессианально


Ага, профессиональные 7 фпс запилил, охуеть просто >>41077
Такую сценку еще древние движки из нулевых типа HGE запросто выводили со стабильными 60 фпс, а годотя не может.
279 641099
>>41097
У корпораций есть такой трудовой ресурс. Надо будет - пригонят индусов. Всё решаемо. Модуль за модулем с сохранением интерфейса перепишут. При этом новые модули будут с новым интерфейсом. Старый интерфейс пометят как deprecated и оставят для совместимости на пару мажорных версий.
В большом бизнесе всё решаемо.
280 641102
>>41098
Вопрос не в качестве кода, олень, а в том платят деньги разрабу или, нет. Хуангу и так платили, что должно измениться, он перестанет срать кодом?
281 641103
>>41099
У майкрософта уже есть бабилонджиэс, нахуй им годот, а эпики задонатили так крошки. Блендеру 3кк, хуангу 0.25кк.
282 641141
>>41077
Анон, анооон! А попробуй ещё экспортнуть в хтмл5 и запустить на андроиде. Тоже так всё печально будет?
Цель: выяснить источник тормозов на андроиде, аппаратный или софтварный
283 641150
>>41109 (Del)
В по/рашу, хохлозависимый
284 641152
>>41141
В одном из issues попадалось, что тормоза тайлмапа возможно из-за неправильнного выделения памяти, соответственно если у него тайлмапы сжирают 400 метров, а всего на старте свободно 800, то возможно память просто закончилась совсем.
285 641170
>>41152
Запустил ща пример с изометрической тайлмапой в линуксе. Занимает 60 мегов.
286 641173
>>41170
Там зависимость от количества клеток (т.е. обратно пропорционально размеру клетки), так какой то китаец писал, сам я не тестил.
1580913611605.png5 Кб, 898x28
287 641195
>>41173
Окей, скачал и запустил 4анон. Всё равно немного 84 мега. Нужны данные с андроида.
288 641369
>>35427 (OP)
ладно окей, сажусь на годот для своей изометрической игоры
289 641392
>>41141
Мне лень конвертировать 4anon и заливать его на сервак, поэтому я проверил на своем проекте >>40875 который у меня уже залит.
Запускал на том же телефоне в хроме.
С картой картинками - 10...15FPS, с картой тайлами 5...10FPS. Плюс очень долгая загрузка.
290 641413
>>41392
Ясно. Хреново.
291 641439
На все деньги эпиков Хуан набрал марок по ходу
https://twitter.com/reduzio/status/1225323368855068672
292 641441
>>41439
Хаха, знатно потроллил хейтерков. Молодец, Хуан!
293 641448
>>41441

>потроллил


В каком месте?
294 641449
>>41441
Никаких хейтерков нет. Есть люди, которые хотят пользоваться движком, но недовольны низкой производительностью. Как движка, так и разработчиков.
295 641464
>>41439
Наверное для тебя это будет открытием, но все люди мыслят по разному, есть те, кто действительно не представляют себе визуальные образы, а воспринимают все как логические цепочки.
296 641465
>>41449

> недовольны низкой производительностью


Дак пусть не делают эрпогэ с открытым миром и корованами. Рано ещё. Мини-игры пусть делают и не бугуртят.
297 641468
>>41464
Двачую. И как же здорово, когда два таких человека объединятся, один с образами и второй с логикой.
298 641469
>>41468
И ебут друг друга в жоппы
299 641471
>>41439
"Видеть" музыку - признак аутизма
300 641472
>>41465
Я вот хотел сделать на андроид тетрис на тайлмапах, но похоже не выгорит.
301 641480
>>41472
Да, да. А ещё ты на нём денег поднять хотел. А ещё ты не тролль, и не хейтерок.
302 641494
>>41464

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


Нет.
303 641496
>>41480
А вот и не угадал, я хочу запилить несколько игрушек под GPL в F-Droid, а то там пустовато, а потом хвастаться количеством устанровок Годота.
304 641497
>>41494
Есть. Я лично видел таких в 2000х на форумах с регистрацией.
305 641499
>>41496
Блять, для тетриса не нужен высокий фрейм рейт. Ну по крайней мере на начальных этапах игры, когда скорость низкая. Но уж тайлмап точно не обязателен. Двигай фигуры по координатам, кратным длине квадрата из которого фигуры состоят. Мой Тетрис на тайлмапе, но исключительно по причине удобства. Можно и без него.
306 641502
>>41499
Ну я же не только тетрис хотел, а вообще разные олдовые аркадки. Понятно что придется написать свой тайлмап на спрайтах, просто думал воспользоваться готовым, просто как массивом клеток. А так он просто место в билде жрет.
307 641512
>>41502
Вообще, годот, как я понял, произрастает из аргентинского движка для казуальных игор под винду, уровня зумы, тривряд, для убивания времени в офисе, алавар ещё была контора, занимавшаяся подобным.
Поэтому совершенно не удивительно, что оптимизация под винду там хоть какая-то есть (для казуальных кликалок), а под андроидом - сорян. Не завезли. Под линуксом я сейчас тоже натыкаюсь на редкие, но обескураживающие недоразумения (например в конфиг записываются имена файлов в нижнем регистре, несмотря на заглавные буквы в именах, отчего в экспортированном проекте аудио невозможно найти на охуительной файловой системе, чувствительной к регистру, и звука поэтому нет).
Затянем пояса братие и ждём 4.0 с вулканом. Верим, ждём, надеемся.
308 641518
>>41512

>Затянем пояса братие и ждём 4.0 с вулканом. Верим, ждём, надеемся.


https://twitter.com/MostafaMMThabet/status/1225357645625929728
309 641521
>>41512
Можно считать что никакой преемственности нет. Все равно тормозит в данном случае только на андроиде. Было бы время поотлаживал бы, но пока некогда.
310 641524
>>41518
Вот-вот. Время андроидо-игор в самом разгаре и даже, возможно, слегка на спад уходит. А они только нашли деньги, чтобы основное пофиксить.
>>41521
Короче говоря, андроид пролетает. То-то я гляжу, Петя Сканер на ютубе, сначала с двадэ на тридэ перешёл, а потом вообще затих. Щас вот недавно анонс какой-то выкатил, попахивающий разводом на бабло. Видимо до него тоже дошло, что для андроеда годот пока ещё слишком сырой и решил стричь бабло на бессмысленных и беспощадных курсах, как это делают друзяшки Хуана.
311 641529
>>41524
Пролетают тайлмапы, 200 спрайтов 30 фпс будет держать в любом случае.
312 641533
>>41529
Для олдовых игор 200 даже много. Можно и в сотню уложиться.
Например, тетрис. Ты посчитал площадь игрового поля 10х20, но большую часть времени заполнена треть-четверть поля. К 200 количество заполненных клеток приближается на грани проигрыша.
313 641546
>>41533
Не очень хочется чтобы фпс снижался в зависимости от заполненности поля. Да и в других аркадах типа арканоида обратная зависимость будет.
314 641549
>>41546
Тогда предлагаю два хардкорных варианта:
1. Отрисовывать шейдером.
2. Отрисовывать на канве.
Сам как-то хотел тряхнуть стариной и попробовать рисовать на канве, но поскольку я нацелен на пека, то оставил попытки и пользуюсь тайлмапами.
315 641551
>>41549

> Отрисовывать на канве.


Так оно ещё и рекомендуется для того же тетриса! Внезапно!
https://docs.godotengine.org/ru/latest/tutorials/2d/custom_drawing_in_2d.html
1581008591570.png62 Кб, 605x724
316 641554
Накидал тут заготовочку для замены тайлмапа на кастомдроч в своём тетрисе. Пойду посру. Держу в курсе.
317 641557
>>41551
Оно хоть аппаратно рисуется?
318 641559
>>41557
Я не знаю. Давайте заглянем в исходники?
>>41554
Ну, собственно, вот и всё. Полнофункциональная замена тайлмапа (в части отрисовки простейшего набора квадратных тайлов) пикрелейтед:
319 641560
>>41559

>Я не знаю. Давайте заглянем в исходники?


Ну что, заглянул?
320 641561
>>41560
Не. Я чай пил. И ещё в ньюсаче раковал. Если честно, я не вижу смысла заглядывать. Ведь в годоте всё, абсолютно всё выводится через ГЛЕС-драйвер, выбираемый в правом верхнем углу. То есть, как бы ты не извращался с нодами, в конечном итоге всё выведется на видеокарту и ею аппаратно отрисуется. Кроме ЦПУ-партиклов в ГЛЕС2, которые введены недавно и по сведениям документации, рисуются программно.
321 641564
Можно ли и не муторно ли будет в годоте делать чанки, которые подгружаются по мере перехода игрока и которые сами по себе содержат ноды?
322 641569
323 641570
>>41564
Буквально в прошлом треде обсуждали и перетекли в этот тред. Треды читать полезно. Даю ссылку на последний пост в цепочке: >>35481
Мы правда не называли это чанками, но я думаю, терминология тебе не помешает разобраться. Речь о пуле чанков, реализованном через ветвь нод в памяти, отдельную от дерева.
324 641571
>>41559
Добавил ещё один такой объект для пенели Next и начало помаргивать из-за того, что ради отрисовки одного тайла перерисовывается всё поле. Всё таки придётся реализовывать заложенную изначально вот здесь >>41554 интеллектуальную отрисовку только меняющихся тайлов.
325 641573
>>41571

>интеллектуальную отрисовку только меняющихся тайлов.


Правда что ли? Прям как на GDI или в первом pygame, только я на pygame я сделал тетрис без этой техники дидов. Значит, там нет аппаратной поддержки(((
1581017509944.png8 Кб, 293x403
326 641577
>>41573

> Правда что ли?


Ну, пока не получается. Выходит говнокод. Ничо не рисуется, только один тайл. Дебажу...
327 641581
>>41570
Уверен что этот пулинг не держит все ноды загруженными в памяти?
328 641583
>>41549
Да это понятно, но тогда и смысл в годоте теряется. Я ж хотел шоукейс простого кода запилить.
1581019859723.png25 Кб, 368x285
329 641584
>>41581
Он держит в памяти только то, что явным образом держишь ты. Полная свобода по менеджменту чанками в твои руки. Отдалённые выгружаешь через queue_free() самостоятельно.
>>41573
>>41577
Короче говоря, интеллектуальная отрисовка по заветам GDI-дидов не потребовалась. Проблема оказалась тривиальнее, пикрелейтед.
330 641585
>>41583

> шоукейс простого кода


Что сложного в этой портянке >>41559 ?
331 641586
>>41549
Я кстати не уверен что рисовать на канве быстро. Это ж либо опенгл-примитивы, а я слышал они сильно тормозят, поскольку не треугольники, тогда и рисовать надо треугольниками даже линии и подгонять всякие антиалиасинги. Или рисовать в картинку и гонять текстуру каждый кадр.
332 641587
>>41585
Да ничего, но кроме игры придется еще и этот код класть. Не чисто
1581021325273.png165 Кб, 858x959
333 641589
>>41586
Ну, тут только самому тестить, скорость мерять. Не стоит доверять слухам.
>>41587
Ну, я своих целей только что достиг. Добился аутентичного лука энд фила из детства. Пикрелейтед.
334 641592
>>41589
Кажется, поле меньше было
335 641593
>>41592
Да, было 10 на 20, а я пиздюком мечтал, вот бы выпустили модель тетриса побольше. И вот, когда китайцы не доставляют, идёшь и реализуешь мечту самостоятельно!
336 641594
>>41593
У тетриса есть жоско прописанные правила, там поле определённого размера должно быть, как в шахматах.
337 641595
>>41594
Ой, вот не надо, а. Нарушай правила. Живи быстро. Целуй медленно. INSTALL GODOT
images (6).jpeg12 Кб, 214x236
338 641596
339 641623
>>41596
У шахмат есть жестко прописанные правила, там расстановка фигур строго фиксирована.
То что ты запостил это уже не шахматы.
1581061804255.png72 Кб, 782x252
340 641624
>>41623
Не пизди.
341 641630
>>41595
>>41596
>>41624
Права на Тетрис сейчас принадлежат Нинтендо, и у них есть методичка со всеми строго расписанными параметрами, такими как размер поля, цвет фигур, особенности управления и т. д. Шаг влево-шаг вправо - расстрел. Впрочем, вы и сами это без меня знаете.
342 641633
>>41624
Недавно видел соревнования по реалтайм шахматам. Выглядело очень забавно. Там можно двигать все фигуры одновременно, но у каждой фигуры есть куллдаун после каждого хода.
343 641634
>>41630

>Права на Тетрис сейчас принадлежат Нинтендо


У них же были права только на версии для консолей, не?
344 641641
>>41630
Это как раз дополнительный аргумент почему в клоне тетриса не должно быть такое же поле.
345 641647
>>41641
Всё равно легально ты его не выпустишь, даже с полем другого размера.
346 641654
>>41630
Это традиция такая, раз в год постить беспруфные маняфантазии насчет тетриса? Опровергаемые пятью секундами в гугде.
sage 347 641657
>>41647
Так он не тетрис выпускает, а брикдроппер.
1581081382265.png56 Кб, 300x727
348 641661
>>41630

> Права на Тетрис сейчас принадлежат Нинтендо



>В 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, Сергей Брин послал Пажитнова нахуй.



Надо бы внести это в шапку ньюфаготреда, чтобы залётным неповадно было хуйню нести.
1581081555476.png608 Кб, 1759x922
349 641663
>>41661
Скрин посыла нахуй вдогонку.
sage 350 641669
>>41661
Не читай советских википедий. Гугли суд 2012, там американский судья перечислил признаки Тетриса защищаемые законом, в том числе поле 10 на 20
351 641671
>>41661

>(только запатентовать)


Ну вот, епта, и хули они не запатентуют?
352 641675
>>41669
Загуглил. Там доебались до клонирования лука и фила. И действительно. Игры-клоны выпускать неправильно и подло. В этом вопросе я полностью поддерживаю сторону обвинения.
Теперь встречный вопрос. Как упомянул анон выше >>41657 я делал клон аппаратного устройства. Насколько юридически законно использовать этот клон как вспомогательную игровую активность в тридэ эрпогэ с открытым миром, домиками деревянными набигающими и корованами за 1999 руб в стиме?
1549198383585.png263 Кб, 1637x994
353 641676
>>41671
В свое время, Pajitnov не смог запентовать свой invention потому что работал в Soviet Academy of Sciences, в которой все права передавались government сроком на 10 лет. А даже если бы и запатентовал, то срок 20 лет уже вышел.
354 641678
>>41676
Мдаа лоханулся паренек. Но вышел из ситуации в итоге неплохо.
355 641700
Новая тяночка, годаны!
https://www.youtube.com/watch?v=edJFocUd10s
356 641706
>>41700
они охуели, не успела еще видео не одного полезного выложить уже патреон блять пиарит. Хотябы онлифэнс бы пиарила с учетом что тян
1581153339487.png94 Кб, 1032x667
357 641747
Помогите мне победить прокрастинацию :с
Вместо того, чтобы делать игры, я реализую жсон-схему в годоскрипте.
sage 358 641788
как годот дружит со звуком? можно ли без задержек воспроизводить десяток звуков в одну долю секунды, несколько раз в секунду, чтоб ничего не пошло по пизде?
image.png388 Кб, 474x355
sage 360 641812
>>41796
Благодарствую, будем попробовать.
1581196046744.png70 Кб, 671x464
361 641838
>>41747
Памахити!
362 641858
>>35427 (OP)
Что за хуйня с версией Годота 3.2? В версии 3.1 всё работало, теперь VehicleBody стоит на месте.
363 641859
Дополню: они что-то намутили с VehicleBody, из-за чего мой автомобиль едет со скоростью 1 хуан в час на любой мощности двигателя
364 641861
А, эти дурачки добавили галочку use as traction, но уведомили о ней только в жопе гитхаба и на вики пока не видно обновлений по этому поводу
Надо галочку use as traction на колёсах пометить
365 641897
>>41861
У меня примерно такое же было при переходе с 3.0 на 3.1 с анимацией частиц. Бомбил сильно. Вся анимация перестала работать и выводился спрайтлист целиком. И все связанные с анимацией настройки ИСЧЕЗЛИ!!! Как же я бомбил! Как же я проклинал Хуана! А потом методом тыка обнаружил, что анимация подключается отдельным шейдер-ресурсом и только в режиме GLES3. В документации наверное и по сей день не отражено.
366 641957
>>35427 (OP)
Что такое "Ассет"? Именно в годоте
367 641962
>>41957
1. Это цифровой ресурс (картинка, звук, 3д модель) - https://docs.godotengine.org/en/3.2/getting_started/workflow/assets/index.html
2. Готовый "строительный кубик", дающий какую-либо функциональность, обычно ставится как аддон в проект, либо плагин в редактор, изредка как модуль в движок. https://godotengine.org/asset-library/asset
1581253248191.png48 Кб, 583x380
368 641964
>>41838
Моё лицо моя главная функция, когда понял суть жсон-схемы:
369 641973
>>41962
Спасибо. Я тут посижу с вами пока не надоест
370 641977
Котаны. Есть некий код, который вытаскивает числа из массива, числа могут быть целыми и дробными. Почему-то целые числа он не видит в упор, считая все числа float'ом. Типизировать числа в массиве скрипт в данном случае к сожалению не может. Я имею ввиду что-то типа PoolTypedArray<[T1, T2, ... Tn]>
371 641979
>>41977
Я обычно могу расшифровать любые непонятные вопросы, но ты победил, признаю. Какие то квадратные скобочки внутри угловых, массивы из разнородных типов, объясни нормально.
372 641982
>>41979
<> - элемент типизирования по шаблону (быдляцк. "дженерик") примеры List<T> где List общий тип, Т уточняющий тип, List<String> означает типизировать общий тип списка до строкового.
[] - элемент описания массива, пример [T1, T2, T3] массив уточняющих типов для шаблона выше.
Gdscript позволяет создавать массивы из разнородных элементов. Но не умеет в типизирование.

Слоуфикс:
>>41977

> Я имею ввиду что-то типа PoolTypedArray<T1, T2, ... Tn>


Вот такое гдскрипт не умеет. Умеет шарп, но та задача, что я решаю в гдскрипте, в шарпе имеет готовые решения, тысячи их.
373 641988
>>41977
Решил проблему. Отбой. Любая проблема решаема, если немношк подумать.
1444253370337.png25 Кб, 616x292
374 641990
>>41982
Я знаю, что такое дженерики в C# (и в чем разница с шаблонами), но мне кажется ты пишешь про несуществующую фигню, что-то вроде Array<int OR float>. Ну да ладно.
В любом случае PoolTypedArray нету, есть только PoolRealArray, с другой стороны обычный Array таки хранит тип объекта, ты можешь его проверять через typeof(variable)
375 641992
>>41990
Именно так. Я просто взглянул на код под другим углом и добавил ещё один if typeof(bla-bla-bla) && data == int(data)
376 642039
Годнота подъехала:
https://www.youtube.com/watch?v=SI1bmViq1JA
377 642048
Не хочу разводить срач, но как фиксить оптимизацию 3д-проекта, если на другом движке (не буду упоминать его здесь) на аналогичной сцене с 3д мешами больше фпс на мобильных устройствах? Выбрал годот из-за удобного языка, поэтому почему я не остался на том движке можно не спрашивать.
Пока думаю, как менять разрешение на мобильных, ибо у меня смена разрешение работает только на десктопе
378 642049
>>42048
Это довольно обширная тема, поэтому для начала опиши в общих чертах жанр, компоновку сцены и т.д., какие фичи используются.
Разрешение выставляется где-то в настройках проекта -> 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д спрайты).

У Годота есть особенность прогрузки шейдеров и моделек при спавне. Чтобы этого не происходило, по видимости, надо делать по аналогии со Скайримом, в котором была комната куда складывались все трупы, а тут надо при загрузке уровня выстрелить всеми снарядами и заклинаниями скрыто от глаз игрока.
Вот все что я вспомнил сходу.
378 642049
>>42048
Это довольно обширная тема, поэтому для начала опиши в общих чертах жанр, компоновку сцены и т.д., какие фичи используются.
Разрешение выставляется где-то в настройках проекта -> 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д спрайты).

У Годота есть особенность прогрузки шейдеров и моделек при спавне. Чтобы этого не происходило, по видимости, надо делать по аналогии со Скайримом, в котором была комната куда складывались все трупы, а тут надо при загрузке уровня выстрелить всеми снарядами и заклинаниями скрыто от глаз игрока.
Вот все что я вспомнил сходу.
379 642050
>>42049
А, вот что забыл. Не надо делать архитектуру уровня одним цельным мешем, а надо нарезать на кусочки, иначе не будет работать frustrum occlusion камеры.
380 642051
>>42049
Сложно, буду делать в 2д
На самом деле полезная информация, пошел думать с чего начать.
381 642053
>>42051
Я возможно не очень удачно вываливаю такую инфу.
Попробуй упрощенный план:
1. Включить gles2
2. Уменьшить количество источников света и теней, убрать процедурное небо
3. Запечь тени, не пользоваться gi probe
4. Поменьше перерисовок в одном месте экрана, учитывая что то, что скрыто препятствием, все равно рисуется
5. Снизить количество вершин в мешах, размеры текстур.
5. При необходимости добавить lod/чанки/порталы/мультимеши
Также, прочитал, что в Годоте есть какой-то новый профайлер с синхронизацией, работает по usb-шнурку, суть такова - в редакторе отключаешь источники света, ноды с мешами, и тут же видишь что вносило вклад в тормоза.
382 642061
>>41861
>>41897
Вот, кстати, да. Хуан бы на полученный грант, занялся приведением документации в нормальный вид. А то дохуя моментов которые в доках либо хреново описаны, либо вообще никак.
383 642062
>>42049
Анончик, а можешь накидать подобных советов по оптимизации чисто 2Д проекта (пиксельный платформеро-квест) под мобилки?

А то из всех моих изысканий пока только подходит отказ от тайлмапов, заменой их на статичные пикчи (>>40875
). И то, стабильных 60fps все равно не получается добиться, постоянно идут провалы.
384 642068
>>42062

> постоянно идут провалы


Возможно, у тебя по логике игры грузятся объекты, например, пули для оружия, у которых в _ready() что-нибудь долгое вычисляется?
385 642073
>>41675

Всё очень просто, с китайцев спросу нет, они не люди, с тебя будет, поскольку ты хоть и сноуниггер но по прежнему белый и географически по прежнему в европе.
386 642076
>>42062
Да у тебя вроде и так все нормально было, просто телефон слабый? Пока слежу за прогрессом нового батчинга теперь тут https://github.com/godotengine/godot/pull/35957
Обещают 5х прирост на тайлмапах, сегодня соберу и погоняю.
387 642081
>>42073
Блеать. Я так и думал. То есть, поле 12х24 не поможет? Надо туда чисто свои игры пихать и внешний вид делать непохожий?
388 642093
>>42076
Качаю
git fetch origin pull/35957/head:batch-2d
git cherry-pick a78034682a7e7038c8b0111e42c3325bc92a2337
389 642097
>>42093
Гитобог, расшифруй команды. Я понял только что качаешь головную ветку бранча 35957
390 642098
>>42097
Сам полчаса составлял. 1 команда качает пулл-реквест 35957 и создает бранч под названием batch-2d.
Черри пик мерджит коммит под указанным номером оттуда в мой мастер, только эти 4 измененных файла, иначе он мне весь годот 4.0 выкачает.
391 642100
>>42098
Извените за сленг.
392 642104
>>42100
>>42098
То есть, получается, у тебя весь движок 3.2, а эти 4 файла из 4.0 лично твой пека у себя хранит под бранчем с отдельным именем и в случае чего перекачает всё заново в этой же конфигурации?
393 642105
>>42104

>у тебя весь движок 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 измененные файла.
394 642106
>>42105
С нетерпением жду, чем всё закончится. Было бы круто подрубать фиксы из мастера в стабильную сборочку. И желательно, чтобы стабильность не херилась.
395 642125
Снова вопрос про то, как лучше реализовать мою задумку. Дана одна сцена и меню выбора уровней. Необходимо, чтобы при нажатии, например, на кнопку уровня под номером "2" загружалась сцена с дополнительным условием, например расположение точки финиша на сцене.
И ещё вопрос как лучше сделать вызов окна выигрыша. В моей реализации я просто включаю скрытую ноду окна выигрыша Короче говоря хочу меню выбора уровней как в Энгри Бердс и прочих подобных дрочильнях.
396 642140
397 642150
>>42068

>Возможно, у тебя по логике игры грузятся объекты, например, пули для оружия, у которых в _ready() что-нибудь долгое вычисляется?


Вот именно, что нет. Просто статичный уровень, персонаж на нем и немного вывода на экран (НЕ в консоль) для дебага. И просто гуляя туда-сюда периодически получаю провалы на 5-10 fps.
-------
>>42076>>42076

>Да у тебя вроде и так все нормально было, просто телефон слабый?


вот конфигурация >>41078
не хайенд конечно, но в моем понимании тянуть, тянуть то должен.
-------
>>42076

>Пока слежу за прогрессом нового батчинга теперь тут https://github.com/godotengine/godot/pull/35957


>Обещают 5х прирост на тайлмапах, сегодня соберу и погоняю.


Анон, держи в курсе, пожалуйста. Если действительно хотя бы в 2-3 раза прирост будет, то тоже дерну эту ветку и попробую собрать.
-------------
398 642160
>>42125

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


Сцены, которые ты грузишь кнопками - это игровые уровни. Каждый твой уровень должен иметь функцию, которая в качестве аргумента принимает координаты точки финиша. То есть иметь единый интерфейс. После этого в коде кнопок у тебя стоит вызов этой функции.
Это только один из возможных вариантов.
399 642164
>>42150
>>42106
Держу в курсе - пока успел потестить пример из ишью, и тест 4anon из шапки. Пример действительно разогнался, как и заявлено, а вот мой тайлмап - нет. Почему, пока не смог выяснить. Может получится настроить профайлер через кабель, сучий андроид все время связь теряет.
400 642165
>>42125
Служебное меню, доступное в любой момент выполнения приложения должно быть синглтоном (великим и ужасным антипаттерном, за который не перезванивают). Добавляешь сцену с выбором уровней в автозагрузку, вешаешь на нее кнопку Esc например или Tab, по которой она появляется и скрывается. Из этой сцены кнопки выбора уровней задают параметр активной сцены в движке, которая есть игровой уровень, как написано выше. Второй вариант передачи параметров в игровой уровень: держать переменную в нём. Если загруженная главная сцена нуждается в параметре, она обращается к синглтону и берет эти данные у него. Я пользуюсь этим способом, у меня в авто загрузке всегда висит синглтон world, который, как видно из названия, держит в себе всю актуальную информацию об игровом мире (даже если это "мир" настольной игры). Этот же файл удобен как данные для файла сохранения. Способ я редко афиширую. Из-за антипаттерна в составе.
401 642167
>>42164
Не появилось ли годных эмуляторов андроида? Помню щупал парочку в дремучих нулевых, но работали они паскудно.
402 642171
>>42167
А хотя, что толку от эмуляторов? Они же на железе пекарни будут выполняться и там всё предположительно тормозить не будет.
403 642204
ЧЁ ЗА ХУЙНЯ С ТОРМОЗАМИ У VehicleBody
Выставляю в редакторе силу тормоза (brake) 100500, а годот сбрасывает её до одного. Что блядь удивительного, так это то, что в оф. руководстве написано, что BRAKE ОКАЗЫВАЕТСЯ МОЖЕТ ПРИНИМАТЬ ЗНАЧЕНИЯ БОЛЬШЕ ОДНОГО, но как это сделать не уточняется. Только потом узнал, что значение надо менять не через редактор, а через К О Д
404 642205
Или всё же выставляется, но редактор упорно продолжает показывать значение 1 у brake, хотя в самом руководстве рекомендуется опираться на значение 20-25 при 1000кг массы
405 642207
>>42205
>>42204
Неадекватность документации в ряде вопросов - факт известный. Юзай треды на реддите через поиск в гугле для более полноценной инфы. Пока так. Держись там. Хорошего настроения. И успешных игор.
406 642208
>>42167
Пару лет назад пользовался Nox, чтобы на компе играть в какую-то ферму, правда со временем он разбухал все больше и больше, да и скорее всего сливает все что на него устанавливаешь китайским авторам. Из забавного юзкейса - нашел в дампе памяти 3д модельку и выковырял ее. Искал чит энжином по примерному значению float. Правда, к этому времени хакеры вытащили ее то ли расшифровав сетевой трафик, то ли риппером с буфера opengl и выложили
407 642239
Как для платформера сделать проверку, что игрок стоит на полу?
Я написал код:

# 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

и он не работает, когда игрок движется влево или вправо.
407 642239
Как для платформера сделать проверку, что игрок стоит на полу?
Я написал код:

# 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

и он не работает, когда игрок движется влево или вправо.
408 642241
>>42239
Так, ну на первый взгляд:
1. надо перенести это в _physics_process
2. В move_and_collide вектор надо домножать на delta (в move_and_slide не надо)
3. velocity который ты рассчитываешь, вообще никак не используется?
409 642244
>>42239
Неправильно. Ты просто указываешь направление на пол единичным вектором Vector2.DOWN если пол внизу. И после этого у тела заполняется свойство is_on_floor()
Другое дело, если тебе надо цепляться за стены. В таком случае тебе вообще лучше рассмотреть переход плеер-контроллера на полноценный RigidBody c полноценной симуляцией физики, чем ебаться с этим кинематическим велосипедом.
410 642246
>>42244

> Ты просто указываешь направление на пол единичным вектором move_and_slide(velocity, Vector2.DOWN) если пол внизу.


Быстрофикс.
1581370189322.png40 Кб, 728x337
411 642268
Бля, у меня уже мозги вскипели! Как может брекпоинт не срабатывать на 81 строке но срабатывать на 84? Притом, что по показаниям локальных переменных она (функция вызываемая в 84й строке) отработала. Если ставить брекпоинты внутри _type_selection, они срабатывают. И вообще, после 76 строки сразу перескакивает на 84ю. Как может срабатывать функция, если её ещё не вызвала функция уровнем выше?
Если что я первым делом заподозрил глюк отладчика и перезапустил редактор.
412 642299
>>42268
Бля, утро вечера мудренее. Это похоже компилятор скрипта преобразовал

> a = b()


> return a


в

> return b()

413 642352
Я правильно понимаю, что если ты пишешь на C#, то у тебя не будет никаких автодополнений?
414 642354
>>42352
Под студией нормально вроде пишется, забудьте о моем глупом вопросе
415 642355
>>42299
Хотел вчера высказать такое предположение, но не думал, что гдскрипт делает такие оптимизации. Может, у тебя реально не тот if выполняется?
416 642359
>>42355
Да нет, иф именно тот.
417 642426
КАк сделать передвижение камеры перетаскиванием? Стрелочки ниудобна
418 642427
>>35427 (OP)
Помогите новичку. Как писать на C#? Он выдаёт только GDScript
419 642433
>>42427
Надо качать с сайта версию с c#. Или собрать самому. И иметь в виду что c# на айфоны пока не сделали, а в webassembly в альфе.
420 642446
>>42426
Управление в 3д редакторе:
Пр. кнопка мыши - вращать камерой
Ср. кнопка мыши - вращать вокруг выбранного объекта
Шифт + Ср. кнопка мыши - перетаскивание камеры редактора
Пр. кнопка мыши + WASD - движение как в шутере
F - навести камеру на выбранный объект.
1581441614880.png38 Кб, 703x482
421 642451
422 642458
>>42451
Какой же сишарп няшный. Да даже питон няшнее гдскрипта
423 642462
>>42458
Вкусовщина. Мне гдскрипт своим внешним видом нравится Такой-то питоно-луа-паскаль. А вот слоупочность его - разочаровывает.
424 642666
>>42106
>>42098
Потестил сегодня вечером немного, результат не то чтобы впечатлил, но около 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
425 642668
>>42666
Ну неплохо. Лишние фпс не помешают. Удачно я зашёл перед сном.
426 642697
А помните, пару тредов назад анон жаловался, что нельзя на лету менять скелеты под анимации. Как с этим ситуация в 3.2? Можем ли теперь запилить убийцу скайрима с модами, которые в готовую игру кастомный скелет устанавливают?
427 642698
>>42697
Поменьше слушай пиздаболов.
428 642699
>>42433
>>42451
Не. я написал код на C#. Но как его в годот засунуть. Когда привязыааю к сцене скрипт он создаёт новый гдскрипт
429 642700
>>42699

> как его в годот засунуть


Нужно скачать специальный годот-моно.
1505187180871.png42 Кб, 391x343
430 642704
431 642705
>>42699
Либо, если ты имеешь в виду, что у тебя уже есть .cs файл, то у каждой ноды, в свойствах, самое последнее свойство Script -> Load...
1494758583817.png55 Кб, 841x642
432 642708
433 642709
>>42697
Наверное, сегодня займусь. Часика через 4 покажу как.
434 642731
>>42700
>>42704
>>42705
>>42708
Спасибо, добра вам, няши.
sage 435 642753
Мне так стыдно, но я не умею по нормальному учится, только вот так, опытом. Но я уже день пытаюсь понять как эту камеру двигать. (Движение мышкой есть)
Move_and_collide для камеры не работает. Я очень тупой но мне очень нужно.
436 642756
>>42753
Опиши внятнее что ты делаешь.
Если контроллер игрока - то, логично, ты можешь приделать камеру нодой к kinematicbody игрока, которое умеет move and collide.
Если ты делаешь какую-то стратежку, то можно просто камере задавать translate.
Если у тебя катсцена, то вообще вроде бы можно нарисовать путь для пролета камеры анимацией.
437 642758
Котаны, ещё вопрос. Вот допустим есть у меня метка-триггер. Как сделать последовательность таких триггеров, чтобы после срабатывания первого срабатывал второй?
438 642759
>>42758
Точнее чтобы первый триггер исчезал и появлялся второй и так далее
439 642761
>>42759
По-моему, достаточно задавать $Area1.disable=true
440 642768
>>42761
Так а второй тогда как включать? Нет, ты не понял. Я хочу, чтобы оно всё автоматом шло. Я передаю сцене метки с координатами 1,2,3.., и они по очереди меняются
1545538916738.png148 Кб, 828x823
441 642783
>>42768
Ну например вот так
442 642785
>>42783
от души, спасибо
443 642786
>>42785
Разберешься, в общем все основное в первой половине, а во второй это уже как ты сам захочешь задавать области, их формы и тд
1488041223235.png157 Кб, 1502x606
444 642789
>>42785
Я все сильнее упростил, теперь можно просто прикрепить к ноде со скриптом список всех триггерных зон, и они будут срабатывать по порядку. А там уже рисовать их на карте как душе вздумается.
445 642792
>>42789
9-ю строчку забыл стереть.
446 642793
>>42792
мне проект уже 16 числа сдавать, вместо разработки твоего пикрелейтед я почти неделю работал над красивыми шейдерами
447 642794
>>42793
Да, шейдеры сложно, я их пока не осиливаю.
448 642828
>>42709
До конца разобраться не вышло, продолжу завтра.
Общая идея такая - импортируем одного персонажа, импортируем второго. Сохраняем анимацию первого в отдельный файл .anim. Загружаем второму. Он воспроизводит анимацию. Проблема с T-позами. Она начинает проигрываться с той позы, в которой был персонаж. Надо как-то их сначала в блендере приводить к T-позе перед экспортом, возможно.
449 642849
>>42753

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


Попробуй клиповым мышлением затащить:
https://www.youtube.com/watch?v=-wBBEmq8ku0
450 642851
>>42828
Спасибо за твой труд. Помни, что основная задача: прикручивать скелет без модели к модели без скелета во время выполнения игры в движке. Очевидно, что файл .аним будет жёстко привязан к определенным костям скелета. Собственно, это же мы наблюдаем при моддинге скайрима. Сначала мы ставим набор анимаций, ставим требуемый скелет, затем запускаем утилиту ФНИС, которая чототама волшебное генерирует, а по факту она генерирует именно аналог .аним-файлов.
И остаётся главный вопрос: как быть с весами вершин меша?
451 642925
Кто-нибудь уже делал бенчмарки со сравнением производительности мешинстанса и обычным мешем?
452 642928
>>42925
Кто-нибудь непременно делал. Но гуглить лень. Пример из документации ( https://docs.godotengine.org/ru/latest/tutorials/3d/using_multi_mesh_instance.html ) тебя не устраивает?
453 643004
Зачем годотя открывает cmd мне когда запускается? Я же не дебаг-билд блин скачал, при этом она зачем то еще и выводит то, что во встроенной в редактор консоли уже показывается.
454 643008
Мое литсе, когда сделать систему сохранения и инвентарь получилось за несколько часов, а я думал буду несколько дней пилить. Однако шейдеры уже неделю учу, хотя думал за час управлюсь.
455 643021
>>41589
Блять, я ушел из треда месяца 3 назад и ты уже тогда постил этот же тетрис.
456 643035
>>42081
Напихай 15х23 например
457 643052
>>43021
А что бы и не постить, если в тему? Проект был написан за один вечер 3 месяца назад, выложен на итч и забыт. А тут ИТТ вскрылись новые данные, позволившие немного его пофиксить (перевести с тайлмапа на draw_texture). Что в свою очередь немношк пощекотало моё ЧСВ в том плане, что мой код настолько инкапсулирован, что мне было достаточно пары десятков минут, чтобы поменять способ отрисовки, не переделывая другие участки. В существующие реализации тетриса не смотрел принципиально. Знаю только что вся логика основана на проверках возможности поместить фигурку в новое расположение.
458 643059
Коллеги, я бы где-нибудь хотел выложить андроидовский проект на годот на обсуждение и возможно получить негативные отзывы на этапе прототипа. Это можно сделать на gotm.io? Какое там отношение к таким экспериментам?
459 643061
>>43059
Весь тред ждёт героя, который выложит хоть что-то на gotm и расскажет нам. Может им будешь ты?
460 643070
>>43061
Да, там вроде все просто. Работает нормально. Только нет описания игры, реализации донатов и непонятно кто разработчик, когда находишь игру.
461 643075
>>43070
В продолжении темы, если хотите - можете сыграть: https://gotm.io/podotchet/space
462 643077
>>43075
Нихуя не понел, как играть. Начинается бой. Кораблики куда-то летят. Мышкой скроллится игровое поле. И? Кнопка документации в главном меню не работает. Экранных подсказок нет.
Безымянный.png129 Кб, 980x434
463 643081
>>43077
Там тыкаешь мышкой на клетку, подсвечивается где можно строить здания. Строишь здания нажав на голубую кнопку с чертежами.
Как мне сделать так, чтобы было понятно?
464 643082
>>43077
Если выделить уже построенное здание, можно будет задавать маршрут корабликам.
465 643087
>>43081

> Как мне сделать так, чтобы было понятно?


Ну, как минимум, написать мини-гайд в главном меню. Идеально же - делать всплывающие подсказки по наведению на объекты мышкой и при достижении ключевых этапов игры. И не забыть добавить отключаемость этих подсказок в настройках, для продвинувшихся игроков.
466 643093
>>43087
Я записал твои советы. Пока что временно влил версию с "документацией". Надеюсь, она поможет кому-то.
467 643094
>>43075
Где-то на 9 ходу игра наглухо зависла (upd: ааа, видимо из-за этого >>43093 )
И ещё минус - очень медлительные ходы. Надо добавить пропуск отсчёта до следующего боя, либо конфигурировать его в настройках.
468 643095
>>43087

>всплывающие подсказки по наведению на объекты мышкой


У него же вроде для андроида, какие еще всплывающие? Надо сбоку где то делать.
469 643096
>>43094
Я добавлю пропуск ходов. Версию с долгим "ходом" поставил для того, чтобы было время покликать. Чем дальше по ходам, тем больше микроконтроля и начинаешь не успевать. Так что пропуск хода - идеален.
470 643098
>>43095
Он имеет ввиду, как будто ты строишь здание, и если тебе не хватает денег - вылезает ошибка. Тоже самое с обучением - можно сделать, "если ход = 0 и уровень бота лоу - вывести подсказку на экран". Это действительно полезно. Потому что я завяз в разработке и не вижу пользовательского опыта, а уже кликаю по привычке и думаю, что все понятно.
471 643102
>>43096
Ну и поскольку игра предполагает ПвП то идеальный вариант уже известен и юзается большинством настольных онлайн-игр: есть отсчёт, по окончании которого начинается матч, и есть кнопка готов у каждого из участников. Если все участники кликнули кнопку - отсчёт обнуляется и матч стартует. При игоре с ботом - бот очевидно тоже нажимает эту кнопку у себя, завершив свои действия.
472 643110
>>43098
А я имею в виду, что подсказки в мобильных играх должны не вылезать в том месте, куда кликнули, а постоянно висеть, например, после выбора юнита.
473 643114
>>43102
Да. Я добавлю это в ближайшие дни. Пока что меня очень дико раздражает тот момент, что я совсем забыл про подсказки.
На данный момент ещё раз перебилдил. Теперь начало первого и второго хода оповестит Вас об основных двух возможностях - строить здания и изменять маршруты.

>>43110
Да, конечно. Я постараюсь поработать над этим.
1581779454779.png114 Кб, 809x885
474 643121
Еее! Затащил изи бота.
475 643124
>>43121
Ваше впечатление как первого затащившего изи бота?
1466495682693.png206 Кб, 873x926
476 643126
>>43121
А я на 9-м. Правда пока нихуя не понял.
477 643127
>>43126
Основная концепция в трате ресурсов. Потеря здоровья главной базы до определённого числа наиболее выгодна, чем потеря ангара. Так что до 5 здоровья, вы стараетесь убивать вражеские ангары, а после защищать ими главное здание. Даже убийство 1 вражеского ангара даёт вам преимущество в 1 урон в ход, что позволяет полностью дефиться своими кораблями и наносить 1 урон, получая преимущество. Лоу бот использует раш тактику - все в мейн здание. Что и делает его лёгким.
478 643143
Выковка годноты продолжается. Лицензия MIT!
https://www.youtube.com/watch?v=3EbrCXsgMV8
479 643147
>>43127
Управление пока подглючивает, неудобно. Зависает. Забывает проложенные маршруты.
480 643149
>>43147
Ты их достроил? Довел до базы врага нажав на конечную точку или здание? Как мне сделать так, чтобы это не было проблемой? всегда устанавливать маршрут?
481 643150
>>43147
Так же интересно, с какого устройства играл. Что значит "управление подглючивает"? Прям лаги? Или при нажатии не нажимается? Проблемы с выделением клеток или камерой?
482 643151
>>43149

> Как мне сделать так, чтобы это не было проблемой?


Индикация прокладки маршрута. Ячейка текущей конечной точки мигает, означая, что маршрут не проложен. При клике на ячейке со строением маршрут подсвечивается целиком, сигнализируя что успешно проложен. Если игрок бросил прокладку (или не успел) то маршрут докладывается автоматически по алгоритму бота.
483 643154
>>43151
Сейчас маршрут зеленый, если не проложен. Красный - текущий. Единственный способ, чтобы маршрут сбросился автоматически, поставить новое здание на маршруте (корабль не может пролетать через здания и перестраивает его до главной базы).
Я записал твои замечания. Спасибо, что делаете игровой опыт других игроков лучше.
484 643155
>>41589
Анон, чтобы избежать любых лицензионных претензий в будущем, и при этом, чтобы добавить в свою тридэ-эрпогэ ностальгии по 90м, сделай вымышленный игровой гаджет с картриджами-экранами. Суть токова. Без картриджа девайс не работает. Картридж вставляется сверху и на его лицевой части имеется ж/к-экран с раскладкой для игры и чип-контроллер. У девайса есть только кнопки для управления игрой. На локациях игры можно найти картриджи с такими играми, как крестики-нолики, пятнашки, и т.п. 2х-3х игор-картриджей будет достаточно, чтобы вызвать у игрока за 40 стойкий приступ ностальгии.
485 643156
Почему условие, повешенное на area не выводит true, если vehiclebody входит в area?
Сам код у area: overlaps_body(get.parent().get_node('car_vehiclebody'))
486 643157
>>43156
Лучше делай через группы. Мой тебе совет.
487 643159
>>43157
Сделал так:
func _on_area_body_entered(body):
if body.get_name()=='car_vehiclebody':
image.png6 Кб, 362x44
488 643160
>>43157
Блять куда двач форматировал код
Всё теперь работает, лол
489 643162
>>43159
На первый взгляд никакой разницы, тоже сравнение строки со строкой, как и группы, но в случае изменения имён объектов, тебе придётся лезть в код и вспоминать, где у тебя имя захардкожено.
Так что совет в силе - юзай группы.
>>43160
Форматирование не поддерживается. Ебанутое ретроградство с поддержкой вакабамарк ещё и съедает звёздочки. Юзай пастебин или скрины.
1444209100382.png401 Кб, 1838x933
490 643163
>>43150
Я с винды мышкой.

> Что значит "управление подглючивает"?


Было неудобно. Другой анон прав, не вполне понятно что ты в режиме прокладки маршрута и он не закончен. Я думал, что маршрут закончен, нажимал на другой домик, а маршрут начинает прокладываться взад. Нажимаю на кнопку в углу, а она не отжимается. И вообще необходимость прокликивать каждый домик, потом кнопку, потом пару точек, привело к тому что я не успеваю с 5 домиками прокликать всем маршруты.
Зависания были, не понял чем вызваны, улетают только первые корабли, задние стоят, при столкновении замирают, взрыв не показан, потом игра зависает. Сначала думал что это при повторной игре, но и при обновлении странички такое 2 раза словил.
Зарашил среднего бота без всякого ресурс менеджмента, просто посылая 3-х в обход, и строя заводы в передних двух клетках.
491 643167
Ещё вопросец. Я удаляю child ноды через queue_free, в списке нод она исчезает. Однако, когда я чекаю кол-во child нод, get_child_count() выдаёт мне число 1
492 643170
>>43167
а, забыл, что надо просто free писать
493 643171
>>43167
queue_free не удалаяет ноду, а только ставит ее в очередь на удаление к следующему кадру. Это надо, чтобы игра не упала, если нода используется где-то в списках внутре движка.
494 643172
Чё за opcode #38 report please
495 643173
>>43172
Тебе пзда.
496 643174
>>43172
Я не очень понял по описанию, но вроде суть примерно такая - в gdscript некоторые конструкции вида
var a = Class1.Class2.func()
теряют временный объект, поэтому надо разбить на
var a = Class1
var b = a.Class2.func()
497 643179
>>43163
Я не совсем понимаю, как мог забагаться взрыв. Я тоже тестил с винды, и такого у меня совсем не наблюдается.
Как мне сделать "понимание" "прокладки маршрута" лучше?
image.png5 Кб, 308x51
498 643182
>>43172
>>43173
>>43174
Ошибка за ошибкой: opcode#38 теперь перестал появляться, зато теперь всё крашится и выдаётся вот это:
499 643183
>>43182
На сегодня сеанс телепатии кончился, мы же не знаем что ты там делаешь.
500 643184
>>43163
На данный момент пока что запиливаю, чтобы перепрокладывался только маршрут до точки, где его сбили зданием и складывался с куском, где его никто не трогал. Надеюсь, это облегчит участь игрока.
image.png13 Кб, 507x94
501 643185
>>43183
Будто это что-то даст
1502558056470.jpg23 Кб, 477x268
502 643187
>>43185
Действительно, ничего не дало.
А как ты хранишь скрипты, прямо в сценах? Попробуй просто перезагрузить проект.
ПЕРЕКАТ # OP 503 643189
504 643192
>>43185

> get_node(/root).add_child()


Это делается через автозагрузку в настройках проекта. Только через это меню ты сможешь добавить чайлд руту.
Покормил
505 643196
>>43192
так до этого я и без автозагрузки добавлял вроде
1581797768580.png10 Кб, 1014x76
506 643200
>>43196
А теперь не будешь.
Покормил #2
507 643203
>>43200
Насколько я помню, все очень просто - нельзя вызывать add_child из ready, потому что, собственно, parent node is busy setting up children. Как и написано, ты можешь вызвать call_deferred("add_child"... чтобы добавить в следующем кадре, либо вызвать add_child в первом вызове _process.
508 643211
>>43200
у меня такого нет
покормил
509 643613
Игра, написанная на шарпе, бужет работать на андроиде?
Тред утонул или удален.
Это копия, сохраненная 31 мая 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /gd/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски