Inside BuildIt

株式会社ビルディットのデザイナー・エンジニアによるブログです

第3回八王子プログラミング親子大会 決勝大会作品レビュー

ビルディット代表の tmtysk こと、富田です。

去る9/23に、第3回八王子プログラミング親子大会の決勝大会に、審査員として参加してまいりました。八王子プログラミング親子大会とのご縁は、2021年の第1回大会への協賛からでして、昨年第2回からは実行委員としても参加させていただいております。

八王子プログラミング親子大会そのものや、審査基準等についての説明は、本記事では触れません。公式サイトの情報および実行委員会からの公式情報をご参考ください。また、弊社がなぜ協賛・実行委員会に入っているかといった背景や想いについても、本記事では触れませんので、何卒ご了承ください。

さて、昨年に引き続き、今年も実行委員の一人として、決勝大会の審査員を務めさせていただいたわけですが、全体的に、前年度からの作品レベルアップを感じておりました。決勝大会では、各入賞者からのプレゼンテーションに対して、審査員として少しずつコメントをさせていただきましたが、時間の都合にて、すべての作品に対してコメントすることがかなわず、今回、この場を借りて、各作品についてのコメントをお送りできればと思い筆を執った次第です。

本当に一言ずつになりますが、一審査員がどのような目線で作品を見ていたのかを共有することは、これからの応募者・挑戦者だけではなく、各地で展開されている若年層向けプログラミングコンテストの運営サイドにとっても参考になることがあるかもしれません。どうか、気軽にお読みいただければと思います。(応募者の小学生の方、わかりづらいところは、おうちの方や先生と一緒に読んでみてくださいね。)

それでは、各作品についてコメントしていきます。 なお、対象作品については、公式サイトに掲載されておりますので、そちらもご参考ください。 応募作品がフル公開されているわけではないので、当事者でなければ伝わらない部分もあるかと思いますが、そこはよしなに、ということでご理解願います。

教育ソフトウェア賞 とんでけ JUMP MAN

決勝大会で「アイデア技術グランプリ」を受賞された作品です。おめでとうございます。

基本的なゲームアイデアとしては、Angry Birds を彷彿とさせる、いわゆるアクションパズルゲームなのですが、クイズに正答しなければ邪魔をされるという要素や、12ヶ月分のステージに季節感を盛り込んでいくという仕上げ方にはオリジナリティを感じました。繰り返し再生されても嫌感のこない楽しげなBGM, 背景素材, 細かなコスチュームなども適切にチョイスあるいは制作されており、また、ジャンプ軌道が途中までしか表示されていないなどのゲーム性の演出は、制作側の細部へのこだわりと、全体的な完成度の高さを印象付けていたように思います。

コード実装も、よく整理されており、ブロックが大きくなりすぎないように分割されていたり、デバッグ用のスプライトにデバッグのブロックを寄せていたりなど、試行錯誤のしやすさの追求、メンテナビリティ(保守性)への配慮が見られました。また、12ステージの中で、同じクイズ問題が出題されないようにするための変数の取り回しや、クイズの正答をデータとして持たずにロジックだけで判定できるようにするためのリストの設計なども、なかなかアイデア豊富なものになっており、ついつい夢中で設計を追いかけてしまったことも記しておきます。

グランプリを受賞するのも納得の作品だったと思いますが、ゲームとしては、一度タネがわかってしまうと、攻略が比較的容易な作品でもあると思います。十分な設計力、構成力のある開発者ですので、次回はさらに企画や素材にさらなるオリジナリティを盛り込んでいただき、2度3度と触ってみたくなるような作品にチャレンジしてみていただきたいと思います。

インフィニット・フィールド賞 ぼくらのまち八王子をまもれ!

3ステージで構成されるシューティングゲームです。ドット絵キャラクターやフォントなどの選択から、ゲーム好きな応募者による作品だとひと目で印象付けられました。ドット絵は私もかなり好きです。

ときおり再生される音声は、開発者自身の音声を録音したものだと当日プレゼンテーションで知りましたが、音声のかわいさとゲームの世界観がマッチしていて、事前審査の段階でも「声がカワイイな」と思っていました。

3ステージのゲームは、いずれも完成度が高く、かんたんすぎず、かといって不条理に難しすぎることもない、遊びやすいチューニングがなされていました。審査の段階では、できるだけ作品を隅から隅まで見ておきたいのですが、難易度としては「ちょうど良い」仕上がりになっていたように思います。それぞれ遊び方が異なるステージではありますが、各ステージでは遊び方が常時表示されているという親切設計も◎

実装コードについては「(いわゆる)お手本に忠実な、原則どおりの設計」という印象でした。スプライトに多くのブロックを詰めすぎず、複雑になりすぎないように構成している様子がうかがえました。

クリエイティブの選択レベルが高いという点と、ゲームとしてのバランスがとれているという点で、作品としてのまとまりの良さがある一方で、発想・独創性という点ではまだまだ盛り込んでいけるのではないかなと感じました。また、大会当日に審査員からのフィードバックもありましたが、タイトルに盛り込んだ「八王子」感を、作品にも盛り込んでいただけると、より作品の深みが出てくるのではないかなと思いました。来年も、ぜひチャレンジしていただけると嬉しいです。

もっと身近にMMPR賞 スーパースーパー

買い物ゲームです。選択した献立に合わせて買い物リストが作成され、その買い物リストにある材料を買ってくるとゲームクリア。

大会当日もコメントさせていただきましたが、野菜売り場に「草」と書いてあったり、売り場で人参だけがこれみよがしに光っていたりと、開発者の独自の世界観が垣間見える、ユニークな、ユーモアあふれる作品だという印象を受けました。ゲーム素材も手描きだったり、なんとも言えない微妙な風合いのキャラクターであったり、また、スーパー店員のどこか脱力感のある音声だったりも、独特の空気感を演出していたように思います。

実装については、買い物リストとの突き合わせをするロジックに工夫が見られました。一方で、メニューを選択すると消えてしまったり、商品をカーソルホバーすると値段が1秒だけ表示されて自動で消えてしまったりというロジックは、1ユーザーから見ると初見ではわかりづらさや混乱に繋がっていたように思いますので、たとえば他のプレイヤーに触ってみてもらうことを通じて「わかりやすく、楽しくプレイできるか」という点を確認・調整してみていただけると、もっと遊びやすくなるのではないかなと思います。

また、買い物ゲームという観点からすると、購入金額や手持ち金額なども上手く要素として盛り込んでもらうと、楽しさも広がっていくのではないかなと感じました。

平山笑美賞 地球勉強ゲーム

シナリオを進めてクイズに答えていくという作品。非常にシンプルですが、学習要素を盛り込み、また、キャラクター間の掛け合いといった演出にも思考・工夫の跡を感じる作品です。

単一のスプライトにシナリオを詰め込んでいくというつくりは、一見シンプルに見えますが、掛け合いとなると、双方のスプライトにメッセージをやりとりするようなブロックを埋め込んでいくことになります。開発中は恐らく「相手が何を喋ったら、こちらで何を喋る」といった状態管理のために、スプライト間をいったりきたりし、どのタイミングでどのメッセージを飛ばす、何秒あけるといったところの動作確認で苦労されたのではないでしょうか。変数の命名などにも試行錯誤の跡を感じました。

シナリオの中身が短めだったこともあり、「すぐに終わってしまうな」という印象は拭えませんでしたので、次回はぜひ「より多くの要素やシナリオを盛り込んでいく」というところにもトライしてみていただきたいなと思いました。

FreeStyle賞 織物の町八王子、模様つくりマシーン

設定したパラメータに応じて幾何学模様を生成する作品。スクリーンセーバーのアニメーションを思い起こさせるような、引き込まれる作品です。開発者の方は、Penを活用して、計算によりステージに描画処理をおこなう楽しさを味わいながら、この作品をつくっていたのではないでしょうか。

大会当日のプレゼンを聴いて、正直なところ、事前審査の段階では、この作品の魅力を味わいきれていなかったなと思いました。大会でのコメントでもお伝えした通り、「この作品がどういうもので」「一つ一つのパラメータが、何なのか」について、背景などの説明が入ることで、さらにこの作品を楽しめるのではないかと思います。

実装コードについてコメントしておきますと、描画のためのコードブロックがかなり大きくなっていることに加え、変数の命名が少々わかりづらく、デバッグ・調整に苦労しそうな設計を匂わせました。処理の単位のブロックを分割し、よしなに組み合わせてみるという統合にトライしてみていただくと、もっと複雑な、あるいは不思議な模様を生成する処理をつくっていくこともできるのではないかなと思います。

いずれにせよ、自身の「N角形の1つの内角は何度だろう」「3角形を書くのではなく、3.1角形を描くとしたらどうなるのだろう」といった好奇心から生み出された作品が、「周りの人が喜んでくれたから」「もっと喜んでもらいたい」という理由で、どんどん新しく、いろんなアイデアが入っていくという過程は、クリエイターとしてもとても共感できるストーリーで、応援したいなと思いました。次回作品も楽しみにしています。

