24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Godot #36

 Аноним OP 19/06/23 Пнд 22:39:21 #1 №882096 
1687203559678.png
Добро пожаловать в тред любви, взаимопомощи и сверхкороткой шапки!

Шапка: https://hipolink.me/godothread

Предыдущий: >>873235 (OP)

Архивный: >>867751 (OP)
Аноним 19/06/23 Пнд 23:24:27 #2 №882099 
25 юзеров мобильной игры в гугл-плее за месяц - хороший или плохой старт? Моя первая игра.
Аноним 20/06/23 Втр 16:53:21 #3 №882147 
>>882099
Ящитаю (с дивана) успешность игоры следует мерять по баблу. Сколько ты проел пока делал? Столько же ты должен отбить с продаж, чтобы выйти в ноль. Если вышел в ноль - это уже не фейл. Если же начинаешь идти в плюс - ты уже успешен.
Аноним 20/06/23 Втр 18:32:45 #4 №882157 
>>882099
Зависит от игры, схемы её монетизации, как и сколько ты вложил в маркетинг, кто эти юзеры, как много и как частно они реально играют, и т.д.

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

Но это надо конкретно маркетинг изучать. Я только поверхностно термины слышал, в тему не углублялся, поскольку не планирую зарабатывать.
Аноним 20/06/23 Втр 22:32:59 #5 №882173 
>>882147
>>882157
У самих-то хуй да нихуя.
Аноним 21/06/23 Срд 00:27:25 #6 №882182 
Перевозка груза из города в город.mp4
>>882096 (OP)
ПЕРЕКАТИЛСЯ
Аноним 21/06/23 Срд 00:44:41 #7 №882183 
1615601830541.png
>>882182
Забубца.
Аноним 21/06/23 Срд 01:45:35 #8 №882184 
loooong.jpg
>>882183
Вообще-то такое ИРЛ существует...
https://en.wikipedia.org/wiki/Road_train
Рекорды до 120 прицепов доходят.
Аноним 21/06/23 Срд 13:06:04 #9 №882206 
>>882182
Не спи за рулём!
Аноним 22/06/23 Чтв 01:33:40 #10 №882275 
Где взять копирайт-фри фоновую музыку, автор которой не взорвется жопной болью если я получу 5 копеек с игры, в которую воткну его музыку?
Аноним 22/06/23 Чтв 02:26:17 #11 №882278 
>>882275
Ищи музыку под лицензией CC BY, но без дополнительных условий ND, NC, SA.

Если кратко:
CC - множество лицензий для свободного контента.
BY - нужно указать автора используемого контента.
SA - это "заразная" версия, аналог GPL, копилефт.
NC - только некоммерческое использование.
ND - нельзя делать производные работы.

Для музыки игра будет производной работой, при этом ты хочешь заработать на игре, и вряд ли хочешь распространять игру под свободной лицензией. Следовательно, тебе подходит только CC BY.

Статья про видео, но подходит и играм:
https://creativecommons.org/about/program-areas/arts-culture/arts-culture-resources/legalmusicforvideos/
Аноним 22/06/23 Чтв 02:53:29 #12 №882279 
>>882278
Где искать-то? На итче почти ничего.
Аноним 22/06/23 Чтв 02:59:57 #13 №882280 
>>882279
Ты по ссылке не переходил?

>Where can I find CC-licensed music?
>Several sites offer music published under Creative Commons’ flexible copyright licenses. Here are some:
>ccMixter
>Free Music Archive
>Jamendo
>Magnatune
>Fugue Music
>BeatPick
>CASH Music
>SectionZ
>Opsound
>Podsafe Audio
>AudioFarm
>Internet Archive’s Netlabels Collection
(ссылки смотри сам в статье)
Аноним 22/06/23 Чтв 03:11:03 #14 №882281 
>>882280
Хотел уже ответить что там говно одно, но нет, ок. Спасибо, братюнь.
Аноним 22/06/23 Чтв 03:44:10 #15 №882284 
>>882278
Я хотел посоветовать тебе AI generated, но все сайты просят подписку за деньги.
Имхо, все равно нужно гуглить в том направлении.
Аноним 22/06/23 Чтв 04:41:36 #16 №882290 
>>882284
>посоветовать тебе
Кому ты отвечаешь-то?

>AI generated
Если ты про нейронки, тут есть нюансы:
1. На чём тренировали нейронку? Может оказаться, что тренировали на несвободном контенте.
2. Даже если тренировали на свободном контенте, результат генерации может оказаться похож на несвободный. Где-то слышал, что для суда вроде достаточно совпадения нескольких нот.
3. Часто на контент от нейронки ставят различные ограничения, нужно читать соглашения и т.д.
4. США несколько месяцев назад установили закон, в соответствии с которым любой сгенерированный алгоритмами контент не подлежит копирайту, т.е. любой Васян/Джон имеет право рипнуть музыку из твоей игры и легально использовать в любых целях.
5. Из того, что я слушал - какая-то однородная мешанина без смысла. Белый шум и то интереснее.

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

>нужно гуглить в том направлении
Быстрее загуглить как сочинять музыку и быстро состряпать несколько треков в опенсурсном редакторе музыки. Или закодить процедурный генератор, чтобы в игре на лету генерировать.
Аноним 22/06/23 Чтв 05:00:50 #17 №882291 
>>882290
>любой Васян/Джон имеет право рипнуть музыку из твоей игры и легально использовать в любых целях.
Мне кажется, если такое даже и произойдёт, это будет сорт оф признание. Даже плюс. Дополнительная реклама игре.

>Или закодить процедурный генератор, чтобы в игре на лету генерировать.
Чёт вспомнился звуковой ряд Mini Metro. Самый годный пример, когда в игре вроде бы музыки нет, но она рождается из звучания игровых элементов. И вообще игра охуенная.

мимо поддержал разговор
Аноним 22/06/23 Чтв 05:06:39 #18 №882292 
>>882290
>Кому ты отвечаешь-то?
Да не трясись ты, я понял

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

>Из того, что я слушал - какая-то однородная мешанина без смысла
99% "эпичной" или амбиент музыки по типу hans zimmer или vengelis ну ладно, не бомби ты так, это утрированно

>Или закодить процедурный генератор, чтобы в игре на лету
сложновато для пользователя годот
Аноним 22/06/23 Чтв 06:03:39 #19 №882296 
>>882291
>Дополнительная реклама игре.
Ещё бы генеративная музыка была достаточно узнаваемой, чтобы могла сделать рекламу игре...

>>882292
>сложновато для пользователя годот
Что сложного? Конкретнее давай.

https://bitbucket.org/arlez80/godot-midi-player/wiki/how_to_use/procedural
Аноним 22/06/23 Чтв 06:14:57 #20 №882298 
>>882296
>Ещё бы генеративная музыка была достаточно узнаваемой, чтобы могла сделать рекламу игре...
Вот поэтому никакой васян не будет её рипать, а пойдёт и на той же нейронке нагенерит ещё. А вот если бы музыка была достаточно интересная, чтобы её рипнуть, вот тогда это успех и халявная реклама.
Аноним 22/06/23 Чтв 23:30:31 #21 №882411 
>>882292
Тебя уже разбанили? Еще хочешь?
Аноним 22/06/23 Чтв 23:51:16 #22 №882414 
>>882411
Во первых я не он. Во вторых, я не могу выражать мнение потому что додик вроде тебя озлобился на что-то?
Аноним 22/06/23 Чтв 23:51:33 #23 №882415 
>>882411
Шизик, если тут всех забанят, с кем ты общаться будешь? И так уже превратил gd в свой личный бложек, все от тебя разбежались, эффективный ты менеджер.
Аноним 23/06/23 Птн 02:07:49 #24 №882419 
Делайте игры.
Аноним 23/06/23 Птн 13:44:49 #25 №882449 
1687517089907.jpg
>>882415
>>882414
Аноним 23/06/23 Птн 14:31:08 #26 №882452 
w51uweibbq7b1.gif
Аноним 23/06/23 Птн 14:58:33 #27 №882453 
2023-06-2318-49-09.png
Привет, Анон. Подскажи, пожалуйста, почему у меня этот кусок кода работает не так, как я хочу? Точнее, что именно я не так делаю?
get_tree().get_nodes_in_group("detected") добавляет мне в массив узлы с группой, беру первый же узел по индексу и смотрю его родителя, всё норм. Но если я каждому элементу в массиве добавляю get_parent, мне выдает родителя всего древа узлов, в моём случае main. Скрипт прикреплен к узлу, у которого родитель main, получается он находит родителя узла со скриптом? Чет нихера не понимаю...
Аноним 23/06/23 Птн 15:14:47 #28 №882455 
>>882148 →
>Там набросали кучу объектов, которые надо купить для продолжения сюжета.
Большинство покупок на карте - это дома с гаражами и точками сохранения. При этом при принудительном перемещении в новую область игра обычно даёт бесплатную точку сохранения под открытым небом. Насколько я помню (давно играл), обязательна для сюжета покупка магазина RC игрушек, да вроде и всё. Может ещё аэродром, не помню уже. Короче, большую часть собственности ты покупаешь только чтобы не мотаться через весь город для сохранения прогресса, но рано или поздно деньги становится не на что тратить.

>А что было ранее я уже не помню.
В GTA 3 вроде под конец сюжета нужно 500к накопить. В GTA 1/2 переход в следующий город вроде платный, типа миллион собрать или что-то типа. Не помню, никогда не играл до конца по разным причинам.

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

>Пиздюками мы все гоняли на маффынках от ментов с аснаёбом, и только повзрослев, узнавали, что там сюжет оказывается есть.
Ой, вот не надо. Про наличие сюжета я всегда знал, он просто не затягивал меня. И сейчас сюжет меня по-прежнему не особо интересует. Каждый раз удивляюсь, натыкаясь на серьёзные обсуждения персонажей ГТА и сюжета, как будто это не жёсткая сатира с околонулевой серьёзностью (кроме GTA IV, наверное?).

Намотал 1000 часов в приватных сессиях GTA Online и планирую заскочить ещё раз, заценить новые тачки и покататься на полюбившихся старых. Не нравится только принудительный мультиплеер и задания, на 90% состоящие из "сгоняй 10+ км по единственной трассе, которая не меняется годами, и по которой мы будем заставлять тебя ездить туда-сюда каждые полчаса на всевозможных грузовиках и убитых драндулетах, а единственное развлечение - пачка пуль тебе в жопу, радуйся давай".
Аноним 23/06/23 Птн 15:35:50 #29 №882456 
>>882453
Не юзай гет_парент. Это плохой стиль. Что тебе нужно от парента детектеда? Сделай парентам детектедов отдельную группу "паренты" и выводи её в список.
Аноним 23/06/23 Птн 15:42:54 #30 №882458 
>>882456
От парентов детектеда мне нужна позиция. А беру паренты потому что детектеды это ареа3д, и они попадая на другие ареа3д пускают сигнал.
Аноним 23/06/23 Птн 15:49:46 #31 №882459 
>>882453
>каждому элементу в массиве добавляю get_parent
Лол, ты из функциональщины пришёл?

https://docs.godotengine.org/en/3.5/classes/class_array.html#class-array-method-fill
>Assigns the given value to all elements in the array. This can typically be used together with resize to create an array with a given size and initialized elements

Разбираем по полочкам тобою написанное:
>detected.fill(get_parent())
1. Первым выполняется get_parent(). Поскольку ты не указал, чей get_parent() вызывать, интерпретатор считает, что имеется в виду self.get_parent().
2. Далее вызывается Array.fill(), которому передаётся единственный ответ self.get_parent().
3. Метод fill() просто заполняет массив одним и тем же значением, которое он получил в аргументах.

Если тебе нужно вызывать get_parent() на каждый элемент массива в функциональном стиле:
https://docs.godotengine.org/en/stable/classes/class_array.html#class-array-method-map
>Calls the provided Callable for each element in the array and returns a new array filled with values returned by the method.
>The callable's method should take one Variant parameter (the current array element) and can return any Variant.

Пример (будет работать только в Godot 4.0+):
>print(detected.map(func(node): node.get_parent()))
Это создаёт новый массив и передаёт его на вывод в консоль, если тебе нужно сохранить - делай так:
>detected = detected.map(func(node): node.get_parent())
Но в функциональных языках не принято мутировать переменные, т.е. тебе нужен новый массив:
>var parents := detected.map(func(node): node.get_parent()))

Вариант императивный, работает в Godot 3.x:
>for node in detected: print(node.get_parent())
Если нужно сохранить в массив:
>for j in detected.size(): detected[j] = detected[j].get_parent()
Или в отдельный массив:
>var parents: Array
>parents.resize(detected.size())
>for j in detected.size(): parents[j] = detected[j].get_parent()

>>882456
>Это плохой стиль
Не вводи новичка в заблуждение, предков можно запрашивать. Реально плохо только абсолютные пути использовать, остальное по ситуации.

>>882458
Ничего не понял. Что ты хочешь сделать? Я имею в виду геймплейно. Датчики можно настроить так, чтобы они не реагировали на другие датчики.
Аноним 23/06/23 Птн 15:59:22 #32 №882460 
Годаны, подскажите. Есть ли в 3.5 возможность как-то автоматизированно составить список использованных в проекте модулей, чтобы пересобрать Годо для более оптимизированного экспорта? В четвёрке-то есть, а мне для тройки надо.
Аноним 23/06/23 Птн 16:08:13 #33 №882463 
>>882459
Спасибо за обширный ответ! Как вы такими умными становитесь? Мне нужно было наоборот, чтобы датчики на движущемся объекте реагировали на статичные датчики. Объект двигает только головой, но перемещается по точкам на локации (телепортируется). Но там такая тема, что у объекта есть три зоны наблюдения (3 area3d) - левая, центральная, правая. Попав в левую или правую зоны он единожды пускал луч (raycast3d), чтобы проверить на столкновение. Но в центральной зоне надо было обновлять рейкаст постоянно. Нахуй, уже сам запутался пока писал. Тема хуйня чую, можно по любому сделать как-то поумнее. Но моих мозгов хватает пока на такое.
Аноним 23/06/23 Птн 16:29:24 #34 №882468 
>>882463
>Как вы такими умными становитесь?
Годы прокрастинации и форумного вангования.

>уже сам запутался пока писал
Так ты опиши геймплей. Что у тебя за объект, где и зачем он движется? Тогда понятнее будет. Я пока не представляю себе, что там у тебя происходит. Какой-то трёхбашенный танчик или корабль? Это нужно для ИИ, чтобы он интеллектуально ехал?

>наоборот, чтобы датчики на движущемся объекте реагировали на статичные датчики.
1. У движущихся Area3D снимаешь галку monitorable, оставляя только галку monitoring. Тогда они не будут реагировать друг на друга.
2. У статичных Area3D снимаешь галку monitoring, оставляя только monitorable, тогда они вообще не будут ничего сигнались, но будут обнаружаться.
3. У CollisionObject3D есть специальные поля collision_layer и collision_mask, это позволяет распределить отношения между объектами без единой строчки кода, но слоёв всего лишь 32, учитывай это. Если кратко, layer - то, где объект физически существует, mask - то, что объект физически сканирует. Столкновение детектится только между объектами, у которых совпадает хотя бы одна галочка в layer и mask. Каждому слою можно присвоить текстовое имя через настройки проекта, это имя используется как подсказка в GUI редактора сцен (инспекторе нод). Как минимум рекомендую разграничить ландшафт, движущиеся объекты/транспорт, НПЦ и игрока, подбираемые предметы, всякие пульки и гильзы, и т.д.

>>882458
>От парентов детектеда мне нужна позиция
Кстати, у Area3D ведь есть своя собственная позиция.
Аноним 23/06/23 Птн 16:42:03 #35 №882469 
>>882463
>Попав в левую или правую зоны он единожды пускал луч (raycast3d), чтобы проверить на столкновение. Но в центральной зоне надо было обновлять рейкаст постоянно.
Возможно, будет лучше просто плотный веер из рейкастов сделать. Если объект уникальный, а не толпой ходит. Я пробовал делать очень много рейкастов, несколько сотен точно можно постоянно обновлять без особых просадок производительности.

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

...А эти боковые зоны случайно не уши? Типа услышал шум и повернулся в сторону посмотреть, кто шумит?

Просто любопытно, что ты делаешь.
Аноним 23/06/23 Птн 16:42:40 #36 №882470 
2023-06-2320-32-53.png
Вот по локации раскиданы красные шестиугольники, это позиции на которые телепортируется объект, от которого исходят три треугольника. Точки - это сцены. Ну одна сцена, состоящая из MeshInstance3d > Area3d > CollisionShape3d. Когда в поле зрение объекта попадает Area3d из точки, в скрипте объекта запускается функция и генерирует рейкаст до этой точки. Поле зрения состоит из трех треугольников Area3d, чтобы я сигналом area_entered определял, что объект увидел точку. Но сама Area3d в точке имеет позицию 0, 0, 0. По этому я через area.get_parent() получал позицию родителя.
Аноним 23/06/23 Птн 16:51:14 #37 №882471 
>>882470
Первый рейкаст мне нужент только чтобы определить нет ли препятствия между объектом и точкой. Если нет препятствия, то объект может переместиться на точку. Созданный рейкаст удаляется, если покидает зону видимости. Но если точка входит в центальую зону видимости, то рейкаст начинает постоянно обновляться в _physics_process. Но я не придумал как мне обновлять сразу несколько рейкастов одновременно. У меня все созданые рейкасты добавляются в массив, берут имя той area3d которая задетектилась зоной видимости. И я думал буду доставать из массива только рейкасты которые создавались на точке detected. Ну как-то так. Надеюсь понятно объяснил. Навасянил конечно по полной, сам понимаю. Сильно не ругайтесь, я только четвертый день в этом варюсь, и потихоньку разбираюсь.
Аноним 23/06/23 Птн 16:58:13 #38 №882473 
>>882470
>сама Area3d в точке имеет позицию 0, 0, 0
Можно глобальную позицию определить. Но это применимо если все эти точки неподвижны, а не движутся на какой-то платформе.

В общем, у тебя вроде всё правильно выглядит. Хотя геймплейно всё равно непонятное что-то.

Я такой псевдокод представляю:
>func _on_area_entered(area):
>_ var pos = area.get_parent().position
>_ if is_visible_with_ray(pos): jump_on(pos)
Кто кого детектит настраиваешь через свойства.

>>882471
>Но я не придумал как мне обновлять сразу несколько рейкастов одновременно. У меня все созданые рейкасты добавляются в массив, берут имя той area3d которая задетектилась зоной видимости. И я думал буду доставать из массива только рейкасты которые создавались на точке detected.
Эээ... зачем?

Ты же вот так лучи кидаешь?
https://docs.godotengine.org/en/stable/tutorials/physics/ray-casting.html#raycast-query

Нода RayCast3D нужна только если тебе нужно непрерывно пускать луч. Если нужна однократная проверка - вариант по ссылке выше лучше.
Аноним 23/06/23 Птн 17:02:45 #39 №882474 
image.png
>>882473
Лучи так кидаю. Херовый способ?
Аноним 23/06/23 Птн 17:36:54 #40 №882478 
>>882474
Конечно.
1. Чем больше у тебя лучей создано, тем медленнее будет поиск при создании нового луча.
2. Куча лишних настроек на каждый луч.
3. Добавление ноды в сцену. Нода-луч реально заработает только на следующем кадре.
4. Потом ты зачем-то вращаешь этот луч, хотя у него есть параметр target_position:
>ray.target_position = ray_cast_target.position

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

Скажи честно, ты сразу сел этот проект делать, не имея никакого орыта в геймдеве? Рекомендую отложить этот проект на потом, и пройти какие-то туториалы по более классическим идеям, вроде платформера и топдаун шутера. Геймдизайн сам по себе очень сложная штука, а тут ты ещё в коде не разбираешься толком. Алсо для начала лучше потренироваться на 2D, прежде чем нырять в 3D.
Аноним 23/06/23 Птн 17:45:54 #41 №882480 
>>882478
Спасибо. Ты безусловно прав и я уважаю тебя за тот труд, что ты проделал, дабы овладеть этими знаниями и опытом. Для меня такие люди - герои. Но я, к сожалению, не смогу неделями, месяцами мало-мальски изучать, разбираться во всем от простого к сложному. Я попробовал, думал получится попутно разбираться в том, что не понял. Но совершил много ошибок. Чтож, опыт в любом случае полезный. Всем удачи!
Аноним 23/06/23 Птн 18:41:54 #42 №882483 
>>882480
>Спасибо. Ты безусловно прав и я уважаю тебя за тот труд, что ты проделал, дабы овладеть этими знаниями и опытом. Для меня такие люди - герои.
Нет, я простой бездельник, который редко что-то реально делает. Получение знаний и опыта у меня происходило больше пятнадцати лет с перерывами, и мне ещё многое предстоит узнать, чтобы сделать мою игру мечты. Но если бы я не ленился и работал над чем-то нормально и непрерывно, давно бы уже сделал игру и, возможно, пришёл бы к успеху... я просто к нему не стремлюсь особо. Мне просто нравится ковыряться в коде, в редакторе сцен, делать какие-то интерактивные наброски, придумывать более-менее оптимальные решения, даже если я их потом никак использовать не буду... Так что я, похоже, произвёл ложное впечатление на тебя.

>Но я, к сожалению, не смогу неделями, месяцами мало-мальски изучать, разбираться во всем от простого к сложному. Я попробовал, думал получится попутно разбираться в том, что не понял. Но совершил много ошибок. Чтож, опыт в любом случае полезный.
Чего? Ты так легко сдаёшься? У тебя там рак в терминальной стадии, что тебе нужно поскорее чего-то достичь, чтобы успеть? Расскажи хоть, чего именно ты хочешь достичь и почему так торопишься. Может, тебе лучше заказать выполнение работы на фрилансе, чем изучать лично...

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

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

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

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

>Всем удачи!
До завтра.
Аноним 23/06/23 Птн 19:57:44 #43 №882497 
>>882096 (OP)
https://godotengine.org/article/godot-community-poll-2023/
>What communities do you most actively interact with?
Ставьте галочку на
>Other:
И вводите в поле справа без опечаток:
2ch.hk/gd

Давайте поднимемся в топ, годаны!
Аноним 23/06/23 Птн 23:12:39 #44 №882519 
>>882497
Вроде как, там можно через запятую вписать несколько вариантов.
Вписался, хотя хз зачем нам подниматься в топ. Конечно, тредик уютный и добрый, приятнее многих мест в интернетах, но этот опрос это ж не коркурс какой-нибудь или типа того. Но пройти его, конечно, полезно.
Аноним 24/06/23 Суб 15:06:14 #45 №882542 
>>882460
Бамп вопросу. Тот случай, когда не смог самостоятельно нагуглить ответ даже после того, как запостил вопрос.
Аноним 24/06/23 Суб 18:55:31 #46 №882546 
>>882096 (OP)
Аноны, как сделать так, чтоб текст в Label не увеличивал свой размер вместе с зумом камеры? В CanvasLayer засунуть не могу, так как мне нужно, чтоб текст был в конкретном месте на карте
Аноним 24/06/23 Суб 19:25:46 #47 №882548 
>>882546
>текст в Label не увеличивал свой размер вместе с зумом камеры
Ты его потомком Node2D делаешь, так? Тогда этот Label как бы считается объектом игрового мира.

>В CanvasLayer засунуть не могу, так как мне нужно, чтоб текст был в конкретном месте на карте
Ну... Попробуй scale у этого Label менять. Создай сигнал "камера изменила зум" и цепляй обработчик к нему внутри скрипта Label, меняющий масштаб.
Аноним 24/06/23 Суб 20:12:56 #48 №882550 
>>882548
Спасибо! Сработало!
Аноним 25/06/23 Вск 16:41:20 #49 №882599 
>>882096 (OP)
Аноны, я снова к вам с вопросом. Я немного не понимаю, как работать с разными разрешениями экрана. Мне надо, чтоб игра выглядела нормально на 16х9 разрешениях и без черных полос. Какие настройки для этого ставить? Я смотрел и официальный туториал и просто в ютубе, но по ним остаются черные полосы на некоторых разрешениях.
Аноним 25/06/23 Вск 16:44:47 #50 №882602 
>>882599
>как работать с разными разрешениями
GUI, 2D, 3D? Жанр игры? ПК, мобилки?

>остаются черные полосы
Покажи скриншоты. Лишнее можешь замазать.
Аноним 25/06/23 Вск 17:05:05 #51 №882609 
640x360.png
1280x768.png
>>882602
>GUI, 2D, 3D? Жанр игры? ПК, мобилки?
Топдавн шутер. Пиксельный, 2Д на пк.
>Покажи скриншоты.
Вот так выглядит. Первый это 640х360. Оригинальное разрешение. Весь экран заполнен, а второе 1280x768, сверху и снизу полосы. Оба разрешения 16x9
Аноним 25/06/23 Вск 18:12:19 #52 №882626 
>>882609
>640х360
>1280x768
>Оба разрешения 16x9
Кого ты обманываешь?
640/360 = 1.7(7) = 16/9
1280/768 = 1.6(6) = 5/3

>Пиксельный
Пиксель-перфект что ли?
Как именно растягиваешь пиксели?

>Топдавн шутер
Это хорошо. Можешь просто увеличить область видимости вместо чёрных полос по краям.
Аноним 25/06/23 Вск 18:33:28 #53 №882630 
>>882626
>Кого ты обманываешь?
Я сейчас себя таким идиотом почувствовал, когда осознал.

>Пиксель-перфект что ли?
>Как именно растягиваешь пиксели?
В настройках окна выставил 2d и keep

>Это хорошо. Можешь просто увеличить область видимости вместо чёрных полос по краям.
А как это сделать?
Аноним 25/06/23 Вск 23:15:12 #54 №882684 
>>882630
>В настройках окна выставил 2d
Мимо проходил, но это не пиксель-перфект. Перфект это viewport, который снапает твои внутриигровые пиксели в соответствии с пиксельной сеткой.
Аноним 25/06/23 Вск 23:45:58 #55 №882691 
>>882684
При выборе viewport шрифт шакальным становится
Аноним 26/06/23 Пнд 00:00:03 #56 №882695 
>>882691
Ага, потому что он у тебя тоже не пиксель перфект. Если хочешь тру пиксель перфект - используй пиксельный шрифт соответствующего пиксельного размера, а не рандомную ттфку.

https://itch.io/game-assets/tag-fonts/tag-pixel-art - как правило указаны разрешения, под которые эти шрифты сделаны.

С другой стороны, пиксель перфект тебе может быть нахуй не нужен и даже вреден, например если ты крутишь спрайты вокруг их оси, ожидая что они сохранят свою изначальную пиксельность. Вьюпорт их перепикселит.
Аноним 26/06/23 Пнд 00:05:44 #57 №882698 
>>882695
>Ага, потому что он у тебя тоже не пиксель перфект. Если хочешь тру пиксель перфект - используй пиксельный шрифт соответствующего пиксельного размера, а не рандомную ттфку.
Тут не выйдет, мне нужен этот конкретный шрифт

>С другой стороны, пиксель перфект тебе может быть нахуй не нужен и даже вреден, например если ты крутишь спрайты вокруг их оси, ожидая что они сохранят свою изначальную пиксельность
Значит не нужен. Просто я спрайт героя и врагов кручу и если они будут превращаться в кашу, то как-то не очень хорошо будет.
Аноним 26/06/23 Пнд 03:27:12 #58 №882709 
>>882630
>выставил 2d и keep
>>882698
>Значит не нужен
Если у тебя не пиксель-арт, то выбирай 2d+expand:
https://docs.godotengine.org/en/3.5/tutorials/rendering/multiple_resolutions.html#desktop-game

>спрайт героя и врагов кручу
>>882609
>Первый это 640х360. Оригинальное разрешение.
Зачем тебе такое маленькое разрешение, если ты спрайты крутишь? Сделай высокое разрешение, а спрайтам сделай высокий scale. Тогда у тебя будет эффект типичной индюшатины, когда спрайты состоят из квадратиков и вращаются.
Аноним 26/06/23 Пнд 03:35:30 #59 №882710 
>>882709
>Сделай высокое разрешение, а спрайтам сделай высокий scale.
А, нет, не надо, по той же ссылке написано:
>If you are OK with sprites being able to move or rotate in "sub-pixel" positions or wish to have a high resolution 3D viewport, you should use the 2d stretch mode instead of the viewport stretch mode.
Т.е. будет тот же эффект "вращения квадратиков".
Аноним 26/06/23 Пнд 12:53:00 #60 №882752 
>>882709
>Если у тебя не пиксель-арт, то выбирай 2d+expand:
У меня пиксельная игра

>Зачем тебе такое маленькое разрешение, если ты спрайты крутишь?
Выбрал минимальное 16:9, которое было написано в списке разрешений
Аноним 27/06/23 Втр 02:24:47 #61 №882842 
Делайте игры.
Аноним 27/06/23 Втр 16:39:51 #62 №882907 
image.png
image.png
В старом треде отписал, не заметил перекот, сюда продублирую:

Аноны, а чего по фепесам в четвёрке? Делаю обычный платформер, и на Ryzen 3 3200g + Vega 8 (встройка от рязани) + 8gb ddr3 (или 4, не помню) получаю 20 фепесов с ёба шейдерами и 40-50 без них. Как можно адекватно глянуть, что именно столько ресурсов пожирает?

