Главная Юзердоски Каталог Трекер NSFW Настройки

Gamedev

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 500 126 63
Godot #49 Аноним # OP 05/05/24 Вск 11:52:19 949247 1
1714899054800.png 5590Кб, 3000x3000
3000x3000
1714899054854.mp4 6425Кб, 800x600, 00:00:29
800x600
1714899054854.webm 29878Кб, 1280x716, 00:02:32
1280x716
Аноним 05/05/24 Вск 12:01:20 949250 2
Перекатываюсь с тупым вопросом.
Аноны, в Disco Elysium и PoE от обсидиан, да и во многих других играх, используют в качества задника просто огромную пикчу разрезанную на куски. Как мне это реализовать в годо? Я гуглил, но нихуя не нашёл.
Аноним 05/05/24 Вск 12:05:12 949252 3
Какая страшная Гондесса. Вряд ли в тред с таким страшным пиком будут заходить.
Аноним 05/05/24 Вск 12:16:41 949253 4
>>949250
Погугли cubemap, вдруг что дельное нагуглится?
Аноним 05/05/24 Вск 12:18:03 949254 5
>>949250
Всмысле реализовать? Это буквально тупо добавить спрайт в сцену. О какой реализации идет речь.
Аноним 05/05/24 Вск 13:01:26 949257 6
>>949250
Руками. Берешь и режешь и вставляет спрайтами как тебе нужно, чтобы y-sort их учитывал. Довольно много муторной ручной и скучной работы. Поэтому теперь я предпочитаю 3д.
Аноним 05/05/24 Вск 13:06:08 949258 7
image.png 332Кб, 921x732
921x732
Аноним 05/05/24 Вск 13:21:43 949262 8
>>949259
Чего рвонькаешь? В чем проблема? Я сейчас пихнул в сцену спрайт размером 24000x16000, фпс (без всинка) был 3200, стал 3150. Ты чет видишь проблемы там, где их нет. И хамишь еще, хоть я и не тот анон, которому ты отвечаешь.
Аноним 05/05/24 Вск 13:41:31 949268 9
>>949266
Режут пикчу чтобы y-sort работал >>949257

Я делал игру с под 400 y-sortнутых и вручную нарезанных спрайтов на видимый экран, плюс шейдеры-партикли и прочее. Не испытывал особых проблем производительности. Еще и на мобилки ее выкатил, представляешь.

>если не понимаешь, о чём речь.
Ну расскажи нам, о великий сенсей, как делать нормальные игры с помощью 2д спрайтов. Пока ты тут только воняешь.
Аноним 05/05/24 Вск 13:57:29 949274 10
>>949266
> иначе бы никто не ебался и не резал пикчу на сотни частей.
Чел, сейчас не 90-е.
Аноним 05/05/24 Вск 14:03:07 949278 11
>>949270
Уже побежал деанониться ради какой-то чмони на аиб, которая даже аргументы привести не в состоянии, только апеллирует к своему, якобы, знанию, которое старательно скрывает.
Аноним 05/05/24 Вск 14:08:57 949281 12
Как двигать персонажа? В Disco Elysium и PoE от обсидиан, да и во многих других играх, используются персонажи, которые передвигаются. Но очевидно что если постоянно двигать персонажей, то о производительности никакой долбоеб не расскажет. Как мне это реализовать в годо? Я гуглил, но нихуя не нашёл.
Аноним 05/05/24 Вск 14:27:40 949284 13
>>949250
В годоте не сильно шарю, перекатился с юньки, но это по логике никак не должно напрягать.
На экране отрисовывается фиксированное кол-во текстуры, остальное в памяти сидит ничего не нагружает и потребляет от силы пару мегабайт.
Теоретически если делать картинки 100000х100000 не разрезая тогда могут быть проблемы.
У меня сцены с десятками миллионов полигонов держали спокойно 150+ фпс.
Аноним 05/05/24 Вск 14:28:47 949285 14
>>949284
>С юньки
ХАха годот тебя еще выебет, жди.
Аноним 05/05/24 Вск 14:31:53 949286 15
>>949285
Да поебать, делаю для души.
Аноним 05/05/24 Вск 14:32:27 949287 16
>>949286
коли с юньки катился, на сишарпе щас работаешь?
Аноним 05/05/24 Вск 14:33:14 949288 17
Видео-05-05-202[...].webm 31512Кб, 1280x642, 00:01:48
1280x642
>>949247 (OP)
О, мою шебемку закрепили, тогда вот новая.

Сейчас раскидываю торговцев по карте, и буду парится с диалоговыми окнами. Затем всякие мелкие активности для первой локи сделаю
Аноним 05/05/24 Вск 14:34:46 949289 18
Аноним 05/05/24 Вск 14:35:34 949290 19
>>949289
а, ну тогда беру свои слова назад. Так годот тебе возможно даже понравиться, хотя рофлянки кидать один хуй будет
Аноним 05/05/24 Вск 14:36:29 949291 20
>>949280
Ты тут утверждаешь что ничего не работает, все не так, и производительность должна падать. При этом не то что пруфов, а аргументов не приводишь. Интересно, как же тогда другие игры реализуют подобное? Магией? Заметь, ты даже предположений не строишь. И о чем с тобой разговаривать? Ты пустой просто.
Аноним 05/05/24 Вск 15:13:19 949296 21
Токсичность не разводим.
Если отвечать на вопрос, то встроенного механизма, наверное, нет
Задача сводится к назрезанию картинки автоматически (например tool script) и стримингом. И то и другое пишется довольно просто или берется аддон (zone loading, какой нибудь sprite cropper) либо картинка нарезается imagemagic, кускам даются названия по соответствующему тайлу x, y. В общем все автоматизируется или делается в полуавтоматическом режиме.
Аноним 05/05/24 Вск 15:21:44 949299 22
>>949297
Вот и сгрыни обратно в свой загон блевик, сиди там дальше про пропуки рассказывай.
Аноним 05/05/24 Вск 15:41:27 949304 23
И снова нубский вопрос
Есть плеерконтроллер

func interacted_objects_input_event(viewport, event, shape_idx, interationObjects):
if Input.is_action_just_pressed("left_click") and (player.current_state == "Idle" or player.current_state == "Move"):
player.is_going_to_interact = true
player.interactible_object = interationObjects.get_child(shape_idx)
player.click_position = player.get_global_mouse_position()
get_tree().call_group("Player","change_to","Move")

func _input(event):
if Input.is_action_just_pressed("left_click") and (player.current_state == "Idle" or player.current_state == "Move"):
player.is_going_to_interact = false
player.click_position = player.get_global_mouse_position()
get_tree().call_group("Player","change_to","Move")

if Input.is_action_just_pressed("left_click") and (player.current_state == "Dialogue"):
dialogue_manager.get_next_line()


_input для всего подряд, interacted_objects_input_event для клика по активному объекту, сейчас при интеракте срабатывает диалог

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

какой бестпрактис это починить?
Аноним 05/05/24 Вск 15:41:32 949305 24
>>949297
Да-да, я тебя услышал, ты зашел потролить своей тупостью. Пиздуй.
Аноним 05/05/24 Вск 15:54:14 949310 25
>>949304
Документация вроде как говорит, что два инпута не могут одновременно обрабатываться, но может дело в том, что _input в контроллере, а _on_input_event, который вызывает interacted_objects_input_event в ноде с активными объектами
Аноним 05/05/24 Вск 15:55:48 949311 26
>>949310
>два инпута не могут одновременно обрабатываться
всмысле один импут два раза
Аноним 05/05/24 Вск 16:15:10 949318 27
>>949304
Имхо, бестпраксис это не смешивать два подхода, пока это возможно. Ты или используешь ооп input_event(viewport, shape_idx), или возню с get_global_mouse_position() и action_pressed("left_click").
Аноним 05/05/24 Вск 16:42:32 949325 28
0020-1677.mp4 17279Кб, 1024x768, 00:00:55
1024x768
Screenshot8.png 401Кб, 706x572
706x572
Screenshot11.png 431Кб, 707x613
707x613
Два дня трахался с рутмоушеном, но персонаж все равно скользит, особенно заметно на медленных анимациях - вперед+лево/право и назад+лево/право. Плюс какое-то непонятное дергание в моменте когда последний кадр анимации должен переходить в первый кадр в цикле. Думал что дело в однотипности первого/последнего кадров, но нет, их удаление не решает проблему.

Намоделил пару стульев на примере своих кухонных, между раундами затраха с рутмоушеном. Еще сотня моделей впереди.
Аноним 05/05/24 Вск 17:06:17 949329 29
>>949325
А персонажа сам моделил? Попка сочная, но глаза надо исправлять!
Аноним 05/05/24 Вск 17:10:30 949333 30
>>949318
Ну вот я сделал два коллижена - коллижен локации и коллижен объекта, но они пересекаются же и все равно по клику по объекту два _on_input_event происходит.
Аноним 05/05/24 Вск 17:10:32 949334 31
>>949329
Та нет, взял со скетчфаба, но уже думаю следовало брать лоу-польную, больно уж долго ждать ре-импорта при малейших изменениях.
Аноним 05/05/24 Вск 18:37:21 949341 32
Бля, анон который посоветовал мне в прошлом треде плагин CSG to Mesh - спасибо, это просто 10 из 10 воркфлоу, я теперь половину моделек сразу в годоте херачу.
Аноним 05/05/24 Вск 19:03:49 949352 33
>>949325
> трахался с рутмоушеном, но персонаж все равно скользит
Ты что-то делаешь неправильно. Либо из контроллера не вырезаны фрагменты обычного моушена и добавляются к рутмоушену. Либо неправильно настроены масштабы. Абстрактные юниты расстояния в анимации должны быть пиксель в пиксель равны абстрактным юнитам расстояния в движке.
Аноним 05/05/24 Вск 19:04:36 949353 34
>>949341
Пожалуйста! Для этого мы здесь.
Аноним 05/05/24 Вск 19:06:20 949354 35
>>949325
Проверь а от какой кости рутмоушн считается. Там были какие то нюансы, от таза или еще откуда.
Аноним 05/05/24 Вск 19:16:08 949357 36
>>949354
Бля, точно!
>>949325
Анон, анимации с миксамо отсчитываются от бедра, а годот считает от стоп, если я правильно понял. Там есть какой-то плагин к блендеру, который ретаргетит рут. Я видел это в каком-то из уроков по рутмоушенд для годота. Щас поищу.
Аноним 05/05/24 Вск 19:18:22 949359 37
0026-0768.mp4 6569Кб, 1024x768, 00:00:24
1024x768
>>949325
>Плюс какое-то непонятное дергание в моменте когда последний кадр анимации должен переходить в первый кадр в цикле.

Разобрался, проблема старая
https://github.com/godotengine/godot/issues/65513
В текущей версии завезли алочку "Trim" в разделе импорта анимаций, теперь гладко. Не идеально, но приемлемо.

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

Я беру анимации с Mixamo, но он не генерит root-кость для рутмоушена. Корневую кость генерирую аддоном для блендера godot mixamo converter, но этот аддон берет движение от кости таза, что приводит к излишним движениям. Видимо все таки видимо процесс не автоматизировать и придется ограничивать движение корня в каждой анимации дополнительно вручную.
Аноним 05/05/24 Вск 19:20:19 949360 38
>>949359
> аддоном для блендера godot mixamo converter, но этот аддон берет движение от кости таза
О том и речь, там аддон надо правильно настроить, наверное.
Вот тут я смотрел
https://www.youtube.com/watch?v=EmQBLxxPV3E
Аноним 05/05/24 Вск 19:24:13 949361 39
>>949359
Нихуя не приемлемо. Тебе надо рут выставить от грунта, от стопы ноги. Сам подумай. Это сродни инверсной кинематике. Тебе надо рутмоушеном полностью смоделировать зацепление с грунтом. Для этого рут-кость должна быть на нулевом расстоянии от грунта, а при боковых анимациях еще и в точке пересечения между грунтом и радиусом поворота.
Аноним 05/05/24 Вск 19:52:28 949368 40
Screenshot9.png 161Кб, 890x539
890x539
>>949360
Какая-то фигня. Инициализировал персонажа, нажал создание корневой кости, он мне ее в метре от персонажа над полом воткнул.


>>949361
>Нихуя не приемлемо.
Речь была про дергание из-за кривой склейки конца и начала в зацикленной анимации. А рутмоушен придется фиксить.
Аноним 05/05/24 Вск 20:32:45 949377 41
Ля чо нашёл https://www.youtube.com/watch?v=eF5J5wXjS2Y
Персонажи за минуты. Без ебли. Без скилла. Бесплатно! Без СМС. Но скорее всего с регистрацией.
Аноним 05/05/24 Вск 20:48:41 949380 42
>>949377
Cascadeur еще глянь, Майк на своем канале тоже его показывал.
Аноним 05/05/24 Вск 20:53:54 949381 43
>>949380
Двачую каскадер. Он недавно стал платным, но если был установлен бесплатный, там дарят ключик на два года.
Миксамо конечно хорошо, но со временем понимаешь что там особо постпроцессинга не делали. Так что первый кадр РАЗНЫХ мувсетов вовсе не обязан совпадать.
Аноним 05/05/24 Вск 20:55:54 949382 44
>>949381
Миксамо какой-то заброшенный. Адоб его купил и забил нахуй.
Аноним 05/05/24 Вск 22:02:22 949397 45
>>949380
> Cascadeur еще глянь
Нихуясе какая годнота!
>>949381
> Он недавно стал платным
Фу, говно.
Аноним 05/05/24 Вск 22:14:16 949402 46
image.png 235Кб, 571x645
571x645
>>949397
>>949381
>Он недавно стал платным
Это значит что его крякнут и он снова станет бесплатным. И если проверить рутрекер, то так и есть.
Аноним 05/05/24 Вск 22:24:30 949407 47
>>949402
Да-да, а потом, когда ты заработаешь свой первый миллион на стиме, тебя вызовут в суд и отожмут всё заработанное, ещё и должен останешься.
Аноним 05/05/24 Вск 22:26:55 949409 48
>>949407
> кок-пок, нидакажут!
Да конечно, не докажут. Этот софт генерирует анимации, прогоняя твой ключевые фреймы через физический движок. Кто знает, что ещё там стеганографией запрятано?
> кудах-тах, да ты хотя бы рубль заработай, о миллионе он говорит
Да, с мыслью о зарабатывании рубля рубль и заработаешь. Вот так мотивация и работает.
Аноним 05/05/24 Вск 22:31:24 949410 49
>>949407
>>949409
Будем честны, 98% не то что рубль не заработают, но и игру не релизнут. Тем более в стиме. Тем более с санкциями.
Аноним 05/05/24 Вск 22:32:45 949412 50
1714937564252.jpg 8Кб, 200x191
200x191
Аноним 05/05/24 Вск 22:40:45 949413 51
Собираюсь заказать для своей игры графон пиксельный. Какой договор заключать, чтобы потом не обнаружить своих персонажей на итч ио? Был у кого опыт?
Аноним 05/05/24 Вск 22:55:53 949422 52
>>949413
посади художника на цепь, и больше не спускай
Аноним 05/05/24 Вск 23:11:45 949426 53
Аноним 06/05/24 Пнд 00:25:42 949435 54
Бля, из-за всей этой ai-шной хуйни трясусь, что скоро не только художников, аниматоров, сценаристов, но и разработчиков/геймдизайнеров полностью заменят иишкой. Ебанной механическое пианино наяву. Хоть одну бы игру выпустить успеть, до наступления дивного нового мира...
Аноним 06/05/24 Пнд 00:49:34 949440 55
Аноним 06/05/24 Пнд 03:23:47 949452 56
image.png 648Кб, 1123x1280
1123x1280
Давайте, делайте игры пока вас AI не сожрал. Раз раз и сделал, раз раз.
Аноним 06/05/24 Пнд 10:28:11 949481 57
image.png 1Кб, 195x56
195x56
Ура, релизнулся.
Сейчас буду простыню советов накатывать.
Аноним 06/05/24 Пнд 12:04:13 949490 58
Первое с чем столкнулся и от чего пригорело, локализация. Переводить нужно абсолютно все и везде, реклама, промо, ингейм калтент, каждый пердеж, даже тот который по факту перевести нельзя, у меня к примеру было сокращение "lvl" до которого доебались, если на ру и ен еще можно локализовать, то как это будет на других языках только носителю известно, так что анон забудь про любые сокращение, либо пишешь слова полностью, либо по возможности вообще не используешь.

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

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

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

Да и все наверное. Это все доебы которые были ко мне, только были они в разных моментах. Чет хуйни насрал бесполезной, думал пополезней будет.

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

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

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

Чтоб оффнуть скроллбары окна, если такой же тупой как и я, открой index.html через блокнот и в самом верху документа в body{} вставь эту строку "overflow: hidden;". Спасибо анону из прошлого треда за этот совет.


В целом, документация яндекса полная хуйня и шляпа, пункты описывают только общую картину, поэтому ты считай по минному полю идешь на ощупь, а узнаешь о том что наступил на мину от чмодера.
Аноним 06/05/24 Пнд 12:52:44 949496 59
>>949490
Про деньги интересно. Сколько уже налутал?
Аноним 06/05/24 Пнд 12:57:44 949497 60
>>949435
Ну вот например будут ИИ, которые просто выплевывают готовые экзешники по промпту, а будут такие, которые сгенерируют тебе проект для движка, в котором ты сам сможешь что-то исправить ручками под свои хотелки. Во втором случае тебе все еще понадобятся навыки разработчика/геймдизайнера.
Аноним 06/05/24 Пнд 13:04:35 949501 61
изображение.png 877Кб, 1480x539
1480x539
изображение.png 4Кб, 453x87
453x87
>>949435
Да не трясись. ИИ это кал, не более чем продвинутый гугл. Пока все паникуют, просто учись с помощью него и повышай свой скилл как программиста\художника\разработчика\дисигнера.

Наоборот короче вкидывай как всё это даванет всех, пускай зумеры идут учиться на кого угодно, но не в айтишечку. Только вот ДНО работы ИИ точно даванет, но не профессии богемы.
Аноним 06/05/24 Пнд 13:17:15 949504 62
>>949496
Какие деньги, сегодня утром только одобрили. Стату через неделю минимум кину, а с большей вероятностью через две.
Аноним 06/05/24 Пнд 13:22:57 949507 63
>>949504
А там не показывают чтоле сразу сколько игра заработала? Там ведь буквально аналог адсенса. Возможно тогда яндекс объябывает и без того нищих разработчиков на рубли.
Аноним 06/05/24 Пнд 13:27:21 949510 64
17130303216060.mp4 955Кб, 1280x720, 00:00:04
1280x720
>>949501
>богемы
Проорал с тебя, богема ебаная. За ИИ будущее во всём, запомни.
Аноним 06/05/24 Пнд 13:29:26 949513 65
0070-1871.mp4 15652Кб, 1024x768, 00:01:00
1024x768
>>949359
Окей, разобрался, нужно было использовать get_root_motion_rotation_accumulator, иначе вращение ноды не учитывается. Я так до конца и не понял, зачем мне перемножать обратный от этого кватернион на кватернион моего CharacterBody. Потом разберусь, пока работает достаточно хорошо, блендить анимации более качественно буду на модельке ГГ, сейчас Годетта просто для тестов.

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

Если есть аннон с нейронкой, нагенерь портреты годетты - нормальный, уставший и ахегао. Для отражения запаса ХЗ в интерфейсе как было на демке с пепегой.
Аноним 06/05/24 Пнд 13:30:39 949514 66
>>949510
ИИ ничего кроме как извинятся бесконечно не умеет. Просто возможно ты слабый, раз решения от ИИ воспринимаешь как что-то невероятное.

Зачастую ИИ не может решить банальные задачи с уровнями папок.
Аноним 06/05/24 Пнд 13:42:22 949519 67
image.png 4Кб, 326x181
326x181
>>949507
Показывает, только я к тому что откуда игроки будут если игра 3 часа как релизнута и находится в очке списка "новое", тут ждать надо, пока что только 1 чел поиграл и с него я получил пикрил.
Аноним 06/05/24 Пнд 13:51:32 949523 68
>>949519
Ну норм, прикинь, у тебя не было этой половины копейки, а теперь появилась. Заебись же.
Аноним 06/05/24 Пнд 14:20:02 949525 69
>>949481
Маладца, поздравляю.

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

