# Unmiracle

UnmiracleTailは独自のエンジンで動いています。ゲームに欠かせないスキルやアビリティのようなプログラム的なデータを管理し、NoCodeエディタの組み込み・設定変更を目的に作られています。

# オブジェクト配列書式プログラミング言語

プログラムはJSONで記述します。配列・オブジェクトを扱えればいいので、設計上はXMLや普通のプログラミング言語でも書けます。

中身は命令実行を示すオブジェクトを並べて上から実行する書式です。オブジェクトには必ず「変数を定義する」・「命令を実行する」といったオペレーターが含まれており、10種類程度あります。しかし、ほとんどのオペレーターは基本の「Call」オペレーターのラッパーなので、NoCodeエディタ側は「Call」オペレーターの配列を扱うようにできれば、簡単にエディタが開発可能になります。

# 組み込み可能なバイナリモジュール

このエンジンはバイナリなので、PHP・Python・Perl・Nodeでモジュールとして扱うことが可能です。PHP製プロジェクトのオリジナルでイケてる戦闘システムがNodeでは使えない!といった排他的な状況を解決します。開発者は慣れ親しんだ言語でこのライブラリを扱うことができます。

# 関数型言語

Callオペレーターから成るほぼ関数型言語で、if文・for文のような平の文法は存在しません。全てがオブジェクトの配列です。また、if文・for文のように、フロー制御の条件で式を書くことを良しとしていません。これは後に触れる「プログラムを文書に復元する」ためのルールです。フロー制御については、変数の型毎に用意された専用の関数を用いて行います。

計算式は計算オペレーターに記述することができますが、内部的には演算子単位でCallオペレーターに置き換わります。

# 文書復元可能

プログラムから自然な言語に近い文書を作ることが可能です。これは、ゲーム開発者にとって管理が非常に面倒な「スキル効果の説明文」をプログラムから自動作成できるということです。(実際に自動生成された見本はスキルを参照)

ゲーム開発者のオリジナルの命令についても、合わせて説明文のテンプレートを作れば、自動生成ができるようになります。

# Quick Start

手元のPCで動かしたい場合は以下のコマンドでセットアップ

$ npm i
$ npm run dev

Electron版のビルドはこう

$ npm run electron-pack