パチンコ台データオンライン

ゲームと数学の関係を知ろう

2023年9月5日(火)
廣瀬 豪 (ひろせ つよし)
本連載では、2023年9月5日発売の書籍「Pythonではじめるゲーム制作 超入門」の第1章を無料公開していきます。第2回の今回はゲームを作る上で知っておきたい知識について解説します。

本連載では、2023年9月5日発売の書籍「」について、第1章を無料公開していきます。本書はプログラミング初学者向けの書籍で、これからプログラミングを学んでみたい方、ゲームづくりに興味がある方、Pythonを勉強してみたい方などにオススメです。

数学に苦手意識のある方や、中学・高校生の方でも無理なく学べるよう、プロのゲームクリエイターがやさしく解説しています。本連載では書籍の第1章のみを掲載しますが、興味を持っていただけたら、ぜひお買いお求めください。

※本記事はWeb掲載用に実際の誌面を一部改変しています。書籍とは一部異なる部分があることをご了承ください。

ゲームと数学の関係を知ろう

この節では、ゲームのプログラムと数学の関係について見ていきます。プログラミングと数学は密接な関係にあり、それを知っておくことは、この先の学習で役立ちます。数学といっても難しい話ではありませんので、気楽に読み進めてください。

(1)体力を減らしたり、増やしたりするー変数

キャラクターに体力(HPやLIFEなど)が設定されているゲームがあります。主人公や仲間たちの体力は、大切な値です。ゲームによっては、敵のキャラクターにも体力があります。

体力などの値はプログラムでは、変数と呼ばれるものに入っています。変数は数値などのデータを入れておく箱のようなもので、ゲーム制作に限らず、ソフトウェアを作るときに必ず使います。変数をイメージで表すと、図1のようになります。

変数のイメージ

図1:変数のイメージ

変数は第2章で学びますので、ここでは、体力やスコアの値を保持しておく箱をプログラムで使うと考えておきましょう。

プログラムの変数は、数学で使う変数と似たようなものです。プログラムでは、主人公がダメージを受けたら体力を減らす、回復アイテムを使ったら体力を増やすなどの計算を、変数の値を増やしたり減らしたりして行います。

プログラムの変数は数学と似た使い方をする他に、様々な処理を行うためにも使います。たとえば、プレイヤーがゲームをどこまで進めたかを管理する変数を用意し、値が1のときは「出発地点の町にいる」、値が2のときは「1つ目のダンジョンにいる」というように、ゲーム進行を管理するためにも使います。

(2)敵が追いかけてくるー物体がどこにあるか(座標)

コンピューター画面の座標について、ゲームと数学の関係を交えて説明します。座標とは、直線上、平面上、空間内などで、物体がどこにあるかを示す値のことです。

たとえば、敵キャラが、プレイヤーが操作する主人公を追いかけてくるゲームを思い浮かべてください。主人公の体力が落ちているときに敵の群れが現れました。戦うには不利なので逃げても、敵キャラたちは執念深くあなたを追いかけてきます。このままではやられてしまいます!

そのような状況に出くわすと、敵キャラに意思があると感じることがあるかもしれません。実際には意思があるのではなく、キャラクターがそのような動きをするようにプログラミングされています。

では、敵キャラが主人公を追いかける仕組みは、どうなっているのでしょう?

その処理は、実は難しいものではありません。敵と主人公の座標の値を比べることで、敵をどちらに動かせばよいかを判断し、敵の座標を変化させます。この仕組みを、x軸上に敵と主人公がいると仮定して説明します(図2)。

キャラクターの座標ー単純な横への動き

図2:キャラクターの座標ー単純な横への動き

敵はmx、主人公はpxという変数にx座標の値が入っているとします。mxはモンスター(monster)のxの値、pxはプレイヤー(player)のxの値と考えましょう。x軸の値は、プログラムでも数学でも、右に行くほど大きくなります。

敵が左、主人公が右にいるなら、mxの値はpxより小さく、大なり小なりの不等号で表すとmx

主人公が左、敵が右にいるなら、変数の大小関係はpx px)です。このとき、mxの値を減らせば、敵が主人公に近づきます。