https://icons.getbootstrap.com - эти можно по-отдельности в свг-формате скачивать. В третьей игре так делаю.
Аноним 06/05/24 Пнд 14:25:23 949527 70
>>949519
я выключил стики у умирающей четыре месяца игры, пусть мимокроки только за запуск и проигрыш получали в лицо фуллскрин рекламу
Аноним 06/05/24 Пнд 14:25:48 949528 71
image 3Кб, 452x111
452x111
Аноним 06/05/24 Пнд 15:01:26 949529 72
>>949528
а годот игры все таки можно засовывать в яндекс игры?
Аноним 06/05/24 Пнд 15:50:50 949538 73
>>949529
я мимокрок, не из годюнити тредов

в чатах говорят можно
Аноним 06/05/24 Пнд 15:51:46 949539 74
>>949538
мимокрок, пишет в чате по годоту, не работая в годоте
1000iq
Аноним 06/05/24 Пнд 15:53:29 949540 75
>>949529
Всегда можно было.
Аноним 06/05/24 Пнд 16:01:56 949541 76
image 617Кб, 616x831
616x831
>>949539
торчало при скролле, не мог пройти мимо и не поныть про доходы
Аноним 07/05/24 Втр 00:01:39 949624 77
лана блять, изучу етот ваш годот
вытиран с гамаком, юнити и обоими фазерами за плечами
Аноним 07/05/24 Втр 00:09:21 949626 78
>>949541
Подумал что это капча и уже собирался искать велосипеды.
Аноним 07/05/24 Втр 00:33:50 949630 79
>>949247 (OP)
Приём, запрашиваю взаимопомощь!
Есть скрипт, прикреплённый к Node2D в _ready которого я задаю self.rotation_degrees и self.scale например. Таких нод у меня несколько, и мне надо задать им рандомные значения размера и поворота. Я подумал, что хорошей затеей будет создать не привязанный ни к чему скрипт, который будет мне эти рандомные значения возвращать. Я объявил его
var myscript = ("res:/hui/riddler.gd")
Годот видит скрипт, видит функцию в нем, а пользоваться не дает, говорит
Parser Error: Cannot call non-static function "riddler()" on the class "res://hui/riddler.gd" directly. Make an instance instead.
Ошибка не гуглится, и я так понимаю, что моя затея не работает на уровне концепта, а с ангельским у меня, помогите пзязь :С
Аноним 07/05/24 Втр 00:35:47 949631 80
>>949630
тебе нужен инстанс на сцене (пустой нод2д например) с этим привязанным скриптом
иначе ты пытаешься поюзать нестатический метод, а это харам

я если что вот этот анон >>949624, только приступаю к изучению
Аноним 07/05/24 Втр 00:48:37 949633 81
>>949630
Я бы сделал ноду-компонент, которая ротирует своего родителя по реди.

- ParentNode
-- Rotator

И крепил бы ее ко всем, кого надо проворачивать.
Аноним 07/05/24 Втр 00:50:34 949634 82
Аноним 07/05/24 Втр 01:08:18 949637 83
>>949624
А зачем тебе годот?
Аноним 07/05/24 Втр 01:12:02 949638 84
image.png 32Кб, 1200x1200
1200x1200
Этот синий чел мне уже как брат.
Аноним 07/05/24 Втр 01:20:59 949639 85
image.png 2Кб, 232x108
232x108
Ну все, 8 рублс получено, можно и удалять игру.
Аноним 07/05/24 Втр 02:11:40 949644 86
>>949637
Я ебанутый захотелось чего-то нового в жизни
Аноним 07/05/24 Втр 02:26:39 949645 87
>>949633
У меня там и так 3 ноды вложены друг в друга для каждого такого элемента, я пытаюсь сохранить рассудок порядок какой-никакой и скрипты хоть немного сократить. А логика с ротатором у меня плюс-минус такая и реализована.

>>949631 >>949634
Т.е. проблема именно в том, что этот скрипт у меня не привязан никуда и так нельзя делать просто потому что?
Аноним 07/05/24 Втр 02:46:36 949648 88
>>949630
>Я объявил его
>var myscript = ("res:/hui/riddler.gd")
Хуйню сделал.
Если уж тебе так хочется сделать ни к чему не прикреплённый скрипт-библиотеку, то тут два варианта:
а) extends Node и объявить его как синглтон;
б) extends Object, прописать ему class_name, а все функции, которые планируешь вызывать извне, сделать static. Обращаться к нему, соответственно, по класснейму.
Аноним 07/05/24 Втр 03:15:49 949649 89
>>949648
Короче синглтоном сделал. Тебе и всем небезразличным - спасибо за помощь.
А вообще это нормальная практика - иметь на сцене пустую ноду, чтобы в нее складывать скрипты для однотипных элементов?
Аноним 07/05/24 Втр 03:43:56 949650 90
image.png 86Кб, 333x498
333x498
Аноним 07/05/24 Втр 03:56:13 949651 91
Аноним 07/05/24 Втр 13:28:40 949729 92
Ля чо нашёл сегодня https://godotengine.org/asset-library/asset/2938
Глобальные сигналы без шины (под капотом шина есть, и это сам майнлуп).
В комплекте поставки есть две ноды: источник и приёмник.
Ты раскидываешь источники где надо, переименовываешь их как удобно, и эти имена становятся именами сигналов, которые регистрируются под капотом.
Приёмникам назначаешь в инспекторе имя сигнала который он будет ловить. Это единственный минус - стринг в инспекторе.
Коннектишь встроенный прокси-сигнал приёмника. На источнике вызываешь встроенную прокси-функцию эмит.
Ну и всё.
Аноним 07/05/24 Втр 13:35:42 949736 93
Аноним 07/05/24 Втр 13:38:07 949737 94
.png 13Кб, 512x413
512x413
Зачем этот автобус везет анальную пробку?
Аноним 07/05/24 Втр 13:40:14 949738 95
>>949737
Я вижу два челика смотрящих на указатель
Аноним 07/05/24 Втр 15:14:30 949763 96
0604-7746.mp4 33501Кб, 1024x768, 00:01:59
1024x768
Воткнул тестовые стены размером с однушку. Высота потолков - 2.7 метра, высота модельки Годетты - 1.6 метра. Для игры, видимо, площадь слишком маленькая, придется делать комнаты нереалистично раза в полторы больше, иначе персонажу особо не развернуться, тем более во время боевки.
Аноним 07/05/24 Втр 16:03:22 949787 97
>>949763
Лол, да, масштабы типичного хруща не располагают к такой камере.
Аноним 07/05/24 Втр 16:08:25 949788 98
>>949763
> видимо, площадь слишком маленькая
Ничего не маленькая. Я как посмотрел видос, так прям сразу вайбы резидента. Там тоже в особняках много узких коридоров, в которых не развернёшься. С одной стороны, всё заебись. Делай в масштабе. С другой стороны, не стоит забывать, что если ты собрался пилить резидент-лайк, тебе необязательно возводить хрущи по ГОСТу, резидент - это про нереалистичные запутанные извилистые коридоры в загадочной резиденции злобного гения. Запутанность там не для архитектурной целесообразности, а для расстановки головоломок, ловушек и схронов.

И ещё вопрос по камере. Как у тебя она реализована? А то вижу некоторую дёрганность при переключениях видов. Есть несколько соображений по этому вопросу, но сначала надо знать как именно у тебя щас, чтобы не советовать то, что у тебя уже есть.
Как бы делал я:
1. Камера одна в корне дерева.
2. У камеры есть таргеты, Т1 к которому она следует и Т2 на который смотрит.
3. Камера принимает сигнал смены Т1 и время, за которое должна переместиться к новому Т1 (не сводя взгляда с Т2).
4. На сцене есть Т1-точки, есть area3d - зоны отслеживающие перса. Если перс вошёл - эмит смены таргета на привязанный к зоне. На выход чекается свой счётчик у перса (об этом далее).
5. Так же в некоторых сценах могут быть салазки на основе Path3D по которым таргет Т1 камеры может ездить за персом.
6. Перс всегда Т2 (ну кроме катсцен пожалуй). У перса есть свой таргет Т1 за спиной, перс входя в ту или иную зону увеличивает счётчик зон, выходя уменьшает (как в примере с лестницами ранее в треде). Если счётчик обнулился, перс сам эмитит сигнал смены таргета на свой Т1.
7. Ну и разумеется, если есть глубокие смертельные ямы, то у них на входе тоже расставляются зоны, хватающие камеру и посылающие персу гейм-овер.
Как-то так.
Аноним 07/05/24 Втр 16:11:37 949790 99
>>949788
А ещё можно вещать камеру на босса и заставлять игрока сражаться с боссом от лица босса же. В резиках я такого не упомню, но в олдовых экшонах на дендях-сегах такое встречалось.
Аноним 07/05/24 Втр 18:18:22 949863 100
>>949763
>придется делать комнаты нереалистично раза в полторы больше
Добро пожаловать в основы геймдизайна
Аноним 07/05/24 Втр 18:54:20 949886 101
>>949763
сделай годдету карликом
Аноним 07/05/24 Втр 19:03:06 949889 102
image.png 1611Кб, 1159x689
1159x689
Аноним 07/05/24 Втр 19:04:03 949890 103
image.png 123Кб, 567x727
567x727
Аноним 07/05/24 Втр 19:34:01 949906 104
0372-1479.mp4 8931Кб, 1024x768, 00:00:36
1024x768
>>949788
>Как у тебя она реализована?

Примерно как у тебя описано.
1. Каждая комната - Area3D со своей камерой.
2. Area3D регистрирует столкновение с игроком и делает свою камеру активной.
3. Камера нацеливается на игрока (функция LookAt) с задержкой, чтобы движение камеры было плавным.
4. Камера следует за игроком в пределах CollisionShape3D родительского Area3D, сохраняя максимально возможную дистанцию (в случае квартиры, макс. дистанция следования установлена в 100, поэтому камера стоит на месте, в случае улицы, макс. дистанция установлена в 3, поэтому она следует за игроком, пока не достигнет границ CollisionShape3D).
5. Камера прикреплена к потолку CollisionShape3D родительского Area3D.

Каждая такая Area3D имеет свою собственную камеру, это позволяет настраивать каждую камеру отдельно. В моем случае FOV наружней камеры - 37, FOV камер квартиры - 60.

Данную Area3D я обозвал CameraRoomConstraint, описанная тобой рельса тоже понадобится, но буду реализовывать по мере необходимости.

>вижу некоторую дёрганность при переключениях видов.

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

> С одной стороны, всё заебись.

Базовый референсом был SH1-4. Сейчас посмотрел отрывок с помещением которое мне помнится чрезвычайно маленьким, но оно на самом деле довольно большое (в сравнении с моим)

https://youtu.be/1DS9KI7FUPo?t=1026

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

>>949886
>>949889
>>949890
Согласен поменять только на Slut-Godette в стиле Shadman.
Аноним 07/05/24 Втр 19:41:24 949910 105
>>949906
давай не чиби, а шортстак, вот это охуенно
Аноним 07/05/24 Втр 20:04:08 949922 106
>>949910
>шортстак
Там формы анимировать нужно или хотя бы регдоллом для сисек/жопы заморачиваться. Кому не впадлу, сделает.

>>949790
> боссом от лица босса же
Вообще, интересная задумка. Может даже дать в процессе игры намеки, на то что ГГ-галлюцинирующий злодей.
Аноним 07/05/24 Втр 20:17:39 949929 107
>>949906
> Согласен поменять только на Slut-Godette в стиле Shadman.
Хуясе! Наш слоняра! Одобряю!
> Сейчас поменял так, чтобы нацеливание камеры в момент перехода в новую комнату было мгновенным.
Если уж оставлять вариант с переключениями камер, то надо перед переключением новую камеру нацелить на игрока. Тогда не должно трясти.
Аноним 07/05/24 Втр 21:40:01 949944 108
>>949929
>Тогда не должно трясти.
Не вижу тряски.
Но переход из комнаты в комнату будет точно переключением.
Аноним 07/05/24 Втр 22:23:10 949953 109
Аноним 07/05/24 Втр 23:05:45 949958 110
image.png 30Кб, 810x366
810x366
Делайте игры
Аноним 08/05/24 Срд 06:25:48 949988 111
>>949944
> Не вижу тряски.
Нет, конечно, нет. Там на видосе не тряска, а как бы это выразиться, подворот. Одна камера направлена на север, вторая на запад, при переключении камере нужно несколько кадров, чтобы повернуться на север, и это заметно.
Если бы камера была одна, а переключались бы только гнёзда, к которым она липнет, то она бы более плавно двигалась, ящитаю. Алсо FOV и любые другие параметры у камеры тоже можно менять на лету, в том числе анимировать. Как-то видел как тот же FOV подстраивают при ускорении. Знаменитый эффект.
Аноним 08/05/24 Срд 07:01:17 949993 112
Анончики, сейчас наметился делать открываемую дверь (в 2д) и задумался. Как вообще делают взаимодействие с интерактивными объектами? Я пока вижу так - есть набор объектов - записки, двери, предметы и оружие у которых есть индивидуальные скрипты (дверь открылась, оружие поднялось итд) а у персонажа игрока только Area2D в которой можно активировать предмет. Так что ли?
Аноним 08/05/24 Срд 07:16:35 949994 113
>>949993
Интерактивный предмет предоставляет арею, а перс игрока предоставляет рейкаст в точку куда смотрит игрок. Если рейкаст ловит предмет в зоне предмета, только в этом случае появляется приглашение нажать кнопку Е.
Аноним 08/05/24 Срд 07:20:23 949995 114
>>949993
Ах, в двадэ.
В двадэ ареи у предметов, а ярлычок с буквой Е на персе игрока. Рейкаст уже не нужен (в зависимости от гемплея конечно, может и потребуется).
Перс входит в зону - приглашение появляется. Выходит - исчезает.
Аноним 08/05/24 Срд 07:53:29 949998 115
Как ето понимать? Экспортировал и запустил официальный пример изометрии https://godotengine.org/asset-library/asset/2718 на ноутбучной невидии. Ебаное окошечко 1152х648 с плитками - кулер на видеокарте пидорасит как турбину у самолета.
Аноним 08/05/24 Срд 08:54:59 950003 116
>>949998
Там на каждой свече 4 партикл генератора
Аноним 08/05/24 Срд 09:09:57 950006 117
Аноним 08/05/24 Срд 10:35:03 950020 118
>>949993
Area2D может зарегистрировать только выход или вход. Один раз.
А тебе надо что бы оно проверяло находится ли объект сейчас в зоне, или нет.
Сделай переменную меняющуюся при выходе и входе
Аноним 08/05/24 Срд 10:46:32 950021 119
>>950006
Как человек не игравший в сайленты никакие, у меня вопрос, там камера так же поуебщиному просто телепортируется? Без затемнения, без плавного перемещения? У меня от такого голова кружится
Аноним 08/05/24 Срд 11:04:05 950025 120
>>949998
> Как ето понимать?
Как движок для состоятельных парней. Элитный движок.
Аноним 08/05/24 Срд 11:06:34 950026 121
>>950021
Если с затемнением переключать - получится смута. Но мне не выдавали денег из кубышки, чтобы я смуту делал!
Если делать с пролётом, то у зумеров голова кружится.

Тупик. Патовая ситуация.
Аноним 08/05/24 Срд 11:24:54 950030 122
>>950026
будешь в тупую телепортировать??
Аноним 08/05/24 Срд 11:27:32 950031 123
>>950021
От затемнения раз в пять секунд у игрочка все мозги вытекут на десятой минуте. Во всех японских играх времен PS1-2 так. Сайлент, резик, динокризис, ДМЦ.
Аноним 08/05/24 Срд 11:43:47 950035 124
>>950031
И не только в японских. Принц Персии, как пример, там тоже. Хотя реже, чем у японцев. Старый юбисофт мог умеренно применять перемещение камеры. Места где камера лочилась в углу было 3,5 за всю игру.
Аноним 08/05/24 Срд 11:45:32 950036 125
>>950035
Ну да, соул ривер опять же.
Аноним 08/05/24 Срд 11:47:15 950037 126
>>950036
Да если повспоминать их много найдётся.
Аноним 08/05/24 Срд 13:18:22 950054 127
>>950021
>ез затемнения, без плавного перемещения?
Слишком медленно. Если там противник - он тебя уже захуярит, пока ты там плавно затеняешь/перемещаешь камеру.
Аноним 08/05/24 Срд 13:20:06 950056 128
>>950054
Дело сложное! Думоем! Как бы нам сделать-то так, пакрасате?
Аноним 08/05/24 Срд 13:22:58 950057 129
>>949993
У меня так.
Объект - ареа. Персонаж шлёт сигнал. Зашёл в арею - приконнектился; вышел из неё - дисконнектнулся. Есть мгновенно срабатывающие, которые вместо коннекта просто активируются при заходе. Ярлычок рисуют сами интерактивные объекты.
Аноним 08/05/24 Срд 13:28:51 950061 130
1709249379174312.jpg 233Кб, 944x944
944x944
>>949284
а чаму перекотился?
чемь юнька не понравилась?
Аноним 08/05/24 Срд 13:33:55 950064 131
>>950061
Монобехи тяжолые.
Аноним 08/05/24 Срд 13:50:25 950075 132
>>950064
>Монобехи тяжолые
Плохому танцору.....
Аноним 08/05/24 Срд 14:56:32 950092 133
image.png 558Кб, 1024x768
1024x768
>>950056
>Дело сложное! Думоем! Как бы нам сделать-то так, пакрасате?
А что если просто повесить камеру за спину? Как в первом СХ.
Аноним 08/05/24 Срд 15:10:53 950093 134
>>950092
Как в любой нормальной игре, ты хотел сказать. Эти камеры из-за угла и тогда, в дремучие года, были неиграбельным сблевом, а сейчас за это палками надо пиздить.
Аноним 08/05/24 Срд 15:14:12 950096 135
>>950092
Afaik, она там не заспинная, она как у меня здесь >>949513
То бишь имеет границы и дистанцию, на которой начинается следование за персонажам, что на больших площадях помещает ее заспину.
Аноним 08/05/24 Срд 15:21:08 950097 136
>>950093
Надо делать камеру как у гениального маэстро Миядзаки в солсах. Чтоб камера во время боссфайта застревала у босса под крылом, или в колоннах-стенах-камнях, чтоб игрок ничего не видел и огребал, бешенно матерясь. Вот это хардкор! Да что вы понимаете в настоящем хардкоре!
Аноним 08/05/24 Срд 15:31:35 950102 137
>>949490
Классная простыня. Пояснишь за сигналы?
Аноним 08/05/24 Срд 15:55:02 950106 138
>>950102
> Пояснишь за сигналы?
Что конкретно за сигналы пояснить?
Аноним 08/05/24 Срд 15:55:29 950107 139
>>949994
>>949995
>>950020
>>950057
Спасибо, анончики! А где можно почитать про организацию этой связи между игроком и объектом? Если логику объекта я написать смогу, то как работает этот "коннект" я недопетриваю.
Аноним 08/05/24 Срд 15:57:53 950108 140
>>950107
да просто сделай переменную, которая тру когда ты вошел и фолз когда вышел
если ты за оптимизацией, то сделай инт который равен 1 когда вошел и ноль когда вышел, когда входишь в другую ззону он будет равен 2 например
Аноним 08/05/24 Срд 16:08:08 950110 141
>>950107
> как работает этот "коннект" я недопетриваю
Это называется. Подписка на событие.
Смотри. Вот ты подписался на тред. И в углу у тебя панелька, которая показывает 3 непрочитанных постов. Увидев эту надпись ты открываешь тред и читаешь эти новые посты.

Здесь всё ясно?

Так же и с сигналами. Есть нода1, в которой объявлен сигнал. Есть нода2, которая видит ноду2 (знает о её существовании). Нода1 подписывается на сигнал, то есть коннектит к сигналу некоторый код, который будет исполняться при испускании сигнала (окошко с непрочитанными постами). Нода2, когда у неё происходят вычисления, о которых она должна просигналить (новые посты), испускает сигнал. При этом ей неважно, получил-ли кто-либо тот сигнал, сделала emit() и дальше пошла.
Аноним 08/05/24 Срд 16:10:19 950111 142
>>950110
> Так же и с сигналами. Есть нода1, в которой объявлен сигнал. Есть нода2, которая видит ноду1 (знает о её существовании). Нода2 подписывается на сигнал, то есть коннектит к сигналу некоторый код, который будет исполняться при испускании сигнала (окошко с непрочитанными постами). Нода1, когда у неё происходят вычисления, о которых она должна просигналить (новые посты), испускает сигнал. При этом ей неважно, получил-ли кто-либо тот сигнал, сделала emit() и дальше пошла.
Объяснятель, блять. Извините. Бистрофикс.
Аноним 08/05/24 Срд 16:49:53 950119 143
>>950096
Ну так, что если симулировать такую камеру, чтобы она, с одной стороны, была достаточно "тяжелой" и инертной, а, с другой, была именно заспинная/заплечная, не фиксированная.
Аноним 08/05/24 Срд 17:16:19 950121 144
>>950119
Тяжесть камеры зависит от геймплея. Если там ураганный экшон, то ни о какой инертности говорить не приходится.
Аноним 08/05/24 Срд 17:52:21 950125 145
>>950107
>Если логику объекта я написать смогу, то как работает этот "коннект" я недопетриваю.
Да там всё просто.

