こんにちは。@_n_ari です。
4/15(金)および4/20(水)にてゲームプログラミング講習会を行わせていただきました。この記事では後日談として、運営の感想、およびゲームプログラミングの良さを書きたいと思います。
運営準備
「ゲーム制作サークルtraPなんだからゲームプログラミングについて教える講習会を開いて新歓をしよう」ということで企画が立ち上がりました。
当初は、JavaにおけるGUIプログラミング(ウィンドウを表示して画像を描画する)の基礎を軽く教え、運営側が用意したサンプルゲームを軽く見た後、放任主義でゲームを作らせよう、という流れを予定していました。
実際それ用に「軽い」ゲームを運営陣が制作していました(リバーシやインベーダーなど用意していました。今後何らかの形で利用できたらと思います)。
が、実際の日程ではなんと講習会全体で3時間に収めないといけないということになっていました。
ターゲット層をどうするかにもよりますが、プログラミング言語を始めて触り、GUIから始めて一人でゲームを作らせる、というのはなかなかに時間がかかります。参考までに私の深夜テンションで作ったクソゲーはそこそこ触ったことのある言語で調べつつ1時間半かけ完成させました
というわけで今回の講習会では、Javaにおけるゲームプログラミングのテンプレートの解説を主とし、自分で作っていけるような基礎を固めた後、用意されたものではありますが軽い弾幕ゲーを作らせることで、ゲームプログラミングの感触、実際の雰囲気を体感してもらう、というものにすることに至りました。
当日
私は非常に人前で話すのが苦手で講習会講師やらTAやらは非常に避けたかったのですがいつの間にか私が講師になっていたので非常に胃が痛かったです。
(参考:講習会前のツイート)
にゃーん
— _Buri (@_n_ari) 2016年4月15日
その割にはいざ講習会となるとなんかテンションノッてきて声出しすぎて喉が枯れました(講習会の後メンバーでこころに行ってその後モンエナ飲みました)。
なお私は水曜日に5・6限が入っていたため、4月20日(水)の回は別の人に講師を任せました。
4月13日(水)に行っていた「プログラミング入門講習会」でもそうでしたが、予想以上の人数の方々に来ていただきました。講師としては万々歳です。
講習会の資料は以下のとおりです。
内容としては基本的にコピー&ペーストを行わせるもので、少し退屈だったかもしれません。運営側でも「もう少し自由にプログラミングさせる時間を設けるべきだったのでは」という意見が出ました。
一応資料の「その2」の後ろにExtra課題として、今回作ったゲームを拡張していく方針を載せておきました。解答は載せていませんが聞かれれば答えます。
講習会では「その2」までを教え、とりあえず「ゲームが作れる」という段階まで進めました。これで一応はいろいろなゲームを作ることが出来ますが、今後プロジェクトが大規模化したり複数人での開発を行う場合は、オブジェクト指向プログラミングにおける「クラス」という概念を学ぶべきです。そのために簡易的ではありますが「その3」「その4」にてクラスを紹介しています。時間があれば読んでみてください。
ゲームプログラミングの良さ
ゲームプログラミングはいいぞ。
ゲームプログラマのお仕事は「用意された絵を動かす」「用意された音を鳴らす」「用意された仕様どおりゲームを進める」など、基本的に地味な部分が多いです。
ですが、
- ゲームが完成してちゃんと動くようになった感動
- 自分でプレイして楽しいと思える快感
- 他の人がプレイして楽しいと言ってくれる喜び
といったことがあるので、私はゲームプログラマとしてやってきて良かった、と何度も思います。「その部分のバグは僕が頑張って直したんだよなぁ・・・」「この動きは僕が書いたやつだ~」「このバグ直さなきゃ・・・」などとゲームプレイヤーの後ろでクスクス笑ったり(嘆いたり)するのもまた一興です。
また特に、東方シリーズ等の弾幕シューティングゲームというジャンルは、絵や音よりも、弾幕の配置が同等以上に大事になってきます。
この「弾幕の配置」というのはプログラマの腕が特に光る場所です。なにせ、プログラマがコードを書くことで美しい弾幕が表現されるのですから。また弾幕ゲーにおいては自キャラと敵キャラさえ用意すれば(もしくは幾何学的模様で済ませてしまえば)、弾については凝った画像を使わずとも、「弾幕全体」でその美しさを表現できるのですから、プログラマが1人でゲームを作るのには最適だと思います。
そのため今回は弾幕ゲー(もどきの避けゲー)を題材として選びました。実際に今回の知識だけで敵・ボスが存在する弾幕ゲーは十分に作れるので、ぜひ作ってみてください。分からないことがあったら気軽に質問してください。すぐには作れないとは思いますが、必ず作れるようになります。
終わりに
少しでもゲームプログラミングに興味をもってくれたら幸いです。
ゲーム制作を行っているサークルはtraPの他に、ロボット技術研究会(rogy)の内部のCG-squareや、無線研究部の一部の部員がゲーム開発をしています。rogy主催のゲーム制作者交流イベント「GAME^3」に参加したり、traPと無線研究部で合同ハッカソンを行ったりと、関係は良好です。traPに限らず、ぜひ検討してみてください。
またプログラミングに興味を持ったが、プログラミングってそもそもなんだろう、という人向けに、traPでは4月25日(月)にプログラミング入門講習会を行います(内容は4月13日開催のものと同様です)。ぜひ参加してください。詳しくはtraP新歓特設サイトを御覧ください。
ありがとうございました。