(3)近くにいる? 遠くにいる?
ーゲームの中に広がる世界(2次元平面)

座標について、もう少し考えてみましょう。図3のように、平面上に3種類のキャラクターがいるとします。緑のスライムは(mx1, my1)、紫のゴーストは(mx2, my2)、主人公は(px, py)の位置にいます。

キャラクターの座標ー2次元平面

図3:キャラクターの座標ー2次元平面

コンピューター画面における座標は、一般的に左上角が原点(0, 0)です。x軸は数学と同じ向きですが、y軸は数学と逆で、下に行くほど値が大きくなります

敵は一定距離に近づくと主人公を追いかけ始めるとしましょう。それをプログラムで実現するには、主人公と敵がどれくらい離れているかを、2 点間の距離を求める数学の公式で計算します。そしてたとえば、その値が200以内なら追跡をはじめ、400以上なら追跡をあきらめるなどの行動パターンをプログラミングします。距離を求める公式とその使い方は、ゲーム制作の技術を学ぶ中で説明します。

敵の行動をプログラムで複数パターン用意することで、そのキャラクターが意思を持って動いているように見せることができます。そのような仕組みのベースとなるものも数学なのです。

(4)数学の様々な知識を活用する

ここでは、変数と座標についてゲームと数学の関係を説明しました。他にも図形、絶対値、n進法、三角関数など、数学的知識を使うことで、より凝った内容のゲームを作ることができます。本書では実際にゲームのプログラムを入力しながら、それらの知識を学んでいきます。

廣瀬 豪 著
価格:2,400円+税
発売日:2023/9/5発売
ISBN:978-4-2950-1765-3
発行:インプレス

      

知識ゼロからのゲーム制作&プログラミング

本書は、プロのゲームクリエイターがやさしく解説する、ゲーム制作&プログラミングの入門書です。ゲームを自作するには、プログラミングやゲーム制作の知識に加えて、ゲームのアルゴリズムを組むための数学の知識も必要不可欠です。そこで、ゲーム作りやプログラミングが初めてという方に向けて本書を執筆しました。Pythonという学びやすいプログラミング言語を使って、ゲームを作りながらプログラミングの基礎知識、ゲームの制作方法、そしてゲーム作りに必要な数学やアルゴリズムを無理なく学べる内容になっています。

著者
廣瀬 豪 (ひろせ つよし)
ゲームクリエイター/ゲーム制作技術伝承者

早稲田大学理工学部卒。ナムコと任天堂子会社で働いた後、ゲーム制作会社を設立し、セガ、タイトー、ケムコなどのゲームを100タイトル以上開発してきた。現在は、技術書の執筆、プログラミングやゲーム開発の指導、教育番組のプログラミングコーナーの監修などを行っている。プログラミングは中学生から始め、C/C++、C#、Java、JavaScript、Python、Scratch、アセンブリ言語など、様々な言語でゲーム開発やアルゴリズム研究を続けている。
著書は『7大ゲームの作り方を完全マスター! ゲームアルゴリズムまるごと図鑑』(技術評論社)、『野田クリスタルのこんなゲームが作りたい! Scratch3.0 対応』(インプレス・共著)、『Pythonでつくる ゲーム開発 入門講座』( ソーテック社)ほか多数。

連載バックナンバー

開発言語技術解説
第5回

IDLEを使ってみよう ー「シェルウィンドウ」と「エディタウィンドウ」

2023/10/4
本連載では、2023年9月5日発売の書籍「Pythonではじめるゲーム制作 超入門」の第1章を無料公開していきます。最終回の今回はPythonに付属の「IDLE」というツールで、実際にプログラムを入力して動作確認します。
開発言語技術解説
第4回

Pythonのインストール

2023/9/22
本連載では、2023年9月5日発売の書籍「Pythonではじめるゲーム制作 超入門」の第1章を無料公開していきます。第4回の今回はプログラミング環境を構築するためにPythonのインストール方法を解説します。
開発言語技術解説
第3回

プログラミングの準備

2023/9/14
本連載では、2023年9月5日発売の書籍「Pythonではじめるゲーム制作 超入門」の第1章を無料公開していきます。第3回の今回は実際にゲームプログラミングをはじめる前の準備をしていきます。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています