2025年1月8日2
2023年から開発を開始した Alice System ですが、おかげさまで約1年半もの間、開発が続いております。
そこで、今年の開発方針の候補について記載していきます。
現時点ではほとんどの機能ができていないので、“Syntax Highlight”、“pack” (Anproj 形式に ZIP する)、“test” (正常に動く Anov 構文かチェックする) あたりの機能は完成させたいです。
現在の開発ツールは、anov-vscode がありますが、利用可能な段階ではないためほとんど利用されていません。基本的には Alice Console が利用されています。
Alice Console は CUI を利用し、ゲームをコマンドライン上で動かすことができるツールです。容易に動かすことができることから、開発機能がない Alice Novel の開発段階に利用することが多いツールです。
しかし、開発において致命的な点が2つあります。
それが、“GUI でチェックができない点"と"途中からデバッグができない点"です。
前者に関しては、GUI ならではの位置調整やアニメーション設定などがあるため、CUI だけでは対応できないことが容易に理解できると思われます。
また、後者に関しても、現時点では毎回 Anov ファイルを最初から読み込むしかないため、デバッグに苦労するということが理解できると思います。
この2つの点を解決できる方法として私が考えた方法が、ブラウザを利用し、GUI でプレビューできるというものです。
この機能は、新しく開発するツールではなく、既存の Alice Console や anov-vscode に組み込むつもりです。
理由としては、新しいツールを作るほどの規模の機能ではない点、そして新しいツールの作成による管理の問題点 (そのツールの存在により既存のツールの必要性や優位点が消失し、維持する価値がなくなると、そのツールを非推奨にする必要がある点) が挙げられます。
以前は Aqua Notes として Blazor wasm で開発されていました。
フレームワークや言語をそのままにするかどうか
目的
Alice Novel 開発開始段階での理想をもとに記載するのであれば、動的サーバーを利用し頒布までできる環境を構築、また開発ツールとしてはワークフローのようなツールを開発し、それによって自動的に Anov 構文が利用されるという形式となります。
しかし、ウェブでの開発や、そのデータの保存となると動的にする必要が出てきたり、(Local Storage を使ってもいいですが、データが消えた際の問題が多い) エディターの実装に時間がかかるように思われます。(検索結果のような、既存の実装を使うのがおそらくよいと思われます。が、Anov 構文の Syntax Highlight が実装できるかがあまりわかりません)
しかし、現時点の開発指針と先述の GUI プレビューの話を考慮すると、以前の開発方針が現在の状況に見合っているのかを再び検討する必要がありそうです。
(なお、Aqua Notes は Alice Novel と同じく利用のためだけのツールとして開発されていました)
Ivy Cafeteria / Crystal a Live 構想
もともと、先述のことを目的とした計画でしたが、Alice Project 自体が開発することになりそうなので、おそらく開発しません。が、計画内容に関しては、参考にできる部分があるかと思いますので、その内容を要約してここに記載します。
この計画の最終目標としては、Godot や Unity のような開発環境を実装することが目標でした。
当初の計画では、これによって完成した Crystal a Live を Ivy Cafeteria の2つのゲーム開発で利用するつもりだったため、計画は前向きの検討がされており、順調な始まりに見えました。しかし、その開発予定だった2つのゲームは、より独自性を高めるため、ノベルゲームから、2D ゲームへ予定変更することとなり、Crystal a Live が利用される可能性が低くなり、同時に開発計画自体が白紙となってしてしまいました。
先述の通り、Godot のようなリッチな UI と豪華な開発環境を目的として開発されており、言語としても TypeScript (Tauri) への転換が考えられていました。(開発効率と容量の削減を優先し)
将来的には、先述の “Web 向けの開発"に引き継がれる可能性が高いです。(個人的にこの名称は気に入っているので、引き継ぐことが可能なら、そうしたいと考えています)
現時点の Anov 構文は、Alice Novel, Alice Console の間で仕様の違いがあり、Aqua Notes など他のアプリケーションを開発すると、その差異は広がっていく可能性が高いと考えています。
そのため、Markdown における Common Mark のような共通した決まり (Spec) を作成し、その拡張に関してはアプリケーション別で実装するという方針を考えています。(Markdown の GitHub Flavored Markdown, MFM (Markup language For Misskey) のように)
これに関しては、いくつかの Draft を作成後、正式に決定し Alice Project のサイトに記載、Alice Novel や Alice Console などの各アプリケーションに実装する予定です。
(ちなみに、Anov 構文 は Alice Novel Syntax からとっていますが、Common Anov Syntax では Advanced Novel Syntax としています)
Anov 構文とは異なり、Anproj 形式は Alice Novel 以外では使用されていませんが、Anov 構文と同様に標準的なフォーマットを用意する予定です。
(Anov 構文と同様に、本来の名称は Alice Novel Project ですが、標準化の際には Advanced Novel Project としています)