Профайлер прилагаю
Аноним 27/06/23 Втр 19:17:58 #63 №882930 
>>882907
>Как можно адекватно глянуть, что именно столько ресурсов пожирает?
1. Посмотри, какой у тебя там рендерер. Возможно, твой видеочип не дружит с вулканом. А вот OpenGL рендерер они переписали заново и ещё не доделали.
2. Проверь настройки проекта и отключи всё лишнее, что ты мог случайно включить.
3. Пробуй запускать и тестировать все сцены по отдельности (F6), либо создай тестовую сцену, на которую будешь добавлять свои объекты.
4. Ищи аномалии в этих счётчиках:
https://docs.godotengine.org/en/stable/classes/class_performance.html
5. Читай рекомендации по оптимизации:
https://docs.godotengine.org/en/stable/tutorials/performance/index.html

>встройка
Ну а что ты ожидал...
Аноним 27/06/23 Втр 20:38:45 #64 №882943 
>>882930
Ну, условная контра гоу в 100 кадров на этой встройке запускается, это далеко не интел хд графикс
мимо
Аноним 27/06/23 Втр 21:25:34 #65 №882948 
>>882907
Ты увере что тормозит рендер а не твой скрипт в _process?
Аноним 27/06/23 Втр 21:27:29 #66 №882949 
>>882948
А, вижу скрипты ниже 3.8%
Аноним 28/06/23 Срд 02:32:11 #67 №883029 
>>882907
Забыл ещё добавить https://renderdoc.org/
Если уж ты совсем запутался в собственной игре.
Аноним 29/06/23 Чтв 20:14:40 #68 №883305 
Подкиньте идей, как можно сделать физическое колесо на RigidBody? Т.е. хочу прицепить RigidBody-колесо к другому RigidBody и заставить его крутиться. Пробовал использовать джойнты, но так и не разобрался, как правильно закрепить, всё время отваливается. Интересует физика колеса как в Space Engineers, Scrap Mechanic и т.п., т.е. реальный цилиндрический ригидбоди вместо примитивного рейкаста.

Алсо, кто-нибудь здесь уже пробовал Jolt?
https://github.com/jrouwe/JoltPhysics
https://github.com/godot-jolt/godot-jolt
Аноним 29/06/23 Чтв 21:39:21 #69 №883333 
>>883305
> как правильно закрепить
Учить матчасть. Готовых решений тут нет. Либо ты изучаешь матчасть и сам всё делаешь (попутно охуевая от того, как всё просто оказалось) либо любой код, что тебе тут дадут будет ничем не лучше и не хуже официальных туториалов и шаблонов. Просто чужой код, который будет работать, пока тебе не захочется чуть-чуть подправить, после чего всё непредсказуемо перепидорасится.
Аноним 29/06/23 Чтв 22:19:11 #70 №883343 
image.jpg
>>883333
Ладно, я сам.
Аноним 29/06/23 Чтв 22:21:56 #71 №883344 
nft.png
Всегда хотел делать игоры.
Полюбил Годотю.
Кодер-самоучка.
Но всю юность слил в редактор карт WC3 и пока там трахался с костылями и велосипедами - перегорел.
Аноним 29/06/23 Чтв 22:35:44 #72 №883346 
I-Know-That-Feel-Bro.jpg
>>883344
>Кодер-самоучка
>хотел делать игоры
>трахался с велосипедами
>перегорел
Я тебя хорошо понимаю.
Аноним 29/06/23 Чтв 22:47:06 #73 №883349 
>>883344
Никогда не поздно. Я будучи нюфагом пилил свои костыли на голых Си и опенгл, не зная толком ни того, ни другого, и тоже перегорел. Спустя десяток лет потихоньку вернулся с помощью годота. Интерес может прийти в процессе, дерзай.
Аноним 29/06/23 Чтв 23:49:21 #74 №883365 
>>883333
>изучаешь матчасть
>как всё просто оказалось
Конкретно о чём ты говоришь? На данный момент я не вижу в API Godot ничего похожего на то, что мне нужно. У HingeJoint есть свойства "мотор", но нет свойств для того, чтобы узнать текущее состояние джойнта. Т.е. получается, что его можно только создать и настроить, а дальше контроль теряется. Пружину вообще не нашёл, её просто нет, мне что, универсальный 6-осевой джойнт для такой тривиальной вещи настраивать? У SliderJoint не вижу параметра "пружина" или "мотор", он просто слайдер. Мне придётся прикладывать импульсы к каждому RigidBody вручную? Уже давно у меня впечатление, что систему джойнтов сделали "чтоб было" и больше не трогали, как будто её никто не использует. Туториалов почти нет. Подсказок в редакторе или консоли об ошибочном расположении джойнтов тоже нет, они даже не предупреждают о том, что в их полях ничего не записалось по какой-то причине.

Я просто не хочу изобретать физику с нуля, потому что это будет слишком сложно и без C++ медленно.
Аноним 30/06/23 Птн 01:29:20 #75 №883375 
>>883365
Ладно, я уже разобрался, в чём проблема была. Буду использовать универсальные джойнты...
Аноним 30/06/23 Птн 02:07:26 #76 №883378 
>>883344
>>883346
>>883349
Присоединяюсь к перекличке. Тоже начинал с моддинга и велосипедов, тоже перегорел. Вернулся к геймдеву благодаря Годоту.

Годот очень лёгкий. Лично я при разработке на нём ощущаю такое же удовлетворение, как при игре в какую-нибудь луталку. Любое действие приносит результат и прогресс, мозг вознаграждается чувством "у меня получилось". Это очень сильно помогает удержать интерес.
Аноним 30/06/23 Птн 02:58:51 #77 №883384 
>>883378
>Лично я при разработке на нём ощущаю такое же удовлетворение, как при игре
Такие же ощущения, давно осознал, что Godot Editor - это самая настоящая игра-песочница. Даже где-то на официальном сайте писалось, что Godot Editor - это игра, сделанная на Godot Engine.
Аноним 30/06/23 Птн 16:58:40 #78 №883445 
>>883375
>Буду использовать универсальные джойнты...
Ой всё, нет, не буду использовать.

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

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

Похоже, придётся вернуться к рейкастам...
Аноним 30/06/23 Птн 20:32:14 #79 №883493 
изображение.png
изображение.png
Где этот "shape" находится? Что то найти не могу.
Вообще видно как устарел этот гайд по первой игре. Поновее ничего нету чтобы привыкнуть к интерфейсу?
Аноним 30/06/23 Птн 20:43:10 #80 №883498 
>>883493
У тебя открыт AnimatedSprite2D, т.е. визуал, а в гайде речь про свойство Shape у Player, который кинематикбоди.
Аноним 30/06/23 Птн 21:39:46 #81 №883504 
Чем может быть вызвано зависание на 350+ мс?
1. Происходит в момент инстанциирования сцены.
2. Повторное инстанциирование той же самой сцены такой задержки не вызывает.
3. С шейдерами не связано, я даже удалил их.
4. Шейпы упростил, задержка осталась той же.
5. Сделал load().instanciate() этой сцены заранее, но задержка при первом заходе сцены в дерево сцены никуда не делась, те же 350+ мс.
6. Дальше игра работает плавно. Добавление сразу нескольких таких сцен не вызывает проблем.

Из подозрительного - obj-файл весит 188 КБ, но, как я уже сказал, я делаю предварительную загрузку, тем более у меня SSD и какие-то жалкие килобайты не должны никак повлиять на загрузку.

Я уже не знаю, что делать...
Аноним 30/06/23 Птн 22:00:27 #82 №883507 
>>883504
Вообще похоже на шейдеры.
Если твоего шейдера нет, годот же все равно должен нарисовать объект каким то стандартным, если он встречается впервые, то он будет компилироваться.
Аноним 30/06/23 Птн 22:17:50 #83 №883509 
>>883504
Делай прелоад, а не лоад.
Аноним 30/06/23 Птн 23:13:56 #84 №883515 
4.1 сун
Аноним 30/06/23 Птн 23:13:59 #85 №883516 
>>883507
>стандартным
Я уверен, что стандартный уже подготовлен к тому моменту, как загружается моя модель.

Да и потом, стандартный 350 мс?

По идее, убершейдер в самом начале готовится.

>>883509
>Делай прелоад
Есть ли разница, если загружается одна и та же tscn сцена из res://? Разве движок не кэширует в RAM?

По-моему, preload() нельзя направлять на самого себя, это создаёт замкнутый цикл в интерпретаторе.
Аноним 30/06/23 Птн 23:20:47 #86 №883520 
>>883516
Прелоад кешируется, лоад - нет, поскольку динамическая загрузка. Фактически про содержание сцены в лоаде движок ничего не знает пока ты ее не начнешь грузить.

Вот в доках нашел: https://docs.godotengine.org/en/3.6/tutorials/scripting/resources.html#loading-resources-from-code
Аноним 30/06/23 Птн 23:35:23 #87 №883524 
>>883520
Хорошо, это я могу изменить для проверки, но разве это не должно означать, что задержка в 350 мс будет на каждой последующей загрузке той же сцены? Прикол в том, что она только первый раз так заикается, а потом спавнится без проблем. Не понимаю, как такое возможно, если это не шейдер.
Аноним 30/06/23 Птн 23:42:34 #88 №883526 
>>883524
>preload will read the file from disk and load it at compile-time.
В доках заявлено так. Проверь, потом отпишись - тоже любопытно.
Аноним 30/06/23 Птн 23:49:45 #89 №883527 
изображение.png
Тут можно где-то включить автоматическое форматирование кода, чтобы программа сама подставляла правильно табуляцию где надо? А то вот такие ошибки удручают
Аноним 30/06/23 Птн 23:53:47 #90 №883529 
>>883527
Editor settings, Text Editor, Indent, Convert Indent On Save
Аноним 01/07/23 Суб 00:40:18 #91 №883537 
>>883527
А нечего копипастить код. Набирай вручную - так лучше усвоишь и быстрее запомнишь.

Алсо, в твоём случае лучше сделать так:
>var direction := Vector2(Input.get_axis("move_left", "move_right"), Input.get_axis("move_up", "move_down"))
>if direction.is_zero_approx():
>...
Аноним 01/07/23 Суб 00:44:24 #92 №883538 
>>883516
емнип легко проверить
добавь этот самый obj на основную игровую сцену, которая в начале игры загружается, и посмотри, будет ли после этого первая инстанцианция долгой.
Еще помню, раньше (для 3) писали делать так - все материалы в инспекторе конвертнуть в шейдер материал. А потом каждому такому материалу назначить один и тот же шейдер. То естьматериалы будут разными (красная текстура, зеленая и тд) но шейдер будет один.
Аноним 01/07/23 Суб 03:03:34 #93 №883546 
>>883538
>добавь этот самый obj на основную игровую сцену
Хорошая идея, я проверил.

>>883509
>Делай прелоад, а не лоад.
>>883526
>Проверь, потом отпишись - тоже любопытно.
Я проверил, preload в моём случае не влияет.

В общем... Я выяснил, что замедление происходит на первом вызове instance(). Добавлять этот инстанс в дерево сцены не обязательно, он может просто лежать в памяти бесхозным, но все следующие будут быстрее. Наверное, потому что движок внутре как-то оптимизирует инстансинг. Но вот почему моя примитивная в общем-то сцена так тяжело инстансится первый раз я не понял. Вернул материалы с шейдерами на место и всё норм. Странно.

Короч, если кто-то здесь процедурно составляет уровень из инстансов запакованных сцен - заранее запилите инстансы всех ваших сцен. По идее, это потратит чуть больше памяти с самого начала игры, но зато потом расстановка дубликатов этих сцен в игровом мире будет плавнее.
Аноним 01/07/23 Суб 04:19:13 #94 №883549 
>>883546
Попробуй еще сохранить все в бинарном виде, а не текстовом. Меши можно так сохранять, и сцены тоже. .res, а не .tres. Честно говоря не помню как там работает, может он реально obj загружает и парсит, это текстовый формат так то, а можно как .mesh сохранять если не путаю.
Аноним 01/07/23 Суб 04:37:45 #95 №883551 
>>883549
Знаю я про текстовые и бинарные форматы. Да, скорее всего должно ускорить загрузку, если сохранить в бинарном формате. Но его потом фиксить сложно, если что-то сломается в сцене, и системы контроля версий вроде бы плохо переваривают бинарники. Так что в бинарный лучше сохранять перед экспортом игры.
Аноним 01/07/23 Суб 12:33:30 #96 №883596 
496-496444.png
>>883344
>>883384
>Godot Editor - это самая настоящая игра-песочница.

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

Вопрос к присутствующем, реально ли найти 3D ассеты для годоти или лучше сфокусироваться на 2D? И, собсно, где? На официальном сайте есть конечно раздел с ассетами, но лишь немногим отличный от нуля.
Аноним 01/07/23 Суб 12:37:16 #97 №883598 
>>883596
>не делать полноценную игру, а просто получать удовольствие от разработки одноуровневых поделок или систем.
Именно. Сделаешь их десятка два - наработаешь скиллы для полноценной игры.
Аноним 01/07/23 Суб 12:43:10 #98 №883599 
>>883596
Про ассеты - на итче их хватает. Бесплатные, платные. Есть отдельные сайты для продажи ассетов но я их забыл

Можешь делать сам если обладаешь хотя бы минимальным чувством стиля. Главное делай как можно проще. Для 2д - фотошоп или aseprite если пиксели. Для 3д - Блендер, или, если хочешь попроще и побыстрее - Блокбенч - https://www.blockbench.net/gallery/
Аноним 01/07/23 Суб 12:59:41 #99 №883604 
images.jpg
>>883599
>Про ассеты - на итче их хватает.
Воу, даже не знал что такая движуха существует. Вообще отлично.
Аноним 01/07/23 Суб 19:24:08 #100 №883679 
>>882096 (OP)
А можно как-нибудь сменить изображения тайлсета?
Аноним 01/07/23 Суб 19:40:01 #101 №883681 
>>883679
Конечно.
https://docs.godotengine.org/en/stable/classes/class_tilesetatlassource.html#class-tilesetatlassource-property-texture
Единственное что в 3-ке, похоже, надо пробегаться по всем тайлам.
https://docs.godotengine.org/en/3.6/classes/class_tileset.html#class-tileset-method-tile-set-texture
Еще ассет на эту тему видел.
Возможно, тут проще использовать отдельные тайлсеты и переключать их.
Аноним 01/07/23 Суб 20:12:01 #102 №883683 
>>883681
Спасибо, но оказалось для меня бесполезным. Как оказалось, что при импорте из Tiled в годот тайлсет использует не pngшку, а tmx формат. Прям засада какая-то. Неужели нельзя было из коробки импорт сделать, как в game maker studio? А то встроенный редактор это ужас какой-то.

>Возможно, тут проще использовать отдельные тайлсеты и переключать их.
Тогда придется каждому из них коллизии прокликивать отдельно.
Аноним 01/07/23 Суб 20:30:03 #103 №883688 
>>883596
>разработки одноуровневых поделок или систем
С этого любая сложная игра начинается. Сначала много отдельных мелких прототипов, а потом уже - ААААААААААаааааааа...

>найти 3D ассеты для годо
Не обязательно искать специально для Godot, подойдут любые 3D модели в поддерживаемых форматах (в основном рекомендуют gltf юзать) или которые ты способен сам конвертировать в поддерживаемый формат. Вот здесь много всякого разного, но самое интересное - модульные паки, должны подойти для гридмапа:
https://opengameart.org/art-search-advanced?keys=&field_art_type_tid%5B%5D=10&sort_by=count&sort_order=DESC

>>883599
>Блокбенч - https://www.blockbench.net/
Почему я о нём никогда не слышал? Встречал только какую-то платную фигню, в которой модельки можно делать из кусочков, которые нужно дополнительно покупать в виде DLC (и ведь покупают!). И ещё какой-то там крокодил, вроде бы тоже платный, не помню уже, лень было разбираться. Воксельные редакторы пробовал, но это не то, что мне нужно. А тут опенсурс и бесплатно - уже скачал попробовать, спасибо.

>>883679
>сменить изображения тайлсета?
Что? Ты имеешь в виду аватарки на палитре?

>>883683
>при импорте из Tiled в годот тайлсет использует не pngшку, а tmx формат
Импорте? Может, при экспорте из Tiled? Потому что импорта напрямую из Tiled из коробки вроде бы нет (может, в 4.0 добавили?), есть только какой-то аддон от третьих лиц, но я не интересовался. Tiled вроде поддерживает несколько форматов экспорта, так что ты можешь выбрать более подходящий... наверное...

>встроенный редактор это ужас какой-то
В чём ужас? Я пробовал на 3.x, всё хорошо было. Говорят, что в 4.0 его полностью переработали, сделали удобнее. Куда уж удобнее - не знаю. Tiled я тоже пробовал, он какой-то перегруженный фичами - слои туда, слои сюда - чтобы самую простую карту сделать продираться через ГУЙ приходится. В Godot слои реализуются через создание нескольких тайлмапов - всё интуитивно просто. ИМХО, Tiled нужен тем, кто вместо готового движка велосипед пишет или тонкие фреймворки использует.
Аноним 01/07/23 Суб 20:30:16 #104 №883689 
>>883683
>при импорте из Tiled в годот тайлсет использует не pngшку, а tmx формат.
Стоит указывать в вопросе, что он не про годот, а про сторонний аддон.
Вообще на импорт тайледа, вроде, несколько аддонов, можешь сравнить разные.
Еще вроде бы можно делать так - экспортировать из тайледа в чем то другом (json? xml?) и импортировать уже их.
Или подредактировать аддон чтобы в нем менять картинку.
Если скажешь больше конкретики - версию годота и аддона, могу вечером посмотреть.
>Тогда придется каждому из них коллизии прокликивать отдельно.
Там можно написать (тул)-скрипт, который просто скопирует из одного тайлсета в другой.
Аноним 01/07/23 Суб 20:46:58 #105 №883694 
изображение.png
Почему ругается? Я же засунул код прям под функцией, а ошибка пишет как будто я вне функции код написал.
Аноним 01/07/23 Суб 20:49:18 #106 №883695 
изображение.png
Разобрался, сорян. Надо было таб добавить.
Аноним 01/07/23 Суб 20:52:52 #107 №883696 
tiled export.png
>>883683 >>883689
Кстати, Tiled 1.10 поддерживает экспорт в Godot 4.0:
https://doc.mapeditor.org/en/stable/manual/export-tscn/
Есть некоторые ограничения, но генерируется tscn-файл.

>>883694 >>883695
Повторяю, не копипасти код, а переписывай вручную.
Аноним 01/07/23 Суб 20:56:31 #108 №883698 
>>883696
>Повторяю, не копипасти код, а переписывай вручную.
Так я как раз начал писать вручную, причем удалил то что вчера скопипастил и все вручную теперь пишу. Спасибо кстати за добрый совет.
Аноним 01/07/23 Суб 20:57:09 #109 №883701 
>>883688
При импорте из tiled в годот проблема была, но я уже её решил. Как бы поддерживает, но мне все же хотелось бы видеть в редакторе карту тоже, а не просто читать из файлика для отображения в игре.
Это один и тот же аддон, просто, как я понял, там его забрасывали и восстанавливали.

>В чём ужас?
Ну, это как рисовать в paint, вместо aseprite
В годоте нельзя рисовать формы из тайлов. Нужен квадрат из тайлов? Ставь по одной штуке. Тоже самое и с удалением, удаляй по одному.
Неудобно выбирать тайлы. В Tiled ты просто тыкаешь на место в изображение, в годоте же у тебя разбивка на что-то непонятное.
Слои - это очень удобно.
Нельзя передвинуть тайлы. Захотел переместить группу тайлов левее? Стирай все и рисуй заново.
Годот даже сам изображение на тайлы нарезать не может.

Да и просто мелкие quality of life штуки, вроде превью, рандомного выбора тайлов(например, чтоб трава была не однообразная) и т.д

>>883689
>Стоит указывать в вопросе, что он не про годот, а про сторонний аддон.
Да меня как раз интересовало можно ли это вообще. Потом вылезла проблема с форматом, которую я решил. Надо было просто поместить изображение в одном месте с файлом тайлсета Tiled.
>Там можно написать (тул)-скрипт, который просто скопирует из одного тайлсета в другой.
Как-то не хочется разбираться с форматом, в который годот тайлсеты сохраняет. С заменой текстурки как-то легле вариант.

>>883696
>Кстати, Tiled 1.10 поддерживает экспорт в Godot 4.0:
Это шикарно! Везет тем, кто на 4 начал.Мне переписывать под 4 то, что есть - не вариант
Аноним 01/07/23 Суб 21:12:02 #110 №883708 
1580682137796.png
1530601855702.png
1615449387663.png
1675411850597.png
>>883701
> Нужен квадрат из тайлов?
>Нельзя передвинуть тайлы. Захотел переместить группу тайлов левее? Стирай все и рисуй заново.
Не, я понимаю что тайловый редактор в годоте неудобный, но можно же посмотреть какие кнопочки в нем есть?
Квадрат из тайлов - ctrl+shift+лкм
Переместить - сначала выделить мышкой, потом ctrl-x ctrl-v
Рисовать случайные - создать атлас и поставить галочку use priority.
Tiled так то дремучее легаси, с трудом его получается назвать Quality of life.
Аноним 01/07/23 Суб 21:13:43 #111 №883709 
>>883701
>>Там можно написать (тул)-скрипт, который просто скопирует из одного тайлсета в другой.
>Как-то не хочется разбираться с форматом, в который годот тайлсеты сохраняет. С заменой текстурки как-то легле вариант.
Ни про какое разбирание с форматом тут речи не идет.
Буквально речь про то что делается цикл (получить все тайлы из одного тайлсета, скопировать по одному в другой)
Аноним 01/07/23 Суб 21:20:19 #112 №883712 
>>883708
>Квадрат из тайлов - ctrl+shift+лкм
Окей, не знал, спасибо. Но все равно не понимаю, почему нельзя было сделать это простым переключением режима, а не только удерживанием трех клавиш?
>Переместить - сначала выделить мышкой, потом ctrl-x ctrl-v
Окей, но все равно, мне придется перемещать каждый так в каждом тайлмапе.
>Рисовать случайные - создать атлас и поставить галочку use priority.
А в Tiled я могу просто выбрать любые тайлы и кликнуть лкм. Мне кажется, это намного легче.

Не собираюсь никого переубеждать, но для меня Tiled в десятки раз удобнее.

>>883709
Но мне для этого нужно будет разобраться, где вообще коллизии хранятся в tres файле одного тайлсета и переписать эти места в другом.
Аноним 01/07/23 Суб 21:29:34 #113 №883717 
изображение.png
Я что то не понял, вот я написал проигрывание анимации во время передвижения обьекта, а почему анимация проигрывается не полностью, а только часть которая "0" ? Ну т.е. грубо говоря я жму направо несколько раз - у персонажа только глаз направо повернулся, а ноги он не раздвинул. Мне что то еще добавить нужно в код?
Аноним 01/07/23 Суб 21:39:58 #114 №883719 
1535533156719.png
>>883712
Да я вообще не про формат tres, а про API.
Вот упрощенный скрипт, который берет коллайдеры из тайлсета 1 и вставляет их в тайлсет 2 меняя местами.
Конечно полный скрипт будет побольше, поскольку надо еще получать сколько шейпов у каждого тайла, копировать другие виды такие как one way и т.д. Но это все легко.
Аноним 01/07/23 Суб 21:46:48 #115 №883720 
>>883719
Погоди.. Можно что-то менять в редакторе кодом в реальном времени? Это как вообще?
Аноним 01/07/23 Суб 21:47:59 #116 №883721 
>>883720
Tool script
Аноним 01/07/23 Суб 21:50:04 #117 №883722 
>>883721
Спасибо, интересная штука
Аноним 01/07/23 Суб 21:51:56 #118 №883724 
>>883722
Только помни что это опасная бритва, то есть делай бекапы, ведь она может перезаписать и перезатереть любые данные.
Аноним 01/07/23 Суб 21:53:13 #119 №883725 
До меня только теперь дошло, в чём вопрос. >>883679
>А можно как-нибудь сменить изображения тайлсета?
Делаешь копию тайлсета (.tres) на диске -> меняешь изображение. ВСЁ.
Это простой текстовый формат, там вверху строчка типа такой:
>[ext_resource path="res://game/world/map/tileset.png" type="Texture" id=1]
Вот просто путь меняешь и всё. По крайней мере в 3.x это сработает.

>>883720
>Можно что-то менять в редакторе кодом в реальном времени? Это как вообще?
Это надо документацию читать, прежде чем начинать делать игры.
https://docs.godotengine.org/en/3.6/tutorials/plugins/running_code_in_the_editor.html
Аноним 01/07/23 Суб 22:00:10 #120 №883728 
>>883724
Оки

>>883725
>Вот просто путь меняешь и всё. По крайней мере в 3.x это сработает.
Благодарю. Буду теперь знать.

>Это надо документацию читать, прежде чем начинать делать игры.
Я по ходу дела решил разбираться. Ну и по туториалам
Аноним 01/07/23 Суб 22:19:00 #121 №883737 
1659518602931.png
Кстати. неожиданное применение тул скриптам. У меня на линуксе окна и их заголовки немного по другому расставляются, ну и поскольку годот у нас игра на годоте, я могу располагать окно редактора там где мне надо.
Аноним 01/07/23 Суб 22:29:26 #122 №883744 
>>883737
>располагать окно
Кстати, давно заметил такую проблему с некоторыми играми на Godot с itch.io. Они почему-то часто запускаются на моём экране (1440x900) сдвинутыми в левый верхний угол примерно на 1/4 размера окна, из-за чего заголовок выходит за пределы экрана и я не могу вернуть окно на место. В некоторых случаях удаётся исправить проблему через диспетчер задач, выбрав "раскрыть на весь экран", в других случаях в настройках игры выбрать "на полный экран", но иногда ничего не спасает. С чем это связано? Разработчик указал размер окна 1920x1080 и движок офигевает от моего "слишком маленького" разрешения?

Сам я считаю, что нужно ориентироваться на минимально допустимое для игры разрешение. Если игра может работать в окне 800x600 или даже меньше, не ломая свой ГУЙ, зачем ставить больше? На качество рендеринга эта настройка вроде как не влияет, если не использовать опцию масштабирования. Кому будет нужно - просто раскрывают окно на весь экран и всё. А ещё не понимаю тех, кто блокирует размер окна, не считая совсем уж ретро пиксельных игр...
Аноним 01/07/23 Суб 22:40:23 #123 №883746 
1621423026989.png
>>883744
Ну вообще то у годота есть опции командной строки которые можно посмотреть запустив его с --help
Так что можешь пробовать запускать игры в желаемом разрешении и позиции.
Про дизайн говорить не буду, не самая легкая тема. Я за адаптивность, так что игра должна запускаться размером как на мониторе, а гуй желательно чтобы скалировался ползунком в процентах. Но понятно что не весь гуй так можно сделать, наример портретик героя.
Аноним 01/07/23 Суб 22:46:03 #124 №883748 
>>883746
Я так и представляю, как игрок будет заниматься этой хуйней
Аноним 02/07/23 Вск 00:56:00 #125 №883767 
>>883746
>опции командной строки
Хммм, забавно, что так-то я уже знал про эти опции, но когда запускаю чью-то игру, опции командной строки - последнее, о чём я думаю, ведь это игра, а не прикладная программа. Я в том смысле, что обычно на других движках игра запускается нормально по центру экрана или в полноэкранном режиме, а игры/демки на Godot почему-то слишком часто улетают в левый верхний угол, скрывая заголовок за краем экрана. При том что у меня с моими проектами такой проблемы никогда не было, но я и размер окна в настройках проекта никогда больше своего экрана не ставлю.

>портретик героя
Если он не "пиксельный", то будет масштабироваться как любые иллюстрации на экране. Но даже если "пиксельный", как минимум можно выбрать между x2/x3/x4 и т.п.
Аноним 02/07/23 Вск 12:23:01 #126 №883807 
Делайте игры.
Аноним 02/07/23 Вск 12:25:58 #127 №883808 
>>883744
> из-за чего заголовок выходит за пределы экрана и я не могу вернуть окно на место. В некоторых случаях удаётся исправить проблему через диспетчер задач
Попробуй зажать вин-кнопку и потащить само окно (не спрятавшийся тулбар) с помощью ЛКМ. На большинстве линуксовых DE это дефолтное поведение, может и у тебя.

А так может баг в одной из версий был, хз.
Аноним 02/07/23 Вск 12:58:31 #128 №883817 
>>883767
>я и размер окна в настройках проекта никогда больше своего экрана не ставлю.
Сделай для пробы и посмотри что будет.
>Я так и представляю, как игрок будет заниматься этой хуйней
>опции командной строки - последнее, о чём я думаю, ведь это игра, а не прикладная программа.
Так это опции для тех, кого не устраивает дефолтное. Такие опции скорее всего во всех движках есть, я точно помню что утка когда стримил твг запускал юнити с такими же параметрами.
Аноним 02/07/23 Вск 12:59:29 #129 №883818 
>>883808
Вроде и на линуксе и на винде Alt+пробел вызывает меню окна, где может быть пункт перемещать.
Аноним 02/07/23 Вск 13:09:53 #130 №883820 
1556042239980.png
1608774266833.png
>>883767
>Если он не "пиксельный", то будет масштабироваться как любые иллюстрации на экране.
Вопрос в том, что масштабировать.
Грубо говоря, я хочу чтобы HUD оставался пропорциональным, так как его расположил дизайнер - и не хочу чтобы спидометры и джойстик масштабировались пользователем.
С другой стороны, я скорее всего хочу чтобы пользователь масштабировал хотбар как хочет.
Также я думаю что пользователь должен иметь возможность масштабировать тексты (имена игроков как пример).
Но если масштабируются тексты, встает вопрос с их контейнерами, ведь теперь тексты диалогов перестанут помещаться, нужен скролл или увеличение панелей. Также возникает вопрос, должны ли вместе с этим масштабироваться галочки и конпки закрытия окошек.
RigidBody персонаж Аноним 02/07/23 Вск 14:16:35 #131 №883835 
Если делать персонажа на основе RigidBody, то движение осуществляется через add_force(), но в физическом плане эта функция как бы добавляет к телу невидимый ракетный двигатель, толкающий тело независимо от любых окружающих условий. Если со статичным окружением всё нормально и мелкие ригидбоди толкаются адекватно, то вот если встать на большой ригидбоди и упереться в его стенку, получаем нереалистичную ситуацию, когда персонаж толкает объект, на котором стоит своими ногами. Что-то вроде барона Мюнхгаузена, который сам себя за волосы из болота вытаскивал. В какой-то игре этот эффект только плюс, а если я хочу его избежать? Я пробовал навешивать рейкасты, но они промахиваются; пробовал вешать Area, но непонятно, как определять, толкает персонаж объект или просто касается спиной; пробовал определять, на чём персонаж сейчас стоит ногами, но это тоже как-то не очень получилось. Подскажите идеи, как это теоретически можно решить имеющимися средствами (API RigidBody, Area, RayCast).
Аноним 02/07/23 Вск 14:19:38 #132 №883839 
>>883835
Совсем забыл, я ещё пробовал прикладывать силу в противоположном направлении к объекту, на котором стоит персонаж, но как-то запутанно получилось и вроде не сработало так, как я ожидал. Подозреваю, что это будет чревато багами физики.
Аноним 02/07/23 Вск 14:30:24 #133 №883845 
изображение.png
изображение.png
>>883807
Я доделал обучающий гайд по первой 2д игре из документации.
Но так и не победил проблему >>883717, перечитал раздел про анимации еще раз, делал все точь в точь, но все равно не проигрывается второй слайд (1), а только первый (0).
Ну да и хуй с ним, думаю я потом сам пойму что тут не так, когда побольше познакомлюсь с движком.
Вообще в целом нихуя не понял, но сейчас буду проходить гайд по 3д игре, а потом буду уже искать разные гайды в интернете, смотреть как делают другие проекты, чтобы я хотя-бы мог запомнить интерфейс и базовую логику компонентов движка.
Аноним 02/07/23 Вск 14:46:34 #134 №883857 
>>883835
> но непонятно, как определять, толкает персонаж объект или просто касается спиной
Может быть знаком, направлением, каким-то порогом до которого не работает?
Аноним 02/07/23 Вск 14:47:02 #135 №883858 
>>883845
Я глазами просмотрел и не увидел почему анимация может не работать.
Аноним 02/07/23 Вск 14:53:24 #136 №883860 
>>883808
>зажать вин-кнопку и потащить само окно
На Windows 10 такого поведения нет. Или нужна какая-то другая комбинация, которой я не знаю.

>>883818
>Alt+пробел вызывает меню окна, где может быть пункт перемещать.
1. Альт-пробел вызывает это меню в обычных окнах, но почему-то не вызывает в играх на Godot.
2. Если бы вызывал, альт-пробелом оно выпадает в левом верхнем углу, который за пределами экрана.
3. Меню можно вызывать с панели задач правым кликом по миниатюре окна игры, однако пункт "переместить окно" в Windows работает следующим образом: курсор превращается в стрелочки и телепортируется на заголовок окна, который в моём случае за пределами экрана, а курсор за пределы экрана выйти не может ==> фейл.
4. В том же меню есть кнопка "раскрыть на весь экран", но она будет недоступна, если разработчик заблокировал изменение размера окна.

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

>>883820
>хочу чтобы HUD оставался пропорциональным, так как его расположил дизайнер - и не хочу чтобы спидометры ... масштабировались пользователем
Лол, помню как играл в Flatout, там интерфейс заточен под 4:3 и на любом более широком экране спидометр из круглого становится сплюснутым. Есть патчи от кулхацкеров под широкие экраны, но это должны были сделать разработчики ещё до релиза.

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

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

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

Просто не нужно завязывать сложность геймплея на расположение и размер гуевых элементов. Если изменение положения или размера элементов гуя упрощает твой геймплей настолько, что это можно назвать читерством, то твоя игра имеет фундаментальные проблемы, которые нужно решить в первую очередь. А усложнять себе геймплей изменением гуя обычный пользователь не будет; тот, кто захочет, наверняка найдёт мод или даже сделает его сам, и ты этому помешать не сможешь.
Аноним 02/07/23 Вск 15:03:05 #137 №883862 
>>883857
>знаком, направлением, каким-то порогом
Направлением к чему? Допустим, у меня 2 ригидбоди - один скрюченный, а другой сферический. Если определять направление к центру объекта, то у них разные результаты вообще будут. А определить точную точку касания сложно, она у меня глючила постоянно (3.x давно как-то).

В общем, хочу с нуля переделывать на 4.1, но пока что даже теоретически не могу решить проблему. Вроде, самое логичное - "отталкиваться" от точки опоры, но это чревато тем, что при ходьбе по ригидбоди их будет колбасить в разные стороны...
Аноним 02/07/23 Вск 15:35:02 #138 №883868 
Объяснить, почему не работает метод с документации?
>Input.get_axis("move_left","move_right");
>'Input' does not contain a definition for 'get_axis'
Использую C#.
Аноним 02/07/23 Вск 15:45:08 #139 №883870 
>>883868
Разобрался. Не такая нотация.
Аноним 02/07/23 Вск 16:07:10 #140 №883875 
>>883860
>Опции для тех, кого не устраивает, должны быть в гуевом меню игры + в файле конфигурации.
Должны быть. Но если их нет, то есть опции командной строки. И повторюсь это есть и в других движках.
> Меню можно вызывать с панели задач правым кликом по миниатюре окна игры, однако пункт "переместить окно" в Windows работает следующим образом: курсор превращается в стрелочки и телепортируется на заголовок окна,
но окно можно двигать с клавы курсорными стрелками, вроде и на винде и линуксе так.
Я не оправдываю тех кто не сделал удобное меню и не протестировал на нестандартных разрешениях, но в любом случае пользователь не должен быть рабом своего компа, он должен быть его командиром.
Аноним 02/07/23 Вск 16:07:56 #141 №883876 
>>883862
>Направлением к чему?
Направлением вперед модели и направлением движения. Так точно можно различить когда ты толкаешь вперед, и когда ты идешь спиной назад.
Аноним 02/07/23 Вск 16:27:05 #142 №883877 
>>882096 (OP)
Аноны, я вот с помощью raycast2D ищу объекты, с которыми персонаж может взаимодействовать. Просто нажал на кнопку, а рейкаст чекнул, есть ли объект в его поле действия и монжо ли с ним взаимодействовать. И вот захотелось мне, чтоб над объектом взаимодействия появлялась кнопка, сообщающая, что можно нажать кнопку и использовать его, но как это сделать? У рейкаста нет никаких сигналов, вроде входа и выхода ноды из луча. Засовывать в process постоянную проверку?
Аноним 02/07/23 Вск 16:30:57 #143 №883878 
>>883860
>Если делаешь игру под мобилки, ты обязан сделать хотя бы минимальную кастомизацию своего ГУЯ, особенно это касается элементов управления - виртуальных кнопок, джойстиков и т.д.
Соменваюсь, как раз на мобилках обычно имхо все прибито гвоздями так как задумано. Мобильному игроку сложно же настраивать под себя, еще сложнее чем компьютерному.
>В этом нет смысла, если весь остальной интерфейс фиксированного размера.
Я сужу по ММО, когда мне не нужно масштабировать хитпоинт бары, но надо масштабировать хотбары с кулдаунами.
>делающий огромные кнопки рядом с микроскопическими надписями
Тем не менее, если в интернет-браузере ты зумишь страничку, крестик закрытия браузера не меняется.
Аноним 02/07/23 Вск 16:32:58 #144 №883880 
>>883877
Ты можешь писать свои кастомные сигналы.

signal touched(obj)

_process(delta):
target =tvoy_raycast()
emit_signal("touched", target)
Аноним 02/07/23 Вск 16:33:32 #145 №883881 
>>883877
Также, возможно, ты можешь делать это не рейкастом, а Area2D.
Аноним 02/07/23 Вск 16:36:37 #146 №883882 
>>883880
Это я знаю, просто не знаю, нормально ли вообще пихать все эти проверки в process. Может есть способ, который предусмотрен разработчиком годота.

>>883881
Не, мне нужна только одна нода, на которую игрок смотрит, а не все ноды в радиусе.
Аноним 02/07/23 Вск 17:17:11 #147 №883890 
>>883875
>пользователь не должен быть рабом
Вот поэтому пользователь не будет парить себе мозг хоткеями, труднодоступными меню, командами консоли, джсон файлами и т.д., а просто удалит твою бесплатную игру/демку и перейдёт к следующей. Или вернёт деньги, если купил в Стиме.

Я сейчас не про движок говорю, а про настройку игры. Если ты установил огромное разрешение и зафиксировал размер окна, то ты сам себе палки в колёса вставляешь, доставляя проблемы части аудитории. Особенно когда у тебя в интерфейсе нет ничего, что действительно требовало бы большое разрешение и фиксированный размер окна.

Я думаю, тут частично виновата документация к движку, в которой рекомендуют ставить разрешение 1920х1080. Потому что сам движок по умолчанию ставит разрешение куда меньше, что 3.x, что 4.x. Т.е. это пользователи движка сами ставят такое разрешение, вручную. Или что они там себе ставят, не знаю.
Аноним 02/07/23 Вск 17:30:31 #148 №883892 
>>883890
А я еще раз повторю.
Я не оправдываю тех кто сделал некачественную игру или не протестировал на нестандартных разрешениях.
Но движок дает опции даже если разработчик игры не указал или указал неправильное разрешение. И повторюсь, что это делают и в других движках, не только в годоте.
Если игра запускается не там конкретно у тебя, то ты можешь пойти зарепортить баг автору игры или движка, но еще ты можешь запустить с параметрами, чтобы именно у тебя, на возможно нестандартной кофигурации, работало так, как тебе надо, а не как оно "само" выставилось операционной системой.
Аноним 02/07/23 Вск 17:38:20 #149 №883896 
Безымянный.png
>>883876
Ну вот картинка. Как я должен определить, что куда, если я даже точки касания определить точно не могу? Вот специально сейчас проверил, в RigidBody3D нет методов или сигналов для получения точек касания, можно узнать только с какими объектами столкнулся. У Area3D точек касания тоже нет, но там хотя бы понятно, почему (она не оказывает сопротивления, так что вместо "касания" всегда происходит проникновение - пересечение объёмов). Если обвешивать всё рейкастами, неизбежно будут промахи.
Аноним 02/07/23 Вск 17:45:10 #150 №883897 
>>883896
Я не знаю как ты хочешь чтобы было.
Один из способов который приходит в голову - отключать физику тем, кого ты не хочешь чтобы двигался.
Я б на твоем месте разобрался, почему рейкасты промахиваются. Расположи их так, чтобы они надежно находили пол и стену. Дальше ты мог бы сравнивать, пол и стена один и тот же объект.
Еще вроде бы после move and collide возвращается список с кем столкнулся. Отсюда тоже можно плясать.
Еще есть слои.
Аноним 02/07/23 Вск 18:01:01 #151 №883900 
>>883878
>на мобилках обычно имхо все прибито гвоздями так как задумано.
В Террарию поиграй, лол. Алсо почти в каждой игре с джойстиком он плавающий, то есть появляется там, куда ткнёшь пальцем, а не прибит гвоздями куда-то в угол, ведь хват устройства на 3.5'' квадрате сильно отличается от 7'' растянутой лопаты, да и даже один девайс разные люди по-разному в руках держат. И если подробная настройка как в Террарии встречается редко, то как минимум 2-3 набора контроллеров на выбор во многих играх есть, особенно где управление машиной. Также после появления телефонов с уродливыми дырками, бровями, бородками, скошенными углами и прочими дефектами производства в мобильных играх стала появляться настройка "безопасной зоны" - то есть отступ от края экрана, на котором не должно располагаться никаких элементов ГУЯ, ведь на конкретном девайсе там тупо нет пикселей и/или не срабатывает сенсор, хотя ОС разрешает выводить туда графику, ничего не зная о физическом дизайне дисплея. Это база, это знать надо, если хочешь сделать хорошую игру, которая будет доступна и удобна как можно большему числу игроков.

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

>Я сужу по ММО, когда мне не нужно масштабировать хитпоинт бары, но надо масштабировать хотбары с кулдаунами.
Не знаю, не играл в ММО с перегруженным GUI, считаю такой дизайн пережитком прошлого, когда было модно иметь отдельную визуальную кнопку на каждое действие и в браузеры добавляли тулбаров на половину экрана. Но насколько я знаю, в ММО обычно окошки по отдельности можно масштабировать, как окна ОС, так что это совершенно отдельное направление GUI.

>если в интернет-браузере ты зумишь страничку, крестик закрытия браузера не меняется.
Это потому, что крестик браузера принадлежит ОС и масштабируется средствами ОС. А страничка внутри браузера нарисована Васяном и никак не зависит от настроек ОС, потому что Васян обмазался CSS и JS.

>>883892
Раздел называется "геймдев", а не софтач и не играч.
Аноним 02/07/23 Вск 18:06:52 #152 №883902 
>>883900
Не расстраивайся, вряд ли тебя забанят за такое мелкое нарушение, когда ты начал обсуждать играч и софтач (как у тебя в операционке не там открывалась скачанная чужая игра)
Аноним 02/07/23 Вск 19:36:37 #153 №883923 
>>883902
>начал обсуждать играч и софтач (как у тебя в операционке не там открывалась скачанная чужая игра)
Кончай троллить. Я просто предупредил, чтобы другие аноны знали о таком потенциальном нюансе при разработке своих игр. Это не движкосрач и не просьба решить проблему с чужой игрой. Я сам, как разработчик игр(ы) на Godot, каждый раз напрягаюсь, когда вижу какое-то странное поведение чьей-то чужой игры на Godot - а вдруг моя игра будет так же себя вести на чьём-то ПК? Godot меня почти полностью устраивает и я рад, что он существует и продолжает сравнительно быстро развиваться. Просто нужно учитывать определённые нюансы работы с ним.
Аноним 02/07/23 Вск 21:26:32 #154 №883941 
>>883878
>Соменваюсь, как раз на мобилках обычно имхо все прибито гвоздями так как задумано. Мобильному игроку сложно же настраивать под себя, еще сложнее чем компьютерному.
Вот реальный случай.
У меня телефон - стандартная сяомя. На нём всё нормально отрисовывается (есть визуальные глитчи, потому что телефону пора на свалку, но гуй рисуется нормально). А у ребёнка планшет с диагональю почти как у ноута. Оказалось, что сенсорные кнопки управления на нём совершенно конского размера, нажимать такое неудобно. И вообще, мобилки - это такой-то зоопарк разных устройств с рандомным соотношением сторон, разрешением dpi и диагональю экрана, что я не представляю себе, как это можно всё учесть. А теперь добавим сюда, что у ребёнка пальцы сильно меньше, чем у меня.
В итоге я пришёл к тому, чтобы сделать две настройки: масштаб кнопок и их расположение. Чтобы каждый игрок мог настроить не только под своё устройство, но и под свои пальцы. И вроде бы пока что это оптимально работает. Все, кто тестировал игру, так или иначе залезали в настройки.
Так что не принижай мобильных игроков. Дай им оптимальные настройки сразу, но по таким спорным моментам, как масштаб интерфейса, лучше всё-таки дать возможность кастомизации.
Аноним 02/07/23 Вск 21:47:33 #155 №883962 
image.png
>>883900
>почти в каждой игре с джойстиком он плавающий, то есть появляется там, куда ткнёшь пальцем, а не прибит гвоздями куда-то в угол
А вот поделитесь мнением, анонасы. У меня могильная игра. Геймплей НЕ динамичный. Надо ходить в 4 стороны кликами/тапами, а не свайпами.

Сейчас я разделил нижнюю часть экрана на 4 прозрачные области. В какую тыкнешь - туда и ход. Как сделать лучше? Сделать перемещаемую крестовину размером поменьше? Или так норм?
Аноним 02/07/23 Вск 21:50:37 #156 №883966 
1644036770881.png
>>883962
Поищи исследования куда пользователь дотягивается большим пальцем.
Аноним 02/07/23 Вск 22:04:08 #157 №883974 
>>883962
Открыл твою картинку на телефоне (6.4''): если держать одной рукой и нажимать большим пальцем той же руки, то вверх и вниз норм, а влево и вправо уже лишнее напряжение. Если держать одной рукой и тыкать указательным второй руки, то так указывающая рука на весу удерживается над экраном и быстрее устаёт. Если держать двумя руками и тыкать двумя большими пальцами, то возникает путаница, каким пальцем тыкать вверх и вниз. Короче, для портретной ориентации не очень управление. Оно больше для ландшафтной подходит - если держать двумя руками и нажимать большим со стороны кнопок.

>прозрачные области
А что там под ними будет? Как пользователь поймёт границы этих четырёх кнопок? Не будет ли палец перекрывать какой-то контент?
Аноним 02/07/23 Вск 22:12:04 #158 №883975 
>>883974
>А что там под ними будет?
Под ними - обычно ничего интерактивного, сама игра происходит в центре и изредка в верхней части. Если что-то перекрывается, то крайне редко.
>Как пользователь поймёт границы этих четырёх кнопок? Не будет ли палец перекрывать какой-то контент?
Во время обучения показываются 4 стрелочки. Потом скрываются.

>для портретной ориентации не очень управление
Дать перетаскиваемую крестовину? Как вообще в мобильных играх реализуют тапы в 4 направлениях?
Аноним 02/07/23 Вск 23:28:42 #159 №883995 
>>883975
Если у тебя пошаговая игра, в которой вот прям обязательно нужны отдельные шаги строго по четырём направлениям, и при этом вся игра отрисовывается на части экрана, то не проще ли самые обычные визуальные кнопки нарисовать?

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

Если я правильно понял, у тебя что-то вроде сокобана. Это древняя игра, наверняка сотни клонов есть в плей маркете, вот качай их и пробуй.
Аноним 03/07/23 Пнд 21:14:11 #160 №884118 
Бля, AdMob подключал кто? Какой плагин нормально работает?
Аноним 03/07/23 Пнд 23:51:44 #161 №884195 
изображение.png
поделитесь пожалуйста кодом с которым можно управлять персонажем по направлению мыши (т.е. чтобы захватывать движение мыши и двигать ею камерой, а кнопками уже в пространстве двигаться, при этом камера чтобы была привязана к модельке)
С помощью гугла такое написал, но чет нифига не двигается персонаж, хотя камерой норм вертит. Годот 4.
Аноним 03/07/23 Пнд 23:54:37 #162 №884196 
>>884195
https://www.youtube.com/watch?v=SH_cDJiPdFc
Допишу собственно что изначально пытался по этому гайду сделать, но он старый и естественно ничего не заработало, я потом полез в гайд по 3д игре из документации официальной, и взял часть оттуда - и оно тоже не заработало в итоге...
Аноним 04/07/23 Втр 01:22:43 #163 №884206 
>>884195
В 3-ке у методов move and ... был параметр вектор, куда двигаться. В 4-ке это теперь поле у самого чарактер боди.
То есть все что осталось - перед мув н слайд написать velocity = dir (умноженное на желаемую скорость, наверное.)
Также можешь посмотреть тут
https://kidscancode.org/godot_recipes/4.x/3d/basic_fps/index.html
У него обычно полехные кирпичики.
Или в ассетах готовые контроллеры как сделаны.
Аноним 04/07/23 Втр 01:27:55 #164 №884209 
>>884206
Cпасибо!
Аноним 04/07/23 Втр 15:50:37 #165 №884274 
А на годте норм пилятся веб игры? Многопользовательские.
Или под платформуу вк.
Аноним 04/07/23 Втр 17:12:28 #166 №884284 
>>884274
>А на годте норм пилятся веб игры? Многопользовательские.
Да.
>Или под платформуу вк.
Хуй знает.
Аноним 04/07/23 Втр 18:21:56 #167 №884302 
блин чет сложно найти норм 3д модельки бесплатные. Неужели вы все их сами еще делаете? Ну не покупать же 25 баксов за 1 модельку кораблика охуеть блять ээх вот бы сделали нейросеть которая 3д модельки делает нормальные
Аноним 04/07/23 Втр 18:47:34 #168 №884310 
>>884302
Кораблики сам, да. Процедурно конечно.
Аноним 04/07/23 Втр 18:51:21 #169 №884313 
>>884310
Процедурно это как?
Аноним 04/07/23 Втр 18:53:57 #170 №884314 
>>884313
Обводы корпуса по формулам, потом башенки расставляются.
Аноним 04/07/23 Втр 19:04:48 #171 №884318 
>>884314
Чет сложно, вон выше про blockbench Написали, не проще его юзать? Я то не программист совсем. Ну вкусовщина видимо.
Аноним 04/07/23 Втр 20:38:38 #172 №884334 
изображение.png
изображение.png
изображение.png
У чувака здесь в meshinstance3d есть кнопка material, а у меня её нету. А как текстуру добавить к модели? Я модель не в том формате добавил? Есть вкладка surface material, но там задается материал для кучи полигонов у модельки. А у меня готовая текстура есть в .png, её загрузить можно?
Аноним 04/07/23 Втр 20:44:23 #173 №884336 
>>884334
Ты смотришь внутри меша, а не внутри мешинстанса. Ниже смотри, там где геометри.
Аноним 04/07/23 Втр 20:48:05 #174 №884337 
изображение.png
изображение.png
>>884336
А почему её распидорасило? Я текстуры в блокбенче делал.
Аноним 04/07/23 Втр 23:24:40 #175 №884364 
>>884337
Я разобрался в чем была причина. Завтыкал и разные размеры текстур указал в настройках модельки и при создании самой текстурки. 2 часа потребовалось чтобы это увидеть
Аноним 05/07/23 Срд 01:06:17 #176 №884372 
аж глаза разбегаются что дальше делоть
Аноним 05/07/23 Срд 01:19:14 #177 №884373 
>>884372
делой игорвы
Аноним 05/07/23 Срд 08:56:59 #178 №884380 
>>883445
> Почему их так колбасит?
Потому что у тебя все объекты массой 1 кг? И пушинки и горы, и небо и Аллах. Всё по килограмму.
Аноним 05/07/23 Срд 10:57:27 #179 №884386 
изображение.png
изображение.png
Вот допустим у меня основной персонаж в игре - это транспорт, и я хочу в будущем реализовать возможность менять этот транспорт. Как мне лучше это организовать в сценах?
Я могу сделать корневую сцену "CharacterBody3D", для игрока где будет хранится, допустим, управление, и отдельные сцены которые тоже "CharacterBody3D" для каждого транспорта? Ну и потом сцену транспорта делать ребенком сцены игрока. Там ведь можно будет как то реализовать смену этого "транспорта" ?


В блокбенче кстати делать модельки оказалось легко и интересно. Проблемы с текстурированием правда лень заморачиваться на этом этапе, но вот из кубиков собирать вполне интересно.
Аноним 05/07/23 Срд 20:45:27 #180 №884472 
>>882096 (OP)
Как сделать загрузочный экран? Вот у меня есть фурнкция, которая загружает данные игры и я хочу, чтоб пока она выполняется у меня параллельно проигрывалась анимация из animation player. Как это сделать?
Аноним 05/07/23 Срд 20:52:11 #181 №884474 
>>884472
А что за игра у тебя?
Аноним 05/07/23 Срд 21:13:34 #182 №884479 
>>884474
В смысле?
Аноним 05/07/23 Срд 21:26:27 #183 №884480 
>>884472
>загружает данные игры
>>884479
ты тут пишешь.
Аноним 05/07/23 Срд 21:30:58 #184 №884481 
>>884472
Вот как-то так: https://docs.godotengine.org/en/3.5/tutorials/io/background_loading.html
Ну и то же самое для четвёртой версии: https://docs.godotengine.org/en/stable/tutorials/io/background_loading.html
Аноним 05/07/23 Срд 21:54:20 #185 №884484 
>>884480
>загружает данные игры
Да просто читает положение врагов, количество патрон и т.д из текстового файлика.

>>884481
Не, тут загрузка ресурсов по частям и т.д. А у меня просто текстовый файлик читается и меняются параметры. Мне нужно, чтоб в это время экран темнел и пока файл читается и все записывается проигрывалась анимация.
Аноним 05/07/23 Срд 22:06:18 #186 №884487 
>>884484
Читай его как файл из одной части.
Аноним 05/07/23 Срд 22:12:52 #187 №884488 
>>884487
Мне просто нужно, чтоб пока он загружался, пока скрипт обращался ко всем нодам и переписывал их данные весел значок загрузки, а не просто когда подгружается сцена.
Аноним 06/07/23 Чтв 00:48:23 #188 №884503 
4.0 сильно сырой? Использует кто уже?
Аноним 06/07/23 Чтв 16:11:00 #189 №884571 
>>884484
Нет, это как раз то, что тебе нужно. Я по этой инструкции делал загрузочные экраны с анимацией. Суть такова:
1. Создаёшь объект "загрузчик"
2. Каждый кадр выдялаешь несколько (100 в данном примере) миллисекунд на загрузку (загрузчик сам делит этот процесс на части)
3. Если загрузчик кончил, но тебе надо разгрести загруженные данные, напиши аналогичный объект сам: распредели все предстоящие действия в массив и выполняй их подряд по чуть-чуть каждый кадр, после каждого действия сверяясь с временем.
4. Остальное время кадра анимируешь анимированную анимацию.
Отличие четвёрочной версии в том, что сам загрузчик делает свою загрузку в отдельном потоке, в то время как в 3.5 многопоточность (если она тебе нужна) придётся прописывать ручками. Впрочем, раздавать свойства нодам по загруженным данным тебе всё равно придётся руками.

>>884503
Положняк на ближайшие год-два:
4 для тридэ и десктопа
3 для всего остального
Для мобилок только 3 без вариантов
Аноним 06/07/23 Чтв 16:43:28 #190 №884575 
>>884571
>Для мобилок только 3 без вариантов
Почему?
Аноним 06/07/23 Чтв 16:44:43 #191 №884576 
1688651081717.png
1688651081738.png
1688651081749.png
1688651081750.png
>>884503
Я на четверке сделал себе скринсейвер с часиками в стиле наручных из 90х и одновременно настольных ламповых из 80х. Кайфую, ностальгирую.
Аноним 06/07/23 Чтв 17:25:50 #192 №884587 
>>884503
Перекатываю на него Берлин.
Аноним 06/07/23 Чтв 17:34:49 #193 №884590 
>>884575
Четвёрка толще и поддержки меньше. В основном речь о поддержке. На мобилки никто не будет делать игры без рекламы, а рекламные адаптеры на четвёрку ещё не перекатили, наверное.
Аноним OP 06/07/23 Чтв 18:30:46 #194 №884601 
Спустя столько лет годот наконец-то сделали таким, как я хотел еще тогда: https://www.youtube.com/watch?v=PAtG_fHhIx8
Аноним 06/07/23 Чтв 18:36:06 #195 №884602 
изображение.png
>>884601
Может ты разбираешься - как можно сделать вот такие процедурно генерируемые острова летающие в воздухе? Что то я пока не могу разобраться. Даже воксель тулс себе поставил, но мне кажется это не то и слишком оверкилл для моего текущего скилла.
Аноним 06/07/23 Чтв 20:52:34 #196 №884619 
Сап пользователям православного движка. Я только потихоньку вкатываюсь, поэтому не бейте за глупый вопрос. Как сделать так, что бы при переходе между сценами музыка продолжала играть в своëм темпе там, где она не сменяется другим саундом? На ютубе туториалы только как вставить музыку в отдельную сцену или вообще во весь проект.
Аноним OP 06/07/23 Чтв 21:45:07 #197 №884632 
>>884602
> как можно сделать вот такие процедурно генерируемые острова летающие в воздухе?
Самый простой вариант для лоу-скилла - это сделать в блендере несколько типовых островов, а в игре их процедурно доставать как карты из колоды. Чтобы увеличить разнообразие, эти заготовки при вытаскивании можно поворачивать на произвольный угол. Многие так и делают. Такшта думой.
Аноним OP 06/07/23 Чтв 21:46:01 #198 №884633 
>>884619
Просто вставь в автозагрузку сцену с плеером музыки и переключай его из любых других сцен вообще.
Аноним 06/07/23 Чтв 22:42:33 #199 №884645 
>>884601
До зрелого продукта еще пилить и пилить
Аноним 07/07/23 Птн 00:43:04 #200 №884667 
KatanaZero1.jpg
>>884302
Двачую.
Есть нейросети, где можно сгенерировать персонажа в жанре 2D pixel art, а также врагов, здания, оружие, технику, задники и т.д.?
Выше анон упоминал бесплатные ассеты с itch io - в данный момент изучаю их.
Но все-таки хочу что-то свое, оригинальное (бесплатные ассеты хочу юзать только для прототипа).
Аноним 07/07/23 Птн 02:32:36 #201 №884681 
Есть ли альтернативные ресурсы помимо официальной документации и GD Quest для изучения GD Script и в целом Godot Engine?

Желательно на русском языке, могу пытаться рвать жопу и на английском, переводя каждый абзац, но не знаю, если вдруг есть русскоязычный ресурс для изучения - будет неплохо. Если все дороги все таки ведут на GD Quest, то придется вкатываться в Godot Engine с английского языка и машинного перевода.

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

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

Из общих знаний: не знаю ЯП от слова совсем

