ゲレの工房

ゲーム好きの中の人が、自分が作りたいアプリを作る記録です

小学校のプログラミング授業必修化や夏休みに入る前に、ゲーム FF14 でプログラミング教育・シェルスクリプトを体験してみませんか?


スポンサーリンク


この記事を書いている時期は夏休み前の2019年7月21日。
外を出歩くとプログラミングの夏休み教室の広告。
スマホにもプログラミング教習の通知が飛んできたりしていました。

f:id:gelehrtecrest:20190721094823p:plain こちらはスマホ東急ハンズから送られてきた通知から、飛んで行った先のWebサイト

とはいえ、一般的な家庭では、家庭内で自習勉強するためのプログラミング環境が整わないのではないでしょうか。

さて、一方私はFF14というゲームをやっています。スクウェア・エニックス社のオンラインゲームです。
実はプログラミング勉強・プログラミング教育ができる環境が整っています!

Windows PCやPS4の環境さえあればプログラミング体験ができるってすごくないですか?
しかも、プログラミング体験をするだけならFF14のフリートライアルだけで期間無制限で体験できます。

www.finalfantasyxiv.com

もちろん体験だけなので、プログラミング教育で学べることを全て体験できるわけではないですが、最初の一歩にはいいかと思いますよ。
今日はそんなお話です。

本記事の対象読者

  • Windows PCもしくはPS4もしくはMac PCをお持ちの方
  • 対象年齢:全年齢
  • 今度学校でプログラミング授業が始まるという前に、少しでも勉強しておきたいお子さん
  • お子さんがプログラミングを学んでくるので、その前にプログラミングを少しでも勉強しておきたい親御さん
  • FF14をすでにプレイしている人で、自分の動かしているマクロがどうやって動いているのか知りたい人

本記事で学べること・学べないこと

学べること

  • プログラミングがどのように流れるのか、シェルスクリプトを用いた練習
  • 引数
  • 定数と変数と引数

それぞれの用語については随時説明します。

学べないこと

  • if文やfor文など、FF14では実装されていないコマンド

なぜ FF14 でプログラミング体験ができるのか

実は、FF14である必要はありません。例えばスクウェア・エニックス社のゲームではFF11FEZなどでも体験できます。
ただ今回は私が今遊んでいるゲームがFF14なので、FF14を例に使って説明したいと思います。

FF14のマクロはシェルプログラミング

ゆっくり説明します。
FF14はオンラインゲームなので、コミュニケーションをとるためのチャットを打ち込む場所(チャット欄)があります。

f:id:gelehrtecrest:20190721100718p:plain

ここで「おはよう」って打ち込むと、チャット欄に「おはよう」と書かれます。

おはよう と書き込むと

f:id:gelehrtecrest:20190721101057p:plain

おはよう と発言できる

f:id:gelehrtecrest:20190721101117p:plain

実はこのチャット欄はシェルでもあるのです。

シェルとは?

細かい話を省くと、シェル(Shell)とは、自分の打ち込んだコマンドを機械に読み込ませるための受付部分と言えるでしょう。
何を言いたいかというと、実際にはこういう処理が行われていると言えます。

  • FF14のゲーム画面から「おはよう」と入力する
  • FF14のサーバー側が「おはよう」とチャット欄に出したいと認識する
  • FF14のサーバーからゲーム内のチャット欄に「おはよう」と出す命令を出す
  • FF14内のチャット欄に「おはよう」と出る。

また、FF14ではチャット欄の最初に「/」を入力すると、それがチャットによる会話ではなく、シェルに自分のコマンドを打ち込むための宣言をしていることになります。
チャット以外のことをさせたい場合は「/」を使うことがほとんどです。

例えば 「/wave」と打ち込むと

f:id:gelehrtecrest:20190721101812p:plain

ゲーム内のキャラクターが手を振ります

f:id:gelehrtecrest:20190721101936p:plain

もちろんチャット欄内のメッセージだけでなく、ゲーム内のキャラクターも手を振りますよ。
f:id:gelehrtecrest:20190721102119p:plain

実はこれだけでシェルプログラミングができてしまっています。一行だけのプログラミングです。
プログラミング風に言うと

/wave

というプログラムを実行したことになります。

実行の流れを言うと

  • FF14のゲーム画面から「/wave」と入力する
  • FF14のサーバー側が「/wave」という処理をしたいと認識する
  • FF14のサーバーからゲーム内のキャラクターに手を振らせる命令を出す
  • FF14のキャラクターが手を振る

となります。
今回はFF14のゲームの流れで話しましたが、シェルでのプログラミングはこのような処理を行います。
そしてこのコマンドをまとめたのがプログラミングの世界ではシェルスクリプト(Shell Script)と呼び、FF14ではマクロと呼んでいるだけです。

