Это старая версия документа!


Портирование ваших игр с...

Портирование с Raconteur довольно просто по структуре, но вот что вам нужно проверить:

  1. Salet не имеет зависимостей от библиотек. Raconteur и Undum уже переработаны в его ядре. Почистите свой package.json
  2. ВАЖНО Salet использует класс room в то время как Raconteur оперирует над классом situation
  3. ВАЖНО Salet использует свойство dsc вместо content
  4. ВАЖНО Salet не использует глобальных переменных в ядре. Вам надо явным образом передавать объект salet как параметр при создании комнаты.
  5. (совет) Вы можете использовать elements.js из Raconteur, но обычно нет нужды городить зависимости ради одной-двух функций. Просто пишите (content,ref) -> "<a href='_writer_#{ref}' class='once'>#{content}</a>" вместо (content,ref) -> a(content).once().writer(ref). Использование то же самое.
  6. Вам может понадобиться проверить свои функции before и after и переключить их на enter и exit. Это зависит от желаемого поведения.
  7. Gulpfile теперь переписан на CoffeeScript. Возможно, вы захотите его отредактировать для своих целей.
  8. Вы можете разбить свою игру на несколько файлов, что не отразится на коде. Ищите concat в Gulpfile.coffee
  9. Также см. раздел "изменения по сравнению Undum" ниже.
  1. Salet использует прекомпилятор Sass, когда Raconteur предпочитает LESS.
  2. Также Salet использует фреймворк Bootstrap (v4)
  3. Salet по умолчанию прячет блок "tools" вместе с качествами персонажа. Они не показываются игроку.
  4. ВАЖНО Salet ожидает, что вы будете загружать jQuery и компилятор Markdown как клиентские библиотеки Javascript с хостинга CDN. Raconteur просто склеивает всё в один большой комок. (jQuery вставляется дважды)

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

  1. Вы пишете игру на CoffeeScript, а не Javascript.
  2. HTML API убрано.
  3. animateQuality убрано. В Salet нет готовых прогресс-линеек.
  4. Качества не показываются игроку.
  5. Мобильное меню и вся функциональность при изменении размера окна браузера отданы в CSS.
  6. Функция enter переименована в entering. Функция enter также вызывается при входе в ситуацию (теперь - комнату), но сейчас вы можете легко её переписать, не угрожая логике игры.
  7. Ситуация не может быть неявным выбором внутри самой себя.
  8. optionText может быть HTML, а не обычным текстом.
  9. Вы можете поймать функцию processClick и использовать её для настройки интерфейса игры.
  10. optionText также может быть функцией.
  11. SimpleSituation убрана.
  12. jQuery (вместе с Markdown) библиотека НЕ поставляется вместе с вашей игрой. Игрок скачивает её с CDN (или, скорее всего, уже имеет её в кэше браузера). Это значит, что по умолчанию игры не запустятся без подключения к Интернету. Если хотите сделать игру доступной вне сети, вам придётся положить нужные библиотеки самостоятельно.
  13. minChoices убрана.
  14. Частота ситуаций ещё не написана. (см. #18)
  1. Вы пишете игру на CoffeeScript.
  2. По умолчанию нет опции subtitle. Но optionText - это HTML, так что вы можете оформлять её как захотите, см. #17
  3. Вместо одного свойства title в Salet есть отдельные optionText, название комнаты и любой заголовок, который вы поставите в текст. Смысл в том, чтобы они могли различаться.
  4. new-page становится clear. По умолчанию оно включено для комнат.
  5. view-if становится canView
  6. on-arrival становится enter или before. before может быть текстом. Вам придётся описать их как функции, если вы хотите устанавливать переменные. (просто напишите before: () -> season += 1)
  7. tags остались без изменений, но с другим синтаксисом: tags: ["weekly", "weekend", "awesome"]
  8. Нет особых правил по разделению вашего кода. Делайте что хотите.
  9. Нет особых под-комнат. Каждая комната пишется как комната. Но вы можете делать удобные функции, такие как dialogue, если ваши комнаты достаточно просты.
  10. Частота ситуаций ещё не написана. (см. #18)
  • ru/guide/porting.1474270694.txt.gz
  • Последнее изменение: 2016/09/20 13:51
  • (внешнее изменение)