Был обновлён парсер тредов Двача, просим анонов обращать внимание и сообщать об аномалиях с содержанием сохраняемых тредов.

Godot #14

 Аноним OP 14/01/20 Втр 03:52:14 #1 №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/
Loading...
Аноним 14/01/20 Втр 04:57:09 #2 №635439 
Отписываюсь в тред по самому лучшему двиглу на планете Земля, я первый!
Аноним 14/01/20 Втр 07:40:08 #3 №635462 
>>635439
надеюсь и последний
Аноним 14/01/20 Втр 08:28:47 #4 №635467 
>>635173
>Пулы в движке тоже есть.
Тыкни лицом, не нашел.
Аноним 14/01/20 Втр 09:22:05 #5 №635468 
>>635467
https://godotengine.org/qa/2239/what-is-the-best-way-to-do-object-pooling
> There is no GC in gdscript so your game wont pause in random moments of time to free the memory, this is why there is NO NEED for object pooling in gdscipt.
Если ты говоришь о пулах, как о парадигме, то эту функцию выполняет само дерево сцены. Создай ноду, но не включай её в дерево. Храни её в переменной (my_node_pool например), добавляй в неё ноды, которые требуется держать в памяти наготове, при этом у них не будут обрабатываться коллбэки. Добавляй и удаляй их путём репарента в основное дерево / из него.
Репарент делай осторожно, через call_deferred, что обсуждалось в прошлом треде
https://godotengine.org/qa/9806/reparent-node-at-runtime
Аноним 14/01/20 Втр 11:55:02 #6 №635481 
>>635468
Благодарствую, анон. Тонны нефти скачиваний тебе.
Аноним 14/01/20 Втр 21:07:16 #7 №635554 
>>635462
С утра рано приходится вставать, вот и бесишься!
Аноним 16/01/20 Чтв 07:50:51 #8 №635742 
unknown-2.png
Чем Годоти хорош именно для 3D?
Платформеро-рогаликоунтерменш мнение знать не хочу, поэтому 2D мимо.
Если порыться в гитхабе, то есть куча свободных 3D движков разной степени кривизны, в чем существенное отличие его от конкурентов? Что по оптимизации и простоте работы? Сцена из трёх кубов не будет выдавать 3 фпс? Есть ли готовые 3D игры на Годоти дабы посмотреть среднее по больнице или на Годоте сидят только сектанты 2D, а 3D "для галочки", как это было в Gamemaker 1?
Почему именно годот тред, а не Lumix, Wicked, Armory, Xenko и т.д.?
Или все отличия заканчиваются на финансировании Хуана, что позволяет вкладывать деньги в пиар?
Аноним 16/01/20 Чтв 08:01:48 #9 №635743 
>>635742
>Lumix, Wicked, Armory, Xenko и т.д.
Это заброшенные движки без комьюнити.
Аноним 16/01/20 Чтв 08:43:58 #10 №635746 
> Чем Годотн хорош именно для 3D?
Рабочим процессом. Движок требует минимум сторонних инструментов для создания готовой игры. Фактически, нужен только 3D-редактор.
> в чем существенное отличие его от конкурентов?
Зашкаливающая простота. В движок вкатываешься за день. В скриптинг за второй день.
> Что по оптимизации и простоте работы?
Есть проблемы с оптимизацией. Проблемы есть. Но над ними работают.
> а 3D "для галочки", как это было в Gamemaker 1?
Начиная с третьей версии триде уже не для галочки.
> Сцена из трёх кубов не будет выдавать 3 фпс?
Дело не в количестве кубов, а в количестве нормалмапов в материалах. Над этим работают.

Ой, кажется я забыл номер поста! Или не забыл? )
Аноним 16/01/20 Чтв 13:24:20 #11 №635790 
>>635746
>Дело не в количестве кубов, а в количестве нормалмапов в материала
А окклюжен куллинг уже завезли, можно делать локации размером больше одного экрана без просадок фпс?
Аноним 16/01/20 Чтв 14:24:56 #12 №635801 
>>635790
Что такое "размером в экран" в применении к 3д объему? Ты под чем то?
Аноним 16/01/20 Чтв 14:39:21 #13 №635803 
>>635801
"Размером в экран" - это игра с фиксированной камерой, отсутствием движения камеры или скроллинга, весь игровой процесс которой происходит в рамках этого экрана. Например, тетрис, или бомбермен.
Аноним 16/01/20 Чтв 14:40:55 #14 №635804 
>>635803
И причем здесь окклюжен? Если у тебя будет скролл над картой бомбермена рамером 10х10 экранов, окклюжен практически никак не повлияет.
Аноним 16/01/20 Чтв 14:41:21 #15 №635805 
>>635804
зы. потому что этим занимается фруструм куллинг.
Аноним 16/01/20 Чтв 16:06:58 #16 №635822 
>>635805
А он в годоте есть?
>>635804
Для приведенного тобой примера да, окклюжен работать не будет. Но если у меня вид из глаз и большая карта с домиками, в которые можно входить, а в домиках куча мебели, лежат вилки на столах, я правильно понимаю, что сейчас в годоте будут рендериться внутренности каждого домика, попавшего в кадр, если смотреть на них снаружи?
Аноним 16/01/20 Чтв 16:18:40 #17 №635828 
1553070052369.webm
>>635822
>А он в годоте есть?
Есть конечно.
>Для приведенного тобой примера
Это был приведенный тобой пример. Или ты другой анон?
>например, тетрис, или бомбермен.

>я правильно понимаю
Правильно. Будет через пол года. Если тебе надо раньше, придется самому отключать вилки-ложки, например, когда персонаж отошел за area рядом с домом.
Для интерьеров есть https://github.com/lawnjelly/godot-lportal
Аноним 16/01/20 Чтв 17:11:43 #18 №635837 
>>635828
Из видоса не совсем понятно где у стрелочки перед, так как впереди ее выдающейся части исчезают стены.
Аноним 16/01/20 Чтв 17:26:30 #19 №635840 
1441578137021.gif
>>635837
Это не стрелочка. Так обозначают конус видимости из камеры. Да, можно было сделать нагляднее.
Аноним 16/01/20 Чтв 18:38:44 #20 №635848 
>>635828
>ручками расставлять порталы в 2к20 веке
Не, спс, я игры хочу делать, а не заниматься дрочкой.
Аноним 16/01/20 Чтв 18:43:05 #21 №635850 
>>635848
Нет, ты не хочешь делать игры, иначе уже давно бы расставил порталы вместе с дверьми, это занимает наносекунду времени.
Аноним 16/01/20 Чтв 18:44:52 #22 №635852 
>>635848
Ну так свали нахуй в движкосрач-загон.
Аноним 16/01/20 Чтв 21:54:44 #23 №635873 
>>635828
>Будет через пол года
Лол. Это разве не базовая фича которая должна быть одной из первых вообще? Да хоть сраный з-буффер перебрать, долго чтоль
Аноним 17/01/20 Птн 09:32:04 #24 №635959 
>>635873
Как видишь, этой базовой фичи в годоте нет, на том видео показан левый васянский модуль, с которым нужно перекомпилировать движок и шаблоны экспорта, и который криво работает.
Аноним 17/01/20 Птн 15:57:20 #25 №636067 
изображение.png
Перекатываюсь со своими баклажанами и механикой из юньки в годотоцаря.

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

И еще вопрос пока не забыл. Если я двигаю одну на другую коллизию, как из сортировать. А то сразу две\три\... двигаются.
Аноним 17/01/20 Птн 16:19:50 #26 №636070 
cESsIBFO1Q.webm
>>636067
одна на другую-кун, как победить
Аноним 17/01/20 Птн 16:38:37 #27 №636073 
>>635959
Раз этой фичи нет, значит она не базовая.
Аноним 17/01/20 Птн 17:13:28 #28 №636084 
>>636067
Тебе вот прямо совсем обязательно вручную из кода коллизии добавлять? Просто добавить к ноде физический объект с коллизией религия не позволяет?
Потому что сделать это можно, конечно, но придётся дополнительно ебаться с регистрацией нового объекта в сервере физики.
Аноним 17/01/20 Птн 17:23:19 #29 №636086 
>>636084
В идеале сделать префаб уровня, закинул картинку и всё. Остальное на лету, при старте сцены. Похуй можно и руками, на сцене предполагается порядка 60-120 таких объектов. Руками тоже можно протыкать каждый.
Аноним 17/01/20 Птн 17:27:59 #30 №636088 
>>636067
Что еще за подобие префаба? Просто делаешь отдельную сцену characterZombie и туда в корень добавляешь кинематик, спрайт и коллижн. А потом всю сцену интсансишь в сцене игры.
Аноним 17/01/20 Птн 17:39:41 #31 №636089 
>>636088
>Что еще за подобие префаба?
забей юнити сленг, отвыкаю

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

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

Заведи GlobalSceneParameters.gd и пользуй на благо. вкатыватель-выше-кун
Аноним 17/01/20 Птн 17:51:48 #34 №636095 
image.png
>>636092
Для нескольких десятков переменных сойдет?
Аноним 17/01/20 Птн 17:52:53 #35 №636097 
>>636095
а чего нет? я пока не вижу проблем. Пусть убедят в обратном.
Аноним OP 17/01/20 Птн 18:20:00 #36 №636107 
>>636095
> Для нескольких десятков переменных сойдет?
У игры должен быть как минимум один синглтон, олицетворяющий действующий инстанс игры, это игровой мир, если там мир, или игровое поле с расстановкой фигур и правилами. Так или иначе, есть некая структура данных, которую лично тебе выгодно держать в памяти от начала и до конца игровой сессии. Эту же структуру удобно использовать в качестве файла сохранения (сериализовать).

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

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

class Lupa:
var zarplata = 300

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

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

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

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

файл zalupa.gd

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

print(pupa.za(lupa))
Аноним 17/01/20 Птн 20:05:31 #41 №636159 
>>636144
Дело вкуса, не люблю отдельный файл для каждого пука, если микрокласс на пару переменных. Насмотрелся на это в интирпрайз жабе.
Аноним 17/01/20 Птн 20:18:51 #42 №636169 
Совокупился с порядком ( не нашел как, через красивый пикабл кинетикбади решить. area2d и _unhandled_input только. Ну и жопа. А еще предлагали решение через кнопки О_о
Аноним 17/01/20 Птн 20:28:23 #43 №636175 
>>636067
Судя по всему вот через это
https://docs.godotengine.org/en/3.1/classes/class_bitmap.html#class-bitmap-method-opaque-to-polygons
Аноним 17/01/20 Птн 20:29:03 #44 №636176 
>>636175
И как исполь
https://godotengine.org/qa/49947/automatically-create-collisionpolygon2d-gdnative-gdscript
Аноним 17/01/20 Птн 20:30:06 #45 №636177 
>>636169
Про порядок ты имеешь в виду когда спрайты один над другим? Тоже год назад сношался с этим, тоже только area2d и unhandled input работал.
Аноним 18/01/20 Суб 00:44:50 #46 №636338 
>>636177
Ага, именно он.

>>636175
Попробую. Походу то что нужно. Thx.
В шапку Аноним 18/01/20 Суб 21:47:06 #47 №636581 
Ну что вы, бэтманы? Появилась новая платформа для публикации игр на годоте! Все что нужно - просто запостить пак-файл. Даже экспорт не нужен. Хотя, для некоторых это может быть минусом.
https://youtu.be/pathScTBsk0
Аноним 18/01/20 Суб 21:49:56 #48 №636582 
>>636581
Условия какие? Не получится что все что им отправишь становится их собственностью?
Аноним 18/01/20 Суб 23:32:15 #49 №636602 
1579379534116.png
>>636582
Уже неважно. Это поделие не работает в фаерфоксе.
Аноним 19/01/20 Вск 00:32:00 #50 №636620 
>>636581
И нахуя оно надо? Купить доменное имя, арендовать сервер за 5 баксов в месяц и можешь сам хоститься.
Аноним 19/01/20 Вск 03:21:14 #51 №636680 
>>636602
Забавно, потому что на моей некропека наоборот хтмл годота работало в лисе, но не в хромом
Аноним 19/01/20 Вск 05:07:00 #52 №636696 
ScreenshotBrave20200119-050544.png
>>636581
Работает прям в мобильнике, правда игры зумерское гиперкэжуальное г.
Аноним 19/01/20 Вск 07:31:09 #53 №636712 
Можно ли тут юзать 2д скелетную анимацию на 3д спрайтах?
Аноним 19/01/20 Вск 07:34:20 #54 №636713 
>>636712
Имею ввиду чтоб можно было анимировать движение в 8 направлениях в изометрии. Надо подменять риги и скелеты или это только для платформеров?
Аноним 19/01/20 Вск 11:59:09 #55 №636733 
14275323941370.jpg
>>635427 (OP)
Гайс, передо мной стоит такая задача:

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

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

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

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

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

Аноним 20/01/20 Пнд 11:42:15 #64 №636941 
Cancerapr.jpg
>>636922
Все понял, спасибо.
Аноним 21/01/20 Втр 03:06:31 #65 №637167 
image.png
Подскажите, куда копать, картинка состоит из множества sprite, куски в png-24. Фотошопил без АА. Не могу избавится от ебучих линий.
Аноним 21/01/20 Втр 07:45:11 #66 №637194 
>>637167
Отключить АА при импорте. Либо свойством filter либо пресетом 2d pixel (что делает то же самое).
Аноним 21/01/20 Втр 07:55:28 #67 №637196 
>>637194
И кстати ещё сам редактор при разрезе на куски может смягчать кромки. Выбери жесткое попиксельное выделение в фоторедакторе, если импорт не поможет.
При соблюдении обоих советов куски пикчи совместятся пиксель к пикселю. Но без сглаживания отдельные куски могут на краях выглядеть рвано. Тут три решения. 1. Резать под ровными углами, 1:2, 1:3, 1:4 и т.д. 2. Резать со сглаживанием а затем масштабировать вырезанный кусок на пару пикселов больше, чтобы края перекрывались. 3. Резать по кромкам изображённых объектов, пока не останется задний фон. Затем дорисовать задний фон, это лучше подходит, если у тебя многослойное изображение в формате psd, тогда просто слои сохраняешь в отдельные файлы.
Аноним 21/01/20 Втр 11:10:40 #68 №637224 
compute shader еще не завезли?
Аноним 21/01/20 Втр 11:20:14 #69 №637225 
>>637224
Пока что нет, только костыли
https://www.reddit.com/r/godot/comments/7o6usp/compute_shader_andor_get_back_data_from_gpu/
Надо подождать, пока завезут. В ожидании ждём, посаны!
Аноним 21/01/20 Втр 12:02:25 #70 №637231 
>>637225
уже год жду)
Аноним 21/01/20 Втр 12:12:24 #71 №637235 
>>637224
ЧТо считать собрался?
Аноним 21/01/20 Втр 13:02:54 #72 №637249 
>>637235
да пока уже ничего, проекты вкатились на другие движки

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

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

