四方山話/吉里吉里2/KAG3は「重い」のか?

Last-modified: 2016-02-24 (水) 13:09:30

吉里吉里2/KAG3に関するネガティブな評価の最たるモノは、おそらく動作が重いと言われることだろう。

統計を取ったわけではないが、吉里吉里2/KAG3を使ってゲームを制作している人の多くは「動作が軽い」と言うし、使っていない人の多くは「動作が重い」と言っているようだ。

なぜ、このように正反対の意見になるのか? そもそもの原因は何か?…など、筆者が理解している範囲で説明する。

吉里吉里1/KAG2の影響

良く言われること

昔、吉里吉里/KAGを評価してみたけど、動作が重かった。

解説

前バージョン吉里吉里1/KAG2の頃の評価が未だに流通しているためで、現在は異なる。

吉里吉里1/KAG2は、KAGシナリオの構文解析処理をTJSスクリプトで行っていたため、動作が重かったのは確かである。ただし、吉里吉里2/KAG3では、主要部分がネイティブコードに書き換えられたため、この問題は解決している。

また、TJSは実行時コンパイル形式で仮想マシン用バイトコードを生成・実行するため、

  • 平時の処理速度はかなり速い
  • 反面、起動が遅い(起動時にTJSスクリプトをコンパイルしているので)

という事情も考慮する必要がある。多くのノベルエンジンはインタプリタのため、

  • 平時の処理速度はそれほど速くない
  • その代わり、起動も特に遅くない

となっている。

参考

Ogg Vorvisの問題

良く言われること

主要音源であるOgg Vorvisは、MP3に較べると動作が重い。

解説

むしろ逆で僅かだがOgg Vorvisの方が軽い。詳細はOgg Vorbis の再生負荷を参照されたい。

吉里吉里2同梱のOgg Vorvisプラグイン(wuvorbis.dll)は、SSEと言ったSIMD拡張命令で徹底的に最適化されている上に、CPUの空き時間で積極的にデコードしているため体感でも動作は軽い(その性能の高さから、このプラグインだけ利用している商業ゲームもある)。*1

  • MP3を採用しない理由は、独Fraunhofer Gesellschaft社と仏Thomson社がライセンスを主張しているため(要するに音源にMP3を採用したゲームを配布するとライセンス料を要求される)
  • 逆に、Ogg Vorvisを採用する理由は、ライセンス料がかからない上に、低ビットレートでも音質が良いため

参考

描画速度の問題

良く言われること

描画にDirectX(≒グラフィックボードの描画能力)を使わず、CPUパワーで描画しているため、動作が重い。

解説

事実だが、SSEと言ったSIMD拡張命令で徹底的に最適化されている上に、CPUのメモリキャッシュを上手く活用しているため、CPUパワーで描画するエンジンとしては恐らく上位に位置する。*2

  • 吉里吉里2がDirectXを積極的に利用しないのは、環境依存の不具合を避けるため(これが幸いして、マルチプラットフォーム化しやすい設計になっている)
  • DirectXを積極的に活用しないのは、何も吉里吉里2に限った話ではない。上述の理由から類似の方針を採っているツールは多い

参考

比較の対象の問題

良く言われること

NScripterなどの他のノベルエンジンに較べると吉里吉里2/KAG3は重い。

解説

事実だが、その一方で正当な比較とも言えない。以下のように、全くの別物を比較しているためである。

  • NScripterなど多くのツールはノベルゲーム制作専用。基本的にこれ以外のものは作れない(頑張ってRPGやSLGを作っている人もいるが)
  • 吉里吉里2は(インタラクティブコンテンツを得意とする)汎用のスクリプトエンジン。KAG3によってノベルエンジンとして機能しているに過ぎず、シューティングやアクションゲームはおろか、実用ツールすら作れる

最も、ノベルゲーム制作にしか興味がない人にとっては充分に「正当な比較」と言える。困ったことに、吉里吉里2/KAG3と同一コンセプトのツールで、メジャーなモノが他にないため、この評価をより一層困難なモノにしている。

ニュアンスの問題(まとめ)

一口に「重い」と言っても、個人によって様々な解釈があるため、コミュニケーションに齟齬をきたしている。

  • 実行形式ファイルのファイルサイズが大きい
  • 起動するまでが遅い
  • 消費するメモリサイズが大きい
  • 消費するCPUパワーが大きい
  • 処理速度が遅い
    • 一般的な演算処理
    • 画像処理
    • 音声処理

ちなみに、吉里吉里2/KAG3の場合は、以下のようになっている(人によって多少の異論はあると思うが)。

項目評価
実行形式ファイルのファイルサイズ仕様からすれば妥当か、むしろコンパクトな方
起動するまでの時間遅い。これはTJSスクリプトをコンパイルしているため。と言っても実際には1秒とかかっていないので気にする必要はほとんどない
消費するメモリサイズゲームの仕様に大きく依存するが、画像キャッシュ(とレイヤ裏画面)を持つため、総合的には大きい方(設定可能)
消費するCPUパワー元もとトランジションなどでは「使えるだけCPUパワーを使う」という設計のため、総合的には大きい方(設定可能)
一般的な演算処理高速。ネイティブコードに次ぐ速度
画像処理CPUパワーで描画するエンジンとしては高速だが、DirectXで描画するエンジンに比べると低速
音声処理Ogg Voribisに関してなら高速
  • 「重い」と呼ばれる理由の多くは、消費するメモリサイズ、消費するCPUパワーに由来していると思われる
    • なお、これらの問題は「吉里吉里設定」(エンドユーザー用には「エンジン設定」)で関連パラメータを変更すれば、ある程度まで改善できる
  • 「軽い」と呼ばれる理由の多くは、仕様からすると限界近くまで最適化されている上に、ここ数年のパソコンのスペックならエントリーモデルでも軽快に動くためだろう

情報発信者のリサーチ不足(オチ)

…と、この辺りの事情をロクに調べもせず、周囲の誤解を鵜呑みにして情報発信している人が多数いる。*3


*1 2003年の頃の話なので、現在はまた違う結果になっているかも知れない。
*2 DirectX 8~9頃からかなり安定してきたという話もある。そのうち「過去の苦労話」として語られることになるのかも知れない。
*3 筆者も初心者用の講座で誤解されるようなことを書いている(小難しいことを書いても仕方ないという考慮から)ので、あまり偉そうなことは言えないが…。