1. В скрипте персонажа где-нибудь в шапке объявляешь сигнал:
signal activate_areas(sender)
Можно без аргументов, просто полезно будет знать, кто активирует нашу арею, чисто расширяемости для.

2. Там, где обрабатываешь инпуты, вызываешь сигнал:
activate_areas.emit(self)
Всё, перс будет слать этот сигнал, вне зависимости, подписан ли на него кто-либо.

3. Теперь в арее (лучше это делать в её собственной сцене) присоединяешь из редактора даблкликом сигнал body_entered к её же скрипту, функция создастся автоматически:
func _on_body_entered(body):
if body.has_signal("activate_areas"):
body.activate_areas.connect(activate_me)


3+. То же самое с body_exited, присоединяешь из редактора даблкликом:
func _on_body_exited(body):
if body.has_signal("activate_areas"):
body.activate_areas.disconnect(activate_me)


4. Ну и тут же в арее описываешь ответную функцию, к которой собсно будешь присоединять:
func activate_me(sender):
print(sender, " activated me!")


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

В принципе, можно было бы сделать так, чтобы персонаж запоминал в массив все ареи, в которые зашёл, а потом по команде циклом вызывал бы в каждой из них нужную функцию. Никто тебя не наругает, если ты сделаешь так. Но сигналами - чище, красивее и универсальнее.
Аноним 08/05/24 Срд 18:18:30 950128 146
>>950108
>>950110
>>950125
Огромное спасибо! Сохраню и обмозгую, поэкспериментирую обязательно.
Аноним 08/05/24 Срд 18:52:06 950134 147
>>950125
Я не согласен. Здесь кастомный сигнал не нужен.
> if body.has_signal("activate_areas"):
> body.activate_areas.connect(activate_me)
У тебя уже есть body. Ты уже о нём знаешь. Зачем ты сам перед собой притворяешься, что ты о нём не знаешь? Приведи body к известному тебе типу и вызови известный тебе метод:
> if body is MyPlayer: #в четверке после такого ифа срабатывает тайпкаст и включаются подсказки
> body.add_to_interaction_callback_pool(activate_me)
...
> body.remove_from_interaction_callback_pool(activate_me)

А в плеере, соответственно, при жмяке на кнопку интеракции
> for callable in interaction_callback_pool: callable.call()

Разве нет? Разве так не удобнее?

Только вот в обоих случаях все интерактивные сундуки откроются разом. Хоть кастомсигналом, хоть пулом колбэков. А если они все меню открывают?

В случае с пулом я могу не вызывать все циклом, а посмотреть, сколько элементов в пуле? Вызвать крайний, например. Сигнал тупо вызовет все разом без возможности контроля.
Ну и в общем-то, почти как ты ниже написал
> В принципе, можно было бы сделать так, чтобы персонаж запоминал в массив все ареи, в которые зашёл, а потом по команде циклом вызывал бы в каждой из них нужную функцию.
Чище, красивее и универсальнее, когда интерактивные объекты сами добавляют себя в пул персонажу, сами себя удаляют. А игрок, когда жмёт кнопку, у персонажа происходят тайпкасты: для подтипа "мгновенное действие без меню" - выполнить метод "activate_me" разом у всех в цикле. Для элементов "действие с меню" вызвать activate_me у последнего из добавленных, или у первого из добавленных. В зависимости от правил игры. Вызывать меню по очереди, или отбросить все остальные. Вывести меню выбора на экран из пересекающихся интерактивных объектов. Твой кастомный сигнал ничего из этого обеспечить не сможет.
Аноним 08/05/24 Срд 19:17:13 950137 148
Нейросетки охуенны для мозгового штурма. Закидываешь ей описание своей игры, описываешь проблему, запрашиваешь десяток решений и что-нибудь да даст тебе идею. Нагенерил вчера себе сюжет в паре с нейронкой. В соло такое бы за месяц не написал.
Аноним 08/05/24 Срд 20:37:32 950169 149
>>950106
Можно пример гипотетический, где тебя сигналы говном кормили (или не гипотетический, я в треде совсем новый, мб для всех кроме меня очевидно, что за продукт ты делал)?
Аноним 08/05/24 Срд 23:29:24 950186 150
>>950169
Меня сигналы говном не кормили.
Я знаю, где их использовать, например ГУЙ: он висит в отдельном слое, в отдельной ветке дерева сцены, ничего не знает о происходящем в игре, а просто обрабатывает сигналы типа изменить_хитпоинты_на(10) или типа показать_меню(инвентарь)
И я знаю, где их не использовать, например, пуля: Она врезалась в коллизию. У неё есть информация об объекте коллизии. Нет смысла посылать сигнал в сферический вакуум о том что "пуля_нанесла_урон(пуля, тело). Достаточно прямо сообщить этому объекту "я наношу тебе баллистический урон на 10 хитпоинтов" и удалиться. Если коллизией была стена, она обработает сообщение одним образом, если живность, то обработает другим образом.

> что за продукт ты делал
О, тут можешь не переживать, я безыгорник диванный.
Аноним 09/05/24 Чтв 00:54:49 950202 151
>>950134
>Приведи body к известному тебе типу и вызови известный тебе метод
Категорически нет. Потому что duck typing.
Со всем остальным согласен, ты всё по делу написал. Вот только анон, который изначально вопрос спрашивал, ему будет полезно освоить сигналы, научиться их применять. И самое главное - вот те проблемы, которые ты описал, будет хорошо, если он сам на них наткнётся и научится решать.
Аноним 09/05/24 Чтв 07:08:41 950213 152
>>950092
Ну и примеры у тебя, в первом СХ камера переключалась на фиксированную в самый неподходящий момент.
Аноним 09/05/24 Чтв 07:44:15 950215 153
>>950202
> Категорически нет. Потому что duck typing.
Вот здесь поподробнее. Что ты имеешь ввиду?
(Про утиную типизацию объяснять не надо. Надо объяснить почему она категорически нет в данном примере).
Аноним 09/05/24 Чтв 09:26:24 950218 154
image.png 31Кб, 608x474
608x474
Анончики, поясните пожалуйста! Вот есть класс NodeTree, а в нём помимо прочего Camera. Почему тот объект, который я создаю в InitNodeTree и добавляю в CreateGameBranch - диспозится при первой же возможности и недоступна в SetCameraZoom, а если раскомментить 35ую строчку и получить в переменную Camera ту же самую камеру, то она уже норм и в SetCameraZoom она нормально используется? worldView - SubViewport и тоже поле NodeTree
Аноним 09/05/24 Чтв 11:10:15 950236 155
>>950218
Анонче объясни, а зачем ты гет и сет поставил? Я у ютуберов видел, но чет не выкупил нахуй оно надо...
Аноним 09/05/24 Чтв 11:31:01 950238 156
>>950236
Я и сам не до конца понимаю, по идее в этом конкретном случае разницы большой нет, но это более хорошая практика
Аноним 09/05/24 Чтв 11:31:49 950239 157
>>950236
Компилятор шарпа автоматически генерирует полный вид. Таким образом ты вроде как для себе просто переменную объявил, а по факту у тебя свойство, которому ты в дальнейшем можешь права навесить.
Аноним 09/05/24 Чтв 11:35:57 950240 158
>>950239
погоди ка, я типо объявляю ее как переменную, и могу спокойно творить с ней че вздумается???
щас проверю
Аноним 09/05/24 Чтв 11:37:00 950241 159
>>950218
> поясните пожалуйста
Предполагаю, что сетскрипт дропает предыдущий объект и назначает новый. Чтобы проверить это предположение, поменяй местами строчки 33 и 34. Если заработает - значит так оно и есть.
Аноним 09/05/24 Чтв 11:41:04 950242 160
Аноним 09/05/24 Чтв 11:43:20 950243 161
>>950240
А чё тебе может вздуматься-то с таким низким уровнем знаний по шарпу?
Напиши
> public Camera2D Camera { get; private set; }
И посмотри на реакцию.

Или вот ещё вариант, напиши
> Camera2D Camera => wordView.GetNode<Camera2D>("Camera");
Аноним 09/05/24 Чтв 11:46:05 950244 162
>>950242
А что именно произошло? Что-то изменилось?
Аноним 09/05/24 Чтв 11:48:25 950245 163
>>950244
Тоже ошибка с доступом к диспозанному объекту, но уже на попытке добавить дитя. Наверно ты прав и сетскрипт пересоздаёт объект.
Аноним 09/05/24 Чтв 11:49:25 950246 164
>>950218
Никогда в жизни не видел чтобы так делали. Зачем, если ты можешь просто спавнить сцену, в которой уже есть камера со скриптом?
Аноним 09/05/24 Чтв 11:50:00 950247 165
>>950218
Я не уверен, что здесь нужно применять сетскрипт. Я настаиваю на том, что именно он тебе всё ломает. У тебя в Camera.cs есть имя класса. В 26 строке напиши Camera = new MyCameraCS(); Затем закомменти 34ю строчку. Проверь.
Аноним 09/05/24 Чтв 11:50:52 950248 166
>>950243
я другой анон
я просто не выкупил про гетеры и сетеры и хуй забил.
Аноним 09/05/24 Чтв 11:52:20 950249 167
Аноним 09/05/24 Чтв 11:55:22 950250 168
image.png 47Кб, 262x942
262x942
>>950246
Мне показалось, что проще создавать всю сцену из кода, уже не помню почему я так решил.
>>950247
Блин, спасибо! Как я сам не сообразил, что раз у меня классы наследуются от базовых типов, то я могу не назначать скрипты, а просто создавать сходу нужные мне объекты!
Аноним 09/05/24 Чтв 11:58:13 950251 169
>>950250
Пожалуйста. Ебош! Ждём релиза!
Аноним 09/05/24 Чтв 12:46:21 950258 170
>>950215
Ты проверяешь, утка ли это. А надо проверить только умеет ли она крякать. Ну то есть, опять же, ничего криминального, но для гдскрипта это плохая практика. Потому что, как только ты захочешь сделать манок для уток, уткооборотня и гадкого утёнка, тебе придётся в куче мест разгребать ошибки и уточнения из-за
if node is Duck:
а всё было бы проще, если бы там изначально было
if node.has_method("quack")

Ну то есть, конечно, вряд ли конкретно тот анон захочет делать когда-нибудь, чтобы интерацию выполнял не только игрок, но и враг, и фантомная копия игрока, и мимик, и взрыв, и небо, и аллах. Но это хороший, более правильный паттерн для гдскрипта, чем приведение к фиксированному типу, когда от целого типа нам нужно всего одно его поле.
Аноним 09/05/24 Чтв 13:06:18 950265 171
>>950258
Да. Теперь понял. Но всё равно люто коробит от строковых литералов посреди кода, когда есть няшные тайпкасты с поддержкой интелисенца. Надеюсь в будущем от этого избавятся, чтобы можно было
> if node.quack is Callable: node.quack()
Аноним 09/05/24 Чтв 13:07:09 950266 172
17152359852150 [...].png 36Кб, 608x474
608x474
>>950249
спасибо, намного лучше объяснено чем где либо, чет все равно не выкупаю нахера их ставят так как анон выше. Может ты знаешь?
Аноним 09/05/24 Чтв 13:12:27 950268 173
>>950266
Об этом я с самого начала написал. Перефразирую: их ставят, чтобы сразу стояло свойство, на будущее, на потом, для красоты кода и т.п. А компилятор шарпа автоматически преобразует эту запись в полную запись, где есть переменная и она подставляется в гет и в сет. Не знаю, какое у тебя ИДЕ, но у меня в мс-коде ,например, можно нажать на лампочку и самостоятельно преобразовать такую сокращенную запись свойства в полную:
> Camera2D _camera;
> public Camera2D Camera { get { return _camera; } set { if (_camera != value) _camera = value; } }
Аноним 09/05/24 Чтв 13:14:33 950270 174
>>950268
ааа, пон спс броу. Я блять наконец то понял что они делают.
Аноним 09/05/24 Чтв 13:14:50 950271 175
>>950258
Только производительность поиска метода скорее всего ниже, чем проверка типа, особенно типизированная, а не по названию.
Аноним 09/05/24 Чтв 13:16:07 950272 176
>>950266
Свойства нужны чтобы вызовы функций выглядели как переменные. Или, по другому, чтобы при присваивании переменной можно было накинуть доп. код обработки.
Аноним 09/05/24 Чтв 14:01:43 950277 177
0955-3444.mp4 17338Кб, 1024x768, 00:01:23
1024x768
asdasd.jpg 147Кб, 930x630
930x630
Предметы теперь можно подбирать. Вроде как избавился почти от всех скриптов на шарпе, остался только контроль камеры на гдскрип переписать. Пора кодить экипировку, тот же фонарик нужно экипировать и включать/выключать.
Аноним 09/05/24 Чтв 14:35:05 950279 178
>>950277
Ящитаю, надо от игрока как-то скрыть момент исчезновения предметов со сцены. Ну и над менюшкой поработать. Выглядит перегружено, курсор скачет во все стороны, иконка перса зачем-то выбирается. В СХ такая штоле была? Не стоит копировать 1в1. Стоит переделать поудобнее.

Ну а в целом малаца, канешн.
Аноним 09/05/24 Чтв 14:43:34 950280 179
>>950277
Показалось, или на первых кадрах от персонажа тень на пол не попала?
Аноним 09/05/24 Чтв 14:52:28 950283 180
Screenshot13.png 507Кб, 601x686
601x686
25128-25384.mp4 1099Кб, 1280x720, 00:00:08
1280x720
>>950279
> В СХ такая штоле была? Не стоит копировать 1в1

Да, буквально копия. Со временем как-нибудь освежу образ, а каркас пущай и так будет.
Ну а если ничего своего не придумаю, просто реворкну СХ1.

>>950280
Просто загораживает собой.
Аноним 09/05/24 Чтв 15:03:52 950284 181
>>950283
Какова причина использования устаревшего геймдизайна меню?
Аноним 09/05/24 Чтв 15:04:42 950285 182
>>950284
Такая же, как использование устаревших камер по углам. Утизм.
Аноним 09/05/24 Чтв 15:31:29 950288 183
>>950284
Синдром утенка. Воплощаю фантазии дитеских лет на взрослую голову.
Аноним 09/05/24 Чтв 15:31:49 950289 184
>>950283
> просто реворкну СХ1
Путь вникуда. Путь на дно стима.
Аноним 09/05/24 Чтв 15:43:18 950290 185
>>950289
>Путь вникуда.

Я никуда и не иду.
Аноним 09/05/24 Чтв 15:51:05 950291 186
>>950285
>>950288
Кстати тоже сейчас этим занимаюсь. Детская ностальгия она такая. Но стараюсь адаптировать под современные реалии.
Аноним 09/05/24 Чтв 15:53:43 950293 187
1715259223920.png 21Кб, 446x452
446x452
>>950291
> адаптировать под современные реалии
Minesweeper наоборот с толщетопологией.
Аноним 09/05/24 Чтв 18:40:58 950305 188
Screenshot15.png 224Кб, 533x697
533x697
Screenshot17.png 476Кб, 636x721
636x721
0637-4834.mp4 33264Кб, 1024x768, 00:02:19
1024x768
Увеличил дверные проемы и размеры комнат. В реальности двери метровой толщины едва ли ставят, но на экране гипертрофированные размеры смотрятся намного лучше и управляется свободнее, по таким комнатам можно и шоркаться в поисках лута и монстров бить.

>>949247 (OP)
У кого-нибудь есть фул рисунка Годетты из основного поста? Думаю использовать ее вместо классического СХ1 индикатора здоровья - в интерфейсе это будет кусок бумаги с карандашным портретом, с тем большим количеством пятен, дыр и жженных следов, чем меньше хп у ГГ.
Аноним 09/05/24 Чтв 20:17:54 950315 189
Аноним 09/05/24 Чтв 20:34:39 950319 190
>>950315

>Автор разрешает использовать для любых целей.

Балдеж. Пасиба, анон.
Аноним 10/05/24 Птн 06:33:34 950362 191
>>950271
Если ты выполняешь эту проверку так часто, что страдает производительность, то ты определённо делаешь что-то не так.

>>950265
>Надеюсь в будущем от этого избавятся
Это невозможно на уровне концепции. Максимум - как в луа, чтобы конструкция node.quack не вываливалась с ошибкой, если у node отсутствует поле quack, и тогда можно было бы делать
if node.quack and node.quack is Callable
Но это просто синтаксический сахар для той же самой строковой проверки. И с этим сахаром таковая проверка будет вызываться вообще всегда, а не только в явных местах, что как раз сильно замедляет весь язык.
С другой стороны, у луа есть JIT, а у гдскрипта нету, и кто из них медленнее - тот ещё вопрос.

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

Сорян, чёта меня понесло на философию. Половина седьмого утра, а я ещё не ложился.

>>950283
>видрил
Ъуъ сюка аж Ямаока в голове заиграл.
Аноним 10/05/24 Птн 07:51:03 950363 192
>>950362
> Это невозможно на уровне концепции. Максимум - как в луа, чтобы конструкция node.quack не вываливалась с ошибкой, если у node отсутствует поле quack, и тогда можно было бы делать
> if node.quack and node.quack is Callable
Null is Callable?
Сначала пойди поспи, а потом ответь на этот вопрос на свежую голову.
> Это невозможно на уровне концепции.
Возможно. Концепция в том, что у класса запрашивается метод и если метода нет, необязательно вываливать экзепшн, можно и нуль возвращать. Что и показано в моём посте.

О скоростях я вообще ничего не говорил, только об удобстве. О скоростях ты сам додумал, сам приписал мне, сам блестяще опроверг.
Аноним 10/05/24 Птн 13:38:29 950402 193
flat.png 48Кб, 1392x748
1392x748
>>950305
Накидал план этажа. Все гипертрофировано и пустота снизу-слева, под лифт. Так 3-5 этажей на демку.
Аноним 10/05/24 Птн 14:44:09 950408 194
>>950402
Ты тот анон, который типа молчаливые холмы пилит?
А что за прога, подскажи, пожалуйста. А то в draw.io не супер удобно урвони для 2d игры проектировать
Аноним 10/05/24 Птн 15:01:29 950412 195
Screenshot18.png 474Кб, 1599x899
1599x899
>>950408
Да, тот анон.
А прога, это Blender, потом экструдирую по краям и получаю стены. Накрываю плейном, и получаю потолок. По уровню удобства сравнивать не с чем.
Аноним 10/05/24 Птн 15:13:22 950415 196
>>950412
Поизучай аддон архимеш. Вдруг понравится?
Аноним 10/05/24 Птн 16:30:27 950428 197
Preggo Game Jam[...].mp4 8689Кб, 1152x648, 00:00:18
1152x648
Как сделать так, чтобы шар отскакивал от стены? Эта залупа постоянно в ней застревает, будто коллизия не срабатывает вообще.
Аноним 10/05/24 Птн 16:31:49 950429 198
изображение.png 55Кб, 551x345
551x345
>>950428
Пытался реализовать это через bounce()
Аноним 10/05/24 Птн 17:04:20 950436 199
image.png 19Кб, 555x156
555x156
>>950429
У меня сделано так. Работает надежно. Но это тройка, если что. Дирекшн в следующем фрейме пересчитывается в велосити, велосити в мув_энд_слайд
Аноним 10/05/24 Птн 17:20:17 950438 200
>>950436
Да у меня так же. Только еще фильтр стоит, чтобы отскок был только от стен. Проверял через print(). Работает исправно, т.е. коллизии детектятся исправно.
Аноним 10/05/24 Птн 18:04:10 950442 201
>>950415
Нихера се. Это оно так нехриново время сэкономит.
Аноним 10/05/24 Птн 19:29:24 950450 202
>>950442
Блендер сам по себе годнота, а ещё куча аддонов годнейших. И всё это бесплатно, т.е. даром. Ваще охуеть!
Аноним 10/05/24 Птн 21:19:29 950456 203
>>950415
Потыкал. Впечатления смешанные.