В любом случае, приму инфу к сведению, про порезку. Пол игры на этом строится. Когда отключил filter на импорте, даже при скалирование окна игры, всё стало как по маслу, без разрезов. Годот сила.
Аноним 21/01/20 Втр 14:39:39 #78 №637284 
1579607327273.png
>>637267
> Годот сила.
Годот круто!
Аноним 22/01/20 Срд 01:01:37 #79 №637519 
1562653167600.webm
Контроллер 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
Аноним 22/01/20 Срд 18:28:59 #80 №637794 
>>637519
Очень круто. Буду делать шутан, возьму на заметку.
Аноним 22/01/20 Срд 18:40:59 #81 №637805 
>>637794
На самом деле, визуал водички оказался очень недоработанным (в плане отражений и прозрачности), да и автор его почти не развивает, так что не рекомендую для продакшна.
Аноним 22/01/20 Срд 19:32:02 #82 №637861 
>>637805
Воду я даже не заметил если честно, меня ток контроллер интересует.
Аноним 22/01/20 Срд 20:21:34 #83 №637893 
>>637861
> меня ток контроллер интересует
Ща гляну, что там за контроллер. Ставлю бочку нефти, что там нет кроуча с автодетектом вентшахт.
>>637805
> визуал водички оказался очень недоработанным
Ща тоже глянем. Я делал водичку по туториалу ещё на версии 3.0 посмотрим, удалось ли этому её превзойти.
Аноним 22/01/20 Срд 20:23:46 #84 №637894 
>>637893
> Ща гляну, что там за контроллер.
Ба, да это тот самый говноассет, который я доводил до ума в прошлом треде!
> mvarray[0] = true
Аноним 22/01/20 Срд 21:07:55 #85 №637904 
>>637894
>Ба, да это тот самый говноассет, который я доводил до ума в прошлом треде!
Понял, принял
Аноним 22/01/20 Срд 21:29:56 #86 №637907 
>>637904
Однако же замечу, моих постов из прошлого треда тебе не хватит, чтобы довести до ума. Вообще, всё зависит от потребностей твоего проекта. Тут уже стоит задуматься о модульном контроллере, чтобы можно было подключать и отключать фичи. С другой стороны, почему бы не поднять модульность на уровень компоновки персонажа и подключать контроллеры по мере надобности? Надо это обдумать.
Аноним 22/01/20 Срд 22:55:39 #87 №637958 
Вкатываюсь в годо. Возник вопрос:
Каким макаром лучше запилить в годо многомерный массив?
Я пока вижу два варианта:
1) сделать одномерный с домножением индеков на число, типа N[i,j,k] эквивалентно N[i100 + j10 + k]
2) Сделать ноду N1 создающую массив нод N2, каждая из которых создает массив нод N3... ну вы пони.
Но может есть менее упоротые варианты?
Еще вопрос: логично, что в случае с ОЧЕНЬ большим массивом, во втором варианте будет просто адское кол-во нод. Как это скажется на производительности если эти ноды будут иметь минимальный функционал и, по сути, будут только хранить данные?
Аноним 22/01/20 Срд 23:02:31 #88 №637965 
>>637958
>Как это скажется на производительности если эти ноды будут иметь минимальный функционал и, по сути, будут только хранить данные?
В том смысле - дергает ли годо ноды и имеющие свойства(переменные) но не имеющие никаких функций? Или они просто безболезненно висят не потребляя ресурсов компа кроме оперативы?
Аноним 22/01/20 Срд 23:16:18 #89 №637980 
1451679150489.png
>>637958
Юзай [][]
Аноним 22/01/20 Срд 23:22:02 #90 №637995 
>>637980
Мда. Так и думал, что можно проще. Еще такой вопрос: при таком способе ведь не будет ограничения на кол-во измерений? 10-мерный массив можно так запилить? И есть ли ограничение на кол-во элементов в массиве, или оно условно бесконечно?
Аноним 22/01/20 Срд 23:23:03 #91 №638000 
>>637965
Вот этот вопрос тоже в силе
Аноним 22/01/20 Срд 23:36:52 #92 №638008 
>>637995
Ты лучше пиши что ты хочешь сделать, потому что 10-мерный массив это очень странно.
>есть ли ограничение на кол-во элементов в массиве, или оно условно бесконечно?
Там int, 2,147 миллиарда, если выделилась память.
Аноним 22/01/20 Срд 23:46:08 #93 №638014 
>>638008
>потому что 10-мерный массив это очень странно.
Не, я понимаю что странно, лол. Хочу проверить работоспособность одного своего алгоритма, для одной утилитки на комп. Так что описать, что я хочу сделать в двух словах наверное не выйдет. Короче будем считать, что мне нужно запилить массив на много (около 10) измерений.

>Там int, 2,147 миллиарда, если выделилась память.
Но, всегда ведь можно вложить в этот массив еще массив на пару миллиардов, так?
Аноним 22/01/20 Срд 23:48:30 #94 №638015 
>>638014
У тебя массивы сплошно заполнены или разрежены хотя бы?
Аноним 23/01/20 Чтв 00:00:53 #95 №638018 
>>638015
Нууу.. я на самом деле сам пока еще думаю, как лучше сделать. Но, будем считать для простоты что сплошные
Аноним 23/01/20 Чтв 00:02:33 #96 №638019 
>>638015
Просто массив будет заполняться по ходу работы проги, и я хз, как оно повернется.
Аноним 23/01/20 Чтв 00:11:13 #97 №638023 
>>638015
Хотя массив этот должен хранить списки, так что мб сразу проще пилить в виде ступенек
Аноним 23/01/20 Чтв 00:48:19 #98 №638051 
>>638018
Ты с арифметикой дружишь? Если у тебя первое измерение (ширина) 2 миллиарда, и в каждом столбце (высота) 2 миллиарда ячеек, то тебе надо чтобы в компе стояло 2 миллиарда плашек по 4гб (минимум)
Аноним 23/01/20 Чтв 01:02:22 #99 №638061 
>>638051
Да я спросил чисто для теории. Не придирайся. В моей проге, надеюсь, до такого не дойдет.
Аноним 23/01/20 Чтв 01:03:57 #100 №638062 
>>638051
Но там реально дохуя этих элементов, и я вообще хз, во что это выльется и заработает ли.
Аноним 23/01/20 Чтв 01:04:27 #101 №638063 
>>638061
> Хочу сделать прогу. Но какую не скажу.
Неужели на нашем движке собрались писать вирусы? Вот это честь!
Аноним 23/01/20 Чтв 01:07:10 #102 №638064 
>>638051
Но вообще да, я не посчитал, когда спрашивал
Аноним 23/01/20 Чтв 01:17:42 #103 №638071 
>>638063
Естественно не скажу, т.к. это не прога, а алгоритм обработки довольно специфичного списка данных, который х*й знает работает ли вообще.
Аноним 23/01/20 Чтв 02:00:34 #104 №638080 
>>638071
Все еще непонятно зачем тебе 10-мерность. Ты уверен что тебе нужно arr[3][14][59][265][5][35][89][793][23][846], а не скажем просто arr[x][y][10].
Аноним 23/01/20 Чтв 04:10:37 #105 №638095 
>>638080
Если кратко, и не вдаваясь в подробности - для скорости "индексации" - чтобы быстро переходить к нужному элементу, подходящему под заданные условия, а не ворошить каждый раз многотонный список. Хотя, конечно, возможно есть более простые решения, но, думаю вариант с разбиением списка на сотню тысяч (а мб и больше) частей тоже не так уж плох.
Аноним 23/01/20 Чтв 08:35:53 #106 №638113 
>>638095
> возможно есть более простые решения
> с разбиением списка на сотню тысяч (а мб и больше) частей
Именно так. Деревья. Все юзают их, а не многомерные массивы.
Аноним 23/01/20 Чтв 08:39:32 #107 №638114 
>>638113
Как запилить такое дерево и чем плохи массивы?
Аноним 23/01/20 Чтв 08:44:34 #108 №638116 
>>638114
Ты так спрашиваешь, будто я профи байтоёбства. Гугли октодеревья, бинарные деревья поиска и прочее такое найдёшь далее по ссылкам из нагугленного текста. Учись гуглить и курить матчасть. Без этого не станешь девелопером. И готовься к тому, что 99% инфы будет на английском.
Аноним 23/01/20 Чтв 08:49:39 #109 №638119 
>>638116
Ладно, хоть скажи, это реализуемо на gdscript, или придется делать вставки на C++?
Аноним 23/01/20 Чтв 08:53:44 #110 №638121 
>>638119
Реализуемо.
Главное - пытайся и делай. Могу помочь с алгоритмом, если ты перестанешь строить из себя секретного спецагента и внятно объяснишь, что ты хочешь посчитать. Возможно, оно уже реализовано в движке, если ты правильно поставишь себе задачу и прошерстишь АПИ движка.
Аноним 23/01/20 Чтв 09:18:25 #111 №638124 
>>638121
Ок, я погуглю в свободное время. Если будет что непонятно - спрошу
Аноним 23/01/20 Чтв 09:18:47 #112 №638125 
>>638121
Пасиб за разъяснения
Аноним 23/01/20 Чтв 15:35:11 #113 №638252 
>>638095
Возможно тебе нужна база данных, типа sqlite.
Аноним 24/01/20 Птн 19:36:39 #114 №638769 
>>638252
Возможно ему вообще не игровой движок нужен, а чистая ИДЕ для обкатки своих идей в простом ЯП.
Аноним 24/01/20 Птн 19:38:54 #115 №638771 
>>638769
Кстати да, хоть он и пишет, что данные будет собирать из игры, игру же можно реализовать в виде клиент-сервера, и собирать обезличенные данные о юнитах (без графона и так далее), игровое поле просто как массив объектов в любом ЯП.
Аноним 25/01/20 Суб 01:56:09 #116 №638805 
>>635742
Годот хоршо только скоростью с которой ты будешь создавать, писать на гдскрипте намного быстрее и проще чем на си, если ты делаешь игру мальенкой кампанией(один), то на U или на U, ты за занчительный промежуток времени сделаешь нихуя, а на гд можно написать годную мобилку за 1 день
Аноним 25/01/20 Суб 01:58:51 #117 №638806 
>>636067
Я вообще картинки делаю texture rect и инпут с них ловлю
Аноним 25/01/20 Суб 02:00:44 #118 №638807 
>>636070
Сделай не кинематик, а риджыд(в нем надо будет когда поднимаешь мод менять на кинематик, а когда кладешь обратно), еще чуть выше написал про то что инпут ловлю с тексутр ректа, если так делать то будешь мышкой брать ток 1 объект
Аноним 25/01/20 Суб 02:33:53 #119 №638810 
1550245237562.png
1482252550386.png
Кто-то давно спрашивал, что будет, если собрать Годот только 2д. Со всеми откюченными флагами, пустой проект с одной картиночкой, вышло 6Мб под ведроид одна архитектура arm7eabi и 17Мб под винду. Запускается на телефоне около секунды.
Аноним 25/01/20 Суб 05:21:20 #120 №638827 
>>638807
попробую. пасиб за совет, может проще будет. в целом я победил через area2d и _unhandled_input. Норм работает.
Аноним 25/01/20 Суб 09:07:57 #121 №638848 
Всем здоровья в этом треде. Хочу спросить, вкатываться мне в годот или нет, если я хочу рпг по шаблону фоллача 2, но при этом нихера не шарю в коде?
2д графон, пошаговые бои, диалоги разветвленные, вот это все.
Пробовал РПГ мейкер, он не позволяет диалоги сложные строить, печаль. Гамак пробовал, он начинает в определенный момент просто виснуть от обилия файлов.
Что делать, анон? Вливаться в ГОДОТ? Если да, подскажи, как облегчить себе жизнь?
Аноним 25/01/20 Суб 10:06:16 #122 №638851 
>>638848
> как облегчить себе жизнь?
Выучить программирование. Если выучишь, то сможешь на годоте такое сделать.
Аноним 25/01/20 Суб 10:32:04 #123 №638852 
>>638848
>но при этом нихера не шарю в коде?
Главное выучить программирование. Потом сможешь использовать любой движок.
Аноним 25/01/20 Суб 14:05:41 #124 №638879 
>>638810
Годно. Однако в век терабайтов с гигагерцами интересно разве что в академических целях. Более-менее красивая игра с графоном, звуком, будет весить от 600 Мб. Экономия 5-7 мегов тут погоды не делает.
Отвечает Александр Друзь Аноним OP 25/01/20 Суб 14:16:24 #125 №638882 
>>638848
Ты не сможешь сделать годной игры без навыков в программировании. Годоскрипт прост лишь для кодеров со стажем, увы. Если ты принципиально не понимаешь логики компьютеров, как персонаж тролля, набрасывающего в соседних Индия-тредах, то ты и в годоскрипте будешь как слепой котёнок тыкаться.
У меня стаж кодинга 20 лет и то я целый год над одной только диалоговой системой работал, постоянно переделывая и отбрасывая неудачные варианты. А ещё бывает, натыкаешься на неочевидные вещи, никак не отражённые в документации. Например, есть кнопка, у неё есть сигналы. Есть диалог, у него есть сигналы. Это в доках есть. Так же в доках подробно описано, как вешать обработчики на сигналы. Но в доках не написано, что ты можешь получить ссылку на кнопки в диалоге и назначить обработчики на их сигналы нажатия, чтобы потом получать нажатие кнопки ОК в диалоге и действовать соответственно. Предполагается, что ты это уже понимаешь.

