Keyboard driven tilebased level editor

cb9bc1e shift level data w/ arr keys

~kikoodx pushed to ~kikoodx/sle git

2 years ago

fc21450 meson: increment version number

~kikoodx pushed to ~kikoodx/sle git

2 years ago

#KBLE, a KeyBoard driven Level Editor

A work in progress level editor with extensive keyboard support. Designed for tile based 2D platformers. This is a work in progress program in unusable state.

#Short term design decisions

Subject to change.

  • Efficiency, simplicity and clarity are key goals.
  • Fully keyboard driven modal editing. Mouse support is secondary.
  • GUI software made in Zig with raylib.
  • Configurable (editing src/conf.zig).


Runtime requirements: raylib.

#Precompiled binaries

builds.sr.ht status https://builds.sr.ht/~kikoodx/kble

#Manual compilation

Build requirements: Zig master branch, raylib. For Arch users, I made kble-git available in the AUR.

$ # Clone this repository
$ git clone https://git.sr.ht/~kikoodx/kble && cd kble
$ zig build
$ zig-cache/bin/kble

Press escape to close the program.

#Command line argument

Not available on Windows. Accept a path to KBLE file to open. If the file doesn't exist, the given path will be used for saving. Defaults to level.kble if no argument given.

$ kble #level.kble
$ kble sample.kble
$ kble $HOME/projects/kble/sample.kble


In src/conf.zig, edit values from BEGIN USER CONFIG. The configuration is applied at compile time. You have the possibility to:

  • Disable mouse support.
  • Swap mouse buttons.
  • Disable backups.
  • Change default grid size.
  • Change default scaling level.
  • Disable adaptive window size.
  • Change and add colors.
  • Edit keybindings.

#Default keybindings


  • 09: behavior similar to Vi.


  • h: left
  • j: down
  • k: up
  • l: right
  • y: up-left
  • u: up-right
  • b: down-left
  • n: down-right


  • <space>: clear selection
  • d: delete selection
  • r: replace selection with parameter
  • +: increase scale (zoom)
  • -: decrease scale (dezoom)
  • =: reset scale

File (read/write):

  • e: read (load) level
  • w: write (save) level
    See kbleformat.md for technical informations.

Parameter buffer (change default value of verb calls):

  • p: set parameter buffer to current parameter (defaults to 1)
  • P: set the tile ID the keyboard cursor is on as parameter buffer


  • <return>: normal mode, default
  • i: free selection mode
  • v: rectangle selection mode
  • I: free unselection mode
  • V: rectangle unselection mode
  • c: camera mode [not implemented]

#Default mouse control

  • Right click: free selection.
  • Shift + left click: rectangle selection.
  • Right click: libre unselection.
  • Shift + right click: rectangle unselection.
  • Left or right click while un·selecting: end selection.


Safety backups are made when:

  • Reading operation is started (backup_read.kble)
  • The program exit (backup_exit.kble)


Copyright (c) 2021 KikooDX

This project is under the MIT license. See LICENSE for more details.