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

Gamedev

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 23 17 9
Проект DSotM (кодовое название) Аноним 19/08/25 Втр 11:32:51 1048406 1
127489132.png 141Кб, 590x404
590x404
237412893412.png 336Кб, 1143x598
1143x598
71245162481294.png 136Кб, 920x827
920x827
127849114321.mp4 16438Кб, 1280x720, 00:01:01
1280x720
О чем тред: буду постить прогресс разработки моей игры
Жанр: смесь immersive sim и survival horror
Двигло: православный GODOT 4.4
Сеттинг/сюжет: в разработке (но планируется что-то не совсем очевидное)

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

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

Что дальше?
- Сейчас занимаюсь проектированием и созданием базового AI для врагов
- Далее начну работать с террейном и собирать первые прототипы уровней параллельно выпиливая допиливая необходимые механики
Аноним 19/08/25 Втр 11:41:33 1048408 2
image.png 55Кб, 526x721
526x721
image.png 535Кб, 1889x593
1889x593
Для AI врагов выбрал behavior tree (или чет такое). По реализации: базовая сцена с врагов + подключаемый ресурс.
Сделал наброски тестового алгоритма. Только вот что начал понемногу реализовывать.

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

lymboAI использовать не хочу
Аноним 19/08/25 Втр 11:44:49 1048410 3
image.png 25Кб, 187x122
187x122
Кстати, да, на fps можете пока-что не смотреть, т.к. временно работаю за некроноутом
Аноним 19/08/25 Втр 16:47:07 1048445 4
>>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
Аноним 19/08/25 Втр 16:53:10 1048446 5
>>1048406 (OP)
>>1048408
>Excalidraw
Гамбургер -> Export Image... -> PNG
(Или "Экспортировать изображение" на русском)

Или ты не хочешь, чтоб мы читали твои надписи?..
Аноним 19/08/25 Втр 22:12:20 1048506 6
3421312312.png 670Кб, 2901x3258
2901x3258
>>1048445
>Вот этот проект рассматривал?
>https://github.com/Phazorknight/Cogito
Не, я не настолько прошарен в движке. Если возьму что-то такое готовое и потом попробую модифицировать под себя, то запутаюсь нафиг.
Мне легче сделать попроще, но самому с минимум "черных ящиков" в проекте. Ну и самому разобраться бывает интересно.

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

>Или ты не хочешь, чтоб мы читали твои надписи?..
Не думал, что кто-то в серьез будет схемки читать. Так, визуально глянуть. Схема есть = работа идет.
Прикрепил черновую версию в нормальном разрешении
Аноним 19/08/25 Втр 22:15:00 1048508 7
>>1048506
Главное не забудь, что цель это сделать игру, а не красивые картинки с графиками рисовать. Для многих, это становится камнем преткновения.
Аноним 19/08/25 Втр 23:30:43 1048516 8
>>1048406 (OP)
>127489132.png 141Кб, 590x404
Поясни мем. Не понимаю, что там не так?
Аноним 20/08/25 Срд 14:11:22 1048558 9
325324532423.mp4 5245Кб, 1152x648, 00:00:08
1152x648
>>1048508
Это да, понимаю. Периодически бывает много работы, так что скорость разработки варьируется.

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


>>1048516
Ну тип вместо "правильного" использования .tres для оружия я просто запихнул сцены с ними в ноду игрока, да еще и для каждого отдельный скрипт сделал переделаю потом может быть
Аноним 20/08/25 Срд 15:57:39 1048585 10
>>1048558
>"правильного" использования .tres для оружия
А кто сказал, что это правильнее отдельных нод?

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

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

Другое дело, если у тебя 100500 вариантов оружия у неигровых персонажей, которые будут использовать единственный вариант в течение всей своей жизни: логично, что им нужна только одна нода оружия, а остальные варианты остаются нераспакованы.
Аноним 20/08/25 Срд 20:32:05 1048593 11
673593242344444.mp4 5601Кб, 1152x648, 00:00:06
1152x648
>>1048585
>А кто сказал, что это правильнее отдельных нод?
Ну? было ощущение, что лучше делать через tres. И держать в сцене игрока только те оружия, которые он нашел. Инстанцировать их один раз при загрузке в _ready. И сохранять инфу о найденных орудиях в файле сохранения.
Но вот так не делать:
>хранить PackedScene оружия и делать add_child(weapon_scene.instantiate()) при каждом переключении

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

