From 46b91391ade5206014194d0d7e21f5441c753d8f Mon Sep 17 00:00:00 2001 From: syui Date: Tue, 13 Jan 2026 07:55:07 +0000 Subject: [PATCH] =?UTF-8?q?ja/Aicard=20=E3=82=92=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ja%2FAicard.md | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 ja%2FAicard.md diff --git a/ja%2FAicard.md b/ja%2FAicard.md new file mode 100644 index 0000000..b16930f --- /dev/null +++ b/ja%2FAicard.md @@ -0,0 +1,63 @@ +# Aicard + +カードを集めるiosアプリです。 + +```json +{ + "name": "Aicard", + "id": "ai.card", + "repo": "ai/card", + "bundle": "ai.syui.card", + "domain": "card.syui.ai" +} +``` + +## ゲームの分離 + +ゲームはいくつもの要素で成り立っています。しかし、それぞれの要素が独立して動くことが望ましいため、`Airse`というゲームで作っていた機能の一部を`Aicard`に分離しました。 + +そのため、アカウントの作成、ゲームデータの作成、保存を分離することにしました。 + +また、収益化に最も適したプラットフォームはios(app store)だと考えたことも要因の一つです。 + +これでデータと収益化がそれぞれ独立して動き、連携できる形になりました。 + +### Aicard [ローカルデータ] + +- アカウントデータの作成 +- ゲームデータをリモートに保存 +- 課金システム + +### Airse [リモートデータ] + +- アカウントデータの読み取り、反映 + +## アカウントの新規作成 + +`syu.is`というatproto pds serverがあります。独自運用しており、ゲームアカウントとしても使用することにしました。 + +ただし、atprotoを採用する以上、知識がある人はリモートデータを書き換える事が可能です。これは、Airseに影響します。 + +これを防ぐため、新規作成されたアカウントは、一時的なuuidを発行することで、そのuuidを使ってsessionを復元できるだけにし、アカウントのrecord操作をできない仕組みにしました。 + +このような仕組みのため、`syu.is`のアカウントはデータ改ざんがないものとみなし、特別な扱いを受けます。 + +1. maxの値が通常よりも高く設定される +2. usernameの省略表記 +## ゲーム性 + +Aicardは、カードを集めるゲームです。集めたカードは、Airseというアクションゲームに反映されます。 + +非常にシンプルな作りになっており、webでも動きます。 + +## UIを作る + +ゲームエンジンでUIを作るのは大変でクオリティも低いことから、プレイヤー(user)のUIは`card.syui.ai`をueのweb browserで表示します。 + +AirseのUIを兼ねることで開発の負担軽減とクオリティの向上を図ります。 + +## カードの依頼 + +ユーザーが有料で依頼する形のものを用意すると面白いかもしれない。 + +その際は、カードの`© syui`のところに依頼したユーザー名を載せる。そういったアイデアがあります。 \ No newline at end of file