Qwen3.5-35B-A3B: гайд по созданию FlappyBird на TypeScript | AiManual
AiManual Logo Ai / Manual.
26 Фев 2026 Гайд

Qwen3.5-35B-A3B: практический туториал по созданию FlappyBird на TypeScript и Vite с генерацией звуков

Пошаговый туториал по созданию игры FlappyBird на TypeScript и Vite с использованием локальной модели Qwen3.5-35B-A3B для генерации кода и звуков. Практическое

Когда "я просто хочу поиграть" превращается в "я просто хочу написать игру"

Вы скачиваете очередную локальную модель для кодинга, запускаете пару тестовых промптов и... разочаровываетесь. Генерация простых функций — да, но целый проект? Кажется, что это все еще удел облачных гигантов вроде GPT-4o. Я сам так думал, пока не засучил рукава и не сел писать FlappyBird на TypeScript с помощью Qwen3.5-35B-A3B, заодно заставив ее генерировать звуки через Web Audio API. Спойлер: это работает. Дико, с костылями, но работает. И сейчас я покажу, как именно.

На 26.02.2026 модель Qwen3.5-35B-A3B остается одним из самых сбалансированных вариантов для локального кодинга: достаточно умная для сложных задач, но не требующая аренды датацентра для запуска. Если у вас есть GPU с 24GB памяти или готовность использовать квантование — вы в игре.

1Подготовка: ставим железо, а не просто Node.js

Первое заблуждение: достаточно установить Node.js и Vite. Не достаточно. Вам нужна среда, где модель будет чувствовать себя комфортно. Я использовал VSCode с расширением Roo — это обертка для локальных LLM, которая умеет работать с Ollama и другими бэкендами. Без него вы будете постоянно копировать код из чата в редактор, и это быстро надоест.

# Не делайте так (это скучно):
npm create vite@latest flappy-bird-ai -- --template vanilla-ts

# Делайте так (сразу с инфраструктурой для AI):
npm create vite@latest flappy-bird-ai -- --template vanilla-ts
cd flappy-bird-ai
npm install
# Установите Roo из магазина расширений VSCode
# Запустите Ollama и скачайте модель
ollama pull qwen3.5:35b-a3b-q4_K_M  # Q4 квантование, оптимально для 16-24GB RAM
💡
Если у вас нет мощной видеокарты, арендуйте GPU на RunPod — это выйдет дешевле, чем покупать новое железо для одного эксперимента. На 26.02.2026 их тарифы с RTX 4090 начинаются от $0.79/час, что вполне разумно для такого проекта.

2Первый промпт: как не сломать модель на старте

Типичная ошибка: дать модели промпт "Напиши Flappy Bird на TypeScript". Вы получите мегабайты кода, который не скомпилируется. Локальные модели нуждаются в четком контексте и ограничениях. Мой подход — итеративный, как в agile, но без ежедневных митингов.

// Промпт для Roo (Ollama с Qwen3.5-35B-A3B):
/*
Создай основную структуру игры Flappy Bird на TypeScript для Vite.
Требования:
1. Один файл game.ts с классом Game.
2. Используй Canvas API для рендеринга.
3. Птица — это квадрат, трубы — прямоугольники.
4. Управление пробелом для прыжка.
5. Не используй сторонние библиотеки.
6. Экспортируй класс Game как default.
*/

Модель выдаст работающий каркас. Но он будет уродливым. Не беда — мы его доработаем. Главное, что у вас появится Game класс с методами update() и draw(). Это основа.

3Генерация звуков: когда Web Audio API страшнее, чем кажется

Вот здесь начинается магия. Вместо того чтобы искать звуковые файлы, мы сгенерируем их на лету. Qwen3.5-35B-A3B неплохо понимает Web Audio API, но склонна усложнять. Задача: создать звук прыжка (короткий тон) и звук столкновения (шум).

// Промпт для генерации AudioManager:
/*
Создай класс AudioManager для игры Flappy Bird.
Он должен использовать Web Audio API для генерации звуков без внешних файлов.
Нужно два звука:
1. jumpSound: короткий синусоидальный тон частотой 800 Гц, длительность 0.1 сек.
2. hitSound: белый шум с резким затуханием, длительность 0.3 сек.
Класс должен иметь методы playJump() и playHit().
Учти, что AudioContext требуется пользовательское взаимодействие для запуска.
*/