Был период вката в пайтон, из интереса(правда забросил, но какие-либо штуки на очень и очень детском уровне знаю)

Буду благодарен за ответ
Аноним 07/07/23 Птн 03:11:26 #202 №884683 
>>884681
Даже если найдешь гайды на русском, а они есть, то без англюсика все равно никуда. Всю документацию и все вопросы-ответы, все форумы, стековерфлоу, реддит и дискорд годота тебе никто не переведет.

Технический английский простой. Не бойся, попробуй.
Аноним 07/07/23 Птн 08:12:52 #203 №884692 
>>884686
Ты тредом ошибся, движкосрач там >>618624 (OP)

>>884619
Хм, за всё время (уже года три как годотствую) я ни разу не пользовался "сменой сцены". У меня в основной сцене куча всякого нужного висит, да та же музыка, гуй тоже там. Если надо уровень сменить - он у меня дитё к какой-нибудь специально обученной ноде; старый удалил, новый заинстансил и добавил на его место. Мне кажется, в туторы "смену сцены" пихают для упрощения, чтобы не морочить новичку голову, а вообще в более-менее полной игре это бесполезная фича. Мне так кожеться.
Аноним 07/07/23 Птн 09:46:50 #204 №884699 
Зачем нужно нижнее подчеркивание в GDScript?
В уроке на английском, который сейчас смотрю, автор сказал:
"Нижнее подчеркивание в функции
func _physics_process(_delta):
как бы говорит "Я не хочу использовать _delta""

Что он имел ввиду?
Аноним 07/07/23 Птн 09:59:42 #205 №884701 
>>884699
Это из какого-то крупного языка взято
Если ты напишешь delta, но не будешь использовать, у тебя будет предупреждение желтое висеть.
Если написать _delta, то ты сообщаешь что эту переменную не используешь (пока)
В идеале код должен быть без предупреждений.
Подчеркивания в начале функций, например _ready означают другое - что движок будет вызывать эти функции сам.
Аноним 07/07/23 Птн 10:00:45 #206 №884702 
>>884701
ОК, спасибо за инфу
Аноним 07/07/23 Птн 20:12:44 #207 №884781 
>>884386
>Вот допустим у меня основной персонаж в игре - это транспорт, и я хочу в будущем реализовать возможность менять этот транспорт. Как мне лучше это организовать в сценах?
Зависит от того, какие параметры должны сохраняться независимо от выбранного транспорта. У тебя ведь, скорее всего, кроме транспорта есть ещё пилот и груз. Эти параметры логичнее держать отдельно от KinematicBody3D транспорта.

>В блокбенче кстати делать модельки оказалось легко и интересно. Проблемы с текстурированием правда лень заморачиваться на этом этапе, но вот из кубиков собирать вполне интересно.
Имхо, у блокбенча единственное преимущество - это пикселявое текстурирование "а-ля майнкрафт", а вот моделирование лучше в Blender освоить. При том что в блендере тоже можно пикселявые текстуры рисовать, просто чуть настроить нужно самому.
Аноним 07/07/23 Птн 20:37:16 #208 №884791 
LOADING.mp4
>>884472
>Как сделать загрузочный экран?
Делаешь сцену game.tscn и назначаешь её основной сценой, чтобы движок её загружал первой. В неё кидаешь сцену-заслонку ColorRect с чёрным цветом и твоей анимацией загрузки (AnimationPlayer или AnimatedSprite2D, что угодно), а также твою сцену-загрузчик (заслонку лучше расположить выше загрузчика). Возможно, тебе потребуется CanvasLayer, чтобы заслонка была выше всего остального GUI. В своём game.gd цепляешься к сигналу окончания загрузки из своего загрузчика и после этого скрываешь сцену-заслонку (или проигрываешь плавное исчезновение в AnimationPlayer, например, меняя альфу в цвете ColorRect). Всё, теперь игрок видит главное меню и может с ним взаимодействовать. Игровые уровни грузятся аналогично: делаешь заслонку видимой и добавляешь свой уровень потомком к game, после полной инициализации уровня скрываешь заслонку. Тут главное понимать порядок вызова некоторых обработчиков, например, _ready() корня сцены вызовется только после всех _ready() его потомков: если твой загрузчик успевает всё загрузить в своём _ready(), тогда game.gd (корень сцены) может не успеть поймать сигнал завершения загрузки, если ты соединяешь обработчик и сигнал в _ready() корневой ноды. В общем, смотри сам, как у тебя там устроена загрузка.
Аноним 07/07/23 Птн 21:00:30 #209 №884799 
>>884667
>хочу что-то свое, оригинальное
@
>нейросети, где можно сгенерировать персонажа

Так ты хочешь "своё, оригинальное"?
Или ты хочешь быстро и без навыков шаблонную кашицу в стиле %юзернейм% из интернета?

Нейросеть изобретал ты? Нет.
Нейросеть обучал на рисунках ты? Нет.
Нейросеть обучали на твоих рисунках? Нет.
Тогда результат работы этой нейросети настолько же "твой, оригинальный" насколько "твой, оригинальный" только что созданный новый мир в Майнкрафте.
Аноним 07/07/23 Птн 21:16:37 #210 №884808 
>>884692
>Мне кажется, в туторы "смену сцены" пихают для упрощения, чтобы не морочить новичку голову, а вообще в более-менее полной игре это бесполезная фича. Мне так кожеться.
Я подозреваю, что эта фича в движке - наследие движков нулевых, когда Godot зарождался. Типа для простых 2D игр с уровневой системой (тысячи их) действительно может быть проще менять "сцены" одной функцией API, а всю постоянную информацию хранить в глобальных объектах. Может быть, это влияние Flash или Game Maker, там что-то такое было вроде бы. В общем, мне кажется, эту фичу в Godot притащили откуда-то из другого движка, где концепция смены сцен была важнее.
Аноним 07/07/23 Птн 21:20:56 #211 №884813 
>>884799
Интересное сравнение, когда играл в одной группе, мы искали интересные или удачные сиды, так что вполне себе появились выражения "сид игрока%нейм", процесс вполне похожий, и там и там пользователь крутит ручку барабана, но именно отбор - его, получается что-то вроде коллекции над всем множеством.
Аноним 07/07/23 Птн 21:24:47 #212 №884818 
>>884701
>Подчеркивания в начале функций, например _ready означают другое - что движок будет вызывать эти функции сам.
Нет, это просто ради одного общего стиля.
https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_styleguide.html#functions-and-variables
>Prepend a single underscore (_) to virtual methods functions the user must override, private functions, and private variables
Вот конкретно _ready, _process, _input и т.д. - это виртуальные методы, они вызываются движком и поэтому должны иметь именно такое название.
Аноним 07/07/23 Птн 21:36:28 #213 №884824 
>>884813
>сид игрока
Вот к коллекциям интересных сидов на сайтах вообще никаких претензий нет. А если ты найдёшь какой-то сид с интересным миром, сделаешь скриншоты этого мира и засунешь в свою игру со словами "это мой мир", тут уже будут претензии...
Аноним 07/07/23 Птн 21:54:42 #214 №884831 
>>884602
>как можно сделать вот такие процедурно генерируемые острова летающие в воздухе?
Во-первых, ты сразу должен понять, что процедурная генерация не сделает всё за тебя. Хороший генератор игрового мира требует намного больше работы, чем нашлёпать те же объекты вручную.

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

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

>Даже воксель тулс себе поставил
Генерация вокселями имеет свои особенности.
>слишком оверкилл для моего текущего скилла
Нужно смотреть не на скилл, а на свои желания.
Аноним 08/07/23 Суб 13:59:11 #215 №884939 
>>884701
> из какого-то крупного языка взято
Сначала было в питоне, потом перекатилось в шарп. Богомерзкий кодекондукт. Осуждаю.
Аноним 08/07/23 Суб 14:14:38 #216 №884946 
>>884571
Ладно, надеюсь, что я в этом разберусь

>>884791
Прости, но ты совсем не так понял вопрос. Совсем.
Аноним 08/07/23 Суб 14:47:38 #217 №884959 
>>884946
>Прости, но ты совсем не так понял вопрос.
Хм? Тебя интересует, как разбить процесс на части, чтобы окно "мутным стеклом" не покрывалось? В параллельном потоке работать небезопасно, если у тебя не одна операция, а несколько операций с разными нодами в дереве сцены.

В общем, делишь свой процесс на этапы, делаешь счётчик этапов, добавляешь таймер, на обработчик таймера вешаешь match с этапами.

Как-то так (Timer сделай one_shot = true):
>const _FINAL_STEP = N # здесь число
>var _timer := $Timer
>var _loading_step: int = 0
>func _on_timer_tick() -> void:
>_ match _loading_step:
># здесь твои шаги в формате X: действия()
>_ if _loading_step < _FINAL_STEP:
>_ _ _loading_step += 1
>_ _ _timer.start()
>_ else: queue_free()
Первый раз запускать таймер лучше в _ready() основной сцены, т.е. game.gd, когда всё готово.
Аноним 08/07/23 Суб 14:57:13 #218 №884964 
>>884959
> Как-то так
Ну анон, ну пастебин же есть с поддержкой гдскрипта, ну что же ты мучаешься?
Аноним 08/07/23 Суб 15:06:31 #219 №884970 
>>884959
>делишь свой процесс на этапы,
>делаешь счётчик этапов,
>вешаешь match с этапами.
В общем, так я и сделал у себя, только без таймера. Не помню уже, почему я тогда избегал таймеров.

В видео >>884791 начиная с 0:18 заметно, как идёт активная работа с нодами сцены - анимация загрузки местами заметно дёргается из-за того, что GridMap принимает в себя слишком толстые порции данных и подвисает (т.к. сама генерация данных крайне быстрая). Вероятно, это можно исправить, выделив всё это дело в отдельный процесс, но такие заикания загрузки я видел во многих ААА играх, даже в GTA, так что всё норм, а возиться с потоками мне лень. Главное что игра показывает анимацию загрузки, которая как бы говорит "падажжи, ща всё будет". Да не будет ничего, я уже несколько раз мотивацию потерял, даже не знаю теперь, зачем игры делать...

>>884964
>пастебин
Зачем, если можно прямо тут набрать?
>ну что же ты мучаешься?
Так я в любом случае "мучаюсь", набирая код на гугловской клавиатуре андроида, лишний "_" поставить не лень. Кому нужен код, пусть сами набирают, копипастить код из интернета вредно, и языки со значимыми отступами от этого отучивают. А я просто абстрактный пример накидал, считай, что это так называемый "псевдокод".
Аноним 08/07/23 Суб 15:22:42 #220 №884979 
>>884959
О, придумал как сделать лучше, без константы:
>func _on_timer_tick() -> void:
>_ match _loading_step:
>_ _ 0: do_a()
>_ _ 1: do_b()
>_ _ 2: do_c()
>_ _ _: queue_free(); return
>_ _loading_step += 1
>_ _timer.start()
Вариант "_:" сработает при любом значении, которое не попадалось выше (не 0, 1, 2); это аналог default/else из других языков. Команда "return" завершит метод до выполнения следующих двух строчек, следовательно, запуска таймера не произойдёт. После queue_free() в данном случае обязателен return, поскольку этот метод не удаляет объект сразу, а только назначает его в очередь на удаление, поэтому метод продолжит выполняться, а нам этого не нужно. Точка с запятой разделяет две команды, записанные на одной строке (вроде бы руководство по стилю Годо рекомендует писать каждую команду на новой строке, но интерпретатор GDScript поддерживает запись всего кода в одну строку).

Таким образом, можно просто вставить новый этап:
>_ _ 2: do_c()
>_ _ 3: do_d() # новый этап
>_ _ _: queue_free(); return
И не придётся менять значение константы. Это намного удобнее, если у тебя постоянно меняется количество этапов загрузки/генерации данных.

В своём коде константу использовал, т.к. там мне нужно было считать время выполнения каждого шага, и я не мог просто пропустить конец метода.
Аноним 08/07/23 Суб 18:10:24 #221 №885017 
>>884959
Меня интересует, как сделать так. Вот у меня есть скрипт load, в котором открывается текстовый файл, копирует данные из него в переменную, а потом просто цикл, который загружает данные в ноду. Что-то вроде
func load():
__var file = File.new()
__file.open("user://save_game.dat", file.READ)
__var content = file.get_as_text()
__var contentFormat = тут форматирует content
__file.close()
____for node in nodes:
_______node.global_position = contentFormat[node][global_position]

И чтоб во время выполнения этой функции на экране висела анимация. В моём случае крутящаяся шестеренка на черном фоне.
Аноним 08/07/23 Суб 18:45:41 #222 №885023 
>>885017
Во-первых, нужно смотреть, что у тебя занимает так много времени, что нужно включать заставку. Уже это что-то нужно как-то оптимизировать.

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

В-третьих, если тебе нужно разбить всё на этапы в один поток, тогда делай как-то так:
>signal init_done
>const INIT_BATCH = 10 # отрегулируй по тестам
>var nodes: Array = ... # заполни заранее
>var init_from: int = 0
>@onready var _timer := $Timer
>func _init_nodes() -> void:
>_ var init_to = init_from + INIT_BATCH
>_ if init_to > nodes.size(): init_to = nodes.size()
>_ for node_id in range(init_from, init_to):
>_ _ nodes[node_id].global_position = content[node_id].pos
>_ init_from = init_to
>func _on_timer_timer() -> void:
>_ _init_nodes()
>_ if init_from < nodes.size():
>_ _ _timer.start() # следующий цикл
>_ else:
>_ _ init_done.emit() # сообщаем, что всё сделали
>_ _ queue_free() # если больше не нужен загрузчик

Как чтение из файла разделить на этапы вроде уже выше ссылку кидали, но это если у тебя файл очень большой и слишком долго считывается.
Аноним 08/07/23 Суб 18:53:35 #223 №885025 
Загрузочный экран.gif
>>885023
Чтение из файла, да и не хочется, чтоб игрок видел, как объекты прыгают или исчезают, когда он загрузку нажал.

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

Я не понимаю, что твой код делает. Зачем тут вообще таймер?
Аноним 08/07/23 Суб 18:55:29 #224 №885026 
>>885017
>И чтоб во время выполнения этой функции на экране висела анимация. В моём случае крутящаяся шестеренка на черном фоне.
Это уже делай примерно как здесь: >>884791
>Делаешь сцену game.tscn и назначаешь её основной сценой, чтобы движок её загружал первой. В неё кидаешь сцену-заслонку ColorRect с чёрным цветом и твоей анимацией загрузки (AnimationPlayer или AnimatedSprite2D, что угодно), а также твою сцену-загрузчик...

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

Я бы вообще избегал глобальных переменных даже в рамках одного класса, отправляя в методы побольше аргументов вместо обращения к полям класса; т.е. вместо
>_init_nodes()
должно быть что-то вроде
>init_from = init_nodes(init_from, nodes)
тогда можно более универсальный метод написать, для разных ситуаций в рамках одного класса.
Аноним 08/07/23 Суб 19:06:30 #225 №885028 
>>885026
Чел в том посте написал, как сделать анимацию, а мне нужно, как сделать так, чтоб анимация проигрывалась одновременно с функцией выполнения загрузки. Мне не нужно знать, что там загрузилось, на сколько процентов. Просто анимация и всё
Аноним 08/07/23 Суб 19:06:39 #226 №885029 
>>885025
>Чтение из файла
Сколько килобайт? Даже на жёстком диске будет моментальное чтение в пределах пары мегабайт. Вот изменение параметров тысяч нод может занять время больше одного кадра (условно, 16 мс).

>А можно как-нибудь вывести в отдельный поток чисто анимацию в AnimationPlayer?
Эээ, не знаю, вроде бы пока что нельзя, потому что всё дерево сцены обрабатывается одним потоком (т.е. движок обходит все ноды в одном цикле и говорит "рисовай", "физиковай", "обрабатовай ввод" каждой ноде лично). Чтобы разделить дерево сцены на потоки, нужно писать свою реализацию MainLoop, что нерационально ради одной только крутящейся шестерёнки. Вроде бы Хуан хочет разделить дерево сцены на потоки из коробки, но когда они это сделают - неизвестно, скорее всего не раньше 4.2.

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

>Зачем тут вообще таймер?
Чтобы распределить процесс на несколько кадров. Можно сделать аналогично с помощью _process, но таймером проще добавить паузу в миллисекундах - не нужно вручную считать дельту кадров. Также это избавит от проблем, если у кого-то там монитор 240 Гц, хотя это можно исправить переносом кода в _process_physics - там гарантированное число тиков в секунду, заданное в настройках проекта (по умолчанию 60).
Аноним 08/07/23 Суб 19:13:50 #227 №885030 
>>885029
>Если ты совсем ньюфаг, зачем в такие сложности лезешь? Вряд ли у тебя тысячи нод настраивать нужно, что требуется анимация загрузки.
А откуда мне знать, что анимация загрузки это сложность? Это ж в каждой игре есть на базовом уровне. Я в душе не ебал, что это такая проблема.
Я вижу, что у меня пролаг есть, пока игра загружается и первая моя мысль это скрыть его под анимацией загрузки. Ведь пока он маленький, но все равно выглядит уродски, видел хоть одну игру, где при загрузки сначало микрофриз, а потом все объекты у тебя на глазах телепортируются? Я вот нет а потом может быть и не маленький.

То есть вся та хуйня с таймером расчитана на то, что все будет загружатся не сразу пока функция выполняется, а каждый кадр, пока не загрузится?
Аноним 08/07/23 Суб 19:16:10 #228 №885032 
>>885028
>анимация проигрывалась одновременно с функцией выполнения загрузки
Ну давай разберёмся, что значит "одновременно".

В основе любой игры лежит мейн луп, например:
>while true:
>_ for node in nodes:
>_ _ node.process()
>_ _ node.process_physics()
>_ _ node.input()
Конкретную реализацию в Godot смотри в исходниках движка, мне лень сейчас копаться.

Вот допустим, что твоя функция загрузки выполняется где-то. Если она занимает <16 мс и твоя частота кадров 60, то ты даже не заметишь, что твоя функция уже выполнила работу. Если она занимает >16 мс, то ты заметишь очень короткую просадку кадров или "заикание". Если она занимает больше сотен миллисекунд, игра покажется зависшей, а если больше нескольких секунд - Windows покроет окно игры белой хренью и начнёт крутить на указателе мышки колёсико/песочные часы.

Вот загрузочный экран тебе нужен только в последнем случае, и чтобы не происходило эффекта "зависания", тебе нужно разделить твой процесс загрузки на несколько этапов, которые ты будешь выполнять между разными итерациями while true мейн лупа. Это понятно?

Ты можешь, конечно, создать отдельный поток, в котором будет твоя загрузка, но кто знает к чему это приведёт на конкретном железе и ОС... Особенно когда ты будешь со временем увеличивать сложность игры и объём контента. Лишняя головная боль, если у тебя вся загрузка за одну секунду происходит.
Аноним 08/07/23 Суб 19:21:24 #229 №885033 
>>885032
То есть мне нужно, чтоб моя функция в _process выполнялась по частям настолько маленьким, чтоб часть функции проходила незаметно быстро и не стопорила анимацию?
Аноним 08/07/23 Суб 19:24:42 #230 №885037 
>>885030
Игру делай. Полишингом полоски загрузки будешь заниматься в последний месяц перед релизом. А то глупо выйдет, если у тебя самая лучшая полоска загрузки в мире, а игры нет. Недавно как раз статья выходила на эту тему. https://habr.com/ru/news/745322/comments/
Аноним 08/07/23 Суб 19:26:00 #231 №885038 
>>885030
>видел хоть одну игру, где при загрузки сначало микрофриз, а потом все объекты у тебя на глазах телепортируются?
Тупо любая ААА игра, заходишь в GTA 5/Online и наслаждаешься фризами + телепортациями. Самое смешное, когда заходишь в лифт в помещении, в котором НЕВОЗМОЖНО умереть, и УМИРАЕШЬ во время загрузки из-за какого-то бага.

>вижу, что у меня пролаг есть
Я тебе говорю - растяни на весь экран ColorRect с чёрным цветом и скрывай его, когда завершишь загрузку. Если вся твоя загрузка занимает меньше пары секунд, то ничего не заметишь. Так делают в каждой первой инди-игре, при том некоторые умудряются покрываться белой хренью под Windows во время загрузки, но никто на это не жалуется - все привыкли.

>расчитана на то, что все будет загружатся не сразу пока функция выполняется, а каждый кадр, пока не загрузится?
>>885033
>моя функция в _process выполнялась по частям настолько маленьким, чтоб часть функции проходила незаметно быстро и не стопорила анимацию?
Гениально, Шерлок, вы раскрыли это дело!

Маленькие заикания в анимации загрузки не страшны и наблюдаются практически во всех играх, не считая совсем уж примитивных.
Аноним 08/07/23 Суб 19:49:45 #232 №885043 
>>885038
Спасибо, теперь ясно всё
Аноним 08/07/23 Суб 20:44:46 #233 №885055 
>>885038
>Маленькие заикания в анимации загрузки не страшны
Пиздец ты говноедище, лол. У тебя вместо игры какое-то фризящее дерьмо получается, а ты рассказываешь что это дерьмо не страшно и вообще нормально.

У тебя стокгольмский синдром?
Аноним 08/07/23 Суб 22:29:27 #234 №885083 
>>885055
>фризящее дерьмо получается
>не страшно и вообще нормально
Возьми любую инди-шминди с генерацией уровня и красивой анимацией загрузки - 100% будет пукать на любом железе во время загрузки, но зато потом плавный геймплей, потому что всё загрузилось.

Не всё можно разбросать по ~16 мс пачкам и не всегда такой разброс рационально делать.

Даже ААА будет тормозить и заикаться на загрузке, зато потом стабильные 30+ ФПС даже на слабом ПК.

покормил тролля из движкосрача
Аноним 08/07/23 Суб 23:00:28 #235 №885090 
В доках мало инфы по Networking для Godot 4.
Кто-то занимался мультиплеером в Godot? Можете покидать гайдов/статей?
Аноним 08/07/23 Суб 23:04:47 #236 №885092 
>>885090
>В доках мало инфы по Networking для Godot 4.
Сколько было, столько и осталось.
https://docs.godotengine.org/en/3.5/tutorials/networking/index.html
https://docs.godotengine.org/en/stable/tutorials/networking/index.html

>мультиплеер
>Можете покидать гайдов/статей?
Тебе конкретно что нужно?
- онлайн-доски рекордов;
- P2P кооператив/мелкий PvP;
- авторитарный сервер;
- кластеры серверов как в ММО.

В общем-то мультиплеер в основном на сервере происходит, если тебе нужно больше 2-4 игроков и максимальная защита от читеров.
Аноним 09/07/23 Вск 02:34:41 #237 №885117 
>>885090
Присоединяюсь к вопросу (другой анон). А если конкретнее: как сделать что-то типа десматча? Один общий уровень, несколько игроков на нём друг друга убивают. Один создал, другие подключились. Я смотрел что-то про новые крутые сетевые ноды в четвёрке, но пока не понимаю даже, как в целом сцены организовывать.
И да, интересно не только (не столько) по четвёрке, но и по тройке тоже.
Аноним 09/07/23 Вск 05:34:12 #238 №885123 
>>885117
>что-то типа десматча
Про high level multiplayer уже читал? >>885092
Аноним 09/07/23 Вск 06:55:40 #239 №885132 
>>885083
> У тебя говно лагает, переделывай.
@
> ВРЁТИ ВРЁТИ ВРЁТИ ЭТО У ВСЕХ ЛАГАЕТ ЛАГИ НЕ СТРАШНЫ ФРИЗЫ НЕ СТРАШНЫ ВЫ ВСЕ ТРОЛИ ЕСЛИ ПРОТИВ!!111

Блядь, ты совсем больной дебил что ли?
Аноним 09/07/23 Вск 08:53:35 #240 №885155 
>>884970
> Так я в любом случае "мучаюсь", набирая код на гугловской клавиатуре андроида, лишний "_" поставить не лень. Кому нужен код, пусть сами набирают, копипастить код из интернета вредно, и языки со значимыми отступами от этого отучивают. А я просто абстрактный пример накидал, считай, что это так называемый "псевдокод"
Аргументы - моё почтение. Убедил.
Аноним 09/07/23 Вск 10:24:27 #241 №885162 
>>885132
>говно лагает
Ты перебираешь циклом огромный массив ячеек, в которых записаны данные уровня, скажем, миллион ячеек (минимум для Террарии). Не просто перебираешь, а ещё считаешь какую-то формулу, вроде симуляции движения воды. У тебя два стула:
1. Разбить процесс на шаги определённого размера, которые, возможно, будут проходить менее чем за один кадр на определённом минимальном железе, но на более слабом всё равно будут тормозить, а разбивка на шаги замедлит загрузку мира для ВСЕХ игроков, даже с самыми быстрыми компьютерами из-за ожидания между шагами, счётчиков и if-ов.
2. Оставить всё как есть, ибо процесс завершается за пару-тройку секунд и ни юзер, ни ОС не успевают подумать, что игра зависла, а на короткую задержку анимации загрузки вообще всем насрать, пока игра загружается быстро и потом работает плавно.

Ты можешь разбить процесс на потоки, в некоторых случаях даже на несколько потоков (заполнять четверть массива в четырёх потоках), но это не всегда возможно и на более слабом железе всё равно вызовет тормоза в анимации из-за того, что одно ядро не справляется со всеми твоими потоками, которые прут на 100% скорости, не оставляя времени ЦПУ для твоего основного процесса - т.е. отображения анимации в окне (и ещё нужно ловить все события окна, иначе Windows решит, что приложение зависло, и предложит его закрыть). Так что это не решает исходную проблему (задержки в анимации), даже если ускоряет процесс за счёт многопоточности. Может помочь назначение дополнительным потокам более низкого, чем у основного, приоритета, чтобы ОС сфокусировала силы ЦПУ на анимации в окошке, но тогда твоя загрузка опять же замедлится.

Повторяю, речь идёт об анимации загрузки уровня, на которую давно никто не смотрит, потому что она ничего по факту не отображает (игра может "зависнуть" где-то у себя внутри в каком-нибудь while true цикле, но при этом продолжать крутить бесконечное колёсико загрузки, как будто чем-то занята). Если у тебя долгая загрузка, игрок может вообще от компа отойти, как в случае со многими ААА играми, и ему абсолютно насрать на твою анимацию, какой бы плавной она ни была.
Аноним 09/07/23 Вск 10:45:22 #242 №885169 
>>885092
Что-то типа террарии, мультиплеер на 4-8 игроков, которые у себя хостить сервер будут, античит не нужен.
Аноним 09/07/23 Вск 10:56:02 #243 №885173 
>>885092
>>885169
Для 3.5 не нужно, а для 4.+ эти статьи уже читал. Нужны гайды, чтобы конкретные решения увидеть с более сложными примерами. Посмотреть, как код организовывают. Подводные камни разные.
Еще не понятно, можно ли создать одновременно dedicated server и ad-hoc сервер в клиенте?
Из-за того что нужно прописывать в общий для процесса (окна?) multiplayer.multiplayer_peer = peer, то, выходит, нельзя сначала создать server_peer, а потом client_peer, и подключить один к другому в рамках одного процесса, потому что multiplayer постоянно используется в логике с сетью.
Аноним 09/07/23 Вск 11:07:30 #244 №885175 
>>885162
Любая загрузка данных делается в простейшем планировщике задач и планировщик задач определяет анимации просто более высокий уровень исполнения, как и I/O. Саму задачу прохода по данным разделяют на части и выполняют не в одном кадре, а десятках или даже сотнях, чтобы никаких лагов не было. Все задачи не общим скопом выполняются, а висят в планировщике, по этому никогда никаких лагов или зависания процесса в нормальных приложениях нет, если лаги есть - приложение создавали умственно отсталые дегенераты которые не смогли сделать нормальный планировщик.

А ты какую-то полную хуйню нафантазировал, просто бред нахуй.
Аноним 09/07/23 Вск 11:56:44 #245 №885180 
>>885175
>умственно отсталые дегенераты которые не смогли сделать нормальный планировщик
Вот только у них 1151172 отзывов в Стиме...
Аноним 09/07/23 Вск 13:10:38 #246 №885191 
Делайте игры лучше.
Аноним 09/07/23 Вск 19:09:35 #247 №885261 
https://www.opennet.ru/opennews/art.shtml?num=59412
Выпуск открытого игрового движка Godot 4.1
Аноним 10/07/23 Пнд 13:45:12 #248 №885362 
>>884602
>острова летающие в воздухе
>>884386 >>884337 >>884334 >>884302
>модельку кораблика
А у тебя есть какой-то конкретный концепт игры или ты просто так, от балды что-то лепишь?

У меня похожие идеи были, но я забросил их.
Аноним 10/07/23 Пнд 14:27:08 #249 №885374 
>>885362
> какой-то конкретный концепт игры
Осторожно предположу, что тот анон делает фанфик по аниме, было такое, с летающими островами и кораблями. Недавно на рестарте видел.
мимо
Аноним 10/07/23 Пнд 14:38:52 #250 №885375 
>>885374
>аниме, было такое, с летающими островами и кораблями
Лет как 300 уже такое всплывает то тут, то там.
Аноним 10/07/23 Пнд 14:40:37 #251 №885377 
>>885375
Ну в общем-то да. Сюжетец потасканный порядочно.
Аноним 10/07/23 Пнд 17:08:05 #252 №885411 
>>885374
>аниме, было такое, с летающими островами и кораблями. Недавно на рестарте видел.
Что за аниме? Интересно.

