ゲーム制作を通してプログラミングを勉強しよう

# はじめに
ゲーム制作は思い描くものを形にできるだけでなく、プログラミングの基礎を**視覚的にわかりやすく**何より**楽しく**勉強ができる手段です。**プログラミング初心者**ほどゲーム制作を通して勉強するべきだと考えています。
ゲーム制作というと**Unity**や**Unreal Engine**などが有名ですね。しかし、これらのプラットフォームは一般的に難しいとされているC#やC++などの言語を用います。プログラミング初心者の方は手を出しにくいことかと思います。無理やり勉強して挫折したら元も子もないですしね。「ゲームを作ってみたいけど何から始めればいいか分からない」「そもそもプログラミング自体できないし...」　この記事ではそんな方におすすめなゲーム制作環境を二つご紹介します。

# 1.Scratch

![download.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2966635/9c487fe4-f541-d55b-8566-5b2735365ab3.png)

[引用:Wiki](https://ja.wikipedia.org/wiki/Scratch_%28%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%29)

１つ目はScratchです。Scratchとは
> Scratch（スクラッチ）は、Scratch財団がマサチューセッツ工科大学（MIT）メディアラボ ライフロングキンダーガーデングループ（MIT Media Lab Lifelong Kindergarten Group）と共同開発する、8歳から16歳のユーザーがメインターゲットの無料教育プログラミング言語及びその開発環境、コミュニティサイトである。
2022年11月26日時点で、共有されたプロジェクトの数はおよそ1億1743万件、共有されていないプロジェクトの数はおよそ7億7千万件、投稿されたコメントは約7億1665万件、ユーザーの登録数はおよそ9981万ユーザー、日本はそのおよそ1.61%にあたる約150万ユーザーである。

[引用:Wiki](https://ja.wikipedia.org/wiki/Scratch_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E))

です。学校の授業でも使われており、楽しくプログラミングの基礎を学ぶにはうってつけな開発環境です。一見子供向けのように見えますがプログラミング初心者であれば**何歳であっても**やることをおすすめします。何より始めやすさは群を抜いており、**難しい環境構築や前提知識は必要なく**、ブラウザ上でScratchにアクセスするだけです。私自身、プログラミングに興味を持ったのもScratchのおかげでした。

## Scratchの始め方

①上でも書きましたがScratchはブラウザから利用できます。まず「scratch」と検索してください。
![スクリーンショット 2022-12-08 131857.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2966635/18bc485f-2eaf-b316-5f39-67ab853d4ea9.png)
「Scratch - Imagine, Program, Share」というページが出てきたと思います。開いてみましょう。下のURLからもアクセスできます。

https://scratch.mit.edu/

②下のようなページが出てきたら上のバーにある「作る」を押してみましょう。
![スクリーンショット 2022-12-08 132505z.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2966635/11b7ff63-71ac-5d96-06d6-85d55985685e.png)

③ここでゲームを作ることができます。チュートリアルなどもあるのでそこから始めてみましょう！
![スクリーンショット 2022-12-08 141338.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2966635/083e295a-2e70-6097-7173-5ec573e56442.png)

今回はゲームの作り方を割愛させていただきます。下の記事がとても分かりやすかったです。

https://tool-zukan.com/column/4228/

④プロジェクトを作る前にアカウントを作成しましょう。アカウントを作ることで自分のプロジェクトを保存したり世界中に投稿できたりもします。※アカウント登録は無料です

![スクリーンショット 2022-12-08 132505a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2966635/a465de7c-404a-40c4-913b-48c3336a468a.png)

# 2.Pygame

![download.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2966635/3e3ab16b-db0e-6390-b55b-23ceb2bdc140.png)

[引用:Wiki](https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Pygame_logo.svg)

二つ目はPygameです。Pygameとは
> ビデオゲームを製作するために設計されたクロスプラットフォームのPythonモジュール集であり、Pythonでコンピュータグラフィクスと音声を扱うためのライブラリを含んでいる。pygameは、SDL ライブラリの上に構築されており、C言語のような低水準の機構を使わずにリアルタイムのコンピュータゲームを開発できるようにするための配慮がなされている。これは、計算量の多い関数（主にグラフィクス処理）のほとんどはゲームロジック自体から切り離せるという想定にもとづいており、それがPythonのような高水準言語をゲーム開発に使用することを可能にしている。

[引用:Wiki](https://ja.wikipedia.org/wiki/Pygame)

です。要は**Pythonでゲームを作るためのもの**ですね！

## Pygameをおすすめした理由
Pygameをおすすめした理由として、プログラミング初心者の方は特に「**Python**」を勉強するべきだと考えているからです。PythonをすすめているのかPygameをすすめているのか分からなくなっていますが、Pythonは世界中で人気があり将来性もあります。そして何より初心者に分かりやすい言語だといわれています。まだ何を勉強するか決めていないという方はPythonを選択してみてはいかがでしょうか？私もいくつかの言語を触ってみましたが、中でもPythonが一番書きやすかったです。
![tiobe202101_eyecatch.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2966635/86fbaa3e-318f-1f52-fa43-a992e05eb010.png)

[引用:Ledge.ai](https://ledge.ai/tiobe-index-for-january-2022/)

Pygameを使っていくうちにPythonが自然と身に付きます。Pythonの勉強をしたい方もそうでない方もPygameを選択してみてはいかがでしょうか？
↓Pygameで制作されたゲームの一例

 https://www.youtube.com/watch?v=HBbzYKMfx5Y

#### Pygameのデメリット

しかし**Pygameでは3Dゲームを作れなかったり、他に比べ処理速度が遅い**ことがデメリットとして挙げられます。Pygameを利用している企業も少なく大規模なゲームを作るには向いていないといえます。ただ、今回は「趣味でのゲーム制作や言語の勉強に使う」ということを想定しています。ご了承ください。※私は処理速度の遅さを感じませんでした。

## Pygameの始め方
Pygameをインストールしていきます。前提としてPygameをインストールするにはPython環境が必要です。今回はPythonを入れる過程は省きます。下記の方の記事がとても分かりやすかったです。

https://qiita.com/oyan29/items/832f0616589c9f0fcf9d

ここからはPython環境が整っている前提で進めていきます。

①「コマンドプロンプト」を起動してください。
![スクリーンショット 2022-12-08 101549.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2966635/86283ef5-b79b-27c6-6cfc-9af0e2ad0c82.png)

②起動できましたら「python -m pip install pygame」と入力し実行してください。
![スクリーンショット 2022-12-08 102607.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2966635/850c819f-729b-37a2-0468-9f2ea2297517.png)

③確認のため「Python」と入力しEnterを押した後「import pygame」と入力し同じく実行してください。エラーが表示されなければ成功です。
![スクリーンショット 2022-12-08 102940.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2966635/a0a47fa7-c1c9-6cc2-2edf-9e0da5a07aaf.png)
これでPygameをインストールできました。今回はPygameの細かな説明は割愛させていただきます。QiitaやYoutubeはもちろん公式ドキュメントなども活用してみてください。

http://westplain.sakuraweb.com/translate/pygame/

# まとめ
勉強、ゲーム制作の参考になりましたでしょうか？？ぜひゲーム制作を通して勉強をしてみてください！この「おすすめ」は私の経験から判断したものですのでのご参考までにお願いします。

## 参考文献

https://qiita.com/i-tanaka730/items/ad56461a4f223fdbb4e5

https://ja.wikipedia.org/wiki/Scratch_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E)

https://ja.wikipedia.org/wiki/Pygame

<br>
<br>
<br>

最後までご覧いただきありがとうございました。

この記事は IPFactory Advent Calendar 2022 の 9 日目の記事です。

https://qiita.com/advent-calendar/2022/ipfactory

昨日は y0d3n 先輩による「file:/// の Origin について、一昔前のセキュリティリスク」でした。

https://y0d3n.hatenablog.com/entry/2022/12/08/000636

本当にレベルが高くて勉強になります。早くこれを理解できるようになりたい！


>さて、明日の枠が埋まっていません。命のリレーは途切れてしまうのでしょうか。

↑このy0d3n先輩のコメントを見て急遽記事を書きました。しかし！またもや明日の枠が埋まっていません。今度こそ命のリレーは途切れてしまうのでしょうか。※私は明日から数日間大阪に行くのでしばらく記事は書けません。