見出し画像

自作ゲーム開発記 Mother Planets #5 ついにTwitchアカウントとの接続に成功しました

今回からサムネ画像を変えました。
ゲーム画面はHTMLでつくったβ版なので、本実装ではもっとちゃんとしたものになる予定です。

シルバーウイークで進捗多めになりそうなので、ショートショートで進捗かいていきます。

今日は、Unity版「Mother Planets」の開発でかなり大きな節目まで進みました。ここ数週間は、惑星のデータ構造やHP、ダメージ計算、属性など、画面上ではほとんど変化の見えない基礎部分を作っていました。

そして今回から、いよいよこのゲームの重要な部分であるTwitchとの直接連携に着手しました。

このゲームは、β版ではtwitch連携を外部ソフトに依存していましたが、Unity版ではStreamer.botなどの外部ツールを使わなくても、ゲーム単体でTwitchアカウントと接続できる仕組みにします。今回作った設計でも、Twitchとの通信部分をゲーム本体のロジックから分離する形にしています。

通信に関しては、昔研究で触っていたPCとロボットマイコンとのHTTP通信の心得が微力ながら役に立ってくれたので、今日も頭を悩ませながらも楽しく実装できました!

初めてゲーム画面に映ったのは、惑星ではなく情報簡易パネルだった

今回はまず、TwitchのDeveloper Applicationを登録し、OAuthのDevice Code Flowを使った認証を実装しました。ゲームを起動すると認証用URLとコードが発行され、ブラウザでTwitchにログインして許可すると、Unity側がそれを検知するという流れです。

最初に画面へ「Authorizing」と表示され、
認証後には「Connecting」
そして最後に「Connected」まで到達しました。

さらに、認証したTwitchアカウントのログイン名とUser IDもUnity側から取得できるところまで確認できました。認証時に使ったコードやURLは、接続完了後には画面から消えるようにしています。

今回もう一つ大きかったのが、再接続処理です。一度認証した後、保存してあるTokenを使って再接続し、
「Connected → Reconnecting → Connecting → Connected」
という流れで復帰できることも確認しました。

また、Access Tokenが無効になった場合にはRefresh Tokenを利用し、Refresh Tokenまで無効なら再認証へ戻す、という形へ整理しました。

逆に、単なるネットワーク障害やTwitch側の一時的なエラーではTokenを消さないようにしています。このあたりは、実際に配信で長時間動かすゲームを想定するとかなり重要な部分です。

開発中に状態を確認しやすくするため、簡易的なTwitch Debug Panelも作りました。現在の接続状態、ログイン名、User ID、認証中であれば認証コードとURLをゲーム画面上で確認できます。これは最終的なゲームUIではなく、開発中の確認専用画面です。

ただのデバッグパネルですが、リアルタイムでゲーム画面が推移する様子には感動しました。

AIつかってゲーム作ってみたという記事のほとんどは「何かしらのオブジェクトを画面上に映してみて、なんか動かしてみる」みたいなところから入っているもの(そしてしばらくして拡張できずに行き詰って終わりみたいなケースが多い気がする)ばかりですが、今回の開発では今まで約1ヶ月にわたってゲーム画面には何も写していませんでした。

今まで機械系で学んだ知見として、設計図やモックアップが煮詰まっていないのに、安易に開発に着手するほどの悪手はないと感じていたので、コア部分をしっかり固めた上で開発をこれからも続ける予定です。

ログイン前
指定のURLからログイン

テスト数も増加

そして今回もテストを増やしました。

前回まで121件だったEditMode Testは、Twitch認証やToken管理、エラー判定などのテストを追加して、146 PASS / 0 FAILEDまで増えました。

実際の起動確認でもWarning 0 / Error 0です。

一度テストが145 PASS / 1 FAILEDになりましたが、原因を調べると「401 Unauthorizedの判定処理を別の認証処理に入れてしまっていた」というミスでした。テストがなければ気付かず残っていた可能性もあり、改めてテストを作っておく意味を実感しました。

現状、TokenはまだUnityを終了すると消えるメモリ保存のみです。Access TokenやRefresh Tokenは認証情報なので、安易に平文ファイルへ保存せず、Windows版として安全な保存方法を確認してから永続化する予定です。

これでWeek 5の目標だった、
「UnityからTwitch認証を開始し、Connectedまで到達する」
ところはクリアできました。

予定

次はいよいよWeek 6。TwitchのチャットをUnityで受信して、ゲームからチャットへ返答できる仕組みを作ります。

ここまでずっと「ゲームを作っているのにゲーム画面がほとんど変わらない」期間でしたが、Twitchと実際につながったことで、ようやくMother Planetsの視聴者参加型ゲームとしての入口まで来た感じがします。

次の目標はまず、
Twitchチャットで !ping → ゲームから pongです。
ここが通れば、その次はいよいよ本物の
!join → 自分の惑星が生成されるところへつながっていきます。
一気にテンションが上がってくるところです!

現在、コンテストデモ版完成のロードマップWeek 16(2026/12/13〜12/19)のうちWeek 5を約1週間の前倒しで進行中です。シルバーウイークでWeek6完了ぐらいまで前倒しできると嬉しいです。


いいなと思ったら応援しよう!