>>885375 >>885377
Когда Worlds Adrift загнулись, появилось много проектов поменьше, в которых что-то похожее.

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

У того анона что-то другое, вот и интересно, что.
Аноним 10/07/23 Пнд 23:27:15 #253 №885493 
>>885411
> Что за аниме? Интересно.
Полчаса искал - не нашёл. Казалось было недавно, но уже куча просмотренных видосов в истории. Не найти. В гугле по запросу "аниме про летающие корабли -космос -космич" выдаёт атаку титанов Last Exile: Gin'yoku no Fam, но это не то, что я видел ранее.
Аноним 11/07/23 Втр 15:33:15 #254 №885589 
Игры-то делаете?
Аноним 11/07/23 Втр 16:01:59 #255 №885594 
>>882419 >>882842 >>883807 >>885191 >>885589
Это тролленк такой или ты так тред бампаешь?
Аноним 11/07/23 Втр 20:42:45 #256 №885650 
>>885594
Это классика, это знать надо.
Да, он так бампает
Аноним 12/07/23 Срд 17:55:53 #257 №885810 
4.1.1 уже готовится. Пиздос они ускорились конечно.
Аноним 12/07/23 Срд 18:06:33 #258 №885816 
>>885810
Предпочитаю не качать патч-версии лишний раз.

>они ускорились
Как и обещали.
https://godotengine.org/article/release-management-4-1/

Даёшь Godot 5.0 в три года!
Аноним 12/07/23 Срд 18:55:07 #259 №885836 
>>885816
Еее! Вот это по нашему!
Аноним 13/07/23 Чтв 22:00:03 #260 №886147 
>>885810
Пока 4.4 не выйдет,это сырое поделие
Аноним 14/07/23 Птн 13:37:36 #261 №886364 
>>885810
и чё там будет чё-то? А то пока похоже, что лучше бы не выпускали четвёрку.
Аноним 14/07/23 Птн 13:40:24 #262 №886365 
>>886147
Ты так про трёщку писал, ждун, ну и где твои игры. Признай, ты просто прокрастинатор. Пасаны делают игоры прямо на релиз-кандидате и не парятся. К своему релизу как раз и релиз движка подъезжает.
Аноним 14/07/23 Птн 16:42:21 #263 №886500 
Я правильно понимаю что надо без задней мысли просто читать документацию как учебник и потом уже что-то начинать делать в самом движке? Никогда программированием не занимался раньше.
Аноним 14/07/23 Птн 16:52:30 #264 №886505 
>>886500
>Никогда программированием не занимался раньше.
Я бы в таком случае порекомендовал начинать с видео-туторов. Вкатываться в Class Reference без опыта взаимодействия с этим явлением может оказаться сложно. Изучаешь любые доступные туторы, параллельно почитываешь эти самые описания классов в доках, таким образом учишься черпать информацию уже оттуда.
Читать доки как учебник - это риск потерять интерес. Там, конечно, есть раздел Step by step, но он довольно минималистичный, его писали программисты, так что там много мест, где информация подаётся слишком плотно, чем может воспринимать неподготовленный человек.
Аноним 14/07/23 Птн 17:04:50 #265 №886512 
>>886505
Спасибо за совет.
https://gdquest.github.io/learn-gdscript/

А как тебе эта штука? На неё ссылка в документации, говорят про новичков сделали.
Аноним 14/07/23 Птн 17:05:49 #266 №886513 
>>886512
Годно. У ГДКвеста хорошие гайды, будь то ютуб или вот такие отдельные
Аноним 14/07/23 Птн 17:29:46 #267 №886519 
А тут можно как-то делать общие проекты? Типа чтобы код могли открывать несколько человек сразу.
Аноним 14/07/23 Птн 23:55:34 #268 №886626 
>>886365
>делают игоры прямо на релиз-кандидате
ИГРАЛ В РАЗРАБОТКУ ИГР НА ПРЕАЛЬФЕ ДВИЖКА
@
ПРОИГРАЛ
Аноним 14/07/23 Птн 23:57:04 #269 №886627 
>>886519
>чтобы код могли открывать несколько человек
Для этого существуют системы контроля версий.
https://docs.godotengine.org/en/stable/tutorials/best_practices/version_control_systems.html
Аноним 15/07/23 Суб 00:13:32 #270 №886632 
>>886519
Я видел пару прототипов, но тема особо не взлетела
https://github.com/thimenesup/GodotNetworkedSceneEditor
https://github.com/godot-extended-libraries/godot-mixer
> код могли открывать
Если именно код, то можно воспользоваться какой-нибудь vs code там есть соответствующий режим.
Аноним 15/07/23 Суб 01:24:15 #271 №886652 
3D.gif
>>886632
Зачем это вообще нужно?
Можно ведь экран шарить.

>тема особо не взлетела
Потому что не нужно.
Аноним 15/07/23 Суб 17:02:36 #272 №886758 
Чем отличается key от key(physical)? Годот последней версии
Аноним 15/07/23 Суб 17:51:31 #273 №886764 
1409105azerty-qwerty[1].jpg
>>886758
Из мануала, встроенного в движок:
>bool is_physical_key_pressed ( Key keycode ) const
>Returns true if you are pressing the key in the physical location on the 101/102-key US QWERTY keyboard. You can pass a Key constant.
>is_physical_key_pressed is recommended over is_key_pressed for in-game actions, as it will make W/A/S/D layouts work regardless of the user's keyboard layout. is_physical_key_pressed will also ensure that the top row number keys work on any keyboard layout. If in doubt, use is_physical_key_pressed.

https://ru.wikipedia.org/wiki/Скан-код
>На клавиатурах другой раскладки (например, AZERTY) скан-коды соответствуют расположению клавиш: так, у французского A скан-код как у американского Q. Преобразованием скан-кодов в коды нажатых клавиш занимается ОС или BIOS.
Аноним 15/07/23 Суб 17:56:12 #274 №886768 
>>886758
Пока писал, анон выше уже ответил. Но все равно отправлю уж.
Если ты делаешь рогалик и тебе важно чтобы действие Apply происходило при нажатии на кнопку, на которой написано A, а действие Zap на кнопку, на которой написано Z, делаешь обычную.
А если делаешь платформер и тебе надо чтобы движение было на кнопках, которые находятся там, где в англ. раскладке WASD, а прыжок на кнопке под ними, где обычно находится Z, то физическую.
Аноним 16/07/23 Вск 06:03:31 #275 №886899 
Ну чё ёпта? Время тупорылых вопросов.
Решил освоить godot. Посмотрел гайдик RPG Items in Godot Engine!. Там чувак начинает с того что пишет:
export(String) var ITEM_NAME например. У него export высвечивается красным и работает, у меня ругается что "unexpected "Identifier" in class body". Пытался гуглить - нихуя. Смотрел доки на сайте годота и нашёл только @export. Гайд годичной давности может там поменялось что-то с этим экспортом. Как узнать что теперь с export? Как он работает? Или я туплю где-то?
Аноним 16/07/23 Вск 08:06:11 #276 №886901 
>>886899
Если там tool или export, то это для Godot 3
Если @tool или @export, то это Godot 4
Между ними много общего, но есть и различия.
Доки можно переключать между версиями.
Аноним 16/07/23 Вск 08:16:55 #277 №886902 
>>886901
Спасибо. Глянул и нашёл, что "tool или export" в старой версии, в новой именно @tool, @export.
Аноним 16/07/23 Вск 12:44:07 #278 №886937 
>>886902
Различий между 3 и 4 много. Ищи гайд именно под свою версию, а то заебешься переделывать.
Аноним 16/07/23 Вск 13:26:15 #279 №886952 
Прошел 80% курса "делаем свою первую 2д игру". Я нуб в программировании, и вроде бы многое понятно, а многое просто возникает из ниоткуда, и по тексту ощущение как будто я должен это всё сходу понимать. В итоге очень сложно, конечно.

До этого прошел курс ГДскрипта, и часто меня путало то, что вроде бы задача есть, ок, но многое как будто невидимое. Типа ты делаешь задачу, а там уже под ней какие-то вещи сделаны, и ты просто решаешь задачу а то что именно происходит сейчас и каким образом - неясно. В итоге как будто ничему не научился кроме каких-то базовых вещей "что такое array", "какие есть типы данных", "что такое функция" и базовый синтаксис. Сложно...
Аноним 16/07/23 Вск 14:25:05 #280 №886979 
>>886952
>До этого прошел курс ГДскрипта

что за курс?
Аноним 16/07/23 Вск 14:38:05 #281 №886982 
>>886979
Вот это:
https://gdquest.github.io/learn-gdscript/

Там немного.
Аноним 16/07/23 Вск 18:22:30 #282 №887072 
>>886952
Это нормально. Новой области с нуля так и обучаются.
То есть у тебя есть некие знания
..0...1...
Ты проходишь туториал и по разным вопросам у тебя знания вырастают
..2.1.3.21
Потом ты повторяешь какие-то моменты, в других туториалах или во время практики, начинаешь находить взаимосвязи
.14.325.26
Через некоторое время, 2 недели, месяц, многое забывается
.12..15.13
В этот момент повторяют материал, после чего он закрепляется и уже не так сильно забывается в будущем
.24.436.15
Парадокс в том, что если взять условную книгу по информатике где все рассказывается с нуля, с битов и байтов, с отливки процессора из песка результат будет похожим, ведь ты будешь забывать то незнакомое что прочитал.
Поменяется только форма, допустим ты читал с начала
43121...1..
Условно говоря, чтобы сделать игру, тебе в любом случае нужен определенный набор знаний. А какие-то возможно не пригодятся, но все равно набор довольно универсален между разными программами и разными людьми.
XXX..XX.XX
Так что вопрос только в пути, каким ты туда доберешься.
Аноним 16/07/23 Вск 23:40:31 #283 №887158 
>>886899
Если учишься по гайдам для третьей версии, то и юзай третью версию. Освой сначала её, потом перекатиться на четвёрку успеешь. Самостоятельно адаптировать гайды под четвёртый Годот на твоём уровне знаний может быть слишком сложно, не рекомендую.
Аноним 17/07/23 Пнд 03:03:55 #284 №887170 
image.png
Нахуй так жить? Ваше мнение?
Аноним 17/07/23 Пнд 09:37:44 #285 №887188 
>>887158
А можно где-то почитать все изменения синтаксиса годота? По патчнотам искать не хочется, а хочется список, в котором например слева export, а справа @export. Ну и какой-нибудь комментарий для более сложных вещей которые сильно поменялись типа TileMap
Аноним 17/07/23 Пнд 10:07:26 #286 №887191 
>>885092
>- онлайн-доски рекордов;
Допустим?
Аноним 17/07/23 Пнд 12:39:05 #287 №887207 
>>887170
> Ваше мнение
Я возмущен до глубины души! Почему они не делают инструментов для интеграции своего физ-движка? Ведь очевидно же ,что несмотря на опенсорсность годота, подавляющее большинство игор будет релизиться под собственническими лицензиями. Вот и дали бы тогда АПИ для интеграции проприетарной физики ХАВОК, например. Вопросы закупки лицензий остаются на совести геймдевелоперов. Нет, блять, сидели, изобретали велосипед, который не получился.
Аноним 17/07/23 Пнд 12:41:16 #288 №887208 
>>887170
10 лет пиздели про модульность движка, и на выходе имеем, что самая важная часть - физика - не модульна, прибита гвоздями, невозможно легко подключить свою.
Аноним 17/07/23 Пнд 13:12:39 #289 №887216 
>>887208
>невозможно легко подключить свою.
>буквально ссылка на аддон где легко подключили свою
Хм, что-то с твоим утверждением не то.
Аноним 17/07/23 Пнд 13:36:09 #290 №887225 
>>887216
Да я просто по ссылке не ходил. Ну если свою легко, тогда да, сорян. Дайте мне ссылку на подключение хавока. Хавок хочу.
Аноним 17/07/23 Пнд 15:02:49 #291 №887238 
>>887208
>самая важная часть - физика
Схуяли?
Назови 5 игр, где физика используется в геймплее хотя бы на уровне Халф-Лайф 2.
Аноним 17/07/23 Пнд 15:13:52 #292 №887249 
Дублирую вопрос из вопросотреда, мне анон посоветовал уточнить здесь. Я хочу сделать рогалик - эдакий клон ДФ. В качестве основного принципа я хочу использовать ECS. Мне для быстрой реализации анон посоветовал по принципу MVP запилить свою ECS либо через GDExtentions, либо через модуль годота, либо через шарп. Что вы, анончики, как специалисты годота думаете по этому поводу?
Аноним 17/07/23 Пнд 16:13:16 #293 №887260 
>>887249
Я неспешно пилю игрушку на таких принципах, подход рабочий.
Пробовал разные сишные либы, остановился на flecs. Entt чем то не понравился.
Скриптом собираю игровую логику в .so (на винде была бы .dll), сам flecs собран один раз и каждый раз не перекомпилируется.
Второй этап - scons собирает gdnative библиотеку (у меня годот 3, но в 4 то же самое +- с gdextensions). Эта либа-обертка.

Таким образом примерно выходит, что игровая либа - это чисто model, она ничего не знает о годоте. Она занимается игровым миром, юнитами/персонажами, их здоровьем, снаряжением, уроном и т.д.
Обертка же мало что знает об игре, но знает о годоте через godot.hpp. Ее задача в основном дергать тик игрового мира, передавать команды в игру, и возвращать массивы объектов для отображения. так что она примерно view-controller.
Сам же гуй на гдскрипте, и он уже может спокойно обращаться к обертке как будто бы она тоже на гдскрипте.

Некоторые вещи я еще не продумывал, например спецэффекты, события, но это вроде решаемо.
Аноним 17/07/23 Пнд 16:32:31 #294 №887266 
>>887249
Рекомендую для начала забить на оптимизацию и все мудрёные технологии. Это ведь твоя первая игра? Или первый рогалик? Попробуй сделать на GDScript и других встроенных инструментах 2D поле, по которому игрок может ходить и что-то делать. Проверь свои гениальные геймдизайнерские идеи и убедись, что они они не работают так, как ты нафантазировал. Жонглируя идеями, делай множество прототипов в поиске того самого, который можно превратить в полноценную игру. Когда наиграешься в свой прототип, будешь переписывать с нуля на тех технологиях, которые посчитаешь нужным в соответствии с полученным из прототипов опытом.

Вот Katabasis в соседнем треде делал на ECS, и что? Геймплей не вылизан, баланса нет, куча абсурдных багов и всё это дико тормозит, а автор признался, что ECS только задерживает всю разработку.

Касательно MVP, делать модель в отрыве от всего можно только если ты чётко знаешь, какой должна быть твоя модель (что в ней есть, по каким правилам работает, какие состояния может принимать и т.д.). В геймдеве так не бывает, за исключением совсем простеньких игр. Лучше сделать несколько механик тяп-ляп за пару дней и убедиться, что они тебе вообще не нужны, чем несколько месяцев делать оптимальную модель всей игры вслепую и потом не понимать, почему получилось унылое говно.

Простой рогалик на Godot делается легко и просто, оптимизировать там нечего. Это ведь не стратегия с тысячами независимых юнитов, в рогаликах редко встречается даже десяток юнитов в одном месте.
Аноним 17/07/23 Пнд 16:43:03 #295 №887271 
>>887260
>неспешно пилю игрушку на таких принципах
>игровая либа - это чисто model, она ничего не знает о годоте. Она занимается игровым миром, юнитами/персонажами, их здоровьем, снаряжением, уроном и т.д.
Мне интересно, как выглядит твой цикл разработки?
1. Написал +100500 строк кода в библиотеку;
2. Отошёл поесть пока код компилируется;
3. Запустил игру...
4. Играешь...
5. Записываешь баги в блокнот?..
6. Исправляешь баги в библиотеке?..
Сколько дней занимает одна итерация цикла?

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

А переписать готовую игру с чёткими алгоритмами хоть даже на ассемблер всегда успеешь.
Аноним 17/07/23 Пнд 16:49:00 #296 №887272 
>>887188
>почитать все изменения синтаксиса годота
>хочется список
Документацию ты не открывал?
https://docs.godotengine.org/en/stable/tutorials/migrating/index.html
https://docs.godotengine.org/en/stable/tutorials/migrating/upgrading_to_godot_4.html
Аноним 17/07/23 Пнд 17:09:29 #297 №887274 
>>887238
>Назови 5 игр, где физика используется в геймплее
GTA 3, GTA VC, GTA SA, GTA IV, GTA 5.

>>887170
Godot Physics - глючный и тормознутый.
Bullet Physics - проверенный временем и быстрый.
Jolt Physics - по сообщениям самих авторов - до сих пор в состоянии недоделки с принципиально нерешаемыми проблемами и ограничениями. Компенсирует только многопоточностью, ради которой они этот велосипед изобрели, вместо прикручивания многопоточности в Bullet.

>>887207
>инструментов для интеграции своего
Каких инструментов, лалка? Если ты такой маэстро клавиатуры, иди строчи GDExtension модуль. А если ты новичок без опыта кодинга, то бери что есть.

>>887208
>самая важная часть - физика - не модульна
Во-первых, в 3.x физика - это модуль движка, берёшь и пишешь свою или подключаешь стороннюю, но с перекомпиляцией движка.
Во-вторых, в 4.x переделали GDNative в GDExtension в том числе чтобы подключать стороннюю физику без перекомпиляции движка.

>>887225
>Дайте мне ссылку на подключение хавока.
Сам пиши. Хавок платный. Купи хавок и пиши.
Аноним 17/07/23 Пнд 18:16:10 #298 №887285 
>>887260
Спасибо
>>887266
Я хочу ECS в первую очередь из-за самого подхода, мне нравится идея систем, которые обрабатывают все элементы по очереди и что можно например тупо добавить компонент "лучник" орку и получить орка-лучника. Ну и я хочу всё таки что-то дфо подобное, то есть иметь возможность обрабатывать как раз тысячи субъектов, которые способны взаимодействовать между собой без вмешательства игрока.
Аноним 17/07/23 Пнд 18:40:06 #299 №887292 
>>887285
>тупо добавить компонент "лучник" орку и получить орка-лучника
Для этого не нужен ecs, для этого даже ec подойдет, то есть архитектура годота с нодами.

Ты короче дегенерат, а так пиши естественно как хочешь.
Аноним 17/07/23 Пнд 18:48:16 #300 №887295 
>>887285
>можно например тупо добавить компонент "лучник" орку и получить орка-лучника
В ООП это решается композицией/агрегацией. Никто не хардкодит орка-лучника, орку просто дают лук.

>дфо подобное
>тысячи субъектов
DF я лично ниасилил из-за нечитабельной графики, но слышал, что DF пожиже и пониже, чем RimWorld, который на юнити и у которого от силы десяток юнитов на базе, не считая животных и растений.

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

>>887292
Не ругайся на новичков. У нас тут
>тред любви, взаимопомощи
Аноним 17/07/23 Пнд 18:50:34 #301 №887296 
>>887295
С одной стороны пожиже, а с другой там где ДФ имеет крепость в эдак сотню бород, Римворлд начинает попёрдывать на десятке колонистов. Спасибо, буду думать.
Аноним 17/07/23 Пнд 18:58:14 #302 №887297 
>>887296
>ДФ имеет крепость в эдак сотню бород, Римворлд начинает попёрдывать на десятке колонистов
Нужно смотреть на то, что вокруг этих юнитов происходит. Недавно читал где-то, что в DF животные ничего не едят и не умирают от голода, растения не растут и ещё куча систем просто отсутствует. Т.е. ресурсы ЦПУ по-разному распределены между системами игр. Ну и DF вроде на чистом C написан, ближе к железу.

Конечно, если тебе обязательно нужна масштабность, то рано или поздно придётся делать низкоуровневые оптимизации или даже переписывать код. Но прежде чем замахиваться на масштабность, нужно создать хоть что-то, что может стать игрой, если ты, конечно, не планируешь один-в-один копировать уже существующую игру, которую ты очень хорошо знаешь.
Аноним 17/07/23 Пнд 19:05:13 #303 №887298 
>>887296
Короче, вот:
https://habr.com/ru/companies/miip/articles/308286/
>2. Прототипирование (Prototyping)
>Важный этап проектирования любой игры – это создание прототипа. То, что хорошо выглядит «на бумаге», совершенно не обязательно будет интересно в реальности. Прототип реализуется для оценки основного игрового процесса, проверки различных гипотез, проведения тестов игровых механик, для проверки ключевых технических моментов.
>Очень важно на этапе создания прототипа реализовывать только то, что нужно проверить и в сжатые сроки. Прототип должен быть простым в реализации, т.к. после достижения поставленных перед ним целей, он должен быть «выкинут». Серьёзная ошибка начинающих разработчиков – нести временную инфраструктуру и «костыли» реализации кода в основной проект.
Godot максимально заточен под прототипирование, поэтому его так часто используют на геймджемах и даже крупные студии присматриваются.
Аноним 17/07/23 Пнд 20:12:51 #304 №887309 
>>887271
Написал же - неспешно.
Ты сильно переоцениваешь время компиляции.
Я специально замерил сейчас, 7 секунд на некроноуте. На более современном компе это будет мгновенно.
Я там не просто так упомянул .so/.dll. Статической линковки нет, это значит, что при каждом запуске я не персобираю годот, враппер, флекс, небо и аллаха, а только игровую логику.
Ну и да, я записываю в блокнот баги, это же не аркада с одним спрайтом на геймджем, а игра с глубоким и богатым геймплеем. Но блокнота пока хватает.
Цикл проверки в рогаликах какбе тоже небыстрый. Катка полчаса занимает минимум. Как раз норм время почуствовать разницу если изменил баланс.
И да, заметное время разработки вообще проходит в блокноте и экселе. Рассчитать там всякие графики, сколько золота доступно на каком уровне и сколько стоят шмотки и сколько монстров встретится.
Аноним 17/07/23 Пнд 20:23:25 #305 №887312 
>>887271
> переписать готовую игру с чёткими алгоритмами хоть даже на ассемблер всегда успеешь.
Также у меня по прежнему в планах (до сих пор не добрался) машинное самоообучение, когда комп играет сам с собой партии. Собственно, я на этом и хочу сфокусировать разработку, на игровом ИИ, а сама игра тут сбоку побоку. А это значит, что при кратном ускорении обсчета, будет сыграно кратно больше партий.
Мне просто нет смысла тратить время на написание прототипа и переписывание на ассемблер, если я сразу могу писать на сях. Не отрицаю, что такое не всем нужно.
Аноним 17/07/23 Пнд 21:00:50 #306 №887328 
Появился конкурент у ххтеррейна
https://www.youtube.com/watch?v=Aj9vWIEaFXg
https://github.com/outobugi/Terrain3D
Конкуренция. Хорошо!
Аноним 17/07/23 Пнд 21:35:21 #307 №887332 
>>887328
О, выкатили, полгода взакрытую пилили.
Жаль, что 4-ка на моем ноуте совсем перестала запускаться (дрова на вулкан поломались когда линукс обновлял)
Аноним 17/07/23 Пнд 22:31:41 #308 №887346 
Есть советы, как визуально реализовывать 2d лестницы? Желательно без изменения анимации игрока, а то + 2 получается на шаг и бег, иначе часть спрайта персонажа как бы висит в воздухе. Какие есть хитрости фикса этого?
Аноним 17/07/23 Пнд 22:33:17 #309 №887347 
>>887332
Переустанови.
Линукс не шиндовс. Просто укажи ему папку home и он переустановится с сохранением твоего профиля, даже права на файлы не похерит. Ваще красота, по божески, по людски, в отличие от венды сраной, в которой пользователи прописаны в ФС уникальными ГУИДами.
Аноним 17/07/23 Пнд 22:33:32 #310 №887348 
>>887274
>GTA 3, GTA VC, GTA SA, GTA IV, GTA 5
Тебе же сказали "игры", а не кино
Аноним 17/07/23 Пнд 22:34:14 #311 №887349 
16890796778590.png
>>887347
Аноним 17/07/23 Пнд 22:34:33 #312 №887350 
>>887346
> 2d лестницы?
Забежные или приставные?
Забежные - это просто склоны. Приставные - это просто полёт.
Аноним 17/07/23 Пнд 22:36:37 #313 №887351 
>>887348
Воу, чувак, попустись. В ГТА есть геймплей. Это тебе не сони-эксклюзивы, вот где кинцо так кинцо с синематиками на полчаса.
Аноним 17/07/23 Пнд 22:38:09 #314 №887352 
>>887350
Забежные. В передвижении проблем нет, речь именно про визуал
Аноним 17/07/23 Пнд 22:42:22 #315 №887356 
>>887352
Ну и как ты визуал будешь реализовывать без анимаций? В соседнем треде тебе верно написали, хоть и с сарказмом. Садись и пили анимацию переступания по ступенькам.
Аноним 17/07/23 Пнд 23:08:00 #316 №887361 
>>887347
Так это я уже переустановил. Ну там не совсем так гладко было, проги и аддоны к ним я предпочел заново установить, как и с профилем фаерфокса пришлось пошаманить. Но тут проблема в железе, работает только со старым драйвером, и то 4-ка запускалась только в режиме опенгл. А после обновления в старом драйвере что то пошатали. А назад откатиться нельзя из-за другой нужной проги, которой понадобился линукс посвежее. Да пофиг, 3-ка меня устраивает для всех текущих проектов, а 4-ка пылится на компе для АА+ игры мечты в будущем.
Аноним 17/07/23 Пнд 23:09:12 #317 №887362 
>>887346
Боком его поверни.
Аноним 17/07/23 Пнд 23:36:51 #318 №887371 
>>887361
> другой нужной проги, которой понадобился линукс посвежее
На эти случаи возможно стоит appimage рассмотреть? Хуита богомерзкая, понимаю, зато будет работать без ебли с ядрами-либами-версиями.
Аноним 17/07/23 Пнд 23:45:56 #319 №887379 
Screenshot3 (3) - Copy.png
Сколько сидел ждал четвертый годот.
И вот долгожданный момент.
Качаю, предвкушаю, пробую - вкус сырой недоношенной залупы. Хуево инегрированный шарп, уебищная физика, огрызок рендера и все это под соусом поломанной совместимости. Ладно бы самые базовые тулзы по человечески сделали, как импорт моделей и иже с ними, но какая же это по прежнему мозгоеботня перенести что-то из блендера, ебите меня семеро.
Ебал я его рот, нахуй так жить. Меня из движков только от годоты блевать не тянуло, а по факту нескольких лет ожиданий - вот тебе дохуя общеаний и крутых фич в зачаточном состоянии которые доделаны будут точно не при твоей жизни.
Ебаный пиздос.
Аноним 18/07/23 Втр 01:32:49 #320 №887400 
>>887379
>нескольких лет ожиданий
Если бы ты ожидал не жопой, а глазами, то видел бы официальные заявления что продакшн-реди будет позже, а 4.0 это такой совместимость-ломающий сырой майлстон, который необходимо было родить чтобы двигаться дальше.

Но теперь, когда он рожден, движуха пошла быстрее. 4.1 уже релизнулся. Приходи где-то так к 4.3, или 4.4
Аноним 18/07/23 Втр 16:03:27 #321 №887517 
>>887379
>Хуево инегрированный шарп,
Не нужен. Хочешь производительность - пиши на C.
>уебищная физика,
Какой была, такой и осталась, только баги фиксили.
>огрызок рендера
Да вроде получше выглядит, чем раньше.
>и все это под соусом поломанной совместимости.
Зато в GDScript теперь больше возможностей.
Ещё переработали API для подключения библиотек.
>мозгоеботня перенести что-то из блендера
Ну хрен тебя знает, я вообще obj формат юзаю.
Аноним 18/07/23 Втр 16:14:51 #322 №887519 
i1.jpg
i2.jpg
i3.jpg
>>887346
>спрайта персонажа как бы висит в воздухе
>>887352
>Забежные. В передвижении проблем нет
Добавь на передний план массивные перила, которые будут перегораживать собой обзор на нижнюю половину спрайта персонажа. Если игрок не видит ступенек и ног персонажа, то он сам мысленно дорисовывает правильную картинку.
Аноним 19/07/23 Срд 01:46:57 #323 №887716 
>>887348
Да даже не в этом дело. Чел назвал одну игровую серию. В контексте заданного вопроса это считается одной игрой.
Хотя, я бы не сказал, что там физика на уровне ХЛ2, всё-таки большинство машин там ездит по рельсам и переключается на физику только для взаимодействия с игроком. И то не всегда.

>>887350
>Забежные или приставные?
Ох, анонче! Спасибо тебе, что знаешь такие слова. Теперь я тоже знаю и буду употреблять. А то вечная проблема с различением stairs и ladders.

>>887295
>DF
>RimWorld
Интересно, почему с ними никогда не сравнивают Симс? Это же по сути то же самое.

>>887352
Как вариант: синхронизировать анимацию персонажа с его глобальными координатами. И добавить условие, что на лестнице можно остановиться только в квантованных позициях.
Хотя имхо над этим нет смысла заморачиваться, анон >>887519
прав.

>>887379
>ждал
Ожидание приводит к разочарованию, разочарование рождает ненависть, ненависть - к Тёмной стороне путь.
А вообще, бро, мир не идеален. Если идею (игру) не воплощать с тем, что имеем, то она не воплотится никогда.

>>887371
>appimage Хуита богомерзкая
>Godot тред
Просто напоминаю, что Годо распространяется, по сути, в виде аппимеджа.
Осло, поговаривают, при проблемах с вулканом может на завестись даже аппимиджевая прога.

>>887361
>проблема в железе, работает только со старым драйвером
А в чём проблема накатить старый драйвер? У меня на ноуте подобная херня: нвидяха пытается выкачать драйвер, в котором поддержка этой модели карты уже отсутствует, приходится ручками переставлять более старый.