Короче говоря. Геймдевелопинг - это сложное и обширное ответвление от софтдевелопинга в целом. Наивно вкатываться в него с нуля. Поэтому я и много других анонов в очень многих тредах советуют новичкам начинать с общих курсов кодинга, чтобы хоть немного поднатаскаться в матчасти. А потом уже игры делать, уровня фолыча, с корованами и домиками деревянными.
Аноним 25/01/20 Суб 16:34:52 #126 №638922 
>>638848
>но при этом нихера не шарю в коде
Опиши свое "нихера". Если ты можешь отличить переменную от массива, а интерфейс от абстрактного класса - то можешь спокойно вкатываться.
Аноним 25/01/20 Суб 16:37:39 #127 №638923 
75823-triangle-light-sticker-neon-sign-human-detroit-thumb.png
Нужен человек который может нарисовать СВЕТЯЩУЮСЯ ЛИНИЮ и возможно объяснить как это сделать, а то я совершенно не могу в 2д графику, а делать через шейдеры в падлу, да и не производительно
Нужно что-то как на картинке
Аноним 25/01/20 Суб 17:01:09 #128 №638935 
>>638922
>интерфейс от абстрактного класса
>питон
Аноним 25/01/20 Суб 17:15:21 #129 №638942 
>>638923
>делать через шейдеры не производительно
Это не так. Видеокарты рисуют быстрее процессоров.
Аноним 25/01/20 Суб 17:16:39 #130 №638943 
>>638935
> питон
Нет, не слышали.
https://docs.godotengine.org/ru/latest/getting_started/scripting/c_sharp/
Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека.
Аноним 25/01/20 Суб 17:20:41 #131 №638946 
>>638923
> нарисовать СВЕТЯЩУЮСЯ ЛИНИЮ
Какое грамотное, полное и всеобъёмлющее ТЗ. Я сделаю этот заказ за 3 тыс рублей.
Аноним 25/01/20 Суб 17:26:22 #132 №638949 
>>638942
Мб я чет не понимаю, но ведь видеокарте проще нарисовать текстурку, чем для каждого пикселя сделать по какой--нибудь операции разве не?
Аноним 25/01/20 Суб 17:46:08 #133 №638973 
>>638949
Нет. Ведь быстрее "нарисовать текстурку" на GPU а не на CPU.
Аноним 25/01/20 Суб 17:53:56 #134 №638985 
>>638943
С языком все в порядке, а что там с поддержкой платформ? iOS точно нет, html версия и андроид в бете?
Аноним 25/01/20 Суб 18:15:08 #135 №638992 
1579965307178.png
>>638985
> iOS точно нет
Ну что же ты пиздишь? Тредом не ошибся, няша? Дорогу указать?
Аноним 25/01/20 Суб 18:20:15 #136 №638995 
>>638992
Ты втираешь что-то странное. Экспорт c# в андроид заявлен в 3.2 который еще не зарелизился. Экспорт в ios заявлен как не сделанный. Пруфы экспорта c# в ios какие нибудь имеются?
https://github.com/godotengine/godot/issues/20268
Аноним 25/01/20 Суб 18:26:13 #137 №638998 
>>638995
> Ты втираешь что-то странное.
Сорян, запостил не читая тред. Позор мне.
Аноним 25/01/20 Суб 18:55:01 #138 №639004 
>>638998
Да не страшно, Хуан мог бы и почетче на сайте написать, из чего куда есть экспорт, а куда нет.
Аноним 25/01/20 Суб 18:56:28 #139 №639005 
>>639004
>>638998
Заткнитесь, людям надежда нужна, а не ваша правда ёбаная.
Аноним 25/01/20 Суб 19:18:25 #140 №639010 
>>639005
А какая связь между C# и надеждой?
Аноним 25/01/20 Суб 19:51:34 #141 №639014 
>>639010
Сишарп - надежда игростроя.
Аноним 26/01/20 Вск 03:02:05 #142 №639062 
>>635427 (OP)
> С чего начать?
alt+f4, затем uninstall
Аноним 26/01/20 Вск 16:24:56 #143 №639156 
image.png
Смарите че сделал, где-то за пару вечеров, если попросите кину апк, управление мышкой, для старта тыкните на иконку годо
https://yadi.sk/d/n41WryoNBr-dhw
Аноним 26/01/20 Вск 16:31:50 #144 №639162 
>>639156
Какая версия движка?
Аноним 26/01/20 Вск 16:36:02 #145 №639164 
>>639162
А, неважно, у меня на 3.1.2 запустилось. А звука там нет или это у меня из-за линокса не заиграло?
Аноним 26/01/20 Вск 16:39:06 #146 №639167 
>>639156
Если в игре есть звуки, пожалуйста, переименуй все звуковые файлы, чтобы они были с мелких букв и переэкспортируй.
Аноним 26/01/20 Вск 16:40:19 #147 №639168 
>>639162
3.1.1
>>639164
Звук, есть у меня играет, можешь просто найтколл включить.
Хотя тогда не будет эффекта когда плюху ловишь
Аноним 26/01/20 Вск 16:42:16 #148 №639170 
>>639168
> Звук, есть у меня играет,
>>639167
> пожалуйста, переименуй все звуковые файлы, чтобы они были с мелких букв и переэкспортируй
Да, это баг. Баг case-sensitive в линуксах.
Аноним 26/01/20 Вск 16:42:50 #149 №639171 
>>639167
https://yadi.sk/d/n41WryoNBr-dhw
Аноним 26/01/20 Вск 16:43:38 #150 №639172 
>>639170
А так часто в линуксах бывает? Погодите а как вы ехе запускаете на лиунксе?
Аноним 26/01/20 Вск 16:51:46 #151 №639178 
>>639172
> Погодите а как вы ехе запускаете на лиунксе?
Я свой ельф сделал, очевидно. Точнее просто взял от одной из своих игор. Заработало! И со звуком!

Тут другой вопрос. Музыка закончилась, я еду дальше в тишине. Нужно либо запускать шарманку сначала, либо уровень заканчивать.
Аноним 26/01/20 Вск 16:57:06 #152 №639179 
>>639156
> управление мышкой,
Ассет, который ты спиздил, также управляется и стрелками с клавиатуры. И гораздо удобнее.
Аноним 26/01/20 Вск 16:57:42 #153 №639180 
>>639178
Я пока забил на эту игру и делаю другую, т.к. там проблема в шейдере на телефоне, при столкновении на компе шейдер работает отлично, а телефоне дергает картинку 1 раз в бок и обратно, почему пока не разобрался да и лень как-то, все равно еще 100000 фишек надо добавлять чтобы это стало играбельным.
А по поводу той-же музыки, всё равно я не могу использовать этот трек, если буду выкладывать в гуглплей, сам я музыку писать не умею, есть один друг одногруппника, который умеет что-то, но не хочу его просить пока все настолько неготово
Аноним 26/01/20 Вск 17:00:13 #154 №639182 
>>639180
> сам я музыку писать не умею
Вот держи https://opengameart.org/content/neon-transit
Этот трек я хотел заюзать для своей Т2 на ТВГ, но прокрастинация одолела.
Аноним 26/01/20 Вск 17:00:57 #155 №639183 
>>639179
Я знаю что такое ассет, но не умею их устанавливать, т.е. еще ни разу не получилось когда пытался, управляется стрелками т.к. управление на компе я вообще делал только для теста, эта игра не задумывалась для пк. По этому сначала я сделал на стрелки, но управление стрелками оч далеко от управления наклоном, по этому придумал сделать на мышку, максимально похоже на управление гироскопом.
Аноним 26/01/20 Вск 17:02:30 #156 №639184 
>>639183
Скрестил пальцы за тебя, анончик! Сделай игру за всех нас!
Аноним 26/01/20 Вск 17:06:11 #157 №639185 
>>639172
В шапке есть подсказка (после жирных букв)
Аноним 26/01/20 Вск 17:07:55 #158 №639186 
Где изменить дефолтную папку для сохранения? Не хочу каждый раз менять путь с документов на нужную мне.
Аноним 26/01/20 Вск 17:12:09 #159 №639188 
>>639182
Спс схоронил
Аноним 26/01/20 Вск 17:18:02 #160 №639189 
1433095458969.png
>>639186
Аноним 26/01/20 Вск 17:21:59 #161 №639192 
>>639189
Кстати советую забекапить папку C:\Users\ИМЯ_ЮЗЕРА\AppData\Roaming\Godot
У меня от экспериментов с шейдерами с падением драйвера видюхи, и от ковыряния с экспериментальными билдами, пару раз зависал комп целиком, и после ребута все настройки были проебаны.
Аноним 26/01/20 Вск 17:57:48 #162 №639201 
В годоте есть автодополнение кода и навигация по элементам, как в вижуал студио?
Аноним 26/01/20 Вск 18:12:40 #163 №639205 
>>639201
Ну немношк есть. До студии канеш далеко. Но ребята стараются.
Аноним 26/01/20 Вск 18:28:38 #164 №639211 
>>639201
Теоретически можно писать в vs code с помощью https://github.com/godotengine/godot-vscode-plugin
Практически, наверное, заебешься.
Аноним 26/01/20 Вск 19:32:48 #165 №639219 
>>639211
Практически, если речь о годоскрипте, то для него сторонние тулзы не нужны, а если речь о сишарпе, то мне, например, удобнее безо всяких тулзов открыть в студии сгенерированный годотом солюшен и не забывать сохраняться после написания кода.
Аноним 27/01/20 Пнд 01:50:04 #166 №639249 
image.png
Короче, анон, я тут подумал, и решил взять и добавить в годот блекдж и куртизанок

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

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

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

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

