A minimal operating system abstraction layer, which can be used to build things like video games, simulations, or any other type of computer program that has user I/O. Heavily inspired by Casey Muratori's Handmade Hero.
KORL is being built with the following tenets:
- minimization of needless abstraction
- minimization of project build times (unoptimized builds must build in <= 1-5 seconds)
- freedom from IDEs
- improved APIs over the often-atrocious CRT (C Runtime) APIs
- complete separation of user/game code from operating system APIs
- complete control over where memory goes during run-time memory allocations
- core development features which Kyle feels there is no excuse to not have:
- hot-reloading code
- hot-reloading file assets
- full-frame memory state snapshots at all times, allowing the developer to debug crashes in symbol-stripped code by loading the state at the top of a frame in a build that includes debug symbols, instead of just being left with a cryptic & often useless memory dump
- immediate GUI API
- CPU & Memory metrics
- currently, there is only a Windows platform implementation, but I am planning to at least add WASM
- fully-functional I/O:
- keyboard input
- mouse input
- gamepad input
- XINPUT pads only, for now
- 3D hardware rendering using Vulkan
- support for PNG & JPEG textures
- audio rendering
- support for WAV & OGG/Vorbis audio files
- application-specific filesystem I/O