Делаю «Тихую охоту» с ChatGPT и Codex

Игра про сбор грибов. Показываю, с чего начал и что уже работает.

Березовая роща
Березовая роща

Всем привет. С детства была мысль: а что, если делать свои игры? Но опыта разработки у меня вообще не было. Когда появился ChatGPT, захотелось проверить, можно ли с его помощью сделать нормальную игру. Сейчас для разработки использую Codex.

С самого начала хотел сделать реально красивый лес, в котором можно заблудиться. Главным референсом был Kingdom Come. Хотелось, чтобы мне было приятно просто ходить по лесу, даже если пока ничего не нашёл.

А идея с грибами появилась случайно. Я с другом обсуждал походы за грибами, и у нас появилась мысль: почему бы не сделать игру про это? Мне казалось, что таких игр мало, а сама тема интересная. Так и начал делать «Тихую охоту».

Сосновая тропа на общей карте. 4 октября.
Сосновая тропа на общей карте. 4 октября.

С чего начал

Первый прототип сделал в Unity 12 сентября. Уже можно было ходить и собирать грибы, но лес выглядел не так, как хотелось. На следующий день перешёл в Unreal и дальше занимался игрой уже там.

Лес 19 сентября, уже в Unreal.
Лес 19 сентября, уже в Unreal.

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

Для леса использую готовые модели и материалы, в том числе из Poly Haven и Fab. Часть моделей сделал в Blender. Потом всё это расставляю, настраиваю свет и проверяю в игре.

Лес пришлось много раз переделывать

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

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

Так дорабатывал землю и траву у тропы. 19 сентября.
Так дорабатывал землю и траву у тропы. 19 сентября.

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

Берёзовый участок до добавления травы и кустов. 1 октября.
Берёзовый участок до добавления травы и кустов. 1 октября.
Он же после доработки, с того же места. 1 октября.
Он же после доработки, с того же места. 1 октября.

Для проверки были отдельные маленькие карты. На них смотрел, как выглядят растения, свет и грибы.

Как появляются грибы

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

Они появляются в подходящих местах. Подберёзовики возле берёз, маслята возле сосен, опята у древесины. Так что перед поиском смотрю, в какой участок леса пришёл.

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

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

Осмотр и корзина

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

Осмотр гриба. Можно повернуть, приблизить, взять или оставить.
Осмотр гриба. Можно повернуть, приблизить, взять или оставить.

Чтобы разобраться, есть справочник с описаниями и признаками грибов. Открываю его дома на ноутбуке или в телефоне прямо в лесу.

Справочник на домашнем ноутбуке.
Справочник на домашнем ноутбуке.

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

Корзина с четырьмя грибами. Пока виден только вес.
Корзина с четырьмя грибами. Пока виден только вес.

День и ночь

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

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

Задания

Дома есть ноутбук с письмами. Читаю письмо, беру задание и иду в лес. Пока можно принять одно задание за раз.

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

Задание «Название обманчиво» из пробной истории.
Задание «Название обманчиво» из пробной истории.

Когда возвращаюсь, выбираю в корзине, какие грибы отдать. Остальные остаются у меня. Перед сдачей могу ещё раз проверить свой выбор.

Проверка выбранных грибов перед сдачей.
Проверка выбранных грибов перед сдачей.

После сдачи вижу, что принёс и подошло ли это под заказ. Ответ в письме тоже может быть разным. Здесь, например, вместо подберёзовиков сдал белые.

Принёс белые вместо подберёзовиков. Задание не выполнено, но история продолжается.
Принёс белые вместо подберёзовиков. Задание не выполнено, но история продолжается.

Если сдал не те грибы или выполнил только часть заказа, могу продолжить историю. Для проверки уже есть пробная история «Сорок лет в лесу»: четыре задания и финальное письмо. Снимки выше как раз из неё. Истории для демо ещё нужно дописать и проверить.

Телефон и карта

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

Задание можно перечитать в телефоне.
Задание можно перечитать в телефоне.

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

Карта леса в телефоне.
Карта леса в телефоне.

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

Статистика тестового прохождения.
Статистика тестового прохождения.

Недавно сделал отдельный редактор заданий — Mission Wizard. Через него пишу письма, задаю условия и связываю задания между собой. Теперь для этого не нужно каждый раз менять код.

Редактор заданий. Здесь собрана пробная история.
Редактор заданий. Здесь собрана пробная история.

Что дальше

Занимаюсь игрой почти месяц. Рабочая сборка уже есть, но до релиза ещё много чего нужно сделать.

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

Цель — сначала выпустить демо в Steam, потом саму игру. Следующая статья, скорее всего, будет уже про демо.

Пишите, что сами хотели бы видеть в игре про сбор грибов.

1144
22
22