at を更新

syui 2024-11-11 02:40:47 +00:00
parent 9634fda785
commit 80cfde37c7

39
at.md

@ -3,6 +3,25 @@ atprotoを利用したゲームの仕組みを解説。
- https://git.syui.ai/ai/at
- https://git.syui.ai/ai/bot
# アカウント
ゲームのアカウントはatを利用し、ゲームデータはpdsに保存されます。
まずoauthすると`yui.syui.ai`の[ai.syui.game.user](https://at.syu.is/at/did:plc:4hqjfn7m6n5hno3doamuhgef/ai.syui.game.user/syui)にアカウントが作成されます。
このat-uriをplayerの[ai.syui.game](https://at.syu.is/at/did:plc:uqzpqmrjnptsxezjx4xuh2mn/ai.syui.game/self)に書き込みます。
```sh
1. [yui] at://yui.syui.ai/ai.syui.game.user/syui
2. [user] at://syui.ai/ai.syui.game/self
```
# プレイ
playerはoauthしているとき`[yui]ai.syui.game.login`と`[yui]ai.syui.game.user:limit`を見ます。どちらもfalseならHTMLに`play`、trueがある場合は`live`を出力します。loginするとlimitにdayが書き込まれます。
logoutはゲーム内の`time:m5`か`button`で処理され、`[yui]ai.syui.game.login`に書き込みます。
# 配信
まずは配信の仕組みを解説します。
@ -17,23 +36,3 @@ https://at.syu.is/at/did:plc:uqzpqmrjnptsxezjx4xuh2mn/ai.unravel.syui.post/3l7lj
ただし、この場合、liveするたびにurlが変更されますので、配信時には新しいurlを作って共有する必要があります。
# ゲーム
ゲームアカウントもこのような仕組みで実装することは可能です。
今までは自作apiを使っていましたが、独自のpdsを立てるか、blueskyのpdsを使うとこのようなことが可能です。ゲームデータはpdsに保存されるので個人のsnsアカウントに紐づいています。
つまり、oauthでログインして、例えば、collectionに`ai.game.syui.status`を作ります。スタート時にそれを読み込んでキャラクターのパラメータに反映させます。レベルが上がると上書きされるか新たに追加されます。
ゲームを削除したいときは`ai.game.syui.status`などを削除すればいいでしょう。自分でapiを実行しなければならないので開発者用ではありますが、こちらでツールやuiを用意することもできます。
# yui.syui.ai
playerのデータは`yui.syui.ai`の[ai.syui.game.user](https://at.syu.is/at/did:plc:4hqjfn7m6n5hno3doamuhgef/ai.syui.game.user/syui)に保存されます。
このat-uriをplayerの[ai.syui.game](https://at.syu.is/at/did:plc:uqzpqmrjnptsxezjx4xuh2mn/ai.syui.game/self)に書き込みます。
```sh
1. [yui] at://yui.syui.ai/ai.syui.game.user/syui
2. [user] at://syui.ai/ai.syui.game/self
```