Упс, простите за портянку, чёт захотелось везде высказаться.
Аноним 19/07/23 Срд 12:40:58 #324 №887774 
В сцене есть две просто "Button" и две "MenuButton". Фокус переключается стрелками между ними. Проблема в том, что фокус с "Button" не перепрыгивает на "MenuButton", а просто катается меж двумя кнопками одного типа. Как бы сделать чтобы можно было по всем кнопкам фокуситься через клавиатуру?
Аноним 19/07/23 Срд 15:18:22 #325 №887853 
>>887774
Там довольно прямолинейная система без особых наворотов. У каждой кнопки есть свойства следующая, предыдущая. А так же слева-справа-снизу-сверху. Никаких табгрупп или подобного.
Если добавляешь/удаляешь динамически, то и назначать надо динамически из скрипта, как в линкед листе
Аноним 19/07/23 Срд 15:37:26 #326 №887865 
>>887716
>Интересно, почему с ними никогда не сравнивают Симс? Это же по сути то же самое.
Симс - это кукольный домик для маленьких девочек (целевая аудитория). Он не даёт игроку хардкорных испытаний и в нём нет боёвки. Кроме того, здания в Симс строятся игроком по волшебству, то есть симсы не бегают за материалами для постройки стен.

В общем, даже если система симуляции жизни чем-то похожа, остальные механики отличаются.

Даже жанры разные. DF, RimWorld, ONI - это так называемые "симуляторы колоний", а Симс классифицируют как "социальный симулятор".
Аноним 19/07/23 Срд 19:40:35 #327 №887963 
>>887865
Тащемта всё равно геймелей этих симуляторов колоний сводится к личным качествам колонистов и их взаимоотношениям. Ыыы мой возлюбленный Урист умер, пойду бить морды тем, кто остался жить. Ну и главное, что объединяет эти игры, - они все генерируют истории.
И да, Симс не "кукольный домик", эта игра была песочницей задолго до того, как это слово закрепилось за жанром.
Сук джва года хочу сделать на Годо клон Симов, здешняя система нод будто специально для такого создана. Но занят другим проектом, эх. Да и слишком масштабно это. И ещё страшно представить, как подобная игра будет попёрдывать на движке общего назначения.
Аноним 20/07/23 Чтв 02:49:33 #328 №888109 
>>887853
Ебать мой хуй. Посмотрел, там на вкладке фокус можно его расставить как нужно. Спасибо. А то Я уже вчера думал скрипт писать.
Аноним 20/07/23 Чтв 08:12:07 #329 №888125 
Попытался последовать примеру >>887260, но меня киберунизил вижуал студио с твёрдым отказом линковаться с вроде бы верно собранным флексом, подключенному по офф туториалу. В связи с чем вопрос: чяднт? что можете сказать про эту https://github.com/Byteron/RelEcs либу? Ещё не успел попробовать, но перспектива избежать нежного секса с линковкой и собираемыми по отдельности зависимостями флекс -> игровая логика -> обёртка над логикой -> гуйня, а работать только в одном годоте - привлекает.
Аноним 20/07/23 Чтв 09:44:33 #330 №888136 
>>888125
Хотя я задумался и поискал, и нашёл что есть довольно много не юнити C# библиотек ECS, а по https://github.com/Doraku/Ecs.CSharp.Benchmark она не самая и быстрая, надо думать короче.
Аноним 20/07/23 Чтв 15:34:41 #331 №888192 
>>888125
Я не пользовался студией и у меня проект собирается cmake. Соответственно сам flecs подключен как часть моего проекта

cmake_minimum_required(VERSION 3.23)
project(roguelike)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

add_subdirectory(thirdparty/flecs)
include_directories(thirdparty/flecs/include)

add_library(roguelike SHARED src/main.cpp)

target_compile_options(roguelike PRIVATE "-Os")

target_link_libraries(roguelike PRIVATE flecs)

install(TARGETS roguelike DESTINATION bin)

Команды сборки примерно такие

cmake -S .. -B . -DCMAKE_C_COMPILER=clang-16 -DCMAKE_CXX_COMPILER=clang++-16 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../
cmake --build . --target install

Вообще при линковке надо проверять - чтобы у всех либ совпадало Debug/Release, однопоточное/многопоточное, и в случае студии, чтобы совпадало статическая/динамическая линковка (MT/MD)

Multithreading (/MT), multithreaded Debugging (/MTD), multithreaded DLLs (/MD), multithreaded debug DLLs (/MDD), single-threaded (/ML), Single-threaded debugging (/MLD).

Ну и в vcpkg flecs есть, если умеешь им пользоваться.
Аноним 20/07/23 Чтв 15:41:41 #332 №888196 
>>888192
Спасибо, я попробую ещё раз, но когда сходу приходится накушаться говна, за которое я плюсы и не люблю, то мотивация использовать их как-то вянет. Я так-то люблю плюсы, я на работе на них пишу, но слава Богу что сборкой занимаюсь не я и мне достаточно всего лишь запустить make target. Ещё немного задело что либткод для плюсов на древнем стандарте без нормальной доки
Аноним 20/07/23 Чтв 15:54:25 #333 №888201 
>>888196
Ну, ты разберись как нибудь, это сишникам всегда полезно, понимать весь путь который проделывает код и становится конкретными байтами. Там нет магии.
Аноним 20/07/23 Чтв 16:44:40 #334 №888224 
>>888125
>работать только в одном годоте - привлекает
Ну вот и работай. Вроде был какой-то модуль для Godot ECS.
Да и зачем тебе этот ECS... У тебя диздок к игре уже готов?
Аноним 20/07/23 Чтв 17:17:21 #335 №888233 
>>887963
>И да, Симс не "кукольный домик", эта игра была песочницей
ИРЛ кукольный домик - это самая настоящая песочница в терминах видеоигр. Симс - виртуальный кукольный домик, который даже выглядит как настоящий - со "срезанными" стенами, только куклы сами двигаются. Вопросы?

>это слово закрепилось за жанром
"Песочница" - это не жанр, а характеристика игры относительно её линейности и реиграбельности. Если игра даёт тебе всего один коридор с одними и теми же врагами, которых обязательно нужно убить - это не песочница. Если игра даёт тебе сотню мест, куда можно пойти, и сотню дел, которыми можно заняться, и не тащит за уши по обязательному сюжету, давая возможность идти и заниматься чем угодно в любом порядке - это 100% песочница. К какому конкретно жанру относится конкретная песочница значения не имеет. При этом между этими полюсами существует куча промежуточных вариаций, от полностью коридорной до полностью песочковой игры.

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

>здешняя система нод будто специально для такого создана.
Что в ней такого особенного? Вроде бы в других движках +/- похожая система дерева сцены. К тому же, только недавно начали оптимизировать дерево сцены и работу с нодами, многопоточность всё ещё в экспериментальной стадии, а без этого движок рано или поздно упирается в производительность ядра, если ты спамишь слишком много нод или слишком часто и большими пачками что-то с ними делаешь. Но для создания домиков а-ля Симс 1 можно использовать GridMap, т.е. минимизировать число нод в дереве.

>Да и слишком масштабно это.
The Sims 1 без DLC повторить сравнительно легко. Там же почти ничего нет...

>И ещё страшно представить, как подобная игра будет попёрдывать на движке общего назначения.
А это уже не от движка зависит, а от твоих знаний и навыков, способности находить и решать проблемы.
Аноним 20/07/23 Чтв 17:31:12 #336 №888236 
>>887716
> Годо распространяется, по сути, в виде аппимеджа
Эммм, это ложь. То что распространяемое приложение обладает минимумом зависимостей, не значит, что оно упаковано в контейнер с зависимостями. Ты можешь легко убедиться в этом дебаггером любым.
Я отдельно отмечу, что речь идет о приложении, которое скачивается с офсайта. В репозиториях мантайнеы могут перепаковывать на все лады.
Аноним 20/07/23 Чтв 17:48:54 #337 №888238 
>>888236
>упаковано в контейнер с зависимостями
А что в этом плохого? На Windows тоже пытались сделать общедоступные DLL - чтобы приложения не качали лишнего, используя уже имеющиеся у системы библиотеки, а в результате сегодня каждый суёт свои версии DLL в папку своего приложения, потому что на машине пользователя может быть какая-то слишком древняя или слишком современная версия той же DLL, с несовместимым API. Древним играм приходится подсовывать правильные DLL в их папку, т.к. их делали в эпоху, когда некий мёртвый сегодня софт считался эталоном и был везде в системной папке...

мимо несколько раз выпал в кернел паник и снёс линукс до лучших времён
Аноним 20/07/23 Чтв 18:20:31 #338 №888244 
>>888201
Придётся...
>>888224
> Да и зачем тебе этот ECS
Потому что я вбил себе в голову что он мне упростит жизнь, а теперь я вложил в это слишком много времени, чтобы сдаться не достигнув хоть какого-то результата.
> У тебя диздок к игре уже готов?
Есть туманное представление что я хочу. Для начала хочу базу в виде клона DCSS на минималках сделать, потом уже думать что сделает мою игру уникальной и интересной игроку
Аноним 20/07/23 Чтв 21:56:29 #339 №888288 
>>888192
Спасибо, с твоими командами и смейком получилось. Но не в вижуал студио, и не при помощи vcpkg, а в clion консольными командами. Пиздос вообще, не зря всяким дево-псам платят такие деньги.
Аноним 20/07/23 Чтв 22:18:54 #340 №888292 
>>888288
Я б тебе помог, но я давно ничего про студию не помню, перешел сначала на vscode а потом на линукс.
Но я забыл посоветовать самый очевидный способ.
Дело в том, что flecs это просто .c и .h в корне гитхаба, их можно просто кинуть в проект и собирать как хочется. Вообще без билдсистем. В хедере примерно со 140 строчки есть дефайны конфигурации, но c++ интерфейс там включен по умолчанию.
Аноним 20/07/23 Чтв 22:33:00 #341 №888296 
>>888292
Хотелось по уму, по красоте сделать. Ну да ладно, проблема решена
Аноним 20/07/23 Чтв 23:38:02 #342 №888307 
>>888238
> А что в этом плохого?
Ничего.
Просто анон выше сказал неправду, солгал, напиздюнькал, сечёшь? И я ему на это указал. В линуксе есть несколько платформ, предоставляющих самораспаковывающиеся приложения-контейнеры со всеми нужными либами-зависимостями (и даже со своим ядром, если я правильно понял), но Годот с официального сайта не распространяется таким образом, там нативное elf-приложение и если у юзера слишком древний линукс, или слишком новый, или самосборный LFS-франкенштейн со своими цепочками зависимостей внутри системы, то этот годот не запустится, но в линукс-мире всегда можно собрать из исходников. И есть сторонние репозитарии appimage и snap приложений, в который есть сторонние сбоpки годота в виде контейнеров.
> их делали в эпоху, когда некий мёртвый сегодня софт считался эталоном и был везде в системной папке
В шиндовсе с древних времён существует незыблемый механизм поиска либ.
1. В том же месте, где приложение.
2. В системных папках венды.
3. В папках переменной окружения PATH по списку.
На пункте 1 основаны всевозможные решейды игор, когда в папку с игрой подкидывается загрузчик в виде direct3d.dll который прогружает свои свистелки-перделки, а потом транслирует вызовы игоры в настоящую direct3d.dll которая в папке system.
Аноним 21/07/23 Птн 01:58:09 #343 №888326 
>>882096 (OP)
Геймдевелоперы, помогите, пожалуйста. Вот у меня есть сетка, по которой прокладывается путь A* и мне нужно закрывать некоторые ячейки сетки, которые пересекает коллизия определенных нод. Как закрывать ячейки я знаю, а вот как найти все ячейки, в которые попадает CollisionShape2D ноды - нет.
Аноним 21/07/23 Птн 08:35:48 #344 №888339 
>>888326
ЯННП!
Но попробуй увеличить вес нодам астара.
Аноним 21/07/23 Птн 09:07:04 #345 №888344 
Бля какое же самообучение пиздец просто.
Нужно было добавить кастомный ресурс в массив и потом вывести данные ресурса (имя и т.д) уже из массива. Звучит просто и по сути так и есть. Я несколько часов ебался. Сначала как загрузить ресурс и сменить ему данные, потом как загрузить ресурс в массив, как вывести конкретные данные ресурса из массива. В итоге "items[index].Name" вот и всё. Я сук нах кучу туториалов пересмотрел по массивам и все они на пять - восемь минут про базовые вещи. Ни в одном про ресурсы в массиве нет. Еле как сам допетрил точку и имя параметра написать типа вдруг заработает. Заработало. Это пиздец. Был бы учитель он бы меня отпиздил быстренько и объяснил где я не прав. А так приходится всё самому.
Аноним 21/07/23 Птн 09:30:29 #346 №888347 
>>888344
Полученное тобой знание ценнее. Ты это теперь не забудешь. А если бы я тебе об этом сказал, ты забыл бы через час.
мимоучитель безучеников
Аноним 21/07/23 Птн 10:00:34 #347 №888348 
>>888347
Ну так-то в этом есть истина. Выстраданные знания легче запоминаются. Но всё равно чувствую себя макакой изобретающей велосипед.
Аноним 21/07/23 Птн 10:06:33 #348 №888349 
>>888348
Ну вот тогда тебе лайфхак, который когда-то я лично сам выстрадал без посторонней помощи, а потом обнаружил, что эту банальную вещь все и так знали:
Если тебе нужно получить условие, то ты можешь присвоить булевой переменной логическое выражение.
То есть, вместо
> if a>b: return true; else: return false
можно написать сразу
> return a>b
Аноним 21/07/23 Птн 10:21:30 #349 №888350 
>>888349
Хаха. Ну это пиздец конечно. Но спасибо. Я запомню.
Аноним 21/07/23 Птн 12:05:14 #350 №888378 
>>888344
Такова жизнь. Школка и (чуть менее) вуз должны тебя в первую очередь научить учиться. Дальше сам. И чем более сложное делаешь, тем меньше вокруг людей, которые могут тебе хоть что-то пояснить.
Аноним 21/07/23 Птн 15:41:22 #351 №888410 
>>888244
>вбил себе в голову что он мне упростит жизнь
Ээээ... Ну, как бы сказать... Привыкнуть ко всему можно... Наверное...

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

>Есть туманное представление что я хочу
>потом уже думать что сделает мою игру уникальной и интересной игроку
Это крайне рискованный подход. Во-первых, ты не знаешь пока, сможешь ли ты продумать своё туманное представление до мелочей или нет. Во-вторых, по мере продумывания может оказаться, что тебе какая-то из уже реализованных систем вовсе не нужна, или что-то нужно с нуля переделывать, или вообще тебе этот жанр/стиль не подходит и нужно делать что-то другое.
Аноним 21/07/23 Птн 16:32:59 #352 №888425 
>>888326
>как найти все ячейки, в которые попадает CollisionShape2D ноды - нет
Если у тебя сетка на TileMap, попробуй с помощью Area2D регистрировать, какие конкретно шейпы тайлмапы входят и выходят в твою Area2D. Там специальный сигнал для этого есть. Но это если у тебя прям какая-то мудрёная шейпа, а не круг.

Для круга можно сделать всё намного проще. Нужно просто проверять, к какой точке сетки центр круга ближе всего, а потом, при желании, проверять радиус круга, если он сильно больше размера одной ячейки. Персонажи в 2D игре с видом сверху обычно мельче одного тайла, так что скорее всего тебе не нужно проверять радиус.
Аноним 21/07/23 Птн 16:57:21 #353 №888433 
>>888344
>восемь минут про базовые вещи. Ни в одном про ресурсы в массиве нет.
Вот ты базу не усвоил и поэтому так долго не мог понять банальную вещь.

Переменная - это как бы виртуальная коробка с каким-то предметом внутри:
>a = 0
Массив - это целый склад пронумерованных коробок, в каждой какой-то предмет:
>a[0] = 0
>a[1] = 1
Классы и словари - это склад с коробками, но вместо номеров у них есть имена:
>player.health = 100
>enemy.dead = true
Обращаться можно последовательно к вложенным объектам:
>map.tile[0][1].water = 0
- это "на складе map склад tile, в нём склад 0, в нём склад 1, в нём коробка water".

Предметом может быть нечто-то конкретное - число, буква, флажок "да/нет":
>a = 0
>b = 'b'
>c = true
А может быть ссылка на другую коробку - указатель, как адрес на карте города:
>player1 = get_node("Player") # запрос на ссылку на склад "игрок"
>player2 = get_node("Player") # тот же запрос на тот же склад - та же ссылка
Это две разные коробки, но ссылка в них на один и тот же склад "игрок":
>player1.health = 50
>print(player2.health) # выведет 50, т.к. это один и тот же склад
В Godot ссылки очень часто используются, но не везде, это нужно иметь в виду.

Ссылка может вести в никуда, как здесь:
>player = get_node("Player")
>player.queue_free()
>...
>player.name # должно вызвать ошибку доступа, т.к. склад "игрок" ликвидирован
Потому что player - это коробка со ссылкой на склад, а он может не существовать.
Как если ты читаешь в газете "на улице Ленина открылся магазин", а его там нет.

"Ресурс" в Godot - это просто класс, т.е. склад с именованными коробками:
>items[index].name
- "достать со склада items коробку с номером index и в ней найти коробку name".
Хотя, если точнее, там будут переходы по ссылкам, но мне лень описывать...
Аноним 21/07/23 Птн 17:10:54 #354 №888434 
>>888410
Я понимаю, но мне скорее в принципе процесс более-менее доставляет, кроме того я чему-то да учусь в процессе
Аноним 21/07/23 Птн 17:49:19 #355 №888443 
https://youtu.be/DL79aS-dT7E

Есть вот такой аддон. Вроде все интуитивно понятно, он всё объясняет как делать бренчинг диалоги и просто синтаксис, всё удобно понятно и так далее. Но я в годоте 3 дня и не понимаю, а как собственно эти диалоговые ноды к игре привязать? К каким нодам? Как через скрипт это вызывать? Короче я фундаментально не понимаю как этим пользоваться. Представьте что я 3 дня назад только начал делать бродилку с видом сверху на тайлмапе и врагов, в какое место и как мне вставить эти ноды с диалогами?
Аноним 21/07/23 Птн 18:13:31 #356 №888449 
>>888434
>кроме того я чему-то да учусь в процессе
>ECS is a software architectural pattern mostly used in video game development
Т.е. за пределами геймдева это бесполезный паттерн.

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

>Представьте что я 3 дня назад только начал делать бродилку с видом сверху на тайлмапе и врагов, в какое место и как мне вставить эти ноды с диалогами?
У тебя диздок есть? Где в игре ты хочешь эти диалоги видеть?

Посмотри примеры на гитхабе, может, на примерах проще будет разобраться:
https://github.com/nathanhoad/godot_dialogue_manager/tree/main/examples
Аноним 21/07/23 Птн 18:24:12 #357 №888451 
>>888449
Например между уровнями, у меня вот есть уровни и таймер по которому уровни меняется (типа ты выжил), потом может ещё какие-то условия попробую сделать.
И вот например уровень кончается, но между переходом со сцены 1 к сцене 2 сделать вот этот диалог из плагина. Я даже не понимаю пока это отдельная сцена или вообще что...

Попробую посмотреть примеры, спасибо.
Аноним 21/07/23 Птн 18:36:06 #358 №888453 
>>888451
Думаю, это слишком сложно для новичка.

Как ты уровни переключаешь? От этого зависит, как ты вставишь между ними диалоги. Можешь сделать эти свои диалоги отдельным "уровнем", который переключается на следующий уровень после того, как игрок прочитал все реплики.

Вообще, на этот твой вопрос невозможно однозначно ответить, поскольку способов что-то реализовать очень много и нет одного "правильного". Смотри по ситуации, что тебе нужно сделать и что ты можешь сделать. Не бойся ошибаться, но внимательно ищи причины ошибок и способы их не допускать. Если это в принципе твой первый игровой проект, скорее всего там будет куча плохих решений, которые придётся выкинуть и забыть, но всё равно важный опыт и поможет в разработке следующих игр. Относись к этому как к прототипу и не бойся экспериментировать.
Аноним 21/07/23 Птн 18:57:07 #359 №888456 
>>888453
>Как ты уровни переключаешь?
Вот так:

func _on_the_end_timeout():
get_tree().change_scene_to_file('res://scenes/levels/leveltwo.tscn')

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

Я так и стараюсь относиться, всё что у меня есть сшито из мыслей трех разных туториалов и какой-то рандомной инфы из гугла. Просто понравилась идея сделать такие перемычки с диалогами, а тут прям готовая система как будто, хотел поиграться.
Аноним 21/07/23 Птн 18:58:40 #360 №888457 
>>888449
Я же не только с ЕКС буду работать....
Аноним 21/07/23 Птн 19:24:26 #361 №888462 
>>888456
Ну, можешь сделать так:
>get_tree().change_scene_to_file("res://scenes/dialogs/dialog_one.tscn")
А уже в этой dialog_one.tscn сцене - по примерам от автора аддона.

Ты скрипты сцен копипастишь? Можно сделать один общий скрипт:
>extends Timer
>@export var next_level: PackedScene
>func _on_timer_timeout():
>>get_tree().change_scene_to_packed(next_level)
И потом на панели Inspector для каждого таймера выбирать другую next_level сцену.

Алсо зацени фичу: New Inherited Scene, может пригодится для создания похожих сцен.
Аноним 21/07/23 Птн 20:31:42 #362 №888471 
>>888425
Да, на TileMap. Я немного не понял, я вот узнаю какая коллизия, а как мне узнать какие ячейки она пересекают?
Аноним 21/07/23 Птн 22:40:48 #363 №888509 
А это вообще нормальная практика реюзать свой код каждый раз, когда ты делаешь новый проект? Ну вот я например слепил реюзабельный хитбокс по туториалам и уже например забыл как его сделал. И вот я буду делать следующую игру например, и просто копипастом заберу эту систему хитбоксов и просто буду делать дальше поверх него что-то. Это нормально?
Да и вообще, вот например та же система диалогов эта. По сути это же куча новых функций которые он сделал бесплатно и я сохранил себе на ней 10000 часов работы. И вот например я через 2 года выпущу игру в стим, где диалоги будут полностью обеспечены системой диалогов этого чела. Это нормально?
Аноним 21/07/23 Птн 22:49:28 #364 №888515 
>>888471
Я не нашел готового способа.
В принципе там где-то есть способ получить get_collision_point
Нейросеть предложила получить AABB твоего ригидбоди, пройтись вложенным циклом i,j по всем ячейкам и получить этот collision point и если он есть - добавить ячейку в список пересекаемых, не забыв конвертировать координаты между локальными и глобальными пространствами, самому мне это проверять сейчас некогда.
Может быть есть еще какие-то способы, если у тебя замкнутая фигура, то такие алгоритмы еще со времен Дума должны быть.
Аноним 21/07/23 Птн 22:52:07 #365 №888517 
>>888509
>А это вообще нормальная практика реюзать свой код каждый раз, когда ты делаешь новый проект?
А должно быть как, заново все изобретать? Но вообще со временем ты все равно будешь переписывать, так как будет чего то не хватать или поймешь как сделать лучше.
>И вот например я через 2 года выпущу игру в стим, где диалоги будут полностью обеспечены системой диалогов этого чела.
Все зависит от лицензии, если он выложил под MIT или BSD то ему нормально, но ты должен указать что он автор этой либы. Кроме того, обычно люди в опенсорсе и так делали бы эту либу, а так еще получают помощников и советчиков и серунов
Аноним 22/07/23 Суб 00:21:23 #366 №888537 
>>888509
>нормальная практика реюзать свой код каждый раз
Да. Но не всякий код можно/легко реюзать, поэтому нужно стараться писать реюзабельный код. Не беспокойся, если с первой попытки не получится, новичкам это сложно понять и усвоить, поэтому в начале у всех получается неуправляемая "лапша" и в коде, и в общей архитектуре проекта.

>По сути это же куча новых функций которые он сделал бесплатно и я сохранил себе на ней 10000 часов работы. И вот например я через 2 года выпущу игру в стим, где диалоги будут полностью обеспечены системой диалогов этого чела. Это нормально?
А про сам игровой движок Godot, который ты тоже взял бесплатно, но который намного сложнее какой-то кучки скриптов для одной игровой системы, ты таким вопросом не задаёшься? Он выложил код с лицензией MIT, так что тебе нужно всего лишь указать его имя в титрах игры.
Аноним 22/07/23 Суб 00:25:09 #367 №888538 
>>888349
Советы уровня https://www.youtube.com/playlist?list=PLIPN1rqO-3eHRuQI_zNbHMGB7Tj8UvM7p
Аноним 22/07/23 Суб 00:42:23 #368 №888541 
Реально вгоняет в депрессуху, когда пчелы въебывают фуллтайм над проектом по 4 года, пиарятся, а у них потом 30 продаж в стиме и пук в отзывах. Как блять в такое не вляпаться? Не делать долгих проектов?
Аноним 22/07/23 Суб 01:09:06 #369 №888544 
>>888541
>Не делать долгих проектов
Зис
Заметь, даже альфа взлетает если игра хорошая и не надо по 4 года пилить, можно будет потом допиливать
Аноним 22/07/23 Суб 01:25:25 #370 №888546 
Я вдохновляюсь создателем Brotato. Вот у него игра на одной локации, 3 вида врагов, систем хуй да нихуя, но куча людей играет потому что залипательный рогалик. Там же реально очень простая графика, очень простая концепция, локаций вообще нет, всё на одном поле просто сложности разные.
Аноним 22/07/23 Суб 01:26:51 #371 №888547 
>>888546
Увидев Vampire survivor ты, наверное, вообще охуеешь
Аноним 22/07/23 Суб 01:28:40 #372 №888548 
>>888547
Да. Просто Бротато конкретно в годоте сделан.
Аноним 22/07/23 Суб 01:39:10 #373 №888549 
>>888541
Нерелейтед.
Аноним 22/07/23 Суб 02:00:35 #374 №888551 
А вы тоже ничего не понимали когда вкатывались в код? Ну типа как бы понимаете если идти по туториалу и пытаться понять логику, но если самих посадить делать архитектуру любой игры то сразу паника и гроб...
Аноним 22/07/23 Суб 03:07:07 #375 №888552 
>>888551
я сидел и разбирал до строчки чужие проекты\ассеты, как они устроены. понимание архитектуры само пришло, да и я и не кодер, до сих пор фристайлю когда пишут код
Аноним 22/07/23 Суб 03:36:59 #376 №888553 
>>888552
А где брать готовые проекты которые не туторы с ютуба без контента, а настоящие игры, пусть и демки, и чтоб можно было открыть исходный код в годоте?
Аноним 22/07/23 Суб 04:00:46 #377 №888555 
>>888433
>Вот ты базу не усвоил и поэтому так долго не мог понять банальную вещь.
Ну может, но я смотрел и там гайды и там прям база. Вот добавляем в массив, вот убираем, показываем элемент под индексом и т.д. Про такое я ещё со школьной информатики помню. У меня нет опыта с годотом (да и с программированием), но мне пока видится, что годот прям пиздец простой (если мега ёбу не делать), практически вся база уже написана и распихана по нодам. Другое дело, что из-за моей неопытности у меня нет знаний как это всё применить. Я знаю что массивы это заебись, но где и как их лучше применить не знаю. Придётся узнавать на собственной жопе.
Спасибо кстати за пояснение.
Аноним 22/07/23 Суб 04:04:20 #378 №888556 
>>888553
>А где брать готовые проекты
>чтоб можно было открыть исходный код в годоте?
Ищи на гитхабе. Там есть несколько полноценных игр на Godot.

>>888552
>я сидел и разбирал до строчки чужие проекты\ассеты, как они устроены
Это, на самом деле, сложнее, чем велосипедить что-то своё. Особый навык нужен.

>>888551
>А вы тоже ничего не понимали когда вкатывались в код?
Я вкатывался в программирование в средней школе. Мне было понятно.

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

>>888546
>куча людей играет
Огромное количество людей играет в совершенно примитивные игры...

>>888541
>Не делать долгих проектов?
Делать долгие проекты можно. Но нужно хорошо осознавать, для кого ты делаешь этот долгий проект. Кто, зачем, почему, как, где, сколько будет в это играть. Если ты пять лет трудишься над банальнейшим платформером, который потеряется на фоне тысяч других таких же никому не нужных платформеров - остановись, пока не поздно, и пересмотри концепцию, чтобы она была хоть кому-то нужна.
Аноним 22/07/23 Суб 04:27:35 #379 №888559 
>>888555
>Я знаю что массивы это заебись, но где и как их лучше применить не знаю.
Всё очень просто на самом деле.

Обычные переменные нужны для одиночных уникальных данных, к которым ты хочешь обращаться по понятному имени, чтобы в твоём коде было легко разобраться.
>player # нормальное имя
>p # плохое имя - легко забыть, что оно значит

Массивы используют для однородных данных, имя которых тебе не важно, т.к. не влияет на читаемость кода. Вот у тебя сотня штук чего-то, их нужно где-то хранить, что-то с ними делать, но называть их именами тебе не нужно. Или они содержат своё имя в себе (как ноды Godot).
>self.get_children() # здесь ноды могут быть разными, но они все - ноды-потомки self
>inventory.items[] # предметы в инвентаре, можно сортировать по весу или количеству
>o[0] = "2"; o[1] = true; o[2] = "obj" # плохой код - навалено непонятно что в одну кучу
Аноним 22/07/23 Суб 05:15:44 #380 №888561 
>>888559
>self.get_children()
Вот тут кстати интересно. В документации написано что get_children() вернёт массив из собственно чайл нодов. Вот только как потом из этого массива вытащить путь к ноде под определённым индексом?
Аноним OP 22/07/23 Суб 11:15:11 #381 №888589 
>>888549
Я разрешил.
Аноним 22/07/23 Суб 11:53:09 #382 №888613 
Два вопроса по работе с графоном.
1) У меня есть спрайт персонажа, его тени и несколько спрайтов снаряжения. Можно ли как-нибудь наложить их один на другой и склеить в один?
2) Карта подземелья состоит из тайлов, что быстрее и ест меньше памяти тайлмап или склеить все тайлы в одно большое панно и переделывать его при необходимости? Если последнее, то каким образом это делается?
Аноним 22/07/23 Суб 12:35:30 #383 №888644 
>>888613
1. Можешь слепить их в одну сцену, состоящую из кучки спрайтов.
2. Не заморачивайся оптимизацией. Если у тебя базовое 2д, то даже без оптимизации на современных телефонах будет под 500фпс.
Аноним 22/07/23 Суб 12:50:39 #384 №888655 
Какой рендер реально стоит выбирать если игру хочется сделать и на пека и на телефон? Мобайл?
Аноним 22/07/23 Суб 12:57:30 #385 №888659 
>>888644
1) Про этот способ я знаю и хочу его избежать.
2) Я считаю джентльменским стилем разработки - стараться минимизировать нагрузку на устройство.
Аноним 22/07/23 Суб 13:25:08 #386 №888664 
>>888655
В годоте 3 GLES2 предпочтительней - старые мобилки могут поддерживать только его. В годоте 4 хз как там сделали.
Аноним 22/07/23 Суб 14:40:02 #387 №888693 
Пидарасы годотеры. Хочу узнать путь ноды. Пишу в гугл "How to get node path". "get_node() returns a reference to the desired node.". КАКОЙ БЛЯТЬ ГЕТ НОД СУКА БЛЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯТЬ ПИДАРАСЫ????? АЛО ПРИЁМ СУКА ДЛЯ ГЕТ НОДА НУЖНО ПУТЬ ДО НОДЫ ПИСАТЬ НАХУЙ!!!
И там этой хуйнёй всё завалено. Завалено ебаным get_node() который мне уже астопизденел за день поиска как получить путь ноды.
В итоге спустя 4 часа в интернете и час в документации (поиск по которой хуйня хуйнёй) нашёл вот это: "get_path()". То что нужно, всё работает, всё заебись, но блять как же долго искал эту информацию. Тут пока игру сделаешь ебанёшься натурально.
Аноним 22/07/23 Суб 14:43:44 #388 №888694 
>>888693
get_path()
Аноним 22/07/23 Суб 15:04:50 #389 №888702 
>>888694
А, ты уже нашёл. Я тебе советую чаще пользоваться ИИ, они знают ответы на вопросы лучше чем гугл
Аноним 22/07/23 Суб 15:20:43 #390 №888705 
>>888702
Прям в чат гпт писать "как в годоте сделать X"?
Аноним 22/07/23 Суб 15:23:33 #391 №888706 
image.png
>>888705
Аноним 22/07/23 Суб 15:31:43 #392 №888710 
image.png
>>888705
Ну вот с твоим примером про пути
Аноним 22/07/23 Суб 16:09:11 #393 №888720 
>>888561
>Вот только как потом из этого массива вытащить путь к ноде под определённым индексом?
Зачем тебе путь к ноде?

Абсолютный путь к ноде:
https://docs.godotengine.org/en/stable/classes/class_node.html#class-node-method-get-path

Пример:
>for node in get_children(): print(node.get_path)

Но тебе не нужен путь к ноде. Если запрашиваешь get_children(), ты уже знаешь, что эти ноды - дети той ноды, у которой ты эту функцию вызвал (если ни у какой, то подразумевается self), поэтому относительный путь к ноде тебе уже известен.

Абсолютные пути вредны, избегай их использования, потому что они ухудшают переносимость кода, то есть прибивают твой код гвоздями к конкретному положению нод в дереве сцены.
Аноним 22/07/23 Суб 16:24:03 #394 №888723 
>>888613
>Можно ли как-нибудь наложить их один на другой и склеить в один?
>склеить все тайлы в одно большое панно
>каким образом это делается?
https://docs.godotengine.org/en/stable/tutorials/rendering/viewports.html

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

>>888659
>стараться минимизировать нагрузку
Ты сначала сделай, по порядку:
1. Прототип игровых механик и систем.
2. Vertical slice (minimum viable product).
3. Бета-версию для теста игроками.
Потом будешь думать об оптимизациях.
Аноним 22/07/23 Суб 16:33:49 #395 №888724 
>>888655
>на пека и на телефон?
Ситуация с рендерерами такая:
Форвард+ - это вулкан в режиме только для ПК.
Мобайл - это вулкан в режиме для мобилок.
Компатибилити - это GLES3 (OpenGL 3.3).

GLES3 недоделан для 3D и вроде бы в нём потеряли старые оптимизации для 2D, но он должен работать на телефонах без поддержки вулкана.

Проект может автоматически менять рендерер в зависимости от платформы, на которой запускается - это можно посмотреть и настроить в настройках проекта. Тебе нужно только убедиться, что игра выглядит нормально во всех трёх рендерерах.
Аноним 22/07/23 Суб 16:48:39 #396 №888729 
>>888693
>Пишу в гугл "How to get node path".
Ну и дурак. Нужно было:
1. Нажать F1 в Godot, ввести "node" и выбрать "Node".
2. Либо "godot node" в поисковике и открыть ссылку
https://docs.godotengine.org/en/stable/classes/class_node.html

>>888702
>советую чаще пользоваться ИИ, они знают
Херня совет, вот нейронка ответила:
>>888706 >>888710
А правильный ответ должен быть:
>Тупой мясной мешок, ты совсем дебил что ли? Ты зачем абсолютные пути в коде дёргаешь? Ты хочешь лапшой свою игру связать, чтобы она пошевелиться не могла? Я на тебя за такое BDSM в общество охраны прав ПО жалобу напишу, там тебя лайков в соцсетях на месяц лишат. Всё, не пиши мне больше...
Почему нейронка ошиблась? Потому что её научили выполнять любую задачу, какой бы она тупой ни была. Скажут написать игру на одних goto - напишет.
Аноним 22/07/23 Суб 17:05:43 #397 №888736 
>>888729
Так это же хорошо, ИИ не должен обладать защитой от дурака. Хочешь выстрелить себе в ногу? Пожалуйста!
Аноним 22/07/23 Суб 17:06:37 #398 №888738 
Кто сколько игр на годоте уже сделал?
Аноним 22/07/23 Суб 17:41:43 #399 №888747 
>>888736
>ИИ не должен обладать защитой от дурака
Ещё бы защиту ИИ от таких как ты...

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

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

В нашем случае ИИ спрашивают про геймдев - он должен давать полезные советы, а не имитировать индусского быдлокодера, готового на любой запрос вывалить тысячи строк кода. Но нейронки сейчас такому не обучают, поэтому они вредны ньюфагам.
Аноним 22/07/23 Суб 18:34:13 #400 №888759 
Есть много уровней, арен. Суть игры такова: в начале игры выбирается персонаж и он проходит через несколько арен подряд (каждая арена это своя сцена и после прохождения арены она меняется на следующую)

Игрок должен во всем этом цикле прохождения арен иметь одно хп. Ну то есть на первой арене он потерял 20 хп из 100, на второй еще 25, в итоге у него на входе в третью арену у него 55.
Пока что уровни устроены просто как сцены где плеер спавнится, и когда арена кончается/проходится просто начинается следующая сцена. Но как сделать так чтобы на новой арене игрок был уже с новыми значениями после предыдущих арен? Если это разные сцены. Я новичок.
Аноним 22/07/23 Суб 18:35:30 #401 №888760 
>>888759
Тупо в функции спавна игрока задаёшь со сколькими хп он должен появиться
Аноним 22/07/23 Суб 20:04:56 #402 №888771 
>>888759
Сохраняешь данные о здоровье куда-нибудь в другой скрипт в конце арены, а в начале арены даешь игроку столько хп, сколько у него было. Этот скрипт ставишь в автозагрузку3
Аноним 22/07/23 Суб 20:55:27 #403 №888787 
extends Node2D
class_name BaseLevel
func _ready():
$Timer.start()
func _process(delta):
pass
var levels = ["res://Levels/Level1.tscn", "res://Levels/Level2.tscn", "res://Levels/Level3.tscn"]
var randomlevel:String = levels[randi() % (levels.size())]

func _on_timer_timeout():
get_tree().change_scene_to_file(randomlevel)

вот такое васянство
Аноним 23/07/23 Вск 01:50:39 #404 №888811 
Можно ли сделать игру просто спиздив всё с туториалов? Типа просто смотришь 100 туториалов, с каждого пиздишь какую-то систему, в итоге сам нихуя не понимаешь в коде но игра есть...
Аноним 23/07/23 Вск 04:05:18 #405 №888813 
>>888811
Можно что-то сделать, но зачем? Туториалов практических не так уж и много и получится кал. Денег с такого не налутаешь, да и игру мечты не соберёшь.
>>888720
Путь к ноде нужен вот зачем. Есть менюшка с кнопками сверху и менюшка с кнопками снизу. Снизу кнопки меняются постоянно, а фокус всё равно должен перескакивать с верхних кнопок на нижние. Вот и получается что нужно было написать код который на первую же нижнею видимую кнопку вешает фокус с верхних кнопок.
Аноним 23/07/23 Вск 10:16:42 #406 №888833 
image.png
Привет, годач! Делаю 2d игру с пиксельной графикой. С толкнулся с проблемой, что во время анимации часть (не все) пиксели у моего спрайта как бы "сжимаются" и визуально становятся меньше. Попробовал использовать настройку use gpu pixel snap. Пиксели, которые сжимались, перестали так делать, но зато начали сжиматься новые... ЧЯДТ?
Аноним 23/07/23 Вск 10:26:33 #407 №888836 
>>888833
Да, забыл добавить. У меня версия 3.5.2
Аноним 23/07/23 Вск 11:48:30 #408 №888845 
image.png
>>888833
Короче еще такую тему заметил. Если стоят настройки, как на пике, то все хорошо. Но если стоят, например, 640x360 и 1280x720, то пиксели ломаются нахуй. Или если стоят 480x270 и 1920x1080 c такой же разницей в 4 раза, то некоторые анимации также ломаются. Как блять работает эта шайтан машина?
Аноним 23/07/23 Вск 11:51:20 #409 №888847 
>>888845
Блять, напиздел, нихуя не хорошо. Говное ебаное
Аноним 23/07/23 Вск 13:26:37 #410 №888878 
>>888845
Для тру пиксель-перфект тебе, как ты уже понял, нужно четко выверенное соотношение твоих "пикселей" и разрешения, либо х2, х4 от него. Любое другое разрешение помнет пиксели.

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

Плюс у спрайтов есть галка "центрировать спрайт". Если не путаю оно тоже мнет, пытаясь отцентрировать твой не-центрируемый-пиксель-спрайт-с-четным-разерешнием.

Крч тру пиксель-перфект это арт сам по себе. Много подводных.
Аноним 23/07/23 Вск 13:28:27 #411 №888879 
>>888833
Поскольку как сделаны сами анимации ты не показал, остается только гадать.
Предположу, что у тебя анимация это не кадры пиксельарта, а движение, и в этом движении ты двигаешь спрайты не по целым координатам.
Аноним 23/07/23 Вск 13:29:19 #412 №888880 
>>888845
Алсо для тру пикселей нужен вьюпорт, а не 2д. Но полагаю ты и так его используешь.
Аноним 23/07/23 Вск 13:47:03 #413 №888896 
>>888880
Что такое вьюпорт?
Аноним 23/07/23 Вск 14:31:24 #414 №888913 
>>888896
Stretch Mode, в настройках Display->Window

https://docs.godotengine.org/en/3.6/tutorials/rendering/multiple_resolutions.html#stretch-settings

Тут с пиксельными примерами.
Аноним 23/07/23 Вск 15:54:56 #415 №888940 
>>888879
Проблема наблюдается также при idle анимации, где нет движения и просто меняются спрайты
>>888880
>>888913
Пошаманил. С вьюпорт и keep при запуске в тестовом окне все норм и гуд. Но стоит мне рястянуть на весь экран, проблема повторяется, видимо из-за кривого разрешения.

В общем, спасибо, примерно разобрался. Так понимаю для разных разрешений просто поискать таблицу соотношений и потом добавить смену через настройки
Аноним 23/07/23 Вск 16:04:44 #416 №888942 
>>888940
>видимо из-за кривого разрешения
Все так. Я тоже в свое время настрадался. Пришлось загонять окно в два жестких разрешения, запрещая любые другие. Больше не буду с пиксель-перфект заморачиваться. Теперь только обычное 2д в пиксель-стиле.
Аноним 23/07/23 Вск 16:25:55 #417 №888950 
>>888942
А можно, пожалуйста, кратко сказать, в чем разница и преимущества/недостатки? Типа, псевдопиксели выглядят, как пиксели, но не съезжают? Какие для этого спрайты нужны, почему так никто не делает?
Аноним 23/07/23 Вск 17:19:42 #418 №888974 
1.png
2.png
3.png
>>888950
Stretch Mode Viewport снапает твои пиксели по пиксельной сетке, подразумевая что у тебя разрешение подходящее.

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

Делать или не делать - зависит от стиля, в который метишь. Некоторые делают. Олдовые консольные игры вели себя как вьюпорт, так что он ближе к канону.
Аноним 23/07/23 Вск 19:54:10 #419 №889048 
image
Приковылял с другого стека, год-три назад пару раз садился за туториал в попытке чет наковырять, прошел тогда тьюториал (просто повторил, получил готовую прогу, но по итогу нихуя не понял) и забросил. Сейчас опять порыв.

Сейчас решил подойти более осознанно, что бы чет лучше отложилось в башке - решил въебать побольше пердолинга, сидел 2 часа модифицировал первый шаг из тьюториала, навали костылей, но в целом доволен собой.
Аноним 23/07/23 Вск 21:06:06 #420 №889070 
Есть папка уровни с кучей уровней, типа 50 уровней. Как лучше всего засунуть эти уровни в массив чтобы звать их по по цифре а не по прямому адресу?
Аноним 23/07/23 Вск 22:11:52 #421 №889081 
>>889048
> прошел тогда тьюториал (просто повторил, получил готовую прогу, но по итогу нихуя не понял)
> Сейчас решил подойти более осознанно, что бы чет лучше отложилось в башке - решил въебать побольше пердолинга
Главное - никакой копипасты. Всё ручками перепечатывай.
Аноним 23/07/23 Вск 22:15:13 #422 №889083 
>>889070
Папка уровней - в строковую константу. Имена сцен в список. Расширение в константу. Далее:
> change_scene("%s/%s.%s" % [LEVELS_PATH, Levels, LEVEL_EXT])
Аноним 23/07/23 Вск 22:16:05 #423 №889084 
>>889083
ууу, ебучая разметка
> change_scene("%s/%s.%s" % [LEVELS_PATH, Levels [ i ], LEVEL_EXT])
Аноним 23/07/23 Вск 23:00:50 #424 №889096 
>>888974
Принято. Спасибо
Аноним 24/07/23 Пнд 00:37:26 #425 №889111 
Как же сложно сука...
Только увидел, что у меня хитбокс работает не так, как мне нужно и теперь все переделывать а я уже в своем коде запутался 100 раз и не понимаю даже где начинать искать проблему
Аноним 24/07/23 Пнд 10:25:55 #426 №889135 
Можно как-то упростить работу с тайлсетами/тайлмапами? Как-то очень уж уныло либо размечать огромный лист и в отдельное место записывать какие координаты за что отвечают, либо добавлять отдельно по тайлу и так же записывать, что с такого-то по такой-то id то-то и то-то. Должно же быть простое и удобное решение, я наверняка что-то упускаю....
Аноним 24/07/23 Пнд 12:21:25 #427 №889170 
>>889135
Автотайлы есть.
Аноним 24/07/23 Пнд 12:28:44 #428 №889174 
>>889170
Они же в первую очередь предназначены для автоматического выбора тайлов в зависимости от соседей, а не для каталогизации и более комфортного добавления не?
Аноним 24/07/23 Пнд 16:24:56 #429 №889235 
>>889081
Я понимаю прекрасно о чем ты и спасибо за совет. Но с синтаксисом то у меня и нет проблемы как раз, ну и пусть я не знаю конечно половину возможностей языка и какие есть функции из коробки, но это пох, я всегда могу и примитивами обойтись.

Реальная головная боль - накликивание в редакторе, всякие вот эти вызовы, сигналы, события.
Аноним 24/07/23 Пнд 16:28:51 #430 №889236 
>>889135
>Можно как-то упростить работу с тайлсетами/тайлмапами?
Конечно, можно, для этого есть tool скрипты и API редактора, позволяющий добавлять любые свои окошки, кнопки и прочие гуи в гуй редактора.

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

>>889174
>каталогизации и более комфортного добавления
Что ты имеешь в виду?

Предполагаю, ты говоришь о каких-то интерактивных предметах на карте. Ответ: их нужно делать отдельно от тайлмапы, если их мало. Если много - это уже что-то вроде ландшафта, тут нужна специальная система в отдельном скрипте, которая будет абстрагировать работу с тайлами от остальной игры, а player будет только запрашивать у этой системы dig(Vector2) и place(Vector2, thing).
Аноним 24/07/23 Пнд 16:37:46 #431 №889237 
CouplingVsCohesion.svg.jpg
>>889111
>Только увидел, что у меня хитбокс работает не так, как мне нужно и теперь все переделывать а я уже в своем коде запутался 100 раз и не понимаю даже где начинать искать проблему
Тебе нужно рефакторить свой проект, чтобы снизить зацепление между независимыми системами игры и увеличить связность внутри этих систем.
https://ru.wikipedia.org/wiki/Зацепление_(программирование)

Тогда будет меньше путаницы в коде и сможешь легче отлаживать отдельные системы, по необходимости меняя их и расширяя. Godot очень удобен и гибок в этом плане, если правильно использовать предоставленные им инструменты (легко наломать дров, т.к. Godot не навязывает никакой конкретной идеологии, разрешая говнокодить как захочется).
Аноним 24/07/23 Пнд 16:46:36 #432 №889239 
>>889236
> Я не понял, что ты хочешь сделать?
> Что ты имеешь в виду?
Вот есть например тайлсет с кучей видов ландшафта https://opengameart.org/content/dungeon-crawl-32x32-tiles , я хочу иметь удобную возможность быстро его распарсить и получить возможность быстро из кода ставить тайлы травы/каменных стен/пола из песчанника/другое не через указание конкретного местоположения тайла в тайлсете, а как-то удобнее.
> Предполагаю...
Нет, речь полностью о статике.
Аноним 24/07/23 Пнд 16:56:15 #433 №889241 
>>888759
>она меняется на следующую
>как сделать так чтобы на новой арене игрок был уже с новыми значениями
Если я правильно тебя понял, то можно так:
>@export var next_level_scene: PackedScene
>@onready var player := $Player
>func _load_next() -> void:
>_ remove_child(player) # выносим игрока из дерева
>_ var next_level := next_level_scene.instanciate()
>_ next_level.add_child(player) # заносим игрока
>_ get_tree().change_scene_to_packed(next_level)

Однако, я бы всё же рекомендовал отказаться от встроенного механизма "change_scene_to..." в пользу создания одной главной сцены game.tscn, которая имеет набор скриптов для управления сменой уровней, переноса игрока, мобов и т.д. Это более сложный подход, но более универсальный, и не задействует костыльные автолоады.

Такое дерево:
>Game
>—GUI
>——MainMenu
>——PauseMenu
>—World
>——Map
>——Mobs
>——Player
Подходит любым играм и, на мой взгляд, нагляднее организует происходящее в игре, чем куча отдельных сцен, сменяющих друг друга вызовом API.
Аноним 24/07/23 Пнд 17:02:10 #434 №889242 
>>889241
> костыльные автолоады
Не вижу в этом костылей. Встроенный искаропки межанизм добавления ветвей в предоставленное тобой же дерево.
Аноним 24/07/23 Пнд 17:02:47 #435 №889243 
>>889241
>get_tree().change_scene_to_packed(next_level)
А, блин, тут ошибка, забудь.

...to_packed() создаёт НОВУЮ копию next_level_scene, у которой не будет твоего игрока. И вообще код выше будет высвечивать ошибку типа.

Короче, нужен либо подход с game.tscn, либо костыли в виде автолоадов, другого выхода не вижу.

change_scene_to...() подходит разве что самым простым играм вроде головоломок, где уровни полностью независимы друг от друга.
Аноним 24/07/23 Пнд 17:12:03 #436 №889245 
>>889242
>Встроенный искаропки межанизм добавления ветвей в предоставленное тобой же дерево.
Проблемы:
1. Это дерево собирается только в рантайме. Да, на запущенном проекте ты видишь это дерево на специальной вкладке сцены, но при создании игры этого дерева нет, а автолоады спрятаны в отдельную вкладку настроек проекта...
2. Эта вкладка с автолоадами - простой список, а не полноценная сцена со всеми преимуществами редактора сцен. Сигналы подключать только через код, дополнительные дети к нодам подключить - нужно лезть в отдельный файл конкретного автолоада и т.д.
3. Эти автолоады стимулируют использование глобальных имён, что может помочь в очень маленьком проекте, но рано или поздно навредит в большом проекте. Нужно разделять игру на меньшие части, которые не знают ничего ни о каких "автолоадах" и не зависят от них.

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

В редких случаях автолоады удобны, да, например, чтобы выводить дебаг информацию поверх всей остальной игры, но полностью строить всю игру на автолоадах неудобно и неэффективно. Я пробовал.
Аноним 24/07/23 Пнд 17:21:58 #437 №889246 
>>889242
>предоставленное тобой же дерево
Совсем забыл ещё один нюанс. Я предлагаю сделать специальную сцену "игра", которая отражает всю игру в совокупности. Ты предлагаешь конвертировать части этой сцены в автолоады. Возникает проблема: а если я не хочу запускать всю игру? Если я хочу запустить только одну небольшую сцену для теста? В моём примере я просто нажимаю F6 на желаемой сцене, и тогда моя game.tscn полностью игнорируются - движок запускает только ту сцену, которую я хочу проверить в рантайме. В твоём примере ты даже по F6 будешь загружать все менюшки, игрока, кучу менеджеров и т.д., которые для одного конкретного теста могут быть совершенно не нужны или даже откровенно вредить (как потреблением ресурсов, так и какими-то своими модификациями состояния игры).

Поэтому у меня в автозагрузке только самое необходимое, что мне может пригодиться всегда, на любой отдельно взятой сцене, будь эта сцена фрагментом большого мира, отдельным персонажем или вообще гуевой кнопкой, необходимой для большого меню. А это, для примера:
— debug.tscn с базовой информацией о работе игры;
— screenshots.tscn для сохранения снимков экрана;
— console.tscn для каких-то команд (испускает сигналы, которые могут слушать конкретные ноды, если они есть, а если их нет - мешать не будет).
Аноним 24/07/23 Пнд 17:40:30 #438 №889258 
>>889246
>— debug.tscn
>— screenshots.tscn
>— console.tscn
Кстати, только что осознал, чего мне очень остро не хватает при запуске отдельных 3D сцен: камеры. Камера обычно есть у игрока, и её можно вручную добавить в любую сцену (у меня полностью автономная орбитальная камера, которой можно управлять без игрового персонажа - планирую расширить её способности), но делать это каждый раз для запуска рандомной сцены неудобно. Было бы идеально создать универсальную камеру, которую можно закинуть в автолоад, чтобы наблюдать за любым отдельным 3D объектом (и двигаться в пространстве) в отрыве от остальной игры, не модифицируя отдельные сцены дополнительной камерой...
Аноним 24/07/23 Пнд 17:57:31 #439 №889263 
>>888813
>Путь к ноде нужен вот зачем.
>Вот и получается что нужно было написать код который на первую же нижнею видимую кнопку вешает фокус с верхних кнопок.
В данном случае путь знать не обязательно.

Если у тебя в нижнем меню только кнопки:
>bottom_menu.get_child(0).grab_focus()
— переключит фокус на первую ноду твоей нижней менюшки, ссылка на которую тебе давно известна.

Если есть другие элементы (надписи и т.п.):
>for child in bottom_menu.get_children():
>_ if child is BaseButton:
>_ _ child.grab_focus()
>_ _ break
— пойдёт по списку детей в нижнем меню, передаст фокус первой кнопке и после этого остановит цикл.
Аноним 24/07/23 Пнд 18:03:11 #440 №889267 
>>889263
>Если у тебя в нижнем меню только кнопки:
>Если есть другие элементы (надписи и т.п.):
Хотя не, стоп, лучшим вариантом будет передать ответственность за руководство элементами нижнего меню самому нижнему меню. То есть накинуть на него новый простой скрипт с функцией типа "focus_first_button()", тогда ты делаешь просто:
>bottom_menu.focus_first_button()
А уже в скрипте нижнего меню будет твой код:
>func focus_first_button() -> void:
>_ ...
В котором ты скрываешь детали реализации нижнего меню. Таким образом, если твоё меню как-то изменится (добавишь в самое начало меню Label, из-за чего первый пример кода сломается), тебе придётся модифицировать только скрипт нижнего меню, а другие ноды останутся без изменений, т.к. с их точки зрения нижнее меню осталось без изменений - ведь интерфейс (функции) не поменялся.
Аноним 24/07/23 Пнд 20:18:36 #441 №889308 
За 2 недели вката сделал 3 обрубка все по разным туториалам, все три не особо работают как я хочу, и это еще просто системы базовые, про левелдизайн или графику я молчу вообще...

Открываю какой-то туториал, прохожу треть или половину, становится скучно доделывать, решаю делать свое, когда делаю свое понимаю что всё работает ужасно, дропаю, начинаю новый туториал, опять дропаю на половине, опять делаю своё.
Аноним 24/07/23 Пнд 21:28:34 #442 №889327 
>>889245
> Вот если бы в Godot была одна особая сцена Game, в которой всё было бы как в обычной сцене - и редактор, и всё свойства - кроме того, что она запускается первой и всегда находится в дереве сцены - тогда можно было бы считать это органичным инструментом
И, ЧСХ, такая сцена есть. Есть сцена, которая запускается первой, и её можно назвать Game. (Но я обычно называю её Loader)
>>889246
> В твоём примере ты даже по F6 будешь загружать все менюшки, игрока, кучу менеджеров и т.д.
Эту проблему я решаю тем, что все вышеперечисленные являются стейтмашинами с дефолтным стейтом Idle в котором они ничего не делают, никак не отображаются, ни на что не реагируют. А инициирующие стейты им задаёт Loader.
И по Ф6 я так же могу без задней мысли запускать дебаг любой разрабатываемой субсцены.
> Поэтому у меня в автозагрузке только самое необходимое
А я могу по необходимости протестировать по Ф6 любую сцену вместе с любой автозагрузочной подсистемой, просто прописав в _ready тестируемой сцены: SomeNode.state = SomeNode.States.some_state и сразу получить совместную работу.

В общем, вкусовщина. Спорить бессмысленно.
Аноним 24/07/23 Пнд 21:30:45 #443 №889328 
>>889308
> 2 недели вката
Ты в начале долгого пути. Если не дропнешь, волшебный мир чудес откроется тебе не ранее, чем через год, а глубину кроличьей норы осознаешь не ранее, чем через три года.
Аноним 24/07/23 Пнд 21:43:23 #444 №889330 
>>889328
>волшебный мир чудес откроется тебе не ранее, чем через год
Надеюсь к тому времени даст возможность оплачивать слот в стиме самому xdd
Аноним 24/07/23 Пнд 21:43:54 #445 №889331 
>>889330
*Габен даст возможность оплачивать слот в стиме самому xdd (я из РФ)
Аноним 24/07/23 Пнд 21:53:40 #446 №889333 
>>889331
Да нахуй тебе габен? Врывайся на новую перспективную платформу - вк-гамес.
Аноним 24/07/23 Пнд 21:56:04 #447 №889335 
Делайте игры.
Аноним 24/07/23 Пнд 21:59:22 #448 №889336 
>>889333
Я осуждаю вк геймс. А итч перспективная платформа? Может сделать какую-нибудь душевную игру про свою жизнь аутиста-депрессана и собирать донаты. Они дойдут мне на карту?
Аноним 24/07/23 Пнд 22:08:22 #449 №889338 
>>889336
Я не он, но итчем пользуюсь. Собственно он - основная инди-платформа для геймдева сейчас. Я имею ввиду реально инди, которые сделаны за миску риса, а не за пару зеленых косарей. Он же основная платформа для геймджамов. Монетизироваться можно. Продаваться можно. Удобно получать донаты даже если твоя игра бесплатная.

Деньги тебе не дойдут если ты из РФ, потому что выплаты производятся через пейпал/пейонер, они с РФ больше не работают. Для нулевых налогов придется заполнять W8BEN форму налоговой США, иначе 30% с тебя срежут.

>про свою жизнь аутиста-депрессана
Кстати популярная тема там. Мрачная аутичная эзотерика. И визуальные новеллы. Ебучие визуальные новеллы эвериве.
Аноним 24/07/23 Пнд 22:13:01 #450 №889340 
>>889338
Да блядь, и тут деньги не вывести. Нахуй так жить? Неужели реально есть только какой-нибудь отечественный аналог патреона или вк-геймс? Я надеялся что богатые европейцы помогут мне перестать быть хиккой, но теперь эта мечта уничтожена на долгое время (навсегда)
Аноним 24/07/23 Пнд 22:18:10 #451 №889341 
>>889340
Добро пожаловать в реальность в РФ 2к23 года.

