Perlがくしゅう帳(Rubyも)

プログラミングの勉強会の参加記録や学んだことなど。 twitter ID : @tomcha_で活動しています。 最近は主にPerl関連の勉強会やコミュニティに参加しています。移転前のブログはこちら->http://ruby.doorblog.jp/

できる!ゲーム制作 ~Perl入学式 卒業制作~

Perl入学式 Advent Calendar 2016 5日目の記事です。

まずは軽く自己紹介。

2011年に大阪で始まったPerl入学式。当時、受講生としてとして参加してプログラミングを教えてもらい、そして翌年よりin大阪サポーターとして参加しているTomchaです。現在は、なにわPerlというもくもく会の主催もしています。職業はエンジニアではない、ただのコンピューター好きおじさんです。

序章

さて、皆さんがプログラミングを始めたきっかけは何だったでしょう? 僕の場合、それは遠い遠い昔任天堂から発売されたコイツが世間で大ブームだった時代、

www.youtube.com

たしかクリスマスプレゼントかお誕生日プレゼントだかで本体を買ってもらいました。 しかし当時は小学生。そうそうゲームソフトの新作なんて買ってもらえず、でも色んなゲームがしたい!でも買えない!

そんな時に任天堂から夢のようなデバイスが発表されました。

ファミリーベーシック wikipediaより

これを使えば自分でケームが作れる!マリオもドンキーコングも自分で作れる!作りまくれば色んなゲームがタダで遊び放題!! だけど現実はそんなに甘いものではなく、ファミリーベーシックのスペックは自作プログラム保存メモリ1,982バイト、ベーシック言語、しかも当時小学6年生。あっけなくゲーム作成の野望は砕け散りました...

そして月日はウン十年流れ、、、

Perl入学式でプログラミングを体系的に教わり、趣味でコードをぼちぼちと書いていたある日、書店で横井軍平さんの本を見つけました。

おお、懐かしのゲームウォッチ!そういえば初めてデジタルなゲームをしたのはゲーム&ウォッチの「マンホール」だった。 もしかして、遠い昔に挫折したゲームのプログラミング、大人になった今これぐらい簡単なものならなんとかなるかもしれない?!

https://www.nintendo.co.jp/ds/arjj/gamewatch/

そして懐かしさのモチベーションだけでなんとか完成までこぎつけたのがコチラのプログラムです。

もちろん、Perlで書いています。

github.com

中身はむずかしくなくPerl入学式の第1回から第4回までの講義内容+モジュールの使い方くらいでできてしまうプログラムです。

リアルタイムのアクションゲームなので、Term::Screenというモジュールを使ってみました。

モジュールの使い方は、ひさいち先生のブログ記事を参考にさせていただきました。

hisaichi5518.hatenablog.jp

ゲームを作るにあたって考えたことや工夫したこと

  • ゲームウォッチのゲームって、ほとんどがモチーフは違えど中身のゲーム性は同じと気づいたこと。
  • 迫ってくる何かをキャッチする又は避ける、それが時間差で2ライン、3ライン、4ラインあるなぁと気づいた。
  • 迫ってくる何かは、配列を使って位置を1つずつずらしていけば(shift+push、unshift+pop)表現できるなぁ。

といったところでしょうか。あとはn秒毎に配列の中身を画面に描画すればゲームのステージは出来上がりました。

そうです、Perl入学式で学んだ技術でアクションゲームが作れてしまうんですね〜。

みなさんPerl入学式で一緒に学んでいきましょう!

そして古き良き時代のおっさんたちへ、、、

昔懐かしいノスタルジックな記事にピンときたあなたも、そうでないあなたも、

YAPC::Kansai 2017 OSAKA!!!

12月10日開催の北海道に続き、大阪で・・・詳細は続報を待たれよ!

さて、明日のPerl入学式 Adventcalenderは、in大阪サポーターのsago35さんの記事ですね。 何が発表されるか楽しみですね!