diff --git a/at.md b/at.md index 7b79f35..fa0dec7 100644 --- a/at.md +++ b/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 -```