今の時代、ゲームプレイが上手だとお友達から一目置かれるほど、ゲームの世界は、私たちの生活の一部に溶け込み、娯楽、家族の団欒、友達との交流の場としてゲームと上手に向き合うことを意識した方が良いように思えてきました。それに共ない、ゲームをしたお子様なら一度は、こんなゲームが作れたらいいなと、「自分のゲームの世界」の夢を描いて、興味を持っていることが「2020年1月 小中学生のプログラミング教育に関する意識調査」から解ります。しかし、この調査の中で気になるのが、プログラムの世界に興味を持たれてはいるものの、プログラミングは学習難易度が高いためか、不安を抱かれている方が見受けられたことです。ゲームと上手く付き合うように、私たちはプログラミングとも楽しく向き合えるようになるよう、意識の向け方を少し変えたら良いと思います。 「開発の中でヒーローになる」 プログラミングも、ゲームで遊ぶように練習を重ねれば上手になることができます。ただし、プログラミングをやる事で、ゲームプレイが上手なお友達の中でヒーローから「ゲーム開発の中でヒーロー」:国際的なヒーローを手に入れることができます。それは、オンラインで繋がったゲームを開発する「自分のゲームの世界」が作成できることで可能にしてくれます。例えば、アジア圏でも、最近、人気急上昇中のRobloxは、開発したゲームを簡単に公開することができますが、それらはすべて無料でできます。Roblox Studioは、国際教育工学会の基準を取得したソフトですので、安心して学習できますし、しかも、ビジネス面でも若いうちに契約の仕方や著作権法を勉強できる良い機会になる可能性があります。Robloxのゲーム開発は、それこそ国際配信ができる優れたツールでもあるので、機会があれば試して頂きたいと思います。 「チャレンジへの耐性がつく」 とはいえ、プログラムやゲーム開発はゲームプレイよりもチャレンジです。その為、学習する過程でチャレンジ精神と忍耐がつくという利点があります。ゲームプレイはゴールに達成するために、試行錯誤を何度もくり返しレベルアップしていきます。プログラムも同様に、繰り返しは、一つ一つの問題が上手く動くか試してみて、その度に動くまで繰り返しコードを変えていきます。プログラマーさんはプログラムを書いて最初から成功するということはありません。一つ一つを上手く動くかテストしていきますし、そうでないと先に進めないので、このチャレンジ精神は、開発を通じて身につく力だと思います。 「プログラムの世界は全てに通じる」 これからの時代は、テクノロジーができることが主流になります。現在、子供の世界でゲームをまったくやらないで生きていくのは非常に難しいと思います。それは冒頭にも述べた通りです。それではプログラミングの世界はどうでしょうか。今後、プログラミングができれば、「ものごとを考える方法」すなわち、論理的な思考ができるようになります。これは一つの例ではありますが、スピードが増す複雑な情報社会の中で、必要なものを正確に捉えることができるマインド、ストレスを和らげ生きやすくしてくれることに繋がります。プログラムをまったくやらずに子どもの世界を生きていくというのは、ゲームをやらずに生きていく以上に、きっと非常に難しいことになると思います。お子様の為にも、焦らず、今、出来る事から始め、大学生になるまでに、コンピューターサイエンスの基礎が身につく準備をしていけば良いと思います。 「ゲームで遊ぶからゲーム開発へ」は、テクノロジーの世界の冒険の始まりと言うよりも、もっと現実味のある未来への確実な一歩にしていきましょう。プログラミングのお教室で、お子様が生き生きとテクノロジーを学ぶ喜びを感じられることを願っています。
Category Archives: Uncategorized
RemoteEvents:Client to Server 2
ゲーム内で武器を使って相手を攻撃する方法 Robloxフォーラムから Robloxのフォーラムサイトでも話題を呼んだ「The weapon does not kill the player」の投稿は、Roblox開発者がゲーム開発を始めると、最初に気がつく問題ではないのでしょうか。今回は、リモートイベントの仕組みを考える良い機会です。難しいようにみえても、意外と簡単だったということもありますので、コードがうまく走らないで悩んでいるのは自分だけではないと、仲間をみつけた気分で読み進めて下さい。また、このフォーラムサイトは、経験豊富なRobloxのプログラマーが親身になって問題を解決に導きます。もしご興味がある方は覗いて見て下さい。何かを得れる可能性が高いと思います。 何が起きているのでしょうか。 ローカルプレーヤーとサーバー側が繋がっていないので、ゲームを公開しても相手のプレイヤーを武器で倒せないということが生じています。せっかくゲームを作ってもこれでは悲しいですよね。ですが、この解決策として、上のフォーラムサイトでも、FireSeverメソッド を使うようにと促しています。こうなると早速、Remote Eventを学習することにつきます。 *下記の動画:「#63ゲーム内で武器を使って相手を攻撃する方法」にて詳しく例を使って述べています。 ですので、ここでは、簡単にFireSever()メソッドのみ焦点を当てて、剣で相手に攻撃を与えるコードの構造に少し触れていきましょう。 “Oof”をするコード VS FireServer()を使うコード 下のイメージでは、ローカルプレーヤーのクライアントレベルから、サーバレベルに接続できるコードを赤線で引いて、上下に並べて比べ易くしました。上の「Oof」をするコード、LocalScriptLocalの11行目に注目して下さい。ここでは、アバターがパーツに触れるとアバターの健康、ヘルスをゼロに設定することで、アバターがダメージを受けたことが分かりますが、一方、下のコード、LocalScripteSeverでは、最初の2行のコードで、RemoteEventインスタンスをポイントし、次の13行目のFireServer()メソッドでイベントを発生させ、サーバに接続しています。そして、その他のコードについては、変数名を除いては、コードの構成は変更してない事がわかります。 ファイアー!! ServerScriptService内に、Scriptを作成したら、その内のコードで、RemoteEventインスタンスをポイントし、関数をOnServerEventに接続します。アバターのヘルスをゼロに設定するコードの代わりに、ここでリモートイベントを使用して、TakeDamageの関数にてダメージが100に到達するまでイベントを生じることをしています。この関数は、剣が相手のプレーヤーに触れる度に呼ばれ、相手がダメージを受けている処理を行ってくれます。そしてそれは、サーバー上のすべてのユーザーがその変更を知ることができるようになっています。 動画では、「Roblox Studio」 にて武器を作って相手に攻撃をしダメージを与える一連のコードの構成をまとめましたので、どうぞご参考にされて下さい。 動画も含め、以上の内容が理解できると、ゲーム開発の第一突破口となればと願います!