Единственная валюта — грамотность: как китайский пет-симулятор заставляет учить английский, чтобы одеть виртуального питомца
Репозиторий yczz/oc-english за короткое время набрал 825 звёзд: десктопная игра на Tauri и Rust, где нарядить своего персонажа можно только заработав очки — а очки дают исключительно за уроки английского.
Есть жанр игр, который на первый взгляд кажется наивным до неловкости: заведи себе миленького персонажа, одень его, обставь ему комнату. Обычно за этим стоит донат или бесконечный гринд кликов. Проект oc-english берёт эту знакомую механику и делает с ней ровно одну вещь: убирает из неё любой способ получить валюту, кроме честного выполнения школьных заданий по английскому языку. Никакого доната, никакого фарма — только тесты по учебнику.
Сама механика описана в README предельно конкретно. Игрок создаёт OC — своего персонажа, бесплатно и без ограничения по количеству, — и получает доступ к кастомизации: четыре тона кожи, шесть форм глаз, восемь причёсок, пять вариантов рта, включая опцию «без рта», и переключатель румянца. Дальше идёт система из девяти слотов одежды — шляпа, очки, верх, низ, обувь, аксессуар в руке, аксессуар за спиной, серьги — и пятьдесят предметов гардероба на них. Есть даже пресет «одним кликом»: набор из конкретной причёски, цвета глаз, костюма и оружия, который надевается сразу, если детали уже куплены, а если нет — подсказывает, что докупить в магазине.
Персонаж нарисован не растровыми спрайтами, а слоями SVG — тело, девять слоёв одежды, черты лица, причёска, — что позволяет масштабировать картинку без потери качества на любом экране. Комната, где живёт OC, сделана иначе: это изометрическая 2.5D-сцена на PixiJS с восемнадцатью предметами мебели, среди которых кровати, стол, книжный шкаф, диван, телевизор, пианино и кошачья лежанка со спящей кошкой внутри. В режиме расстановки мебель можно таскать мышью, она примагничивается к сетке, а если места не хватает — откатывается назад; лишнее убирается в инвентарь правым кликом.
Но всё это — обёртка вокруг учебной части, и именно она делает проект интересным как сигнал, а не просто ещё одной игрушкой про виртуальных питомцев. В основе лежат тринадцать учебников — китайская программа 人教版 ("Жэньцзяо") для начальной школы с третьего по шестой класс и для средней школы с седьмого по девятый, причём деление на юниты в игре синхронизировано с делением в реальных учебниках. Перед каждым модулем — карточка с грамматикой. Дальше идёт «отработка»: на каждое слово по две карточки — выбор значения из четырёх вариантов и упражнение на слух с озвучкой. После того как все карточки модуля пройдены, открывается итоговый тест на пятнадцать вопросов — восемь на значение слов, четыре на аудирование, три на грамматику, — и пройти его можно только правильно ответив минимум на двенадцать. Ответы озвучиваются системным TTS, а к ошибкам прилагается разбор.
Экономика игры выстроена так, чтобы учёба была единственным источником дохода. Новичок получает двести очков стартового бонуса, дальше по два очка за каждую правильно решённую карточку в тренировке, сто очков за первое прохождение итогового теста и по десять очков за каждый дополнительно правильный ответ, если игрок пересдаёт тест и улучшает свой лучший результат. Других способов заработать баллы в описании репозитория нет — ни рекламы, ни встроенных покупок, ни случайных наград. Хочешь новую шляпу или диван — учи грамматику из учебника для седьмого класса.
Технически проект собран нарочито компактно. Это не веб-приложение и не Electron-монстр, а десктопное приложение на Tauri 2.0 с бэкендом на Rust: сохранения, логика магазина, база вопросов, генерация заданий и проверка результатов теста — всё считается на стороне Rust, а данные учебников вкомпилированы прямо в бинарник. Итоговый размер сборки, судя по описанию, около десяти мегабайт — цифра, которая резко контрастирует с привычными весом образовательных приложений на Electron. Фронтенд при этом сделан на голом JavaScript без единого фреймворка и сборщика — ES-модули, обычный HTML, PixiJS для сцены комнаты. Сохранения хранятся в обычном JSON в системной папке приложения support directory.
Любопытно, что авторы даже автоматизировали документирование: скриншоты интерфейса в README генерируются командой npm run screenshots через headless Chrome, который гоняет реальный фронтенд с мок-бэкендом на уровне контрактов API — то есть скриншоты не рисуются вручную, а снимаются с работающей сборки.
Что в этом всём заслуживает внимания помимо самой идеи? То, что это редкий пример образовательного софта, где геймдизайн не паразитирует на учёбе ради вовлечения, а буквально ставит учёбу в основание экономики игры. Обычно «геймификация обучения» означает бейджи и прогресс-бары поверх контента, который можно пройти мимо. Здесь структура жёстче: без пройденного модуля учебника нет ни одной новой вещи в шкафу, и это не декларация в маркетинговом тексте, а прямое следствие того, как устроен код — очки просто негде взять иначе. Для родителей и учителей это звучит почти как манифест против доната как модели мотивации: если ребёнку хочется одеть своего персонажа, единственный путь к этому лежит через тест по английскому, а не через карту в App Store.
Проект молодой — создан в начале сентября, — и 825 звёзд за такое время говорят скорее о резонансе идеи, чем о зрелости продукта: платформа пока ограничена macOS, язык интерфейса и содержания учебников — китайский, аудитория довольно нишевая. Но сама конструкция — жёстко завязанная на реальную школьную программу игровая экономика, реализованная на минималистичном стеке без единой строчки лишнего фреймворка, — интересный прецедент для того, как может выглядеть образовательный софт, если убрать из него всё, что отвлекает от главного вопроса: выучил слово или нет.
Войти, чтобы оценить материал
Комментарии
Войти, чтобы оставить комментарий