М.Двач / Gamedev

Двач.hk прислал битые данные.
Вы видите копию треда, сохраненную 1 сентября в 20:20.
Можете попробовать обновить страницу, чтобы увидеть актуальную версию.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

Проект DSotM (кодовое название) 19 авг, 11:32 1048406 В конец треда | Веб

141 Кб, 590x404336 Кб, 1143x598136 Кб, 920x82716,1 Мб, mp4,
1280x720, 1:01

О чем тред: буду постить прогресс разработки моей игры
Жанр: смесь immersive sim и survival horror
Двигло: православный GODOT 4.4
Сеттинг/сюжет: в разработке (но планируется что-то не совсем очевидное)

Сразу отмечу три вещи:
1) Я не программист, не знаю паттернов и рот их ебал
2) if/else - это настоящая сигма мейл гигачад БАЗА
3) Я могу использовать хорошие практики движка/программирования, а могу и нет, просто потому что мне так самому удобно или проста нравится

Проект находится на ранней стадии разработки.
Пока готово:
- Базовое перемещение (+ прыжки, присед, плаванье, разные виды лестниц)
- Базовый инвентарь (подбор предметов, стаки, перемещение)
- Менеджер оружия (подбор, смена, атака, перезарядка, разные состояния во время различных действий игрока, расчет траектории атаки)
- Разное по мелочи: смена уровней, взаимодействие с предметами и т.п.
- Базовая система сохранений (уровень, состояние уровня и предметов на нем, состояние инвентаря, данные игрока)

Что дальше?
- Сейчас занимаюсь проектированием и созданием базового AI для врагов
- Далее начну работать с террейном и собирать первые прототипы уровней параллельно выпиливая допиливая необходимые механики

Ответы484454844648516

2 19 авг, 11:41 2 1048408

55 Кб, 526x721535 Кб, 1889x593

Для AI врагов выбрал behavior tree (или чет такое). По реализации: базовая сцена с врагов + подключаемый ресурс.
Сделал наброски тестового алгоритма. Только вот что начал понемногу реализовывать.

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

lymboAI использовать не хочу

Ответы48446

25 Кб, 187x122
3 19 авг, 11:44 3 1048410

Кстати, да, на fps можете пока-что не смотреть, т.к. временно работаю за некроноутом

Ответы48445

4 19 авг, 16:47 4 1048445

>>1048406 (OP)
>immersive sim
>Godot
Вот этот проект рассматривал?
https://github.com/Phazorknight/Cogito

>>1048410
1. Compatibility рендерер выбери.
2. Сожми разрешение экрана в 2 раза.
3. Переключи физику на Jolt - он быстрее.
4. В материалах SHADING_MODE_PER_VERTEX.

В OBS выбери ultrafast в кодировщике записи.
Можно ещё заюзать встроенный режим записи:
https://godotengine.org/article/movie-maker-mode-arrives-in-godot-4/
https://docs.godotengine.org/en/stable/tutorials/animation/creating_movies.html

Ответы48506

5 19 авг, 16:53 5 1048446

>>1048406 (OP)
>>1048408
>Excalidraw
Гамбургер -> Export Image... -> PNG
(Или "Экспортировать изображение" на русском)

Или ты не хочешь, чтоб мы читали твои надписи?..

670 Кб, 2901x3258
6 19 авг, 22:12 6 1048506

>>1048445
>Вот этот проект рассматривал?
>https://github.com/Phazorknight/Cogito
Не, я не настолько прошарен в движке. Если возьму что-то такое готовое и потом попробую модифицировать под себя, то запутаюсь нафиг.
Мне легче сделать попроще, но самому с минимум "черных ящиков" в проекте. Ну и самому разобраться бывает интересно.

>Можно ещё заюзать встроенный режим записи:
Спасибо, посмотрю, что там

>Или ты не хочешь, чтоб мы читали твои надписи?..
Не думал, что кто-то в серьез будет схемки читать. Так, визуально глянуть. Схема есть = работа идет.
Прикрепил черновую версию в нормальном разрешении

Ответы48508

7 19 авг, 22:15 7 1048508

>>1048506
Главное не забудь, что цель это сделать игру, а не красивые картинки с графиками рисовать. Для многих, это становится камнем преткновения.

Ответы48558

8 19 авг, 23:30 8 1048516

>>1048406 (OP)
>127489132.png 141Кб, 590x404
Поясни мем. Не понимаю, что там не так?

Ответы48558

5,1 Мб, mp4,
1152x648, 0:08
9 20 авг, 14:11 9 1048558

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

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

>>1048516
Ну тип вместо "правильного" использования .tres для оружия я просто запихнул сцены с ними в ноду игрока, да еще и для каждого отдельный скрипт сделал переделаю потом может быть

Ответы48585

10 20 авг, 15:57 10 1048585

>>1048558
>"правильного" использования .tres для оружия
А кто сказал, что это правильнее отдельных нод?

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

>переделаю потом
Если хочешь хранить PackedScene оружия и делать add_child(weapon_scene.instantiate()) при каждом переключении, то это может вызвать у тебя лишние задержки, особенно в плане системы частиц оружия. Переключение оружия должно быть быстрым, т.е. желательно держать все ноды в дереве сцены (и переключать их видимость + работу: например, process_mode = Node.PROCESS_MODE_DISABLED).

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

Ответы48593

5,5 Мб, mp4,
1152x648, 0:06
11 20 авг, 20:32 11 1048593

>>1048585
>А кто сказал, что это правильнее отдельных нод?
Ну? было ощущение, что лучше делать через tres. И держать в сцене игрока только те оружия, которые он нашел. Инстанцировать их один раз при загрузке в _ready. И сохранять инфу о найденных орудиях в файле сохранения.
Но вот так не делать:
>хранить PackedScene оружия и делать add_child(weapon_scene.instantiate()) при каждом переключении

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

___
Еще по быстрому накидал состояние атаки для врага. Продвинутое обнаружение игрока уже завтра начну пилить

12 21 авг, 09:35 12 1048883

Добавил "честное" обнаружение игрока через raycast3d (в связке с area3d)
Далее займусь продвинутым преследованием и возвратом на исходную позицию

Ответы4888448908

5,6 Мб, mp4,
1152x648, 0:09
13 21 авг, 09:35 13 1048884

>>1048883

14 21 авг, 11:48 14 1048908

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

Ответы4891048911

15 21 авг, 12:01 15 1048910

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

Ответы48911

16 21 авг, 12:15 16 1048911

>>1048908
У ОПа чибик из интернета в роли плейсхолдера, а ты насоветовал уже обвесить его сотней рейкастов и оценивать с точки зрения ощущений игроков, лол.

ОП делает
>immersive sim и survival horror
В переводе на русский это "ААА фотореализм с реалистичными зомби/монстрами/маньяками".

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

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

>Вот тут не совсем понял
Он предлагает тестировать методом проб и ошибок, рассматривая ситуацию с точки зрения игрока - что именно увидит игрок, прежде чем моб его заметит?

Ответы48921

93 Кб, 719x447
17 21 авг, 13:06 17 1048921

>>1048911
>"ААА фотореализм с реалистичными зомби/монстрами/маньяками".
Хорошее предположение, но нет. Да, раньше каждый первый второй проект на каком-нибудь юнити пытался в реалистичную графику, за неимением интересных механик. Но мне такой подход не близок, как и ААА графон.
Ну и конечно я понимаю, что пилить проект уровня deus ex или resident evil с бюджетом в полторы банки пива охота крепкое не очень реалистично. Поэтому проект будет куда компактнее.

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

>Он предлагает тестировать методом проб и ошибок, рассматривая ситуацию с точки зрения игрока
Ну ты верно заметил
>У ОПа чибик из интернета в роли плейсхолдера

18 22 авг, 13:17 18 1049057

22 Кб, 332x417283 Кб, 1199x5799,9 Мб, mp4,
1152x648, 0:21

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

Ответы49065

19 22 авг, 13:52 19 1049065

>>1049057
Построить линию маршрута можно одной нодой:
https://docs.godotengine.org/en/stable/classes/class_path3d.html

Ответы49077

20 22 авг, 14:34 20 1049077

>>1049065
Посмотрю, спасибо

17,2 Мб, mp4,
1152x648, 0:33
21 30 авг, 08:33 21 1050103

Тред не умер
Я просто заболел + были перелеты-переезды + очень много работы.
Но сложа руки я не сидел. Что сделал:
1) Чтобы враг не сразу отваливался, когда теряет игрока из виду, а еще какое-то время его преследовал "по пятам".
2) Запилил рабочий поиск игрока на местности: Враг окончательно потерял игрока -> Идет к последней точке, где видел игрока -> Осматривается -> Произвольное кол-во раз ходит по местности -> Если не нашел, то уходит.

Анимации, чтобы осмотреться, для болванчика у меня нет. Поэтому заменил на дрыганье руками.
Пока все это пилил вылезло n-ое кол-во багов, которые я успешно пофиксил. На вроде того, что точка поиска в navigationregion3d лежит не на прямой, то болванчик сбивается с курса и идет бесконечно в одну сторону.
Переписал дочернее BT для состояния поиска, вынес движение в отдельную функцию и т.п. - все пофиксил.

Надеюсь за выхи успеть доделать состояния: рандомное брожение туда-сюда, охрану (сиреч стоять на месте и осматриваться), возврат на исходную позицию после преследования.
Но тут вроде ничего нового. Должен успеть.

Ответы5013450246

22 30 авг, 13:36 22 1050134

>>1050103
Сделай нормальную тестовую локацию, чтобы она приблизительно была похожа на финальную, но без избыточных деталей и текстур. Пол, стены, потолок. Масштаб соблюдай, добавь трипланарную сеточку, например: https://kenney.nl/assets/prototype-textures Головастика тоже отмасштабируй или замени на подходящего по пропорциям к окружающей среде.

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

Ответы50246

305 Кб, 1054x484
23 30 авг, 21:11 23 1050246

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

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

>>1050103
>Надеюсь за выхи успеть доделать состояния: рандомное брожение туда-сюда, охрану (сиреч стоять на месте и осматриваться), возврат на исходную позицию после преследования.
Сегодня все это доделал.
Завтра еще кое-чего по мелочи намучу и в пн начну тестовую локу собирать и вообще курить мануалы по Terrain3D

Обновить тред
Двач.hk прислал битые данные.
Вы видите копию треда, сохраненную 1 сентября в 20:20.
Можете попробовать обновить страницу, чтобы увидеть актуальную версию.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /gd/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.gq, m2ch.cf, m2ch.fapp.in, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion