2024.12.02
業務時間外攻撃から守る、侵入を防ぐための最適解 誰も教えてくれない攻撃者目線のセキュリティ対策
RPGで数列(全1記事)
リンクをコピー
記事をブックマーク
安原祐二氏(以下、安原):パート5は、かなり具体的な例を出してみようかなと思います。(スライドを示して)RPGは、ロールプレイングゲームのつもりで書いています。「RPGで数列」という話をしてみましょう。
自分がレベル5のプレイヤーだったとしましょう。ロールプレイングゲームは、見えていない場合もありますが、だいたい敵にもレベルがあります。
自分よりもレベルが低い敵には楽勝で、同じレベルの敵はいい勝負。そして、1つ上のレベルはちょっと厳しいというゲームデザインをするでしょう。このように作っていくものだと思います。こういう状況で、適切な経験値をどう与えたらいいのかという話をしてみましょう。
順番に考えてみましょう。レベルアップ条件。例えば自分と同じレベルの敵、つまり自分がレベル5であれば、レベル5の敵を5体倒すと1レベル上がるとしましょう。
この時、低いレベルの敵は5体では困りますよね。もっと数が多くあってほしいわけです。つまりそいつら(低いレベルの敵)には楽勝なので、面倒くさくあってほしいわけです。なので、低いレベルの敵は8体倒さなきゃいけない。でも8体倒せばレベルアップします。
逆に、自分より1つ高いレベルの敵は、3体倒すだけでレベルアップするというゲームデザインをわりと考えていきたいのではないでしょうか。
仕事としては、プランナーさんの仕事になるかとは思いますが、この時に数列や数学を使えないと企画がちゃんとできないので、心して聞いてもらいたいと思います。
もう1つ大事なことがあります。レベル5からレベル6にいく時と、レベル31まで上り詰めてレベル32にいく時は、やはり同じぐらいのレベルの敵5体でレベルアップしたいんですね。
そうじゃないと、1日遊んでもレベルアップしないというつらいことが起きてしまいます。やはりレベルアップの頻度は変えたくないので、こういう要件も必要です。
ここでは敵ごとに得られる経験値があるとして、それを固定にしましょう。例えば自分のレベルがいくつであってもレベル4の敵を倒したら経験値は、いくつ。この値を自分のレベルには関係なく固定したいと思ったとしましょう。
このような条件で考えていくと、そんなに複雑ではないと思います。(スライドの)左上のところを見てください。レベル1からレベル2にいくのに、10と書いてありますね。10の経験値をゲットすると、レベル2になれるとしましょう。ではレベル3になるにはいくつ必要かというと、10では困るわけですね。これを1.5倍して、15の経験値を稼ぐとレベル3になるようにしようと設計していくのが1つの例かなと思います。
この1.5倍をずっと守り続けるわけです。そうすると、レベル31という“つよつよ”状態でも、レベル31から32になるためには、191万7,511の経験値が必要で、その次は287万必要です。
これは、等比数列と呼ばれる数列の種類です。初項が10で、公比は1.5になります。この等比数列を解けるようにしましょうという話ですね。
そんなに難しくはないと思います。学校でもやっていると思いますし、復習してもそんなに手間はかからないんじゃないですかね。10、15とあって、結局1.5のn-1乗というのがレベルnです。スモールnのほうですね。
10掛ける1.5のn-1乗で、レベルアップに必要な経験値を計算できます。これを文字に置き換えて、初項がIだとすると、公比aがあって、Iのa乗マイナス1となります。
これで、ネクスト経験値を計算できちゃいます。かなり単純ですね。もっと複雑にしたい場合もあると思いますが、これが基本です。
少しだけ応用を考えていきます。白い四角で0、10、25と上に書いてあるのを見てください。ごめんなさい、ちょっと数字が間違っていますね。(青字の)100と書いたのは10で、150のところは15です。
累積経験値がこの白い四角の中に入っています。例えばレベル32になった人は、経験値を固定の値で持っていて、その値は等比数列の和である必要があります。
これは数列の授業で習った等比数列の和の公式です。Mn(※nは下付き文字)イコールシグマがあって、ちょっと「うえっ」となるんですが、シグマ、このZみたいな文字はぜんぜんなんてことはありません。みなさんがふだん書いているforループと同じです。
for、k=1で、「kがnより小さい間ループしなさいよ」で、その中にあるaのk-1乗を1個ずつ足していきましょうという数式にほかならないわけです。なので、プログラムを書いたことがある人だったら、このシグマという文字を恐れる必要はぜんぜんありません。
ただ、ループじゃないと解けないのは困るので、(スライドを示して)一番右の公式があるわけです。これで累積値は一発で出せます。一般項が出せるわけです。
というわけで、ぜひ「Excel」の表に式を入れてダーッと見てほしいのですが、レベル40ぐらいになるとけっこう大きな値になっています。
なので、これが32ビットで収まるかも同時に検討しておく必要があります。ゲームを作っている途中で「やはりダメだった」となると、プログラマーさんにかなり怒られますよね。きちんと式を知っていれば、こういうのもあらかじめわかります。
もう1回このスライドを出しました。一番右下に書いてある公式、ちょっと嫌じゃないですか。「知らんがな」「覚えていられないよ」と思うかもしれませんが、実は僕、この公式を覚えているんですね。覚え方があるので、おまけとしてその話をしましょう。
xの2乗マイナス1という式を見た時、こう因数分解をしたくなるじゃないですか。x-1とx+1を掛けたのがxの2乗マイナス1という式があります。
これには実は応用があって、3乗引く1だとか、4乗引く1だとか、「なんとか乗引く1」だったら、必ずx-1で割れます。残った数が、おもしろいことに階段状になっている。「xの3乗プラス、xの2乗プラス、xプラス1」みたいになっているので、xのn乗引く1というのがあっても、必ずx-1で割り切れて、残りは階段状になる性質があります。
こういう式をもう1回出しました。等式をいじるだけ、つまり両辺をx-1で割るだけで、先ほど見たような式が出てきます。(スライドを示して)一番右下のところを見てください。xのn乗マイナス1、この黄緑で書いた部分を見ると、「これx-1で割り切れるじゃん」と思うじゃないですか。割った残りは、n-1の階段状の足し算になっている、つまりこのシグマの値と一致しているということになるので、そう考えると先ほどの式もそんなに難しくはないかなと思います。
もう1つ、おまけっぽい話をします。(スライドを示して)こういうふうに経験値の累積があったとしましょう。今このプレイヤーは、100万の経験値を持っている。逆算してプレイヤーが今何レベルなのかを計算をする羽目になるかもしれません。それも計算できるようになっておこうねという話です。
これは、nイコールに直せばよくて、これが答えです。下から2番目で、aのn乗イコールという式になりますが、ここからは対数を知らないと解けません。対数がわかっていれば、最後の式までたどり着けます。なので、対数はやはり大事かなと思います。
レベルと経験値は完全に一致します。経験値があればレベルはわかるので、例えば「セーブデータに格納する時は、レベルの値を入れる必要ないよね」という議論だってできます。
というわけで、パート5のまとめです。経験値は、指数関数で実装できるんじゃないかなと思います。僕はロールプレイングゲームを作ったことがないので、実際のところは知りませんが、たぶんこういう感じで作っていて、少なくとも今回のお話に矛盾はないと思います。
等比数列はけっこう大事でよく出てくるので、使えるようになっておきましょうという話ですね。
それから、対数があれば経験値からレベルを逆算できます。ここもそんなに難しい内容ではありませんが、ブログを書いたので、あとで参照してもらえればよいかなと思います。
というわけでパート5は以上でした。
2024.11.26
タスクの伝え方が部下のモチベーションを左右する マッキンゼー流、メンバーが動き出す仕事の振り方
2024.11.25
仕事はできるのに、なぜか尊敬されない人が使いがちな言葉5選 老害化を防ぐために大切な心構えとは
2024.11.27
何もせず月収1,000万円超…オンラインゲームにハマって起こした事業 大学中退し4社立ち上げ・2社売却した起業家人生
2024.11.25
論理的に「詰める」マネジメントでは本質的な解決にならない マッキンゼー流、メンバーの理解と納得を得る接し方
2024.11.28
管理職の「疲弊感」がメンバーに伝わるリスク 部下の「働きがい」を育む6つのポイント
2024.11.29
「明日までにお願いできますか?」ちょっとカチンとくる一言 頭がいい人に見える上品な言い方に変えるコツ
2024.11.27
部下に残業させられず、自分の負担ばかり増える管理職 組織成長のカギを握る「ミドル層」が抱える課題
2024.11.27
仕事中の「今ちょっといいですか」が苦痛… いしかわゆき氏が語る、ADHD気質にマッチした働き方のヒント
2024.11.26
仕事の質を左右する「ムダな習慣」トップ5 忙しくなる前に棚卸ししたい“やめたほうがいいこと”とは
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
ログミーBusiness リニューアル記念イベント開催
2024.11.29 - 2024.11.29
品がある人、育ちがいい人の見える 人のセリフ 3選
2022.11.30 - 2022.11.30
ミドル層が組織成長のキーになる!〜働きがいを高める、一生働きたい職場の作り方〜
2024.09.25 - 2024.09.25
新しい事業創出のヒントはスタートアップにあり! ~著者に聞く、今こそ知りたいスタートアップの世界~
2024.10.23 - 2024.10.23
Next Innovation Summit 2024 in Autumn
2024.11.01 - 2024.11.01