Definy is Web App for Web App.
ゲームとツールを手軽に作れて公開できるプログラミング言語とエディタ,ゲームエンジン,SNS. Elmで作っていた時期もあったが, 今は React で作られている Web アプリ. PureScript に移行中. まだ, ぜんぜんできていない
ここで動作を確認できる
古いバージョンでは WebAssembly を使って数値の足し算, 引き算, 掛け算ができる
- インストールの必要なく, Web ブラウザで動くため, 開発環境構築に時間がかからない
- Web ブラウザで 動作するので多くの端末, OS で動作する
- Web ブラウザ上のエディタで, プログラムを書く
- 言語仕様がシンプル
- 純粋関数型言語であり, 全てが不変データなため動作が予想しやすい
- エラーは Result 型で表現するため, 実行時エラーがかなり少ない
- 言語機能と結びついた構造化されたバージョン管理システムが付属している
- コードが文字列でなく, AST のような構造化されたデータをコードとして編集するので, 文法エラー, 参照不明のエラーがない
- コード整形ツールが不要
- 式の評価過程をエディタ上で確認できる
- 独自のリテラルを作れる
- 画像や音声, 3D モデルをプリミティブに扱える
- キーコンフィグ機能が自動でつく
- マクロ, TAS 機能, RTA タイマーが使える
- Chrome で, Google 翻訳が使える. 海外のゲームを日本語でできる
- 配信者のゲームの状態を受け取って, そこからゲームを再開できる
- 全てのゲームとツールのコードはプチコン 3 号のようにオープン
/.github/workflows/deploy_firebase.yml
: Firebase へのデプロイの処理が書かれている/.github/workflows/deploy_gen.yml
: npm パッケージ@narumincho/gen
へのデプロイの処理が書かれている/.github/workflows/pull_request
: Pull Request したときに実行されるテストの処理が書かれている/build
: ビルドのスクリプト/client
: TypeScript で書かれたクライアント用のコード/common
: クライアントとサーバーの共通のコード/core
: コンパイラのような処理が書かれている/functions
: サーバーのコード/gen
: データやコードを生成するプログラムのコード/static
: スタティックなファイルが置かれている/storybook
: UI の見た目や動作を確かめられる, storybook の設定や, ストーリーが書かれている
Node.js と Java (Firestore のエミュレータに必要) をインストールする必要がある.
Google でログインするための 鍵を, 1 つ上の階層のファイルに保存し, npm script の start
を実行するを開発用にアプリが起動する. Ctrl + C キーを押すと エミュレータを停止することができる. VSCode の ゴミ箱ボタンだと, firestore のエミュレータが終了されないので注意. タスクマネージャーの Open JDK Platform binary などのそれっぽいものを停止すれば, firestore のエミュレータを停止させることができる.