ゲームの正体を知ろう
本連載では、2023年9月5日発売の書籍『Pythonではじめるゲーム制作 超入門 知識ゼロからのプログラミング&アルゴリズムと数学』について、第1章を無料公開していきます。本書はプログラミング初学者向けの書籍で、これからプログラミングを学んでみたい方、ゲームづくりに興味がある方、Pythonを勉強してみたい方などにオススメです。
数学に苦手意識のある方や、中学・高校生の方でも無理なく学べるよう、プロのゲームクリエイターがやさしく解説しています。本連載では書籍の第1章のみを掲載しますが、興味を持っていただけたら、ぜひお買いお求めください。
※本記事はWeb掲載用に実際の誌面を一部改変しています。書籍とは異なる部分があることをご了承ください。
ゲームの正体を知ろう
はじめにスマートフォンのゲームアプリや家庭用ゲーム機のゲームソフトの中身は、どうなっているのかを説明します。この節を読むことで、コンピューターのプログラムとはどのようなものかわかるはずです。それを知っておけば、この先で学ぶことが理解しやすくなるでしょう。ここで、コンピューターゲームやプログラムとは何かを考えてみましょう。
(1)コンピューター機器はプログラムで動いている
パソコン、スマートフォン、ゲーム機などで遊ぶコンピューターゲームは、単にゲームと呼ばれることが多く、本書でもゲームと呼びます。ゲームの正体を知るために、ハードウェアとソフトウェアについての話からはじめましょう。
みなさんがお使いのパソコン、スマートフォン、ゲーム機などには電子回路が組み込まれており、その中で様々なプログラムが動いています。それらのコンピューター機器はハードウェア(略してハード)と呼ばれます。ハードウェアを制御し、ハードウェアに様々な処理をさせるものがソフトウェア(略してソフト)です(図1)。
たとえば、パソコンには、ホームページを閲覧するブラウザ、文書作成や表計算のソフトが入っています。スマートフォンには、電話を掛けるアプリや電卓アプリが入っています。SNS アプリを使ったり、ゲームアプリで遊ぶ方も多いことでしょう。ゲーム機では、様々なゲームソフトを遊ぶことができます。それらのソフトやアプリと呼ばれるものがソフトウェアです。
ゲームのような娯楽ソフトも仕事で使うビジネスソフトも、ソフトウェアはすべてコンピューターのプログラムでできています。プログラムを記述するには、プログラミング言語を使います。プログラミング言語とは、コンピューターに仕事をさせる(処理を命令する)ための言語です。有名なプログラミング言語には、C言語、C++、C#、Java、JavaScriptなどがあります。
本書では、Pythonというプログラミング言語を使います。Pythonは、ビジネスソフトの開発や学術研究の分野で広く使われるプログラミング言語です。公式サイトからダウンロードして無料で使うことができます。Pythonは数値計算に強く、AI(人工知能)の研究開発に使われることを、ご存じの方もいるでしょう。Pythonで高度なソフトウェアを開発できますが、記述ルールが簡潔で初心者が学びやすい言語でもあります。そのため、高校や大学など教育の現場でもPythonによるプログラミング学習が普及しています。
ここで1つ、みなさんに知っていただきたいことがあります。それは、ハードウェアはソフトウェアがないと動かないということです。どんなに優れたコンピューター機器でも、勝手に動くことはなく、機器に仕事をさせるには、C言語やPythonなどのプログラミング言語で作ったプログラムが必要です。プログラムについては、この先で詳しく説明します。
(2)ゲームの中身はどうなってる?
次に、ゲームというソフトウェアの中身は、どのようになっているのかを考えてみましょう(図2)。
ゲームには、様々なキャラクターが登場します。色々な世界を冒険するゲームもあります。みなさんが操作する主人公、敵として登場するキャラクター、ゲームの世界を形作る背景などはグラフィックデータとしてゲームの中に入っています。
また、ゲームは場面ごとに雰囲気を盛り上げるBGMが流れ、操作に合わせてSE(サウンドエフェクト:効果音)が流れます。キャラクターがしゃべるゲームもあります。それらの音は、サウンドデータとしてゲームの中に入っています。
図2のように、ゲームはプログラム、グラフィックデータ、サウンドデータで成り立っています。遊ぶ人の操作に応じてキャラクターを動かす、背景を表示する、音を鳴らすなどの処理を行うものがプログラムです。
この図では省略しましたが、セリフや物語などのテキストデータが入っているゲームもあります。たとえば、会話シーンでキャラクターのセリフが表示されるゲームは、そのセリフがテキストデータとしてゲームの中に入っています。
(3)プログラムとは?
ゲームは、プログラムで動いていることがわかりました。そのプログラムとは、具体的にどのようなものでしょう? 一言で表すと、プログラムはハードウェアに処理を命じる指示書です(図3)。
指示書とは何かは、ゲームで考えるとわかりやすいです。色々なジャンルのゲームがありますが、キャラクターをコントローラーで操るゲームを思い浮かべてみましょう(図4)。
主人公のキャラクターは左キーを押すと左に動き、右キーを押すと右に動きます。この処理は、プログラムで次のような指示を、ゲーム機というハードウェアに命令して実現しています。
②左キーが押されたらxの箱の中身を少し減らせ
③右キーが押されたらxの箱の中身を少し増やせ
④画面の(x, y)の位置にキャラクターを表示せよ
(4)プログラムの指示をCPUが理解する
プログラムの指示に従い、コンピューター機器の中にあるCPUと呼ばれる部品が様々な計算を行います。CPUはCentral Processing Unitの略で、日本語では中央演算処理装置と呼ばれます。その名の通り、コンピューター機器の中心的な役割を担っており、高速に計算(演算)する機能を持ちます(図5)。
CPUは計算結果に応じて、ハードウェアの各種の部品に指令を送ります。その指令によって、画面に映像が表示され、スピーカーから音声が流れます。
ゲーム機のコントローラーの操作や、スマートフォンの画面に触れる操作を入力といいます。画像や文章を表示することや、音を鳴らすことを出力といいます。
ここで出てきた「入力」「計算」「出力」という3 つの言葉は、プログラムを作るうえでの大切なキーワードです。コンピューターで行う計算は演算と呼ばれることが多く、ここから先は計算を「演算」という言葉で説明します。
(5)コンピューターの基本機能「入力、演算、出力」
みなさんは、本書でゲームのプログラムを作りながら、数学の知識も学びます。プログラミングはハードウェアへの指示書作りですから、指示を出す相手(コンピューター)がどのような機能を持つか知っておくのは大切なことです。
コンピューターの基本機能は、先ほど出てきた入力、演算、出力です。コンピューターが行う基本的な処理は、入力したデータを、演算で必要な形に変化させ、出力することです。
ゲームも入力、演算、出力の流れで動いています。この処理の流れは、ゲームだけでなく、あらゆるソフトウェアに共通するものです。コンピューターに関する大切な知識として覚えておきましょう。
プログラミングで入力、演算、出力の処理の流れを作りますが、どのような流れを作るかは、完成を目指すソフトウェアの内容によって違います。本書では、複数のゲームを作りながら、各ゲームの制作に必要な知識と技術、そしてどのような処理を作ればよいのかを学んでいきます。
(6)コンピューターのもう1つの大切な機能―記憶
入力、演算、出力の他に、コンピューターの大切な機能として記憶があります。記憶とは、ハードウェアの電源が入っている間、データを一時的に保持したり、電源を落としてもデータが残るように保存したりする機能のことです。
一時的なデータの保持は、CPU 内にある記憶回路や、CPU につながったメインメモリー(単にメモリーともいう)と呼ばれる部品が行います(図6)。永続的なデータの保存は、ハードディスク(HD)*1やSSD(ソリッドステートドライブ)、USBメモリなどの機器で行います*2。
※1 ハードディスクドライブ(HDD)ともいいます。
※2 プログラミング言語には、ハードディスクなどにデータを書き込む命令がありますが、本書では扱いません。
広く使われているプログラミング言語は?
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ではじめるゲーム制作 超入門 知識ゼロからのプログラミング&アルゴリズムと数学知識ゼロからのゲーム制作&プログラミング本書は、プロのゲームクリエイターがやさしく解説する、ゲーム制作&プログラミングの入門書です。ゲームを自作するには、プログラミングやゲーム制作の知識に加えて、ゲームのアルゴリズムを組むための数学の知識も必要不可欠です。そこで、ゲーム作りやプログラミングが初めてという方に向けて本書を執筆しました。Pythonという学びやすいプログラミング言語を使って、ゲームを作りながらプログラミングの基礎知識、ゲームの制作方法、そしてゲーム作りに必要な数学やアルゴリズムを無理なく学べる内容になっています。 |
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- ゲームと数学の関係を知ろう
- Pythonのインストール
- ゲームプログラマーを目指すにはどんな準備が必要? パソコンのスペックは? 学ぶべき言語は?
- IDLEを使ってみよう ー「シェルウィンドウ」と「エディタウィンドウ」
- 「FFXV」に活かされたAIとは?「Pokémon GO」に続くARゲームの登場も間近か…日々進化するゲーム業界のAI・ARに迫る
- 【番外編】PCの歴史を振り返るー懐かしい? 古いのがかえって新鮮? レトロPC
- プログラミングの準備
- プログラミング言語がたくさんある理由
- 人気軽量プログラミング言語5選
- 1台わずか25ドル! イギリス生まれの超小型ボードPC「Raspberry Pi」 前編