NASA: Pluto Matters!

    @akashic/playlog
    TypeScript icon, indicating that this package has built-in type declarations

    3.1.0 • Public • Published

    playlog

    Akashicのゲームの実行ログの仕様及び、TypeScriptの型定義を提供します。 本リポジトリは型の定義のみを提供しています。 Akashic Engineの詳細な利用方法については、 公式ページ を参照してください。

    仕様

    EventTick の仕様を定義します。

    これらは、通信路を流れる際のオーバヘッドを少なくするため、配列型のデータとなっています。

    オプショナルYES となっているものは、 null 又は配列末尾のデータであれば省略することができます。

    numberは数値型、stringは文字列型を表します。

    Event

    Event はゲームに発生した出来事を表すデータです。

    EventCode イベント
    0x0 プレイヤー参加
    0x1 プレイヤー離脱
    0x2 時間の記録
    0x3 プレイヤー情報
    0x20 汎用的なデータ
    0x21 ポイントダウン
    0x22 ポイントムーブ
    0x23 ポイントアップ
    0x40 操作プラグイン

    Event 共通のデータ・フォーマットは以下のようになります。

    Index オプショナル 説明
    0 number NO EventCode
    1 number NO イベントフラグ
    2 string NO プレイヤーID

    インデックス2番以降は各イベントのデータがセットされます。

    イベントフラグ

    EventFlags は以下のビットフラグをからなる数値を表します。

    下位ビット 説明
    0 プライオリティ
    1 プライオリティ
    2 予約フィールド
    3 非永続化フラグ
    4 省略可能フラグ

    下位0ビット目と1ビット目はプライオリティを表します。

    下位3ビット目は非永続化フラグを表します。このビットが1の場合、対象のイベントは永続化されないことを許容します。

    下位4ビット目は省略可能フラグを表します。このビットが1の場合、対象のイベントは任意のタイミングで欠落しうること許容します。

    JoinEvent (0x0)

    プレイヤーの参加イベントを表します。

    Index オプショナル 説明
    3 string NO プレイヤー名
    4 StorageData[] YES ストレージデータ

    StorageData[] は 参加したプレイヤーに紐づくデータを表します。 StorageData のデータ・フォーマットは TypeScriptの型定義 を参照してください。

    LeaveEvent (0x1)

    プレイヤーの離脱イベントを表します。

    TimestampEvent (0x2)

    時間の記録を表すイベントです。

    Index オプショナル 説明
    3 number NO 時間を示す値

    時間を示す値同士を比較したときに、大きい値が未来の時間を表します。

    PlayerInfoEvent (0x3)

    プレイヤーの情報を表すイベントです。

    Index オプショナル 説明
    3 string NO プレイヤー名
    4 any YES ユーザ定義データ

    MessageEvent (0x20)

    汎用的なデータを表すイベントを表します。

    Index オプショナル 説明
    3 any NO 汎用的なデータ

    PointDownEvent (0x21)

    ポイントダウンイベントを表します。

    Index オプショナル 説明
    3 number NO ポインターID
    4 number NO X座標
    5 number NO Y座標
    6 number YES エンティティID

    PointMoveEvent (0x22)

    ポイントムーブイベントを表します。

    Index オプショナル 説明
    3 number NO ポインターID
    4 number NO X座標
    5 number NO Y座標
    6 number NO ポイントダウンイベントからのX座標の差
    7 number NO ポイントダウンイベントからのY座標の差
    8 number NO 直前のポイントムーブイベントからのX座標の差
    9 number NO 直前のポイントムーブイベントからのY座標の差
    10 number YES エンティティID

    PointUpEvent (0x23)

    ポイントアップイベントを表します。

    Index オプショナル 説明
    3 number NO ポインターID
    4 number NO X座標
    5 number NO Y座標
    6 number NO ポイントダウンイベントからのX座標の差
    7 number NO ポイントダウンイベントからのY座標の差
    8 number NO 直前のポイントムーブイベントからのX座標の差
    9 number NO 直前のポイントムーブイベントからのY座標の差
    10 number YES エンティティID

    OperationEvent (0x40)

    操作プラグインイベントを表します。

    Index オプショナル 説明
    3 number NO 操作プラグインコード
    4 (number|string)[] NO 操作プラグインデータ

    Tick

    Tick はゲームの1フレームを実行するために必要なデータです。

    Index オプショナル 説明
    0 number NO フレーム番号
    1 Event[] YES イベント
    2 StorageData[] YES ストレージデータ

    StorageData のデータ・フォーマットは TypeScriptの型定義 を参照してください。

    Tick は通信路を流れる際に、以下のような最適化を実施することが望まれます。

    number

    Tick にフレーム番号しか含まない場合は、配列ではなくフレーム番号(number)のみを送信します。

    TickList

    TickList はフレーム番号の続く複数の Tick を表します。

    Index オプショナル 説明
    0 number NO 開始フレーム番号
    1 number NO 終了フレーム番号
    2 Tick[] YES Tick[1]又はTick[2]が存在するTick

    TypeScript型定義

    インストール

    npm install @akashic/playlog
    

    利用方法

    import * as playlog from "@akashic/playlog";
    

    開発

    ビルドテスト

    cd test
    tsc
    

    ライセンス

    本リポジトリは MIT License の元で公開されています。 詳しくは LICENSE をご覧ください。

    ただし、画像ファイルおよび音声ファイルは CC BY 2.1 JP の元で公開されています。

    Keywords

    none

    Install

    npm i @akashic/playlog

    DownloadsWeekly Downloads

    366

    Version

    3.1.0

    License

    MIT

    Unpacked Size

    23.2 kB

    Total Files

    12

    Last publish

    Collaborators

    • akashic-owner
    • yu-ogi
    • kmkr01
    • akashic-extension-owner
    • shinobu_takahashi