🎵

マジカルミライ プログラミングコンテスト挑戦録 ~2023年編~

に公開

はじめに

本記事は、クリプトン社様が主催するマジカルミライプログラミングコンテストに参加した2023年の記録です。
マジカルミライプログラミングコンテストの概要について知りたい方は、2022年編をご覧ください。

https://magicalmirai.com/2023/procon/

2年目の参加動機

前年のコンテストでは入選にまったく手が届かずに終わってしまいました。
そして、コンテストへの参加や技術選定に大きな後れを取った状態で臨んでおり、完全なポテンシャルで望むことができなかったことに後悔があったため、技術的にある程度成熟した今なら入選が狙えるのでは?と思い、入選を目指してコンテストに再挑戦することとしました。

制作物概要: Lyrical Poker Shooting

実際に提出した作品紹介文:
2023年のグランプリ曲、「king妃jack躍」のイメージである”トランプ”から着想を得た、「Poker×シューティング」をコンセプトとしたWebアプリケーションです。
曲が始まると、歌詞とトランプが出現し、歌詞を撃って破壊することでスコアを増やすことができます。
このアプリの特徴は、トランプを集めてポーカーの役を作ることで攻撃力を伸ばせる点、歌詞を曲通りに破壊しコンボを繋ぐことでスコアを爆発的に増加させることができる点です。
戦略的なシューティングとポーカーの役作りでハイスコアを目指す、超次元ポーカーシューティングゲームをお楽しみください!

ポーカーの役で攻撃力がアップする自機で、曲に合わせて出現する歌詞を破壊していく2Dシューティングゲーム(超次元ポーカーシューティングゲーム)を作成しました。
前年の反省を踏まえ、歌詞そのものに演出を持たせるWebアプリケーションは、高い演出クオリティが求められるため、制作難易度が高いと感じました。一方で、過去の入選作品の一部には、音楽ゲームやシューティングゲームといった既存のゲームフレームワークを用い、アルゴリズム的にゲーム要素を実装したうえで独自の工夫を加えることで評価を得ている例が見受けられました。
そこで、演出表現よりもアルゴリズム実装を得意とするチームの強みを活かすべく、発想の起点を「ゲーム」に置き、その年の作品案を検討する方針としました。その年のマジカルミライのテーマが 「ヒーロー」 であったことからシューティングゲームを、また楽曲コンテストのグランプリ曲が 「トランプ」 をモチーフとしていたことからポーカーを着想源とし、これら二つの要素を組み合わせた結果、人類には早すぎた超次元ポーカーシューティングゲームが完成しました。

👇👇以下のサイトから体験できます(当時のバージョンとは少し異なります)👇👇
https://playcanv.as/p/HwWegXw7/

作品デモ動画

こちらは当時のバージョンでのプレイ動画です
https://youtu.be/_BYIXFzK2pY

Features

曲選択画面

  • シューティングゲームという特性上、特定の楽曲の世界観に依存しないため、本プログラミングコンテストの対象となるすべての楽曲で遊べる仕様としました。

操作説明画面

  • シューティングゲームとポーカーを同時に進行するという特殊なゲーム性であるため、簡易的な操作説明画面を設けました
  • 実装終盤での制作となったため、文字配置やレイアウト調整に工数を割かずに済むよう、PowerPointで作成したデザインを画像として書き出し、貼り付ける形式で実装しています

プレイ画面

  • 自機を宇宙船とし、画面上部から出現する歌詞、トランプをそれぞれ破壊、取得しながらスコアを伸ばしていく、2Dシューティングゲームです
  • トランプは5枚取得するごとにポーカーの役が判定され、その役に応じたポイントが、歌詞を破壊する弾の攻撃力として反映されます
  • 歌詞に自機が接触した場合、スコアが減少します

スコア画面

  • 楽曲終了時点で、歌詞を破壊して獲得したスコアと、トランプによって成立した役のスコアを合算し、その結果に応じて画面右側に配置されたトロフィーの色および最終スコアが決定されます

開発体制

開発チームは、前年と同様に私を含む2名で構成されています。前年と異なり、使用技術は当初から PlayCanvas および JavaScript に決定していましたが、両名とも修士論文の執筆や就職活動と並行しての開発となり、十分な時間を確保することが難しい状況でした。
また、初期に策定した企画案にアイデア段階での大幅な見直しが発生し、結果として実際の実装期間は前年と同様に約1か月程度にとどまり、全体として作り込みが不十分な実装となってしまいました。

作品案の見直し

初期案として、現状のシューティングゲームの企画は早い段階から挙がっていました。しかし、改めて過去の入選作品と比較した結果、ユーザー入力が多い点、シューティングゲームは競合が多いと想定される点、「トランプ×シューティング」という組み合わせ自体が文字どおり人類には早すぎるのではないか、という懸念から本当に入選を狙える作品なのかという疑問が生じ、作品案を再検討することにしました。
その後、シューティングゲーム以外の別案も検討しましたが、提出期限までの期間が限られていたこともあり、十分に納得できる案を出すことができず、最終的には初期案へ立ち戻ることとなりました。
結果として、初期案が作品としては一定の面白さを持つものに仕上がった一方で、入選作品の傾向をベースにアイデア出しを行い、コンテストの審査軸についての考慮が甘かったことで疑念が生まれこのような出戻りが発生してしまいました。

開発スケジュール

  • 4/19-5/13
    • 作品案の検討および実現可能性の調査を目的として、簡易的な実装を行いました
  • 5/14-5/27
    • 過去の入選作品との比較を踏まえ、作品案の見直しを実施しました
    • 別案の検討と並行して、当初案に対する実装方針の再検討・修正を行いました
  • 5/27以降
    • 実装フェーズに本格的に着手しましたが、互いに多忙な状況であったため、実質的には非常に限られた期間での開発となりました。
    • 基本的に各自の空き時間で実装を進め、定期的なミーティングで進捗を共有する形式を採用していました
    • 開発終期は試験的に土日を丸一日一緒にコーディングするHappy Hacking Day を設けました
      • これはすごく効率が良かったです。

開発エピソード

  • 互いに忙しく、体感前年の70%程度の時間しか確保できなかった
    • なんかもう色々忙しすぎてデモ動画の撮影すらせずに提出した
  • 本当は自機を初音ミクにしたかったが、3Dモデルでフリーで使える満足のいく素材がなかったので一般的な小型宇宙船にした
  • トロフィーの得点条件を設定するために最後の方は沢山プレイしたので達人の域に達していた

結果・感想

落選!しかし...
入選には至らないがキラリと光る部分がある作品として作品紹介Extra Stageにて取り上げていただきました!!

審査員からの講評は以下の通りでした。

  • 楽しかった、かなり何回も遊んだ
  • シューティングとしての完成度は高かったが、歌詞読めないためリリック表現という観点で選外

「リリック表現という観点で選外」という点を、今回の企画案の出戻りの段階で解消できていれば入選していたかもしれないと今になって思います(これを受けて2024年に作り直したバージョンが現在プレイできる作品となっています。)。

本来、このプログラミングコンテストの趣旨は「リリックアプリ」の制作にあります。しかし、今回制作した「歌詞を撃って消滅させる」アプリは、歌詞を活かすというよりも破壊する方向性に寄っており、結果としてコンテストの趣旨と乖離してしまいました。この点は最大の反省点です。
その反省を踏まえ、次年度以降は「歌詞をどのように魅力的に見せるか」をより重視した作品づくりを行う方針としました。

また、技術的な観点では、入選作品にまだまだ完成度が遠く及ばないと感じ、来年2D作品を制作するのであれば3D制作を主眼とするPlayCanvasではなく、Webフレームワークでより堅実に作ろうと思いました。

特に、この年の最優秀賞である「MikuSNS」は従来の最優秀賞に多く見られたデザイン性の高い3D作品とは異なり、「既存サービスに TextAlive を組み合わせたらどうなるか」という、非常にシンプルなアイデアを軸にした2D作品であったと感じています。この点は、翌年以降に制作する作品の大きなヒントとして、私たちの中に強く残りました。

👇👇Lyrical Poker Shooting(我々の作品)はこちらで紹介されています👇👇
https://youtu.be/z9cLOYBDz1g?t=3493

👇👇Miku SNS(当時の最優秀賞作品)はこちらで紹介されています👇👇
https://youtu.be/51bNW0OI_yw?t=2917

Discussion