ゲームばっかりな日記だったやつ

半分跡地みたいなもの。書くネタは無い。

なんか無駄なことしてた

RAMが不足だと思ったら不足じゃなかったお話

 どうせハイエンドな3Dゲームなどまずやらないし、メモリ24GB(でもPC3-12800と10600混合とかいうアレ)で十分と思い仮想メモリを無効にしていたのだが、某ゲームやってるとリソースモニタで「変更済み」が異様に増えて行っておかしいなぁとは思っていた。しかし、大して調べもせず「そういうものなのかもしれない」などと半ば諦念により放置していた。

 で、調べてみたら案外良い解決策が見つかるもので、

こんな記事に行き着いた。

 結論から言えば、「OS自体に、仮想メモリ前提に作られている部分がある(記述時点では仮説)ので、無効にしたら”存在しない書き出し先を待ち続ける”とかいう変な状態になってハマるのではないか」ということらしい。

 SATA3・128GBくらいの安いSSDが幸い余っていたので、試しに専用ドライブとして8GBほど仮想メモリを設定してみた。すると、みるみる面白いように「変更済み」が減っていき、遂には100MB程度までスリムになってしまった。一部始終をリアルタイムで見ることができたので、絵的ににゅるにゅるしてて面白かった。

 なんだ、こんな簡単なことだったのか・・・と拍子抜けするととも、昨日注文してしまった16GB分のメモリどうしましょうかね。PC3-12800で4枚統一できるし、他のゲームと同時起動やら動画再生同時進行やら結構ガンガン使うので、有るに越したことは無いのだが、どう考えても二倍近くのオーバースペックだ。割とバス自体が遅いけど。

記法なんぞ完全に忘れた

ひょんなことから、当時より我が家に安置されていたドラクエのピアノアレンジ楽譜を手に取ったところ、製品版では在り得ない変な写真を二つほど見つけたので、はてな記法すら忘れた中、思い出しながら記事を更新してみようと思いますよ。(記事完成からの、手違いによる全消失から二度目の記事編集というGABAつき)





まずは重要性がまるで無いほうの画像から。勇者以外の名前は固定のはずだが、勇者以外しか居ないにも関わらず全員の名前が変更されているというヘンテコな画像。
仲間の職業、さくせん名が確認できることから5章のものと思われるが、5章で合体スライムって出てきたっけ?


この画像の場合、撮影用に意図したデータを手入力したか、単に開発中で何も決まっていなかった中かはわからないが、要は恣意的な、ともするとダミーのデータでしか無い。
そのため、別に仕様変更とかそういうこととは恐らく関係が無く、そういった意味ではまるで重要性の無い画像とも言える。何となく面白かったのでピックアップせざるを得なかったというだけです。許して。
(勇者以外の名前変更システムが想定されていた可能性もゼロではないが、カタカナが入っているので多分それすらも関係が無い)






問題はこっち。「バランス調整や、マップデータ圧縮の都合で変更されただけでしょ?」と言われるとそれで終わりではあるのだが、気になってしょうがない(面白い)ので取り上げざるを得なかった。
推測ではあるが、「恐らく」ハーゴンの神殿周辺の画像だと思われる。「海岸線(川か湖の類だが)が北西側」「水路の向こう側に陸地」「砂地や東側の森の配置」など全てと合致する他の「城シンボル」が見当たらないからだ。
とはいえ、ハーゴンの神殿にも「南が岩山で塞がれている」「毒の沼地が在る」「水路の対岸が森でなく岩山」「雪原化の処理が行われていない」など齟齬もあるが、陸地の形や神殿周辺のマップ配置などが酷似しているので「恐らく」そうでしょう。だとすれば、当初は東側の半迷路からしか侵入できなかったようだ。


この楽譜、ドラクエ1・2・3が一堂に会しピアノアレンジされたという趣旨のもので、つまりドラクエ3が発売された後のもの。どころか、ラストページの発行情報によれば 91年9月30日 とあるので、4すらも大分前に発売していることになる。もっと言えば、一つ目のキングスライム画像が、この楽譜シリーズの二作目「ドラゴンクエスト ピアノ・ソロ・アルバム2」という書名であり、一作目と同日に発行されたことになっている。
発売から4年も経っているのに、なぜ製品版でなく開発中の画像を資料として提供したのだろうか。どういう提供体制だったのか気になる(純粋に興味がある)。

  • 思い出したので確認したところ、2008/03/13の記事「飽きずに - ゲームばっかりな日記だったやつ」にて触れた画像の一つと同一ソースだったようだ。(画像置き場がサービス終了したのでリンク切れ、移行できてるけど面倒なので、多分直しません)
  • 直さない、で終わりだとあんまりなので、参考のために貼っておきます。

    • 開発中に変更されたと思われる地形画像


    • 前者二つの、製品版での同位置における地形画像

つまり、サントラレコードのジャケットに提供された画像と同一と思われるものであり、提供画像リストの中にあった画像から適当に拾っただけだと思われる。



最近よくRTAを観ている(自分ではやらない)ので、これが変更されなければルートが違ったのかもしれないと思い、少しだけ衝撃を受けたというお話。まあ、製品版で北西を回り込んで南下できたところで、どうせ森ばかり歩くことになるので、少しの歩数差が出る程度のものだとは思うが・・・。

なんか一本化されるようなので

ダイアリー より移行中

ダイアリーが終わってブログに一本化されるみたいなので移行作業中。だからといって別になにもしないので、果たして作業する意味があるのかは非常に怪しい。

同時に、ダイアリーに直リン貼って使ってた他のホームページサービスも新サービスに移行しドメイン等が変わってしまったので、貼っていたものが全てリンク切れになってしまっている。が、面倒くさいので弄りたくないという理由から完全に放置中。

別に誰に向けたわけでもなし、「もし使う人がいたらどうぞ」程度に公開してるだけなので、まあ誰も見てないだろうし良いよね。積極的に逃げていくスタイル。消極的とも言う。はてなフォトとかの分はリンク切れしてないだろうし、たぶん大丈夫でしょう。たぶん。たぶん。

そしてまた数年の沈黙を予定。別段語るようなことしてないし、何か言いたくなるとしても大体ゲームの話だし、つぶやき程度のものだから結局ついったーとかで十分だし、それだって別に誰も見てないだろうし、あえて見せるために言ってるわけでもないし。シルバー事件でマスターが言ってたアレみたいな感じのアレ。アレ。

そんなにマイナーゲーやらないから唯一性も殆ど無いし、トロフィーコンプみたいなことやるとむしろ自分が攻略を利用したりする程度なので、あえてここで自分から発信するような話も無いでしょう。

使いにくいというか、意図した通りの見え方をしない

まあ多少はしょうがない。

具体的には、改行した時に行頭スペースが入らないだとか、改行した時の行間スペースが均一すぎて密集してしまい、行間を作りたい場合は二度改行しないとそれっぽくならないだとか。

テーマもいくつか見てみたのだけど、ダイアリーで使ってたのと同じテーマは無いだろうし、行頭にスペース入るやつ見つけたと思ったら一段落目だけだったりとか、サンプルは改行入ってるのに、その画像では手動でスペース入れてるだけっぽいとか。慣れないからか、よく分からん挙動で少し戸惑う。

この調子だと、ダイアリーからインポートした過去記事が全て崩れてて見にくくなってしまう。多分どうしようも無いだろうけど、少し考えてみよう。考えた結果どうしようもなくて放置するまで見える。

風化