Плюсы:
- Очень удобно задавать размеры стенам.
- Наглядная планировка
- Заготовки дверей

Минусы:
- На дверях начинает тормозить
- Раз крашнулось (не смертельно)
- Нельзя объединять комнаты
- Непонятно, как текстурить

Есть плюсы и минусы. Можно попробовать использовать только для построения стен, остальное реализовать булевыми. Если не смогу решить как работать с ним конкретно, откажусь, я слишком по долгу затыкаюсь в таких раздумьях, прям беда.
Аноним 10/05/24 Птн 21:58:57 950464 204
Поясните пожалуйста за шум, я же правильно понимаю, что годотовский FastNoiseLite по сути есть это https://github.com/Auburn/FastNoiseLite ?
Аноним 10/05/24 Птн 22:04:47 950466 205
>>950456
А еще есть аддон CAD Sketcher который реализует параметрическое моделирование. А еще есть геоноды.
Аноним 10/05/24 Птн 22:59:16 950472 206
>>950466
Попробую геоноды, они должны работать быстрее любого аддона. Проблема любых Blender-аддонов - они написаны на Python и очень медленные в геометрии.
Аноним 10/05/24 Птн 23:42:29 950474 207
Есть ли в редакторе хоткей на скрыть/показать ноду? В настройках не найду.
Аноним 10/05/24 Птн 23:44:26 950476 208
Аноним 11/05/24 Суб 00:18:24 950482 209
Аноним 11/05/24 Суб 09:43:06 950496 210
Я тут задался вопросом. Годот умеет импортировать svg но импортирует как растр, как текстуру, при этом он может читать xml которым является svg и при этом у него есть холст с примитивами, на котором можно было бы отрисовать svg в его натуральном представлении. Может этим кто уже занимался? Может уже есть аддон?

Из максимально похожего на мои хотелки нашлось только вот это
https://www.reddit.com/r/godot/comments/xshtqc/i_got_svgs_rendering_at_runtime_in_godot/
но там чувак пообещал аддон и всё.
Аноним 11/05/24 Суб 14:37:40 950529 211
>>950125
Вчера только нашел время попробовать этот метод, заработало без каких либо проблем. Я так понимаю с такой системой можно сделать вообще вче интерактивные объекты от предметов до записок?
Аноним 11/05/24 Суб 14:49:47 950533 212
11/05/24 Суб 17:01:10 950547 213
>>950496
у svg нет "натурального представления". это вектор, ты его скейлишь как угодно, dpi/ppi важно когда тебе нужно нарисовать с конкретной плотностью на оконечном девайсе.

некоторые заморачиваются с отрисовкой под разрешение пользователя (под мобилками такое бывает) - но во первых это может быть долго, а во вторых смысла ноль - если нужны всякие эффектики их часто проще в фотожопе шлепнуть чем с шейдерами корячится.
Аноним 11/05/24 Суб 18:00:20 950549 214
Screenshot19.png 207Кб, 1168x771
1168x771
>>950456
Теперь непонятно как текстурить, если стены поделены на отдельные объекты с модификатором Solidify - то есть, для каждой стороны свою развертку не сделать.
Видимо аддоны, упрощающие разработку стен в Blender не очень подходят для импорта в Godot, просто потмому что добавляют промежуточные шаги с преобразованием в обычный меш.
Аноним 11/05/24 Суб 18:31:07 950552 215
>>950547
Я это и имел ввиду. Контрол имеет размеры например 400 на 300 - отрисовывается свг в этом масштабе. Контрол увеличился до 2000 на 1500 - свг перерисовался в новом масштабе.

>>950549
Копируешь результат в отдельную коллекцию, применяешь на копии все модификаторы, разворачиваешь, текстуришь, экспортируешь. Если вдруг понадобится переделать, оригинал в соседней коллекции лежит. Но вообще да, как-то неудобно выходит. Кажется я где-то видел модификатор-развёртку, но не помню, где.
Аноним 11/05/24 Суб 19:27:10 950554 216
Screenshot22.png 184Кб, 953x702
953x702
Screenshot20.png 31Кб, 816x590
816x590
>>950552
>Но вообще да, как-то неудобно выходит. Кажется я где-то видел модификатор-развёртку, но не помню, где.

Вернулся к предыдущему плану - плоскостями накидал план, а затем экструдировал модификатором Solidify. Все дополнительные дырки под окна сделаю через булевый модификатор. Тут модификаторы тоже нужно применять, но шагов ощутимо меньше чем с доп. аддонами.
Аноним 11/05/24 Суб 19:39:01 950556 217
>>950554
Да пожалуй, возьму на вооружение твой метод.
11/05/24 Суб 19:46:32 950558 218
>>950552
> Контрол имеет размеры например 400 на 300 - отрисовывается свг в этом масштабе. Контрол увеличился до 2000 на 1500 - свг перерисовался в новом масштабе.
так это смысла чаще всего не имеет, рендери сразу в максимально-нужном и скалируй вниз, это бесплатно. Хотя если только у тебя там ажурный SVG где надо толщину линий выдерживать независимо от расширения - тогда наверно имеет смысл перерисовывать
Аноним 11/05/24 Суб 20:10:50 950560 219
>>950554
Булевый это зло, насколько я помню
Аноним 11/05/24 Суб 20:26:06 950561 220
>>950560
Зло.
Геометрию корраптит моментально. Но! Если у тебя куб, и булём вырезается второй куб, то ты вполне можешь пофиксить косяки буля.
Аноним 12/05/24 Вск 01:46:23 950599 221
image.png 352Кб, 690x362
690x362
Игры то делойте
Аноним 12/05/24 Вск 03:19:02 950602 222
>>950554
Не думал делать прямо в движке CSG или каким нибудь аналогом крокотайла
Аноним 12/05/24 Вск 03:36:15 950604 223
>>950363
>О скоростях ты сам додумал, сам приписал мне, сам блестяще опроверг.
Ну, это я на самом деле не с тобой спорил, а просто в пространство выкидывал рассуждения.

А вот шас с тобой:
>Null is Callable?
Если ты не знал, сначала проверяется левая часть and'а, и если она ложная, то правая просто отбрасывается без проверки. Поэтому подобные конструкции совершенно легитимно записывать в одну строку:
if foo and foo is int and foo == 1:
И ты никогда не словишь тут краш. Ну, по крайней мере, в гдскрипте.

>Концепция в том, что у класса запрашивается метод и если метода нет
А как ты запросишь метод? Строкой. Чтобы узнать, есть ли у класса искомое поле, нужно найти строку, а это дорого. Поэтому гдскрипт по умолчанию не занимается таким. Но разрешает тебе самому поискать, если очень хочется.
Для заранее известных полей применяется оптимизация, заменяющая их имена-строки на уникальные стрингнеймы, которые по сути просто индексы в адресном массиве.
В общем, подменять не найденное поле на null не так-то просто, это потребует выполнять строковый поиск перед каждым запросом. Какой-нибудь луа может себе это позволить благодаря JITу, гдскрипт - нет.

>>950529
Предполагаешь верно. Хорошо, что ты освоил сигналы. Это один из базовых паттернов взаимодействия между нодами в Годоте, он тебе неоднократно пригодится. Особенно удобно использовать для всяких систем, находящихся в дереве далеко друг от друга, например, соединять перса с хп-баром.
Теперь учти предупреждение анона >>950134. Представь, что НПЦ стоит аккурат перед дверью, их ареи пересекаются. Сигнал в такой ситуации вызовет одновременно и открытие двери, и начало диалога. В принципе, можно просто не ставить интерактивные объекты слишком близко. Решишь эту задачу тогда, когда прокачаешь скиллы. Просто затравка на будущее, потому что сейчас тебе наверняка есть чем заняться более важным, чем переписывание работающего кода.
Аноним 12/05/24 Вск 03:37:06 950605 224
>>950602
>крокотайла
Вчера кстати новый блокбенч вышел. С НОЖОМ.
Аноним 12/05/24 Вск 04:28:29 950608 225
>>950604
Задача тупая какая-то. Если вызывать дверь и разговор рейкастом, то сработает только ближний к игроку рейкаст. Сигналы вообще не причем.
Аноним 12/05/24 Вск 07:55:46 950612 226
MoveToward с Vector3 не работает что ли?
Все вписал, ошибок не выдает, но ничего не двигает
Аноним 12/05/24 Вск 08:14:04 950613 227
>>950608
Не, смотри, у тебя рейкаст пуляет в точку, куда ты мышкой смотришь. И он детектирует тела, а не ареи. И когда он что-то находит, он даёт команду показать тебе на экране "пресс Х ту экшон". Помнишь знаменитые мемы из скайримофолача, когда на экране постоянно переключаются надписи "попить-взять-попить-взять" на унитазе, в котором лежат патроны? И челик елозит-елозит мышкой и в конце концов выбирает "попить". Вот чтобы избежать таких мемов на ютубе по твоей игре, ты должен всё обнаруженное пихать в массив, и выводить списком на экране с возможностью выбрать действие из списка. Большинство современных игор делает так.

>>950604
> А как ты запросишь метод? Строкой.
Да, вот тут-то я не подумал настолько далеко. Ведь в конечном итоге где-то должна взяться строка. Но справедливости ради, она возьмётся уже в сишных потрохах движка, не в гдскрипте, и возьмётся скорее всего хэш по индексу, или как-то так. В любом случае будет быстрее, наверняка.
Аноним 12/05/24 Вск 10:55:21 950628 228
>>949247 (OP)
Хочу как в анреале визуал скрипты на всё, без кодинга, это реально? В шапке ответа не нашёл.
Аноним 12/05/24 Вск 12:43:08 950636 229
анончик, помоги
пытаюсь приделать базовый сигнал с параметрами к динамически создаваемой ноде
_option_node.connect("pressed", _on_answer_selected.bind("next_id",answers["next"]))
но в рантайме ошибка
E 0:00:04:0969 emit_signalp: Error calling from signal 'pressed' to callable: 'CanvasLayer(UI.gd)::_on_answer_selected': Method expected 1 arguments, but called with 2.
<C++ Source> core/object/object.cpp:1140 @ emit_signalp()
в принципе почему понятно, вижу решение проблемы как в гуе натыкать доппараметр базовому сигналу, а как мне заставить это работать в моем случае?
Аноним 12/05/24 Вск 13:30:32 950642 230
>>950613
>она возьмётся уже в сишных потрохах движка
Дык has_method и подобные - это тоже обращение к сишным потрохам движка.
>хэш по индексу, или как-то так
Ты только что StringName https://docs.godotengine.org/en/stable/classes/class_stringname.html

>>950608
Речь шла про 2д. Там для взаимодействия используются не рейкасты и направление взглядв, а ареи и пересечение персонажа с ними.

>>950636
Ты неправильно используешь bind. Ему не нужно писать имя биндимого аргумента, только значение.
Аноним 12/05/24 Вск 13:43:03 950643 231
>>950642
> Ты неправильно используешь bind. Ему не нужно писать имя биндимого аргумента, только значение.
Спасибо, и правда.
Аноним 12/05/24 Вск 14:16:51 950654 232
>>950628
> без кодинга
> визуал скрипты на всё
Реально.
> как в анреале
Нет. Архитектура такова, что визуалскрипты причиняют БОЛЬ. Поэтому их выпилили в 4 версии. Но они поставляются как отдельный аддон.
> В шапке ответа не нашёл.
Недочёт. Исправим. ОП! Эй, ОП!? Сделой!
Аноним 12/05/24 Вск 15:43:46 950675 233
>>950604
>Сигнал в такой ситуации вызовет одновременно и открытие двери, и начало диалога. В принципе, можно просто не ставить интерактивные объекты слишком близко. Решишь эту задачу тогда, когда прокачаешь скиллы.

Да, я думал об этом моменте, но его как раз легко обойти тобой же озвученным способом. Я звезд с неба не хватаю и просто потихоньку сижу и разбираюсь. Сейчас вон вообще думаю как бы все упорядочить с анимациями и обойтись без машины состояний. Чтобы без заморочек так сказать.
Аноним 12/05/24 Вск 15:54:19 950677 234
>>950675
> обойтись без машины состояний. Чтобы без заморочек так сказать.
Машина состояний - это и есть без заморочек. Учи её. И реализуй. Спасибо скажешь.
Аноним 12/05/24 Вск 16:06:31 950679 235
>>950675
Есть три общепризнанных подхода к стейтмашинам в годоте:
1. На нодах (поддержка редактором в дереве сцены, просто добавляешь стейты как ноды к своей сцене)
2. На ресурсах (поддержка редактором в инспекторе, просто добавляешь стейты как ресурсы в одной ноде, но уже нужно скриптом задать экспорты)
3. На простых объектах (RefCounted, без поддержки редактором, чисто в коде)

Тебе какой больше импонирует?
Аноним 12/05/24 Вск 16:44:13 950683 236
Есть сцена с gui (2d + 3d), есть main сцена в которой gui_viewport_container.
Две проблемы при выводе:
- Дублируются 3d объекты в камере (т.е. рисует из сцены с gui камеры (правильно, она ортогональная), и рисуется на main сцене в камере (перспектива), то что было в gui по координатам.
- При растягивании окна как я понял gui_viewport просто растягивается, а не рендерится в том же разрешении что и root.viewport из-за чего все в лесинках.

Как решить? Что-то не могу загуглить.
Аноним 12/05/24 Вск 16:57:24 950685 237
>>950683
Скрин работающего дерева сцены (при запуске проекта, remote) - в студию!
Аноним 12/05/24 Вск 17:04:25 950686 238
image.png 779Кб, 1843x1358
1843x1358
image.png 306Кб, 1849x1377
1849x1377
image.png 66Кб, 1153x656
1153x656
image.png 184Кб, 2151x1362
2151x1362
>>950685
По первому я не могу понять как разделить на слои.
Аноним 12/05/24 Вск 17:10:06 950687 239
Аноним 12/05/24 Вск 17:13:08 950688 240
>>950677
>>950679
Не знаю даже, какой эмпонирует. Но уговорили. Поизучаю, посмотрю. Просто сейчас я вроде как все сделал, но это может враз поменяться и при добавлении новых анимаций все полетит.
Аноним 12/05/24 Вск 17:14:17 950689 241
>>950687
Вычеркиваем (почитал описание, оно там не нужно)
Аноним 12/05/24 Вск 17:17:15 950690 242
>>950689
Upd: записываем обратно, без него не рендерится одновременно 3D (патрон) и 2D (очки)
Аноним 12/05/24 Вск 17:22:30 950691 243
1715523751617.png 12Кб, 251x322
251x322
>>950686
Ты помнишь фильм "кин-дза-дза"?
Извини, что издалека начинаю, но это не шутки, хотя сейчас будет похоже будто я рофлю.

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

Переделывай архитектуру, по цветам. Пик самхау релейтед. Удачи!
Аноним 12/05/24 Вск 17:36:43 950693 244
image.png 11Кб, 263x94
263x94
image.png 586Кб, 2132x984
2132x984
>>950691
Давай попробуем не смешивать ноды в примере
уменя не получилось

С первой проблемой разобрался. Есть оказывается волшебная галочка, чтобы посмотреть импортируемый меш и на нем можно выбрать instance layer. Закинул GUIню на второй слой.
Аноним 12/05/24 Вск 17:57:07 950697 245
image.png 186Кб, 1140x901
1140x901
Screencast20240[...].webm 114Кб, 562x958, 00:00:16
562x958
0008-0090.mp4 49Кб, 540x754, 00:00:03
540x754
Со второй проблемой уже на пол пути к решению. Собственно мне нужна была функция связи смены размеров окна и манипулированием с настройками subviewport.
Если еще сегодня напишу чтобы красиво патроны перезаряжались, то вообще будет здорово.
Всем невидимых лучей добра из раздела 3D.
Аноним 12/05/24 Вск 18:30:12 950701 246
>>950654
>визуалскрипты причиняют БОЛЬ
Почему это???
Аноним 12/05/24 Вск 19:01:35 950704 247
>>950701
Ограничивают, пухнут на 10 экранов, ужасно скалируются, трудно поддерживать. ГДСкрипт хорошая альтернатива - простой как два пальца, за день изучается от и до, не ебет мозги, позволяет сфокусироваться на делание игр вместо возни с языком.
Аноним 12/05/24 Вск 19:03:42 950705 248
>>950679
4. Вообще без этого всего, на матчах.
Самый лёгкий в освоении вариант, так как для него достаточно азов программирования. А потом уже, поняв принцип работы, осознать, как это можно разбить на ноды/ресурсы/объекты.
Аноним 12/05/24 Вск 19:57:19 950720 249
Preggo Game Jam[...].mp4 3957Кб, 1152x648, 00:00:07
1152x648
Я сдаюсь, нахуй. Это говно просто отказывается работать. Я ничего не переписывал, ничего не переизобретал. Я просто использовал встроенный в Годот функционал, но оно просто отказывается работать.
Аноним 12/05/24 Вск 20:15:28 950725 250
1715534128228.jpg 100Кб, 700x907
700x907
>>950705
> на матчах
Новичковый уровень, чисто для понимания сути. После этого ты рано или поздно приходишь к выводу, что стейты должны быть сущностями, не обязательно ООП-объектами, но именно сущностями со своим поведением. Вместо матча в стейт-машине переключается текущий стейт, после чего вся логика автоматически делегируется ему.

Поэтому матчам-свитчам-ифам не положен отдельный пункт, а положены только мемы.
Аноним 12/05/24 Вск 20:17:32 950727 251
>>950697
Ты к нам по моей ссылке пришёл?
>>334729-кун из юбилейного
Аноним 12/05/24 Вск 20:23:23 950731 252
>>950705
>>950720
Пока кстати изучаю это вариант. И возник вопрос, стоит ли, делать отдельные состояния для:
Ходьбы
Карабкания
Прыжка
Падения


Или их можно ужать до:
Ходьба (включая прыжок, падение, инерцию при этих состояниях)
Карабкание
Аноним 12/05/24 Вск 20:34:54 950732 253
>>950731
Вот тут решение
https://www.youtube.com/watch?v=E9h9VnbPGuw
Не обязательно тот аддон ставить, главное принцип уяснить: стейтмашин может быть несколько, как параллельных, так и последовательных.
Аноним 12/05/24 Вск 21:22:24 950739 254
>>950732
Спасибо, гляну.

>>950675
И еще к сигналам вдогонку. Как я могу со стороны игрока проверить произошел ли коннект? Есть простое решение, или надо так же посылать сигнал со стороны интерактивного объекта?
Аноним 12/05/24 Вск 22:25:47 950755 255
>>950739
> Есть простое решение
Коннект возвращает код результата операции.
Записывай его себе
> var err = player.on_foo_bar.connect()
Аноним 12/05/24 Вск 22:50:18 950768 256
show.png 2Кб, 256x50
256x50
>>950731
Шевели своей собственной мозга. Пробуй. На практике понимай, какие стейты тебе нужны, а какие нет.
И не пользуйся аддонами. Стейт-машина - базовый паттерн, который встречается в геймдеве повсеместно. Крайне необходимо освоить его, чтобы двигаться дальше. Уметь написать, уметь применить.
Приходи, когда столкнёшься с проблемами, которые не сможешь решить методом проб и ошибок. Никто твою игру за тебя не сделает, но указать путь по проторенной дорожке мимо граблей - укажем. И положим несколько тренировочных, с мягкой рукоятью.
Аноним 12/05/24 Вск 23:01:34 950770 257
2024.05.12.mp4 7123Кб, 960x450, 00:01:15
960x450
huh.mp4 1310Кб, 800x600, 00:00:04
800x600
Долго голову ломал, как будет лучше всего хранить информацию об отдельных блоках в 3D сетке, если геймплей позволяет добавлять и удалять блоки в произвольном порядке и месте. ВНЕЗАПНО, как минимум в рамках GDScript лучшее решение (учитывая удобство, скорость, возможности) это:
>var data: Dictionary
>data[Vector3i(x, y, z)] = ...
>data.erase(Vector3i(x, y, z))
Ещё интереснее, самые эффективные проверки:
>if Vector3i(x, y, z) in data: ...
>if Vector3i(x, y, z) not in data: ...
Использование y.has(x) и not (x in y) медленнее.

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

>>914221 →
>верёвка крюка-кошки натягивается не по физике.
Что ты имеешь в виду, конкретно? У этой веревки высокая эластичность, т.е. способна растягиваться, оказывая сопротивление тем больше, чем сильнее растянута. Растяжение зависит от расстояния между игроком и последней точкой крепления (она может наматываться на объекты) с учётом длины верёвки. Соответственно, когда верёвка дёргает игрока, он взлетает немного выше необходимого и верёвка перестает оказывать воздействие, игрока тянет гравитация и он снова растягивает верёвку, и т.д.

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

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

>тело переключается на ригид с джойнтами
Джойнтам в Godot Physics 3D стабильности и функционала не хватает, в Godot Jolt тоже какие-то проблемы (по крайней мере полгода назад были).

Да, меня тут не было больше полгода.
Аноним 12/05/24 Вск 23:23:59 950775 258
>>950770
О, я помню тебя и твою бабу-раскоряку.
Аноним 12/05/24 Вск 23:37:42 950777 259
>>949994
>Интерактивный предмет предоставляет арею
Не обязательно создавать лишнюю Area, если твой интерактивный предмет уже имеет физическое тело. Главное проверять, с чем именно пересекается луч. Изначально неосязаемым, конечно, нужна Area.

Т.е. RigidBody мячу и StaticBody двери не нужны Area для взаимодействия по кнопке, а для выключателя света на стене потребуется своя отдельная Area.

>>950020
>Area2D может зарегистрировать только выход или вход. Один раз.
Нет, можно в любой момент запросить списки всех пересекающихся тел и зон. Списки обновляются с задержкой, но существуют постоянно:
https://docs.godotengine.org/en/stable/classes/class_area2d.html#class-area2d-method-get-overlapping-areas
Аноним 13/05/24 Пнд 00:40:33 950785 260
Аноним 13/05/24 Пнд 00:51:18 950786 261
Сап. Хелпаните пишу игру Идле жанр где ауто кликер, не пойму базу firebase realtime или обычую использовать?
Аноним 13/05/24 Пнд 00:53:52 950787 262
>>950777
Практически никогда для взаимодействия не используется та же коллизия, что и для физики, и вот почему:
1. Физическая коллизия обычно значительно меньше
2. В физические объекты нельзя войти, на то они и физические
Рейкасты - не сюда. Это в 3д взаимодействие зависит от направления взгляда (и то, только если игра от первого лица); в 2д же оно зависит просто от положения персонажа в пространстве. Иначе будешь постоянно сталкиваться с кривой коллизией взаимодействия. Хочешь совершить действие, но не можешь, потому что персонаж или смотрит не в ту сторону, или стоит на один пиксель выше, или ещё какая-нибудь невидимая дребедень.

>запросить списки всех пересекающихся тел и зон
В контексте обсуждаемой задачи, как ты предполагаешь использовать эту информацию?
Аноним 13/05/24 Пнд 12:46:30 950819 263
Сап, двощ. Кто-нибудь шарит почему Road to Vostok так жёстко пропукивает, даже когда камера не движется никуда?
Аноним 13/05/24 Пнд 13:05:07 950820 264
ВЫШЕЛ! ВЫШЕЛ! ВЫШЕЛ!

Второй урок по годоту от весельчака с фальшивой улыбкой
https://youtu.be/e1zJS31tr88
Аноним 13/05/24 Пнд 13:19:39 950822 265
>>950820
Ппц поверхностно. А на него так надрачивали в комментариях. Он же тупо пересказывает официальную документацию.
Аноним 13/05/24 Пнд 13:23:09 950823 266
>>950822
Так когда он вместе с командой, сидел на зарплате у юнитеков, тоже тупо пересказывал документацию.
Аноним 13/05/24 Пнд 13:24:06 950824 267
>>950822
Я и по юнити от него курс на втором же ролике дропнул.
Аноним 13/05/24 Пнд 13:39:03 950829 268
>>950822
Это гайды для ньюфагов, пчел. Хз каких секретных знаний ты там ожидал.
Аноним 13/05/24 Пнд 14:55:51 950859 269
Аноним 13/05/24 Пнд 15:42:54 950874 270
Аноним 13/05/24 Пнд 15:53:35 950878 271
>>950820
Реквест не перевод, а русский курс
Аноним 13/05/24 Пнд 15:57:53 950880 272
>>950878
Никто не берётся.
Аноним 13/05/24 Пнд 18:05:34 950904 273
time += delta

Что произойдет если через охуилиард лет тайм достигнет какого-либо максимального значения? В годоте вообще есть максимум для флоата?
Аноним 13/05/24 Пнд 18:47:07 950911 274
>>950829
Двачаю.
Особенно учитывая, что у него опыт в годо - максимум полгода.

>>950904
>максимум для флоата
Ты плохо представляешь себе, что такое флоат.
https://docs.godotengine.org/en/stable/classes/class_float.html
и там по ссылкам на википедию пройдись ещё.
Аноним 13/05/24 Пнд 19:29:13 950918 275
1715617753379.jpg 76Кб, 1643x920
1643x920
>>950904
> Что произойдет если через охуилиард лет тайм достигнет какого-либо максимального значения? В годоте вообще есть максимум для флоата?
Всем будет глубоко похуй.
Солнце давно погаснет к тому времени, а андроиды-потомки древней цивилизации людей будут обладать такими технологиями вычислительной техники, при которой эмулятор древнего человечьего компа с вендой и годотом сможет прозрачно наращивать битность примитивных типов. Был флоат 4-байтовый, а потом хуяк и стал 16-байтовый, и твой код дальше маслает. А андроиды сели вокруг монитора с твоим проектом и смотрят как там циферки в консольке бегут.

Кстати, сделай игру по этому сюжету.
Аноним 13/05/24 Пнд 20:00:52 950923 276
>>950904
Да ладно ты сделай сначала игру с сюжетом или геймплеем с сессией на 5 суток, куда там о годах думать.
Аноним 13/05/24 Пнд 20:06:50 950925 277
Аноним 13/05/24 Пнд 20:23:04 950929 278
>>950925
Надо брать, потом посмотрю есть ли прирост в вебе 3д.
Аноним 13/05/24 Пнд 22:50:55 950957 279
Созрел очередной вопрос
У меня есть сохраненный сценой настроенный Label
И я хочу его динамически подгружать
Я делаю что-то типа такого

var tooltip = preload("res://Scenes/UI/tooltip_label.tscn")

func _ready():
self.add_child(tooltip.instantiate())
tooltip.hide()

но получаю ошибку, потому что tooltip остается PackedScene, а не Label,и метода hide() у него нет, а если я объявляю tooltip принудительно как Label, то его не получается подгрузить из файла.
Я понимаю, что что-то делаю не так, но пути решения пока не вижу.
Аноним 13/05/24 Пнд 23:14:34 950959 280
image.png 77Кб, 618x390
618x390
Аноним 13/05/24 Пнд 23:20:57 950960 281
>>950959
Мне кажется чатжпт тут врет, он же написал то же самое что у меня.
Аноним 13/05/24 Пнд 23:21:56 950961 282
>>950957
Ты неправильно понимаешь смысл PackedScene.instantiate. Эта функция не превратит ресурс в ноду. Она возвращает ноду. Так что тебе надо сделать
var my_var = tooltip.instantiate()
и дальше уже обращаться с этим как с Label'ом - добавлять в дерево, скрывать, показывать и прочая.

Вообще, не уверен, что возможно конструкцией вида foo.bar() изменить тип foo, ведь bar это поле класса foo...
Аноним 13/05/24 Пнд 23:22:43 950962 283
>>950960
Он нет. Смотри, у тебя в переменной tooltip сидит прелоад(сцена), то есть сидит PackedScene. Ты ее инстацируешь, добавляешь в дерево. А потом, не меняя переменной, дергаешь .hide(). То есть ты пытаешься дергать .hide внутри PackedScene, а тебе надо дергать в уже инстанцированной сцене. Посмотри внимательно - код разный, переменные разные.
Аноним 13/05/24 Пнд 23:26:40 950963 284
>>950962
>>950961
Спасибо, заработало с отдельной переменной, разницу понял
Аноним 13/05/24 Пнд 23:39:54 950968 285
.png 40Кб, 748x494
748x494
Забавно, что телеграммный дает другое решение но тоже правильное.
Теперь хоть с людьми не разговаривай вообще.
Аноним 14/05/24 Втр 00:06:09 950970 286
>>950968
Я обычно так же пишу.
var ball это игровой объект
var ball_tscn это (пред)загруженная сцена.
ball = ball_tscn.instance()

Алсо есть еще один способ немного пахнущий
Ты можешь добавить ноду в конкретное место в дереве.
Например $UI/Tooltips.add_child(your_instance)
Тогда тебе не нужна отдельная переменная и ты можешь писать
$Ui/Tooltips.get_child(0).hide.
Или даже $Tooltips.hide() если устраивает скрыть все.
Аноним 14/05/24 Втр 00:06:14 950971 287
>>950968
Бротан, не пропадай.
Через недельку там новый жтп 4о в публичном доступе окажется
Аноним 14/05/24 Втр 07:48:54 950995 288
>>950963
> разницу понял
Если хочешь чтобы твой код заработал, делай так:

> var tooltip = preload("res://Scenes/UI/tooltip_label.tscn")

> func _ready():
> tooltip = tooltip.instantiate()
> self.add_child(tooltip)
> tooltip.hide()

Вот так тоже заработает.
Аноним 14/05/24 Втр 09:39:31 951004 289
А вот вопрос на который чатжпт не справляется
Хочу сделать обычный квестовый курсор - который меняет вид и появляется подсказка о том, куда наведен предмет
Поменять курсор несложно и собственно сделал тултип который рисуется за ним, но он рисуется при передвижении с задержкой и некрасиво, нужно сделать как-то еще.
Пока план иметь сцену с курсором и подсказкой и при необходимости настраивать ее и как-то делать из нее например png и засовывать уже картинку в системный курсор.
Это нормальная идея или лучше как-то еще?
Аноним 14/05/24 Втр 09:40:33 951005 290
.png 46Кб, 773x669
773x669
Собственно ответ жпт
Аноним 14/05/24 Втр 09:44:59 951006 291
>>951004
Типичная проблема X - Y
Ты надумал себе, что в играх к системному курсору лепят внутриигровые тултипы, и бросился и скать решение. А на самом деле в играх системный курсор вовсе скрывают и заменяют своим спрайтом.
Аноним 14/05/24 Втр 09:51:46 951007 292
>>951006
Но тогда будет задержка с позиционированием же.
Аноним 14/05/24 Втр 10:26:43 951008 293
Аноним 14/05/24 Втр 10:47:48 951011 294
>>951008
Может я неправильно понимаю что ты имеешь в виду под "заменяют своим спрайтом"
Я вижу два пути
Первый - заменить курсор на свою картинку
Второй - водить свою картинку вслед за курсором в _physics_process или _process
И во втором случае я наблюдаю задержку при движении, да, как например на видео
https://youtu.be/JrQ1-Ea6_KM?t=221
Аноним 14/05/24 Втр 10:55:40 951013 295
>>951011
Да ты прав, скорее всего делать самому будет слишком геморно.
Аноним 14/05/24 Втр 10:56:52 951014 296
>>951013
Я чувствую троллинг...
Аноним 14/05/24 Втр 11:16:48 951018 297
>>951014
Не не, все верно. Инпут лаг будет, либо на вводе, либо на выводе через двойной-тройной буфер, так что да 2-3 кадра задержки наивным способом, какие то способы борьбы с этим описаны, но сходу не придумаю как это сделать только для курсора.
Аноним 14/05/24 Втр 11:23:18 951019 298
Например отсюда, можно включить "exclusive fullscreen" и отключить vsync (но обязательно тогда лимитировать fps самому через set_target_fps и GSync)
https://github.com/godotengine/godot/issues/75830
И тогда задержка будет 0-1 кадр.
Аноним 14/05/24 Втр 12:35:13 951027 299
>>951004
https://docs.godotengine.org/en/stable/tutorials/inputs/custom_mouse_cursor.html
Вот решение без задержки.

Заменяешь глобально два шейпа, допустим стрелку и руку. Дальше варианты:
а) Интерактивные объекты - наследники Control, и у них задано свойство mouse_default_cursor_shape = 2. Даже кодить не надо.
б) Интерактивные объекты - наследники CollisionObject2D, тогда у них есть сигналы mouse_entered и mouse_exited, по которым ты можешь менять шейп мыши (это дешевле, чем каждый раз задавать всё изображение). Но на этом пути я вижу впереди потенциальную конструкцию из костылей и велосипедов.
Аноним 14/05/24 Втр 12:39:41 951029 300
>>951027
С картинками понятно, я столкнулся с проблемой как сделать красиво перемещаемый текст вместе с курсором.
Как принято в квестах https://youtu.be/N1_6KBOj85s?t=715
Аноним 14/05/24 Втр 13:22:14 951047 301
>>951029
Лейбл прицепи к позиции курсора + сдвиг.
Аноним 14/05/24 Втр 13:24:14 951049 302
Аноним 14/05/24 Втр 13:25:55 951050 303
>>951049
Сорян, это не ты ли в начале треда троллил про невозможность нарезать спрайты и запихнуть их в y-sort как в Диско Элизиуме?
Аноним 14/05/24 Втр 13:26:20 951051 304
Аноним 14/05/24 Втр 13:26:34 951052 305
>>951050
Так он прав про инпутлаг. Читни issue выше. Он может до 5 кадров доходить.
Аноним 14/05/24 Втр 13:30:22 951054 306
>>951052
Ты сам же решение и предложил >>951019. Я в своих играх всинк отключаю всегда. Самая бесполезная технология во всей индустрии.

Кайф когда в настройках игры еще слайдер максимального фпс дают.
Аноним 14/05/24 Втр 13:37:03 951057 307
>>951054
Тиринг не мешает? Я так понимаю что там бывают приколы с 59.94Hz в каком то стандарте телевидения, что может приводить к расхождению через какое то время.
Аноним 14/05/24 Втр 13:53:33 951060 308
>>951057
Тиринг проблема редкая и микросекундная. Всинк проблема постоянная. Тот, кто придумал лечить тиринг всинком явно любитель лечить прыщи сдиранием кожи.
Аноним 14/05/24 Втр 13:57:29 951062 309
1671337881627.jpg 114Кб, 1280x720
1280x720
>>951060
Нет, чел, тиринг это не редкая проблема. У меня на 40" телеке по крайней мере он всегда заметен. Может ты просто не в курсе что это.
Аноним 14/05/24 Втр 14:06:23 951063 310
>>951062
Я замечательно в курсе что это, наблюдаю возню с тирингом и Xorg'ом уже лет 20. Я тебе не говорю что тиринг не проблема. Я говорю что всинк проблема хуже.
Аноним 14/05/24 Втр 14:10:13 951064 311
>>951007
> задержка с позиционированием же
Да, есть задержка между системным курсором и графическим фреймом. Если на экран выводить одновременно системный курсор и графический. Так ты спрячь системный курсор-то. Игроки ничего не заметят.
>>951029
> Как принято в квестах
Выведи с помощью хаков системный курсор поверх депонии и охуеешь от задержки, так что, депония на годоте написана?
Аноним 14/05/24 Втр 16:01:58 951084 312
image.png 5575Кб, 2560x2160
2560x2160
Делойте игры. Раз-раз, начал и закончил.
Аноним 14/05/24 Втр 16:11:48 951088 313
>>951084
Ну мам, я вчера сделал.
Аноним 14/05/24 Втр 17:05:11 951101 314
Подскажите вот что. Есть 3д игра. В ней 2д элемент, текст, который надо двигать. Моя проблема в том, что текст двигается по пиксельной сетке. То есть крошечными прыжками. На мониторах с высоким разрешением это не заметно, но на моем 720p ноуте по глазам бьет. Можно ли заставить 2д элемент двигаться более плавно, сабпиксельно? Все снапы в настройках выключил.
Аноним 14/05/24 Втр 19:00:41 951115 315
>>951101
А двигаешь ты его по float координатам? Ну скажем x += 0.01
Еще в настройках шрифта есть хинтинг и антиалиасинг, фиг знает как он влияет.
Аноним 14/05/24 Втр 19:07:39 951116 316
>>951115
>Ну скажем x += 0.01
Именно так и двигаю.
>в настройках шрифта есть хинтинг и антиалиасинг
Все потыкал. На самом деле я сейчас понял что зависит это от стретч мода, и на хуевом мониторе как у меня это никак не объехать. Либо по пиксельной сетке прыгать (по реальной мониторовской), либо все будет сжиматься-мылиться-шакалиться, что для текста критично. Ну ладно.
Аноним 14/05/24 Втр 19:14:02 951117 317
>>951116
Может тогда есть смысл сделать через вьюпорты, а не стретч мод
Аноним 14/05/24 Втр 20:02:51 951123 318
17138112592050.png 217Кб, 473x486
473x486
Screenshot21.png 549Кб, 1322x733
1322x733
Теперь всю эту срань мебелировать и текстурировать. А потом еще 4 этажа так же. Пора топать на скетчфаб искать мебель, а что не найду, делать самому. Как же это будет долго и нудно.
Аноним 14/05/24 Втр 20:27:15 951127 319
>>951123
> Пора топать на скетчфаб искать мебель
Тормози! Стой! У меня есть для тебя шикарное предложение! Есть такая программа Sweet Home 3D - там в комплекте огромный пак мебели. Лицензия то ли ЦЦ то ли опенсорц. А у них на сайте ещё ссылки на другие библиотеки мебели.
Аноним 14/05/24 Втр 20:35:58 951128 320
Screenshot54.png 452Кб, 1120x1048
1120x1048
2ce436039806.jpg 764Кб, 1920x1080
1920x1080
>>951127
Интересно, нужно посмотреть. Но возможно придется доработать до какого-то пост-совкового вида.
Аноним 14/05/24 Втр 21:00:01 951132 321
>>951128
А... ну... как бы да. Если нужно очередное ВСЖ, с совковой мебелью, набившее всем оскомину, то да, это не подойдёт, там мебель современная. Икеевская.
Аноним 14/05/24 Втр 21:07:35 951134 322
>>951123
Могу скинуть пак с аттрибуцией. Или список ссылок.
Аноним 14/05/24 Втр 21:30:12 951139 323
>>951132

Работаю с чем знаком. Рисовать евроремонты которых в жввую никогда не видел займет еще больше времени.

>>951134
С чем?
Аноним 14/05/24 Втр 21:33:29 951142 324
>>951139
Аттрибуция это когда ты обязан указать авторов ассетов в своем продукте.
Аноним 14/05/24 Втр 21:35:16 951143 325
>>951139
> в жввую никогда не видел
Я вживую никогда не видел интерьеры космических кораблей-городов из будущего, но это мне не мешает. А даже наоборот.
Аноним 14/05/24 Втр 21:49:08 951148 326
>>951142
Шли, хотя не факт что использую, это еще +1 софт учить, пусть и просто но время/силы/настрой жрет.

>>951143
Делать незнакомое это время и усилия, я еще и больше кодер чем дизайнер, что увеличит затраты раз в пять.
Аноним 14/05/24 Втр 22:16:30 951157 327
>>951148
https://pastebin.com/WBj6w2tT
Пока часть переписал, бывают еще кухонные пропсы, магнитофоны импортные.
Лицензии старался отбирать CC-Attribution.
А то есть https://sketchfab.com/Valger но там только смотреть.
Аноним 14/05/24 Втр 23:05:45 951165 328
>>951157
Агонь. Пасиба, анон.
Аноним 15/05/24 Срд 00:32:58 951169 329
image.png 3Кб, 256x50
256x50
Используйте lerp
Аноним 15/05/24 Срд 06:35:48 951171 330
>>951128
>Но возможно придется доработать до какого-то пост-совкового вида.

Придумал смотреть фотографии квартир на авито, бесчисленные фотографии квартир на стыке эпох. То что надо.
Аноним 15/05/24 Срд 13:14:57 951193 331
>>951171
Если чисто для прототипирования, там прямо в ассетлибе уже есть паки с мебелью лоуполи. Совковый вид придашь им позже. Сначала прототип сделой, чтоб всё игралось.

Я серьёзно.

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