システム技研賞 目指せperfect!! 八王子ラーメン

時間内に来店客の注文に応じた八王子ラーメンを調理するというゲーム作品。オリジナリティを感じました。普通に面白かったです。とくにスープをうまくつくるためのルールがなかなか掴めず、クリアに苦労したため、プレイしながら「ラーメン屋さんって大変だな..」と思いました。

変数表示を見やすくするためにステージ上のタイマーをスプライトに置き換えているところや、ラーメンの具材の並びが毎回変わっていくなどの工夫は、開発者が「プレイヤーがもっと面白く、遊びやすくするにはどうすれば良いか」という創意工夫をうかがわせました。素材もひとつひとつ手描きのものを用意されていて、こだわりを感じます◎

一方で、ゲーム要素に対して、スプライトが多めになっており、それぞれにゲームロジックも書き込まれているため、ロジックのif分岐も深めになっており、複雑さを過剰に作り込んでしまっている印象を受けました。スプライトの分割単位を見直したり、あるいはコードブロックをより小さな単位に分割して、必要箇所で呼び出しを起こして組み込むことで、よりシンプルになり、デバッグや調整をしやすくできるのではないかなと思いました。

つくり手のラーメン愛と独創性が滲み出ている作品、楽しませていただきました。新しい作品にも期待しています。

IT自由研究室賞 山頂を目指せ!〜高尾山すごろく〜

クイズを解きながら高尾山を登るという、すごろくゲーム。問題がかなりマニアックだったのは、開発者の一家が高尾山ヘビービジターだということだそうですね。プレイヤーが何度でも楽しめるように、多くの問題数が用意されていたというのも、開発者の「好き」を感じます。

また、単純な話ではありますが、最後に表彰状がもらえるという演出は地味に嬉しい。こういうところにも「高尾山ファンを増やしたい」といった、開発者の想いを感じました。

一方、事前審査では、オモテのシンプルなゲームからは予想できない量の実装コードが埋め込まれていたのも印象的でした。一部「どういった理由で、このコードブロックを残しているのだろう」というところもありましたが、それも含め、開発者が企画と実装とプレイを重ねながら、相当試行錯誤をしたのだろうなというところを窺わせましたし、「ああ、たぶんコレがやりたかったんだろうな」という意図を掴めたときは、なんだか嬉しさもありました。

改善点を挙げるとすれば、せっかく多くのクイズ問題を用意されたので、「1プレイ中で、同じ問題が出ないようにする」といったことも盛り込んでみてはいかがでしょうか。また、実装についても、使用していないコードブロックを削除しておいたり、and や or を多く繋げている判定ロジックをよりシンプルにしたりといった調整を重ねることで、より遊びやすさを調整しやすいコードになっていくと思います。

また、もし同じ企画でつくりこんでいくとすれば、もっともっとファンを増やしていくということも考えて、ぜひ、高尾山素材(風景や動植物、名産品など)も多く取り込んでみていただきたいなと思いました。

マイソフト賞 海洋ごみ拾い

海岸にくるゴミ捨て観光客をブロックしたり、海底のプラスチックごみを収集したりということを通じて、海洋ごみ削減を啓蒙するというシューティングゲーム。当日もコメントしましたが、開発者の強いメッセージ性を感じる作品です。

ゴミカウンターとして表示される1.5兆という数値は、海洋ごみをいくら拾っても到底減っていかず、ひとりでがんばったところで何も変わらない、絶望にも似た感情を抱きました。まさしくこれが開発者の意図なのでしょう。

とはいえ、どれだけごみ捨てを阻止しても、海洋ごみを集めても、まったく褒められない!これも現実なのでしょうか。「海洋ごみを削減する」ということを広めていくためにも、個人的には、海が少しでも綺麗になっていく嬉しさや期待・希望を盛り込んでいただけると良いのではないかなと思いました。ちなみに、当日コメントしそびれたのですが、クラウド変数を使って、オンラインでの多人数同時プレイにより、大勢で海洋ごみを削減するというアイデアはいかがでしょうか。(「一人では何も変わらない」というメッセージと両立させるのが難しくなりますか?)

さらにコメントしておくと、実装コードについて、もう少しシンプルにできる余地があるかなと感じました。たとえば、全体のゴミカウンターの初期化ロジックが、特定のキャラクターのスプライトに入っているところは、全体処理のものに切り出しておくと良いと思います。また、各ステージで共通のスプライト(たとえば「スプライト2」のプラスチック袋)に、それぞれのステージのロジックがまとめて入っていますので、よりステージごとの調整をしやすくするためにスプライトを複製して分けておくのも良いかもしれません。

