2024年春の Lisp ゲームジャム
ゲームジャムの結果
- 2024年春の Lisp ゲームジャムが終了した。
- 合計48本のゲームが投稿され、新記録を樹立した。
- 参加者は互いのゲームをプレイし、評価する時間を持った。
言語別の投稿状況
- Guile: 15本 (31%)
- Fennel: 10本 (21%)
- Clojure: 5本 (10%)
- CL: 5本 (10%)
- Racket: 4本 (8%)
- Elisp: 4本 (8%)
- S7: 3本 (6%)
- Kawa: 1本 (2%)
- Owl: 1本 (2%)
Guile の人気上昇
- Guile が初めて最多投稿数を記録した。
- 15本の Guile ゲームのうち11本は、Hoot を使って Web 向けに制作された。
- Hoot は Scheme を WebAssembly にコンパイルするツールで、Spritely Institute が開発している。
Fennel の根強い人気
- Fennel は Lua にコンパイルされる Lisp で、依然として高い人気がある。
- Fennel ゲームの大半は love2d を使って制作された。
Lisp の利用パターン
Lisp を「アイシング」として使う
- C や Rust などの静的言語で書かれたプログラムの上に、Lisp をスクリプト言語として使うパターン。
- 迅速な開発が可能だが、静的言語との強い結合が必要になる。
- 例: Fennel + love2d, S7 + raylib
Lisp を「ケーキ」として使う
- ソフトウェアスタックの大部分を Lisp で実装するパターン。
- 開発時間は長くかかるが、より多くの制御と柔軟性を提供する。
- 例: Guile + Chickadee, Hoot + HTML5 canvas
事例研究
Fennel + love2d
- love2d は Lua インタープリタを内蔵した C++ プログラムで、Fennel と相性が良い。
- Fennel ゲームの大半は love2d を使って Web に配布されている。
S7 + raylib
- raylib は C ライブラリで、S7 と組み合わせることで簡単に Web へ配布できる。
- GhostHop と Life Predictor がこのスタックを使っている。
Guile + Chickadee
- Chickadee は Guile 向けのゲームライブラリで、大部分が Scheme で書かれている。
- Turbo Racer 3000 と Bloatrunner がこのスタックを使っている。
Hoot + HTML5 canvas
- Hoot は Scheme を WebAssembly にコンパイルするツールで、HTML5 canvas API を使って 2D レンダリングを行う。
- 11本のゲームが Hoot を使って制作された。
ケーキ/アイシングのスペクトラム
- ケーキ型のアプローチはより多くの制御と柔軟性を提供する一方で、開発には時間がかかる。
- Guix プロジェクトはケーキ型アプローチの成功例であり、Lisp の利用を最大化することで高いハッカビリティを実現している。
GN⁺ の見解
- Lisp の柔軟性: Lisp にはさまざまな実装があり、開発者が自分のニーズに合った言語を選べる柔軟性がある。
- Web 配布のしやすさ: Hoot のようなツールを使えば、Lisp で書かれたゲームを簡単に Web に配布できる。
- 開発時間: ケーキ型アプローチはより多くの制御と柔軟性を提供する一方で、開発に長い時間がかかる可能性がある。
- 将来の可能性: Pre-Scheme のようなプロジェクトは、Lisp でより多くのソフトウェアスタックを実装できる可能性を切り開く。
- コミュニティ支援: Guile のようなプロジェクトはコミュニティの支援を受け、継続的に発展している。
まだコメントはありません。