アドオン候補
前回の記事でHello Worldの表示なんかをしていましたが、超基礎が終わったので次はゲーム画面によくある会話ダイアログの実装をしてみたいと思いました。調べて候補にあがったのが以下の2つです。
・Dialogic
・Ink
Dialogicの特徴
ビジュアルエディタ:ノードベースで会話シーンや選択肢を視覚的に構築できる、直感的なインターフェース。
キャラクター管理:キャラクターの立ち絵や名前、表情を簡単に設定・変更可能。
選択肢と分岐:複数の選択肢を用意し、分岐シナリオを簡単に作成できる。
簡単な導入:インストール後すぐに使い始められ、初心者にも使いやすい設計。
カスタマイズ可能:会話のスキップ、セーブ・ロード機能などの拡張が可能。
●結論:Dialogicは、簡単なノベルゲームや会話ベースのゲームに最適。
Inkの特徴
スクリプトベースの柔軟性:簡単なテキストで複雑な分岐や条件付きストーリーを記述可能。
変数と条件の管理:プレイヤーの選択や進行に応じた変数を追跡し、ストーリーに反映。
大規模なストーリーのサポート:大規模なシナリオや分岐があっても、効率的に管理できる。
バージョン管理に最適:テキストファイルベースなので、Gitなどのバージョン管理ツールと相性が良い。
インタラクティブストーリーに最適化:ゲームブックやRPGなど、複雑なストーリー展開が必要なゲームに向いている。
●結論:Inkは、複雑なストーリーや選択肢・分岐が多いゲームに適している。
ここで注意点です。実はInk単体では動きません。Inkというのはもともと、Inkle社が開発した対話や分岐型ストーリーを書くためのスクリプト言語とランタイムです。Inkを使って、ゲームのストーリーや対話のロジックを定義し、簡単にインタラクティブな物語を作成できます。Ink自体はGodotとは独立して動作するため、ストーリー作成ツールとして単体でも使用可能です。
要するにInkは、インタラクティブな物語を作成するためのライティングツールおよびランタイムであり、InkランタイムをGodotエンジンと統合するためのアドオンが別途必要になってくるのですよね。
またさらに状況を複雑にしているのが、そのアドオンが、InkGDとGodot-Inkの2つ存在する点です。InkGDがGodotのGDScriptとの親和性を保っているのに対し、Godot-Inkを使う場合、Mono版と呼ばれるC#対応のGodotエンジンを使う必要があります。Godotとの親和性についてはInkGDに軍配があがりますが、パフォーマンスの面でいうと、C#をベースとするGodot-Inkの方が50倍速い(でも扱いずらい)というトレードオフな状況となっています。悩ましい。
ここでは、パフォーマンスを重視して、Godot + Godot-Ink でいきたいと思います。Mono版のGodot(C#)を使いますが、別に開発全てがC#になるわけではなく、パフォーマンスが重視される部分だけ、C#で実装すればいいので、それほど大きなデメリットではないですよね。
選択
最終的に Godotの.NET版エンジン+Godot-Ink を使うことにしましたが、理由は既に Dialogic の使い方を紹介しているブログや動画が多かったからですね。あとは、このブログでは最終的には複雑な分岐をもつシナリオも導入していく予定だったのが決め手です。
ただ、とっつきやすくて直感的にわかりやすいのはDialogicというのは間違いなさそうですので、初めてプログラミングされる方にはDialogicの方がおすすめです。
次の記事では、Godot + Godot-Ink を触ってみたいと思います。
コメント