https://github.com/roman01la/minimax
Minimalist 3D game engine in Clojure
https://github.com/roman01la/minimax
3d-graphics bgfx clojure game-engine
Last synced: about 1 month ago
JSON representation
Minimalist 3D game engine in Clojure
- Host: GitHub
- URL: https://github.com/roman01la/minimax
- Owner: roman01la
- License: epl-2.0
- Created: 2023-01-03T21:42:23.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-02-26T09:53:09.000Z (about 2 years ago)
- Last Synced: 2025-04-11T02:59:30.149Z (about 1 month ago)
- Topics: 3d-graphics, bgfx, clojure, game-engine
- Language: Clojure
- Homepage:
- Size: 3.44 MB
- Stars: 60
- Watchers: 4
- Forks: 3
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Minimalist 3D game engine in Clojure
> In game theory, minimax is a decision rule used to minimize the worst-case potential loss; in other words, a player considers all of the best opponent responses to his strategies, and selects the strategy such that the opponent's best strategy gives a payoff as large as possible.
>
> — https://brilliant.org/wiki/minimax/
## How to run
_Tested only on Apple Silicon system_
- Make sure to replace [native packages in deps](https://github.com/roman01la/minimax/blob/main/deps.edn#L15-L23) with the ones matching your platform
- Compile shaders `./scripts/shaders` (shaders code might need changes depending on rendering backend choosen on your platform)
- Run the sample project `./scripts/start`## Features
- Windowing and input handling
- GLTF loader
- Renderer
- Blinn–Phong shading
- Shadow maps
- Scene graph
- Audio playback
- Small and incomplete UI system
- Scroll views
- Buttons
- Component system with local state
- Flexbox layout