https://godotengine.org/asset-library/asset/2622
https://godotengine.org/asset-library/asset/2125
https://godotengine.org/asset-library/asset/2122
Аноним 15/05/24 Срд 13:20:16 951197 332
>>951193
Двачую, сначала блокинг надо, иначе во что играть непонятно.
Аноним 15/05/24 Срд 14:38:46 951219 333
Screenshot2.png 360Кб, 522x513
522x513
Screenshot1.png 325Кб, 645x540
645x540
>>951193
Это все хорошо если построен рабочий процесс. У меня сейчас с импортом практически каждой модели сплошной the art of zoo. Каждый раз думаешь что разобрался, делаешь в следующий раз по отработанной схеме и снова какая-то дич.
Как же годот этим надоел.
Аноним 15/05/24 Срд 14:55:31 951224 334
>>951219
У годота с этим вообще проблемы нет.
Конечно, у тебя будет проблема зоопарка, потому что ты качаешь модели созданные разными художниками в разном софте по разному пайплайну
Если бы ты делал их все сам, то они и были бы однообразными.
Аноним 15/05/24 Срд 14:55:36 951225 335
>>951219
Чувак, ты не слушаешь, что тебе пишут. Какой в пизду импорт? Не грузи контент, пока у тебя игры нет. Нахуй тебе этот холодильник, блять? Сделай куб потолще и куб потоньше и оттачивай алгоритмы открытия дверцы на кубах, оттачивай хранение элементов в контейнере, оттачивай перемещение элементов в инвентарь.

Еще раз: Нахуй. Тебе. Сейчас. Импорт. Контента?
Аноним 15/05/24 Срд 14:57:33 951226 336
>>951225
Не, он все правильно делает, надо сразу делать с контентом, чтобы был look and feel. Накидает моделек 20 и уже можно их двигать. Это немного дольше, день потратит, зато блокинг уже будет делать сразу в приближенном к атмосфере реузльтату.
Аноним 15/05/24 Срд 14:58:10 951227 337
>>951224
> У годота с этим вообще проблемы нет.
На трёшке сидишь небось?
В четвёрке есть проблемы с импортом, о чем рассказал Петя Сканер в недавнем видосе. Проблемы впрочем фиксятся самописным скриптом. подробности там: https://www.youtube.com/watch?v=R0PDD7qIHbM
Аноним 15/05/24 Срд 15:00:28 951229 338
>>951226
> нет! яскозал! buzz word! чисто по ощущениям быстрее! диванчую!
Аноним 15/05/24 Срд 15:05:16 951230 339
Аноним 15/05/24 Срд 15:10:38 951231 340
>>951227
Какая именно проблема? Я в 4-ку закидывал gltf и все работает. Я же сам этот список моделек и скинул, потому что расставлял их по сцене. Может ты галочки в импорте не те выставил?
Аноним 15/05/24 Срд 15:36:28 951238 341
image.png 324Кб, 930x988
930x988
Аноним 15/05/24 Срд 16:00:20 951243 342
>>951238
Как я понял из своих тестов это не вполне 3д батчинг. Это слепление мешей в одну большую меш, буквально, и там много ограничений. Нужны одинаковые материалы, слои, светотеневые настройки. Никто из слепляемых мешей не должен двигаться по-отдельности. Для 4 хватает аналогичных плагинов.

Про автолод хз.
Аноним 15/05/24 Срд 16:05:58 951245 343
>>951238
Лоды и автолоды давно в 4-ке есть.

Меш мерджинг - это соединение всех мешей в один, прикрутили API функцию для этого, наверное, больше года назад, а вручную всегда можно было сделать, если знать, что делаешь. Суть в том, чтобы много мелких статичных мешей сделать одним целым. Для Vulkan эта фича не особо нужна.
Аноним 15/05/24 Срд 16:25:09 951247 344
>>950787
>1. Физическая коллизия обычно значительно меньше
Почему? Тогда меш проваливаться в опоры будет. Или хочешь увеличить зону взаимодействия? Тогда зоны соседних предметов будут мешаться.

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

>Рейкасты - не сюда. Это в 3д взаимодействие зависит от направления взгляда (и то, только если игра от первого лица); в 2д же оно зависит просто от положения персонажа в пространстве.
Возьмём Terraria: чтобы открыть дверь, нужно навести мышкой на неё и нажать кнопку. Но, если не ошибаюсь, сделать это можно только если между персонажем и дверью нет препятствий, т.е. кроме положения мышки ещё делается рейкаст.

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

>>запросить списки всех пересекающихся тел и зон
>В контексте обсуждаемой задачи, как ты предполагаешь использовать эту информацию?
Простейший пример:
>if event.is_action_pressed("interact"):
>_ for area in _interaction_area.get_overlapping_areas():
>_ _ if area.has_method("interact"):
>_ _ _ area.interact(self)
>_ _ _ break
Или так:
>if event.is_action_pressed("interact"):
>_ for area in _interaction_area.get_overlapping_areas():
>_ _ if area is InteractionTrigger:
>_ _ _ area.interact(self)
>_ _ _ break
Аноним 15/05/24 Срд 16:26:33 951248 345
Что будет, если я возьму платные ассеты на итч.ио и просто перерисую их почти пиксель в пиксель, но в другой палитре? Для коммерческого проекта? Как эти дятлы докажут, что я что-то спиздил? И вообще, будет ли кому-то не похуй?
Аноним 15/05/24 Срд 16:31:11 951249 346
>>951243
>>951245
Понял, спасибо за объяснения. Все равно не понимаю зачем добавлять новый функционал в устаревшую ветку софта, которую неизбежно забросят в будущем, но ладно.
Аноним 15/05/24 Срд 16:31:32 951250 347
Аноним 15/05/24 Срд 16:44:08 951251 348
>>951249
>зачем добавлять новый функционал в устаревшую ветку софта
На то есть несколько причин:
1. Рендерер 4 переписывали с нуля, поэтому OpenGL (compatibility) недоделанный, старых фич не хватает.
2. GLES2 в 4 нет, только GLES3.
3. Vulkan не у всех работает, особенно на мобилках.
4. В целом движок стал более требовательным, особенно это было заметно до релиза 4.0/4.1.
5. Внесли кучу изменений в GDScript, язык сцен, API движка и ещё много куда, конвертировать проект сложно, будет куча косяков, даже если получится.

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

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

Народный движок же, для всех и каждого.
Аноним 15/05/24 Срд 17:29:02 951256 349
>>951249
>в устаревшую ветку софта, которую неизбежно забросят
Не шути так.
Аноним 15/05/24 Срд 18:05:55 951262 350
>>951249
>Все равно не понимаю зачем добавлять новый функционал в устаревшую ветку софта, которую неизбежно забросят в будущем, но ладно.
Слышь, ты вот это не это. Я как раз на ней проект пилю, и оче жду фичи 3.6. Цикл разработки средних игр даже у компаний, а не только в соло, запросто доходит до 3-4 лет. Устраивать переход на новую мажорную версию посреди этого цикла - такая себе затея.
Аноним 15/05/24 Срд 18:21:48 951264 351
>>951243
>там много ограничений. Нужны одинаковые материалы, слои, светотеневые настройки.
Не увидел ничего "ненастоящего". Это самый обычный, настоящий, статический батчинг.
Аноним 15/05/24 Срд 18:33:48 951268 352
>>951054
>Я в своих играх всинк отключаю всегда. Самая бесполезная технология во всей индустрии.
>>951060
>Тиринг проблема редкая и микросекундная. Всинк проблема постоянная.
>>951063
>Я тебе не говорю что тиринг не проблема. Я говорю что всинк проблема хуже.
Почему ты так считаешь? Где пруфы?

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

Я v-sync отключаю только когда видеокарта не справляется, ставлю ограничение на 30 кадров.
Аноним 15/05/24 Срд 19:00:52 951275 353
>>951060
Тем более, что всинк тиринг нихуя не лечит.
Аноним 15/05/24 Срд 19:04:06 951276 354
Сап, аноны, хочу вкатиться в разработку игр, побаловаться слегка.
Но вначале думаю вспомнить/подтянуть матан, этого хватит или есть что-то лучше? https://www.youtube.com/playlist?list=PLImQaTpSAdsArRFFj8bIfqMk2X7Vlf3XF

И какую версию годота сейчас лучше использовать 3 или 4? Вроде и та и та обновляется...
Аноним 15/05/24 Срд 19:10:39 951277 355
>>951276
Начинай делать игру и изучай отдельные нужные тебе темы, пока запал не пропал.
Аноним 15/05/24 Срд 19:31:20 951280 356
>>951276
>вкатиться в разработку игр, побаловаться слегка.
>Но вначале думаю вспомнить/подтянуть матан
Матан тебе сейчас вообще не нужен. Изучай язык GDScript, основные концепции Godot и т.д.
https://docs.godotengine.org/en/stable/getting_started/introduction/index.html
По матану лучше всего читать в доках:
https://docs.godotengine.org/en/stable/tutorials/math/index.html
Делаешь что-то, не получается -> ищешь в интернете, изучаешь соответствующие темы, решаешь задачу. Абстрактный матан в геймдеве не нужен.

