Skip to content

Releases: Stormcat-Works/storm-lua-engine

Storm Lua Engine v0.2.0

Choose a tag to compare

@makkiilikecat makkiilikecat released this 27 Sep 05:29

Storm Lua Engine v0.2.0

Luaの実行・描画基盤に、Vehicle向けCompiler SDK、環境プロファイル、開発用のソース読み込み、確認用Playgroundを統合しました。Storm MinのCLI/Webは独立したツールとして維持します。

主な追加

  • storm-lua-syntax / analysis / minify / buildによる解析、lint、マルチファイルの静的リンク、minify。
  • TypeScriptの/compilerと/compiler-worker、実行用とは独立したコンパイラWASM。
  • 任意のホスト値・同期関数を追加・置換するbindings。
  • extended専用のrequireLoader。LB方式のinclude-once、名前付きチャンク、読み込み先のデバッグに対応。
  • 非短縮Source Mapを利用した元ファイルのブレークポイント・step・エラー位置の検証例。
  • Storm Lua Engine: PlaygroundのCLI/Web。13種類の確認例でSDKの機能と制約を試せます。

更新時の注意

  • 既定はgameです。debug.logは利用できますが、pcall / xpcall / error / print / assert / グローバルunpackはextendedへ分離しました。onLogを設定するだけでLuaの関数が増えることはありません。
  • Vehicleのreset()は、正常完了したすべてのloadを元の順番で再実行します。Addonは初回の入口を一度loadする契約を維持します。
  • _ENVや拡張環境・ホスト置換を含むコードは、名前・リテラル・行番号を保持する字句短縮を選びます。外部グローバルを未定義の短名やnilへ変換する問題を修正しました。
  • 既定無効だった4パスを撤去しました。未知・廃止済みIDはfalse指定でもエラーにします。
  • Addon Labは削除し、必要な確認をPlaygroundへ移しました。仮物理・3Dワールドは移していません。
  • コンパイラはVehicle専用です。最適化後のSource Mapはこの版に含まれません。

変更ガイド / 導入 / Playground

配布

TypeScript/JavaScriptはnpm install @stormcat-works/storm-lua-engine@0.2.0で導入できます。添付tarballにはJS・型定義・3系統のWASMと権利表示を含みます。RustはGitタグv0.2.0から必要なクレートを指定します。

Playground ZIPは静的Webです。LuaはブラウザWorker内で実行し、サーバーへのコード送信を必要としません。CLIはリポジトリのapp/から利用する確認用CLIです。

検証

対象コミットは22592de08cfaadfc5696da001add1634149ba2ccです。Linux / Windows / macOSのNativeおよびWASM・3ブラウザ・Playgroundを含む公開前CIが成功しました。

添付した同じSDK tarballを隔離環境へインストールし、実行・描画・コンパイル・開発用require・ソースマップによる停止とエラー位置の確認を実行しています。release-verification.jsonに対象とハッシュを、SHA256SUMSに添付ファイルの検査値を記録しています。

これらはSDKの検証であり、全Stormworks版・全入力の実ゲーム互換性を証明するものではありません。対応範囲とホスト側の責務はガイドを確認してください。

Storm Lua Engine v0.1.0

Choose a tag to compare

@makkiilikecat makkiilikecat released this 26 Sep 01:59

Storm Lua Engine 0.1.0

RustとTypeScript/WebAssemblyから利用できる、Stormworks向けLua実行ライブラリの初回リリースです。

主な機能

  • Lua 5.3のビークル/Addon実行、Composite I/O、プロパティ、イベント、savedata。
  • CPU描画、同梱ビットマップフォント、Luaを含まない描画専用WASM。
  • ブレークポイント、ステップ実行、変数・テーブル検査、watch、ログ。
  • Addonのserver関数、地図プロバイダー、HTTP要求・返信のホスト接続。
  • Three.jsとCodeMirrorでホスト実装を試せるAddon Lab。

ワールド、物理、地形、実際のネットワーク通信、実行タイミングはホスト側が提供します。対応範囲と制約は利用ガイドを参照してください。

インストール

JavaScript/TypeScriptは、添付のstormcat-works-storm-lua-engine-0.1.0.tgzをダウンロードし、npm install ./stormcat-works-storm-lua-engine-0.1.0.tgzで導入できます。WASM・型定義・必要な権利表示を同梱し、runtime npm依存はありません。

Rustは、例えばstorm-lua-addon = { git = "https://github.com/Stormcat-Works/storm-lua-engine", tag = "v0.1.0" }をCargo.tomlへ追加してください。他の製品クレートも同じタグで利用できます。

Addon Labはstorm-lua-engine-addon-lab-0.1.0.zipを展開し、静的HTTPサーバーで配信してください。Rustやビルドツールなしで実行できます。ZIP内のREADME.txtに起動例があります。

検証

公開commitのCIは、Native Linux/Windows/macOSとWASMの4ジョブすべて成功しています。

731件の固定RGBAケースを直接描画と実Lua経路で検査し、Chromium・Firefox・WebKitで本体機能とAddon Labのデスクトップ/モバイル操作を実行しました。梱包済みnpm packageは独立環境へoffline installしてconsumer例を実行しています。

release-verification.jsonにcommit、CI結果、テスト数、ブラウザと配布物の情報を、SHA256SUMSに配布ファイルのSHA256を記録しています。実ゲームの新規観察や、記載していないプラットフォームでの実測を意味するものではありません。