Обучающая игра за неделю или попытка таймкиллера по английскому

    Я провел в играх сотни часов по статистике Стима, и тысячи, если считать на всех платформах. Но что меня поразило, так это соотношение времени в некоторых случаях. На прохождение великолепного Bioshock Infinite у меня ушло 8.5 часов, но на Sacura Clicker — на 12 минут больше. На Clicker Heroes — больше сорока часов, почти столько же, как на Torchlight 2. Фокус в том, что я помнил и хорошо представлял затраты времени на большие игры. Но маленькие игрушки совершенно не отложились в памяти, они украли мое время незаметно, растаскивая по пять-десять минут в течение недель и месяцев.

    Когда я осознал это, то подумал, что было бы неплохо прикрутить к этой балерине турбину. То есть сделать полезный таймкиллер — простенькую игру, которая будет не воровать, а инвестировать мое время по пять-десять минут. К примеру, в словарный запас по английскому.



    Когда-то я купил кучу карточек с английскими словами и читал их в маршрутке по пути в офис. Потом уволился из офиса и привычка пропала, я забыл про карточки. Полез перетряхивать рюкзак, и когда из верхнего бокового кармана веером выпали разные слова, понял — это же match 2! Игра, в которой надо составлять пары (в отличие от match 3, где берут по три и больше).

    Таймкиллеры с принципом «составь пару» известны давно — к примеру, компьютерная игра маджонг-пасьянс (не путать с классической азартной китайской игрой, в которую играл еще Сэммо Хунг в гонконгских боевиках).


    Маджонг из KDE Games

    У маджонга-пасьянса есть упрощенная разновидность Mahjong Connect, где фишки выкладываются в простую раскладку, без фигурных пирамид. В википедии можно прочитать, что его называют сисэн-сё (англ. Shisen-Sho), но если вы хотите прогуглить образцы — первое название будет более подходящим.

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


    Сисэн-сё из KDE Games или Mahjong Connect в народе

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

    Дизайн фишек и геймплея


    Пять новых слов в каждом сеансе и еще несколько повторяющихся слов из предыдущих — вот идея, от которой я отталкивался. Это означало, что в игре должно участвовать как минимум около 20 фишек.

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

    Смоделировав игровую раскладку с такими костяшками в графическом редакторе (Fireworks 2003 года, если любопытно), я увидел, что игра выглядит довольно скучно. Посмотрев снова на скриншоты с маджонгами, попробовал добавить разные графические элементы для оживления картинки. И тут меня осенило — можно же просто добавить на каждую пару по самоцвету. Тогда это будет работать не только как оживляющий элемент, придающий хотя бы внешнее сходство с казуальными игрушками, но и как подсказка.


    Черновой вариант игрового поля с разными вариантами фишек

    Финальный вариант получился таким — три самоцвета на 10-11 пар слов. Это давало подсказку с шансом случайного совпадения около 25%. Если забыл слово — можно просмотреть фишки с теми же словами.

    Дополнительный элемент оформления, ускоряющий ориентацию — серый флажок, отмечающий все слова на одном (русском) языке. Изначальная идея была в том, чтобы помечать один элемент из пары, а не национальный признак, поэтому я не стал делать триколор или еще что-то в этом духе.



    Выглядит как почти читерство, но я не хотел делать экзамен или полноценный тест знаний. Экзамен — это стресс, а мне нужен был максимально легкий и приятный геймплей, чтобы во время игры формировалось чувство победы и уверенности в своих силах. Мне кажется, это одно из важнейших качеств культовых таймкиллеров вроде Bejeweled или Zuma. Игрок идет по оптимальной границе между своим скиллом и неумением, получая удовольствие и возвращаясь к игре снова и снова.

    Что насчет правил — я сделал еще один шаг в упрощении от Mahjong Connect и позволил составлять пары из любых подходящих друг к другу фишек, а не только из тех, что разблокированы. Есть две причины, почему это произошло. Первая заключается в том, что у меня не было под рукой готового кода для маджонга и я тестировал просто составление пар. Вторая — что я обнаружил, что фишки со словами на разных языках сами по себе усложняют геймплей и составление пар из них уже создает ощущение игры.

    Забегая вперед — если сделать полноценный коннект и маджонг с такими же фишками, играть на самом деле станет гораздо легче. Дело в том, что дополнительные ограничения на фишки сузят выбор и игроку можно будет только проверять все подходящие по самоцветам свободные для хода фишки — а это даст резкое увеличение вероятности совпадения с 25% до 50 или даже ста, в зависимости от раскладки.

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

    Программирование


    Для этого проекта я использовал обычный JavaScript и игровой движок Phaser.io 2.10.2. Чем хороши HTML5-игры — они позволяют быстро предоставить доступ для тестирования и обкатки прототипов. Я уже успел убедиться на других проектах, что как средство для создания кроссплатформенной игры HTML5 не очень хорош (ощутимая просадка по FPS на слабых телефонах, проблемы кроссбраузерной совместимости, необходимость продумывать мосты к нативному API в ряде случаев). Но как средство для создания веб-прототипов и веб-игрушек — это хороший выбор.

    Как и в случае с постъядерным караваном, я начал разработку с составления модели состояния игры — то есть data-класса с полями, которые просто отражают текущий прогресс игрока.

    function GameState() {
        this.pairKey = "ru-en"; // Key для пар слов, универсальный идентификатор перевода
        this.pairJsonUrl = "somePath/ru-en.json"; // путь к текущему файлу для пар слов   
    
        this.matched = 0; // сколько пар убрано за все сеансы
        this.gold = 0; // валюта. Начисляется за пары, но может тратиться на подсказки
        this.errors = 0; // ошибочные пары
    
        // прогресс по порциям
        // индекс = номер порции
        // для Phaser.ArrayUtils.numberArray нужен аргумент - индекс, а не число
        this.portions = Phaser.ArrayUtils.numberArray(Balance.PORTION_AMOUNT-1)
            .map(function (portion, index) {
                return new PortionSaveData();
            });
    
        this.portion = 0; // текущая порция
    
        // настройки
        this.options = {
            tutorial: true, // включить туториал по умолчанию
        }
    }

    Для сохранения и загрузки состояния игры в браузерном JS достаточно просто сериализовать и десериализовать эту модель при записи и чтении в локальное хранилище — и так мы получаем сохранение прогресса на компьютере пользователя буквально парой строчек.

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

    Впрочем, так можно делать только правильные прямоугольники (или сетки, если задать большой шаг), что выглядит довольно примитивно. Поэтому я написал свою функцию раскладки, в которой каждый второй ряд смещается на половину фишки — получается выкладка «кирпичами».

    // выравнять как кирпичи  - каждый второй ряд смещен на определенное расстояние
        function layAsBricks(group, offsetBase) {
            offsetBase = offsetBase || Math.floor(AppConfig.CHIP_WIDTH / 2);
            var N = group.length;
            var i = 0, row, col, COLS = getColAmount(N), ROWS = N / COLS;
            var offsetX, min = Math.floor(offsetBase / 2), max = offsetBase + min;
            var lastWidth = 0, lastX = 0;
            var nextChip;
            for (row = 0; row < ROWS; row++) {
                if (row % 2 > 0) offsetX = offsetBase;
                else  offsetX = 0;           
                lastWidth = 0;
                lastX = 0;
                for (col = 0; col < COLS; col++) {
                    nextChip = group.children[i];
                    if (nextChip === undefined) break;
                    group.children[i].y = row * AppConfig.CHIP_HEIGHT;
                    group.children[i].x = lastX + lastWidth;
                    lastX = group.children[i].x;
                    lastWidth = group.children[i].width;
                    group.children[i].x += offsetX;
                    i++;
                }
            }
        }

    Но главные вопросы мне пришлось решать со словарем.

    Игры со словарем и шрифтами


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


    Разный размер шрифта для разной длины — выглядит немного безумно, на мой взгляд

    Но этот вариант показался мне слишком плохим, поэтому я решил просто отфильтровать словарь и оставить только слова не длиннее 9 знаков в обоих случаях (русский и английский). В моем случае это было позволительно, потому что я взял за основу частотный словарь — то есть слова в нем были отсортированы по частоте употребления. В первой тысяче слов длинее 9 знаков было очень мало, а в первых десятках, то есть самых частых, их не было вовсе.

    Лимит в 9 знаков годится на этапе проверки концепции и для самых употребительных слов, но если развивать прототип — рано или поздно с этим придется что-то делать. Скорее всего, менять пропорции фишек или увеличивать их размер. Для немецкого языка это придется сделать даже в рамках первых самых популярных сотен слов — а немецкий я тоже хочу потестировать, вспомнить школьные годы.

    Второй момент — визуальное совпадение букв в английском и русском языке. Русское «не» и английский he в верхнем регистре часто совпадают просто до пикселя. Частотный словарь усиливает этот эффект, потому что эти короткие слова оказываются в одном уроке почти в самом начале.


    Русское НЕ и английский HE в верхнем регистре выглядят одинаково

    Серый флажок помогал слабо, слова путались. После первых жалоб тестеров я поменял регистр у надписей на обычный lowercase. И тут увидел следующий баг — буквы стали плясать, в некоторых словах уплывая по вертикали на целый пиксель.



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



    Если вы будете использовать Phaser или другой HTML5-движок в своих проектах, то вот еще один совет: выводите растровый шрифт сразу в том цвете, который будет использоваться в игре. Иначе это дает дополнительную нагрузку на процессор, что в играх с кучей действия и эффектов может привести к сильному проседанию FPS. Кроме того, даже в последнем мобильном Chrome на некоторых Android-планшетах «неродной» цвет, заданный растровому шрифту программно, может не отображаться совсем — будет вывод в дефолтном.

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

    К примеру, мой вариант словаря, похоже, составлялся по массивам переведенных текстов с учетом контекста, поэтому «что» в первых уроках там переводилось как «that». Понятно, что в таком значении эта частица употребляется значительно чаще, чем вопрос, но для обучения без контекста это не годится.

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

    Туториал


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



    Технически это реализовано так — уровень изначально выкладывается как обычно, то есть в случайном порядке. Затем, если включена опция туториала, запускается функция, которая запоминает исходные координаты фишек, добавляет к ним анимацию полета и раскладки в рабочие пары, а потом все возвращает на свои места. Поскольку выкладка и подготовка туториала происходит до начала первого цикла update (перерисовки экрана), пользователю кажется, что игра сначала выводит фишки в правильном порядке, а затем случайно перемешивает их.

    В движке Phaser у Group есть метод shuffle, который работает как перемешивание обычного массива, но попутно обновляет Z-index. Это очень удобная функция, которая безусловно пригодится для реализации полноценного маджонга и других игр, где есть хотя бы условное третье измерение и элементы накладываются друг на друга.

    Алгоритм начала игры выглядит просто — берем N пар из словаря пар для заданного урока, формируем из них визуальные элементы-фишки, затем делаем shuffle и выстраиваем в сетку — получается псевдослучайная раскладка.

    В туториале происходит обратный процесс — на массиве фишек вызывается функция sort, где значимым параметром является id пары из словаря — так фишки выстраиваются друг за другом попарно, после чего остается разместить их в две колонки.

    Прогресс


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



    Султана с лицом Картмана я взял на Craftpix.net — он шел в том же бесплатном наборе, что и алмазы. Просто, чтобы оживить заставку. Хотя если вы не любите султанов или Картмана — признаю, что ход не особо удачен.

    Выводы и перспективы


    Я уверен, что обучающий таймкиллер — настоящий таймкиллер, а не этот прототип, что я сделал — возможен. И когда они появятся в массовом количестве, мир может измениться к лучшему. Как минимум, миллионы людей будут тратить сотни часов не впустую.

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

    Все match3 и match2 игры — с шариками, алмазами, фишками для маджонга, рыбками и медвежатами, с фрактальной динамической выкладкой как Zuma или статическим полем, как в большинстве игр — это по сути задания на составление комбинаций, на подбор групп по какому-то признаку.

    В текущих играх этот признак не несет никакой полезной нагрузки, люди просто комбинируют красные и зеленые шарики, полупрозрачные полосатые желейные конфеты и липких мармеладных медвежат. А что, если эти медвежата будут насыщены полезными витаминами? Я помню, что ряд английских слов я выучил по Fallout и Heroes Might and Magic, значит, такие витамины существуют.

    Мой прототип игры можно потестить здесь. Там есть выбор разных сотен и уровней, сохранение, прогресс и тысяча самых употребительных английских слов. Верстка рассчитана на десктопные мониторы или планшеты. Каждый уровень рассчитан на несколько минут, содержит 5 новых слов и 6 повторных с предыдущих (по формуле случайной выборки 3, 2, 1).

    Обновлено 13.06.18: добавлены переходы между сотнями слов и салют при прохождение последнего уровня в каждой сотне. Также убраны из словаря некоторые контекстные пары, которые не имеют смысла в одиночных переводах. Оптимизирована работа с памятью.
    Поделиться публикацией
    Комментарии 52
      +1
      Идея полезного таймкиллера это хорошо. Думаю многие что-то такое писали для себя. Было бы круто, если бы нужно было пройти пару уровней чтобы _разлочить_ Fallout и HMM)))

      Надо сказать на тему английского — такого контента не мало уже готового. Знакомая подвисала на lingualeo, там лев с лицом Картмана и свистелками)
        0
        значит, Картман остается! )

        По поводу разлочивания уровней — интересная мысль, надо подумать. Без полноценного Фоллаута, конечно, но с какой-то наградой, чтобы усилить приятность обучения
        +1
        А еще так можно и арифметику учить… пару создают два числа имеющие в сумме определенное значение — детей думаю вполне займет. И главное проще в реализации.
          0
          да, хорошая идея

          вообще любые компактные символьные последовательности подходят — от таблицы Пифагоры до таблицы логарифмов и таблицы Менделееева

          впрочем, таблица Менделеева тянет уже на полноценный match 3 — там можно составлять комбинации из трех и более элементов со схожими свойствами (инертные газы, легкие металлы и прочее)
          +1
          В одном из заданий было два ответа «ДА», но подходили к разным английским словам, т.е. одно «да» не подходило к другому слову и наоборот
            0
            спасибо, проверю, почищу
              0
              Тоже наткнулся на это да-yes и да-yes, but
              Видимо, во втором случае должно быть «да, но»

              А идея отличная, с удовольствием буду убивать время!
            0
            Прикольно, но смутил перевод частицы «and»

            PS. картинка не загрузилась_(
            ibb.co/mQL5dT
              0
              баг с контекстом. Будет правиться, для and останется в словаре только и
                0
                Кстати, специально сделали «I»(я) с большой буквы?
                  0
                  считаете, это не нужно?
                  при переводе маленького я Гугл Транслейт ставит I в верхнем регистре с отмеченным знаком «подтверждено»
            +1
            А можно добавить слова другого языка? Например, испанского?
              0
              да, это будет
              вообще идея в том, что словарь можно менять на лету и я собираюсь поэкспериментировать, подключив выбор основных мировых языков
              +1
              Уровень 22, пара «да — yes» и «да — and, but». Каждое русское «да» подходит только к своей паре, и нет способа понять к какой.
              Скриншот
              image
                0
                вот это и есть проблема контекста, я думаю, что частицы для такой игры не подходят, их нужно вычистить из словаря, и подумать, как разместить достаточно текста для полноценных фраз
                0
                // перенесено в другую ветку
                  +1
                  Идея отличная, решил попробовать и завис на 600 слов. К данной версии только есть несколько претензий: после 20 подуровня игра не останавливается, идет дальше. Новые слова появляются, но прогресс не засчитывается. Нужно выходить и заходить в уровень с другой сотней слов.
                  Очень странный словарь, зачем здесь отдельно предлоги, ведь у них есть разные значения и лучше всего делать их в контексте.
                  С глаголами таже история, не всегда совпадает форма. Лучше тогда использовать инфинитивы в обоих значениях, русском и английском. Было бы здорово сюда вставить формы неправильных глаголов, или вообще в отдельный подраздел, так учить их будет только в радость.
                  Короче, складывается впечатление что словарь из какого-то советского прошлого.
                  В целом, круто, спасибо вам. Не останавливайтесь на английском, интересно было бы попробовать и с другими языками, и с более обширным словарем.
                    0
                    спасибо, вы очень далеко прошли
                    // завис на 600 слов
                    — в смысле, игра подвисла на этом значении? дальше не проходится?

                    // после 20 подуровня
                    занес в багтрекер, буду править — постараюсь на неделе обновить, будет по тому же адресу

                    // словарь
                    будем чистить, скорее, менять полностью

                    другие языки тоже в плане, я, правда, пока не знаю, что будет легче после правки багов сначала сделать — добавить новые словари или новый геймплей. По геймплею идеи уже есть, а словари, как мы тут уже все поняли, требуют тщательной проверки и вычитки. Но сама идея менять словари — хорошая!
                      0
                      в смысле я залип, с игрой все в порядке. )
                      успехов вам!
                        0
                        // перечитал ответ и все понял, удалил странный вопрос ))
                    +1
                    Я конечно всё понимаю, но…
                    image
                    b.radikal.ru/b31/1806/ff/35d0f43fff7b.png
                      0
                      спасибо, тестеры просто так далеко пока еще не заходили
                      вы один из самых лучших

                      буду смотреть, в чем проблема
                      и да, проскок 20 уровня после порции без оповещения — тоже баг ((
                        +1
                        да и на втором уровне не понятное
                        c.radikal.ru/c23/1806/c4/b139b2ed9a3f.png
                          0
                          конкретно этот случай правлю сейчас, выкладка в ближайшие дни
                          предлоги вообще буду чистить от контекстных значений (оставим вопрос контекста другим, будущим играм)
                      +1
                      Так же заметил что некорректно отображается пройденный уровень, т.е. на картинке я завершил 115-ый, а игра говорит что был пройден 114-ый, хотя при этом следующий идёт 116-ый.
                      radikal.ru/lfp/d.radikal.ru/d28/1806/25/7664095051a9.png/htm
                        0
                        принято
                          0
                          Должен вас предупредить, что вы можете пройти за тысячу и уровни будут продолжаться, пока не исчерпается словарь (после чего, вероятно, будут формироваться неиграбельные уровни или будет ошибка)

                          я сейчас работаю над патчем по этому вопросу и по переходу между сотнями
                            0
                            уровни после 20го в версии 1.1. теперь не отсчитываются, игра переводит игрока в стартовое меню.

                            Предыдущая версия остается на сайте на всякий случай, ссылка в статье обновлена

                            словарь также немного почищен
                            0
                            // перенесено
                              +1
                              перевод некоторых слов не корректный.
                              например «десяток» «ten»
                                0
                                я боюсь, это тот случай, в котором к единому мнению не могу прийти даже такие гиганты, как Гугл и Яндекс — первый переводит как a dozen, а второй как decade.

                                при этом ten присутствует в обоих случаях, как вариант из словаря, внизу под основным переводом
                                  0
                                  Не знаю как в гугле, а на на базаре 'dozen eggs' означает дюжину яиц.
                                  0
                                  заменил на dozen в версии 1.1
                                  0
                                  Добавьте пожалуйста букву Ё.
                                    0
                                    хорошо, в следующих апдейтах, с новым словарем
                                    это более чем разумное предложение, так как я полагаю, что надо отталкиваться от частотного русского словаря (который я сейчас подыскиваю/добываю) — а значит, Ё должна присутствовать

                                    кроме того, я люблю ёжиков — они выходят на газон недалеко от моего дома )
                                    +1
                                    Когда really <> уж — это выглядит очень странно, учитывая, что уж в отрыве от контекста — это змея. Было бы хорошо подогнать переводы к более каноничным, которые понятны вне контекста. На мой взгляд, нужно больше существительных и меньше предлогов, а то с предлогами какой-то перебор, да и предлоги в зависимости от контекста переводятся совершенно по-разному (как по мне, они в данной ситуации только сбивают с толку).
                                      0
                                      занесено в багтрекер, спасибо
                                        0
                                        ужики убраны, в версии 1.1
                                        0
                                        Класс!) Уже с удовольствием потратил больше часа на полезное дело!

                                        Вопрос — может есть смысл хранить словарь в JSON на github? Чтобы любой желающий мог предложить правки, а вы их только подтверждали, если согласны?

                                        В идеале бы еще иметь возможность подключить таким же образом свой словарь (например по ссылке на json). Могла бы появиться разветвленная система словарей от разных пользователей и групп. И любой мог бы их использовать в своих похожих проектах.

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

                                          0
                                          ух ты. Вы можете рассказать про свою обучалку? Мне её графическое оформление нравится гораздо больше, чем мое )

                                          про подключение разных словарей и своих словарей — думаю

                                          подключение по ссылке на json — очень хорошая идея, надо потестировать
                                          в самом базовом варианте это можно реализовать очень быстро (саму возможность)
                                          я напишу вам тут или в личку, если такое появится
                                            +1
                                            Спасибо! Буду ждать новостей!
                                            Если пригодиться моя помощь — с удовольствием поучаствую в вашем проекте:)

                                            С по моей обучалке рассказывать особо нечего. Сделана на Unity. Обычная match 3 механика, изображение на фишках соответствует слову. Соответственно есть десяток тем (животные, птицы, ягоды, деревья и т.п.), в каждой тематике по несколько фишек. Суммарный объем слов очень мал, и это обусловлено механикой. Расти тут особо некуда, так как на каждое слово нужно делать свою фишку. Но игра работает в музее, то этого запаса слов вполне достаточно. Люди в игре узнают несколько вепсских слов, больше и не требуется.

                                            Подход простой. При сборе фишек слово произносится голосом, и выводится текстом (слово + перевод). Это 1-й уровень — для запоминания слов. Нужно набрать заданное число очков за определенное время.

                                            Если собрали — переход на 2-й уровень. На нем уже вначале выводится и произносится слово, но очки дают только за те фишки которые этому слову соответствуют (собрать можно любые, но очков не будет и можно проиграть).

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

                                            Для каждой темы есть свои 3 уровня. Все выводится в одну табличку на стартовом экране.

                                            В целом получилось довольно удобно. Времени оставлено с запасом, поэтому спешки нет и если обращать внимание на слова — то выиграть легко. И слова хорошо запоминаются.
                                            Но, как и сказал, механика слабо масштабируется.
                                              0
                                              вывод голосом и картинки — это гораздо круче для обучения, чем мой вариант, но требует значительных ресурсов

                                              зато картинки значительно позволяют расширить спектр игровых механик, как я писал — со словами есть ограничения на формат и размеры фишек.

                                              У вас профессионально выглядящий проект, надеюсь, вам закажут еще.
                                                0
                                                Спасибо!)
                                                Надеюсь что так, мне нравилось работать над этим проектом
                                          0
                                          Да, процесс изучения иностраного языка в игровой форме на основе запоминания логических связей очень эффективно. Возьму на заметку.
                                            0
                                            если получится что-то сделать — скажите хотя бы мне )
                                            +1
                                            Если погуглить «english stop translate», то можно узнать о проблеме при переходе к восприятию английской речи на слух.

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

                                            Таким образом, если будете думать о развитии игры, то подумайте в сторону… Нет, не картинок, это сложно. О привязке английского слова к английскому же:
                                            — синонимы,
                                            — группы по признаку (pine — apple-tree, car — bicycle),
                                            — превосходные степени (good — best),
                                            — неправильные глаголы,
                                            — …
                                              0
                                              разумные и уместные предложения
                                              буду держать в планах
                                              0
                                              а для смартфона приложуха есть?

                                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                            Самое читаемое