Техническое чтение для не-технарей, не-техническое чтение для технарей.
Оцимо состоит из двух приложений, одного для семьи и одного для детей. В детском приложении много развивающих игр, и оно направлено на то, чтобы помочь ребенку развить свои навыки вовремя, дома, используя только мобильное устройство.
Эта статья посвящена знакомству с основными структурами этих игр.
Итак, вот список плюсов и минусов предоставления обучающих игр детям с аутизмом:
Плюсы
Игры простые. Они должны быть простыми. Подробнее см. в разделе АВА.
Минусы
То, как дети играют в эти игры, совершенно непредсказуемо.
Это не 100% разработка игры.
Это не 100% веб-разработка.
Достойно, правда?
Так что это должен быть некий промежуточный процесс, функционирующий как разработка игры, но запланированный как веб-разработка. Хотя логика игры проста, зная, что даже небольшие ошибки в деталях разбудят вас ночью, заставят открыть терминал и напечатать глоток, когда вы взглянете на свою JSON и подумайте обо всех тех статьях, которые вы пробежали по сопровождению программного обеспечения.
Поскольку я сдерживаю себя, чтобы писать только об общих аспектах разработки, а не о технической шумихе, это будет единственный экран терминала или IDE, который вы когда-либо увидите для этого чтения. .
И вот я, студент компьютерной инженерии, который в конечном итоге стал промежуточным программным обеспечением разработчика, который превращает схематичные игровые идеи в абстрактные конечные автоматы, которые, надеюсь, будут работать в рамках другого приложения.
Давайте копнем немного глубже. Основной инструмент, который я использовал, — хороший, но не такой уж старый JavaScript-фреймворк под названием Phaser. Он предоставляет все основные функции и многое другое, доступное для легких и быстрых игр HTML5, что делает его почти единственным вариантом для наших целей, поскольку наши игры будут воспроизводиться внутри Otsimo Child. приложение.
Цикл разработки сначала требует написания основного кода игры, а затем манипулирования файлами JSON, создания из него нескольких рабочих игр. Это означает, что код должен обрабатывать как можно больше спецификаций, а также работать на нескольких языках. Как может догадаться любой разработчик, лучший способ написать чистый, безопасный и удобный для сопровождения код для этой задачи — создать как можно больше негерметичных абстракций поверх структуры состояния, которую предоставляет Phaser.
Состояния: Загрузка, Дом, Воспроизведение и Завершено. Все слои, которые я упомяну, будут принадлежать состоянию Play.
Вот простая логическая декомпозиция, которую мы сделали почти для каждой игры, которую мы разработали до сих пор:
Сессия
Сеанс означает то, что вы видите, пока нажимаете кнопку воспроизведения из домашнего состояния, пока в конце не увидите могучие воздушные шары; или вы ярость бросить. Можно сказать, что это набор сцен, и он связывает их вместе как можно более общим образом.
Он обрабатывает оценку, полезную нагрузку пользовательских событий (то, что мы видим на задний конец, и мы все это видим) и поток сцены.
Пример кода
Место действия
Логическая основа игрового состояния. Сессия состоит из нескольких экземпляров этого парня на протяжении всей игры; в основном все, с чем вы взаимодействуете, контролируется с помощью методов внутри этого класса.
Он обрабатывает игровой процесс, правильные/неправильные/отсутствующие действия ввода и управление макетом.
Пример кода >»
Макет
Я бы сказал, что это интерфейс игры, если у игры есть собственный сервер. Здесь предметы находят свое место, здесь они оживают, связываются со своей анимацией и воплощают в жизнь свои (наши) мечты.
Он обрабатывает позиции объектов, анимации и обнаружение коллизий.
Пример кода
Намекать
Прежде чем я начал разрабатывать игры с нуля, я добавил функции подсказки и подсчета очков в уже готовую игру. Только после завершения четырех основных игр я понял, что это тот шаг, который усложняет производство.
Подсказки, пожалуй, самые необходимые функции образовательной стороны игр; это подталкивает ребенка к правильному ходу и помогает ему быстрее учиться. Подсказка появляется каждые 5 секунд. (его можно изменить в настройках игры)
Он обрабатывает вызовы/убийства подсказок, анимацию подсказок и временные задержки событий.
Пример кода
Итак, теперь, когда вы знаете, как мы шаг за шагом реализуем игровую логику;
Если вы разработчик,
Посетите нашу страницу Otsimo Games на Github. Мы пишем только для основных игр (репозитории с именами ‹core-*›), остальные — это несколько производственных игр, построенных на них с использованием файлов JSON. Разветвляйте, комментируйте, помечайте, отправляйте запросы на включение или просто играйте с ними, как хотите.
Если не,
У нас есть потрясающий блог со множеством статей об аутизме и образовании, обязательно прочтите их.
И, конечно же, если у вас есть предложения или отзывы о наших играх, мы будем рады получить от вас ответ. Ваше здоровье!