四方山話/吉里吉里2/KAG3ベストプラクティス

Last-modified: 2016-02-24 (水) 13:31:17

…だと個人的に考えているモノ(各自の考えでアレンジすれば良いだろう)。デバッグに関してはデバッグに関するTIPSを参照。

Config.tjs編

  • saveMacros(栞にマクロの情報を保存するかどうか)はfalseにする
    • マクロ定義自体に不具合があった場合、パッチでマクロ定義を修正するだけで済む
  • type(BGM再生メディア)はWaveにする
    • MIDIは再生環境に依存しやすくトラブルの元
      • Windows Vista以降、MIDIマッパー機能が廃止され、ますます使いにくくなった
    • CD-DAはメディアをドライブに挿入せねばならず煩わしい。ノートパソコンにはCD/DVDドライブを内蔵していない機種もある
    • 音声ファイルはWAVEかOgg Vorvis形式のいずれか。今のパソコンのスペックを考えたらOgg Vorvis形式で問題なし

KAGシナリオファイル編

  • copylayタグは重ね合わせ順(index属性値)までコピーすることに注意する
  • iscript~endscriptタグ内にテストの済んでないTJSスクリプトを記述するのは避ける。また、iscript~endscriptタグ内に大量のTJSスクリプトを記述するのは避ける
    • iscript~endscriptタグ内でエラーが発生しても、何行目で発生したのかすぐに判らないため
  • laycountタグは可能な限り使わない
    • 特定のルートで前景レイヤの数が合わず、エラーに…という事態が防げる
  • videoタグのmode属性ではlayerを指定する(レイヤモードを使う)。下表も参照
    • 再生負荷が気になる場合はミキサーモードを使うと良い。なお、最新版の吉里吉里/KAGで、かつDirectX 9以降がインストールされている環境下なら、mode属性にoverlayを指定しても内部的にはmixerで動作している(ちょっとややこしい)
      • コンフィグ画面で描画モード(レイヤとミキサー)を変更できるのが理想か
  • セーブ可能なラベルで「*|」形式は使わない
  • マクロ(やサブルーチン)を駆使して記述量を少しでも減らす
  • [[背景、立ち絵の切り替えはセーブ可能なラベルより前に済ませる>四方山話//小ネタ/]]
    • ロード直後、一瞬だけ違う画像が表示されるのを防げる
  • パッチを当てた際、セーブデータの互換性が保てるようにする
    • サブルーチン内にセーブ可能なラベルを記述しない
mode属性メリットデメリット備考
layer最も安定して動作する再生負荷が大きい
mixerlayerに較べて再生負荷が小さい古いパソコン(目安としてはXPより前のパソコンでDirectX 9より前のグラフィックボードのもの)では再生できないときがあるタグリファレンスに詳しく書かれていない
overlay古いパソコン(目安としてはPentium 4以前)では再生負荷が小さいVista以降では上下反転で再生したり、ジャギーになる不具合が発生しやすいグラフィックボードのドライバを最新にすると直る可能性あり

パッチ編

  • 既存のセーブ可能なラベルは削除しない
    • セーブデータの互換性が失われるため
  • パッチで新しいシステム変数、ゲーム変数を追加した場合、事前にvoidかどうか確認するなどして、パッチ適用前のセーブデータと適用後のセーブデータのどちらも動作するよう配慮する
  • Config.tjsのsaveMacrosがtrueの場合、既存のマクロ定義内容を変更しない
    • もしマクロ定義そのものに不具合があった場合、そのマクロを使用しているKAGシナリオファイル全てがパッチの対象になるので、saveMacrosはfalseにした方が楽

素材編

配布編

  • xp3形式でリリースする
    • exe形式でリリースすると、吉里吉里コアに不具合があったとき、パッチ適用が面倒になる
      • ただし、体験版の配布ならexe形式でリリースするのはアリだと思う
  • エンジン設定(エンドユーザー向けの)、ファイル破損チェックツールは必ず同梱。もちろん署名もしておく
    • 同梱しないと吉里吉里/KAGのアドバンテージは失われる
  • ゲーム本体を%ProgramFiles%(通常はC:\Program Files)フォルダ以下にインストールする前提の場合、吉里吉里設定(krkrconf.exe)でデータ保存場所(-datapath)を$(appdatapath)、$(personalpath)、$(vistapath)のいずれかに設定する
  • CD/DVDで配布する場合、インストーラ本体(プログラム)とキャビネットファイル(圧縮アーカイブファイル)は分離する
    • 一体化させてインストーラ本体のファイルサイズが巨大になると、オートランでもたつくため

開発運用編