Skip to content

roman01la/minimax

Repository files navigation

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 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