automatik

  • ゲーム本体とそのプロトコル socia からなる

概要

自作ソシャゲのアウトゲーム部分を作りたいという野望があった.
幾度となく書き直しているので永遠に完成していません.
しかし, これのおけげで Vue.js, TypeScript, Firebase, GraphQL, Semantic UI などを学べた.

2019-02-22

2019-02-23

2022-01-11

  • fp-ts : Monoid でリソースの計算
  • 経験値グラフの調整

2022-01-12
2022-01-13

gsutil cp -r gs://minimal-socia-firestore-export/2022-01-17T12:52:55_11496 firestore-data/

2022-01-21

  • 対数の数字セレクタ
  • アイテム譲渡
  • バトルは薄く
  • クエストの難易度関数

2022-01-25

  • core の完全な分離作業完了
  • a8k: キャラの固定化防ぐ方法
    • 期間で禁止カード作る?

2022-02-03

2022-02-05

  • イロレーティング導入してレーティングからCPU作り出して対人戦やりたい

Fluct<T extends { value: number }>: 変動する値を表す

type Fluct<T> = T & {
	fluctType: 'step' | 'smooth';
	key: number;
}

変動する値を確定させる ex. ガチャ, ドロップ
gaze(fluct: Fluct<T>) => Maybe<T>
重み付き乱数
gaze(flucts: WeightedFluct<T>[]) => T[]
キーを元にランダム

2022-02-09 追記: それって確率変数では?

Effecter<Fluct<T>>: 定数倍とかの作用が出来る
リソースに対してeffector列をかけられる
装備とかは Effector で定義する => 補正後のパラメータとか出来る

ランクとかは Resource に対してのviewでしかないをしたい

ItemResource: Record<string, ItemStack> にした方が自然
=> Resource[] に対して, 群, ordが出来るので

2022-02-06

jest
順不同な配列のマッチ

test('', () => {
	expect([1, 2]).toEqual(
		expect.arrayContaining([2, 1])
	)
})
 

2022-02-07

  • v0.13.0 リリース
  • swc 使うのあり
    • ts-node と違い型チェックをしないのと Rust製なので早いらしい
  • そろそろソーシャル要素入れたい
    • 対人戦実装
    • coreパッケージあるのでbot簡単に作れる
    • faker
    • マルチ募集したら適当に入ってきてほしい
    • ランダムな行動をn回とる
    • 全員で共通の的倒すクエスト
    • スイッチみたいのしたい
    • クエストをクリアすると係数が少し上がって段々難しくなる, 負けたら下がる

2022-02-10

2022-02-12

  • やはりフロントエンドのUIいじっている時間虚無になりがちだからミニマムなUIで行きたいところ
  • developper 向けの機能的なUIにしたい

2022-02-16

  • キャラクターにランダムな(総和は一定)特徴ベクトル持たせて, クライアント側でパラメータとして表現する.
    • fluct の seed から変換?
  • sociaプロトコル, LSPみたいにcapabilityで機能を絞るみたいな機能欲しい.
  • fluct, activity にプロトコル化してリソース付与とか定型化したい
  • ゲーム間fluct conversionしたい
  • CLIとWeb UIで共通化したいけど難しそう

2022-02-21
-DB選定

  • やはりSQLbaseにするか?
  • Firestore の弱点
  • GraphQL に浸かる?
  • 認証: Firebase Authentication
  • DB, Backend: Hasura with prisma
  • リアルタイムDB: Firestore

2022-02-24
yarn workspacesでmonorepo管理しているときにpath alias使っているパッケージにreferencesで参照させるとtsc-aliasが上手くpath aliasが解決しなくてtscがpath resolveしないのはやっぱり悪手じゃないかって思っている

CIも落ちるし, TypeScriptのProject references上手く行かないし発狂しそうになる

firestore型が違う問題, 先人がいた
TypeScriptで型をDIしてFirestore周りの型チェックをnode/browser向け環境にそれぞれ解決する - Qiita

  • pnpm に移行した

ゲームシステムに関わる部分(domain)を切り離すことは可能だろうか
-> fluctとactivityの話

2022-07-22

  • とりあえず, a8k の機能仕様書を書く

    • 良いER図ツール無さ気なので, marmaid.js で書いてzenn bookにするのはあり
  • wish Prisma schema書けるようになっておきたい

  • wish a8k SQL x microserviceに移行したい

    • ユーザーAPI(User)
    • 通知基盤(Mail)
    • コンテンツサービス(MasterCharacter, Character, Item)
    • インゲームサービス(Quest, World, Room)
    • ガチャサービス(Gacha)
  • あたりを分けて違う言語(Golang, Rust, Elixiir, Rails) あたりで書きたい

2022-08-30