Техническое чтение для не-технарей, не-техническое чтение для технарей.

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

Итак, вот список плюсов и минусов предоставления обучающих игр детям с аутизмом:

Плюсы

Игры простые. Они должны быть простыми. Подробнее см. в разделе АВА.

Минусы

То, как дети играют в эти игры, совершенно непредсказуемо.

Это не 100% разработка игры.

Это не 100% веб-разработка.

Достойно, правда?

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

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

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

Давайте копнем немного глубже. Основной инструмент, который я использовал, — хороший, но не такой уж старый JavaScript-фреймворк под названием Phaser. Он предоставляет все основные функции и многое другое, доступное для легких и быстрых игр HTML5, что делает его почти единственным вариантом для наших целей, поскольку наши игры будут воспроизводиться внутри Otsimo Child. приложение.

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

Состояния: Загрузка, Дом, Воспроизведение и Завершено. Все слои, которые я упомяну, будут принадлежать состоянию Play.

Вот простая логическая декомпозиция, которую мы сделали почти для каждой игры, которую мы разработали до сих пор:

Сессия

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

Место действия

Логическая основа игрового состояния. Сессия состоит из нескольких экземпляров этого парня на протяжении всей игры; в основном все, с чем вы взаимодействуете, контролируется с помощью методов внутри этого класса.
Он обрабатывает игровой процесс, правильные/неправильные/отсутствующие действия ввода и управление макетом.
Пример кода >»

Макет

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

Намекать

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

Подсказки, пожалуй, самые необходимые функции образовательной стороны игр; это подталкивает ребенка к правильному ходу и помогает ему быстрее учиться. Подсказка появляется каждые 5 секунд. (его можно изменить в настройках игры)
Он обрабатывает вызовы/убийства подсказок, анимацию подсказок и временные задержки событий.
Пример кода

Итак, теперь, когда вы знаете, как мы шаг за шагом реализуем игровую логику;

Если вы разработчик,

Посетите нашу страницу Otsimo Games на Github. Мы пишем только для основных игр (репозитории с именами ‹core-*›), остальные — это несколько производственных игр, построенных на них с использованием файлов JSON. Разветвляйте, комментируйте, помечайте, отправляйте запросы на включение или просто играйте с ними, как хотите.

Если не,

У нас есть потрясающий блог со множеством статей об аутизме и образовании, обязательно прочтите их.

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