Я создал Strange Little Islands — «Очень странные острова», простую настольную игру для детей с волшебными питомцами, кубиком и пятью летающими островами. Она уже работает в браузере: можно играть с компьютером, встретить случайного соперника онлайн или устроить партию вдвоём на одном устройстве.

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

Кубик, питомцы и немного соперничества

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

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

В первой версии доступны 10 персонажей и пять карт: Сказочный лес, Карамельный остров, Остров Ветров, Механический остров и Остров Созвездий. Пять питомцев открыты сразу, остальных можно найти в сундуках. Компьютер выбирает себе случайного персонажа из всего каталога — даже того, которого у игрока пока нет.

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

Как я искал характер игры

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

Ориентировался на выразительность Brawl Stars, Disney Solitaire, Sonic Dream Team и Hello Kitty Island Adventure: крупные формы, смелые цвета, понятные эмоции. Сами персонажи, карты и оформление создавались для Strange Little Islands. В итоге остановился на ярком 2D-стиле с объёмным светом и ощущением глазури. Питомцы заметно ярче окружения, поэтому хорошо выделяются на поле.

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

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

Музыка, которая задает динамику в игре

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

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

После генерации работа продолжалась: выравнивание громкости, подготовка повторов, поиск места, где мелодию можно зациклить без заметного обрыва. Иногда самое интересное оказывалось в начале или в конце трека, и это хотелось сохранить. У главной темы остались выраженные начало и окончание с плавными переходами.

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

Единственное, что мне не нравится в данной версии — это то, что темп музыки немного опережает темп игры, но дочке нравится — и это главное 🙂

Интерфейс тоже должен ощущаться игрой

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

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

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

Для аккаунта придумал «Волшебный ключ» — карточку с автоматически созданными ником, фразой для входа и питомцем. Её можно сохранить с помощью взрослого. Для регистрации не нужны имя, почта и придуманный пароль. Вместо свободного чата в игре — набор дружелюбных реакций. Мне важно, чтобы ребёнку не приходилось сообщать своё имя, почту или телефон. Эти сведения игра не запрашивает. На сервере сохраняются игровой аккаунт и прогресс, чтобы можно было вернуться к своей коллекции.

Нейросети и код

В работе я использовал Suno v.5.5, OpenAI Astra 6, GPT Image 2.5 и Claude Opus 5. Suno помогал с музыкой и звуковыми событиями, GPT Image — с графикой, Astra и Claude — с проработкой проекта, кодом и исправлениями.

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

О стеке коротко: React и Vite для интерфейса, Node.js и WebSocket для сервера и онлайн-партий, SQLite для аккаунтов и прогресса, Web Audio API для звука. Игра размещена на сервере Timeweb Cloud, перед приложением работает Nginx. Есть HTTPS, резервное копирование и иконка для добавления на домашний экран.

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

Что получилось

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

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

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

Попробовать игру — islands.igrosearch.ru

Поддержи автора

Надеюсь, эта статья была для вас полезной и интересной. Если вы хотите, чтобы я создавал больше контента и делал это чаще, вы можете поддержать меня донатом. Благодарю вас за ваш вклад в творческий процесс!

Т-Банк (Тинькофф): 2200700867913161
Ozon Bank: 2204240107102131
Boosty: https://boosty.to/woronokin/donate