Underrail #1 Fallout meme

三年半前にAlpha版をこのblogで取り上げていたが、遂にリリース。タイトルロゴはどう見てもUnderRailと表記されているが、Official siteでの表記を見る限りでは、文字として書く場合はUnderrailとするようだ。

Underrail About

It’s inspired by western RPG classics such as Fallout, Arcanum, Neverwinter Nights and System Shock 2.

これらのタイトルにピンときたら買いだろう。

underrail-Tanner

アルファから細部が結構変わっている。

まずやるべきことは、画面解像度の調整だ。
デフォルト800×600の低解像度のウインドウサイズを変更してもスケーリングされない。表示領域が広がるだけのドットバイドットの2Dゲームなので、ウインドウサイズは大きくしすぎてもキャラクターが米粒のように見えるだけになるのでほどほどにした方がよい。文字サイズは今時は最早Largeにしないと小さすぎるが、Tooltipは大量に書かれたようなアイテムの場合、Largeにすると画面に収まりきらず見えない箇所が出てくるのでNormalの方が都合がよい。

難易度は、Normalでもシビアで油断するとすぐに死ぬだろう。キャラクタービルドもある程度はまともに戦闘がこなせるようなものでないと敵が倒せずに詰むと思う。何度かビルドをやり直すつもりでないと駄目だろう。

経験値システムは、Oddityという特徴的なものと、よくある敵を倒すかクエストを達成することで得られるものから選択する。デフォルトはOddity。
Oddityは、特定のアイテムを獲得することで経験値を得るか、クエスト達成で経験値を得る。Oddity Itemは、敵を倒したときのドロップかその辺のコンテナに入っているため、特にやることは変わりない。Oddity Itemは相当数の種類があり、そのエリアの書類やモンスターの部位などLoreも兼ねている。また、種類毎に経験値を獲得できる回数上限が設けられているため、延々と敵を倒してアイテムをルートすることでレベリングを行うことが出来ないようになっている。

キャラクター作成は、Falloutのそれとほぼ同じだろう。SkillにはSynagyという相乗効果補正があり、あるのとないのとでは結構馬鹿にならないスキル値の違いとなるので意識はした方が良いだろう。
Falloutといえば、ゲームを極めれば殆ど戦闘をしないで会話だけでクリアをすることも出来るが、Underrailに関しては今のところそういう感じは無い。会話で解決したり、戦闘を回避できたりするようなシチュエーションは少なく、あれば嬉しい程度である。戦闘をきっちりこなせるようなビルドの方が良いだろう。
私はアルファの初期しかやっていないので詳しくは知らないが、Early Access時代はPSI Abilitiesが異常に強かったらしい。製品版に際して調整されたようで、PSI Abilitiesのみで戦い抜くのは難しいようになっているが、StunやFearといった無力化する手段が豊富で十分使えると思う。

underrail-Persuade

よくあるIsometric gameの宿命として方角が画面の何処を示しているのか分からない問題があるが、Underrailも例外ではない。いきなり最初のQuestで北と言われてどっちやねん、と言いたくなるだろう。アイテムのコンパスで方角が分かるが、画面上では次のように対応している。

  • 右上:北
  • 右下:東
  • 左上:西
  • 左下:南

おまけにこのゲームではPip-boyのような端末は無いので、マップメニューは存在しない。意外にボリュームがあって段々とレベルの繋がりを把握するのが大変になってくるので、簡単にでもマッピングしておいた方がいいだろう。

Darkerst Dungeon #2 Release

Darkest Dungeon #1 Early Access

今後この手の肉付けもしっかりとして、製品版に向けていってほしい。

と、書いた矢先の1月19日に、特に期待するような変更も無く製品版としてリリースされてしまった…もったいない。
リリース後も相変わらず頻繁にHotfixされて、Hotfixといいつつ追加事項もあったりするので、もしかしたらという期待も無くはないが、恐らく無いのだろう。
それでも、レベル上げ作業と感じるまでは十分楽しめるし、作業ゲーに耐性のある人はより楽しめるだろう。

Darkest Dungeon #1 Early Access

Early Accessでボスを5体ほど倒したところまで。ボス戦中にスクリーンショットをFrapsで撮ったのだが、真っ黒で何も写っていなかった。これが本当のDarkest Dungeonか。

面白いのだが、Early Accessの今の段階では結局のところキャラクターを死なないようにチマチマと育てていくレベル上げゲーに終始するしかない。Dungeon Crawlを楽しむような側面も薄いし、クエストのバリエーションにも乏しい。
キャラクターが成長したからといってもステータスが上がるだけで、何か新しいことが出来るわけではないので特に戦術が変わることはない。戦術が変わるまたは戦術を変える要因は、パーティグループの編成とTrinket効果による。
特殊なメカニズムがあるボスも低レベル帯のDungeonで出てきたやつがそのままステータスだけ上がって高レベル帯のボスとして出てくるだけだ。
今後この手の肉付けもしっかりとして、製品版に向けていってほしい。

HPが0になって瀕死状態になった時に発動するDeath’s Doorという確率死亡救済措置のおかげで滅多にキャラクターが死なないのはどうかと思う。ゲームを始める前までは、XCOM(Microproseの方だよ)のように隊員がバタバタと死んでいくようなゲームだと予想していたのだが。Death’s Door自体のペナルティも恒久的なものではないので、AfflictionやNegative QuirksやDiseaseに比べて遙かに軽い。
また、Stressが100溜まってAfflictionに陥ると事実上そのキャラクターは死んでいるようなものだが、100溜まるような状況になるのは勝手の分からない最初だけで、すぐに誰もAfflictionには陥らなくなるだろう。
Death’s Doorは確率ではなく、敵を倒したときに生じる死体(一定体力を持つ隊列を崩さない物体)と同じように瀕死の行動不能キャラクターとなり、その間に十分に回復出来ず一定ダメージを受けると死亡する、というデザインの方が良いのではないかと思う。いわゆるD&D 3e以降の瀕死である。今のデザインよりも敵と同じような扱われ方となるので、公平感もあるだろう。

さらに毎週新人がタダで数人雇えるので、レベルが低い内にキャラクターを死なせたり首にしたりすることでの損失は無いに等しい。ちょっとステータスが気に入らないからとあっさりと首にできてしまう。この手のゲームが凄く苦手な人がプレイして、毎週のように死人が出て低レベルのキャラクターばかりしかいないような状況でも、低レベル帯のダンジョンはいつでもいけるので、慣れて安全に攻略できるようになるまでそこに通えばよく、緊張感の維持に欠く。XCOMのようにゲームの進行度に応じて問答無用で段々と敵が強くなっていき、隊員をじわじわと育てていかないときつくなっていって詰んでしまうということにはならない。
Darkestと名を冠してしてイントロからして、オートセーブでキャラクターは酷い目にあって恒久的に死んでしまうんですよと脅しのようにメッセージが出てくるが、それとは対称的にぬるいゲームだろう。
雇用料として500Gとかのいくらかの金を支払うようにすると、今のように安易にキャラクターを使い潰すということが出来なくなると思うが、コツが掴めず上達が見られなかった人はそのうち資金が尽きてゲームが詰む可能性が生じてくるだろう。だが、このゲームではコンセプト的に詰みというデザインは許容されると思う。

List of Games I own #2 Script

年明けに意気込んで、所有しているPCゲームリストを作った。その2。

スプレッドシート化して得られる恩恵のもう一つは、スクリプトが使えることだろう。テキストエディタによっては固有のマクロが使える場合もあるが、Google SpreadsheetだとJavascriptからサーバサイドの処理を行える。とはいえ、妙にレスポンスが遅いのでGoogle Apps ScriptのAPIのコール回数は極力減らしたほうがいいのだろう。
開発にあたりGoogleということで、Chromeが群を抜いてクライアント側で処理するJavascriptが早いので、それを使った方が良い。他のブラウザで弄っていると妙に遅くてストレスが溜まる。しかし、Chrome自体はタブやらメモリ管理が貧弱すぎてデフォルトブラウザとして常用するには耐えうる代物ではなかった。

さて、スクリプトを何に使うかというと、ゲームタイトルの追加である。利便性のために、次のような要件でタイトルを適切な位置に挿入したい。

  1. アルファベット昇順、正確には文字コード順
  2. 先頭にあるA, An, Theの冠詞は無視する
  3. .(ピリオド)などの記号は、アルファベットよりも先にきてはならない
  4. 続編はリリース順にまとめる
  5. 続編で著しく名前が異なる場合、メジャーとなっているタイトル部分をアルファベット昇順の基準とする

従来のテキストでの管理では、タイトル追加時に手動で挿入位置を探しだし、改行をしてゲームタイトルを入力していた。スプレッドシート化しても、挿入位置を探し出し、行を挿入して、ゲームタイトルを入力することになる。腹ただしいことに、Google Spreadsheetに行挿入のショートカットキーは存在しない(エクセルは使用頻度が高いくせに面倒で押しにくいショートカットキーがある)ので、行を選択して端を右クリックするか、メニューから追加する項目をマウスで選択しなくてはならない。テキストからスプレッドシートに移行するとかえって手間が増えているのである。
目視で挿入場所を探し出して追加するのは間違いを生むし、増えた手間をスクリプト自動化して手間を減らしたいところである。

行挿入からタイトル記入の処理は、入力フォームを開いてタイトルを入力して、これをスクリプトで扱えば何の工夫もなく出来るだろう。あとは挿入するべき位置が分かればよい。

シートにはセルをアルファベット順に並び替えるソート機能があるが、これは要件を満たさないので使えない。
次のようなタイトル群があったとしよう。何の工夫もせず、シートの機能やスクリプトプログラムを用いてアルファベット順にソートした場合、きっとこういう順序になるだろう。

An Elder Scrolls Legend: Battlespire
Beyond Divinity
Descent: FreeSpace
Divine Divinity
F.E.A.R.
Fable: The Lost Chapters
FreeSpace 2
The Elder Scrolls 2: Daggerfall
The Elder Scrolls 3: Morrowind

確かに要件1の文字コード順になっているが、先の要件は1しか満たしていない。我々は機械ではなく人間であるため、これらのゲームをよく知った人間ならば、何もかもがおかしいと感じるだろう。

要件2の先頭の冠詞の除外は、An Elder ScrollsやThe Elder Scrollsが該当する。
メジャーなディストリビュータを例にとるとSteamは去年か一昨年あたりまでは対応していなかったのだが、最近になって対応されていた。GOGはずっと対応されていないのだが、Elder Scrolls, Theといった具合に記述順序を変更して対応している。しかしながら、特に明示的に命名規則が決められておらず手作業でそういう処理をしているのか、Theが先頭に書かれているタイトルもあるし、AとAnは全て処理されていないのでチグハグな並びになってしまっている。Originは日本語タイトルの命名規則が全くない上に、日本語に対するソートがまともに機能しておらず出鱈目である。

これは単純に、先頭が大文字小文字問わず”the “, “a “, “an “の場合に、それを除去して考慮すれば良い。この要件を満たすと次のような並びになる。

Beyond Divinity
Descent: FreeSpace
Divine Divinity
The Elder Scrolls 2: Daggerfall
The Elder Scrolls 3: Morrowind
An Elder Scrolls Legend: Battlespire
F.E.A.R.
Fable: The Lost Chapters
FreeSpace 2

要件3は、F.E.A.R.がそれに該当する。文字コード的にはピリオドはアルファベットよりも先なので正しいのだが、人間の感性としてはF.E.A.R.はFEARである。これ以降の要件、つまり冠詞の除外以外はどのディストリビュータも対応していない。
これも単純に、ピリオドやその他不要な記号は除去して考慮してやればよい。次のようになるだろう。

Beyond Divinity
Descent: FreeSpace
Divine Divinity
The Elder Scrolls 2: Daggerfall
The Elder Scrolls 3: Morrowind
An Elder Scrolls Legend: Battlespire
Fable: The Lost Chapters
F.E.A.R.
FreeSpace 2

要件4, 5は非常に厄介である。どいつもこいつも好き勝手に続編名をつけやがって法則性が無いからである。
Beyond DivinityはDivine Divinityの後にでたスピンオフであり、An Elder Scrolls Legend: BattlespireはThe Elder Scrolls 2: DaggerfallとThe Elder Scrolls 3: Morrowindの合間に出たスピンオフである。
この要件を満たさないと、膨大なゲームタイトルリストにおいて、このシリーズはどこまでやったのかといったことすら把握出来なくなる。自分の知らないタイトルにもなると、Blood Omen 2: Legacy of KainはLegacy of Kain: Soul Reaver 2とLegacy of Kain: Defianceの間に出たということや、Legacy of Kain: Defianceには3とか4とかナンバリングがついていないが1作目ではなくて4作目である、ということが分からないのである。
頼むからタイトルは統一してナンバリングを割り振って、好き勝手にやるのは副題だけにしてくれ。リブートの同名タイトルなんてもってのほかだ。

要件4を満たすと、次のようになる。