この作品はシリアスゲームの類になりますね。開発者の方の、社会に対する鋭い切り込みと視点。次回作にも期待しています。

国際ソフトウェア賞 にんじんとれるかな?

プレゼンテーショングランプリを受賞された作品です。おめでとうございます。

プレゼンテーションだけでなく、折り紙をつくって取り込んだキャラクターや、うさぎのモーション、自身が演奏するピアノBGM、スコア表示のコスチュームも数字グラフィックを作り込むなど、一つひとつの素材や演出に、開発者の「好き」が詰まった、完成度と芸術性の高い作品だと思いました。

また、プレゼンでも発表されていましたが、実装コードが長くなりすぎないように、コードブロックを短くして、それらを組み合わせることでさまざまな演出をつくりあげているという点に、工夫を感じました。なにより「実現したいアイデアがたくさんあって、時間内にはぜんぶつくりきれない」からこそ、できるだけそれらを実現できるように、「それぞれをシンプルにわかりやすくつくり」「優先度をつけながら作業を進める」というアプローチにプロフェッショナル感すら感じました。「小さな子が遊ぶから、スコアにはあまり大きな数字を使わないようにした」という、ユーザーを意識したエピソードにも感動した次第です。

アイデア技術グランプリの作品同様、コメントしようがないくらいの完成度ですが、あえて言えば、このゲームの中で原作となった開発者制作の絵本のストーリーに触れてもらえると、よりこの作品の世界観に入っていくことができるかもしれません。

開発者にはまだまだ実現したいアイデアや、別の絵本(ストーリー)もあるとのことですので、次回作も楽しみに待ちたいと思います。

1番売れるソフトで賞 半獣の剣士

開発者自身が執筆した小説を原作にしているというノベルゲームです。基本的には、単一のシナリオを進行させていくだけというところまででしたが、ストーリーだけではなく、BGM、背景やキャラクター素材なども含め、一つの作品としてしっかり仕上がっている印象を受けました。エンディングでは、絵師さんなど、いろんな方の力を借りてこの作品をつくっているということもわかり、「自分の創りたい世界を実現するために、他の人の力を借りられるのも、大切な能力のひとつだな」ということも感じました。

実装についてですが、それぞれのシーンでの演出=素材の表示アニメーションやサウンドのタイミングなどはかなり調整された、地道な創意工夫をうかがわせます。ストーリーの表示も、1文字ずつ表示していくというロジックをコードブロックにまとめておいて、それを呼び出して利用することで、ノベルゲーム「らしさ」の演出に一役買っていたと思います。

その他の実装コードの設計もわかりやすく、シンプルにまとまっています。恐らく、開発者は時間さえあれば、この続きのストーリーも含めて、それぞれの演出をああでもないこうでもないと考えつつ、作品に含めていきたかったのだろうな、ということを感じました。

完成度が高い作品だっただけに、大会ではぜひプレゼンテーションでゲーム画面や動画を披露いただきたかったなと思いました。ですが、開発者の独自の世界観、ストーリー推し推しではあるので、大会に関係なく、きっと今後もこういった作品を世の中に打ち出していってくれるのだろうと思います。これからのご活躍を楽しみにしています!

さいごに

一気に書いたのですが、書き始めたら、ぜんぜん一言に収まらなかったです!とにかく、楽しんで審査をさせていただきました。応募者の皆さん、力作のご応募をまことにありがとうございました。

改めて感じたのは、応募者の「好き」や「こだわり」は、作品の完成度として、しっかりユーザーに伝わってくるということです。どの作品も、開発者の想いが詰まっていて、また、大会当日のプレゼンテーションでは、事前に感じきれていなかったそのストーリーをお聴きすることもでき、それがまた、それぞれの作品をさらに楽しむきっかけとなりました。まさしく「神は細部に宿る」ですね。こういった「細部まで『好き』『こだわり』が行き届いた」作品が増えてきているということを、来年応募いただく皆さんは、ぜひ意識されてみてください。

最後になりましたが、大会の実行にあたり日本工学院八王子専門学校の学生の皆さんには、ステージ設営や司会進行、映像配信などで多大なご協力を賜りありがとうございました!そして、協賛企業の皆さまのおかげで、今回も大会を成功裏に終えることができたこと、実行委員の一人としても厚く御礼を申し上げます。ありがとうございました!

来年の第4回大会でも、多くの力作に触れられることを楽しみにしております。