Hackathonというイベントに非プログラマーが参加してみた話
イオン鯖Hackathonというイベントに参加してきました!
平たく言うとみんなで集まって2週間でゲーム的なもの作ろうぜ!というイベントです。
8チームのべ14人(含むAI)の参加者が集まり、発表当日はやいのやいのと大盛り上がりでとても楽しいイベントでした!
今回はその準備から発表までの様子を書いていこうと思います。
早速ですが完成したゲームはこちらです!
開発開始に至るまで
私はIT職未経験のプログラミングド素人なのですが、新しい物好きでミーハーでゲーム好きでヒマだったので挑戦することにしました。業務でAIにちょっと触ったことはあったのでコピペだけでもなんか作れるんじゃないかな、と軽い考えで参加しました。
まず、雑多にアイディアを書き連ねた後に作品の方針について考えました。
はじめは『ダークドレアム20ターン以内撃破支援計算ツール』
『大喜利ボドゲ支援ツール』のようなツールをスプレッドシートで作ろうと思っていましたが、
という全体に向けたアドバイスを見かけ、思い切って遊べるゲームを作るのを目標にすることにしました。
ゲーム企画案作成
どのようなゲームを作るかを考えたときに
まずプレイ中の人間の様子を想像しました。
これはプレゼン後に実際に遊ぶ時間が設けられていたためです。
私は結局一番面白いのは大声だと思っているので
大人二人が「ウオオオオオ!!」と叫びながら必死になっている姿
を見たいなと思いました。
そこに
現代の風潮的に短時間決着、スマホでも遊べるのが良い
効率の良さを上げる楽しさ(直前までfactorioをしていたため)
数字がとにかくでかいという楽しさ
技術的に簡単そうなのがいい
コロコロ版だと妙に重い展開がある雰囲気があるとよい
などの理想や妄想を重ねていった結果、
ハッキングがテーマの対戦連打ゲームという結論になりました。
……驚くべきことに、この時点ではまだ私はクッキークリッカーの再発明をしていることに気づいていませんでした。
まぁクリッククラッカーという名前はこの段階で考えていたので、十中八九無意識パクリ野郎だとは思うのですが。
※余談中の余談
Click Cracker(クリックの効果をクラックする)
Click-Clack(ボタンをカチャカチャするという意味)
というダブルミーニングを想定していましたが
クッキーとクラッカーでお菓子つながりもあるということに気づきました!うまいですね、お菓子だけに
開発日誌
さて、開発途中まで日誌をつけていたので一部抜粋して紹介します
1日目
業務ではCopilotにコードを書いてもらっていたのですが、4000字という制限があるため制限のないChatGPTに開発をしてもらうことにしました。
この日は5秒以内に何回ボタンをクリックしたかを最後に表示するというコードを書いてもらった後、GitHubにそのコードを送ろうとしていました。
質問の文脈を読み取って説明してくれるのでとても頼りになりましたが、新しい単語が出てきすぎたためいったん就寝しました。
2日目
というわけで2日目にはゲームの基礎部分がほぼ完成しています。
ブランチ名の初期設定が違う問題にはかなり悩んだ記憶がありますが、表示されている文字などを片っ端から入力して質問した記憶があります。
AIの進歩と人間の退歩おそるべしですね。
SF映画のマトリックスっぽく黒背景に緑文字のデザインにするよう指示をしたのがこの日の功績です。
3日目
はい、というわけで3日目にはほぼ完成していました。
選んだキャラによって異なるスキルを使える、という要素を実際に画で見てみるとかなり良くて手ごたえを感じました。
この絵はImage CreatorというAIのサービスを利用しており、私がキャラを思いつく度に描いてもらいました。完成版とは違うところもありますね。
また、結局一番面白いのは大声理論を前提とした結果表示の見せ方について考え、スコアの推移を表示することにしました。
対戦時に相手の妨害スキルなどによりスコアがガクンと減った際に
「お前18秒の時に何やったんだよwwww」などのような会話が発生して盛り上がってほしいと考えていました。
あと、この時点でようやく
自分がクッキークリッカーのパクリゲーを作っているということに気づき
大量にクッキーを焼くおばあちゃんハッカーというキャラを入れました。
わかってやってるオマージュなんだな、と思ってもらうためです。
5日目
この日は用意していた背景画像がループすると切れ目でおかしくなる問題を解決しました。
また、このグラデーションが意外と作品とマッチしていると感じたため
全体的なカラーリングやキャラクターの見た目、ロゴを初めに想定したよりもポップで楽しくしました。
ハッキングというテーマとのギャップが生まれてよかったと思います。
?日目
日誌はここで途切れています。
残念ながらこの日から一週間かけても
対戦モードとランキングの実装ができず書くことがなかったためです。
対戦はGlitchというサービスを用いてサーバーを立ててマッチングをしてクリック回数を相手に送信する、というところまでできたところでエラーが頻出し動かなくなり、ランキングはスプレッドシートに反映させようと思ったがうまく連動できずという状況でした。
対処法として存在していたのは私が勉強してコードを修正するだったのですが、
すでに許容量以上の知識が詰め込まれていた
自分でコードを書かないという縛りも特徴の一つにしようと思った
そもそもセキュリティ面の不安があった
という理由により行いませんでした。
それよりも、残された時間をプレゼンの準備や見た目の調整などにあてて、より楽しんでもらうための工夫をしたいと考えました。
大会の趣旨的には期限ギリギリまで技術を追求したほうがよい気もしましたが、それよりも私がやりたいことを優先しました。
結果的にここが一番評価された部分になったのでそこまで悪い判断ではなかったように思います。
バランス調整について
私はすごく良く言うと感覚派(スレスパも試行回数で永遠の存在になったタイプ)なので細かい調整を追及するのは無理だなと考えていました。
そのため全員でかい数字を出せるようにするという調整をしました。
ただ、明確に強キャラがいると盛り上がりがちなのでリスペクトの意味も込めておばあちゃんを強いキャラにすることにしました。
白髪を見てアインシュタインが複利を人類最大の発明と評したという情報を思い出したので複利をテーマにしたスキルにしたところ……
さすがはアインシュタイン、フリープレイ時には最強キャラと言われていました。
ちなみに10秒間スコアが毎秒3割ずつ増え続けるというものです。つよい。
発表直前
発表前日には見た目の調整やスライドを作成し、当日にPVを作成しました。
当日は18時まで仕事だったため開始までの3時間で素材集め、撮影、編集までを行う必要があり、2週間のうちでここが一番忙しかったです。
事前に行ったスライド試し読みだけで発表時間の5分を過ぎていたので尺をできるだけ詰める必要があったのも難しかったところです。
キャラ紹介パートで流す用に数キャラ分のセリフ(CV私)も収録していましたが泣く泣くカットしました。
今思うといらなすぎですね。
実写パートはグリーンバックを持っていなかったのでDaVinciResolveという動画編集ソフトのマジックマスクという機能で背景を切り抜きました。
先ほど調べるとこれもAIでした。なんかもう恐ろしいですね。
発表日
実際の発表は、終盤に向かうにつれどんどん早口になっていく時間ギリギリの展開でした。
聞き苦しかったと思います。もうちょい削るべきだった!申し訳ない!
ただ、PVを流しているときは絶句と困惑の音が聞こえてきてとても愉快でした。
フリープレイタイム
自分が作った(作らせた?)ゲームで遊んでいるところを見るのは本当に嬉しかったです。ここで書いたような苦労話を話すべきだったのですが、なぜかキャラクターの裏設定について語ってしまった気がします。
ただ、最強キャラ議論が始まったりスキルの仕様について聞かれたときに
『ああ、私はゲームを作ったんだ……』と強く実感できて胸が高鳴ったことは覚えています。それと同時に対戦機能実装したかったなーという心残りもかなり強まりました。
投票
結論から言うと私は総合3位という結果でした!!
ほかにも面白いものがいっぱいあったので票が入ったというだけでとてもうれしかったです。そういえば発表の時に喜びすぎて「一番喜んでる」的な指摘をされていた気がします。
頑張って作った甲斐がありました!まだまだうれしいですね!
感想も何回も読み直して一人で頷いています。
おわりに
というわけでド素人がAIにゲームを作ってもらった話でした!
とても充実した2週間で、当日の発表もあふれるアイディアに感心するばかりでした!!ニンテンドーダイレクトをやりたいという夢も叶いました!
いい感じに募集や進行をしてくださった主催のぽんぬさん、
並びに面白いアイディアを見せてくださった参加者の皆様本当にお疲れ様でした!
そしてありがとうございました!!
もちろん、様々なAIにも感謝……!!
またいずれ!