赤宿 = Red Inn

素人の試行錯誤と2Dローグライク・ゲーム制作

Key Bindings for Axis Input : yuhjklbn | QWE AD ZXC

 Macさんラップトップを買った勢いが残っている。Coolなことをするためにコンピュータがある、そう思うとHot!!

オモイ……ダシテ……
アノ、ヒノ……オモ……イ……ヲ……

ToME4

 Macさんでは安定して動いてくれる。このゲームは、少しずつプレイしてクリアしたい。

 追記: リタイア。小説の方が楽しいとか思い始めて……。

Key Bindings for Axis Input

 ラップトップ型のMacにはテンキー(numpad)が無いため、代理が必要。何種類か検討したが、上下左右入力をオミットするキーを用意するより、numpadの替わりを用意する方針に決めた。

yuhjklbn

 Viなどと同様の、伝統的なローグライクのキーバインディングホームポジションを使わない身からすると、斜めキーの入力が至難だと思う。

 hjklは上下左右、yubnが斜め方向に対応する。両端のh, lが左右、jは下(↓に似て見える)、残ったkは上を指す。 というのは、DarkGodの受け売り。

QWE AD ZXC

 変則的かもしれないが、自作品ではこちらを推奨したい。

 追記: できれば、全操作を左手だけで行えると良い。Ctrlをランチャにするかも。

Other than axis input
  • Controls: Run, Dir
  • Menus: Inventory, Equipment, Preferences
  • Commands / Shortcuts: RestForXTurns, RestForATurn

 適当に配列するか、ランチャを用意する。

Data > Code ?

 コードよりも、データの設計や、ゲームの完成形の想定の方が重要に思えてきた。

 ゲームは、結局データを流し込む形で作ることになる。コードさんの役目は、データで書いたことを実現するに過ぎないのだろう……。(特に、非リアルタイムのゲームでは)

 追記: でも面白いのはコードの方なので、僕にとっての重要性は Data < Code。AIなどのコード自体をデータと見ることもできるが……?

Data-Driven Type Objects

 データ駆動にしたい部分は、TypeObjectに対応する。ここでもBobの手法に習う。(Amaranth(C#)やHauberk(Dart)では、Type Objectをデータ駆動にしてコンテンツを流し込んでいる)。

Data Formats

 csv, yaml, json, tomlなどのフォーマットがある。CSVは表なので、値を比べながらデータを調整するのに向いている。他の形式でコンテンツを定義するなら、"基底"となる定義を”継承”させるのもアリ(Bobのように!)。

 Amaranthでは、独自のパーサとファイル形式が用意されている。

Parsing (in Amaranth)

 方法は次回。パッと見では、インデントでパース -> regexを用いてパース -> データに応じてパーサを割り当て。データは、ハッシュマップで持たれているのをTypeObjectに変換する。

 アイテムの効果は、C#のコードとして動的にコンパイルして用いられる。(そんなのアリ!?)

Multi Langs

 会話文などはファイルを丸ごと差し替えればいいと思う。

 アイテム使用時のログなど、Typeの定義ファイルに埋め込む場合は困る。翻訳担当者がテキストだけを読めるのが理想だが、どうするのが良いだろう……?

Dynamic Texts

 言語によって必要な文脈の情報が異なる。例えば、英語なら時制や名詞の人称が必要になる。

 英語くらいは対応したい。Bobからパクれば……真似れば抜かり無し……