ScratchとRobloxのプログラミングには通じるものがある、のお話

子どものプログラミング教育に関わっている人、大体一回は悩むのが

「Scratchの次は何をやる?どうやって移行する?」

という点です。

Scratchは低年齢からでもはじめられる鉄板のビジュアルプログラミング言語として、広く知られていますね。

ビジュアルプログラミングに慣れたら、次はやはりテキストプログラミングにいってほしい、というのがベースの考え。

そこでRobloxのLuaプログラミングです。

こちらでもその共通点をあげて、Robloxが移行先として有用なことを述べていきたいと思います。

ScratchとRobloxのプログラミングは通じるものがある

通じる点① : イベント駆動型のプログラミング

ScratchもRobloxも主にイベントをベースとして処理を作ることが多い「イベント駆動型」のプログラミングといえます。

「イベント」とは、例えば以下のようなもの。

  • ゲームが開始したとき
  • オブジェクトが生成(クローン)されたとき
  • オブジェクトがなにかに触れたとき
  • 〇〇キーが押されたとき
  • メッセージ(シグナル)を受け取ったとき

Scratch、Robloxともに、こういったイベントを起点にしてなにかの処理をする、といった実装が行えるようになっています。

イベント駆動型のプログラミングは、子どもたちにとって直感的で理解しやすく、インタラクティブな処理を作りやすいです。

Updateのような更新処理を作って処理を行うことも両者とも可能ではありますが、

こういったイベントをベースとした処理ができる機構が整っており、それをベースにプログラミングしていくことが多い、という点で大きな共通点といえます。

通じる点② : オブジェクトごとの独立した並列処理を作る

ScratchもRobloxもオブジェクトごとに処理を作っていくことが多い点で、プログラミングへの取り掛かり方似ています。

Scratchでは、スプライトごとに処理を作成し、それぞれが独立してプログラムが動いていくことが多いです。

Robloxでも、特に最初のうちは、パーツ1つに対してScriptを1つ付与して処理する、といったアプローチが多く、オブジェクトごとに独立して処理することが多いです。

こういったオブジェクトごとの独立した処理は、並列に同時に実行され、お互いに連携する際はメッセージ(シグナル)を送って、上述したイベントとして処理されます。

このように、オブジェクト単位で処理を作ること、そしてそれらが同時に動かしていけること、こういったアプローチでプログラミングをしていく点で似ているといえます。

通じる点③ : プログラミング構文が近しい

Scratchでのプログラミングルールと、Roblox開発で使用するプログラミング言語「Lua」の構文は、他のプログラミング言語以上に類似点が実は多いです。

Luaは初心者でも読みやすいようにあまり記号を使わず英単語を記述するようなプログラミング構文になっています。

そして、Scratchのブロックも文字をベースに構成されているので、両者のプログラム制御の書き方は似た形の構文が形成されます。

例えば以下のような感じ。

if then
else

加えて、細かいところだと、配列(リスト、table)のindexが0から始まるか、1から始まるか、という点がありますが、 Scratch、Robloxともに1始まりです。

これはプログラミングになれるほどに気になる点で、これが同じ1始まりになっている、というのは両者ともに多数の要素を管理するための、tableやリストを扱いやすくします。

コメント

タイトルとURLをコピーしました