Skip to content

funatsufumiya/minimax

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

229 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

minimax - Win/Linux check branch

Minimalist 3D game engine in Clojure (This fork is for Win/Linux compatibility check)

  • NOTE: PR (#16) was created from PR branch. This fork's only task left is to check compatibility with LWJGL 3.3.6.
    • PR branch is also suitable for regular use for Win/Mac/Linux (while waiting PR merging.)

How to run checks

# compile shader first if you need, but most of them are already compiled (included)
# nu ./scripts/shaders.nu

nu ./scripts/start.nu check.empty
nu ./scripts/start.nu check.empty2
nu ./scripts/start.nu check.triangle_2d
nu ./scripts/start.nu

Status

LWJGL Version

  • Upgrade to LWJGL 3.3.3 (NOTE: 3.3.4 - 3.3.5 has known compatibility issues)
  • Check compatibility with LWJGL 3.3.6

basic checks (prerequisites)

  • empty
  • triangle (2d)

fg.core

  • Build passing
  • Run through
  • Sound
  • Model loading (-> probably working)
  • Rendering compatibility
    • Shadow
    • Background
    • Cloud
    • Castle
    • Stones

Platforms

  • Windows / DX11
  • macOS / Metal
  • Linux / Vulkan (Ubuntu)
  • Linux / OpenGL (Currently disabling for shader compatibility, such as phong shading)

Refactoring

  • code cleaning for PR

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

About

Minimalist 3D game engine in Clojure (In this fork, mainly investigating Windows/Linux compatibility.)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Clojure 55.5%
  • Shell 28.7%
  • C++ 9.7%
  • Scala 3.2%
  • Nushell 1.6%
  • C 0.6%
  • Other 0.7%