@itgenio/edik-mecanics
TypeScript icon, indicating that this package has built-in type declarations

0.0.62 • Public • Published

Механики

Механика - это мини игра: тест, квест или любой другой вид.

Зависимости:

  • mobx
  • @itgenio/edik-core
  • @itgenio/utils

Архитектура

Общее

Механика состоит из двух компонентов:

  • "Мозг"(данные+логика);
  • "Дизайн"(внешний вид).

Мозг знает о дизайне, дизайн не знает о мозге.

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

Почему фигово разделять на две части, дизайн и мозг

  • самое главное - ограничение UI - сужается разнообразие тем, тяжелее делать уникальные вещи.
  • много кода

Новый подход

  • один класс - одна механика
  • если нужен простой способ изменения данных в механике - пишем редактор
  • возможно редактор сможет "натягивать" темы. В целом должна быть идентичная структура. Т.е. например варианты ответов с картинками не могут стать вариантами ответов с текстом и т.д.

Сохранение состояния

ВАЖНО Прочесть README в core-player/README.md чтобы понимать основные моменты.

Т.к. механики нацелены на изменение состояния, важно сохранять его.

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

Базовые принципы:

  • перед созданием компоненты/объекта проверяем, что его нет
  • сохраняем минимально необходимое кол-во данных, чтобы воспроизвести текущее состояние механики

Сборка

Meteor сборка автоматически собирается после обычной сборки

Readme

Keywords

none

Package Sidebar

Install

npm i @itgenio/edik-mecanics

Weekly Downloads

36

Version

0.0.62

License

ISC

Unpacked Size

345 kB

Total Files

48

Last publish

Collaborators

  • pavel-r
  • brondinar
  • asosnovskiy
  • nkroe