Theory of Otaku

Im not otaku.

勝ちたいPCゲーマーは周辺機器にこだわるべきである ~パート1~

はじめに

お久しぶりです、長いことほったらかしていたので久しぶりに書こうと思います。

世の中の皆々様はPCの周辺機器についてどのくらいの意識でいるのか、僕にはわかりかねますが、PCでゲームする人間にとって周辺機器は甘えてはいけないところであることを理解してほしいです。

とりあえずFPSについての話をしますが、格闘ゲームなどやターン制でないMMO、PvEでも適用できる話です。

周辺機器って何

まず周辺機器とはなんぞやという話で、だいたいのPCゲーマーが最低限そろえるべきデバイスは以下になります。

  • キーボード
  • マウス
  • マウスパッド
  • マイク
  • ヘッドホン(イヤホン)
  • モニター

 あとはオーディオアンプとかありますけどとりあえずこんなもんにしときます。これについてそれぞれ書いていければなと思っています。

「別に普通の付属キーボードと付属マウスでよくね?イヤホンマイクはiPhoneについてきたやつでいいし、マウスパッドいる??無くても俺強いねんけど。」という考えの方、いますよね。PCでゲームする人間なら、その考えは捨てたほうがいいですよ、マジで。

キーボード

まずキーボードの話です。ゲーミングキーボードでそれなりのブランドのものであれば平均1万から2万しますよね。たかがキーボードになぜそれだけ払うのか、光ってるだけなんじゃないのか、ということについて話します。

例えばNキーロールオーバーというものがあります。これは格闘ゲームなどに顕著に出るんですが、同時にキーを押したときに押された順番に認識される限界数(N)ってのがキーボードによって決まってるんです。一般的なキーボードが確か2キーくらいで、ものによっては対応していないキーボードもあるのに対し、最近のゲーミングキーボードはだいたい6キー以上です。

キーボード、これらは自分の手足だと思ってください。で、自分より敵のほうが手足の神経の本数が多くて、自分の脳は1秒の間にパンチ1回しか命令できないのに敵はパンチに加えキック、昇竜拳までかましてくるんです。勝てませんよね?

この差はゲームの実力が上がるにつれて大きくなります。自分が下手なうちは基本的に相手も下手な場合が多いですが、敵が上手くなれば勝てなくなります

他にも、押していないはずのキーが押されたと誤認されないシステムとか、キーの入力が認識される押し込みの深さやキーの返りの良さ・重さなど、事務用PCのキーボードではなく"ゲーミング"である意味は値段相応に確実にあります。

あと、「光るから高い」とか「光る意味ある?」とかそんな次元の低い話はしないでほしいです。高級ゲーミングデバイスがなぜ光るか?カッコいいからでしょ。デスクの上のカッコよさはゲームが上手くなるモチベーションにつながります。

マウスとマウスパッド

これは、完全にFPS寄り(若干MMO)の話になってしまうので格闘ゲームの方はごめんなさい。そういうゲームをプレイされる方なら感度とかDPIとかハイセンシとかローセンシとか聞かれたことがあるのではないでしょうか。

センシとは、sensibilityのことでまぁ感度のことです。つまり感度がhighかlowか。マウスで敵に標準を合わせる(以下エイミング)ために必要なマウスの動きが大きいか小さいかという話です。

これは完全にゲーマーによって違います。プロの感度を真似たからといってプロと同じプレイができるわけではありません。自分に合った感度とそれに応じた山のような練習が必要です。FPSゲーマーにとってエイミングは命です。ぶっちゃけ僕はエイミングが強ければどんなゲームでも行けるところまで行けると思っています。

で、この話を理解してもらったうえでゲーミングマウスを選ぶという話をしたいと思います。まずハイセンシのゲーマーはエイミング時にマウスはあまり動かしません。つまりマウスが重くて滑りにくければエイミングしやすいですよね?逆にローセンシのゲーマーはエイミング時マウスを大きく動かすので、マウスは軽くてよく滑ってかつ止まってほしいところで止まる。というのが理想です。

ここでゲーミングマウスです。数多のブランドが多岐にわたる重量のマウスを提供しています。今発売されているもので一番軽いのがたぶん58gで、重いもので300gオーバーとかだったと思います。また、マウスのケーブルが邪魔・重いという意見に対して高性能ワイヤレスマウスやケーブルの重量をほぼ感じないマウスなどもあります。ほかにも1秒間に何回PCに対してマウスからデータを送信するのかを表すポーリングレートの高さなどでも差があります。(これに関しては数ミリ秒の世界なのでほぼ誤差ですが)後はMMOゲーマーには必須ともいえるマクロキーの数なども重要なオプションです。

さらにここで大事なのがマウスパッドです。これまでの話を読んでなお「マウスパッド?100均で買ったやつあるからいいよ。3000円もかけたくない。」と感じる方はよっぽどの守銭奴だと思いますよ。

マウスは重量に関して担当すれば、マウスパッドは滑りやすさを担当します。これもまたエイミングに直接的に影響します。表面にガラスコーティングが混じってる超滑るマウスパッドとか、内側のスポンジが固いものや柔らかいもの、ほぼゴム製で全然滑らないマウスパッドとか。構造と種類を合わせればマウス以上なんじゃないでしょうか。マウスパッド専門ブランドなんてものがあるくらいです。

そしてマウスパッドについて知っておいてほしいのが、「マウスパッドは消耗品である。」ということです。たくさんゲームしてたくさんマウスを動かせばマウスパッドはどうなるでしょうか。表面が削れます。また汗や手垢などの汚れも染み込み、購入時レベルの性能が当然発揮できなくなります。なので、長くても半年に一回は3000円くらいの買い物をすると思って下さい。もし購入したマウスパッドが自分の求めるものでなかったらその時に買い替えるなりするといいかもしれませんね。

とりあえずマウスとマウスパッドはこんな感じです。おわかりいただけたでしょうか。マウスの相場は5000円から2万弱とかで、マウスパッドは2000円から5000円くらいです。自分のプレイスタイルとバランスを取りながら決めるべきです。決して高いものならいいわけではなく、安いものでも自分のスタイルに合えばそれが一番です。

ぱーと1おわりに

とりあえずキーボードとマウスとマウスパッドについて書きました。ゲーム強くなりたい人はまぁ頭に置いておいてください。お金がない人はバイトしてください、臓器売ってください、なんとかしてください。次の話で残りのデバイスについて話したいと思います。次回もお楽しみに✨

プログラムとこの世の全ての話

プログラム

プログラムって限界まで拡大解釈すると人間の動きまでプログラムと言えますよね。つまりこの世はプログラムでほぼすべて再現できると言っても過言ではないわけです。

地球の自転、車の加速、電気の流れ、人間の手足の動き、人間の感情などなど。hello worldから始まるプログラムだけをプログラムというのは少し視野が狭いかなと感じます。

これを踏まえた上で、プログラムの書き方について考えてみようと思います。

命令の積み重ね

例えば、人間が歩くというアクションには、大雑把に以下のアクションに別れますよね。(もっと分けられるかもしれない)

  1. 片足を前に出す。
  2. 逆の足を1で出した足より前に出す。
  3. 以下繰り返し

この足を前に出すというアクションも、脳が足の筋肉とかに動けー!って命令を出すわけですよね。あとその脳からの命令を脊髄だとか、そういうのが足まで遠路はるばる伝えますよね。

これからわかるように、プログラムって複数の命令の積み重なりによってできているということです。いや当然でしょと言われると思いますが、当然です。

この当然のことをわかっていないと、まともなプログラムは書けないです。

プログラムでいうと

例えば、1~10の数字を並べて表示するfor文のよくあるをゴリ押しで書くと

  1. 変数numを作成する。
  2. numに初期値である1を代入する。
  3. numを出力する。
  4. numを+1する。
  5. numを出力する。
  6. numを+1する。
  7. ...

って感じでまぁゴミ見た目の悪いプログラムができました。for文とかの繰り返し文って、3と4を指定数回繰り返してくれますよね。つまり、numを出力して+1するという複数のプログラムをひとかたまりにして複数回実行してくれています。

これって、人が歩く動作である片足を出して逆の足を出すというものと考え方は同じですよね。しかも、numを出力したり+1するためにはコンパイラくんが色々頑張ったりしてくれているはずです。これは脳とか脊髄とか、そういう類のものと一緒です。

関数

命令の積み重ねと聞いて、「ああ、関数か」と思ってくれると嬉しいんですが。そんなことはないかもしれないですね。例えばjavaなら print(" hello-wowow "); というプログラムがあれば、このprintという関数がえんこらせとhello-wowowと表示するために頑張ってくれているわけです。

流石にさっきのfor文を関数として実用化するなんてことはないんですが、例えばAとBの値を入れ替える関数 swap( A, B ); とか。そうして入れ替えたものをそれぞれ足す sum( A, B );、これを出力する print ( result ); 、この3つの関数を書いてある大きな main 。mainの中に3つの関数がありますよね。これ全て関数を使わずゴリゴリコードを書くなんて、想像できませんよね。僕なら絶対やりません。

ここからわかってほしいことは、ほぼ全てのプログラムの塊は他のプログラムの部品になり得るということです。

つまり

今回の話で何を理解してもらいたいかというと、プログラムの仕組みについてもっとわかってほしい。ということです。頭を使わず random() とか toString() とかを使ったりしないでほしいです。全ての関数はプログラムであるということを頭に置いてプログラムを書いてほしい。別に中身のソースコードを理解しろと言っているわけではなくて、「random();?ランダムな数をなんか発生させてくれるやつね。」で済ませないでほしい。という話です。

今後書いてもらうメソッドはもしかしたらどこかまた別のプログラムで使うかもしれない。このプログラムは昔書いたものを使えば短くできるな。とか。足の筋肉は歩くためだけにあるわけじゃないし、走ったり蹴ったり踏んだり、つまりそういうことです。そういうものがあるという認識をするだけで、プログラムに対する考え方がきっと変わる気がします。

当然プログラムとはこれだけじゃないです。いかんせんこの世の全てをプログラムで再現できかねない世界ですから、もっとたくさんの法則や考え方があります。とりあえず今回はこういう話でした。

3分でweb上にサイトを公開する話

マジで3分でできます

カップラーメン作りながらやってくれ。

今回使用するのはgithubです。githubとは、まぁプログラマーとかが自分のプロジェクトをネット上に公開したり、共同開発をする時にコードをシェアする目的で使われたり使われなかったりするやつです。簡単に言えばオンライン上にファイルを置いてシェアできるよ、ということです。本当はちょっと違うけどまぁ今回はその程度の理解でいいです。「githubとweb上にサイトを公開すること、関係あるの?」という貴方。とりあえず騙されたと思ってやってください。

テキストエディタも変なツールも使いません。ネット環境とPCとキーボードとマウスがあればできます。できない人はセンスがない可能性まであります。

さすがにgithubのアカウント作れない人は先に進めないので、できた人だけ続きを読んでください。できない人はググってください。[ github 登録 ]で調べましょう。

つくる

とりあえず専門用語抜きでぶっ飛ばしながら3分で公開まで持って行きます。

1. 今回使用するネット上に置いておくフォルダを作成する 

1. 自分のページ(https://github.com/xxx:xxxはユーザ名)で、右上の+を押して、New repositoryを押す。

※ 今後もxxxという文字が出たら全てユーザ名だと思ってください。

f:id:yakiniku-ya:20181218013944p:plain

2. フォルダの名前を決める

1. 赤線で囲われたRepository nameの部分に、xxx.github.ioと入力する。

2. 他は一切触らず、一番下の緑のCreate repositoryボタンを押す。

f:id:yakiniku-ya:20181218013950p:plain

3. サイトのベースとなるファイルを作成する。

1. 赤矢印で指してあるcreating a new fileを押す。

f:id:yakiniku-ya:20181218013957p:plain

4. ファイルの中身をいじる

1. 一番上の赤線枠に、index.htmlと入力する

2. 二番目の赤線枠に、ちょっとしたのソースコードをコピぺする。

f:id:yakiniku-ya:20181218014005p:plain

 

5. ファイルを更新する

1. ソースコードがかけたら、下の方の赤線枠の部分にとりえあずCreate index.htmlと入力。

2. 最後に一番下の緑のCommit new fileを押す。

f:id:yakiniku-ya:20181218014010p:plain

6. 完成したサイトにアクセスする。

これで完成しました。リンクは https://xxx.github.io/ です。

もし反映されていなくても、反映までに少し時間がかかる時があるので気長に待ちましょう。

たとえば僕のは https://yakiniku-db.github.io/ 。こんな感じになってれば成功しています。 

ね、簡単でしょ?

カップラーメンはおいしいですか?

今回感じて欲しかったことは、「別にホームページ作成なんてめんどくさそうな環境がなくてもなんとかなる。」ということです。当然githubを使う場合や、他のホームページ制作サイトを用いる時も、無料で用いる分には何らかの制約は付いてくるでしょう。お金を払えば別ですが、別にそれほどでもない、商用でもない個人の勉強用のようなものでその制約は大した障壁ではないと考えています。

無駄に敷居が高いと思われがちですが、いざ蓋を開けてみれば今時カップラーメンと一緒にwebサイトまで作れるんですから。むしろできないほうが恥ずかしいまであります。正直、「webサイト?ホームページ?サーバー借りたりドメイン買ったりしないといけないんじゃないの?データベースとか難しそう。API?なにそれ。」とか。実際そうですけど、それは個人レベルではぶっちゃけ不要です。プログラミングはじめたばかりのハローワールドの申し子が手を出すには早いと思います。

とりあえず

さらに理解を深めたい人は、以下のワードでググってみるといいかもしれません。

  • html css
  • github.io メリット デメリット
  • 静的サイトと動的サイト
  • git

など。

htmlとcssをググってそれっぽいサイトを作るだけ。ブラウザでコードを書くのが面倒な人はgitの使い方を少しだけ覚えてください。今時Github-Desktopみたいなのもありますし、別に難しいことではないです。

簡単なことだけなら今度記事にするかもしれませんが。

まぁとりあえず、やってみる

とりあえず作ってみてください。別にカッコいいサイトを作れと言っているわけじゃないのだから、失敗してもダサくてもいいから、作ってみてください。

俺のサイト https://yakiniku-ya.github.io/ もgithub.ioで最近作ったばかりですが、トップページだけ真面目にcss当てています。1時間くらいで適当に書いたので実際変なところもあるし、「ここ変」とか、「かわいい」とかいろいろ言われました。

作って、公開して、誰かがみる。その誰かがサイトの悪いところとか気になるところを教えてくれるかもしれない。どうすればその気になるところを直せるか自分で調べたり、友達に聞いたり。

自己満足で完結してはいけないし、食わず嫌いもよくないです。とりあえずやってみる。そして他人の意見や文句を受け入れて、向上することこそがプログラマにとってのいいことだと思います。

30万でPCがとても強くなった話

なんで?

ご存知の方もいると思いますが、僕のもともと使っていたwinPCは、限界でした。

R6Sは2時間に1回クラッシュするし、3時間くらいでブルスクになるし、いきなり電源切れたり。まぁ限界でした。チームにも迷惑がかかるし。

挙げ句の果てに今月初めにあったアップデートでついに、グラボのサポートが終了。世界の終わりでした。

借金しました

PC買うぞってなって、まずぶつかったのが僕の所持金の問題です。「のんびり貯めて来年の1月くらいに25万くらいになるからPC買えるな〜。」とか思って貯めてたのですが、急遽ゲームできない状況になったので、今すぐ出せるお金が20万しかなかったわけです。

20万でも十分なものは組めそうだったんですが、それでももともと想定していたものよりは劣ります。が、早くプレイしたくてしょうがなかった僕は、20万で組めるように構成を考えていました。

そしたら親に、「お金貸すから妥協するな。」と言われ、10万借りることになり、妥協しない構成で組むことになりました。マジでこうなるとは思いませんでした。

買うものを決めました

本来の想定より少し贅沢して24万でPC本体を購入しました。だいたいの構成は次のような感じです。

  • intel core i7-9700
  • GeForce RTX2070
  • RAM 16GB
  • Sumsung SSD EVO 970 500GB(M.2)

それに追加で、今のモニターではPCの十分な性能を発揮できないと思って240hzのモニターを購入。あとついでにcorsairのピカピカひかるキーボードを購入。

総額30万のビックリ出費です。

届きました

僕の選んだPCケースが品切れだったらしく取り寄せとかしてもらって待っていると、注文日からちょうど1週間経ってました。かなり待ち遠しかったです。

PCが届いたら、すでに届いているモニターとキーボードを挿していざ起動しました。

マジ光りました。1週間待った甲斐、ありましたね。

ついでにキーボードもめちゃくちゃ光ります。

ゲームしました

ついにお待ちかね、R6Sを起動しました。設定をある程度弄って、ついにフレームレートを240hzに設定すると...。

そこには世界がありました。

まとめると

  1. 借金した
  2. 光った
  3. 世界が見えた

こんなかんじですね。本当に60hzの世界とは別の世界です。ゲーム違うんじゃないか?というくらい変わりました。

性能としても、youtubeで生放送をつけたりしていても全然fpsが落ちる気配もなくfps200±40ほどをキープしてくれます。Discordの通話オーバーレイをつけていても全然問題なしです。デュアルモニターになったらどうなるかな?といった感じです。

あと自分が上手くなった気がしました。まぁモニター性能的にも応答速度0.05sなので、一般的な応答速度0.1sモニターより早く見えるのもあります。それに加えてグラフィックの向上によってかなり詳しく、細かくしっかり見えます。正直機材でここまで変わるとは思っていなかったのですが、本当に驚いています。

落ちることはなくなったので、あとは普通に練習してどんどん上手くなるように頑張るだけです。僕と一緒にR6Sやりましょう。twitterとかで声かけてください!

人間、ググるのが下手すぎる話

はじめに

クラスメイトに「はよかけや」と言われたので書きます。プログラミングの話しろと言われたけどいざ書こうと思ったらパッと思いつかなかったので、「いきなり煽りかよ」と言われてもしょうがないですが、こういう話をします。

いや下手すぎんか?

現代、スマホ普及率50%オーバーとか、モバイル端末普及率が90%オーバーとか、そういう話をよく聞きます。まぁ電車に乗って周り見たら一発でわかりますよね。てかスマホ持ってない人探す方が難しいんじゃないですか?

スマホを持っているということは少なくとも携帯会社と契約したりwifiに繋げたりsim挿したりしてTwitterとかInstagramとかYoutubeとか、パズドラとかFGOとかしてるわけですよね。それだけネットとの距離がスマホによって近づけられているんですけど...。

ネット、十分に使えてますか?という話です。

ggrks

ここまで書いて、本題の「ググる。」について入ります。

今時「情報は金になる」「情報こそ人や企業の実質的な力」とか言われてるんですが、本当にそうで、情報を大事にしない人間はこの先生きていけないんじゃないかとまで僕は思っています。そう考えると、Googleとかyahooとか、検索エンジンにカタカタ入力してその時必要な情報をゲットすることって、マジでめちゃくちゃ大事だと思えませんか。

昔々あるところに、おじちゃんとおばちゃんがいました。
彼らはスマホをもっていました。
おばちゃんはいいました。「プリンタソフトがなぜか起動しないの。」
おじちゃんはスマホを片手にいいました。「わしが調べてやろう。」
しかし困ったことにおじちゃんはこう調べました。[プリンター 壊れた]
しかしわかりやすい答えは出ず、結局彼らはプリンターを買ったお店に行きました。

昔々、とある家電量販店でバイトしてたとき、「こう調べたんだけどわからなくて、教えて欲しいんだけど。」と言われたことがあります。そりゃわからないですよね。壊れ方にもほぼ無限の可能性があるわけで、ただ「壊れた」と調べただけで出るわけがないですよね。

流石に極端かなと思ったんですけど、実際ググれない人ってこのレベルです。そんな人に「ggrks」と言ってもしょうがないですよね。

とりあえず思いつくだけ並べてみろ

キーワードとキーワードを空白で繋ぐくらい、おじちゃんでもできます。流石に毎回文章で「プリンタソフトが壊れた。」と検索してる人は流石にいないと思います。今のエンジンは優秀なのでこれでも何か出してくれるとは思いますが。

この空白、検索するときにAND検索演算子として扱われています。AND検索演算子とは、繋げたキーワードの内容をたぶん全て含むページを検索結果として表示してくれる。というものです。含めなかった場合でも、含まれない:みたいに何個かキーワードを含めて検索結果を返してくれます。

例えば、[プリンタソフト 壊れた 起動しない windowsXP xxx.exe]これだけでも全然違う結果が帰ってくると思います。少なくとも、おじちゃんよりはより絞り込んだ情報を得ることができたはずです。

5W1Hって覚えていますか?僕は小5くらいで塾で習ったんですけど、「いつ」「どこで」「だれと」「なにを」「なぜ」「どのように」のことを表す文章を組み立てるテクニック?みたいなものだったはずです。まともな会話ができる人は無意識にでも、これを文章に組み込んで話していると思います。

5W1Hを全て組み込めとはいわないですが、例えば[windowsXP]という環境で、[突然][xxx.exe]という[プリンターソフト]が...と言った感じで分けることができますよね。これを並べるだけで全然変わると思います。

レベルの低すぎる例え話をしたけど、プログラマーとかなら例えば「indexoutofboundsエラー」とかよく見ますよね。これなら例えば、[ indexoutofbounds java 配列 ]くらい調べて欲しいところです。情報科であるうちのクラスメイトでも、下手な人はたくさんいたとおもいます。こういうときに[indexoutofbounds]だけで止まらないで欲しい。

僕にとっての検索とは、「ほぼ無限大にある情報から自分の求める情報を一定量きちんと集めて、その情報を精査する。」ことで、とりあえず精査のことは置いておくとしても、情報を集めるところまでたどり着けていない人はもう1つキーワードをがんばって追加して欲しい。 

まとめると

検索はめちゃくちゃ大事ということ。

普通に検索エンジンが検索候補とか表示してくれるし必要ないかもしれない。でも検索候補はみんなの意見の集合なので、別に今欲しい情報がそうであるとは限らないわけです。別に形態素解析を理解しろとか、マイナスで除外したり、””で囲って完全一致させろとか言ってるわけじゃないんです。

せっかくネットに繋がれるコンパクトな環境が2万とか5万とか10万とかで売ってるのだから、有効活用してほしい。今時ググればほぼなんでも答えてくれるのだから、ただのゲーム機・電話機にしないでほしい。という話でした。

はてブロを始めたくなった話

やってもうた・・・

ある時期にはてなブログがうちの高専で妙に流行った時期ありましたよね。その時に「やりてーな!」って思ってたんですけど。でも、今急に何か書きたくなったんだからしょうがない。始めます。

多分明日の僕は「なんでお前始めてん」と思ってるかも。知るか。

ぼくのなまえは

みなさんご存知かもしれませんが、れすとといいます。奈良高専情報工学科の4年目です。別に頭は良くないです。いままで音ゲーだとか、駅メモ、PCゲーム、DJなどいろんなもんに手を出してきました。

プログラミングがすきで、いろんなことに手を出しては引っ込めています。フリーの開発でちょろっと遊んで小遣いを稼いだりしています。

 嫌いなものは電磁気学です。

なにかくの

最近の話題とかネタとか、例えば研究室冷戦とか10万の借金とか。あとはプログラムの話とか、シージの話とか。したいとおもいます。プログラムの話とかはウケてもらえるかな?とか思っています。

といっても僕の文章力はぶっちゃけかなり低く、語彙もないです。「あれがこうなってそう!」みたいなことをたまに言っちゃうくらいで文章に関してはあまり期待しないでください。

さいごに

あまり期待しないでほしいですが、飽きない限りいっぱい書きたいと思います。

でも明日の俺は絶対めんどくさいと思ってる。これはマジ。