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을 사용하여 웹용으로 제작됨.
- 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를 사용하여 웹에 배포됨.
S7 + raylib
- raylib은 C 라이브러리로, S7과 결합하여 쉽게 웹에 배포 가능함.
- 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는 다양한 구현체가 있어 개발자가 자신의 필요에 맞는 언어를 선택할 수 있는 유연성을 제공함.
-
웹 배포의 용이성: Hoot과 같은 도구를 사용하면 Lisp로 작성된 게임을 쉽게 웹에 배포할 수 있음.
-
개발 시간: 케이크 접근 방식은 더 많은 제어와 유연성을 제공하지만, 개발 시간이 오래 걸릴 수 있음.
-
미래 가능성: Pre-Scheme과 같은 프로젝트는 Lisp로 더 많은 소프트웨어 스택을 구현할 수 있는 가능성을 열어줌.
-
커뮤니티 지원: Guile과 같은 프로젝트는 커뮤니티의 지원을 받아 지속적으로 발전하고 있음.