ラッシュの速さ比べか...

https://github.com/progate-hackathon-enpower/andere-boxing

Swift

TypeScript

Kubernetes

AWS

Rust

無駄無駄無駄無駄無駄無駄無駄 オラオラオラオラオラオラオラ

まる

monokamo

石原佳晴

推しアイデア

リアルでラッシュバトルしようぜ!

作った背景

2月28日に、アーケードゲーム『ジョジョの奇妙な冒険ラストサバイバー』の全国大会があるから。

推し技術

web transport, eks, apple watch, core ml

プロジェクト詳細

👊 概要

____それは、スタンドバトルの心理戦!

Apple Watch のセンサーデータをトリガーに、iOS アプリ経由で Rust 製の低遅延同期サーバーと通信し、Web UI 上でアバター同士をリアルタイムにラッシュバトルを体感できる、『夢』 です。

画面構成

  1. Web

スタート画面 image

対戦画面

🛠 技術スタック

image

フロントエンド(Web)

image

フロントエンド(モバイル)

image

バックエンド

image

インフラ

image

(ML)

AppleWatchで「時間軸、ユーザー加速度、回転速度」の情報を持つCSVから、CoreMLでモデルを作成。ユーザーがパンチしたり、パンチに似た他の動作をしたりした時、動作を識別し、適切な操作を可能にし...ようとしていました。(後述)

🤖 AI活用

.claude/CLAUDE.md + .claude/rules/ で、基本の規則とコーディング規則を分けた。rules/以下の方はファイルパスや言語に対して自動適用される。

claude-code-action を使った PR 自動レビューワークフローを入れた。人間が怒られる時代になってしまった。(´・ω・`)

image image

GitHub Agentic Workflow

2/16に出ていた記事 を読んで導入してみた。

作った仕組み

・PR マージ後に README の更新要否を判断して、よしなに更新 PR を作成してくれるやつ:

立ち止まれてえらい: image

・毎日定時にリポジトリの状態を分析し「Repo Report」としてIssueを発行してくれるやつ:

report ラベルをトリガーに Discord へ自動配信する仕組みも組み合わせた: image

スプライト画像生成

Nano Banana 2にスプライト画像を作らせた。 image

CI/CD

TopazのCD <=NEW!!!!

topazのmdを、actionsで指定したmdの内容で置き換え自動更新する仕組みを作成しました。

topazの認証フローを理解し、actionsのflowとして公開しています。 詳しくはこちら

😭 苦労した点

Apple Watchでの開発がキビしすぎる 最初はパンチ/防御/Core MLを使った機械学習を予定しており、専用のデータ収集用アプリなども作っていたのですが、途中からどのメンバーもApple watchとの接続が不安定になり、学習データの取り出しができなくなりました。 加速度を取得するシンプルな実装をTest Flightで配信するシンプルな方針に切り替えて、ことなきを得ました。(大事!)

技術的挑戦

✍️ チームメンバーからひとこと

yomi4486

・ProtoBufferを初めて開発で使った。面白い。 ・CoreMLを初めて使った。Apple製品だけで速攻で学習モデルが作れるのすごい。 ・iOSでネイティブにHTTP/3 + QUICでWebTransportサーバーに接続可能にした。

まる

・ProtoBuffer, WebTransportが初めてでした。 ・ゲームを作り/Pixi.jsが初めてでした。状態管理が難しかったけど、スプライトが動いて超嬉しかったです。 ・AI活用点を稼ぐために最新の公式ドキュメントを読みました。 ・中間発表時間使いすぎてすみませんでした...

まる

@__Riochin2623