2P by neo 13일전 | favorite | 댓글과 토론

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과 같은 프로젝트는 커뮤니티의 지원을 받아 지속적으로 발전하고 있음.