スクリプトの実行を中断する方法
BattleFieldCodeでは、プレーヤーの実装したスクリプトを繰り返し実行するため、アプリケーションの側でその状態を管理する必要があります。スクリプトが異常終了したり無限ループに陥った場合、それらの実行を破棄し、2度と等が処理を実行しないようにします。
ところが、macOS/iOSのJavaScriptCoreは、スクリプトの実行を停止させる方法を提供していない様です。本エントリーではその方法について検討してみます。結果はQuiitaに挙げるつもりです。
現状、例外を使用する事を考えています。ただ、例外を使ってしまうと、ユーザスクリプトのcatch
文でそれを横取りされてしまいます。これを避ける方法が見つかっていません。
Battlefield code
ゲームの開発に着手しました。名前をBattleField Codeと言います。まだ設計段階ですが、githubにて仕様を公開しています。
BattleField Codeの概要/特徴
対戦型ゲームになります。2チームで対戦します。複数のマシン(戦車や飛行機)を使って戦闘を行うゲームです。 マシンの制御を、リアルタイムのキー入力で行うのではなく、JavaScriptのコードで行うのが本ゲームの特徴になります。
プログラムからshellコマンドを呼び出す方法
AmberPlayerが、AmberScript中のシェルコマンド呼び出しに対応しました。その時の手法をQuiitにて公開しました。
アナザーエデン #2
アナザーエデン、再開おめでとう。メンテナンス終了のお知らせ
ドキュメント管理
githubを使用している事もあり、各アプリ、フレームワークに添付するドキュメントのフォーマットには、markdownを使用しています。
APIの説明など、定型的な章立てを使うドキュメントが多いです。この様な文書をフリーフォーマットのテキストで管理するのは管理が困難だと気づき始めました。Domain Specific Formatを定義して、入力テキストがそれに沿っているか確認しつつ、markdown文書を生成するツールが必要だと考えます。
ツールの要求仕様をまとめました。
- 入力
- テキストの入力フォーマット(DSF: domain specific format)の定義
- 上記フォーマットをmarkdownフォーマットに変換するルールの定義
- 入力テキストファイル (複数指定可)
- 出力
- markdownフォーマットのテキストファイル
DSFとルールの提議方法がキモですね。