Мой блог
Как я создавал космическую стратегию с помощью ИИ: опыт вайбкодинга
В последнее время я заметил любопытный тренд: многие знакомые разработчики увлеклись созданием небольших проектов для души с помощью нейросетей. Вдохновившись чужими примерами и ностальгией по старым классическим играм вроде Master of Orion и «Мафии», я решил тоже воплотить давнюю мечту — запрограммировать собственную космическую стратегию, используя ИИ в роли главного исполнителя.
Мой подход к разработке свелся к роли product owner: я ставлю задачи языковой модели, не углубляясь в написание каждой строки кода, но требуя соблюдения принципов чистой архитектуры и ООП. В качестве сеттинга я выбрал космические путешествия, опираясь на научно-фантастическую литературу Артура Кларка и Станислава Лема, чтобы привнести в игровой процесс элементы реалистичной физики.






Вечер первый: генерация звездной карты и базовые концепции
На первом этапе разработки передо мной встала задача создать надежную основу для космической стратегии. Поскольку я не профессиональный гейм-дизайнер, стандартный интерфейс космической карты показался мне наиболее логичным выбором. Чтобы добавить проекту реализма, я решил использовать реальные астрономические данные из открытых каталогов вместо вымышленных систем.
Совместно с ИИ мы нашли подходящие базы данных: каталог звезд на расстоянии до 100 парсек от Солнца и архив экзопланет НАСА. Для старта было решено ограничить игровую зону радиусом в 30 световых лет, оставив остальные звездные системы для будущих обновлений. Проект задумывался как браузерная игра на TypeScript, React, Vite и Three.js с возможностью вращения камеры в 2.5D-пространстве.
Размышляя над геймплеем, я выделил три ключевых элемента, которые делают игры увлекательными: реиграбельность, атмосферность и наличие понятной глобальной цели. В блокноте фиксировались базовые механики: снаряжение экспедиций к дальним звездам, внедрение древа научных исследований для двигателей и средств связи, а также расчеты времени в пути.

Анализ скоростей показал, что при традиционных технологиях перелет даже к ближайшим звездам займет сотни или тысячи лет. Это привело меня к необходимости учитывать ограничения специальной теории относительности. Чтобы корабль не летел слишком долго и экипаж не испытывал критических перегрузок, разгон и торможение должны происходить с комфортным ускорением в 1g, обеспечивающим привычную гравитацию.
Расчеты по формулам Циолковского и релятивистским уравнениям показали, что традиционные ядерные или термоядерные двигатели малопригодны для межзвездных перелетов из-за огромной массы требуемого топлива. Полученные цифры наглядно продемонстрировали необходимость поэтапного прохождения технологических эпох — от внутрисистемных полетов до передовых межзвездных двигателей.

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

Вечер второй: моделирование теории относительности и игровой логики
На второй день я перешел к реализации механики космических перелетов и математической модели движения. Учитывая неэффективность термоядерного синтеза для дальних миссий, в основу игрового процесса легли гипотетические фотонные двигатели, работающие на антиматерии. Поскольку аннигиляция электрона и позитрона рождает фотоны, движущиеся со скоростью света, идеальный реактивный двигатель в вакууме может достичь максимальной скорости истечения газов.
Повторные расчеты для полета к Сириусу с ускорением 1g показали отличные результаты. Оптимальной крейсерской скоростью оказалась отметка в 0.80c, так как дальнейшее наращивание темпа требует экспоненциально большего объема энергоносителей. В игре шкала времени была привязана к пошаговой системе, где один ход равен одному земному году, а пространство измеряется в световых годах.

Для большей интерактивности я запроектировал конструктор кораблей, позволяющий собирать суда из отдельных модулей: корпуса, командного отсека, двигателей и топливных баков. Разделение систем жизнеобеспечения и полезной нагрузки открыло возможность отправлять к другим звездам быстрые беспилотные зонды, которые ускоряются до 10g и собирают информацию о планетах до прибытия колонизаторов.


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