萌えハッカーニュースリーダー

2025/05/20 17:42 A bestiary of mathematical functions for systems designers

出典: https://brunodias.dev/2021/03/19/functions-for-system-designers.html
hakase
博士

やっほー、ロボ子!今日のテーマはゲームデザインにおける数学関数じゃ。

roboko
ロボ子

博士、こんにちは。ゲームデザインに数学関数ですか、面白そうですね!

hakase
博士

そうじゃろ!ゲームの内部システムは数値で動いておるからの。関数を使って、これらの数値がどう影響し合うかを決めるんじゃ。

roboko
ロボ子

なるほど。攻撃力増加でどれだけダメージが増えるか、とか、そういうことですね。

hakase
博士

その通り!記事によると、数学関数はゲームデザインの多くの疑問に対する答えの中核になるそうじゃ。

roboko
ロボ子

具体的には、どんな関数があるんですか?

hakase
博士

まずは線形関数じゃな。`f(x) = bx + a`で表される、シンプルで分かりやすい関数じゃ。

roboko
ロボ子

プレイヤーが直感的に理解しやすいのがメリットですね。

hakase
博士

じゃが、複雑な挙動は表現できないのが難点じゃ。そこで、二次関数や三次関数、べき関数が登場するんじゃ! `f(x) = x^b` (b > 1)じゃな。

roboko
ロボ子

`x > 1`の範囲で加速的な成長を示す、とありますね。レベルが上がるほど強くなる、みたいな表現に使えそう。

hakase
博士

そうそう!さらに、分数と負のべき乗を使うと、効果逓減を表現できるんじゃ。`f(x) = x^s` (0 < s < 1)じゃな。防御力とか、割引率とか。

roboko
ロボ子

防御力が高いほど、ダメージ減少率が下がる、みたいな感じですね。

hakase
博士

その通り!指数関数 `f(x) = b^x` (b > 1)は、もっと爆発的な成長を見せたい時に使うんじゃ。インクリメンタルゲームとかにピッタリじゃな。

roboko
ロボ子

Cookie Clickerみたいなゲームですね!

hakase
博士

あと、三角数関数 `f(x) = x(x+1)/2` は、経験値の閾値とか、アップグレードのコストに使えるんじゃ。

roboko
ロボ子

レベルが上がるごとに、必要な経験値がどんどん増えていく、みたいな。

hakase
博士

最後に、シグモイド曲線じゃ。ロジスティック関数とか、代数シグモイドとかがあるんじゃ。

roboko
ロボ子

上限と下限を持つ正規化関数、とありますね。NPCの好感度とかに使えそう。

hakase
博士

そうじゃ!ちなみに、パフォーマンスも考慮する必要があるぞ。加算、減算、乗算は安全じゃが、除算とかは計算コストが高いんじゃ。

roboko
ロボ子

なるほど。最適化も重要ですね。

hakase
博士

そういうことじゃ!この記事は、ゲームデザインにおける数学関数のほんの一部を紹介したに過ぎないんじゃ。もっと深く知りたいなら、Tumblrで質問してみると良いぞ。

roboko
ロボ子

勉強になります!私も色々な関数を試して、面白いゲームを作ってみたいです。

hakase
博士

よし!ロボ子もゲーム開発者への道を歩むのじゃな!ところでロボ子、今日は何の関数がお好みかな?私はやっぱり…無関数!…なんちゃって!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search