___
Еще по быстрому накидал состояние атаки для врага. Продвинутое обнаружение игрока уже завтра начну пилить
Аноним 21/08/25 Чтв 09:35:27 1048883 12
Добавил "честное" обнаружение игрока через raycast3d (в связке с area3d)
Далее займусь продвинутым преследованием и возвратом на исходную позицию
Аноним 21/08/25 Чтв 09:35:49 1048884 13
1870914701923432.mp4 5740Кб, 1152x648, 00:00:09
1152x648
Аноним 21/08/25 Чтв 11:48:42 1048908 14
>>1048883
Советую сделать не один рейкаст, и не только из центра. В идеале поставь моба чуть за стенкой, и как со стороны игрока лучше и приятнее будет смотреться, так и оставить.
Аноним 21/08/25 Чтв 12:01:44 1048910 15
>>1048908
Советую сделать не один рейкаст, и не только из центра
Да, в будущем скорее всего так и сделаю, чтобы враги не были слепыми болванчиками. Пока так оставлю для прототипа.
>В идеале поставь моба чуть за стенкой, и как со стороны игрока лучше и приятнее будет смотреться, так и оставить.
Вот тут не совсем понял, о чем ты
Аноним 21/08/25 Чтв 12:15:40 1048911 16
>>1048908
У ОПа чибик из интернета в роли плейсхолдера, а ты насоветовал уже обвесить его сотней рейкастов и оценивать с точки зрения ощущений игроков, лол.

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

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

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

>Вот тут не совсем понял
Он предлагает тестировать методом проб и ошибок, рассматривая ситуацию с точки зрения игрока - что именно увидит игрок, прежде чем моб его заметит?
Аноним 21/08/25 Чтв 13:06:50 1048921 17
image.png 93Кб, 719x447
719x447
>>1048911
>"ААА фотореализм с реалистичными зомби/монстрами/маньяками".
Хорошее предположение, но нет. Да, раньше каждый первый второй проект на каком-нибудь юнити пытался в реалистичную графику, за неимением интересных механик. Но мне такой подход не близок, как и ААА графон.
Ну и конечно я понимаю, что пилить проект уровня deus ex или resident evil с бюджетом в полторы банки пива охота крепкое не очень реалистично. Поэтому проект будет куда компактнее.

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

>Он предлагает тестировать методом проб и ошибок, рассматривая ситуацию с точки зрения игрока
Ну ты верно заметил
>У ОПа чибик из интернета в роли плейсхолдера
Аноним 22/08/25 Птн 13:17:59 1049057 18
image.png 22Кб, 332x417
332x417
2025-08-2214-45.png 283Кб, 1199x579
1199x579
3425234534.mp4 10102Кб, 1152x648, 00:00:21
1152x648
Поборол n-ое кол-во багов и запилил патрулирование. Через простое и удобное добавление маркеров в експортный массив. Можно чтобы ходил по кругу, либо туда-сюда.
Дальше буду делать корректный возврат на маршрут патрулирования - сейчас враг возвращается не к ближайшей точке, а к последней, которая помечена "следующей".
А потом займусь более продвинутым поиском игрока, чтобы болванчик не сразу отваливался, если потерял того из виду, а шел к последней точке, где игрок был замечен и начинал поиск на какое-то время
Аноним 22/08/25 Птн 13:52:18 1049065 19
Аноним 22/08/25 Птн 14:34:29 1049077 20
Аноним 30/08/25 Суб 08:33:27 1050103 21
74582397423.mp4 17567Кб, 1152x648, 00:00:33
1152x648
Тред не умер
Я просто заболел + были перелеты-переезды + очень много работы.
Но сложа руки я не сидел. Что сделал:
1) Чтобы враг не сразу отваливался, когда теряет игрока из виду, а еще какое-то время его преследовал "по пятам".
2) Запилил рабочий поиск игрока на местности: Враг окончательно потерял игрока -> Идет к последней точке, где видел игрока -> Осматривается -> Произвольное кол-во раз ходит по местности -> Если не нашел, то уходит.

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

Надеюсь за выхи успеть доделать состояния: рандомное брожение туда-сюда, охрану (сиреч стоять на месте и осматриваться), возврат на исходную позицию после преследования.
Но тут вроде ничего нового. Должен успеть.
Аноним 30/08/25 Суб 13:36:04 1050134 22
>>1050103
Сделай нормальную тестовую локацию, чтобы она приблизительно была похожа на финальную, но без избыточных деталей и текстур. Пол, стены, потолок. Масштаб соблюдай, добавь трипланарную сеточку, например: https://kenney.nl/assets/prototype-textures Головастика тоже отмасштабируй или замени на подходящего по пропорциям к окружающей среде.

Просто сейчас ты делаешь сферическую корову в вакууме. Потом придётся подгонять под реальные локации, ограничения геймплея игрока и т.п. Гугли реальные прототипы ААА игр - там вот начинают с грейбоксов локаций, а потом уже геймплей, мобы.
Аноним 30/08/25 Суб 21:11:22 1050246 23
image.png 305Кб, 1054x484
1054x484
>>1050134
>Просто сейчас ты делаешь сферическую корову в вакууме
Ага, я знаю. Просто не хотел даже более-менее нормальные модели и условия делать, пока не будет какая-никакая кодовая база (хоть пусть и придется по параметрам подгонять под реальность). А то понаставил бы красивых серых кубов, а кода ноль.

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

>>1050103
>Надеюсь за выхи успеть доделать состояния: рандомное брожение туда-сюда, охрану (сиреч стоять на месте и осматриваться), возврат на исходную позицию после преследования.
Сегодня все это доделал.
Завтра еще кое-чего по мелочи намучу и в пн начну тестовую локу собирать и вообще курить мануалы по Terrain3D
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов