/korl

Kyle's Operating-system Resource Layer

Primary LanguageC

KORL (Kyle's Operating system Resource Layer)

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

Project Status

  • 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