テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

児童虐待に心を痛めている

headlines.yahoo.co.jp

東京・目黒区で、5歳の女の子が虐待死し、両親が逮捕された事件で、女の子が「ゆるしてください」などと書いたノートが見つかっていたことがわかった。

今朝のニュースだが, 虐待されていた幼児が虐待されているにも関わらず健気にも自分が悪いと信じていたという痛ましいものだ. このニュースを見て涙を流せない人間は人の心が壊れている. こんなニュース, 平常心で報道出来たらむしろおかしい.

このニュースからおれが思い出したニュースがこれだ.

www.sankei.com

長男は食事も満足に与えられず、冷凍食品を解凍せずにそのまま食べるなど必死に生きようとしていた。

知人女性は「どうしてパパとママがいるときに、おなかが空いたと言えないの?」とたずねると、長男は「怒られるから」とつぶやいたという。

どちらのケースとも, 子供は親に虐待されながらも親のことを信じているということが共通している. どうしてこんなことが出来るのか信じられない.

まぶにゃんのスポンサーを打ち切った

まぶにゃんというYoutuberがいる.

早速だがまぶにゃんの面白さはこの動画を見ればわかるだろう. わかる人にはわかるがわからない人には一生わからないという方が正確かもしれない.

www.youtube.com

元BFプレイヤーで今はFortniteを中心にプレイして配信している. BF時代の戦績については以下が詳しい.

MAVnyanニコ生チャンネル-ニコニコミュニティ

高卒の現在26歳で, 越谷の実家住まい. まともな定職にはついたことがなく, 本人曰く社会に嵌められたとのこと. 本人曰く, 早生まれのせいで成長がみんなより遅れてしまい, 最初のつまづきをリカバリすることが出来なくなった結果, このような人生になってしまったとのこと. 早生まれの人間の自殺率の高さなどを根拠にして, 早生まれに自分の人生の責任を負わせている. Youtuberとしての収益が自立出来るレベルには高くないため今はまだ実家住まいをしており, 隣の部屋とはスライド式の薄いドアで仕切られただけの狭い自室を与えられ, そこで主に夜間に配信をしている. なぜ夜間かというとゴールデンタイムには家族との団欒をする必要があり, 夜間しかまとまった時間がないからだと言っている. 昼夜逆転によって一時は自律神経が壊れ, 味覚障害を起こした. その配信には毎日200-300くらいの通称まぶキッズが集まり, 彼がFortniteを始める際には「まぶ様ご武運を」とコメントするのが慣習となっている. また「もだめ」「しょうもな」など決まりゼリフがあり, 確かなプレイスキルもあって, キッズをひきつけている.

おれもまぶキッズの一人だ. おれは夜間の配信には健康上の理由で参加しないが, アーカイブを毎日楽しみにしている. 特に楽しみなのがゲームプレイのあとに2時間ほど行われる通称「お手雑」だ. お手雑は「お手々雑談」の略で, その名のとおりまぶにゃんの手がカメラに映りながらしょうもない駄菓子をつまみにビールを飲みながら雑談をするというものだ. その話題は流れの中で決まることが多いが, どの話題についてもまぶにゃん独自の着眼点を持って話が展開されるため, 京大院卒のおれにとっても聴き応えのあるものとなることが多い.

さて, Youtubeにはスポンサー機能というものがある. これは応援料として毎日500円を配信者に支払うものである. その対価としてしょうもないスタンプが使えるようになったり, コメントで強調されたりするが, ライブに参加していないおれにとっては何の魅力もない. しかしおれはまぶにゃんのお手雑を楽しんでいるし, なにより彼が自立してまともな時間に配信が出来る手助けになれば良いと思ってスポンサーとなった.

しかし今朝, 残念ながらスポンサーを打ち切った. 理由はお手雑をしなくなったからだ. Twitterで再三に渡ってお手雑をしなければ見限るという通告をしたにも関わらず, 意図的に無視し続けたため, 勢い的に切る他なくなった.

f:id:akiradeveloper529:20180608000349p:plain

なぜこのような記事にしようかと思ったかというと, おれが今まぶにゃんにしてあげられることはブログでまぶにゃんの紹介をして, 新しいファン獲得に繋げることしかないからだ. おれはもうまぶにゃんは見限ったけど, おれの読者の中からまぶにゃんのファンが生まれることを願っている.

PSAメソッドは中距離かつ手首だけでやるべき

先日紹介したn0thingのエイム理論

n0thingによるエイム理論 - テストステ論

によると, エイムにおいては精度の高い手首エイムが主役であり, センシ合わせは手首エイムによって狙った点を快適にフリック出来るかで行うということであった. この手首エイムを基準に決定したセンシに対して, 手首エイムの可動域の狭さを拡張する補助的存在でしかない腕エイムは, 慣れによって追従するというものであった. これは, 腕エイムはたかだか空間をエイムするものでしかないから, 仮に腕エイムにとってベストでないセンシであっても, 慣れで追従出来るレベルであることを拠り所とする. 一方で精度の高い調整を責務とする手首エイムには, 慣れだけでなくそもそもその人固有の感覚とマッチしてるかが求められる.

的との距離とエイム法の話をする.

www.youtube.com

この動画で述べられていることは,

  • 近距離では腕エイムを使う
  • 中距離では手首エイムを使う

ということであり, これは近距離では画面上での距離が大きくなるから, 腕エイムをしないと間に合わない場合が多いという単なる物理的な要請によるものだが, より頻度が高く, 当てにくいのは中距離の方なのだからここで手首エイムを使うことには合理性がある.

さて, 以上のエイム理論をもとにして以下の動画を否定する.

www.youtube.com

この動画で述べられていることは, 「PSAメソッドを行う時には近距離にして腕エイムをして快適か, 中距離にして手首エイムをして快適か」の両方の快適さによってセンシを絞り込んでいくということであるが, そのようなセンシは存在し得ない. 手首エイムを基準としたセンシを決めるのが手の大きさ, 腕エイムについては腕の長さだとして, ある異なるプレイヤーA,Bの手の大きさが同じ時に, 腕の長さが同じでは一般にないからである.

ではどうすればよいかというと, PSAメソッドを行う時もn0thingの理論に従い, 中距離の手首エイムだけで行うべきである. 手首エイムを基準してPSAメソッドによって導かれたセンシは理論的にはフリックにおいても最適であるから, n0thingのフリックによる調整法とも矛盾しない.

まとめ

  • 中距離で手首エイムだけで揺れろ. クロスヘアがもっとも安定するセンシが最強のセンシだ

n0thingによるエイム理論

おれが不思議に思ってることとして, おれがPSAメソッドによって良いと判断出来るのは880edpiかちょい下で, 本当にクロスヘアを静止させることが出来るのだが, 実際にこのセンシでやると弱いということがある. ピストルが特に弱く, アサルトでもローセンシなのに振りすぎになってしまうことも多い. 一発外したあとの打ち直しも弱い. 一言でいうと, エイムがレイジーになってしまう. これは800edpiに下げるとより顕著になる. しかし880edpiでは安定してボットの頭を撃ち続けることが出来る.

f:id:akiradeveloper529:20180527230339j:plain

一方で経験的に強いと言えるのは1000edpiかちょい下あたりのレンジで, エイムがシャープで狙ったところにクロスヘアを瞬時に移動出来るという感じがする. 1000edpiでは107KPMまでは出したことがあるが, 安定して頭を撃ち続けられるのは880edpiだと感じている.

このわけのわからない一見矛盾した現象に対してどう説明をつけるかが最近の課題だった.

www.youtube.com

この動画では, n0thingがエイム方法とセンシ調整について説明してる. 要旨を箇条書きする. 英語の聞き取りが間違ってるところもあるが概ねは合ってると思う.

  • 手首エイムの方が精度がいい. より小さいからコントロールが効く
  • 腕エイムとのハイブリッドは, 手首エイムの可動域を拡張するためのものにすぎない
  • 腕エイムは空間にエイムするもの. 手首エイムで調整
  • 手首エイムのトレーニングは手首の可動域内でのフリック
  • 腕エイムのトレーニングはより長いレンジの振り向きを何度も繰り返す
  • 腕・手首・Movementのすべてを組み合わせる練習もする
  • 左から右に振るより右から左に振る方が精度がいい. だからプリファイアは右に合わせる. 左から敵が出てきても対応出来るため
  • センシは手首エイムで壁打ちして決める. 400dpiの3では自分には高い. 自分の手首はもっと動きたがっている. と言った感じで決める
  • n0thingはOnlineでは1.8を使っている. LANでは1.7か1.65. 力が入ってしまうため

一言でいうと, n0thingは手首エイムをエイムにおける主人公だと考えていて, 手首エイムではすべてをカバー出来ないから仕方なく腕エイムとのハイブリッドをしている.

では元の話に戻ってなぜおれが880edpiで弱いかを考えると, これはPSAで腕を使ってしまっているからだと考えられる. PSAは手首に限定すべきだ. あくまでも手首にとって最適化されたセンシを選び, そのセンシで腕エイムを行う. 腕エイムを考慮してセンシを合わせてはいけないのだ. こう考えると, センシを上げた時にクロスヘアのコントロールがしやすく感じるのは, 細かく狙う時に自分が使ってる手首にとって適切なセンシだからだと納得出来る.

ここからはおれの考察になるが, ではなぜn0thingは680edpiという振り向き30cmの超ローセンシにも関わらず動画に見られるような大きな範囲の手首エイムが出来るのか?これを決めるのは「手首からマウスポインタへの距離(手の大きさやマウスの持ち方に依存)」「手首の柔軟性」の2つだと考えられる. 一般的には欧米人の方がアジア人より手が大きいため, これがアジア人の方がセンシが高い理由だと考えられる.

では, 手が小さいとハイセンシにならざるを得ず, 精度の良いエイムは出来ず, アジア人は欧米人に比べてFPSが弱いのかというとそれは成り立たないと思っている. まず, 手が小さければそれなりに精度も良くなる(手首の方が腕より精度が良いのと同じ理屈). 次に, 腕エイムをハイセンシで出来るため, これ自体は有利だから.

まとめると,

  • 手首エイムがエイムの主人公だ
  • 手首エイムでセンシを決めよう. フリックして心地よく狙えるか
  • 手首エイムの距離を補うために腕エイムをする. 腕エイムでざっくり, 手首エイムで微調整

おれはしばらく960edpiでやってみる.

おれがArtisanマウスパッドを二度と買わない理由

今おれが使ってるマウスパッドはG-SRです. 今後もG-SRを使っていこうと思います.

Artisanは以下の製品を買いました. (時系列順)

  • 零MID (KUN推奨)
  • 飛燕MID
  • 疾風MID
  • 疾風乙FX MID
  • 零FX MID
  • 零FX XSOFT

トータルで2万円は行ってるはずです. どれだけArtisanに期待していたかが分かると思います. しかしここまで来て, Artisanのマウスパッドは二度と買わないと決めました.

Artisanのマウスパッドの特徴はどれも良く滑ることです. そしてその割には止まることです. 滑るということはマウスの動きを邪魔されないということであり, ローセンシでは特に必要な特性です. この点で一番バランスが良いのは零シリーズだと思います. 実際にSZ.AbsのLazさんは零FX SOFTを使っていますし, 解説で有名なmemeloffさんも零FX XSOFTを使っています. 有名配信者のKUNさんも零MIDを推奨している動画があります. 他のマウスパッドは少なくともデフォルトのソールを使う限りはCSGOで求められるレベルの止めを行うことは出来ませんでした. これはセンシが振り向き50cmレベルのローセンシでもです. 零MIDでもCSGOで使うならばもう少し止まってほしいというところで, これがCSGOのプレイヤーのLazさんやmemeloffさんがSOFT/XSOFTを使っている理由だと思います. また, おれが零FX MIDを買ったあとにXSOFTを買い直した理由でもあります.

最後に買った零FX XSOFTは, おれにとっては止まりすぎました. マウスが重く, プレイが不快に思いました. ここでSOFTを買い直そうとも思いましたが, Artisan製品から決別することにしました.

おれはCSGOでもOWでも, マウスパッドがエイムや撃ち合いの結果に与える比重というのはそれほど大きくないと思います. 位置取りやプリファイアなどのプレイ内での要素を除いてゲーム外要素のデバイスやセンシに限定しても, マウスとセンシで90%以上, マウスパッドは無難なものを使っていれば問題がないというレベルだと思いました. それがCSGOでもOWでも多くのプレイヤーがG-SRやQCKなど無難なマウスパッドを使っていて多様性がない理由だと思います.

プレイ内での要素を考慮した場合, 多様なArtisan製品の中から仮にその場面において最善のマウスパッドがあったとして, G-SRを使った場合との差は, おそらく1%にも満たないでしょう. 逆にいえばその1%に挑戦しているのがAritsanです. そしてその1%は, ほとんどのプレイヤーにとって興味のない領域です. もしかしたらこの領域に達しているプレイヤーはプロにもいないかもしれません.

もし本当に最高のマウスパッドを追究したいならば, エイムを科学的に追究して, マウスパッドの特性を数値化して購買者に示すべきです. まだeSportsのレベルはここまで達していませんし, Aritisanはマウスパッドの特性について☆を使った根拠不明な比較表しか示していませんから, この点でももう振り回されるのは嫌だと思いました. Artisanの製品を買うのであれば, 自分にとって最高のマウスパッドを探す以外にはなく(もしそうしないならZowieやRazerを使えばいいでしょう), それはArtisanの製品を全て買わないと判断出来ないことです. 全て買ったとしても, 判断出来ないかもしれません.

だから, 有名ブランドのように, 「滑る版」「止まる版」と言った感じのバリエーションしか出さないことは, それ自体十分なことですし, ユーザのことを良く考えているとも言えます.

日本の製品は無駄な機能をつけまくってやたら高いというのはよく言われることです. 誰が使うのか分からないという機能をつけて, その分価格が上がる. これはArtisanの製品ラインナップからも感じることで, これだったら例えばスポンジの硬さは全部SOFTにして他のものは省いてしまうなどしてしまった方がいいと思います. 色々パラメータをつけるということは逆にいうと開発側も何が良いものなのかわかっていないということでもあり, ユーザに混乱を与えるだけです. もし過去の自分にArtisanとの付き合い方をアドバイスするのであれば「零SOFTを買ってそれだけを使え. 他のものには目移りするな」と言うでしょう. それはこれからArtisanのマウスパッドを買おうとしている人へのアドバイスでもあります.

Artisanからレビュー用零FX SOFTが送られてくるのを待ってます♡送ってくれるのであれば, G-SRとの比較レビューをします.

(etiles report) リーダーボードの改善をしました

イータイルズにとってリーダーボードは生命線です. そうでないプレイヤーがいてもいいとは思いますが, リーダーボードで上位を目指すことがプレイを続ける大きなモチベーションになるからです.

この3日間, リーダーボード周りの改善を行いました.

これがアカウントページです.

f:id:akiradeveloper529:20180520152828p:plain

実装上の判断を説明します.

  • バイス保有するID(ANDROID_IDやIDFV)は仕様がチンカスなのもありますが, RNを使う上ではAndroid/iOSで共通化した方がいい. また, デバイスIDを使ったログインをしてしまうと, デバイス乗り換えでアカウントを引き継ぐためにはbackup用のアカウント登録が必要になってしまい, これには典型的にはFBとの連携・email/passwdの登録が必要ですが, FBの連携は実装的にSDKのリンクが面倒なことと中国などFBが禁止されてる国もあるため使いにくい, 後者はユーザが登録をしてくれなそうという欠点があります. そこで, ランダムに生成するUUIDv4を使って保存しています. これは実質的に衝突しないためアカウント乗っ取りが不可能です. 情報漏えいにもケアして, デフォルトでは見えないようにしています.
  • 国旗はreact-native-country-picker-modalというライブラリを使っています. CCA2という二文字のアルファベット(例: JP)を取得出来るのですが, これを保存してかつリーダーボードで安価に取り出す方法は容易されていません. UserDataというK-V用の領域はあるのですが, 独立性が高いAPIになっていて, リーダーボードの取得を行ったあと各ユーザについて個別にAPIを叩く必要が出ます. これは性能もそうですがエラーハンドリングでも不利になります. エラーハンドリングについて, ネットワークが安定していれば良いだけではなく, 無料枠で使っていてSLAがない場合にはPlayFab側が自由にリクエストをドロップすることが許されますから, 大量のAPIを瞬間的に行って, どれか一つでも落ちるとダメですという実装にするのは良いことではないです. そこで, 記録などを保存するstat領域に保存しています. これならばリーダーボードの取得と同時に取り出せるからです. やり方は, 2文字のアルファベットを整数に圧縮しているだけです.
  • Avatar用にはAvatarUrlという領域があり, PlayFabとしてはこれを使うことが推奨されています. この方法だと, PlayFabの管理画面でAvatarが使われたりします. このURLは自由で, Googleから自由に画像検索してきてもいいのですが, やめました. 理由はまず, アス比1が強制されないこと. 次に, ポルノや殺害など悪質な画像を使う人が現れるからです. そこで, ある程度チェックの効いていてアス比が約束されているサイトからURLを引くことにしました. 最初はGravatarを使いましたが現在のユーザの全員が, この使い方を理解出来ませんでした. そこで次に, Twittterのアカウント画像を引く方法も追加しました. これならば理解出来ないユーザはいないと思います. Gravatarでは画像のアップロード時にどういうコンテンツなのかを選択させますし, Twitterではあまりに悪質な画像はBANされますから, 悪質な画像を弾くという点では多少の効果があり, かつ両方ともアス比1の画像を引けるのでこの2つで行こうと思います.

現在のリーダーボードはこういう感じです.

f:id:akiradeveloper529:20180520152826p:plain

特徴としては国旗を入れているところです. アバターを入れるというのはどのゲームでもやることですが, 国旗を入れるというのはなかなかやりません. この意図は, イータイルズが世界に広まった時に国家レベルの争いにしたいからです. イータイルズの成績は究極的には純粋な知能を反映します. これは一度プレイすれば分かることです. 例えば冷戦時にイータイルズがあったとすると, アメリカの国旗が上位にあれば, ロシアは才能のある子に特殊訓練を施してイータイルズでもアメリカに勝ちに行ったでしょう. どことは言いませんが現代においてもそのような敵対関係はありますから, これを利用すればイータイルズが連鎖的に広まっていくのではないかと思いました.

イータイルズは今後も機能やデザインの改善を続けていきます. 応援よろしくお願いします. 現在ベータテストをしているAndroid版のダウンロードはGoogle Play Storeからetilesで検索してください.

(etiles report) PlayFabをバックエンドに使うようにした

1ヶ月ぶりくらいになると思うが, Betaを更新した.

https://play.google.com/store/apps/details?id=jp.gr.java_conf.etiles.android

以前はGoogle Play Serviceを使ってリーダーボードを提供していたが, iOS版もサポートすることを考えた時には両プラットフォームに対応したバックエンドを使うことが望ましいため, PlayFabを検討していた. この検討には長い期間をかけた. 実装自体はGWの数日で終わった.

Former PopCap exec starts PlayFab to help game studios with back-end support – GeekWire techcrunch.com

PlayFabはベンチャーが作ったモバイルゲーム専用のバックエンドサービスで, MSが今年のはじめに買収したもの. MSが買収したものなので, 他の野良サービスよりは信頼出来ると言えるし, Azureを利用してサービスを提供するということであれば, サービスが途絶える可能性は十分に低いと言える. 仮にPlayFabがディスコンとなっても, その時には他のより良いサービスが出来ていると思うし, 十分なユーザ数がいるのであればおれが自作するという選択肢もある. 従って今このサービスを使うのは問題がないと考えた. むしろ, iOS版をいきなりディスコンとしたGoogle Play Serviceの方が信頼に足らない. 今後Android版も突然切るということも考えられる.

PlayFabの特徴は, 全てのAPIをRESTで定義していて, それを利用するための各言語向けライブラリを自動生成していることだ. Google Play ServiceはAndroid向けのライブラリを提供していて, react-nativeから使うためにはブリッジを実装する必要があったりして鬱陶しいが, RESTならば最悪ケースScala.jsから直接リクエストを発行することも出来る.

etilesはsriというライブラリを使ってScala.jsによってreact-nativeのコードを生成するというスタンスをとっているため, node.js向けのライブラリを使うことにした. ただし, 直接的には使うことが出来ないので, GitHub - parshap/node-libs-react-native: Node core modules for React Nativeを使っている. なぜこのようなワンクッションが必要かというのはRunning Node Modules in React Native · GitHubに設計思想含めよくまとまっているから気になる人は読んで欲しい. 似たようなライブラリはいくつかあるが, これが一番後発でstarは20程度しかないがもっとも良いと判断した. やってることは当たり前のことで難しくなく, かつ多くの人から必要とされているため, 信頼に足る. ついでにいうと, Node.jsのライブラリを騙すためにhttps://github.com/parshap/node-libs-react-native/issues/8に書いたように無意味なバージョンを与えるハックもしているが, コードを大胆にいじるということではないし, このハックがダメだと分かってしまった場合にはREST APIを叩くライブラリを自分で書けばいいだけなので, このまま行くことにした.

バックエンドがPlayFabに置き換わったことで, 今はまだAndroidでしかリリースしていないが, 今後iOS向けにもリリースすることを予定している. 実際にiOSのemulatorではetilesはadも含めて完全に動いており, UIの違いで多少直すべきところはあるがAndroid版と同水準にある.

今後はまずAndroid版での正式リリースを目指す. 今回のリリースはPlayFabを正しく使えることがメインで, UIに関しては最小限なのでもう少しマシにする. 他には, アプリを広めていくシステムがないため, Shareなどの実装を検討している. iOSについては, Androidで実績を詰んだ後にリリースとなる. Androidリリースが5月, iOSが6月を計画している.

最後になるが, アカウントにアイコンをつけることについては技術的には出来るものの, 検討が必要だと思っている. 例えば, エロ画像をアイコンにするなどされた場合にはetilesが場合によってはBANされる可能性もあるため, これを弾くか, コントロール出来る仕組みが必要だと思う. 今考えてるのは, アイコンが表示されるのはトップ5までで, それ以下の人は表示されないという方法だ. これならば, 自分でチェックしてBANすることも出来るし, アイコンを載せることに付加価値をつけることも出来る. また, ある程度ユーザがいる場合に上位に載せるプレイヤーはetilesをまじめにやるプレイヤーだからそういうバカな真似はしないと考えられる. エロ画像の他にも宗教的・政治的な画像も禁止したいため, 究極的にはGoogle Games IDのように決められたアイコンセットの中から選ばせるとか, あるいはより信頼性の高いFacebookの画像を使うとか色々アイデアはある. すべてを検討した上で, やるかやらないかも含めて決定する.

etilesでプレイヤーを増やし, adでお金を稼ぎ, ホームジムと実況部屋のある家に住む.