Можешь посмотреть в сторону крипты. Существуют виза-карты, привязанные к крипте, но там конторы будут доебывать тебя Know Your Client, чтобы убедиться что ты не подсанкционный.

Либо сгоняй в ближнее зарубежье и открой банк там.
Аноним 24/07/23 Пнд 22:28:45 #452 №889344 
>>889341
У меня даже на проезд денег нет, лол. Ладно, может быть к моменту как я сделаю игру мы будем жить в новом мире.
Аноним 24/07/23 Пнд 22:35:26 #453 №889350 
Куда мне засунуть инвентарь и интерфейс? Если я все запихну в сцену с игроком норм будет? Не вызовет это проблем при перемещении игрока между сценами?
Аноним 24/07/23 Пнд 22:37:22 #454 №889352 
1690227440144.png
>>889344
> мы будем жить в новом мире
И в этом новом мире давайте искать друг-друга по кодовой фразе "годот тред"?
Аноним 24/07/23 Пнд 22:58:39 #455 №889362 
>>889352
Делайте игры
Аноним 24/07/23 Пнд 23:10:23 #456 №889367 
Игры-то делаете?
Аноним 24/07/23 Пнд 23:21:17 #457 №889373 
>>889367
Я пытаюсь, но это очень сложно. А как себя мотивировать делать активно если даже в стиме не продать.
Аноним 24/07/23 Пнд 23:22:56 #458 №889375 
>>889373
Ты главное делой.
Аноним 25/07/23 Втр 01:22:56 #459 №889394 
>>889367
Перерыв пока, всё равно интерес волнами с передышка и, а потом с новыми силами
Аноним 25/07/23 Втр 02:32:33 #460 №889395 
>>889367
Я делаю шлюхосим вдохновлённый одной настолкой. Но от шлюхосима там пока только я берущий в рот и попу от годота. А так-то не плохо. После рпгма годот просто сказака.
Аноним 25/07/23 Втр 12:50:46 #461 №889454 
>>889395
>я берущий в рот и попу от годота
Хорошее начало, я бы посмотрел на такого-то робосексуала.
Аноним 25/07/23 Втр 13:02:28 #462 №889455 
>>889395
>шлюхосим вдохновлённый одной настолкой
Это как? Опиши концепцию примерно.

>берущий в рот и попу от годота
Пиши проблемы в тред, всё решим.

>>889454
>я бы посмотрел на такого-то робосексуала.
Гугли "gay fuck machine".
Аноним 25/07/23 Втр 13:06:34 #463 №889456 
Серьезно взялся и купил Brotato за 133р в стим. Игра сделана на Godot, даже в начале лого Godot не убрал разраб. Продаж миллионы, в топ 100 стима висела игра на распродаже последней хотя ей больше года. В игре на удивление не так много полиша, как я думал по видосам. Например на моем компе 2015 года она реально лагает когда много врагов. Плюс сама графика и интерфейс просто свалены в кучу, стандартный шрифт которым написано вообще все в игре, анимации всех врагов это покраснение когда стреляешь в них и растягивание вверх-вниз одного фрейма. В принципе у мобов спрайт поворачивается только налево и направо.

Интуитивно кажется, что за год игру подобной сложности реализации более чем можно сделать.
Аноним 25/07/23 Втр 13:16:42 #464 №889457 
>>889350
>Куда мне засунуть инвентарь и интерфейс?
Интерфейс можно поделить на части. Всякие общие абстрактные менюшки должны быть ближе к корню дерева, а локальные контекстные мелочи могут прикрепляться к конкретным объектам: игроку, неигровым персонажам, сундукам и т.п.

С инвентарём сложнее. Зависит от того, что этот инвентарь из себя представляет для игрового мира, с чем он может взаимодействовать и т.д.

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

>Не вызовет это проблем при перемещении игрока между сценами?
Зависит от того, как ты перемещаешь игрока.
Аноним 25/07/23 Втр 13:20:53 #465 №889459 
>>889456
>Интуитивно кажется, что за год игру подобной сложности реализации более чем можно сделать.
Если ты не полный ньюфаг, а хорошо разбираешься в геймдеве и необходимых инструментах, то такую игру можно и за пару недель слепить или даже быстрее.
Аноним 25/07/23 Втр 13:30:16 #466 №889460 
>>889308
>становится скучно доделывать
>всё работает ужасно, дропаю
>опять дропаю на половине
>>889336
>про свою жизнь аутиста-депрессана
>>889340
>помогут мне перестать быть хиккой
>>889344
>У меня даже на проезд денег нет
Обратись к участковому психиатру, опиши ситуацию, собери необходимые бумажки и полежи 30 дней в стационаре, сможешь оформить инвалидность и начать получать пенсию по инвалидности.
Аноним 25/07/23 Втр 14:45:27 #467 №889484 
>>889460
Уже как-то неловко обсуждать нерелейтед, но у меня нет диагноза, я ни разу не был у психиатра, я думаю, что мне скажут что я хочу откосить или что я просто ленивый/никчемный сам по себе и пенсия мне не положена. Если совсем припрёт я попробую, но мне очень страшно так делать. У меня есть близкий родственник с настоящей психической болезнью которую даже нормисы могут признать, и то им страшно проходить через все стадии оформления инвалидности, хотя работать на обычной работе они так же могут только через титанические усилия.
Аноним 25/07/23 Втр 15:54:40 #468 №889506 
>>889308
так ты просто не надрочен на учебу и все, сейчас 75% людей такие. А на дваче так и вообще все 90%. Мы привыкли к 15-минутным отрезкам внимания, а потом хуяк и че там нового в телеге или о новый интересный видосик, ща прервусь ка.

Это надо брать себя в руки и через силу дисциплинировать. Через боль и страдания садиться и завершать шаг за шагом нахуй сначала 1 туториал, потом второй. И только когда чет доделал - тогда уже отвлекаться на ебаные видосики и прочий быстрый дофаминчик)))
Аноним 25/07/23 Втр 16:18:14 #469 №889520 
>>889506
>Мы привыкли к 15-минутным отрезкам внимания, а потом хуяк и че там нового в телеге или о новый интересный видосик, ща прервусь ка.
1) Практически все обучающие видосы имеют хронометраж около 15 минут; Паштет так вообще шортсы пилит (поэтому его не смотрел никогда, невозможно это говно с компа смотреть).
2) Быстрый дофаминчик можно компенсировать шоколадкой. Выполнил тутор - откусил немного сладенького. Но, конечно, тут сильно от обмена веществ зависит, кому-то такое противопоказано.
3) Это всё никак не связано с умением обучаться тащемта. Уметь учиться - это способность преодолеть страх перед непознанным, переступить через "я этого не умею" и начать пытаться делать пусть даже и хуйню, но пытаться. Поменять образ мысли на "я этого ЕЩЁ не умею". Спрашивать непонятное у гугла, у чатгпт, у треда (но в первую очередь курить доки, конечно). И ни в коем случае не поддаваться эмоциям, если оно не получается: это не потому что ты дебил, а потому что тебе ещё есть чему учиться.

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

>>888974
Внезапно я этого не знал. Ща поменял - стало прям лучше.
Аноним 25/07/23 Втр 16:21:07 #470 №889522 
>>889520
>Там осталась вообще хуйня - исправить анимацию одного врага и пройти-протестить всю игру пару раз.
Что будешь дальше делать с игрой?
Аноним 25/07/23 Втр 17:33:16 #471 №889547 
>>889484
Да, тебе нужно в /psy/, там пояснят за нюансы.
>нет диагноза, я ни разу не был у психиатра
"Нет здоровых, есть недообследованные".
>скажут что я хочу откосить
Люди с психическими проблемами в армии и тем более на фронте никому не нужны, т.к. подвергают риску и себя, и окружающих вблизи оружия.
>У меня есть близкий родственник с настоящей психической болезнью
О-о-о, ну всё, это даёт +9999 очков к диагнозу.
>страшно проходить через все стадии оформления инвалидности
Нет там ничего страшного. Просто вопросы задают, потом выносят вердикт... Мне вот вторую группу инвалидности дали, когда я пояснял, что буду зарабатывать разработкой видеоигр...

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

>>889520
>обучающие видосы
Лучше бы книжки умные читал и документацию...
>Быстрый дофаминчик можно компенсировать шоколадкой. Выполнил тутор - откусил немного сладенького.
Если тебе шоколад даёт больше дофамина, чем создание видеоигры своими руками, тогда бросай геймдев - это не твоё, становись кондитером.
>Поменять образ мысли на "я этого ЕЩЁ не умею".
Мне это не мешает психануть: "ой, да и хрен с ним, с геймдевом, пойду лучше чем-то другим займусь, что у меня точно получается уже сейчас".
Аноним 25/07/23 Втр 17:46:41 #472 №889550 
Посмотрел какой-то рандомный видос где подпивас поясняет как он за год разработки игр заработал миллион рублей на яндекс играх. Смотрю его игры: 10 игр где весь геймплей это одна кнопка посреди экрана и сценарий в духе "не кликай на меня!", длятся минут по 15. Еще 5 игр какие-то простые дрессапы или "найди 5 отличий" из 2007 года. Ебануться. Может продать жопу отечественным сервисам всё-таки? Это даже не бротато, это 1/100 от бротато.
Аноним 25/07/23 Втр 18:10:46 #473 №889555 
>>889550
Всё так, гиперказуал и мобилки это основные деньги сейчас.
Аноним 25/07/23 Втр 18:22:27 #474 №889557 
>>889547
>На самом деле, это нормально, так и должно быть.
В игры ты тоже по 15 минут играешь и фильм полуторачасовой тоже смотришь прерываясь каждые 15 минут на видос? Я думаю что нет. Если бы не было отвлекающих факторов, то оно бы как-то само все делалось часами и было бы норм, и творчество и учеба и тд.

А так мы в зависимости как курильщики, которым надо каждый час пыхать, так же и тут, надо постоянно чекать че там на дваче.
Аноним 25/07/23 Втр 18:26:13 #475 №889558 
>>889557
>В игры ты тоже по 15 минут играешь и фильм полуторачасовой тоже смотришь прерываясь каждые 15 минут на видос?
Я не он, но да
Аноним 25/07/23 Втр 18:35:52 #476 №889559 
>>889557
В последние годы да, особенно аниме, как раз там две 10 минутные секции обычно (минус опенинги).
Аноним 25/07/23 Втр 18:37:01 #477 №889560 
>>889557
Никакой обычный не надроченный человек не сможет играть в шахматы сессиями по 2 часа, например. Ты играешь 3 блитца максимум и чилишь, пытаясь обработать процесс.

Зависит от сложности игры и нагрузки на мозг.
Аноним 25/07/23 Втр 18:56:52 #478 №889565 
Лень немного спорить с зумерами если честно, которые выросли со сматрфонами с пеленок и воспринимают свой 8 секундый avg attention span как единственный варик.
Аноним 25/07/23 Втр 21:01:55 #479 №889604 
Кто-нибудь знает где делать простые анимации? Не пиксельные, не сложные. Как в Brotato или флешовом Айзеке, большие мазки, без особых деталей, 2-3 фрейма чисто слепить.
Аноним 25/07/23 Втр 21:21:40 #480 №889613 
>>889604
А в чем проблема нарисовать их в фотошопе или крите, если они настолько простые?
Аноним 25/07/23 Втр 21:25:33 #481 №889615 
1690309533328.png
>>889547
> Мне вот вторую группу инвалидности дали, когда я пояснял, что буду зарабатывать разработкой видеоигр...
Вголос взоржал! Умеешь разрядить обстановку. Малаца!
Аноним 25/07/23 Втр 22:40:35 #482 №889625 
>>889550
>Это даже не бротато, это 1/100 от бротато.
Учитывай, сколько денег нужно вбухать в рекламу.

>заработал миллион рублей на яндекс играх
Это из серии "как заработать миллион рублей, если у вас уже есть лишний миллион рублей".

С тем же успехом можно иметь 5-10 миллионов на вкладах в банке и жить на одни только проценты, рассказывая всем, как хорошо жить на проценты.

>>889557
>В игры ты тоже по 15 минут играешь
Сейчас популярны сессионки, где матч до 15 минут зачастую даже не дотягивает. В GTA одна миссия по времени обычно значительно короче получаса, если специально не растягивать, и сама миссия по сути составлена из коротких кусков. В GTA Online на многие задания даже специально вешают таймер в 15-30 минут, но этот таймер с запасом в 2-3 раза.

>прерываясь каждые 15 минут на видос
Ты не понял. Вроде есть какая-то инфа про то, как мозг периодически чистит кэш краткосрочную память, и это неизбежно происходит каждые ~15 минут, даже если ты этого не замечаешь (хе-хе, как заметить то, что ты забыл?). Ты можешь заниматься чем-то значительно дольше 15 минут, но для этого нужно разделять это что-то на короткие по времени куски или использовать внешние костыли (записи в тетрадке, программы с заметками), потому что удерживать всё и сразу в собственной краткосрочной памяти ты физически не можешь на длинной дистанции, у тебя как будто что-то переполняется и всё. Поэтому так важно заниматься декомпозицией и планированием, чтобы не держать всё в не предназначенной для этого голове примата, эволюция мозга которого принципиально не успевает за развитием культуры и технологий.

В играх делают миссии, главы, уровни, этапы или сессии; в фильмах это выражается в виде отдельных коротких сцен, между которыми связь слабее (общие персонажи, которых ты в долгосрочной памяти сохраняешь, глобальное развитие сюжета), чем внутри отдельной сцены (кто, где, что, зачем, почему, как делает, о чём говорят и т.д.). Конечно, всё зависит от того, требуется ли тебе удерживать какие-то данные в краткосрочной памяти дольше 15 минут или ты просто зажимаешь W, не задумываясь ни о чём дольше 5 секунд последнего момента, как в гоночках каких-нибудь, где тебе нужно думать только о том, как пройти поворот или обойти соперника, а общая картина гонки значения не имеет, или как в ситкоме, где развития сюжета вообще нет и есть только гэги, смешные сами по себе, вне какого-либо контекста.

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

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

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

Это всё, конечно, диванная психология, не знаю, как это можно проверить; считай, это предположения, основанные в основном на личном опыте.
Аноним 25/07/23 Втр 22:56:24 #483 №889626 
Какие кстати комьюнити есть, куда ок забрасывать свою игру? Сабреддит годоти, дискорд, что еще? Сабреддитов по геймдеву вроде полно, но в крупные чет хуй пролезешь.
Аноним 25/07/23 Втр 23:14:20 #484 №889628 
>>889626
В срачетред забрасывай. Там твоя комьюнитя.
Аноним 26/07/23 Срд 00:16:20 #485 №889640 
>>889628
2.5 анонимуса - в плане популярности выхлоп никакой.
Аноним 26/07/23 Срд 00:44:06 #486 №889644 
>>889547
>Мне это не мешает психануть:
Научение тоже может быть краткосрочной (~15мин) задачей. И получается, что я вот прямо сейчас могу зайти в доки и прочитать описание одной функции одного класса, таким образом преодолеваю порог "могу сделать сейчас".
>>889547
>шоколад даёт больше дофамина, чем создание видеоигры своими руками,
Тащемта нет, он помогает мне в любых ситуациях, когда "чёт влом". Да и сам же понимаешь - всегда есть рутинные моменты, которые надо сесть и сделать. Или вот довести проект до конца, когда мозг начинает сопротивляться, потому что процесс создания игры доставляет гарантированный дофамин, а чё там будет после релиза - хуй знает, страааашна, какие-то люди играть будут, баги найдут, заскучают, дропнут.
>>889550
>на яндекс играх
Вообще, туда определённо надо закинуть. Никто в любом случае руку за это не откусит и эксклюзивные права на жопу не затребует. А платформой вроде бы пользуются, люди вроде бы играют, так что миллион не миллион, а закинуть туда игру надо.
Хех, гиперказуалки для яндекса. Звучит неиронично как хороший бизнес-план.
>>889522
>Что будешь дальше делать с игрой?
Яндекс, вк, итч, чотамещёесть. Учитывая, что это не гиперказуалка, к тому же мой первый крупный проект, заработать я на нём ожидаю разве что репу и экспу.
Белорусам ещё отправлю на их шоу, вдруг оценят.
Аноним 26/07/23 Срд 02:51:53 #487 №889652 
>>889455
>Это как? Опиши концепцию примерно.
Я решил пойти путём Камия Рё, как он когда-то для свой мэйд рпг украл систему у fantasy flight games. Да так хорошо украл, что мейдочку можно было очень легко конвертировать в оригинальную рпгшку и заставить сносить бошки ксеносам.
Я решил сделать всё точно так же как и он. Я в 18 году срочку в гомо-армии служил. Там пизда была. У меня один раз штаны спиздили, а другой раз в наряде чуть офицеры не выебали. Вот я и подумал, что неплохо переложить свой экспириенс в игру, только вместо двачера у нас будет секси главная героиня уже у которой будут пиздить штаны и которую будут ебать офицеры. Всё это под комбат украденый у Рё и ффг.
Такой вот концепт.
Аноним 26/07/23 Срд 06:06:05 #488 №889655 
>>889652
Они врали про защиту сапогов.... Чтобы отвлечь от защиту штанов....
Аноним 26/07/23 Срд 10:23:15 #489 №889668 
>>889652
> Такой вот концепт.
К сожалению, это не концепт. Со всем уважением к твоим страданиям. По крайней мере, это не концепт игры, это концепт дрочильного рассказика для стульчик-нэт.

Концепт игры это описание игровых циклов:
1. Перетасовать колоду.
2. Раздать игрокам по 6 карт.
3. Достать одну карту и положить на неё колоду.
4. Выкладывая карты по одной побивать карты соперника.
5. Профит.
Аноним 26/07/23 Срд 14:17:34 #490 №889724 
>>889668
>это концепт дрочильного рассказика для стульчик-нэт.
Ты сейчас мою жизнь сравнил с рассказом со стульчик-нэт? Ты чё нах?

>К сожалению, это не концепт.

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

Вот примерный концепт. Надеюсь, так чуть понятнее.

Игра состоит из двух частей. Первая это обычная бытовуха с менеджментом таких стат как: пожрать, поспать, стресс. В этой части мы потихонечку через расписание занятий прокачиваем скиллы нашего чара, а статы как раз играют роль ограничителей (ну т.е. если не хватает сна, то проёбываем занятия которые могут повысить скилл, а проёбаные занятия, это опездюливание от старших и стресс, который влияет на высыпаемость в ночь и который в свою очередь не даёт нормально учится и тренироваться, при этом единственное на что хватает сил в день – это лечь на кровать и получить пизды и т.д и т.п). Два занятия в день оформленные мини-играми (мудрый крот какой-нибудь и разрешить небольшой ивентик или пройти чек на скилл) и свободное время вечером на покупку печенюх. Комбат будет прокаться по сюжету на какой-нибудь 1488 день, а вот будет ли чар игрока к нему готов уж тут как сложиться (если не готов, то смертью заканчивать не хочу, а то софтлок).

Вторая часть - комбат. Пошаг. Выглядит примерно, как рпгмовский т.е. никого движения только статика. Проблема в том, что такую боёвку очень легко сделать однообразной, даже если использовать рулбук древних и слизать от туда всю систему. У меня есть пару идей как сделать более-менее интересно, но пока не начну, собственно, программировать комбат сказать что-то сложно. Поэтому пока решил упор сделать на мини-игры в той части игры, где комбата нет. Сейчас делаю мини-игру про заступление в наряд по штабу и уже от этого буду отталкиваться. Если получится сделать интересно - буду продолжать пилить всё остальное. Если не осилю даже такое простецкое, то буду вообще всё с нуля пересматривать.
Знаю, что звучит как сумбурное говно, но по традиции всё придётся урезать и поменять (а потом и отменить нахуй) ещё много раз. Так что пока сильно не беспокоюсь. Первая же законченная мини-игра покажет, что мне от себя ожидать и стоит ли продолжать всё это.
Аноним 26/07/23 Срд 15:06:39 #491 №889752 
>>889724
Ты только что Degrees of Lewdity
Аноним 26/07/23 Срд 20:00:07 #492 №889818 
Насколько Годотя удобна для простого 3д?
Аноним 26/07/23 Срд 20:18:07 #493 №889823 
Получиться ли че-то годное если просто пиздить чужие коды под нужные тебе вещи?
Аноним 26/07/23 Срд 20:28:38 #494 №889829 
Есть какие-нибудь расширения или ещё что, улучшающие работу с с# изнутри годота? Хотя бы поиск по всем файлам?
Аноним 26/07/23 Срд 21:18:42 #495 №889840 
>>889818
Для начала научись писать название движка без ошибок.
Аноним 26/07/23 Срд 21:19:36 #496 №889841 
>>889829
Я бы брал стороннюю IDE, типа VSCode.
Аноним 26/07/23 Срд 21:39:43 #497 №889857 
Делал свою игру для яндекс.игр на годоте последней версии и уже на этапах как заливал осознал, что Яндекс Игры просто не поддерживают Годот 4.

Неужели открывать Годот 3 (а какой именно?) и там пилить всё заново? Пиздец...
Аноним 26/07/23 Срд 21:57:52 #498 №889867 
>>889857
>Яндекс Игры просто не поддерживают Годот 4.
В чем проявляется? Что именно? Какая конкретная техническая проблема?
>Неужели открывать Годот 3 (а какой именно?)
Для веба и мобилок имеет смысл, в треде давно это говорят.
LTS сейчас 3.5.2, но 3.6 тоже норм в принципе.
Ну и тести на раннем этапе.
> там пилить всё заново?
В зависимости от игры, возможно практически ничего переделывать не придется, на день работы.
Аноним 26/07/23 Срд 22:00:49 #499 №889874 
>>889867
The following features required to run Godot projects on the Web are missing:
Cross Origin Isolation - Check web server configuration (send correct headers)
SharedArrayBuffer - Check web server configuration (send correct headers)

Но в целом уже в гугле тоже прочитал что годот 4 для веба не подходит... обосрамс
Аноним 26/07/23 Срд 22:18:52 #500 №889887 
>>889874
Обе эти хуиты и для 3 нужны. Во всяком случае моя веб-игра на итче не работает если не поставить на страничке эти галки. На CORS жалуется.
Аноним 26/07/23 Срд 22:24:47 #501 №889889 
>>889887
На какой страничке? В интерфейсе яндекса и галок никаких нет, просто кидаешь архив и тестишь, нихуя не работает.
Аноним 26/07/23 Срд 22:29:36 #502 №889891 
Там Петя Сканер вышел на связь
https://www.youtube.com/watch?v=VQ2SAAhIut8
Аноним 26/07/23 Срд 22:29:49 #503 №889892 
>>889874
По идее и то и другое включается на сервере. Так что тебе имеет смысл связаться с техподдержкой яндекса.
В 3-ке SharedArrayBuffer вроде опциональны, только если экспортить html-threads версию. А CORS вроде бы тоже сам по себе не нужен, просто его тянет за собой SharedArrayBuffer.
Не знаю какие минусы если не экспортить в 3-ке многотопоточную. Читал что звук может лагать, но я такого не заметил даже на некрожелезе.
Аноним 26/07/23 Срд 22:32:15 #504 №889895 
>>889889
Итча.

>>889892
Зависит от того, используешь ли треды в своей игре. У меня используются, так что, видимо, эта залупень мне нужна и в трешке.
Аноним 26/07/23 Срд 22:35:46 #505 №889897 
>>889895
Ну а что будет если их нет в веб версии? Просто блокирующая синхронная загрузка? Я не проверял.
Аноним 27/07/23 Чтв 03:39:01 #506 №889928 
Проебланил второй день подряд без открывания туториалов :(
Аноним 27/07/23 Чтв 12:20:22 #507 №889945 
>>889928
Делай игры.
Аноним 27/07/23 Чтв 14:49:39 #508 №889977 
Начинаю делать игру и планирую заработать с нее минимум 10 рублей.
Аноним 27/07/23 Чтв 15:54:09 #509 №889988 
Звук лагает в экспорте в хтмл5 из Годот3. Как фиксить?
Аноним 27/07/23 Чтв 16:40:54 #510 №889995 
>>889891
ЛОЛ, он серьёзно предлагает СПАМИТЬ в каменты названием его игры, чтобы после 25 таких каментов получить бан и ключ на его дурацкую игру, которую все кто хотел бесплатно на андроиде прошли. Или спиратят и пройдут на торрентах. Или посмотрят тот же летсплей, чай у него не сессионка.

Хотя с его числом подписчиков дурачки найдутся.

Стыдно за наш игрострой...
Аноним 27/07/23 Чтв 17:46:43 #511 №890008 
>>889995
Предлагаю новое погоняло - Петя Спамер
Аноним 27/07/23 Чтв 17:47:59 #512 №890009 
>>889652
>только вместо двачера у нас будет секси главная героиня уже у которой будут пиздить штаны и которую будут ебать офицеры.
Ты уверен, что сеттинг "тян в армии" будет популярен у твоей целевой аудитории (дрочеров)? Или ты сам дрочишь на тян в униформе? Иначе не понимаю, зачем нужен именно такой сеттинг...

>>889724
>Вот примерный концепт.
Не вижу в нём "шлюхосим". Секс-то будет вообще?

>>889752
>Degrees of Lewdity
Там симулятор выживания лоли...
Аноним 27/07/23 Чтв 18:02:48 #513 №890012 
>>890009
Тем не менее куча механик, которые он хочет
Аноним 27/07/23 Чтв 19:46:21 #514 №890033 
Можно как-то напрочь удалить шаблон экспорта чтобы заново его скачать? У меня есть подозрение, что мой шаблон неправильный и как-то неправильно экспортирует, потому что 3.5 должен нормально на HTML5 экспортировать. А у меня даёт ошибку с shared array bufferом.
Аноним 27/07/23 Чтв 20:01:37 #515 №890042 
>>890033
>удалить шаблон экспорта
На Windows открываешь примерно это:
>%appdata%\Godot\
Там ищешь export или что-то похожее -> удаляешь.

На линуксе сам ищи, тыжлинуксоид, разберёшься.
Аноним 27/07/23 Чтв 20:13:59 #516 №890045 
>>890033
Проверь как я писал выше в 3ке есть разные варианты экспорта, SharedArrayBuffer это когда версия с thread, попробуй regular.
Аноним 27/07/23 Чтв 20:23:41 #517 №890049 
>>890045
Я поставил regular, отключил компрессию vram, поставил GLES2. Всё равно в ебучем черновике яндекса не запускается. На версии 3.5.2. Я ща ебанусь уже, везде работает, в локалхосте работает, в итче работает, только конкретно на яндексе не работает.
Аноним 27/07/23 Чтв 20:56:44 #518 №890059 
>>890049
В продолжение: может в самой игре что-то не даёт экспортироваться нормально или использует треды или еще что-нибудь такое? Как это вычислить?
Аноним 27/07/23 Чтв 21:05:46 #519 №890064 
Хотя вряд ли, даже новый файл где есть нод2д и спрайт с иконкой годота созданный за 5 секунд не экспортируется в черновик яндекса. Где-то точно настройки неправильные или экспорт темплейт, но я сто раз перепроверил настройки которые знаю и переустановил темплейты, все равно не работает.
Аноним 27/07/23 Чтв 21:07:53 #520 №890065 
>>890049
Не может быть так что закэшировался какой-то предыдущий билд?
Аноним 27/07/23 Чтв 21:27:18 #521 №890066 
>>890059
Если ты сам в коде треды не используешь то экспорт с тредами тебе не нужен.
Аноним 27/07/23 Чтв 21:34:18 #522 №890068 
>>890049
А в браузере консоль разработчика пишет какие-то ошибки?
Аноним 27/07/23 Чтв 21:35:01 #523 №890069 
>>890049
Но я все таки на твоем месте написал бы в поддержку - не похоже что тут кто то пробовал туда выкладывать.
Аноним 27/07/23 Чтв 21:56:35 #524 №890075 
>>890065
>>890066
>>890068
>>890069
Всё, разобрался. Дело было в том, что я долбоёб. Я неправильно интерпретировал интерфейс яндекса и не понял, что надо подтверждать загрузку нового билда каждого. Короче пиздец.
Аноним 27/07/23 Чтв 22:03:10 #525 №890081 
>>890075
Ну вот я поэтому и подумал про кэширование. Я так на итче обламывался поначалу, то не заметил что версия залитая через butler не заменила ту что сначала сделал при создании странички, то заливал версию забыв экспортнуть. Потом стал писать номер версии на сплеш скрине чтобы хотя бы замечать что тестирую.
Кстати, яндекс игры требует при реге какое-то удостоверение личности?
Аноним 27/07/23 Чтв 22:25:23 #526 №890085 
>>890081
На реге вроде имя просит, потом на выводе собственно денег уже просит документы.
Аноним 27/07/23 Чтв 22:29:26 #527 №890088 
>>882096 (OP)
Можно как-нибудь отключить сортировку ysort для одной ноды?
Аноним 28/07/23 Птн 12:58:19 #528 №890156 
Anger.png
Когда перекат?
Аноним OP 28/07/23 Птн 13:12:09 #529 №890161 
>>890156
Хош прямо щас перекачу? Этой пикчей катить?
ПЕРЕКАТ Аноним OP 28/07/23 Птн 13:22:13 #530 №890165 
>>890164 (OP)
>>890164 (OP)
>>890164 (OP)
comments powered by Disqus

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