at を更新
parent
9634fda785
commit
80cfde37c7
39
at.md
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
|
||||
```
|
||||
|
Loading…
Reference in New Issue
Block a user