ずっと気になりつつ、断片的にしか読んでいなかったデビルマン(当然漫画)を、ようやくまともに通しで読んでみた。
感想といえば、有体に言ってしまえば「面白かった」で終わってしまうのだけど(評価について加味した上で選んだ言葉がこれ)、それよりも感じたことがあって書きたくなったので、たまにはここに書いておこうという趣旨でございます。
この時代以前の創作物は、webで引用されたコマやストーリー解説など、あるいは通しで読んだ小説などで時折触れていたので、別段カルチャーショックというほどの衝撃は受けなかったのだが、最も語られるであろう点「過激・残虐描写」について、あるいはそれに誘発されて関連した考え事をするくらいには印象が残った。
まずそれについて、結果的に出てきた言葉が「現代の少年漫画家は大変そう」という少しズレたものだった。少なくとも少年漫画として考えた場合、現代にこの内容・描写を新作として描くことはかなり難しいだろうからで、しかも過激・残虐描写が目的の過激・残虐描写というわけではないので(あえて選んでるだろうとは思うが)、そういった読者に対し印象をつける、背景を刷り込むなどといった効果を生むものとしてインパクトの強い表現を使うことが、現代はなかなかできないというか、手段が限られる訳である。
そういった表現を具体的に見ていくと、「今はタブーとされている」が「当時は(渋い顔こそされ)当然のように使っていた」という言葉が目に付いたりする。序盤の口喧嘩が、一応日常の場面であるので特に印象に強く残る。
それだけでなく、戦争の話など当時は嫌でも体験者から触れることが多かっただろうことは想像に難くなく、「人類が強大な敵を目の当たりにした時、自然に取りうる選択・行動」ということをイメージすれば、恐らく70年代と現代の人々とでは、乖離とは言わないまでも、大分趣向の違うことをイメージするだろうと思う。
現代だと、普通は恐らく、希望を残そうとしたがる向きが強いだろうし、何だかんだで人間社会的な所謂「高度」な社会構造、コミュニケーションの中に組み込まれ、気づいたら敵対しつつも長期間共存しているといった方向に思い至るのではないかと思う。まあ、ここ数年は漫画というと東京喰種やらハンターやらといった辺りをよく読んでいたので、そんな感じがしてしまうだけなのかもしれないが。
つまり魔女狩りだとか、敵を目の前にした時に軍事的に傾倒し、それらを人民みなが疑問を抱かず、あるいは抱いても反対もできず隠れ、歯止めが利かずエスカレートしていくとかいう発想が、ここまで自然と現代の人から出てくるのだろうか。当然出る人も中には居るだろうとは思うが、当時と比べると大分少ないのではないか、という話なわけです。しかもあんなに生々しい描き方で。
こういうことを考えていた結果、子供のころなんかは「そこまで悲惨で衝撃的なことが起きていたのだから、流石に時代が流れても何とかして残るんじゃないの」と朧気ながら呑気に感じていたのだけど、それから30年も経ってみるとやはり「風化って言われてもピンと来なかったけど、本当にするんだな」という感覚のほうが強くなってきた。だって、露骨に先の戦争をモチーフにした描写をされても、よく考えないとピンとこないんだもの。
まあ時代なんてこんなものとして、その上で伝え残すことを考えるべきなのか、日々暮らしているだけでは気づかない変化にもう少し危機感をもつべきなのか。どうするべきなのかは分からないが、時というのは確実に変化を起こすものだと再認識し、確かにそこにあるのに想像以上に遠大で膨大で且つ長大な、手が届かないものの存在を感じ取り、畏れとも恐れともつかない奇妙な気分になったのでした。おわり。

三度目の何とか

結局、Clicker Heroes用のExcelシートをまた改造したので、3つ目のバージョンも置いておきます。VBAマクロ入り。

前回の「入れてもよかった」要素は大体全部入ってます。Ancients部分がシミュレーターっぽくなった。

    • click/idleが入れ替わる右上ボタンは、クリックダメージ関連の「Juggernaut、BhaalとFragsworth」、idle時ブーストの「LibertasとSiyalatas」のどちらの上昇効率に注目するかを選ぶボタン。
      • 選ばれてないほうの上昇効率が0扱いになり、条件付書式のグラデーション塗りつぶしの対象から外れるようになっている。
    • Ancientsのレベル左の青ボタンでレベルダウン、右の赤ボタンでレベルアップ。レベルに応じたHSが減る処理も同時に行う。
    • 「上げるLv」の横のセルは、上記Ancientsレベル昇降ボタン一回で上がる幅、および表の効率計算自体がそのLv分纏めた数字になる。直接入力。沢山上げたいときの効率化目的。
      • 下に殆ど同じ表がもう一つ表示されているが、これは上記「上げるLv」の数字Lvを上げた“後”に、さらに1レベル上げたときの効率の±を確認するための表。
      • ボタンを押す前に「プラス効率の範囲を通り過ぎてしまわないか」を確認する目的で設置。「上げるLv」が1なら見る必要が無いもの。

あと・・・ゴールド上昇のAncientsは、全て「乗算」として計算しているので、もし同種のゴールド%上昇値が加算だとしたらズレます。
ついでに、宝箱のゴールド上昇については、出現率ブーストのAncient MAXが前提の数字。とはいえ、十分に上がったら切片が無視できるレベルなので、その前提MAXがあるか無いかの差は、単に宝箱出現率の上昇率を掛けるか掛けないかだけと考えて問題ないはずなので、効率にはあまり影響が無い。多分。
多分もうおわり。



6/28追記:たぶんGoldあたりのDPSとか計算しないと、Goldによる効率はマトモに計算できないのだけど、同じDPS効率のキャラが二体いたらGold二倍で火力二倍だし、とりあえず単純な乗算=比例でいいや、みたいな割と適当な感じで作ってました。
今計算してみたら、

    • Goldは 1.07^Lv の指数項をもつ式
    • DPSは 4^(Lv/25)*2.5^(Lv/1000) の指数項をもつ式

であるので、全て「Lv乗」の項として表すことができる(もちろん極限をとった場合)。つまり、DPSの指数項がGoldのもつ指数項の何乗かをLogにより求めれば、DPS効率をGの式で表すことができるはずである。
これによると、 a*G^(0.83) 程度の乗数項を含むようなので(極限をとる場合)、これで計算しないと単純な効率比較にはならない。
このGの部分の上昇率がxとすれば、つまり x^(0.83) 程度の値が、ゴールド上昇率あたりのDPS上昇率だと考えられる。
ファイルを差し替えました。もし気づいた点があって直すことがあれば、同様にバージョンアップするかもしれません。使う人は居ないかもしれませんが、万一使う人があればその点ご注意ください。)

Ancientsも弄ってみる

またClicker Heroes。昨日の駄目なところを修繕とかそれ以前に、自分が欲しいので作らざるを得なくなった。せっかく作ったので、また置いておきます。

昨日の表を扱った後に、Ancientsのことをすっかり忘れていた事に気づき、適当に考えてみたら「条件さえ固定してしまえば結構楽」ということが判ってきたので、ちょっと改造してみた。
とりあえず、火力に関係かつLv上限無限のものをピックアップし、各々スキル等の条件をつけた上で「HS減少分も割合減させて損か得か」を表示するようにしてみた。
右の小さい表がAncients関係。HSセルの右に所持個数、その下のLv列に、AncientsのLvを入力。他を弄ってはいけない。

      • 注意点
        • クリックダメージ関連の「Bhaal」「Fragsworth」は、スキルショートカット3、7を発動している前提での計算。かつ、自動でダメージを与えるDPSは無視した上でのコスト効率計算。
        • (クリック速度によって DPS/ClickDamage 比が変わってしまうので、合算DPS期待値を一般化できない or 煩雑な表になってしまい作者の頭がバグる)
        • 「Argaiv」は、左の表に対しては、効果通りに加算・乗算している。
        • しかし右の表のUp効率については、「Gildが十分高く、素の100%を無視できる程度」の場合の上昇率で、漸近線的なものと考えられたし。

右の表において、HSの所持数、Ancientsのレベルを適切に入力すれば、上記の条件つきの、Ancients LvupによるDPS上昇率・HS一個消費ごとの平均倍率が表示される(消費HSが5なら、上昇率の5乗根)。のはず。きっと。



(追記)ちなみに、クリックダメージの「BhaalとFragsworth」、idle時ブーストの「LibertasとSiyalatas」について。
同じ表で同じように上昇率を並べているものの、上記のように「合算DPS期待値を一般化できない」ので、それぞれDPSが独立しているような状態です。ので、比較できません。
余程火力が上がりきった後なら判りませんが、当面はクリックか放置かにAncientsを特化して、どちらか二つだけにしか振らないほうが良いと思います。
(この四つから選ぶなら、の話。他の一般的な、特にLv上限があるブーストAncientなら、併設でも問題ないはず)



あと、クリックコンボについては、まずコンボがどこまで続くか、その時の状態によって変化する幅が大きすぎる等、不確定要素が大きすぎる。なので、期待値としてあまりに不安定になることを懸念して、除外しています。
コストが指数だが、とりあえずコンボ期待値が存在し得るとすれば、使う前も後もそれは同じはずなので、DPSは比例となる。こう考えると案外簡単なので、入れても良かったかもしれない。



(結局改造したので、次の記事に続く)

Clicker Heroesの話

最近Clicker Heroesにハマってしまい、PCが占有されてしまって困ってるのだが、とりあえず効率面で色々考えていたので、せっかくだから書いてみようというお話。
まず、costは「1.07^Lv」の指数関数らしい。それを元に、誰か任意のヒーローを基準としLvを設定、それと同じcostになるはずのレベルを全キャラにおいて算出する。そのレベル差によって想定されるDPS期待値を算出すれば、“一応”のキャラ差が導かれるはずである、というのが最初の話。

レベル

具体的な算出方法は、Excel関数でいうと、基準キャラのLvをL、基準キャラの基準コストをC、計算したいキャラのレベルをl、基準コストをcとすると、

    • l=L-LOG(c/C,1.07)

とするだけの簡単なもの。小数点以下も出るが、むしろこのままのほうが「期待値」としては正しい。

DPS

次に、Lvが十分に高い(最低でも1000以上)と仮定すると、「期待値」に限定した話をすれば、最終的に考慮されるべきである(Lv200以降の)大きい数字、かつLvを変数として必要とする値といえば、「25レベルごとに4倍」「1000ごとに10倍」である。
これの期待値は、いわずもがな、「4の25乗根」と「2.5の1000乗根」(1000ごとに10倍は、前者の4倍も含まれているため、それに2.5倍するということ)を「レベル差」乗すれば扱える。「4^(Lv差/25)」とかそんな感じ。
それにアップグレード(+100%が2つある場合は2倍×2倍、つまり掛け算)の値を全て掛けておくと、晴れてDPSの比を求めることができる。
Frostleaf以前に限定、Frostleafを基準(比1.0)にした場合、

    • Frostleaf 1.00
    • Masked Samurai 0.99
    • Brittany 0.91
    • Ivan 0.86
    • Seer 0.85

ここらへんが上位キャラとして挙げられることになる。
実効値を求めたい場合は、(1+gild回数×0.5)を掛けましょう。
ちなみに、Terra以降は倍々で効率が上がっていくので、そこに辿り着くまでのDPSを考える上で重要になるだけです。最後はAstraea(Frostの221倍)一本で良いんじゃないかな。たぶん。まだそこまでいってないけど。

問題点

これではい終わり、最高のやつにgild集中させて、そいつだけ振れば良いや、めでたしめでたし。というわけにはいかず。
やっていると分かるとは思うし当然のことではあるが、「1000の倍数Lv直前」の効率が非常に悪く、そして当然「1000の倍数Lv直後」の効率が非常に良い
これ、どこまでいっても「壁に当たって強化できるまで待つ」という図式・かかる時間は変わらない。だって同じ式の指数関数が続いてるだけだから。(要DRコンボ)
ということは、十分強くなれば特定キャラ一本だけで良い、と高をくくってしまうと、前述「1000の倍数レベル直前」の問題で頓挫してしまう可能性が非常に高い。
これを解決するためには、「複数キャラを同時に上げる」というリスクの分散方法が有効だと自分は考えている。
例えばSamuraiとFrostleafだけ上げているとすると、こいつらの同コスト時のレベル差はおよそ760程度であり、

    • 「Samuraiが1000の倍数に達してからFrostが1000の倍数に達するまでに760レベルもの開きがある」

というのが案外重くのしかかってくる。つまり、この間に1000の倍数レベルに達するようなキャラを同時に上げていくことで、押しなべて平均的な、なだらかな成長曲線を作り出せるということである。
ただ、先述のキャラDPS効率比の問題があるので、最大効率キャラの1割〜2割程度しか差が無いキャラを5体程度同時に上げるのが、個人的には良いのではないかと考えている。
しかし、この2キャラの間には、そこまで優秀なキャラが居ない。それでも平均的に上げたほうが詰まり難く良いと思うので、元々強めのキャラを5体程度選び、gild回数でDPS比を整えるのが良いのかもしれない。Ma ZhuとかAphroditeとかNataliaとかそこらへん。(追記:3〜4体程度でも良いかも。1000の倍数の2.5倍効果は、500経っても√で1.6倍程度残っているので)
あと、Frostが1000の倍数になってからSamuraiがなるまでの補数的な部分も、IvanかTreeあたりで補強できると安定するだろう。Brittanyでもいいけど、Samuraiと近すぎるのが少し気にかかる。

追記:冷静に考えたら、コストが分散した体数倍になるのを忘れていた。ので、その分損らしい。(ただし、Gildが分散する数を割った上での話なので、殆どGildしてない時、あるいは振りなおすほどHSに余裕が無い場合は、分散するGild数に比例して損も殆ど無い。故に、その場合に限り、上記打消し線の文章通りで問題ない。)
もし二体にして、双方のDPS期待値が同じだとする。そして同じコストのとき500Lv差だとすると、1000の倍数を越えるかどうかで火力が「√2.5≒1.6倍」程度だと考えられる。
片方が1000の倍数+500Lvから次までの間で効率が悪い区間だとして、そちらを基準にすると (1+1.6)/2 でトータル約1.3倍の火力上昇、だがコストが2体で2倍になっているので、2で割って0.65倍。
もしもう片方、1000の倍数から+500までの、補う側を基準にするなら、むしろ火力が1.3倍の逆数になる。その半分だと0.4倍以下。
1体だとしたら1倍。おわり。)

おまけ風

Excel2007で作ったもの。以下使い方。

    • 入力が必要な場所
      • gilded列全部(0の場合は空欄でも良い)
      • 基準:○○ となっている青塗りつぶしセル
        • ドロップダウンメニューで選べるようになっているので、それ使ってね。これで選んだキャラが基準の表に、瞬時に変わります。
        • cid選べるようになってるけど、選ぶとエラー表示のセルだらけになると思うので選んでも意味は無い。名前の管理から直せる。
      • Lv:○○ となっている青塗りつぶしセル
        • こっちは直接入力。「Lv:」は入れず、数字だけ入力。書式設定で「Lv:」を見かけ上挿入しているだけです。
    • 入れなくても良いもの
    • (正しいDPSが必要なく、比だけを求めれば良いなら、1とか適当に入れれば良い)
      • 左下にある「実績」「Hero Souls」「DR」
        • ゲーム内ステータスタブから調べて、正しい値を入力すれば、正しいDPSが算出されるようになっています。1/1000程度の誤差が出る可能性はあり。
        • 実績は、ゲーム内ステータスタブ「Total DPS% from Achievements」の%に100%を足して、100で割った「比」で入力。
        • Hero Soulsは、「1+(Hero Souls所持数×0.1)」
        • DRは、本当は「Energizeで使った回数」「素で使った回数」を入力させるべきだが、面倒くさいので直接入力して使ってしまっていた結果がこれ。
        • (Energize状態で使った回数)^1.1 × (素の状態で使った回数)^1.05 を入力すると良い。逆だった。判るよね?(投げやり)
        • 1.1^(Energizeで使った回数) × 1.05^(素で使った回数)

おわり。
(一応追記:Ancients等、私がまだそこまで行ってない故に、盛り込まれてない要素があります。特にGildのブースト等は、私のExcelシートの計算に若干影響がありますので、以上を序盤の指標程度に捉えるか、シートを改造するなりしてください。)
(更に追記:次の記事で、結局Ancientsも扱うハメになった。条件つきの効率計算なので、万人に合致する計算結果を得られるかは知らない。)