Descent: FreeSpace
FreeSpace 2
Divine Divinity
Beyond Divinity
The Elder Scrolls 2: Daggerfall
An Elder Scrolls Legend: Battlespire
The Elder Scrolls 3: Morrowind
Fable: The Lost Chapters
F.E.A.R.

要件5は、ここで言うところのFreeSpaceシリーズが該当する。FreeSpaceはFreeSpaceシリーズであり、Descentシリーズではない。Descentといえば3作出ていてパブリッシャも同一(Interplay)であるが、ディベロッパは異なりシリーズでもスピンオフでもない。販売的な側面から当時ヒットしていたDescentの名前を付けたのだろうか。Descent: FreeSpaceのパッケージを見ても、Descentの文字は非常に小さく、FreeSpaceは大きい。
したがって、FreeSpaceシリーズは、Dの行に位置するのではなくFの行に位置するのが自然である。

全ての要件を満たし最終的に次のように並んでいて欲しいところである。

Divine Divinity
Beyond Divinity

The Elder Scrolls 2: Daggerfall
An Elder Scrolls Legend: Battlespire
The Elder Scrolls 3: Morrowind

Fable: The Lost Chapters

F.E.A.R.

Descent: FreeSpace
FreeSpace 2

さて、要件4, 5を満たしたいところだが、当然スプレッドシート上には、シリーズに関する情報は無い。この世に存在する全ゲームタイトルのシリーズ情報をシートのどこかに用意することは到底無理だし、随時スクリプトプログラムによってWikipediaあたりの外部から情報を参照してくるにしても、フォーマットが揃っていないので機械的に判別することは不可能だろう。

ここで注目したいのは、この手の好き勝手につけられた続編タイトルの頻出の仕方は、単発的であるということである。
The Elder Scrolls 4: Oblivionをこのリストに追加するとき、要件1から3を満たしながらリストの上から順に挿入位置を探すと(このアルゴリズムをリニアサーチという)、An Elder Scrolls Legend: Battlespireの手前が挿入位置である示すだろう。そこで処理を打ち切るのが一般的な探索処理である。
単発性を考慮して探索処理を停止せず、次のタイトルを見てみると、The Elder Scrolls 3: Morrowindとなっており、まだその後ろに挿入できるということが分かるだろう。An Elder Scrolls Legend: Battlespireは単発であると判断できる。
さらにその後のFable: The Lost Chaptersよりは挿入位置が手前であり、さらにF.E.A.R.でも手前となる。単発的に挿入位置が手前であると判断されたわけではないので、この時点でMorrowindの後が適切な挿入位置であると判断することができる。
これにより、要件4, 5を限定的に満たすことが可能である。限定的であるのは、例えばBeyond Divinityがリストにない状態で、これを新規に追加挿入しようとしても、それはDivine Divinityの後ろには追加されないためである。この時は、Beyond Divinityとして追加挿入するのではなく、一旦Divinity, Beyondなどとして追加挿入してから元の名前にリネームを行う必要がある。

最も確実に要件4, 5を満たすには、ソートや検索処理にかけるため名前を別名で持たせることだろう。
イレギュラーな名前: Beyond DivinityにはDivine, Beyond、An Elder Scrolls Legend: BattlespireにはElder Scrolls 2.5という別名をどこかに書いておき、スクリプトプログラムではそちらを参照するようにするとよい。
ただし、この別名の追記は人力でやるしかない。膨大なリストにチマチマと調べて書き込んでいくのは必ずどこかに間違いが生じるし、何より面倒だ。一旦書いてしまえば後はそれほど大変ではないはずだが、スプレッドシートへの移行に際して面倒なことはやらないと決めたので今のところあまり乗り気ではない。

かくして、テキストからスプレッドシートに移行して、そのスクリプトを活用して色々便利になったのかなあ?

  • 所有ゲームを管理しやすくなる
  • 統計とグラフ化によって積みゲーの現状と問題が分かりやすくなり、積みゲーを崩したくなる(希望的観測)
  • Webに公開できるようになったので、こいつこんなに積みゲーしてやがるぞ、と第三者に思われるのだろうという意識から積みゲーを崩したくなる(希望的観測)
  • ゲームタイトル追加時の手間と間違いが減る
  • 今後何か便利機能を追加して、より便利に出来るかもしれない

