Skip to content

Platforms

zeganstyl edited this page Sep 18, 2020 · 1 revision

Main platform modules are LWJGL and TeaVM.

Kotlin/Multiplatform modules are currently experimental. It must be mentioned, that Kotlin/Multiplatform has seprate core (common) module copied from main core. Thelema library for multiplatform projects is named as thelema-kx.

Desktop

LWJGL

LWJGL provides bindings for native libriaries through JNI.

  • GLFW for creating OpenGL context, windows, input handling and providing OpenGL API
  • OpenAL for 3d audio playback
  • STB image for loading textures from JPG, PNG, TGA, BMP, PSD, GIF, HDR, PIC
  • J-Ogg for loading audio data from Ogg/Vorbis
  • json-simple for JSON parsing/serializing
  • ode4j as default physics engine

Kotlin/Native

Kotlin/Native allows you to use C libraries for building native aplications. Such applications can have high speed and low memory usage. Currently Kotlin/Native module has limit to use only single threading.

  • GLFW for creating OpenGL context, windows and input handling
  • OpenAL for 3d audio playback
  • STB image for loading textures from JPG, PNG, TGA, BMP, PSD, GIF, HDR, PIC
  • STB vorbis for loading audio data from Ogg/Vorbis
  • parson for JSON parsing/serializing
  • ODE as default physics engine

HTML5

TeaVM

TeaVM compiles any Java bytecode to javascript, so you can use Java and Kotlin at once.

  • WebGL 1 and WebGL 2 for providing OpenGL API
  • Web Audio API for audio playback
  • XMLHttpRequest for loading files
  • json-simple for JSON parsing/serializing
  • ode4j as default physics engine

Kotlin/JS

Kotlin/JS can use only Kotlin sources, but Kotlin/JS gives a faster compilation than TeaVM.

  • WebGL 1 and WebGL 2 for providing OpenGL API
  • Web Audio API for audio playback
  • XMLHttpRequest for loading files
  • Javascript JSON for JSON parsing/serializing
  • Currently no physics engine implementation