Если все пойдет, открою свой форк на гитхабе
Аноним 27/01/20 Пнд 04:24:37 #171 №639260 
>>639259
Да ты наркоман.
Аноним 27/01/20 Пнд 04:27:11 #172 №639261 
>>639253
Это вообще не проблема. Можно качать готовое. Можно делать лоуполи по гайдам. Можно рисовать пиксельарт по гайдам. Можно делать процедурную генерацию графона. Главное просто начать и делать. Вот тебе мотивирующий видосик https://www.youtube.com/watch?v=7TXEZ4tP06c
Аноним 27/01/20 Пнд 08:16:13 #173 №639275 
>>639259
> открою свой форк
А мог бы игры делать.
Аноним 27/01/20 Пнд 08:19:52 #174 №639276 
>>639256
> он же только для тех кому лень в си подобные
Не только.
Аноним 27/01/20 Пнд 12:27:14 #175 №639324 
>>639261
А что ему рисовать? Хуи на стенах?
sageАноним 28/01/20 Втр 02:28:45 #176 №639415 
1566274700193.png
>>639201
Навигация по элементам есть, как можно заметить и в левом нижнем углу по списку, так и подчеркивание гиперссылок при наведении мышки +ctrl
Ночной ПРОтип - чтобы автодополнение работало, надо подсказать ему кастом типа через "as ИмяТипа" как выделено строчкой выше. Динамический язык же.
Аноним 28/01/20 Втр 08:35:30 #177 №639443 
Бампусики.
Аноним 29/01/20 Срд 03:09:36 #178 №639619 
goodneighborscc0.png
Бывает, попадется годный моноширинный битмапный фонт, а как вставить в Годот непонятно, надо качать какую то левую тулзу 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:;<=>[email protected][\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ "
print("info face=\"FontName\" size=%s bold=0 italic=0 charset=\"\" unicode=1 stretchH=0 smooth=1 aa=0 padding=0,0,0,0 spacing=0,0 outline=0" % (CHAR_H))
print("common lineHeight=%s base=%s scaleW=%s scaleH=%s pages=1 packed=0 alphaChnl=0 redChnl=0 greenChnl=0 blueChnl=0" % (CHAR_H, CHAR_H, TABLE_W✶CHAR_W, TABLE_H✶CHAR_H))
print("page id=0 file=\"%s\"" % (FILE_NAME))
print("chars count=%s" % (TABLE_W✶TABLE_H))
loop_i_j=[print("char id=%s x=%s y=%s width=%s height=%s xoffset=0 yoffset=0 xadvance=%s" % (ord(CHARSET[I+J✶TABLE_W]), I✶CHAR_W, J✶CHAR_H, CHAR_W, CHAR_H, CHAR_STEP)) for J in range(0,TABLE_H) for I in range(0,TABLE_W)]
Аноним 29/01/20 Срд 03:22:26 #179 №639622 
>>639619
П.с. и картинка и код под лицензией CC0 (public domain) вдруг это неочевидно.
Аноним 29/01/20 Срд 09:01:23 #180 №639639 
>>639622
Спасибо, няша! Родина тебя не забудет.
Аноним 29/01/20 Срд 10:08:49 #181 №639648 
>>639253
> не знаю какую игру делать. я программист
Ты - треугольник.
Многоугольники охотятся за тобой.
Постигни искусство вертушки и заряди им в щщи!
https://www.youtube.com/watch?v=5CKJ4ulHO28
Аноним 29/01/20 Срд 10:47:30 #182 №639656 
1.PNG
Анон, помоги. GetCollider возвращает Godot.Object, а что бы узнать группу нужен CollisionObject. Как кастовать не нашел. Как быть?
Аноним 29/01/20 Срд 10:57:22 #183 №639657 
>>639656
> Как кастовать не нашел. Как быть?
Попробуй не использовать var. Прописывай тип явно.
Spatial collider = raycast.GetCollider();
или
Node2D collider = raycast.GetCollider();
Поищи, есть ли в сборке шаблонизированная GetCollider<T>? Если есть юзай её, выводя нужные тебе типы.
Аноним 29/01/20 Срд 10:58:46 #184 №639658 
>>639656
> Как кастовать не нашел. Как быть?
И да, вот так кастовать:
https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/types/casting-and-type-conversions
Аноним 29/01/20 Срд 11:06:51 #185 №639659 
>>639657
А смысл прописывать другой тип, если GetCollider в любом случае дает Object?
Аноним 29/01/20 Срд 11:08:45 #186 №639660 
>>639658
А вот за это спасибо, получилось
Аноним 29/01/20 Срд 11:11:42 #187 №639661 
>>639659
Он даёт тебе ссылку на экземпляр базового класса, иначе говоря, он даёт тебе ссылку на данные, но не предоставляет интерфейса. Чтобы получить интерфейс, ты должен ПРИВЕСТИ базовый класс к желаемому тебе дочернему. В ссылке на МСДН выше это всё объяснено.
>>639660
Пожалуйста! Обращайтесь в истинную веру!
Аноним 29/01/20 Срд 21:54:11 #188 №639791 
Как экспортнуть игру БЕЗ pack файла с ресурсами?
Чтобы спрайты лежали в папочках, можно было отредактировать их, перезапустить билд и они подтягивались.
Хочу отдать билд художнику побаловаться.
Аноним 29/01/20 Срд 22:02:01 #189 №639793 
>>639791
Шапку прочитай. ПРОСТО не экспотируй, а отдай проект + экзешник.
Аноним 29/01/20 Срд 22:04:12 #190 №639794 
>>639793
Не работает без редактора, видимо ресурсы дублируются в .import и не переимпортируются без запущенного редактора после изменения.
Аноним 29/01/20 Срд 22:06:16 #191 №639795 
>>639794
Ок. Пусть запустит godot -e в командной строке, он запустится в режиме редактора.
Аноним 29/01/20 Срд 22:10:26 #192 №639796 
15776318830450.png
>>639795
Слишком сложна
Аноним 29/01/20 Срд 22:15:53 #193 №639798 
>>639796
Понятно, думаю над решением проблемы.
Аноним 29/01/20 Срд 22:18:13 #194 №639799 
1580325492830.jpg
>>639796
Блять, редактор прост, как швейцарский армейский нож. Хули твой художник так туп? Научи его открывать проекты в редакторе.
Аноним 29/01/20 Срд 22:21:45 #195 №639801 
>>639798
> думаю над решением проблемы
Да что тут думать? В одном из первых тредов приводил пример, как создавать текстуры в рантайме из внешних пикч. Только зачем анону ебаться с этими велосипедами, если проще и быстрее научить художника открывать проект в редакторе. Не сложнее, чем открыть кино в видеоплеере. Охуеваю с зумеров. Просто пиздец!
Аноним 29/01/20 Срд 22:39:15 #196 №639805 
>>639801
Но ведь поебаться с велосипедами это так по кайфу для бумеров. Я бы вообще взял класс image.cpp и на его основе сделал модуль-автоимпортилку при запуске, только времени нет
Аноним 29/01/20 Срд 22:46:44 #197 №639809 
>>639805
Чем дольше живёшь, тем больше понимаешь, что именно ВРЕМЯ - твоя главная ценность.
>>639796
> Слишком сложна
Сделай ему ярлык для автозапуска проекта. Или погоди, ему сложно или тебе?
Аноним 30/01/20 Чтв 01:18:25 #198 №639844 
Тридвашка релизнулась!
https://youtu.be/WoVMAUJeqTU
Аноним 30/01/20 Чтв 01:32:53 #199 №639845 
>>639844
Уже собрал, и уже вылетела разок.
Аноним 30/01/20 Чтв 07:09:24 #200 №639859 
>>639844
в чем смысл делать видео состоящее из скрола статьи?

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

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


меня просто шокирует эта мода на видосы.. Особенно по программированию - это же пиздец как уныло учиться программированию по видео: то что пишется за 5 минут, в видосе мусолится по полчаса
(люди реально тратят 28 минут жизни на то чтобы узнать как писать цикл for на C#? они больные?
Аноним 30/01/20 Чтв 09:14:40 #204 №639873 
>>639872
>на каком безрыбье?
Ну накинь еще каналов для индюков, про обзоры всяких юнити и пэйнтеров и годотов, даун. Увидел один ролик и начал недовольно пердеть ртом, уебок.
Аноним 30/01/20 Чтв 09:24:34 #205 №639876 
>>639872
Видосы - это интернет-аналог лекций в вузике. Не нравится - не смотри. Но от видосиков уже не уйти. Их популярность будет только расти.
Аноним 30/01/20 Чтв 09:27:48 #206 №639877 
>>639876
Жрать говно тоже становится популярным и от этого не уйти.
Аноним 30/01/20 Чтв 09:45:17 #207 №639878 
1580366716243.png
1580366716985.png
Посаны. Посоветуйте вариантов оптимальных. Есть одна программа на годоте, которую я пишу лениво уже второй год. Именно программа, не игра. Конструктор диалогов. Может, кто помнит?
Так вот. В моём так сказать "роад-мапе" заложено, что выводить готовые диалоги программа сможет либо в жсон-файлы, либо в БД. И вот по жсон-файлам у меня возникла идея, как бы прикрутить к этому делу схемы? Мне не нравится, что сейчас у меня структура выходного файла прибита гвоздями к коду. Я хочу, чтобы у меня в отдельной панели настроек имелась схема, в которой описывались бы элементы выходного файла и их поля. Согласно этой схеме строился бы интерфейс ввода данных в диалог и конечно же строился бы сам выходной файл. При загрузке сохранённого файла, он бы загружался по схеме и предупреждал о несоответствии. Схемы предполагаю хранить в отдельных файлах в директории конфига программы. Я в принципе не вижу никаких непреодолимых препятствий сделать это всё, однако предлагаю обсудить паттерны и подходы для реализации этого. Ну, чтобы не изобретать велосипедов. Буду рад не только постам, но и полезным ссылкам.
Аноним 30/01/20 Чтв 09:50:22 #208 №639879 
>>639878
Занимаешься хуйней без задач уже два года.
Достаточно просто сделать загрузку диалогов из файла, и писать их ручками в json/yaml, зачем тратить годы на визуальный редактор?
Давно бы уже игру доделал за это время, и сейчас бы лежал в гамаке на Багамах.
Аноним 30/01/20 Чтв 09:52:33 #209 №639880 
>>639879
> Достаточно просто сделать загрузку диалогов из файла, и писать их ручками в json/yaml
Я посмотрю на тебя, как ты будешь для эрпогэ на 50+ часов геймплея писать разветвлённые диалоги с несколькими концовками и перекрёстными ссылками, в зависимости от этапов игры. Ручками. В блокноте.
Аноним 30/01/20 Чтв 09:58:47 #210 №639881 
>>639876
>Видосы - это интернет-аналог лекций в вузике.
не аналог:
- преподаватели готовятся к лекциям а не "ну эм наверное тут вот так почему то не работает".
- у них есть к этому способности и навыки
- есть живое общение (ради которых лекции и существуют)
- всё равно учатся по учебникам, а не маханиям рук преподавателя перед доской. преподаватель объясняет непонятные вещи из учебника, а не учит с нуля.


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

видосы это телешоу, а не обучение. И те кто хотят учится по видосам - на самом деле не хотят, им нужно только зрелище (ну там поржать над шутками автора и т.д.)
Аноним 30/01/20 Чтв 09:59:30 #211 №639882 
>>639879
И это не визуальный редактор, а классический, по паттерну "master-detail".
Аноним 30/01/20 Чтв 10:02:29 #212 №639883 
>>639880
> Ручками. В блокноте.
Именно так, только не в блокноте, а в vscode, с подсветкой, поиском, сворачиванием блоков и прочими фичами. И делать буду естественно не один файл на 100000 строк, а буду разбивать на отдельные маленькие файлы для каждого персонажа/катсцены. Я же не долбоёб.
> для эрпогэ на 50+ часов
Ты сначала сделай хотя бы игру на пару часов геймплея. У тебя за два года вышло 0 часов геймплея, ты с такими темпами 50 часов за остаток жизни не доделаешь.
Аноним 30/01/20 Чтв 10:02:49 #213 №639884 
>>639881
> преподаватели готовятся к лекциям а не "ну эм наверное тут вот так почему то не работает"
жыды-квест готовится к своим видосам. Не равняй под одну гребёнку всех. Обидно, конечно, что русскоязычные ютуб-лекторы мычат. Селяви.
> есть живое общение
В комментариях.
> всё равно учатся по учебникам
Спорим об одном и том же. На лекции послушал общую инфу, обсудил. И идёшь учить матчасть по учебникам. Никто и не спорит.
Аноним 30/01/20 Чтв 10:04:40 #214 №639885 
>>639883
Лучше день потерять, а потом за пять минут долететь (С)
Аноним 30/01/20 Чтв 10:07:11 #215 №639886 
>>639881
Ты пидар тупой, я тебе написал, что у него есть подробные уроки с разбором движков, а это просто новости кто сам не мониторит.
Аноним 30/01/20 Чтв 10:07:30 #216 №639887 
>>639885
Но ты потерял не день, а два года, за которые вполне можно было сделать полноценную игру.
Аноним 30/01/20 Чтв 10:46:20 #217 №639890 
>>639887
Вот щас бы воспринимать поговорки буквально. Это ты что ли тут топишь за ютуб-туториалы вместо нормального обучения?
Аноним 30/01/20 Чтв 11:13:48 #218 №639894 
>>И идёшь учить матчасть по учебникам. Никто и не спорит.
но в видео уроках не так. Типа - посмотрел видосы и уже типа все умеешь

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

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

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

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

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

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

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

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

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

Завтра прогоню пару тестов с разными вариантами и подробнее распишу, что и как с цифрами.
Аноним 03/02/20 Пнд 23:13:06 #239 №640842 
>>640838
А еще по плагину поясни. Он экспортирует полностю готовую карту или мне всё равно придётся ебаться с настройкой коллизий, окклюзий света, навполигоном?
Аноним 03/02/20 Пнд 23:28:48 #240 №640846 
>>640842
Уже сам загуглил.
Аноним 03/02/20 Пнд 23:38:45 #241 №640851 
>>640841
> Физика стандартная платформенная.
Коллижн шейпы у тайлов? Хотя вроде ты пишешь физика не тормозит. А клетки какого размера?
Вообще про твою проблему пишут много, пробуй менять квадрант, они же чанки (начни с 16 или 32, или 8), ставить целочисленные camera zoom, подумай над увеличением размера клетки (меньше клеток на экране = быстрее), отключи Ysort если без него можешь обойтись. Пока не знаю что еще посоветовать. Можно включить сжатие тектур, но вряд ли поможет.
Аноним 04/02/20 Втр 02:02:55 #242 №640857 
https://godotengine.org/article/godot-engine-was-awarded-epic-megagrant

а вы не верили (или верили)
Аноним 04/02/20 Втр 03:10:13 #243 №640858 
>>636602
Да тяжело понимаю. но твоя жопа теперь в полной их власти
Аноним 04/02/20 Втр 05:37:06 #244 №640863 
>>636581
Ну и нахрена это надо, когда есть б-жественный итч.ио, на который можно билды заливать по одному клику мыши и вдобавок тебе не будут тыкать пачкой говнорекламы в лицо сходу с главной страницы?
Аноним 04/02/20 Втр 08:18:13 #245 №640872 
>>640857
Я верил и верю в годот!
Аноним 04/02/20 Втр 08:34:04 #246 №640875 
>>640851
>Коллижн шейпы у тайлов? Хотя вроде ты пишешь физика не тормозит.
Все коллижен шейпы идут отдельным слоем, и не привязаны к тайлам. Формы у всех либо прямоугольники, либо трапеции с редкими закруглениями.

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

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

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

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

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

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

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

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

И ещё к тебе просьба, попробуй собрать бенчмарк тайлмапов от анона из прошлых тредов под андроид и замерить фпс https://govdot.herokuapp.com/4Anon.rar
Аноним 04/02/20 Втр 13:32:18 #254 №640918 
>>640875
>Пробовал, не дает эффекта при минмальном 8 и максимальном 128 эффект одинаковый.
А 16 и 32 пробовал?
Аноним 04/02/20 Втр 14:41:00 #255 №640928 
>>640875
Ладно вот такой вопрос - а какой у тебя аппарат и сколько у него RAM (в идеале сколько свободной).
Аноним 04/02/20 Втр 14:51:15 #256 №640932 
В общем, надо подождать, чувак сделавший порталы, уже делает батчинг
https://github.com/godotengine/godot/pull/35696
Аноним 04/02/20 Втр 15:02:06 #257 №640933 
>>640932

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

> drawcalls per quad.

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

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

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

Понимаешь.

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

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

На OpenGL 1.0 с его glVertexf2/3

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

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

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

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

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

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

Движок работает как дебил, если он рисует 1 тайл за один дравкол.
Аноним 04/02/20 Втр 15:39:22 #268 №640955 
>>640951
Вась, я понимаю что ты увидел знакомое по хеллоу ворлду слово дравкол, и возбудился, но тайлмапы и так рисуются одним квадом, а то что ты там себе выдумал это дело десятое, еще раз повторю, что ты нихуя не понял сути пулл реквеста, который просто кеширует на стороне движка больше данных, чтобы меньше времени тратить на переключении состояний.
Аноним 05/02/20 Срд 07:29:17 #269 №641076 
1.png
2.png
3.png
4.png
>>640884
>Конструируй тайлмапы и конверитруй их в картинки. Юзай спрайт для помещения картинки целиком на игровое поле. Интерактивные объекты делай отдельными спрайтами.

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

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

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

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

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

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

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

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

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

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

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





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

Как мы видим по новостям, годот плавно перемещается от состояния поделки фанатика Хуана к профессиональному опенсофту под крылом майкрософта и эпиков.
Аноним 05/02/20 Срд 09:00:30 #276 №641093 
>>641088
>Как мы видим по новостям, годот плавно перемещается от состояния поделки фанатика Хуана к профессиональному опенсофту под крылом майкрософта и эпиков.
И к чему этот дурацкий вывод? Хуан всегда пилил годот профессианально за деньги.
Аноним 05/02/20 Срд 10:21:31 #277 №641097 
>>641088
>Как мы видим по новостям, годот плавно перемещается от состояния поделки фанатика Хуана к профессиональному опенсофту под крылом майкрософта и эпиков.
А кто возьмется переписывать тысячи строк Хуановского говнокода, которые уже сейчас делают годот непригодным для разработки игр?
Аноним 05/02/20 Срд 10:24:30 #278 №641098 
>>641093
>пилил годот профессианально
Ага, профессиональные 7 фпс запилил, охуеть просто >>641077
Такую сценку еще древние движки из нулевых типа HGE запросто выводили со стабильными 60 фпс, а годотя не может.
Аноним 05/02/20 Срд 10:27:43 #279 №641099 
>>641097
У корпораций есть такой трудовой ресурс. Надо будет - пригонят индусов. Всё решаемо. Модуль за модулем с сохранением интерфейса перепишут. При этом новые модули будут с новым интерфейсом. Старый интерфейс пометят как deprecated и оставят для совместимости на пару мажорных версий.
В большом бизнесе всё решаемо.
Аноним 05/02/20 Срд 10:43:14 #280 №641102 
>>641098
Вопрос не в качестве кода, олень, а в том платят деньги разрабу или, нет. Хуангу и так платили, что должно измениться, он перестанет срать кодом?
Аноним 05/02/20 Срд 10:46:02 #281 №641103 
>>641099
У майкрософта уже есть бабилонджиэс, нахуй им годот, а эпики задонатили так крошки. Блендеру 3кк, хуангу 0.25кк.
Аноним 05/02/20 Срд 14:31:50 #282 №641141 
>>641077
Анон, анооон! А попробуй ещё экспортнуть в хтмл5 и запустить на андроиде. Тоже так всё печально будет?
Цель: выяснить источник тормозов на андроиде, аппаратный или софтварный
Аноним 05/02/20 Срд 15:08:08 #283 №641150 
>>641109
В по/рашу, хохлозависимый
Аноним 05/02/20 Срд 15:08:39 #284 №641152 
>>641141
В одном из issues попадалось, что тормоза тайлмапа возможно из-за неправильнного выделения памяти, соответственно если у него тайлмапы сжирают 400 метров, а всего на старте свободно 800, то возможно память просто закончилась совсем.
Аноним 05/02/20 Срд 16:26:03 #285 №641170 
>>641152
Запустил ща пример с изометрической тайлмапой в линуксе. Занимает 60 мегов.
Аноним 05/02/20 Срд 16:36:27 #286 №641173 
>>641170
Там зависимость от количества клеток (т.е. обратно пропорционально размеру клетки), так какой то китаец писал, сам я не тестил.
Аноним 05/02/20 Срд 17:40:12 #287 №641195 
1580913611605.png
>>641173
Окей, скачал и запустил 4анон. Всё равно немного 84 мега. Нужны данные с андроида.
Аноним 06/02/20 Чтв 00:23:46 #288 №641369 
>>635427 (OP)
ладно окей, сажусь на годот для своей изометрической игоры
Аноним 06/02/20 Чтв 05:31:45 #289 №641392 
>>641141
Мне лень конвертировать 4anon и заливать его на сервак, поэтому я проверил на своем проекте >>640875 который у меня уже залит.
Запускал на том же телефоне в хроме.
С картой картинками - 10...15FPS, с картой тайлами 5...10FPS. Плюс очень долгая загрузка.
Аноним 06/02/20 Чтв 08:08:15 #290 №641413 
>>641392
Ясно. Хреново.
Аноним 06/02/20 Чтв 10:43:12 #291 №641439 
На все деньги эпиков Хуан набрал марок по ходу
https://twitter.com/reduzio/status/1225323368855068672
Аноним 06/02/20 Чтв 10:48:32 #292 №641441 
>>641439
Хаха, знатно потроллил хейтерков. Молодец, Хуан!
Аноним 06/02/20 Чтв 11:03:21 #293 №641448 
>>641441
>потроллил
В каком месте?
Аноним 06/02/20 Чтв 11:04:09 #294 №641449 
>>641441
Никаких хейтерков нет. Есть люди, которые хотят пользоваться движком, но недовольны низкой производительностью. Как движка, так и разработчиков.
Аноним 06/02/20 Чтв 11:27:59 #295 №641464 
>>641439
Наверное для тебя это будет открытием, но все люди мыслят по разному, есть те, кто действительно не представляют себе визуальные образы, а воспринимают все как логические цепочки.
Аноним 06/02/20 Чтв 11:29:14 #296 №641465 
>>641449
> недовольны низкой производительностью
Дак пусть не делают эрпогэ с открытым миром и корованами. Рано ещё. Мини-игры пусть делают и не бугуртят.
Аноним 06/02/20 Чтв 11:31:47 #297 №641468 
>>641464
Двачую. И как же здорово, когда два таких человека объединятся, один с образами и второй с логикой.
Аноним 06/02/20 Чтв 11:42:02 #298 №641469 
>>641468
И ебут друг друга в жоппы
Аноним 06/02/20 Чтв 11:56:16 #299 №641471 
>>641439
"Видеть" музыку - признак аутизма
Аноним 06/02/20 Чтв 12:03:33 #300 №641472 
>>641465
Я вот хотел сделать на андроид тетрис на тайлмапах, но похоже не выгорит.
Аноним 06/02/20 Чтв 13:47:14 #301 №641480 
>>641472
Да, да. А ещё ты на нём денег поднять хотел. А ещё ты не тролль, и не хейтерок.
Аноним 06/02/20 Чтв 16:02:00 #302 №641494 
>>641464
>есть те, кто действительно не представляют себе визуальные образы, а воспринимают все как логические цепочки.
Нет.
Аноним 06/02/20 Чтв 16:10:31 #303 №641496 
>>641480
А вот и не угадал, я хочу запилить несколько игрушек под GPL в F-Droid, а то там пустовато, а потом хвастаться количеством устанровок Годота.
Аноним 06/02/20 Чтв 16:11:13 #304 №641497 
>>641494
Есть. Я лично видел таких в 2000х на форумах с регистрацией.
Аноним 06/02/20 Чтв 16:15:05 #305 №641499 
>>641496
Блять, для тетриса не нужен высокий фрейм рейт. Ну по крайней мере на начальных этапах игры, когда скорость низкая. Но уж тайлмап точно не обязателен. Двигай фигуры по координатам, кратным длине квадрата из которого фигуры состоят. Мой Тетрис на тайлмапе, но исключительно по причине удобства. Можно и без него.
Аноним 06/02/20 Чтв 16:21:13 #306 №641502 
>>641499
Ну я же не только тетрис хотел, а вообще разные олдовые аркадки. Понятно что придется написать свой тайлмап на спрайтах, просто думал воспользоваться готовым, просто как массивом клеток. А так он просто место в билде жрет.
Аноним 06/02/20 Чтв 16:47:47 #307 №641512 
>>641502
Вообще, годот, как я понял, произрастает из аргентинского движка для казуальных игор под винду, уровня зумы, тривряд, для убивания времени в офисе, алавар ещё была контора, занимавшаяся подобным.
Поэтому совершенно не удивительно, что оптимизация под винду там хоть какая-то есть (для казуальных кликалок), а под андроидом - сорян. Не завезли. Под линуксом я сейчас тоже натыкаюсь на редкие, но обескураживающие недоразумения (например в конфиг записываются имена файлов в нижнем регистре, несмотря на заглавные буквы в именах, отчего в экспортированном проекте аудио невозможно найти на охуительной файловой системе, чувствительной к регистру, и звука поэтому нет).
Затянем пояса братие и ждём 4.0 с вулканом. Верим, ждём, надеемся.
Аноним 06/02/20 Чтв 17:00:08 #308 №641518 
>>641512
>Затянем пояса братие и ждём 4.0 с вулканом. Верим, ждём, надеемся.
https://twitter.com/MostafaMMThabet/status/1225357645625929728
Аноним 06/02/20 Чтв 17:02:50 #309 №641521 
>>641512
Можно считать что никакой преемственности нет. Все равно тормозит в данном случае только на андроиде. Было бы время поотлаживал бы, но пока некогда.
Аноним 06/02/20 Чтв 17:06:47 #310 №641524 
>>641518
Вот-вот. Время андроидо-игор в самом разгаре и даже, возможно, слегка на спад уходит. А они только нашли деньги, чтобы основное пофиксить.
>>641521
Короче говоря, андроид пролетает. То-то я гляжу, Петя Сканер на ютубе, сначала с двадэ на тридэ перешёл, а потом вообще затих. Щас вот недавно анонс какой-то выкатил, попахивающий разводом на бабло. Видимо до него тоже дошло, что для андроеда годот пока ещё слишком сырой и решил стричь бабло на бессмысленных и беспощадных курсах, как это делают друзяшки Хуана.
Аноним 06/02/20 Чтв 17:18:13 #311 №641529 
>>641524
Пролетают тайлмапы, 200 спрайтов 30 фпс будет держать в любом случае.
Аноним 06/02/20 Чтв 17:29:46 #312 №641533 
>>641529
Для олдовых игор 200 даже много. Можно и в сотню уложиться.
Например, тетрис. Ты посчитал площадь игрового поля 10х20, но большую часть времени заполнена треть-четверть поля. К 200 количество заполненных клеток приближается на грани проигрыша.
Аноним 06/02/20 Чтв 18:59:08 #313 №641546 
>>641533
Не очень хочется чтобы фпс снижался в зависимости от заполненности поля. Да и в других аркадах типа арканоида обратная зависимость будет.
Аноним 06/02/20 Чтв 19:05:38 #314 №641549 
>>641546
Тогда предлагаю два хардкорных варианта:
1. Отрисовывать шейдером.
2. Отрисовывать на канве.
Сам как-то хотел тряхнуть стариной и попробовать рисовать на канве, но поскольку я нацелен на пека, то оставил попытки и пользуюсь тайлмапами.
Аноним 06/02/20 Чтв 19:23:37 #315 №641551 
>>641549
> Отрисовывать на канве.
Так оно ещё и рекомендуется для того же тетриса! Внезапно!
https://docs.godotengine.org/ru/latest/tutorials/2d/custom_drawing_in_2d.html
Аноним 06/02/20 Чтв 20:03:12 #316 №641554 
1581008591570.png
Накидал тут заготовочку для замены тайлмапа на кастомдроч в своём тетрисе. Пойду посру. Держу в курсе.
Аноним 06/02/20 Чтв 20:41:43 #317 №641557 
>>641551
Оно хоть аппаратно рисуется?
Аноним 06/02/20 Чтв 20:52:53 #318 №641559 
1581011572153.png
1581011572485.png
>>641557
Я не знаю. Давайте заглянем в исходники?
>>641554
Ну, собственно, вот и всё. Полнофункциональная замена тайлмапа (в части отрисовки простейшего набора квадратных тайлов) пикрелейтед:
Аноним 06/02/20 Чтв 21:10:21 #319 №641560 
>>641559
>Я не знаю. Давайте заглянем в исходники?
Ну что, заглянул?
Аноним 06/02/20 Чтв 21:17:35 #320 №641561 
>>641560
Не. Я чай пил. И ещё в ньюсаче раковал. Если честно, я не вижу смысла заглядывать. Ведь в годоте всё, абсолютно всё выводится через ГЛЕС-драйвер, выбираемый в правом верхнем углу. То есть, как бы ты не извращался с нодами, в конечном итоге всё выведется на видеокарту и ею аппаратно отрисуется. Кроме ЦПУ-партиклов в ГЛЕС2, которые введены недавно и по сведениям документации, рисуются программно.
Аноним 06/02/20 Чтв 21:21:55 #321 №641564 
Можно ли и не муторно ли будет в годоте делать чанки, которые подгружаются по мере перехода игрока и которые сами по себе содержат ноды?
Аноним 06/02/20 Чтв 21:34:01 #322 №641569 
>>641564
Думаю что не очень сложно https://www.reddit.com/r/godot/comments/cz8o6e/how_to_get_child_scenes_transforms_from/
Аноним 06/02/20 Чтв 21:45:28 #323 №641570 
>>641564
Буквально в прошлом треде обсуждали и перетекли в этот тред. Треды читать полезно. Даю ссылку на последний пост в цепочке: >>635481
Мы правда не называли это чанками, но я думаю, терминология тебе не помешает разобраться. Речь о пуле чанков, реализованном через ветвь нод в памяти, отдельную от дерева.
Аноним 06/02/20 Чтв 22:05:35 #324 №641571 
>>641559
Добавил ещё один такой объект для пенели Next и начало помаргивать из-за того, что ради отрисовки одного тайла перерисовывается всё поле. Всё таки придётся реализовывать заложенную изначально вот здесь >>641554 интеллектуальную отрисовку только меняющихся тайлов.
Аноним 06/02/20 Чтв 22:15:13 #325 №641573 
>>641571
>интеллектуальную отрисовку только меняющихся тайлов.
Правда что ли? Прям как на GDI или в первом pygame, только я на pygame я сделал тетрис без этой техники дидов. Значит, там нет аппаратной поддержки(((
Аноним 06/02/20 Чтв 22:31:50 #326 №641577 
1581017509944.png
>>641573
> Правда что ли?
Ну, пока не получается. Выходит говнокод. Ничо не рисуется, только один тайл. Дебажу...
Аноним 06/02/20 Чтв 23:04:45 #327 №641581 
>>641570
Уверен что этот пулинг не держит все ноды загруженными в памяти?
Аноним 06/02/20 Чтв 23:06:16 #328 №641583 
>>641549
Да это понятно, но тогда и смысл в годоте теряется. Я ж хотел шоукейс простого кода запилить.
Аноним 06/02/20 Чтв 23:11:00 #329 №641584 
1581019859723.png
>>641581
Он держит в памяти только то, что явным образом держишь ты. Полная свобода по менеджменту чанками в твои руки. Отдалённые выгружаешь через queue_free() самостоятельно.
>>641573
>>641577
Короче говоря, интеллектуальная отрисовка по заветам GDI-дидов не потребовалась. Проблема оказалась тривиальнее, пикрелейтед.
Аноним 06/02/20 Чтв 23:12:02 #330 №641585 
>>641583
> шоукейс простого кода
Что сложного в этой портянке >>641559 ?
Аноним 06/02/20 Чтв 23:14:48 #331 №641586 
>>641549
Я кстати не уверен что рисовать на канве быстро. Это ж либо опенгл-примитивы, а я слышал они сильно тормозят, поскольку не треугольники, тогда и рисовать надо треугольниками даже линии и подгонять всякие антиалиасинги. Или рисовать в картинку и гонять текстуру каждый кадр.
Аноним 06/02/20 Чтв 23:15:55 #332 №641587 
>>641585
Да ничего, но кроме игры придется еще и этот код класть. Не чисто
Аноним 06/02/20 Чтв 23:35:27 #333 №641589 
1581021325273.png
>>641586
Ну, тут только самому тестить, скорость мерять. Не стоит доверять слухам.
>>641587
Ну, я своих целей только что достиг. Добился аутентичного лука энд фила из детства. Пикрелейтед.
Аноним 06/02/20 Чтв 23:56:23 #334 №641592 
>>641589
Кажется, поле меньше было
Аноним 06/02/20 Чтв 23:58:55 #335 №641593 
>>641592
Да, было 10 на 20, а я пиздюком мечтал, вот бы выпустили модель тетриса побольше. И вот, когда китайцы не доставляют, идёшь и реализуешь мечту самостоятельно!
Аноним 07/02/20 Птн 00:02:03 #336 №641594 
>>641593
У тетриса есть жоско прописанные правила, там поле определённого размера должно быть, как в шахматах.
Аноним 07/02/20 Птн 00:05:03 #337 №641595 
>>641594
Ой, вот не надо, а. Нарушай правила. Живи быстро. Целуй медленно. INSTALL GODOT
Аноним 07/02/20 Птн 00:09:40 #338 №641596 
images (6).jpeg
>>641594
Аноним 07/02/20 Птн 10:43:05 #339 №641623 
>>641596
У шахмат есть жестко прописанные правила, там расстановка фигур строго фиксирована.
То что ты запостил это уже не шахматы.
Аноним 07/02/20 Птн 10:50:04 #340 №641624 
1581061804255.png
>>641623
Не пизди.
Аноним 07/02/20 Птн 11:43:25 #341 №641630 
>>641595
>>641596
>>641624
Права на Тетрис сейчас принадлежат Нинтендо, и у них есть методичка со всеми строго расписанными параметрами, такими как размер поля, цвет фигур, особенности управления и т. д. Шаг влево-шаг вправо - расстрел. Впрочем, вы и сами это без меня знаете.
Аноним 07/02/20 Птн 11:58:01 #342 №641633 
>>641624
Недавно видел соревнования по реалтайм шахматам. Выглядело очень забавно. Там можно двигать все фигуры одновременно, но у каждой фигуры есть куллдаун после каждого хода.
Аноним 07/02/20 Птн 12:06:10 #343 №641634 
>>641630
>Права на Тетрис сейчас принадлежат Нинтендо
У них же были права только на версии для консолей, не?
Аноним 07/02/20 Птн 12:42:33 #344 №641641 
>>641630
Это как раз дополнительный аргумент почему в клоне тетриса не должно быть такое же поле.
Аноним 07/02/20 Птн 13:11:57 #345 №641647 
>>641641
Всё равно легально ты его не выпустишь, даже с полем другого размера.
Аноним 07/02/20 Птн 15:41:33 #346 №641654 
>>641630
Это традиция такая, раз в год постить беспруфные маняфантазии насчет тетриса? Опровергаемые пятью секундами в гугде.
sageАноним 07/02/20 Птн 15:46:11 #347 №641657 
>>641647
Так он не тетрис выпускает, а брикдроппер.
Аноним 07/02/20 Птн 16:16:23 #348 №641661 
1581081382265.png
>>641630
> Права на Тетрис сейчас принадлежат Нинтендо

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

Надо бы внести это в шапку ньюфаготреда, чтобы залётным неповадно было хуйню нести.
Аноним 07/02/20 Птн 16:19:22 #349 №641663 
1581081555476.png
>>641661
Скрин посыла нахуй вдогонку.
sageАноним 07/02/20 Птн 16:46:49 #350 №641669 
>>641661
Не читай советских википедий. Гугли суд 2012, там американский судья перечислил признаки Тетриса защищаемые законом, в том числе поле 10 на 20
Аноним 07/02/20 Птн 16:52:17 #351 №641671 
>>641661
>(только запатентовать)
Ну вот, епта, и хули они не запатентуют?
Аноним 07/02/20 Птн 17:14:57 #352 №641675 
>>641669
Загуглил. Там доебались до клонирования лука и фила. И действительно. Игры-клоны выпускать неправильно и подло. В этом вопросе я полностью поддерживаю сторону обвинения.
Теперь встречный вопрос. Как упомянул анон выше >>641657 я делал клон аппаратного устройства. Насколько юридически законно использовать этот клон как вспомогательную игровую активность в тридэ эрпогэ с открытым миром, домиками деревянными набигающими и корованами за 1999 руб в стиме?
Аноним 07/02/20 Птн 17:26:00 #353 №641676 
1549198383585.png
>>641671
В свое время, Pajitnov не смог запентовать свой invention потому что работал в Soviet Academy of Sciences, в которой все права передавались government сроком на 10 лет. А даже если бы и запатентовал, то срок 20 лет уже вышел.
Аноним 07/02/20 Птн 17:33:20 #354 №641678 
>>641676
Мдаа лоханулся паренек. Но вышел из ситуации в итоге неплохо.
Аноним 07/02/20 Птн 22:26:43 #355 №641700 
Новая тяночка, годаны!
https://www.youtube.com/watch?v=edJFocUd10s
Аноним 07/02/20 Птн 23:33:02 #356 №641706 
>>641700
они охуели, не успела еще видео не одного полезного выложить уже патреон блять пиарит. Хотябы онлифэнс бы пиарила с учетом что тян
Аноним 08/02/20 Суб 12:15:40 #357 №641747 
1581153339487.png
Помогите мне победить прокрастинацию :с
Вместо того, чтобы делать игры, я реализую жсон-схему в годоскрипте.
sageАноним 08/02/20 Суб 18:34:17 #358 №641788 
как годот дружит со звуком? можно ли без задержек воспроизводить десяток звуков в одну долю секунды, несколько раз в секунду, чтоб ничего не пошло по пизде?
Аноним 08/02/20 Суб 20:30:49 #359 №641796 
>>641788
https://docs.godotengine.org/ru/latest/tutorials/audio/audio_buses.html
sageАноним 08/02/20 Суб 22:23:59 #360 №641812 
image.png
>>641796
Благодарствую, будем попробовать.
Аноним 09/02/20 Вск 00:07:28 #361 №641838 
1581196046744.png
>>641747
Памахити!
Аноним 09/02/20 Вск 01:34:39 #362 №641858 
>>635427 (OP)
Что за хуйня с версией Годота 3.2? В версии 3.1 всё работало, теперь VehicleBody стоит на месте.
Аноним 09/02/20 Вск 01:40:20 #363 №641859 
Дополню: они что-то намутили с VehicleBody, из-за чего мой автомобиль едет со скоростью 1 хуан в час на любой мощности двигателя
Аноним 09/02/20 Вск 01:42:54 #364 №641861 
А, эти дурачки добавили галочку use as traction, но уведомили о ней только в жопе гитхаба и на вики пока не видно обновлений по этому поводу
Надо галочку use as traction на колёсах пометить
Аноним 09/02/20 Вск 11:07:34 #365 №641897 
>>641861
У меня примерно такое же было при переходе с 3.0 на 3.1 с анимацией частиц. Бомбил сильно. Вся анимация перестала работать и выводился спрайтлист целиком. И все связанные с анимацией настройки ИСЧЕЗЛИ!!! Как же я бомбил! Как же я проклинал Хуана! А потом методом тыка обнаружил, что анимация подключается отдельным шейдер-ресурсом и только в режиме GLES3. В документации наверное и по сей день не отражено.
Аноним 09/02/20 Вск 15:47:33 #366 №641957 
>>635427 (OP)
Что такое "Ассет"? Именно в годоте
Аноним 09/02/20 Вск 15:56:00 #367 №641962 
>>641957
1. Это цифровой ресурс (картинка, звук, 3д модель) - https://docs.godotengine.org/en/3.2/getting_started/workflow/assets/index.html
2. Готовый "строительный кубик", дающий какую-либо функциональность, обычно ставится как аддон в проект, либо плагин в редактор, изредка как модуль в движок. https://godotengine.org/asset-library/asset
Аноним 09/02/20 Вск 16:00:49 #368 №641964 
1581253248191.png
>>641838
Моё лицо моя главная функция, когда понял суть жсон-схемы:
Аноним 09/02/20 Вск 17:02:49 #369 №641973 
>>641962
Спасибо. Я тут посижу с вами пока не надоест
Аноним 09/02/20 Вск 17:38:28 #370 №641977 
Котаны. Есть некий код, который вытаскивает числа из массива, числа могут быть целыми и дробными. Почему-то целые числа он не видит в упор, считая все числа float'ом. Типизировать числа в массиве скрипт в данном случае к сожалению не может. Я имею ввиду что-то типа PoolTypedArray<[T1, T2, ... Tn]>
Аноним 09/02/20 Вск 17:46:25 #371 №641979 
>>641977
Я обычно могу расшифровать любые непонятные вопросы, но ты победил, признаю. Какие то квадратные скобочки внутри угловых, массивы из разнородных типов, объясни нормально.
Аноним 09/02/20 Вск 17:55:00 #372 №641982 
>>641979
<> - элемент типизирования по шаблону (быдляцк. "дженерик") примеры List<T> где List общий тип, Т уточняющий тип, List<String> означает типизировать общий тип списка до строкового.
[] - элемент описания массива, пример [T1, T2, T3] массив уточняющих типов для шаблона выше.
Gdscript позволяет создавать массивы из разнородных элементов. Но не умеет в типизирование.

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

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

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

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

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

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

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

Аноним 10/02/20 Пнд 17:49:11 #398 №642160 
>>642125
> Дана одна сцена и меню выбора уровней. Необходимо, чтобы при нажатии, например, на кнопку уровня под номером "2" загружалась сцена с дополнительным условием, например расположение точки финиша на сцене.
Сцены, которые ты грузишь кнопками - это игровые уровни. Каждый твой уровень должен иметь функцию, которая в качестве аргумента принимает координаты точки финиша. То есть иметь единый интерфейс. После этого в коде кнопок у тебя стоит вызов этой функции.
Это только один из возможных вариантов.
Аноним 10/02/20 Пнд 17:54:12 #399 №642164 
>>642150
>>642106
Держу в курсе - пока успел потестить пример из ишью, и тест 4anon из шапки. Пример действительно разогнался, как и заявлено, а вот мой тайлмап - нет. Почему, пока не смог выяснить. Может получится настроить профайлер через кабель, сучий андроид все время связь теряет.
Аноним 10/02/20 Пнд 18:04:45 #400 №642165 
>>642125
Служебное меню, доступное в любой момент выполнения приложения должно быть синглтоном (великим и ужасным антипаттерном, за который не перезванивают). Добавляешь сцену с выбором уровней в автозагрузку, вешаешь на нее кнопку Esc например или Tab, по которой она появляется и скрывается. Из этой сцены кнопки выбора уровней задают параметр активной сцены в движке, которая есть игровой уровень, как написано выше. Второй вариант передачи параметров в игровой уровень: держать переменную в нём. Если загруженная главная сцена нуждается в параметре, она обращается к синглтону и берет эти данные у него. Я пользуюсь этим способом, у меня в авто загрузке всегда висит синглтон world, который, как видно из названия, держит в себе всю актуальную информацию об игровом мире (даже если это "мир" настольной игры). Этот же файл удобен как данные для файла сохранения. Способ я редко афиширую. Из-за антипаттерна в составе.
Аноним 10/02/20 Пнд 18:08:20 #401 №642167 
>>642164
Не появилось ли годных эмуляторов андроида? Помню щупал парочку в дремучих нулевых, но работали они паскудно.
Аноним 10/02/20 Пнд 18:18:21 #402 №642171 
>>642167
А хотя, что толку от эмуляторов? Они же на железе пекарни будут выполняться и там всё предположительно тормозить не будет.
Аноним 10/02/20 Пнд 20:01:29 #403 №642204 
ЧЁ ЗА ХУЙНЯ С ТОРМОЗАМИ У VehicleBody
Выставляю в редакторе силу тормоза (brake) 100500, а годот сбрасывает её до одного. Что блядь удивительного, так это то, что в оф. руководстве написано, что BRAKE ОКАЗЫВАЕТСЯ МОЖЕТ ПРИНИМАТЬ ЗНАЧЕНИЯ БОЛЬШЕ ОДНОГО, но как это сделать не уточняется. Только потом узнал, что значение надо менять не через редактор, а через К О Д
Аноним 10/02/20 Пнд 20:03:17 #404 №642205 
Или всё же выставляется, но редактор упорно продолжает показывать значение 1 у brake, хотя в самом руководстве рекомендуется опираться на значение 20-25 при 1000кг массы
Аноним 10/02/20 Пнд 20:10:20 #405 №642207 
>>642205
>>642204
Неадекватность документации в ряде вопросов - факт известный. Юзай треды на реддите через поиск в гугле для более полноценной инфы. Пока так. Держись там. Хорошего настроения. И успешных игор.
Аноним 10/02/20 Пнд 20:10:27 #406 №642208 
>>642167
Пару лет назад пользовался Nox, чтобы на компе играть в какую-то ферму, правда со временем он разбухал все больше и больше, да и скорее всего сливает все что на него устанавливаешь китайским авторам. Из забавного юзкейса - нашел в дампе памяти 3д модельку и выковырял ее. Искал чит энжином по примерному значению float. Правда, к этому времени хакеры вытащили ее то ли расшифровав сетевой трафик, то ли риппером с буфера opengl и выложили
Аноним 10/02/20 Пнд 22:21:54 #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


и он не работает, когда игрок движется влево или вправо.
Аноним 10/02/20 Пнд 22:31:36 #408 №642241 
>>642239
Так, ну на первый взгляд:
1. надо перенести это в _physics_process
2. В move_and_collide вектор надо домножать на delta (в move_and_slide не надо)
3. velocity который ты рассчитываешь, вообще никак не используется?
Аноним 10/02/20 Пнд 22:37:08 #409 №642244 
>>642239
Неправильно. Ты просто указываешь направление на пол единичным вектором Vector2.DOWN если пол внизу. И после этого у тела заполняется свойство is_on_floor()
Другое дело, если тебе надо цепляться за стены. В таком случае тебе вообще лучше рассмотреть переход плеер-контроллера на полноценный RigidBody c полноценной симуляцией физики, чем ебаться с этим кинематическим велосипедом.
Аноним 10/02/20 Пнд 22:38:34 #410 №642246 
>>642244
> Ты просто указываешь направление на пол единичным вектором move_and_slide(velocity, Vector2.DOWN) если пол внизу.
Быстрофикс.
Аноним 11/02/20 Втр 00:29:50 #411 №642268 
1581370189322.png
Бля, у меня уже мозги вскипели! Как может брекпоинт не срабатывать на 81 строке но срабатывать на 84? Притом, что по показаниям локальных переменных она (функция вызываемая в 84й строке) отработала. Если ставить брекпоинты внутри _type_selection, они срабатывают. И вообще, после 76 строки сразу перескакивает на 84ю. Как может срабатывать функция, если её ещё не вызвала функция уровнем выше?
Если что я первым делом заподозрил глюк отладчика и перезапустил редактор.
Аноним 11/02/20 Втр 10:35:39 #412 №642299 
>>642268
Бля, утро вечера мудренее. Это похоже компилятор скрипта преобразовал
> a = b()
> return a
в
> return b()
Аноним 11/02/20 Втр 15:03:58 #413 №642352 
Я правильно понимаю, что если ты пишешь на C#, то у тебя не будет никаких автодополнений?
Аноним 11/02/20 Втр 15:12:07 #414 №642354 
>>642352
Под студией нормально вроде пишется, забудьте о моем глупом вопросе
Аноним 11/02/20 Втр 15:16:10 #415 №642355 
>>642299
Хотел вчера высказать такое предположение, но не думал, что гдскрипт делает такие оптимизации. Может, у тебя реально не тот if выполняется?
Аноним 11/02/20 Втр 15:24:56 #416 №642359 
>>642355
Да нет, иф именно тот.
Аноним 11/02/20 Втр 19:42:06 #417 №642426 
КАк сделать передвижение камеры перетаскиванием? Стрелочки ниудобна
Аноним 11/02/20 Втр 19:45:16 #418 №642427 
>>635427 (OP)
Помогите новичку. Как писать на C#? Он выдаёт только GDScript
Аноним 11/02/20 Втр 19:50:47 #419 №642433 
>>642427
Надо качать с сайта версию с c#. Или собрать самому. И иметь в виду что c# на айфоны пока не сделали, а в webassembly в альфе.
Аноним 11/02/20 Втр 20:05:24 #420 №642446 
>>642426
Управление в 3д редакторе:
Пр. кнопка мыши - вращать камерой
Ср. кнопка мыши - вращать вокруг выбранного объекта
Шифт + Ср. кнопка мыши - перетаскивание камеры редактора
Пр. кнопка мыши + WASD - движение как в шутере
F - навести камеру на выбранный объект.
Аноним 11/02/20 Втр 20:20:15 #421 №642451 
1581441614880.png
>>642427
Аноним 11/02/20 Втр 20:38:13 #422 №642458 
>>642451
Какой же сишарп няшный. Да даже питон няшнее гдскрипта
Аноним 11/02/20 Втр 20:42:13 #423 №642462 
>>642458
Вкусовщина. Мне гдскрипт своим внешним видом нравится Такой-то питоно-луа-паскаль. А вот слоупочность его - разочаровывает.
Аноним 13/02/20 Чтв 01:25:44 #424 №642666 
1439323251753.png
1451885288875.png
>>642106
>>642098
Потестил сегодня вечером немного, результат не то чтобы впечатлил, но около x2 прироста на простейшем примере мигания клеточками дает.

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

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

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

Аноним 13/02/20 Чтв 01:34:31 #425 №642668 
>>642666
Ну неплохо. Лишние фпс не помешают. Удачно я зашёл перед сном.
Аноним 13/02/20 Чтв 11:32:56 #426 №642697 
А помните, пару тредов назад анон жаловался, что нельзя на лету менять скелеты под анимации. Как с этим ситуация в 3.2? Можем ли теперь запилить убийцу скайрима с модами, которые в готовую игру кастомный скелет устанавливают?
Аноним 13/02/20 Чтв 11:48:36 #427 №642698 
>>642697
Поменьше слушай пиздаболов.
Аноним 13/02/20 Чтв 11:49:27 #428 №642699 
>>642433
>>642451
Не. я написал код на C#. Но как его в годот засунуть. Когда привязыааю к сцене скрипт он создаёт новый гдскрипт
Аноним 13/02/20 Чтв 11:52:53 #429 №642700 
>>642699
> как его в годот засунуть
Нужно скачать специальный годот-моно.
Аноним 13/02/20 Чтв 12:07:35 #430 №642704 
1505187180871.png
>>642699

Аноним 13/02/20 Чтв 12:12:26 #431 №642705 
>>642699
Либо, если ты имеешь в виду, что у тебя уже есть .cs файл, то у каждой ноды, в свойствах, самое последнее свойство Script -> Load...
Аноним 13/02/20 Чтв 12:27:55 #432 №642708 
1494758583817.png
>>642699
Аноним 13/02/20 Чтв 12:34:56 #433 №642709 
>>642697
Наверное, сегодня займусь. Часика через 4 покажу как.
Аноним 13/02/20 Чтв 16:11:45 #434 №642731 
>>642700
>>642704
>>642705
>>642708
Спасибо, добра вам, няши.
sageАноним 13/02/20 Чтв 19:09:44 #435 №642753 
Мне так стыдно, но я не умею по нормальному учится, только вот так, опытом. Но я уже день пытаюсь понять как эту камеру двигать. (Движение мышкой есть)
Move_and_collide для камеры не работает. Я очень тупой но мне очень нужно.
Аноним 13/02/20 Чтв 19:22:45 #436 №642756 
>>642753
Опиши внятнее что ты делаешь.
Если контроллер игрока - то, логично, ты можешь приделать камеру нодой к kinematicbody игрока, которое умеет move and collide.
Если ты делаешь какую-то стратежку, то можно просто камере задавать translate.
Если у тебя катсцена, то вообще вроде бы можно нарисовать путь для пролета камеры анимацией.
Аноним 13/02/20 Чтв 19:29:01 #437 №642758 
Котаны, ещё вопрос. Вот допустим есть у меня метка-триггер. Как сделать последовательность таких триггеров, чтобы после срабатывания первого срабатывал второй?
Аноним 13/02/20 Чтв 19:29:33 #438 №642759 
>>642758
Точнее чтобы первый триггер исчезал и появлялся второй и так далее
Аноним 13/02/20 Чтв 19:45:17 #439 №642761 
>>642759
По-моему, достаточно задавать $Area1.disable=true
Аноним 13/02/20 Чтв 20:33:31 #440 №642768 
>>642761
Так а второй тогда как включать? Нет, ты не понял. Я хочу, чтобы оно всё автоматом шло. Я передаю сцене метки с координатами 1,2,3.., и они по очереди меняются
Аноним 13/02/20 Чтв 21:33:09 #441 №642783 
1545538916738.png
>>642768
Ну например вот так
Аноним 13/02/20 Чтв 21:34:27 #442 №642785 
>>642783
от души, спасибо
Аноним 13/02/20 Чтв 21:39:56 #443 №642786 
>>642785
Разберешься, в общем все основное в первой половине, а во второй это уже как ты сам захочешь задавать области, их формы и тд
Аноним 13/02/20 Чтв 21:57:09 #444 №642789 
1488041223235.png
>>642785
Я все сильнее упростил, теперь можно просто прикрепить к ноде со скриптом список всех триггерных зон, и они будут срабатывать по порядку. А там уже рисовать их на карте как душе вздумается.
Аноним 13/02/20 Чтв 21:59:59 #445 №642792 
>>642789
9-ю строчку забыл стереть.
Аноним 13/02/20 Чтв 22:02:00 #446 №642793 
>>642792
мне проект уже 16 числа сдавать, вместо разработки твоего пикрелейтед я почти неделю работал над красивыми шейдерами
Аноним 13/02/20 Чтв 22:03:35 #447 №642794 
>>642793
Да, шейдеры сложно, я их пока не осиливаю.
Аноним 14/02/20 Птн 02:45:30 #448 №642828 
1581512602649.png
1476438368370.png
>>642709
До конца разобраться не вышло, продолжу завтра.
Общая идея такая - импортируем одного персонажа, импортируем второго. Сохраняем анимацию первого в отдельный файл .anim. Загружаем второму. Он воспроизводит анимацию. Проблема с T-позами. Она начинает проигрываться с той позы, в которой был персонаж. Надо как-то их сначала в блендере приводить к T-позе перед экспортом, возможно.
Аноним 14/02/20 Птн 08:34:45 #449 №642849 
>>642753
> я не умею по нормальному учится, только вот так, опытом
Попробуй клиповым мышлением затащить:
https://www.youtube.com/watch?v=-wBBEmq8ku0
Аноним 14/02/20 Птн 08:44:35 #450 №642851 
>>642828
Спасибо за твой труд. Помни, что основная задача: прикручивать скелет без модели к модели без скелета во время выполнения игры в движке. Очевидно, что файл .аним будет жёстко привязан к определенным костям скелета. Собственно, это же мы наблюдаем при моддинге скайрима. Сначала мы ставим набор анимаций, ставим требуемый скелет, затем запускаем утилиту ФНИС, которая чототама волшебное генерирует, а по факту она генерирует именно аналог .аним-файлов.
И остаётся главный вопрос: как быть с весами вершин меша?
Аноним 14/02/20 Птн 15:41:35 #451 №642925 
Кто-нибудь уже делал бенчмарки со сравнением производительности мешинстанса и обычным мешем?
Аноним 14/02/20 Птн 16:13:56 #452 №642928 
>>642925
Кто-нибудь непременно делал. Но гуглить лень. Пример из документации ( https://docs.godotengine.org/ru/latest/tutorials/3d/using_multi_mesh_instance.html ) тебя не устраивает?
Аноним 15/02/20 Суб 07:24:08 #453 №643004 
Зачем годотя открывает cmd мне когда запускается? Я же не дебаг-билд блин скачал, при этом она зачем то еще и выводит то, что во встроенной в редактор консоли уже показывается.
Аноним 15/02/20 Суб 09:25:45 #454 №643008 
Мое литсе, когда сделать систему сохранения и инвентарь получилось за несколько часов, а я думал буду несколько дней пилить. Однако шейдеры уже неделю учу, хотя думал за час управлюсь.
Аноним 15/02/20 Суб 11:24:17 #455 №643021 
>>641589
Блять, я ушел из треда месяца 3 назад и ты уже тогда постил этот же тетрис.
Аноним 15/02/20 Суб 14:07:00 #456 №643035 
>>642081
Напихай 15х23 например
Аноним 15/02/20 Суб 14:42:05 #457 №643052 
>>643021
А что бы и не постить, если в тему? Проект был написан за один вечер 3 месяца назад, выложен на итч и забыт. А тут ИТТ вскрылись новые данные, позволившие немного его пофиксить (перевести с тайлмапа на draw_texture). Что в свою очередь немношк пощекотало моё ЧСВ в том плане, что мой код настолько инкапсулирован, что мне было достаточно пары десятков минут, чтобы поменять способ отрисовки, не переделывая другие участки. В существующие реализации тетриса не смотрел принципиально. Знаю только что вся логика основана на проверках возможности поместить фигурку в новое расположение.
Аноним 15/02/20 Суб 15:16:57 #458 №643059 
Коллеги, я бы где-нибудь хотел выложить андроидовский проект на годот на обсуждение и возможно получить негативные отзывы на этапе прототипа. Это можно сделать на gotm.io? Какое там отношение к таким экспериментам?
Аноним 15/02/20 Суб 15:37:55 #459 №643061 
>>643059
Весь тред ждёт героя, который выложит хоть что-то на gotm и расскажет нам. Может им будешь ты?
Аноним 15/02/20 Суб 16:21:07 #460 №643070 
>>643061
Да, там вроде все просто. Работает нормально. Только нет описания игры, реализации донатов и непонятно кто разработчик, когда находишь игру.
Аноним 15/02/20 Суб 16:28:35 #461 №643075 
>>643070
В продолжении темы, если хотите - можете сыграть: https://gotm.io/podotchet/space
Аноним 15/02/20 Суб 16:37:27 #462 №643077 
>>643075
Нихуя не понел, как играть. Начинается бой. Кораблики куда-то летят. Мышкой скроллится игровое поле. И? Кнопка документации в главном меню не работает. Экранных подсказок нет.
Аноним 15/02/20 Суб 16:44:38 #463 №643081 
Безымянный.png
>>643077
Там тыкаешь мышкой на клетку, подсвечивается где можно строить здания. Строишь здания нажав на голубую кнопку с чертежами.
Как мне сделать так, чтобы было понятно?
Аноним 15/02/20 Суб 16:45:43 #464 №643082 
>>643077
Если выделить уже построенное здание, можно будет задавать маршрут корабликам.
Аноним 15/02/20 Суб 16:55:58 #465 №643087 
>>643081
> Как мне сделать так, чтобы было понятно?
Ну, как минимум, написать мини-гайд в главном меню. Идеально же - делать всплывающие подсказки по наведению на объекты мышкой и при достижении ключевых этапов игры. И не забыть добавить отключаемость этих подсказок в настройках, для продвинувшихся игроков.
Аноним 15/02/20 Суб 17:05:13 #466 №643093 
>>643087
Я записал твои советы. Пока что временно влил версию с "документацией". Надеюсь, она поможет кому-то.
Аноним 15/02/20 Суб 17:08:19 #467 №643094 
>>643075
Где-то на 9 ходу игра наглухо зависла (upd: ааа, видимо из-за этого >>643093 )
И ещё минус - очень медлительные ходы. Надо добавить пропуск отсчёта до следующего боя, либо конфигурировать его в настройках.
Аноним 15/02/20 Суб 17:09:09 #468 №643095 
>>643087
>всплывающие подсказки по наведению на объекты мышкой
У него же вроде для андроида, какие еще всплывающие? Надо сбоку где то делать.
Аноним 15/02/20 Суб 17:10:30 #469 №643096 
>>643094
Я добавлю пропуск ходов. Версию с долгим "ходом" поставил для того, чтобы было время покликать. Чем дальше по ходам, тем больше микроконтроля и начинаешь не успевать. Так что пропуск хода - идеален.
Аноним 15/02/20 Суб 17:12:17 #470 №643098 
>>643095
Он имеет ввиду, как будто ты строишь здание, и если тебе не хватает денег - вылезает ошибка. Тоже самое с обучением - можно сделать, "если ход = 0 и уровень бота лоу - вывести подсказку на экран". Это действительно полезно. Потому что я завяз в разработке и не вижу пользовательского опыта, а уже кликаю по привычке и думаю, что все понятно.
Аноним 15/02/20 Суб 17:16:44 #471 №643102 
>>643096
Ну и поскольку игра предполагает ПвП то идеальный вариант уже известен и юзается большинством настольных онлайн-игр: есть отсчёт, по окончании которого начинается матч, и есть кнопка готов у каждого из участников. Если все участники кликнули кнопку - отсчёт обнуляется и матч стартует. При игоре с ботом - бот очевидно тоже нажимает эту кнопку у себя, завершив свои действия.
Аноним 15/02/20 Суб 17:25:24 #472 №643110 
>>643098
А я имею в виду, что подсказки в мобильных играх должны не вылезать в том месте, куда кликнули, а постоянно висеть, например, после выбора юнита.
Аноним 15/02/20 Суб 17:40:02 #473 №643114 
>>643102
Да. Я добавлю это в ближайшие дни. Пока что меня очень дико раздражает тот момент, что я совсем забыл про подсказки.
На данный момент ещё раз перебилдил. Теперь начало первого и второго хода оповестит Вас об основных двух возможностях - строить здания и изменять маршруты.

>>643110
Да, конечно. Я постараюсь поработать над этим.
Аноним 15/02/20 Суб 18:10:58 #474 №643121 
1581779454779.png
Еее! Затащил изи бота.
Аноним 15/02/20 Суб 18:21:35 #475 №643124 
>>643121
Ваше впечатление как первого затащившего изи бота?
Аноним 15/02/20 Суб 18:27:16 #476 №643126 
1466495682693.png
>>643121
А я на 9-м. Правда пока нихуя не понял.
Аноним 15/02/20 Суб 18:36:24 #477 №643127 
>>643126
Основная концепция в трате ресурсов. Потеря здоровья главной базы до определённого числа наиболее выгодна, чем потеря ангара. Так что до 5 здоровья, вы стараетесь убивать вражеские ангары, а после защищать ими главное здание. Даже убийство 1 вражеского ангара даёт вам преимущество в 1 урон в ход, что позволяет полностью дефиться своими кораблями и наносить 1 урон, получая преимущество. Лоу бот использует раш тактику - все в мейн здание. Что и делает его лёгким.
Аноним 15/02/20 Суб 21:03:11 #478 №643143 
Выковка годноты продолжается. Лицензия MIT!
https://www.youtube.com/watch?v=3EbrCXsgMV8
Аноним 15/02/20 Суб 21:15:42 #479 №643147 
>>643127
Управление пока подглючивает, неудобно. Зависает. Забывает проложенные маршруты.
Аноним 15/02/20 Суб 21:20:04 #480 №643149 
>>643147
Ты их достроил? Довел до базы врага нажав на конечную точку или здание? Как мне сделать так, чтобы это не было проблемой? всегда устанавливать маршрут?
Аноним 15/02/20 Суб 21:24:11 #481 №643150 
>>643147
Так же интересно, с какого устройства играл. Что значит "управление подглючивает"? Прям лаги? Или при нажатии не нажимается? Проблемы с выделением клеток или камерой?
Аноним 15/02/20 Суб 21:30:05 #482 №643151 
>>643149
> Как мне сделать так, чтобы это не было проблемой?
Индикация прокладки маршрута. Ячейка текущей конечной точки мигает, означая, что маршрут не проложен. При клике на ячейке со строением маршрут подсвечивается целиком, сигнализируя что успешно проложен. Если игрок бросил прокладку (или не успел) то маршрут докладывается автоматически по алгоритму бота.
Аноним 15/02/20 Суб 21:37:04 #483 №643154 
>>643151
Сейчас маршрут зеленый, если не проложен. Красный - текущий. Единственный способ, чтобы маршрут сбросился автоматически, поставить новое здание на маршруте (корабль не может пролетать через здания и перестраивает его до главной базы).
Я записал твои замечания. Спасибо, что делаете игровой опыт других игроков лучше.
Аноним 15/02/20 Суб 21:38:16 #484 №643155 
>>641589
Анон, чтобы избежать любых лицензионных претензий в будущем, и при этом, чтобы добавить в свою тридэ-эрпогэ ностальгии по 90м, сделай вымышленный игровой гаджет с картриджами-экранами. Суть токова. Без картриджа девайс не работает. Картридж вставляется сверху и на его лицевой части имеется ж/к-экран с раскладкой для игры и чип-контроллер. У девайса есть только кнопки для управления игрой. На локациях игры можно найти картриджи с такими играми, как крестики-нолики, пятнашки, и т.п. 2х-3х игор-картриджей будет достаточно, чтобы вызвать у игрока за 40 стойкий приступ ностальгии.
Аноним 15/02/20 Суб 21:38:39 #485 №643156 
Почему условие, повешенное на area не выводит true, если vehiclebody входит в area?
Сам код у area: overlaps_body(get.parent().get_node('car_vehiclebody'))
Аноним 15/02/20 Суб 21:39:41 #486 №643157 
>>643156
Лучше делай через группы. Мой тебе совет.
Аноним 15/02/20 Суб 21:43:22 #487 №643159 
>>643157
Сделал так:
func _on_area_body_entered(body):
if body.get_name()=='car_vehiclebody':
Аноним 15/02/20 Суб 21:44:33 #488 №643160 
image.png
>>643157
Блять куда двач форматировал код
Всё теперь работает, лол
Аноним 15/02/20 Суб 21:47:21 #489 №643162 
>>643159
На первый взгляд никакой разницы, тоже сравнение строки со строкой, как и группы, но в случае изменения имён объектов, тебе придётся лезть в код и вспоминать, где у тебя имя захардкожено.
Так что совет в силе - юзай группы.
>>643160
Форматирование не поддерживается. Ебанутое ретроградство с поддержкой вакабамарк ещё и съедает звёздочки. Юзай пастебин или скрины.
Аноним 15/02/20 Суб 21:47:38 #490 №643163 
1444209100382.png
>>643150
Я с винды мышкой.
> Что значит "управление подглючивает"?
Было неудобно. Другой анон прав, не вполне понятно что ты в режиме прокладки маршрута и он не закончен. Я думал, что маршрут закончен, нажимал на другой домик, а маршрут начинает прокладываться взад. Нажимаю на кнопку в углу, а она не отжимается. И вообще необходимость прокликивать каждый домик, потом кнопку, потом пару точек, привело к тому что я не успеваю с 5 домиками прокликать всем маршруты.
Зависания были, не понял чем вызваны, улетают только первые корабли, задние стоят, при столкновении замирают, взрыв не показан, потом игра зависает. Сначала думал что это при повторной игре, но и при обновлении странички такое 2 раза словил.
Зарашил среднего бота без всякого ресурс менеджмента, просто посылая 3-х в обход, и строя заводы в передних двух клетках.
Аноним 15/02/20 Суб 21:52:25 #491 №643167 
Ещё вопросец. Я удаляю child ноды через queue_free, в списке нод она исчезает. Однако, когда я чекаю кол-во child нод, get_child_count() выдаёт мне число 1
Аноним 15/02/20 Суб 21:57:46 #492 №643170 
>>643167
а, забыл, что надо просто free писать
Аноним 15/02/20 Суб 21:59:36 #493 №643171 
>>643167
queue_free не удалаяет ноду, а только ставит ее в очередь на удаление к следующему кадру. Это надо, чтобы игра не упала, если нода используется где-то в списках внутре движка.
Аноним 15/02/20 Суб 21:59:58 #494 №643172 
Чё за opcode #38 report please
Аноним 15/02/20 Суб 22:06:03 #495 №643173 
>>643172
Тебе пзда.
Аноним 15/02/20 Суб 22:13:44 #496 №643174 
>>643172
Я не очень понял по описанию, но вроде суть примерно такая - в gdscript некоторые конструкции вида
var a = Class1.Class2.func()
теряют временный объект, поэтому надо разбить на
var a = Class1
var b = a.Class2.func()
Аноним 15/02/20 Суб 22:29:36 #497 №643179 
>>643163
Я не совсем понимаю, как мог забагаться взрыв. Я тоже тестил с винды, и такого у меня совсем не наблюдается.
Как мне сделать "понимание" "прокладки маршрута" лучше?
Аноним 15/02/20 Суб 22:31:48 #498 №643182 
image.png
>>643172
>>643173
>>643174
Ошибка за ошибкой: opcode#38 теперь перестал появляться, зато теперь всё крашится и выдаётся вот это:
Аноним 15/02/20 Суб 22:34:43 #499 №643183 
>>643182
На сегодня сеанс телепатии кончился, мы же не знаем что ты там делаешь.
Аноним 15/02/20 Суб 22:35:21 #500 №643184 
>>643163
На данный момент пока что запиливаю, чтобы перепрокладывался только маршрут до точки, где его сбили зданием и складывался с куском, где его никто не трогал. Надеюсь, это облегчит участь игрока.
Аноним 15/02/20 Суб 22:35:26 #501 №643185 
image.png
>>643183
Будто это что-то даст
Аноним 15/02/20 Суб 22:46:44 #502 №643187 
1502558056470.jpg
>>643185
Действительно, ничего не дало.
А как ты хранишь скрипты, прямо в сценах? Попробуй просто перезагрузить проект.
ПЕРЕКАТ Аноним OP 15/02/20 Суб 22:50:05 #503 №643189 
>>643188 (OP)
>>643188 (OP)
>>643188 (OP)

Аноним 15/02/20 Суб 22:54:06 #504 №643192 
>>643185
> get_node(/root).add_child()
Это делается через автозагрузку в настройках проекта. Только через это меню ты сможешь добавить чайлд руту.
Покормил
Аноним 15/02/20 Суб 22:59:05 #505 №643196 
>>643192
так до этого я и без автозагрузки добавлял вроде
Аноним 15/02/20 Суб 23:16:09 #506 №643200 
1581797768580.png
>>643196
А теперь не будешь.
Покормил #2
Аноним 15/02/20 Суб 23:23:43 #507 №643203 
>>643200
Насколько я помню, все очень просто - нельзя вызывать add_child из ready, потому что, собственно, parent node is busy setting up children. Как и написано, ты можешь вызвать call_deferred("add_child"... чтобы добавить в следующем кадре, либо вызвать add_child в первом вызове _process.
Аноним 16/02/20 Вск 00:15:40 #508 №643211 
>>643200
у меня такого нет
покормил
Аноним 18/02/20 Втр 00:50:26 #509 №643613 
Игра, написанная на шарпе, бужет работать на андроиде?
comments powered by Disqus

Отзывы и предложения