デジタルダウンロード主流の積みゲーが蔓延化している現在、積みゲー崩し用のゲーム管理サービスサイトを出せると流行るのかも知れないが、私のようにものぐさな人間から、逆の几帳面にデータ管理してメタ情報つけまくりのが好みの人、ひたすら積みゲーを増やしてその数を見てニヤニヤする人まで幅広くニーズを満たすようなものはなかなか難しいだろう。少なくとも、アルファベット順にソートしただけのリストは駄目だというのは分かっていただけたと思う。主要ディストリビュータと提携して各所のライブラリと同期されつつも、ドマイナーゲームも問題無く扱えて、適当に管理できつつも痒いところに手が届くようなものをよろしく。

List of Games I own #1 A Spreadsheet and Graphs

年明けに意気込んで、所有しているPCゲームリストを作った。

随分昔のPCゲームを積み始めた頃からテキストベースで積みゲーを記録していたのだが、タイトル名以外の付加情報を書き足すと体裁がどうにもならないし、数が増えすぎていい加減管理が大変ということで、スプレッドシートに移行させた。
以前から何度か、エクセルのシートあたりに移してみたりはしていたのだが、テキストでのタイトルを追加するためにエンターキー押してゲームタイトルを打ち込むだけの操作から、行を追加してセルを選択してタイプしてと、かえって手間が増えていたので、やっぱりテキストのままでいいやとなっていた。

今回スプレッドシートに移行させるにあたって、Developer名、ゲームジャンルやプレイ時間、クリアするまでに要しそうな時間といった、一見便利そうだが実は何にも有効にならない付加情報や、見積もりに精度の高さを求めるような情報を書くようにすると、また面倒でテキストに戻りたくなるはずなので、面倒臭いことはやらないと決めてやることにした。
結局、残った記入項目は、ゲームタイトル、プレイ状況(Progress)、入手元(Distribution)、メモとなった。

プレイ状況の指定は、アバウトに8段階から選ぶようになった。最初にこうしよう、と決めたのではなく、あの項目が足りない、この項目は余計という具合に作る過程で決まっていったものである。どうせ最初に決めたものは早々に破綻するものだ。

Stacked 全くやってない/起動確認くらい
Early 序盤まで/さわりだけやった
Middle 中盤まで/それなりにやった
Late 終盤まで/かなりやった
Shit クソなのでもうやりたくない
Enough 終わりがない/終わってないがもう十分満足
Extra メインコンテンツをクリアしているが、拡張コンテンツがまだ
Clear クリアした

 

当初は積みゲーだけをスプレッドシート化しておくつもりだったのだが、これまでのテキストベースの積みゲーリストから書き漏らしているタイトルは間違いなくあるはずなので…というか、クソゲーにぶちあったときに「こんなの二度とやるか!」と、勢いでアンインストールしつつリストから削除したこともあるので、今一度自分が所有しているゲーム全てを棚卸しして記すことにした。案の定、SteamのLibraryをチマチマと確認しているときに、やり始めたことを後悔したが。

そんなこんなで、数日かけて全ての所有PCゲームを網羅しなおしたつもりだが、スプレッドシートの恩恵として統計情報を取ることが出来る。スプレッドシートは方眼紙ではない。
データは結構頻繁に弄っているので、最新のデータは掲載ページにあるとして、以下は2016年1月14日現在のグラフである。

Progress:

games_progress

完全な触ってもいない積みゲーは8割くらいになると思っていたのだが、意外とそうでもなかった。下四つの要素を崩したと解釈するのであれば、やりかけを含む積みゲー率も78.5%と、辛うじて8割を下回っている。
やりかけで放置している割合を見ると、序盤でほったらかしている割合が高い。感覚的には当たり前であるが、データとしてみると説得力がある。ゲームを始めたら一気にクリアまでやった方が積まなさそうだということが分かる。セールで沢山買ったからといってつまみ食いをするのは良くないのだろう。

Distribution:

games_distribution

同じタイトルでも、複数の場所や媒体で所有していたりするが、ここでは上に書かれている順を優先(例外ケースあり)として重複を除いたものである。特にSteam, GOGは余所で買っても登録出来ることが多いし、物理的なディスクはしばしばデジタル販売で買い直していることが多い。
そして、やはりSteamが圧倒的に多い。GOGも値段が安いので買いすぎてしまうようで、意外に割合は高かった。ディストリビュータ別のゲームクリア率が分かると、面白くも苦い傾向がありそうだが、それはまた追々やってみる予定である。

つづく。