飲み会のゲームとして、お絵かき伝言ゲームが始まったとしましょう。
画力ありきのゲームなので、当然画力がある人が勝ち続きやすいゲームになってしまいますね。
そこで、私たちは画力無しでも平等に戦えるように、
絵を描く部分をプロンプトで生成AIに描いてもらうゲームにして、
より幅広い層に楽しんでもらえるようなゲームにしました。
実際に、生成AIに指示して絵を描いてもらうと、予想だにしない絵が生成されたりするので、盛り上がること間違いなし!
今回のプロダクトではユーザの操作に反応して画面の描画を変える処理が頻繁に走ります そのため、ほとんどのページでSCRを採用することになり、Next.jsを採用してもあまり利点を活かすことが出来ないということで、Reactを採用しています
現在普及しているOTPによる認証はemailやSMSを使用したものや、専用のアプリケーションを使用したものがほとんどです 今回、私たちはLINE Botを使用することで、ユーザにより身近なLINEでOTPの発行を行うことができるように実装しました
セキュリティ面で主に以下の点に注意して実装しました
query := fmt.Sprintf("insert into users (id, name, password, line_uid, icon_image_url) values (?, ?, ?, ?, ?)")
参加者待機画面やゲーム進行の同期などで、リアルタイム性が求められるので、WebSocketを使ったリアルタイム通信を採用しました。
フロントエンドを構成するコンポーネントをアトミックデザインを意識して細かく作成することで、今後機能追加やデザインの変更があった際に柔軟に対応できるように開発しています
今回は、ニューモフィズムデザインというデザインを採用しました。
新鮮な見た目で、視覚的に興味を惹いてもらえるようになっています。
また、色のメリハリが弱いので、ボタンの色を使い分けたり、凹凸をうまく利用するなどして、ユーザビリティを高めたデザインにしました。
CORSを起こさないためにリバースプロキシを使用しているが、それをAzure上で実現する方法が自分たちではわからなかったが、メンターにAzureFrontDoorを教えていただき、実現できました オルターブースの方々、ありがとうございました!!
技術選定をMacを基準に考えていたため、ハッカソン期間中にWindows環境でのみ動作しないという問題が発生しました そこで、ハッカソン後、Windows環境で動作しない原因だと考えられた部分の技術選定を変更することで開発を継続することができるようにしました
チームメンバーの一人のPCのスペックが足りず、バックエンドとフロントエンドを同時に動かすことができないというトラブルが発生しました
そこで、バックエンド開発者のlocalhostをグローバルに公開し、リバースプロキシサーバのバックエンドのプロキシ先をその公開したアドレスに設定することでフロントエンド開発者が自PC上でバックエンドを起動せずに開発できるようにしました