シェルスクリプトについて詳しく知りたい人はこちらのサイトも参考になるかもです。
eng-entrance.com

FF14のマクロはシェルスクリプト

FF14のゲームを始めると、最初から登録されているマクロがあります。
マクロというのはゲーム内の行動を一つに纏めている実行用のボタンなのですが、この中身はシェルスクリプトになっています。

f:id:gelehrtecrest:20190721102909p:plain

マクロの中身は

こんにちは!
/wave

これを実行すると、「こんにちは!」の発言と手を振る行動を行います。
ゲーム内では同時に行ったように見えますが、シェルスクリプトは上から順番に処理が行われます。
「こんにちは!」の発言から「/wave」の手を振る行動までの処理が一瞬で行われるため、同時に行われたように見えるだけです。

プログラムの多くは上から処理するものが多いので、この感覚を掴んでおくのは重要かと思います。

引数とは

「/」を付けたコマンドに対して、さらに処理を追加したいときに使います。
例えば

f:id:gelehrtecrest:20190721112155p:plain

/fc 少し離席します
/cwl1 少し離席します

と登録したマクロを実行すると、「/fc」の後に発言した内容は「FC」というチャットチャンネルに、「/cwl1」の後に発言した内容は「CWLS1」というチャットチャンネルに発言します。
f:id:gelehrtecrest:20190721112452p:plain

このように、コマンドに対して処理したいことを追加したいときに引数という概念を使います。
詳しい引数についての使い方はそのコマンドによって違うので、それぞれ調べてみると面白いですよ。

ちなみにゲーム内では

/? /fc

のように「/?」コマンドに引数として調べたいコマンドを入力するとマニュアルが出てきます。

定数と変数?

本記事の最初に定数と変数という言葉の紹介だけしました。
実はFF14のゲーム内では定数と変数が区別して説明があまり行われていないので、ここでも同時に説明したいと思います。

定数とは

FF14ゲームで決められた言葉で、変更されることのなく実行される言葉です。
例えば

ゆっくりと
言葉を
たくさん
話すときに
wait定数を使うことが
あります

f:id:gelehrtecrest:20190721105750p:plain

これを実行すると次のようになります。
f:id:gelehrtecrest:20190721105944p:plain

ここでは定数 を使っています。定数 は「次の処理を行うまでに3秒待つ」という意味になります。
これを実行すると1行ずつ3秒間隔で言葉をしゃべるので、ゆっくりしゃべることになります。

このなどの定数は実際FF14のゲームでよく使われています。
少し脱線する話題になるので、例が書かれているリンクだけ載せておきますね。
jp.finalfantasyxiv.com

定数の概念は実際のWindowsLinuxなどのプログラミングでは、環境変数や自分で定義した定数として使われるので覚えておくとよい概念かと思います。

変数と代入

FF14ゲームで決められた言葉で、プレイヤーに合わせて実行される言葉です。
例えば

/wave

これは「/wave」というコマンドに引数「」が入った形ですね。では「」とは何でしょうか?
この「」にはゲーム内のキャラクターが見ているものが入ります。
このように、私たち側で入る意味が変わる言葉を変数と言い、意味を変えるための行動を代入と言います。

数学で定数とか代入とか勉強しましたよね。まぁそれと同じです。

例えば「呼び鈴」をターゲットしている状態だとします
f:id:gelehrtecrest:20190721113250p:plain

この状態で「/wave 」と入力すると、呼び鈴に向かって手を振ります。
f:id:gelehrtecrest:20190721113451p:plain

なお、この代入の方法にはいろいろFF14では用意されていてなどがありますが、ここでは説明を省きます。

では、どうやってFF14でプログラミング勉強をするか

今回はFF14でマクロを用いたシェルスクリプトプログラミングの最初の基本を話しました。
次にやってほしいことは、Google検索などで「FF14 マクロ」と検索し、マクロの例がたくさん読んでほしいことです。

f:id:gelehrtecrest:20190721114119p:plain www.google.com

本記事で学んだことをもとに、先人達が作ったマクロという名のシェルスクリプトを読むことが一番の勉強になると思います。
そうすると、いずれ自分でもマクロを書けるようになるでしょう。
プログラミング初心者でも始めやすい第一歩だと思いますよ!

まとめ

FF14を使ってのプログラミング勉強の話をしました。
再度紹介しますが、PS4Windows PCをお持ちの方は、フリートライアルでFF14を始めることができ、無期限でプログラミング体験を行うことができます。
一度試してみてはいかがでしょうか?

www.finalfantasyxiv.com


スポンサーリンク