2ntブログ

メモリは机でCPUは脳

昨晩だったか、それは違う!とかいう某掲示板の「まとめ」を見たので。

例えば料理作るときの、キッチン台が「メモリ」に相当する。

その上に料理の作り方が書かれた「レシピ本」が置かれる。
これが「プログラム」に相当する。
そして、野菜だの魚だの肉だのの「材料」。
これが「データ」に相当する。

そしてレシピ本みながら、材料を加工して調理するオカン。
これが「CPU」に相当する。

「メモリは机でCPUは脳」という例えは、何も間違ってないだろ?

ちなみに材料が保管されてる冷蔵庫が「HDD」等の記憶媒体(ストレージ)に相当する。
レシピ本も、キッチン台の上に出しっぱなしにはしないで、通常はキッチンにある棚とかにしまってあるだろう。
このキッチンにある戸棚などの収納スペースも「HDD」に相当する。

ゲームのアプリケーションなんかを考えると分かりやすい。
プレイヤーのキー入力に応じて、自機の座標を+1したり-1したり、あるいは敵を動かしたり、攻撃したり、HPの増減を計算したりする計算処理部分の「プログラム」と、自機や敵のドット絵(今だと3Dモデルデータだろうか)の「データ」は両方とも「物理メモリ」に読み込まれるのが普通。

またCPU自身も「内部メモリ」というものを実は持っている。
「キャッシュ」の事ではない。
「レジスタ」と呼ばれるものだ。
何かを計算する時、物理メモリにあるデータをいったんCPUの内部メモリにまず読み込む。
そのうえで計算を行い、結果を物理メモリに戻すというのが基本。

また、物理メモリのどこに書かれた命令を実行中かを管理しているPC(プログラムカウンタ)も、CPUの内部メモリ、レジスタの一種だ。
料理作ってるオカンが、いまレシピ本のどのページのどこの作業をしてるのか、頭の中に記憶してるのと同じだ。

なお最近のコンピュータはCPUが全ての作業を行うわけではない。
例えば冷蔵庫から肉や魚を取り出すのは、オカンではない。
「ちょっとたかしー、どうせ暇なんだから冷蔵庫から魚の切り身出してちょーだい!」とか、あるいは料亭みたいなとこだと、板長に見習い新人板前が言われてやらされる。

このたかし君や新人板前が、SATAコントローラにあたる。
デバイスマネージャ見れば、必ず居るはずだ。

そのほかにも映像はグラフィックチップが、音声はサウンドチップが、キーボードやマウスからの入力はUSBコントローラがCPUに代わって管理・運用している。
CPUはそれらに指令を出して、データを貰ったり渡したりしているだけだ。
「はいじゃあ画面にこういう絵描いて」とか「はいこれ楽譜、これに沿って音楽演奏して」みたいな感じ。
USBコントローラには、「接続されてるキーボードやマウスに動きがあったら教えてね」って。

USBコントローラはキーボートの入力やマウスの動きやクリックが発生した時に、「割り込み」という信号を使ってCPUに知らせる。
「割り込み」信号を受け取ったCPUは、いま実行中の計算処理を一時中断して、何のキーが押されたのか確認して、それに対応した処理を行い、それが済んだら一時停止していた元のプログラムの実行を再開する。
こうする事で、プログラム側でいちいち「キーボードの入力あったかな?」「マウス動かされたかな?」って確認する処理をしないで済むわけだ。

昔のBASICのプログラムなどはいちいち入力確認をプログラム側で行っていた。
だからキーを押してもすぐにキャラクターが動かないなんてゲームもあった。
PC88時代の初期の頃の「ウルティマ」って言うRPGなんですけどねw

まぁそんな事はどうでもいい。

受験勉強と同じく、単語や年表や公式を丸暗記しただけで、分かったような気分になるなと。
だから応用がきかない。
工業大学だの専門学校だの卒業して入社しても、プログラマとして使えない人間になってしまうのだと。

ネトゲの乱数はなぜ偏るのか?

乱数とは、規則性のない数字の羅列であり、かつ全ての数字が同じ回数出現するものである。
なお、同じ数値が連続で出てはならないという決まりはない。

スマホゲームなどで使われてる開発ツールであるunityで、乱数の偏りを調べた人が居る。
結果として、unityの乱数は全ての数値がほぼ同じ割合で出現すると証明していた。

だが待ってほしい。
それは数千回・数万回試行した場合の話だ。
統計学的な話になるのだろうが、試行回数が多いほど偏りは収束するのがコンピュータの乱数。

そもそもネトゲの乱数は、全てサーバ側のプログラムが全プレイヤー分を発生させているわけで、個々の端末のクライアントプログラムが発生させてるわけではない。
サーバ側の乱数が偏ってなくても、プレイヤー側のリアルラックにより偏りが発生する。

例えば、1~6までの数値が必ず同じ割合で出るサイコロがあったとしよう。
1人でそのサイコロを100回ふれば、全ての数字が同じ数だけ出るだろう。
だがそのサイコロを複数人で順番に振ったらどうなるかという話だ。
1ばかり出る人、6ばかり出る人が必ず出てくる。
全員分を合わせて集計すれば、1~6まで同じ数だけ出ていても、個別で見たら偏るはずだ。

これがネトゲにおける乱数の偏りの正体だと、私は思う。

こういう偏りが出るのをネトゲの開発・運営も分かってるから、一定回数まわしたら必ず1等が出ます、あるいは1等と交換できるポイントが溜まりますという仕組みが出来たのでは?
ガンダム・オンラインやプリコネR、あとディスガイアRPGでも見たことあるが、各プレイヤー毎に出現するアイテムの種類と数が決まってるイベントガチャなんてものもある。
ウマ娘も、イベントルーレットを一定回数回したら、まだ出てない数値が出るように調整が入った。
プレイヤーによって、乱数が結果的に偏らないのであれば、こんなシステムを入れる必要はないわけで。

結論:
今の開発ツールの乱数ライブラリは、昔の乱数表だのタイマーや時計を入力値として使った疑似乱数とは違って、かなり正確(?)な乱数が出せる。
しかしネトゲの場合は、その乱数を複数のプレイヤーが共同で使うため、受け取るタイミングや順番などの「運」(リアルラック)により偏る。

オマケ
「たづな」を入れるか入れないかで意見が分かれる理由

廃課金は「上振れ」を狙う。
無課金・初心者は、育成シナリオクリアが確実に出来る事が前提になる。
つまり「下振れ」防止をまず考える。

「上振れ」狙う場合は、友情トレーニングが無い「たづな」は、邪魔でしかない。
以前も述べた「運」に左右されない要素、育成ウマ娘やサポートカードの上限解放度や、継承元のステータス因子が☆3&URA因子☆3付きなどで、URAファイナルズ優勝クリア出来るステータスが確保できる廃課金だからこその話。

無課金・初心者はそれが出来ないので、連続調子下げだのバステ付けだのが多発してトレーニング回数が減ると、もうそれだけで詰んでしまう。
ヒントの出も悪いし、友情トレーニング発生率やあるいは発生するまでの道のりも、サポカの上限解放が進んでないので長い。
だから「たづな」を入れて「安定」性をまず確保しなければならない。

完凸人権カードをいくつも持っていながら、ステータスの高いウマ娘が作れない廃課金の人がもし居たら、「たづな」を抜け。
育成シナリオがクリアできない、B+しか作れない無課金・初心者は「たづな」を必ず入れろ。

そういう事だと思う。

中韓と日本のシステム開発者のレベル

今の日本のSE・PGのレベルの低さは目に余るものがある。
プリコネの開発者を私は以前より高く評価している。
「画面遷移にとことん拘った」と公言する通り、非常に洗練されたシステムだからだ。
しかし実は、これは当たり前の事でもある。

当たり前の事さえ出来ないSE・PGが多いから、賞賛しなければならないだけである。

かつてファミコンで世界をリードした日本のゲーム開発は、いまや欧米どころか中韓にすら及ばない。
もともとコンピュータは欧米で開発されたもので、プログラムやIT用語も英語というアドバンテージが向こうにはあるので仕方ない面もある。
だが中韓は英語圏ではない。

なぜ中韓が日本よりシステム開発のレベルが高いかと言えば、双方とも国家事業として多額の予算が投じられているからだ。
中国はハッキングなどの諜報・工作活動のため。
韓国は今は知らないが、ネットゲームの開発に多額の税金の援助をしていた時期がある。

日本はIT土方と言われるように、SE・PGの給与も地位も低い。
だから優秀な人材が育たない。

そういう連中がスマホゲーム作ってるから、やたら容量を食う上に遅いクライアントしか作れない。
プログラムだけではない。
企画もレベルが低い。
ウマ娘は先行してサービス開始されていたスマホガチャゲー版の「ダビスタ」の画面に、「パワプロ」の育成システムを当てはめただけだ。
ゲームシステムに何のオリジナリティもない。

スマホゲームに限らず、コンシューマもアーケードもかつての作品の焼き直しみたいなのがすごく多い。
FPSやMMOやMOBAなどの、PCネトゲに至っては開発すらしていない。

売れないってのもあるが、そもそも企画・開発出来る人材が居ないのだ(泣)

めっちゃ儲かってるらしいサイゲームスには、是非ともまともな人材の育成に、その儲けを使ってもらいたい。
ウマ娘の企画・開発者の再教育をお願いしたい。
プリコネの企画・開発者のように、教育できるまともな人材は居るはずだ。
何なら海外へ1年ぐらい研修に送り出しても良い。

コロナの感染者接触確認アプリが、多額の予算を投じたにも関わらず不具合だらけで失敗に終わった原因も、この人材不足にある。
デジタル庁も結構だが、まずは中韓のように国家が予算を投じてIT技術者の育成と地位向上を行うべき。

プログラムってどうやって勉強したらいいの?

定期的に出てくるこの手の話題。

まずこの時点でプログラマには向かない。

プログラマは、開発言語のコマンドや文法を覚えている事が重要なのではない。
その完成形にたどり着くには、何をどうしたらよいかの道筋を考えられるかどうかだからだ。

プログラマになりたいなら、何が必要なのか?
それを得るためには何をしなければならないのか?
それが「逆算」できる人じゃないと、たとえ専門学校に行ったり分厚い専門書買って読んで覚えたり、運よくIT企業のPGとして就職できても、使えない人間になるだけだ。

続きを読む

Windows10 本当に効果のあるカスタマイズ

2015年の記事だが、Microsoftの技術者が「PCを最新の高スペックのものに変える以外に、Windowsのパフォーマンスを改善する方法はない」「初期設定を変えても殆ど意味はない」と述べてるものを見つけた。

顔出し名前出しで言ってるので、信用できると思う。
というか、私も実体験からそう思う。

もちろんネットに溢れるWindowsを速くするためのカスタマイズ方法が、全て無駄というわけではない。
ただ、効果が体感できるものは殆ど無いということだ。

では本当に効果が出るカスタマイズとは?

続きを読む

カウンタ
プロフィール

ウホッ!いい男

Author:ウホッ!いい男
異世界転生を待ち続ける中高年のおっさん

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR