Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Common Lisp製のゲームエンジンTrialについてすこし

Common Lisp製のゲームエンジンTrialについてすこし

Shibuya.lisp lispmeetup #103で発表したときの資料です。

t-sin

May 26, 2022
Tweet

More Decks by t-sin

Other Decks in Programming

Transcript

  1. ゲームエンジン: Trial • Common Lispのライブラリをたくさん書いてる Shinmeraさん作のゲームエンジン – https://github.com/Shirakumo/trial • SteamストアにあるゲームKandria

    (early access)に使ってる – メトロイドヴァニアという探索系2Dアクションっぽい – https://store.steampowered.com/app/1261430/Kandria/ • Shinmeraさんのソフトウェアといえばこのへんが有名? – https://shirakumo.github.io/radiance/ – https://github.com/portacle/portacle
  2. ゲームエンジンの形態 • 統合開発環境型 – 大規模: Unity、Unreal Engine、Godot、 – 中〜小規模: RPGツクール、WOLFエディタ、吉里吉里(Z)

    • ライブラリ型 – SDL (Simple DirectMedia Layer)、DXライブラリ • API型 – Direct X • ……境目はあいまい – DXライブラリは3Dグラフィックライブラリとも捉えられるし Direct XはマルチメディアAPIとも言える
  3. Trialは? • 現時点ではライブラリ型っぽい • Kandria用に別途マップエディタを用意してあるもよう – https://twitter.com/Shinmera/status/1512750290474311681 – https://twitter.com/Shinmera/status/1466359294945894403 –

    https://twitter.com/Shinmera/status/1403729050531663877 • まだドキュメントはほとんどない – 使いたい場合は参照実装のゲームリポジトリのコード読んでとなってる – https://github.com/shinmera/vpetjam
  4. trial.asdを眺めてみる • 太字はShinmeraさん製 • • • • • • •

    感想: – 生OpenGL、varjo (Lisp→GLSLコンパイラ)未使用 – サウンドのライブラリは含まれてない (自作はされている) – パーティクルエンジン (flare) 内蔵 – COM (com-on) とか DOM操作 (lquery) とか何につかってるんだ…?? :depends-on (:alexandria :3d-vectors :3d-matrices :verbose :deploy :closer-mop :trivial-garbage :trivial-indent :bordeaux-threads :cl-opengl :cl-gamepad :cl-ppcre :pathname-utils :flare :for :flow :glsl-toolkit :fast-io :ieee-floats :float-features :lquery :static-vectors :mmap :messagebox :form-fiddle :lambda-fiddle :jsown :zpng (:feature :linux :clx) (:feature :windows :com-on)))
  5. まとめ • Common Lisp製ゲームエンジンTrialについて述べた – Steamに出せるくらいの本格ゲームがつくれる – 現状はまだ他人がさくっと使えない – もしかしたらKandriaのレベルエディタはリポジトリとして生えるかも?

    • 「ゲームエンジン」についてちょろっと解説した • Trialの中をasdファイルだけ覗いた – 依存ライブラリの自作率すごい – もうちょっとディープに中を見たかったけど今回むりだった