>версию годота
Бери актуальную стабильную 4.2.2 (x64 без C#).
https://godotengine.org/download/
Godot 3 остался ради поддержки старичков.
Аноним 15/05/24 Срд 19:40:04 951281 357
>>951123
Я бы на твоём месте CSG кубов накидал бы.
https://docs.godotengine.org/en/stable/tutorials/3d/csg_tools.html

Порядок работы такой:
1. Создаёшь сцену table.tscn;
2. Накидываешь примерно стол из CSG кубов;
3. Расставляешь это по своей унылой локации;
4. Тестируешь...
5. Когда всё хорошо, заменяешь CSG на меши ВНУТРИ этой самой сцены table.tscn - они магическим образом встают на свои места как надо. Или не встают.
6. Тестируешь...
7. ???
8. У тебя восхитительная игра и ты молодец.
Аноним 15/05/24 Срд 19:41:02 951282 358
>>951280
>старичков
Вот сейчас обидно было.
Аноним 15/05/24 Срд 19:43:03 951286 359
Аноним 15/05/24 Срд 19:44:53 951287 360
>>951282
Тебе приятнее "олдфаг"? old fag = старый педик
И вообще, речь шла о старых проектах.
Аноним 15/05/24 Срд 20:04:02 951290 361
image.jpeg 533Кб, 1200x675
1200x675
>>951226
>надо сразу делать с контентом, чтобы был look and feel. Накидает моделек 20 и уже можно их двигать.
Надеюсь, что ты так хитро ньюфага троллишь...

>зато блокинг уже будет делать
>блокинг
Значение знаешь?
https://book.leveldesignbook.com/process/blockout

Вкратце про графику в ААА игорах с примерами:
https://youtu.be/NedDxIGQVs0
В инди эта стадия тебе тем более необходима.

Готовыми ассетами только ассетфлипы лепят.
Аноним 15/05/24 Срд 22:36:19 951293 362
17138137887470.jpg 141Кб, 768x768
768x768
>>951281
У меня по мелким проектам уже выработалась стратегия. Сначала я полностью делаю небольшой кусочек, чтобы отработать скелет рабочего процесса - импорт, структура каталогов, освещение, текстурирование, базовые сущности, взаимодействие с объектам, перемещение. Так же будет и в этот раз. Сейчас я сделаю плюс-минус законченную квартиру ГГ с базовыми взаимодействиями, а потом пойду накидывать описанную тобой базу на остальные этажи.
Аноним 15/05/24 Срд 22:36:57 951294 363
>>951287
Сейчас принято говорить "скуфы"
Аноним 15/05/24 Срд 23:11:47 951302 364
>>951293
А игру-то ты хоть выпустил? Стратег бля
Аноним 15/05/24 Срд 23:39:36 951305 365
Screenshot23.png 426Кб, 599x567
599x567
>>951219
Разобрался с ебучим холодильником.
Оказалось что glTF формат поддерживает только ORM материалы, то есть материалы, в которых Occlusion, Roughness и Metallic текстуры объединены в одном изображении путем их сохранения в Red, Green и Blue каналы соответственно, при этом автоматическое объединение этого дела в одну текстуру в момент конвертации blend-файла в glTF не предусмотрели. Ну а так как я скачивал FBX модель с текстурами выше по отдельности, то получалась мешанина из поста выше.
Пада-пиду-пу, хрррр тьфу.
Аноним 15/05/24 Срд 23:55:47 951307 366
>>951305
Ну тут двоякая ситуация. Когда скачиваешь со скетчфаба, там есть glb/gltf, но они автоконвертированы самим сайтом. А вот то что идет первым файлом, там часто fbx который выложил автор, а иногда там бывает не только fbx, а и исходник или что то другое вроде obj.
Это к тому, что иногда, наоборот, gltf оказывается порченым сайтом, а модель автора можно как то самому допилить. А бывает как в этом случае, исходник глючит, а gltf нормальный. Тут не угадаешь, увы.
Аноним 15/05/24 Срд 23:58:41 951308 367
>>951290
Нет, я абсолютно серьезно. Ты что, серьезно видишь в верхней пикче нижнюю? Я например нет. Наверное на такое способен только сеньор левелдизайнер с опытом от 5 лет. Как я уже сказал, импортировать десяток моделей - недолго, тратишь день и у тебя уже есть пропсы для блокинга, которые дают именно представление общей картины.
Честно скажу, что я кубами как то пробовал, ну и получилась игра про кубы, в кубостиле. А там, где делал хрущи сразу, получились няшные квартирки.
Аноним 16/05/24 Чтв 00:00:26 951309 368
>>951290
Опять же понятно почему так делают в студиях. Там разделение труда, левел дизигнер расставляет, потом заменяет на то, что ему моделит моделлер. Он не может этим управлять, ему сказали сделать левел к сроку и он делает, и повлиять на моделлера он тоже не может, у того свои сроки. У нас соло индюков такой проблемы нет. есть другие
Аноним 16/05/24 Чтв 00:26:17 951311 369
>>951309
Так-то половина игр из поста на который ты отвечаешь - индюки.

>>951308
>Ты что, серьезно видишь в верхней пикче нижнюю? Я например нет.
Это типичная проблема рисовак, смотрю на пустой холст и вижу ничего, пока у другого там воздушные замки. Проходит с практикой.
Аноним 16/05/24 Чтв 01:09:50 951314 370
image.png 777Кб, 1280x720
1280x720
https://godotengine.org/article/progress-report-web-export-in-4-3/

TLDR: Новый фуллтайм разработчик веб-экспорт подтягивает. Шаредбуффер теперь не нужен, в однотредовом веб-экспорте улучшат звук для слабых девайсов. Следующий шаг - сжимание шакалов размеров билда.
Аноним 16/05/24 Чтв 03:03:59 951315 371
>>949247 (OP)
Анончик, тупой вопрос задам. На годоте возможно сделать мморпг, на 500-1000 челов? Просмотрел, и чет похожих игр не увидел. На юнити, точно знаю, что можно.
Аноним 16/05/24 Чтв 03:57:26 951316 372
>>951315
Неа. Не выйдет. Посмотрел сам
Аноним 16/05/24 Чтв 04:19:16 951317 373
>>951315
>>951316
Ты бы клон флаппи берд для начала сделал. На любом движке. Тогда не пришлось бы тупые вопрос задавать.
Аноним 16/05/24 Чтв 05:04:13 951319 374
>>951247
Чел, ты...
>1.
>2.
Тут ты жопой прочитал исходное утверждение и хуй знает с чем вообще споришь.
>Возьмём Terraria
Не возьмём. Подобное управление для 2д - большая редкость. Посмотри лучше на более типичный пример - Hollow Knight.
>В 3D играх тем более:
Про 3д мы не говорим. Вообще. Совсем. Забудь про 3д. Лучше используй этот участок памяти для того, чтобы помнить контекст разговора хотя бы на 2-3 предложения назад.
>Простейший пример
Нихуясе, ты предлагаешь инпутами дёргать все интерактивные объекты в сцене и пытаться понять, в каких из них есть персонаж? Вообще-то все нормальные люди делают наоборот: персонаж запоминает, куда он зашёл или вышел, и по инпуту тыркает те ареи, внутри которых сейчас находится.
Аноним 16/05/24 Чтв 07:22:07 951322 375
Аноним 16/05/24 Чтв 09:01:11 951327 376
>>951315
Да, на годоте точно можно сделать. Это опен сорс движок на с++, поэтому можно написать максимально оптимизированный сервер. Если твой вопрос "можно ли просто натаскать моделек и написать говноскриптов" то конечно нет.
Насчет того, что ты написал, есть большие сомнения. В больших ммо, обычно игроков 100 только позволяют на боевых картах. Иначе потом все лагает. А во многих еще меньше, в районе 32. 500 может быть запускают в какую нибудь городскую сейф локацию, где мало событий пересылается. Ну и да, кекнул с твоего оптимизма, где ты столько игроков зазывать будешь. Не во всех коммерческих то столько приходит одновременно.
Аноним 16/05/24 Чтв 09:04:14 951328 377
>>951314
Хорошо, но мы уже научились в 3-ке прикручивать js-плеер аудио, так что пока посидим.
Аноним 16/05/24 Чтв 09:07:09 951329 378
>>951311
Два момента. Во первых, может быть ему действительно неважно как его игра выглядит, если у него аркадка, где все равно какие скины стен потом натянуть. Во вторых, может быть он тоже наслушался советов касающихся студий, и зачем то применил к себе. Знаешь, это как с git flow, кто то просто по привычке с большой работы перетаскивает в личный проект, начинает открывать новые ветки, мержить их.
Аноним 16/05/24 Чтв 12:51:20 951351 379
>>951314
Не совсем так. Аудио там только пиар, который будет экспериментальным в 4.3, а допиливать будут в 4.4
Аноним 16/05/24 Чтв 14:04:55 951361 380
Какие подводные двигать не чарактер3д, а его колижн-форму?
Аноним 16/05/24 Чтв 14:11:23 951364 381
>>951327
Пасиб за инфу. Я в 5 утра зачем то под пивом в тред зашел и чет написал. Меня попросили посмотреть инфу, для создания оверлея/игры для твича. Вот и "Онлайн" такой со старта. В итоге решили на годоте спратиков накидать на поле и все. Переизобретаем stream squad
Аноним 16/05/24 Чтв 14:24:12 951371 382
>>951361
>двигать не чарактер3д, а его колижн-форму
Проблема XY. Зачем тебе это делать?

>Какие подводные
1. Само движение коллизии не доставляет особых проблем, но если у тебя сотни коллизий и ты их все хочешь как-то передвинуть за один кадр, это может перегрузить процессор и вызовет "тормоза".
2. Если новая коллизия находится ВНУТРИ какого-то физического объекта, может произойти следующее:
2.1. Если это ригидбоди и он настроен регистрировать столкновения от кинематиков, то он попытается сам выбраться и улетит прочь со скоростью звука.
2.2. Если это статикбоди или любое игнорирующее кинематики тело, тогда при следующеем применении move_and_slide() кинематик резко выскочит из него.
3. В худшем случае можно застрять так, что часть коллиженшейпов с одной стороны, а часть с другой, и ты никак не можешь сдвинуть ни то, ни другое.
4. Если ты что-то с ногами делаешь и у тебя тонкий пол, игрок может провалиться в бездну, но это-то в играх легко фиксится телепортом при Y < min_height.
5. Любые застревания будут заметны для игрока невооружённым глазом и влиять на геймплей.
Аноним 16/05/24 Чтв 14:33:15 951373 383
примерка пилотки.png 396Кб, 758x664
758x664
>>951364
> в 5 утра
> под пивом
Хотел поискать мем подходящий, чтобы выразить своё фи бухающему с утра пивному алкашу, а тут нагуглилось вот такое. Не могу не поделиться. Как же велик и могуч русский язык!
Аноним 16/05/24 Чтв 14:56:54 951379 384
>>951371
Спасибо. В точности проблема XY. Но это простой как пробка объект, он один и двигается по заранее известной траектории. Думаю ни один из этих камней не вылезет. Надеюсь. Ну, просто лень рефакторить код для учета одного-единственного случая.

Потестил немного - в моих условиях ведет себя ок. Оставлю.
Аноним 16/05/24 Чтв 15:10:51 951381 385
>>951308
>Ты что, серьезно видишь в верхней пикче нижнюю? Я например нет. Наверное на такое способен только сеньор левелдизайнер с опытом от 5 лет.
Ничего подобного. Тебе не нужно видеть в кубах детализированную архитектуру. Тебе нужно видеть, сколько метров будет бежать игрок, откуда на него будут выпрыгивать враги, где будет минное поле или растяжка, где игроку нужно открыть дверь, где игрок может укрыться от пулемётной очереди, куда игрок обязан бежать и куда он может свернуть и т.д.

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

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

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

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

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

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

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

Т.е. не левел-дизайн зависит от моделей, а модели зависят от левел-дизайна. Это ключевое отличие настоящих, качественных игр от ассет-флипов.

>>951329
>может быть ему действительно неважно как его игра выглядит, если у него аркадка, где все равно какие скины стен потом натянуть.
Что значит "как игра выглядит"? Если берешь чужие модели, то она будет выглядеть как ассет-флип из бесплатных моделек. Ты ж их "импортировал", а не разрабатывал вручную с нуля. И почему считаешь, что геймплей важен только "аркадкам"? Симуляторы ходьбы должны иметь адекватный дизайн уровней, а не абстрактный набор домиков из интернета.

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

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

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

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

Пример:
- Версия игры в релизе: 1.2.
- Работаешь над версией 1.3, в которой добавляешь новую крутую механику, но она пока что сырая и не работает как ты планировал изначально.
- ВНЕЗАПНО игроки докладывают о критическом баге в версии 1.2, который разносит им файловую систему.
- Берёшь ветку 1.2, вносишь правки, релизишь 1.2.1 с багфиксом, но без недоработанной фичи из 1.3.
- Спокойно возвращаешься к работе над веткой 1.3.
Аноним 16/05/24 Чтв 15:18:22 951384 386
>>951381
Просто БАЗА! Ни добавить, ни убавить.
мимо
Аноним 16/05/24 Чтв 15:39:12 951389 387
>>951381
Показывай свою игру.
Аноним 16/05/24 Чтв 15:39:37 951391 388
Аноним 16/05/24 Чтв 15:40:06 951392 389
17157731276951.jpg 12Кб, 144x411
144x411
>>951305
>Оказалось что glTF формат поддерживает только ORM материалы,
>скачивал FBX модель с текстурами выше по отдельности, то получалась мешанина из поста выше.
Ты уверен, что проблема только в этом?

Я на твоём скриншоте вижу потерянные грани из-за backface culling. Проверь, что у тебя в текущем материале включён backface culling, поскольку материалы из Блендера по умолчанию рендерят все грани без разбора. Куллинг задних граней нужен, чтобы рендерер не перегружался лишним мусором, но в кривых моделях некоторые грани могут быть вывернуты наизнанку. Проверить грани можно, открыв в Блендере и выбрав Viewport Overlay -> Face Orientation. Убедись, что все видимые снаружи грани синие, а не красные - красным нужно вывернуть нормали (в режиме редактирования геометрии: shift + N для автоматического, alt + N для ручного выбора).
https://docs.blender.org/manual/en/latest/editors/3dview/display/overlays.html#geometry
Аноним 16/05/24 Чтв 15:41:48 951393 390
>>951392
Надо прозрачность проверить, вроде скетчфаб в gltf ее включает везде не к месту.
Аноним 16/05/24 Чтв 15:46:12 951394 391
>>951373
Кто то бывшим пишет, а я начинаю щитпостить на борде.
Аноним 16/05/24 Чтв 15:48:11 951396 392
1715863690947.gif 150Кб, 446x452
446x452
>>951389
Но сегодня не субшота. Ну да ладно. Держи!
Аноним 16/05/24 Чтв 15:50:03 951397 393
>>951396
Да, сразу видно пользу советов.
Аноним 16/05/24 Чтв 16:02:34 951401 394
>>951396
Ты зачем мной представляешься?

>>951397
>>951389
>СПЕРВА ДОБЕЙСЯ!!1
Я просто пересказываю своими словами то, что и так всем должно быть известно. У меня нет пока готовой игры, только прототипы, но они в основном в 3D. Я не стремлюсь максимально быстро выблевать в Яндекс.Игры какой-то ассет-флип, понимаешь?

Прекрасно понимаю желание накидать готовых моделек и считать дело сделанным. Сам таким был. Но потом осознал, что это просто ассет-флиперство и настоящую игру таким способом не сделать. Многие проблемы в инди сцене как раз именно из-за того, что артисты делают арт до геймплея и левел-дизайна, а потом в игре ничего хорошего кроме арта нет.
Аноним 16/05/24 Чтв 16:12:23 951403 395
>>951401
> Ты зачем мной представляешься?
Потому что твоему оппоненту похуй, он жирнющий тролль, а ты его кормишь.
Аноним 16/05/24 Чтв 16:13:24 951404 396
>>951401
Всем должно быть известно, что есть случаи для которых подходит самосвал, а для которых подходит Ламборгини. Если ты делаешь спинномозговую аркаду - вопросов нет, тебе надо больше двигать блоки. А если анон делает атмосферный хоррор, то профит от расстановки шкафа есть, а от двиганья белых кубов нет. А ментальные усилия на это одинаковые, кроме первоначального вклада времени на импорт.
>>951403
Не тролль.
Аноним 16/05/24 Чтв 16:27:19 951409 397
>>951319
>>Terraria
>Подобное управление для 2д - большая редкость.
>более типичный пример - Hollow Knight.
В 2D с видом сбоку я чаще играл в разные клоны Terraria, чем в метроидвании. Если честно, только недавно начал пробовать метроидвании, т.к. не люблю жанр платформеров. Террария, как по мне - идеальный платформер, ведь на её базе возможно реализовать что угодно, и другие 2D платформеры после неё особо не нужны.

>>В 3D играх тем более:
>Про 3д мы не говорим. Вообще. Совсем.
Интерактивность объектов не зависит от 2D/3D, если мы говорим об организации скриптов игры.

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

На персонаже висит Area2D с круглой коллизией, назовём её InteractionRadius и настроим её на регистрацию коллизий с определённым слоем, который назовём Interactives. На интерактивных объектах висят Area2D, назовём их InteractiveTrigger и поместим их в слой Interactives, отключив им мониторинг, потому что сами они ничего делать не будут. В интерактивных объектах нет никакого кода, кроме одной функции interact(with_whom) и связанных с ней действий, весь код исполняется только со стороны игрока внутри его _unhandled_input(). Код игрока, при нажатии кнопки взаимодействия, спрашивает у InteractionRadius, какие InteractiveTrigger находятся в зоне досягаемости? И если какие-то доступны, а скорее всего только одна, у неё исполняется метод interact(), который делает то, для чего создан этот предмет (дверь открывается, выключатель на стене включает источник света, автоматическая турель включает боевой режим, и т.д.). Никакие сигналы тут не нужны и тем более не нужно по всем объектам в мире бегать, мы же получаем только список ближайших.

Если тебе нужно показать подсказку "нажмите E, чтобы взаимодействовать", тогда ты можешь в _physics_process игрока один раз спрашивать InteractionRadius.has_overlapping_areas(), это не будет затратной операцией, потому что всего один запрос к одной ноде, у тебя на движение A/D наверняка уходит больше времени, чем на это. Поскольку InteractionRadius настроена воспринимать только определённый слой, в котором существуют только InteractiveTrigger, её работа не должна существенно влиять на физический движок.
Аноним 16/05/24 Чтв 16:30:49 951411 398
Кто в курсе, на яндекс играх сложно модерацию пройти?
Аноним 16/05/24 Чтв 16:38:39 951414 399
>>951409
Впрочем, ладно, можно сигналы входа/выхода использовать, в некоторых ситуациях это проще, например, если объект должен включать контурную подсветку, пока рядом находится игрок - этим должна управлять InteractiveTrigger.

Просто у меня постоянно проблемы с этим: либо сигнал входа не срабатывает, либо сигнал выхода не срабатывает, какая-то ошибка в логике движка.

Может быть, в 4.3 наконец-то пофиксят эти баги.
Аноним 16/05/24 Чтв 16:39:03 951415 400
>>951404
> Не тролль.
Нет ты.
Аноним 16/05/24 Чтв 16:40:58 951416 401
>>951414
>этим должна управлять InteractiveTrigger.
...ааа, не-не, в 3D этим должен рейкаст управлять, иначе все объекты возле игрока светиться будут.

Походу, универсального решения нет.
Аноним 16/05/24 Чтв 16:41:14 951417 402
>>951411
Да. В прошлом-позапрошлом треде анон страдал неделями. Можешь сходить почитать.
Аноним 16/05/24 Чтв 16:43:49 951418 403
Как набрать бета-тестеров? На днях на реддите видел такой подход. Чел постит видос, ловит среди комментаторов самых заинтересованных, и отправляет им в личку линк на приватный проект на итч.ио. Делал так кто-нибудь из местных? Выхлоп по фидбеку есть?
Аноним 16/05/24 Чтв 16:57:10 951421 404
>>951404
>ты делаешь спинномозговую аркаду
Тащем-то да, тут не поспоришь.

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

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

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

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

>усилия на это одинаковые
Ты просто не видишь подводных камней.

Правильный блокинг позволяет избежать переделывания ассетов в будущем. Ты заранее отменяешь участки, расставляешь триггеры событий и т.д. В дальнейшем ты это всё менять не будешь, не будешь переставлять по карте холодильники, двери и мобов. Если же ты берёшь готовые модели и пытаешься из них что-то слепить, ты можешь обнаружить, что модели к чему-то не подходят, что ты не можешь сделать из них то, что тебе хочется, и т.д. Тебе придётся править модели, искать или делать новые. В общем, без блокинга ты можешь застрять на переделывании уже готовых моделей под конкретные ситуации, что может быть даже сложнее, чем делать с нуля.
Аноним 16/05/24 Чтв 16:59:01 951423 405
1715867941333.png 47Кб, 1554x844
1554x844
>>951416
Универсального решения нет. Есть классическое. О нём я написал ещё в прошлом треде.
1. У игрока рейкаст на максимальную длину интеракций игрока, например 10 юнит-метров, на которые он может крикнуть "стой кто идёт!"
2. У интерактивных предметов область (Area) внутри которой игроку разрешено интерактировать.
3. Игрок интерактирует только с тем, на что смотрит мышкой.
4. Сообщение об интеракции выводится если игрок пересекается с зоной предмета.
> if raycast.is_colliding() and raycast,collider is Area3D and self in raycast,collider.get_overlapping_bodies(): UI.show...

Вот я вам даже пикчу нарисовал. Поймите уже наконец!
Аноним 16/05/24 Чтв 17:05:28 951428 406
Аноним 16/05/24 Чтв 17:13:38 951429 407
мимо.jpg 37Кб, 800x840
800x840
>>951423
>У интерактивных предметов область (Area) внутри которой игроку разрешено интерактировать.
>self in raycast.collider.get_overlapping_bodies():
Зачем, если у тебя и так рейкаст кидается?
Аноним 16/05/24 Чтв 17:18:47 951430 408
>>951423
>>951429
А, стоп, кажись понял, т.е. если у предмета можно взаимодействовать только с одной стороны... Но в таком случае пусть луч останавливается в т.ч. препятствиями, а не только Area3D объектов.
Аноним 16/05/24 Чтв 17:34:55 951434 409
>>951418
>Как набрать бета-тестеров?
Есть куча способов. Вопрос в том, какие именно тестировщики нужны, готов ли выложить игру на публику раньше или хочешь NDA, бюджет и т.д.

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

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

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

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

Реддит - помойка типа Пикабу, только глобальная. Там очень не любят спам и самопиар, а в геймдев сабреддитах такие же как ты геймдевы сидят. На новом аккаунте легко попасть в шедоубан.
Аноним 16/05/24 Чтв 18:28:40 951440 410
>>951430
>>951429
Ща погодь, я сам уже запутался. Всё не так.Щас накидаю тестовую сцену.
Аноним 16/05/24 Чтв 18:36:12 951443 411
>>951434
Я соло, масштаб маленький, сам понимаешь. Никакие NDA не нужны. Мне просто нужен десяток-два ранних и подробных отзывов, чтобы понять в том ли я направлении иду и, если что, скорректировать направление. Все друзья-знакомые уже использованы и заебаны.
Аноним 16/05/24 Чтв 18:54:23 951445 412
Сцена.png 18Кб, 259x227
259x227
Player.gd.png 71Кб, 803x509
803x509
Area.gd.png 36Кб, 478x380
478x380
Object100500.png 18Кб, 483x202
483x202
>>951440
>>951430
>>951429
Ну вот, смотрите сюды. Нужно три скрипта. На игрока, разумеется, скрипт-рейкаст. На интерактивный объект короткий скрипт-геттер. И на арею скрипт, который чекает вход-выход.

Всё ясно из кода, ящитаю:
Аноним 16/05/24 Чтв 18:54:48 951446 413
1715874888254.png 3Кб, 235x160
235x160
>>951445
И в результате имеем:
Аноним 16/05/24 Чтв 19:21:11 951450 414
1715876470780.png 18Кб, 260x244
260x244
1715876470806.png 81Кб, 821x532
821x532
1715876470811.png 6Кб, 331x194
331x194
>>951445
И ещё один момент. Если мы посмотрим на > Сцена.png то может сложиться ошибочное мнение, что область должна быть вложенной в интерактивный объект, но нет, если мы внимательно посмотрим на скрипт > Area.gd.png то мы увидим, что объект задаётся в инспекторе, и область может быть накинута на любой объект как внешний компонент, или контроллер. Таким образом, для двигающихся объектов можно вкладывать её внутрь, а для выключателей каких-нибудь, просто разместить в нужном месте.
Пикрелейтед.
Поменял положение ареи в сцене - код работает как работал. Арея осталась перед игроком, а объект улетел. Но пока игрок не вышел из ареи, ссылка на улетевший объект висит в массиве.

Это можно использовать как геймплей.
Аноним 16/05/24 Чтв 19:34:44 951452 415
>>951421
Ну ты когда сделаешь игру по таким принципам, тогда приноси и покажешь ее, а я пока буду ставить шкафы там где хочу ставить шкафы, а не придумывать что же именно должно быть на месте белого кубика посередине комнаты. А потом сравним результаты.
Аноним 16/05/24 Чтв 19:36:29 951453 416
>>951423
Можно сделать менеджер взаимодействий. Тогда не будет проблемы, кто должен обрабатывать взаимодействие, игрок или предмет. А еще, в теории более расширяемая система, например можно добавить нескольких персонажей.
Аноним 16/05/24 Чтв 19:48:27 951454 417
1715878106751.png 22Кб, 861x642
861x642
1715878106775.png 21Кб, 743x631
743x631
1715878106780.png 22Кб, 800x630
800x630
1715878106782.png 24Кб, 796x635
796x635
>>951453
Код в предыдущих постах - это уже готовый менеджер. (Если точнее, ты просто ебанул в код экспортную переменную и у тебя уже менеджер, он уже манагерит данные, которые ты ему в инспекторе подсунешь). А вот как это выглядит с лейблом на экране. Первые две пикчи - игрок в зоне действия только "шкафчика", вторые две пикчи - игрок в зоне действия и "шкафчика" и "унитаза".
Аноним 16/05/24 Чтв 20:35:22 951473 418
0095-0914.mp4 7238Кб, 1024x768, 00:00:27
1024x768
>>951392
>Я на твоём скриншоте вижу потерянные грани
>>951393
>Надо прозрачность проверить

Да, это был косяк прозрачности. В текстуре холодильника, дырки под решетки нарисованы альфа каналом. Если в настройках материала выставить Alpha Hashed в Blend Mode то движок сделает прозрачным не только участки меша с альфой но и весь меш между камерой и участком с альфой - то бишь стенку холодильника между решеткой и камерой.
Удалось вылечить назначив полигонам с решеткой отдельный материал, то есть весь холодильник имеет свой материал с Blend Mode - Opaque, а 4-ем полигонам с решеткой назначена копия этого материала но с Blend Mode - Alpha Hashed.

Подробно это дерьмо нигде не описано поэтому опять пришлось всрать уйму времени на метод научного тыка.
Аноним 16/05/24 Чтв 20:47:34 951476 419
>>951473
При импорте есть пункт меню импортировать материалы отдельными .material файлами, они сохранятся отдельно и можно их менять свободно.
Еще вариант, вроде бы gltf текстовый файл наподобие json, и там где то можно тупо в текстовом редакторе (только тяжеловесном, не блокноте) или скриптом менять. Наверное. Вроде бы получалось пару лет назад.
Аноним 16/05/24 Чтв 20:51:50 951478 420
>>951473
> 0095-0914.mp4
Ля кокая! Скоро поиграем!
Аноним 16/05/24 Чтв 21:09:24 951482 421
>>951476
>сохранятся отдельно и можно их менять свободно
>в текстовом редакторе (только тяжеловесном, не блокноте) или скриптом менят

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

>>951478
>Ля кокая! Скоро поиграем!

Ой не скоро, если так и буду спотыкаться.
Аноним 16/05/24 Чтв 21:19:56 951484 422
>>951482
Формат gltf описан в интернете. Поля ORM и Стандарт материала описаны в документации. 2 и 2 сопоставить уже должен ты сам. Как бы это очевидно что дело или в прозрачности или в куллинге. Документация никак не сможет угадать, какую модельку и откуда ты скачаешь. А перечислять все соответствия - бред. Это превратит документацию просто в кашу из перечислений полей, которую никто не сможет прочитать. Впрочем, тебе никто не мешает отправить пулл реквест в документацию, если ты считаешь, что можешь сформулировать что-то лучше.
Аноним 16/05/24 Чтв 21:28:15 951488 423
5llikl.png 257Кб, 426x454
426x454
Аноним 16/05/24 Чтв 21:29:51 951490 424
>>951488
Могу нахуй послать.
Аноним 16/05/24 Чтв 21:35:16 951491 425
1715884513547.mp4 388Кб, 1152x648, 00:00:07
1152x648
Девочьки, не ссорьтесь!
Игры делойте, ну.
Аноним 16/05/24 Чтв 21:50:16 951497 426
>>951445
>>951454
>>951491
Так зачем арея-то, если луч есть? Зачееем?

>>951450
>Поменял положение ареи в сцене - код работает как работал. Арея осталась перед игроком, а объект улетел. Но пока игрок не вышел из ареи, ссылка на улетевший объект висит в массиве.
ЗАААЧЕЕЕМ???

Я понимаю, если это какой-то гениальной задумкой геймдизайнера обосновано, но ты скрестил ужа с ежом и сам объяснить не можешь, зачем это сделал.
Аноним 16/05/24 Чтв 21:53:50 951498 427
>>951490
Можешь, а делать что-нибудь умеешь?
Аноним 16/05/24 Чтв 22:02:10 951501 428
>>951497
> и сам объяснить не можешь, зачем это сделал
Объект наносит урон N в секунду, если находишься поблизости. или объект - мина с таймером, которая активируется, когда ты приблизился, и нужно успеть деактивировать.
Вариантов куча. Если ты не можешь ничего придумать - не меряй всех по себе.
Аноним 16/05/24 Чтв 22:05:10 951502 429
>>951473
>дырки под решетки нарисованы альфа
Так лучше не делать, альфа дорого стоит щас.
Лучше отсыпать полигончиков, они дешевле.

>Подробно это дерьмо нигде не описано поэтому опять пришлось всрать уйму времени на метод научного тыка.
https://docs.godotengine.org/en/stable/classes/class_basematerial3d.html#enum-basematerial3d-transparency

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

>>951478
>Скоро поиграем!
В симулятор ходьбы по бесплатным моделькам ты и сам можешь поиграть прямо в своём Godot.

Геймплей-то в чём? По холодильникам шариться?

Так-то он молодец, конечно, старается, камера вон какая прикольная, из-за угла следит, с зумом. Но игры в этом пока что нет и холодильник погоды не делает.
Аноним 16/05/24 Чтв 22:05:36 951503 430
>>951497
> гениальной задумкой геймдизайнера обосновано
Рад знакомству. Рад знакомству. Да, это я.
Аноним 16/05/24 Чтв 22:08:05 951504 431
>>951502
> Геймплей-то в чём? По холодильникам шариться?
Я ему предложил геймплей в прошлом треде, он проигнорировал. Ну, штош. Посмотрим, что он сам придумает.
Аноним 16/05/24 Чтв 22:15:16 951505 432
>>951501
>Объект наносит урон N в секунду
>или объект - мина с таймером
Всё это целесообразнее сделать отдельной сценой, которая вешается на другие - по необходимости.

Вот у тебя есть сцена ball.tscn, ты можешь взять её в руки и бросить куда-то, она отскакивать умеет.

Есть сцена hot.tscn, она наносит урон по области.

Есть сцена time_bomb.tscn, она взрывается.

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

Добавь сюда glue.tscn и получишь ещё 4 варианта.

Добавь сюда smoking.tscn - будет ещё 8 вариантов.
Аноним 16/05/24 Чтв 22:15:23 951506 433
>>951502
>https://docs.godotengine.org/en/stable/classes/class_basematerial3d.html#enum-basematerial3d-transparency

> В документации всё описано подробно,

Закрывая глаза на то что ты линкуешь не описание материала а API материала, ну как покажи мне скриншотом строчку с русским переводом где говориться что Alpha Hashed приведет к прозрачности участка объекта без прозрачности.
Аноним 16/05/24 Чтв 22:20:25 951507 434
>>951505
>time_bomb.tscn, она взрывается.
Даже не так, лучше так:
- ball.tscn - прыгает
- - bomb.tscn - способна взорваться
- - - timer.tscn - активирует предка по таймеру
- - - collision.tscn - активирует по столкновению
- - - if_wet.tscn - активирует в воде
И т.д.

Композицией можно много чего сделать...
Аноним 16/05/24 Чтв 22:22:02 951508 435
Аноним 16/05/24 Чтв 22:26:03 951509 436
>>951507
> collision.tscn - активирует по столкновению
Ну и. Вот я и реализовал выше колижн тсцн. Чё доебался?
Аноним 16/05/24 Чтв 22:31:11 951512 437
>>951506
>Alpha Hashed приведет к прозрачности участка объекта без прозрачности.
Что ты имеешь в виду?

>The material will cut off all values below a spatially-deterministic threshold, the rest will remain opaque. This is faster to render than alpha blending, but slower than opaque rendering. This also supports casting shadows. Alpha hashing is suited for hair rendering.

>русским переводом
Твоя проблема, что прогуливал школу.
>Материал отсекает все значения ниже пространственно определяемого порога, остальные остаются непрозрачными. Это быстрее, чем альфа-смешивание, но медленнее, чем непрозрачный рендеринг. Это также поддерживает отбрасывание теней. Альфа-хэширование подходит для рендеринга волос.
Аноним 16/05/24 Чтв 22:51:32 951516 438
>>951305
Нашёл я твой лолодильник, любопытно поковырять, но сраная файлопомойка требует регистрацию...
https://sketchfab.com/models/6b2862c241754f5d81690e8664e41091/embed

Вот раньше были времена - все файлы качали без смс и регистрации, и сайты летали, не было никаких калудфаеров, не было гуглокапчи, не было 403 и 451 на каждом втором сайте, всех везде пускали и печеньками угощали без ограничений, а сейчас зумеры интернет зохватили и изуродовали, скоро вообще никуда зайти без пароля нельзя будет, а пароль по паспорту, а паспорт по анализу ДНК, а анализ ДНК через анальный зонд...
Аноним 16/05/24 Чтв 23:41:37 951524 439
Я устал делать игры.
Аноним 17/05/24 Птн 00:48:15 951532 440
image.png 160Кб, 897x673
897x673
>>951524
Тебе мотивации не хватает?
Аноним 17/05/24 Птн 04:05:41 951537 441
>>951532
Мотивации хватает, батарейка энергии села. Поделал бы с ней игры.
Аноним 17/05/24 Птн 07:34:43 951540 442
1715920483819.mp4 485Кб, 1152x648, 00:00:07
1152x648
1715920483819.png 76Кб, 818x415
818x415
В трёшке был рейкастшейп для арей. В четвёрке как будто бы нету, ну по крайней мере я не нашёл. Есть какие-то особые рейкасты для лестниц. В общем, шейп в виде цилиндра толщиной 0,01 аналогичен рейкастшейпу. На прилагаемом видео мы видим одновременно рейкаст и арею с тонкоцилиндршейпом. Рейкаст получает только один объект, арея получает массив оверлаппед бодей. Что лучше? Вам решать. Если для геймплея нужно за один проход сгрести в инвентарь всё на что смотрит перс (Legend of Zelda), то нужно получать массив, если же достаточно ухватить один ближайший (Skyrim), то рейкаста достаточно.
Аноним 17/05/24 Птн 10:23:44 951548 443
>>951524
Поделай круды у кабана, батарейка сядет за один день.
Аноним 17/05/24 Птн 11:13:05 951550 444
>>951540
>рейкастшейп
>В четвёрке я не нашёл.
>особые рейкасты для лестниц
Его просто переименовали для ясности.
https://docs.godotengine.org/en/3.6/classes/class_rayshape.html
https://docs.godotengine.org/en/stable/classes/class_separationrayshape3d.html
С кинематиками и ригидами работает хорошо, но на счёт использования в Area3D не знаю, не пробовал.

>цилиндра толщиной 0,01 аналогичен
По производительности хуже, т.к. больше проверок.

>сгрести в инвентарь всё на что смотрит перс
Для этого лучше сферический шейп, наверное.
Аноним 17/05/24 Птн 11:17:14 951551 445
>>951550
>лучше сферический
Кстати, никого не смущает отсутствие конического шейпа? По-моему, можно найти много ситуаций, когда конус подходит лучше цилиндра и сферы, например, для поля зрения мобов. Или конус слишком сложен математически для того, чтобы быть примитивом? Конический меш-то мы можем легко сделать из цилиндра CSG, а вот цилиндрический шейп в конус не превращается.
Аноним 17/05/24 Птн 13:41:17 951561 446
>>951550
> По производительности хуже, т.к. больше проверок.
Вот здесь поподробнее, плиз. Насколько хуже? И собственно, хуже чем что? Чем цилиндр толщиной 0.02? Или хуже чем рейкаст? Или хуже чем капсуль толщиной 0.01?
Аноним 17/05/24 Птн 13:51:58 951563 447
1715943117282.png 319Кб, 1087x467
1087x467
>>951551
> Кстати, никого не смущает отсутствие конического шейпа?
Не смущает. Мы что, жуки-плавунцы? Нешто мы Хуана подведём? Подождём релиза. Правильно, мужики? Здесь донатных нет. Надо будет - вручную конвекс-полигон по точкам построим. И далее по тексту.
Аноним 17/05/24 Птн 14:09:41 951566 448
>>951561
>поподробнее
RTFM
https://docs.godotengine.org/en/stable/classes/class_cylindershape3d.html
>Performance: CylinderShape3D is fast to check collisions against, but it is slower than CapsuleShape3D, BoxShape3D, and SphereShape3D.
Алсо, внезапно:
>Note: There are several known bugs with cylinder collision shapes. Using CapsuleShape3D or BoxShape3D instead is recommended.
По другим шейпам:
>Performance: CapsuleShape3D is fast to check collisions against. It is faster than CylinderShape3D, but slower than SphereShape3D and BoxShape3D.
>Performance: BoxShape3D is fast to check collisions against. It is faster than CapsuleShape3D and CylinderShape3D, but slower than SphereShape3D.
>Performance: SphereShape3D is fast to check collisions against. It is faster than BoxShape3D, CapsuleShape3D, and CylinderShape3D.
Ну, про сферу и без документации очевидно, сфера - это только проверка на расстояние и больше ничего.
Аноним 17/05/24 Птн 14:14:26 951567 449
>>951566
Спасибо.
Заменил цилиндр на капсулу.
Аноним 17/05/24 Птн 14:43:45 951574 450
image.png 299Кб, 932x723
932x723
>>951551
>>951563
Можно проще. Создаем меш, идем в Mesh -> Create Static Body, получаем колижн шейп любой формы.

А если еще CSG to Mesh использовать ...
Аноним 17/05/24 Птн 15:03:51 951578 451
1715947430387.png 228Кб, 554x582
554x582
1715947430428.png 20Кб, 338x411
338x411
1715947430435.png 16Кб, 350x193
350x193
>>951574
> получаем колижн шейп любой формы
Да чот хуйня получается, жук-плавунец. Ты к нам змеёй не прокрадёшься!

Сделал бы Хуан цилиндр с двумя радиусами - вот и конус готов.
Аноним 17/05/24 Птн 15:05:45 951579 452
>>951574
>колижн шейп любой формы
У тебя вот это получилось на скриншоте:
https://docs.godotengine.org/en/stable/classes/class_concavepolygonshape3d.html
Там проблем много разных.

>CSG to Mesh
CSG создаёт очень кривую сетку, с которой ничего не сделаешь, а для коллизий и подавно лучше не юзать.

CSG хорош, когда тебе нужно прикинуть размеры, прототип слепить на скорую руку. Потом всё равно с нуля придётся переделывать... или через ремеш:
https://docs.blender.org/manual/en/latest/modeling/modifiers/generate/remesh.html
Аноним 17/05/24 Птн 15:09:50 951580 453
1715947789107.png 229Кб, 546x575
546x575
1715947789146.png 267Кб, 705x506
705x506
>>951578
Впрочем, ладно. Со второго раза получается вполне себе конус, но лишних вершин всё равно больше, чем у вручную нарисованного.
Аноним 17/05/24 Птн 15:14:30 951581 454
>>951579
Нууу? Ты же согласен со мной, чем меньше вершин, тем быстрее проверка шейпа на коллизию? И конечно же только конвекс, потому что конкейв считается по другой, ещё более тяжёлой формуле.
Аноним 17/05/24 Птн 15:53:33 951587 455
>>951581
С тобой я и не спорил. В обсуждении минимум трое.
Аноним 17/05/24 Птн 16:05:50 951591 456
>>951587
Меня забыли! Как минимум четверо.
Аноним 17/05/24 Птн 16:17:41 951595 457
Godette lemon.gif 170Кб, 921x732
921x732
Аноним 17/05/24 Птн 16:41:30 951601 458
>>949252
Очень красивая. Эпикантус = аниме.
Аноним 17/05/24 Птн 16:49:05 951603 459
Screenshot24.png 242Кб, 872x315
872x315
spongebob-squar[...].gif 1244Кб, 353x234
353x234
Аноним 17/05/24 Птн 17:47:11 951612 460
>>951603
Ну в блендере запеки, фигли.
Аноним 17/05/24 Птн 17:57:06 951616 461
>>951612
Придется собирать всю сцену в блендере что на выходе даст огромный glTF.
Подумаю.
Аноним 17/05/24 Птн 18:01:55 951619 462
>>951616
Хм, может быть можно там запечь только лайтмап в текстуры. Не пробовал.
А ты в веб делаешь что ли? Но зачем тогда было брать 4й. Не понимаю, сколько раз еще про это надо написать в треде.
Аноним 17/05/24 Птн 18:19:33 951622 463
>>951619
Пока игра делается там уже пятый выйдет.
Аноним 17/05/24 Птн 18:25:06 951624 464
>>951622
> жалуется на ограниченную поддержку лайтмапов
> а игры-то нет, игра-то только делается
> вместо того, чтобы делать игру, ковыряется с постпроцессингом
А ты уверен, что ты делаешь игру, а не рендер простой? Так если ты делаешь рендер, зачем тебе игровой движок?
>>951616
> Придется собирать всю сцену в блендере что на выходе даст огромный glTF.
А зачем тебе GLTF? Сразу в пикчу рендерь свой рендер, да и всё.
Аноним 17/05/24 Птн 18:37:46 951625 465
>>951624
>А ты уверен
Я не он. Просто говорю очевидную вещь, пока игра делается успеет еще несколько версий выйти. Тут вот 4.3 за углом, в нем с вебом уже получше.
Аноним 17/05/24 Птн 18:42:13 951626 466
>>951625
Ты не Он. Никто из нас не может быть Им, а только старается приблизиться к Нему своей жизнью на Дваче.
Аноним 17/05/24 Птн 20:12:56 951640 467
>>951409
М-да, бро. Думал-думал, как тебе ответить, в итоге забил. Не как что-то плохое, но с моей точки зрения у тебя какое-то инопланетное мышление. Я так-то не претендую на абсолютную истину, конечно, просто вещи, которые для меня очевидны и естественны, для тебя абракадабра и алаказам, и наоборот.
Штош.
Аноним 17/05/24 Птн 21:51:30 951663 468
>>951640
Мы все с разных планет, а жаль. Если бы не это, могли бы объединиться и запилить всем тредом одну игру мою, хехе.
Аноним 17/05/24 Птн 22:19:44 951671 469
>>949247 (OP)
У меня очень тупой вопрос возник. Как в режиме 3д управлять камерой? Я хочу приблизить камеру к модельке, кручу колесико и оно приближает немного, а потом начинает работать только на отдаление. Или движение камеры по осям до ужаса медленное.
Аноним 17/05/24 Птн 23:00:46 951689 470
>>951671
Выделив нужный объект нажми клавишу F чтобы на нем сфокусировать камеру. Если все равно мало, зажми правую кнопку мыши и управляй полетом на клавиши WASD.
Аноним 17/05/24 Птн 23:24:03 951695 471
>>951671
>приближает немного, а потом начинает работать только на отдаление
View -> Settings... -> View Z-Near: ставь число поменьше (0.01).

>Как в режиме 3д управлять камерой?
F: сфокусироваться на выбранной в сцене ноде.
Колёсико крутить: зум к точке/от точки фокуса.
Колёсико зажать+движение мыши: вращение вокруг точки фокуса.
Колёсико зажать+shift+движение мыши: движение камеры по осям.
Колёсико зажать+ctrl+движение мыши: зум, но быстрее колёсика.
ПКМ+движение мыши: разворот камеры вокруг самой себя.
ПКМ+QWEASD: полёт от лица камеры (Q/E - вниз/вверх, shift - бег).
ПКМ+колёсико крутить: изменить скорость движения по QWEASD.
Аноним 17/05/24 Птн 23:40:58 951703 472
>>951640
В геймдеве, как и в программировании вообще, одну задачу обычно можно решить большим множеством способов. При этом редко бывают идеальные решения, подходящие всем сразу, всегда приходится чем-то жертвовать по ситуации. Но когда изучаешь какую-то новую фичу, учишься пользоваться ей определённым образом, привыкаешь... В итоге становится сложно воспринимать альтернативы. С этим связана проблема чтения чужого кода: язык один, команды понятны, но структура программы может сильно отличаться от привычной, поэтому сложно понять, что она делает. В Godot язык сцен (.tscn) - это декларативный язык программирования (описывает только что нужно получить, но не объясняет как), хоть и не похож на привычные языки. Так что проблемы с пониманием чужой организации сцен логичны.
Аноним 17/05/24 Птн 23:53:12 951709 473
>>951703
> язык сцен (.tscn) - это декларативный язык программирования
Это формат сериализации. Я не спорю, если что, просто уточнил. Сериализация везде декларативна.
Аноним 18/05/24 Суб 12:16:48 951751 474
9EzaTcnT9PWOM-dR.mp4 1806Кб, 1280x720, 00:00:19
1280x720
Всем делать игры.
Аноним 18/05/24 Суб 12:27:34 951753 475
Аноним 18/05/24 Суб 12:43:05 951755 476
не-заставляй-ме[...].mp4 2368Кб, 1280x720, 00:00:07
1280x720
>>951751
>Всем делать игры
Аноним 18/05/24 Суб 12:44:12 951756 477
>>951755
Для общего блага!
Аноним 18/05/24 Суб 13:12:36 951757 478
>>951703
>язык один, команды понятны, но структура программы может сильно отличаться от привычной, поэтому сложно понять, что она делает
Ты мне щас дал +1 аргумент в споре с "комментарии не нужны, пишите самодокументирующийся код" фанатиками. Схоронил.
Аноним 18/05/24 Суб 15:05:59 951771 479
1716033958888.gif 4213Кб, 400x200
400x200
>>951755
Как же я ору от этого видоса в контексте /гд/! Давай ещё!
Аноним 18/05/24 Суб 17:13:52 951793 480
Как можно заставить ноду, лежащую выше по дереву, обрабатывать инпут раньше нод, лежащих ниже? То есть:

- Нода1
- Нода2
- Нода3

Мне нужно чтобы нода1 получала инпут первой. Есть CanvasLayer, но как я понял он для смены очереди _отрисовки_, а обработка ввода остается старой.
Аноним 18/05/24 Суб 17:28:16 951804 481
>>951793
Дополню - это контрол-ноды. Кнопки.
Аноним 18/05/24 Суб 17:44:14 951814 482
>>951793
Переделал структуру, проблема не актуальна. Видимо хуйню хотел.
Аноним 18/05/24 Суб 18:05:59 951818 483
>>951814
> Видимо хуйню хотел.
Тем не менее, в движке можно и такое замутить. Но молодец, что переделал.
Аноним 18/05/24 Суб 19:47:13 951832 484
А вот и импорт паплайн от Пети Сканера: https://www.youtube.com/watch?v=DDxfIpIiEA8
Для трёшки тут >>951322
>>951231
> Какая именно проблема? Я в 4-ку закидывал gltf и все работает.
Посмотри видос, и поймешь, о какой проблеме речь.
Аноним 18/05/24 Суб 20:20:38 951842 485
>>951832
Мне не интересно выяснять что там у него в видосе. Пиши конкретно.
Аноним 18/05/24 Суб 20:37:42 951847 486
>>951842
Я малость косноязычен, и не могу это описать. Там окошко кароч. И при изменении файла реимпорт не происходит. Хотя странно, почему не происходит? Видимо он тоже нужные галочки не выставил в панели импорта, которую показывал в своём видосе. Ну да ладно, главное что у тебя всё работает. И карочи, там много памяти потребляется. И при реимпорте материалы вложены в меши. И вот для всего этого он написал скрипт, но скрипт - моё почтение! Вытаскивает материалы из мешей, сохраняет в файлы и не дублирует, и линкует файловые материалы к мешам при реимпорте. Автоматически. Как это сделать галочками? Я бы поглядел.
Аноним 18/05/24 Суб 22:49:09 951861 487
Кто-нибудь может собрать Godot под windows arm64?
Аноним 18/05/24 Суб 23:00:17 951863 488
1692193042811.png 9Кб, 1021x68
1021x68
>>951861
Не понятно, это нужен пк на arm?
Аноним 18/05/24 Суб 23:03:04 951864 489
0261-2423.mp4 20745Кб, 1024x768, 00:01:12
1024x768
Поклеил обои, положил линолеум. Базовому классу Interactable добавил возможность выбора из нескольких опций (взаимодействие с холодильником - Interactable без опций, выключатель - Interactable с опциями). Постепенно выстраивается понимание, как наиболее гладко организовать рабочий процесс на связке Blender -> Godot.
Аноним 18/05/24 Суб 23:06:33 951865 490
>>951864
В ботинках да по хрущевым хоромам. Ужас-кошмар.
Аноним 18/05/24 Суб 23:46:18 951873 491
>>951818
>Тем не менее, в движке можно и такое замутить.
А как?
Аноним 19/05/24 Вск 00:34:38 951878 492
>>951863
Можно заебашить кросскомпиляцию из-под линуха. Но чёт мне кажется, без большого опыта в различных сексуальных девиациях такое не провернуть.
Аноним 19/05/24 Вск 01:02:24 951880 493
>>951873
А, уже переделал снова. Снова неактуально. Сорян, анон! Не напрягайся с объяснениями.
Аноним 19/05/24 Вск 10:21:02 951892 494
>>951864
А почему у тебя игра по английски?
Сначала же по русски была?

И еще тебе совет по камере. Тут недавно на стопгейме вспоминали принц Персии: пески времени, и я как вспомнил, какая же охуенная там камера была! Она в основном за персом летает, но альтернативные точки есть всегда в каждой локации, и их можно включить кнопкой Q а в некоторых ситуациях камера сама встаёт в альтернативную точку. И еще с забавным воздушным звуком камера от стен отскакивает, когда её крутишь.

Посмотри лецплеи, а лучше сам поиграй, может почерпнёшь пару идей. (Я охуел от того, что ПП1 сегодня выглядит вполне играбельно, как неплохое лоуполи-инди со дна стима!)
Аноним 19/05/24 Вск 12:11:40 951895 495
>>951892
>А почему у тебя игра по английски?
>Сначала же по русски была?

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

>недавно на стопгейме вспоминали принц Персии: пески времени

Моя любимая игра в серии. Невероятно сказочная атмосфера. Нужно будет действительно переиграть.
Наверно стоит переиграть все любимые игры и почерпнуть из них что меня задело в свое время больше всего.
Аноним 19/05/24 Вск 13:25:32 951903 496
>>951895
>буду делать на английском чтобы выложить на реддит
База. Поделись постом потом, чтобы вручную тебя не ловить.

>>951892
Помню как меня в ПП1 впечатлил откат времени. Поэтому оно стало ключевой фичей моей игры.
Аноним # OP 19/05/24 Вск 14:01:23 951908 497
1716116480867.png 162Кб, 365x441
365x441
Открыт стол заказов контента на перекат. Оставляйте заявки.
Аноним 19/05/24 Вск 14:13:50 951912 498
Аноним 19/05/24 Вск 14:21:24 951915 499
image 98Кб, 850x850
850x850
>>951908
>Оставляйте заявки
ПЕРЕКАТ Аноним # OP 19/05/24 Вск 14:58:27 951926 500
1716119905562.png 185Кб, 355x393
355x393
Ответить в тред Ответить в тред

Check this out!

Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов