Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Common Lisp製のゲームエンジンTrialについてすこし
Search
t-sin
May 26, 2022
Programming
0
1.1k
Common Lisp製のゲームエンジンTrialについてすこし
Shibuya.lisp lispmeetup #103
で発表したときの資料です。
t-sin
May 26, 2022
Tweet
Share
More Decks by t-sin
See All by t-sin
Lispの紹介 〜 令和最新版
tsin45
0
610
Carp言語さわってみた 〜鯉を取り戻せ編〜
tsin45
0
1.1k
Common Lispでのゲームボーイエミュレータ実装進捗報告 vol.1
tsin45
0
800
Other Decks in Programming
See All in Programming
C++20 射影変換
faithandbrave
0
520
Railsアプリケーションと パフォーマンスチューニング ー 秒間5万リクエストの モバイルオーダーシステムを支える事例 ー Rubyセミナー 大阪
falcon8823
4
890
関数型まつりレポート for JuliaTokai #22
antimon2
0
150
設計やレビューに悩んでいるPHPerに贈る、クリーンなオブジェクト設計の指針たち
panda_program
6
1.1k
ドメインモデリングにおける抽象の役割、tagless-finalによるDSL構築、そして型安全な最適化
knih
11
2k
Claude Codeの使い方
ttnyt8701
1
130
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
1
180
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
5
1.2k
Rubyでやりたい駆動開発 / Ruby driven development
chobishiba
1
220
Blazing Fast UI Development with Compose Hot Reload (droidcon New York 2025)
zsmb
1
180
DroidKnights 2025 - 다양한 스크롤 뷰에서의 영상 재생
gaeun5744
3
310
Deep Dive into ~/.claude/projects
hiragram
7
940
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Designing Experiences People Love
moore
142
24k
Fireside Chat
paigeccino
37
3.5k
Statistics for Hackers
jakevdp
799
220k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Building a Modern Day E-commerce SEO Strategy
aleyda
41
7.3k
How to Think Like a Performance Engineer
csswizardry
24
1.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
Music & Morning Musume
bryan
46
6.6k
Site-Speed That Sticks
csswizardry
10
650
A better future with KSS
kneath
239
17k
Transcript
Common Lisp製のゲームエンジン Trialについてすこし @t-sin 2022-05-26 lispmeetup #103
ゲームエンジン: 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
ゲームエンジンについて • ゲーム開発に特化した共通プログラムのこと • 単なるライブラリから統合開発環境までいろんな形態のものがある • ゲームに特殊化してない共通プログラムを「ミドルウェア」といっ て区別したりする – 3Dグラフィック向けとかサウンド向けとか
– 区別するものの、境目はあいまいっぽい • 参考: Wikipediaの『ゲームエンジン』の記事 – ゲームエンジンの一覧、こんなにあるのかーとなれるのでオススメ
ゲームエンジンの形態 • 統合開発環境型 – 大規模: Unity、Unreal Engine、Godot、 – 中〜小規模: RPGツクール、WOLFエディタ、吉里吉里(Z)
• ライブラリ型 – SDL (Simple DirectMedia Layer)、DXライブラリ • API型 – Direct X • ……境目はあいまい – DXライブラリは3Dグラフィックライブラリとも捉えられるし Direct XはマルチメディアAPIとも言える
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
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)))
まとめ • Common Lisp製ゲームエンジンTrialについて述べた – Steamに出せるくらいの本格ゲームがつくれる – 現状はまだ他人がさくっと使えない – もしかしたらKandriaのレベルエディタはリポジトリとして生えるかも?
• 「ゲームエンジン」についてちょろっと解説した • Trialの中をasdファイルだけ覗いた – 依存ライブラリの自作率すごい – もうちょっとディープに中を見たかったけど今回むりだった