ゲームの正体を知ろう

2023年8月25日(金)
廣瀬 豪 (ひろせ つよし)
本連載では、2023年9月5日発売の書籍『Pythonではじめるゲーム制作 超入門』の第1章を無料公開していきます。第1回の今回はゲームを形作るプログラムについて解説します。

本連載では、2023年9月5日発売の書籍『Pythonではじめるゲーム制作 超入門 知識ゼロからのプログラミング&アルゴリズムと数学』について、第1章を無料公開していきます。本書はプログラミング初学者向けの書籍で、これからプログラミングを学んでみたい方、ゲームづくりに興味がある方、Pythonを勉強してみたい方などにオススメです。

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

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

ゲームの正体を知ろう

はじめにスマートフォンのゲームアプリや家庭用ゲーム機のゲームソフトの中身は、どうなっているのかを説明します。この節を読むことで、コンピューターのプログラムとはどのようなものかわかるはずです。それを知っておけば、この先で学ぶことが理解しやすくなるでしょう。ここで、コンピューターゲームやプログラムとは何かを考えてみましょう。

(1)コンピューター機器はプログラムで動いている

パソコン、スマートフォン、ゲーム機などで遊ぶコンピューターゲームは、単にゲームと呼ばれることが多く、本書でもゲームと呼びます。ゲームの正体を知るために、ハードウェアとソフトウェアについての話からはじめましょう。

みなさんがお使いのパソコン、スマートフォン、ゲーム機などには電子回路が組み込まれており、その中で様々なプログラムが動いています。それらのコンピューター機器はハードウェア(略してハード)と呼ばれます。ハードウェアを制御し、ハードウェアに様々な処理をさせるものがソフトウェア(略してソフト)です(図1)。

ハードウェアとソフトウェア

図1:ハードウェアとソフトウェア

たとえば、パソコンには、ホームページを閲覧するブラウザ、文書作成や表計算のソフトが入っています。スマートフォンには、電話を掛けるアプリや電卓アプリが入っています。SNS アプリを使ったり、ゲームアプリで遊ぶ方も多いことでしょう。ゲーム機では、様々なゲームソフトを遊ぶことができます。それらのソフトやアプリと呼ばれるものがソフトウェアです。

ゲームのような娯楽ソフトも仕事で使うビジネスソフトも、ソフトウェアはすべてコンピューターのプログラムでできています。プログラムを記述するには、プログラミング言語を使います。プログラミング言語とは、コンピューターに仕事をさせる(処理を命令する)ための言語です。有名なプログラミング言語には、C言語、C++、C#、Java、JavaScriptなどがあります。

本書では、Pythonというプログラミング言語を使います。Pythonは、ビジネスソフトの開発や学術研究の分野で広く使われるプログラミング言語です。公式サイトからダウンロードして無料で使うことができます。Pythonは数値計算に強く、AI(人工知能)の研究開発に使われることを、ご存じの方もいるでしょう。Pythonで高度なソフトウェアを開発できますが、記述ルールが簡潔で初心者が学びやすい言語でもあります。そのため、高校や大学など教育の現場でもPythonによるプログラミング学習が普及しています。

ここで1つ、みなさんに知っていただきたいことがあります。それは、ハードウェアはソフトウェアがないと動かないということです。どんなに優れたコンピューター機器でも、勝手に動くことはなく、機器に仕事をさせるには、C言語やPythonなどのプログラミング言語で作ったプログラムが必要です。プログラムについては、この先で詳しく説明します。

(2)ゲームの中身はどうなってる?

次に、ゲームというソフトウェアの中身は、どのようになっているのかを考えてみましょう(図2)。

ゲームソフトの中身

図2:ゲームソフトの中身

ゲームには、様々なキャラクターが登場します。色々な世界を冒険するゲームもあります。みなさんが操作する主人公、敵として登場するキャラクター、ゲームの世界を形作る背景などはグラフィックデータとしてゲームの中に入っています。

また、ゲームは場面ごとに雰囲気を盛り上げるBGMが流れ、操作に合わせてSE(サウンドエフェクト:効果音)が流れます。キャラクターがしゃべるゲームもあります。それらの音は、サウンドデータとしてゲームの中に入っています。

図2のように、ゲームはプログラムグラフィックデータサウンドデータで成り立っています。遊ぶ人の操作に応じてキャラクターを動かす、背景を表示する、音を鳴らすなどの処理を行うものがプログラムです。

この図では省略しましたが、セリフや物語などのテキストデータが入っているゲームもあります。たとえば、会話シーンでキャラクターのセリフが表示されるゲームは、そのセリフがテキストデータとしてゲームの中に入っています。

(3)プログラムとは?

ゲームは、プログラムで動いていることがわかりました。そのプログラムとは、具体的にどのようなものでしょう? 一言で表すと、プログラムはハードウェアに処理を命じる指示書です(図3)。

プログラムは指示書

図3:プログラムは指示書

指示書とは何かは、ゲームで考えるとわかりやすいです。色々なジャンルのゲームがありますが、キャラクターをコントローラーで操るゲームを思い浮かべてみましょう(図4)。

主人公を操作するゲーム

図4:主人公を操作するゲーム

主人公のキャラクターは左キーを押すと左に動き、右キーを押すと右に動きます。この処理は、プログラムで次のような指示を、ゲーム機というハードウェアに命令して実現しています。

プログラムによる指示の例(キャラクターの移動処理)
①キャラクターの座標を入れるxという箱と、yという箱※を用意せよ
②左キーが押されたらxの箱の中身を少し減らせ
③右キーが押されたらxの箱の中身を少し増やせ
④画面の(x, y)の位置にキャラクターを表示せよ
※この箱を変数と呼びます。変数は、第2章で説明します。

(4)プログラムの指示をCPUが理解する

プログラムの指示に従い、コンピューター機器の中にあるCPUと呼ばれる部品が様々な計算を行います。CPUはCentral Processing Unitの略で、日本語では中央演算処理装置と呼ばれます。その名の通り、コンピューター機器の中心的な役割を担っており、高速に計算(演算)する機能を持ちます(図5)。

CPUは計算結果に応じて、ハードウェアの各種の部品に指令を送ります。その指令によって、画面に映像が表示され、スピーカーから音声が流れます。

CPUの役割

図5:CPUの役割

ゲーム機のコントローラーの操作や、スマートフォンの画面に触れる操作を入力といいます。画像や文章を表示することや、音を鳴らすことを出力といいます。

ここで出てきた「入力」「計算」「出力」という3 つの言葉は、プログラムを作るうえでの大切なキーワードです。コンピューターで行う計算は演算と呼ばれることが多く、ここから先は計算を「演算」という言葉で説明します。

(5)コンピューターの基本機能「入力、演算、出力」

みなさんは、本書でゲームのプログラムを作りながら、数学の知識も学びます。プログラミングはハードウェアへの指示書作りですから、指示を出す相手(コンピューター)がどのような機能を持つか知っておくのは大切なことです。

コンピューターの基本機能は、先ほど出てきた入力、演算、出力です。コンピューターが行う基本的な処理は、入力したデータを、演算で必要な形に変化させ、出力することです。

ゲームも入力、演算、出力の流れで動いています。この処理の流れは、ゲームだけでなく、あらゆるソフトウェアに共通するものです。コンピューターに関する大切な知識として覚えておきましょう。

プログラミングで入力、演算、出力の処理の流れを作りますが、どのような流れを作るかは、完成を目指すソフトウェアの内容によって違います。本書では、複数のゲームを作りながら、各ゲームの制作に必要な知識と技術、そしてどのような処理を作ればよいのかを学んでいきます。

(6)コンピューターのもう1つの大切な機能―記憶

入力、演算、出力の他に、コンピューターの大切な機能として記憶があります。記憶とは、ハードウェアの電源が入っている間、データを一時的に保持したり、電源を落としてもデータが残るように保存したりする機能のことです。

一時的なデータの保持は、CPU 内にある記憶回路や、CPU につながったメインメモリー(単にメモリーともいう)と呼ばれる部品が行います(図6)。永続的なデータの保存は、ハードディスク(HD)*1やSSD(ソリッドステートドライブ)、USBメモリなどの機器で行います*2

パソコン内部の構造

図6:パソコン内部の構造

※1 ハードディスクドライブ(HDD)ともいいます。
※2 プログラミング言語には、ハードディスクなどにデータを書き込む命令がありますが、本書では扱いません。

COLUMN
広く使われているプログラミング言語は?
ソフトウェア開発の場で広く使われているプログラミング言語を紹介します。

C言語、C++(シープラスプラスまたはシープラプラ)
C言語は1970年代、C++は1980 年代に作られた、歴史のあるプログラミング言語。企業のシステム開発、機器や機械の中で動くプログラム開発(組み込みシステムの開発)、ゲーム開発など、幅広い分野で使われます。

Java(ジャバ)
1990年代に登場した言語で、様々なハードでプログラムを動かせる仕組み(仮想マシン)を持つことが特徴。CやC++と同様に様々な開発に使われます。

JavaScript(ジャバスクリプト)
1990年代に登場した言語で、ホームページの裏側(ブラウザ上)で動きます。Webアプリの開発にも使われます。

C#(シーシャープ)
2000年代にMicrosoft社が開発した言語。Windows用のアプリ開発や、Unityというツールと組み合わせて様々な機器のアプリ開発に使われます。

Swift(スウィフト)
2010年代に登場した、Apple社の製品のプログラム開発に使われる言語。

VBA(ブイビーエー:Visual Basic for Applications)
Microsoft社のOfficeソフトの処理を制御できる言語。Excelなどの処理を自動化するプログラムを開発できます。


Pythonではじめるゲーム制作 超入門 知識ゼロからのプログラミング&アルゴリズムと数学

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

Pythonではじめるゲーム制作 超入門 知識ゼロからのプログラミング&アルゴリズムと数学

      

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

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

Amazon詳細ページへImpress詳細ページへ

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

早稲田大学理工学部卒。ナムコと任天堂子会社で働いた後、ゲーム制作会社を設立し、セガ、タイトー、ケムコなどのゲームを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メルマガ会員のサービス内容を見る

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