Модель справится, но может забыть про resume() контекста после пользовательского действия. Это частая ошибка. Проверьте код: первый вызов playJump() должен быть обернут в обработчик клика по canvas. Если интересно глубже погрузиться в генерацию аудио, посмотрите мой гайд про Qwen3-TTS.cpp, там похожие принципы.

Параллакс и полировка: где модель тупит

Запросите фоновые слои с разной скоростью прокрутки для эффекта параллакса. Qwen3.5 справится, но может перемудрить с вычислениями. Проще всего задать явные координаты. И вот ключевой момент: не пытайтесь заставить модель написать идеальный код с первого раза. Вы — архитектор, она — исполнитель. Давайте конкретные правки.

Проблема в коде от AIВаше исправление
Сложная логика коллизийЗамените на AABB (axis-aligned bounding box)
Медленный requestAnimationFrameДобавьте deltaTime для независимости от FPS
Звуки лагают при первом воспроизведенииПредварительно создайте буферы при инициализации

Сборка: Vite делает свое дело

Здесь все просто. Модель не нужна. Запустите npm run build и затем npm run preview. Если вы следовали туториалу, игра соберется в статичные файлы. Выложите их на любой хостинг — и у вас есть игра, написанная в соавторстве с AI.

Проверьте актуальность зависимостей на 26.02.2026. Vite к этому времени, вероятно, обновился до версии 7.x, но API для TypeScript остался стабильным. Если возникнут ошибки при сборке, посмотрите на версию TypeScript в package.json — возможно, модель использовала устаревшие типы.

Ошибки, которые съедят ваш вечер (и как их избежать)

  • Модель генерирует код с any типами. Не ленитесь: явно укажите в промпте "Используй строгие типы TypeScript, без any". Qwen3.5 понимает это.
  • Звуки не работают в Safari. Web Audio API там капризный. Решение: инициализировать AudioContext только после жеста пользователя. Это тот случай, когда знание специфики браузера важнее, чем умение модели.
  • Игра тормозит на слабых устройствах. Модель не оптимизирует производительность. Вручную добавьте ограничитель FPS и отключайте рендеринг при потере фокуса.
  • Ollama падает при долгой генерации. Разбейте задачу на мелкие промпты. Не просите написать всю игру сразу. Это как заставлять человека сразу написать роман — получится поток сознания, а не код.

Вопросы, которые вы зададите (и ответы на них)

Q: Почему именно Qwen3.5-35B-A3B, а не более новая модель?

На 26.02.2026 есть и более новые модели, но 35B-A3B — это sweet spot: качество кодинга близко к GPT-4, а требования к памяти умеренные. Для задач уровня FlappyBird ее более чем достаточно. Если хотите экспериментировать, попробуйте более легкие модели из гайда про диктофон.

Q: Можно ли генерировать не примитивные звуки, а что-то сложнее?

Web Audio API позволяет многое, но промпты станут огромными. Для сложного аудио лучше использовать специализированные TTS или звуковые синтезаторы. Например, Pocket TTS для генерации речей или эффектов. Но для прыжка птички хватит и синусоиды.

Q: Сколько времени займет весь процесс?

С опытом — часа три. Первый раз — часов шесть, потому что будете бороться с настройкой Ollama, странными ошибками TypeScript и попытками заставить звук работать в Chrome. Но это нормально. Каждый следующий проект будет быстрее.

Что дальше? Идеи для экспериментов

FlappyBird — это трамплин. Попробуйте использовать ту же связку для чего-то более амбициозного. Например, генерацию shader-эффектов для Canvas. Или попросите модель написать простой физический движок. Локальные модели на этом уровне уже способны на удивительные вещи, если вы умеете задавать правильные вопросы. И да, если столкнетесь с необходимостью клонировать голос для озвучки игры, у меня есть обзор MimikaStudio для Mac. Но это уже совсем другая история.

Главный вывод: Qwen3.5-35B-A3B в 2026 году — это не игрушка, а рабочий инструмент. Не идеальный, но способный превратить идею в работающий код за несколько часов. И это чертовски впечатляет.

Подписаться на канал