kble/README.md

111 lines
3.1 KiB
Markdown
Raw Permalink Normal View History

2021-01-24 19:22:48 +01:00
# 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.
2021-01-24 19:22:48 +01:00
# Short term design decisions
Subject to change.
* Efficiency, simplicity and clarity are key goals.
2021-01-24 19:22:48 +01:00
* Fully keyboard driven modal editing. Mouse support is secondary.
* GUI software made in [Zig](https://ziglang.org/) with
[raylib](https://www.raylib.com/).
* Configurable (editing `src/conf.zig`).
2021-01-24 19:22:48 +01:00
2021-02-25 10:07:00 +01:00
# Installation
Runtime requirements: [raylib](https://www.raylib.com).
## Precompiled binaries
[![builds.sr.ht status](https://builds.sr.ht/~kikoodx/kble.svg)](https://builds.sr.ht/~kikoodx/kble?)
https://builds.sr.ht/~kikoodx/kble
## Manual compilation
Build requirements: [Zig](https://ziglang.org/download/) master branch,
[raylib](https://www.raylib.com). For Arch users, I made
[`kble-git`](https://aur.archlinux.org/packages/kble-git/) available in the AUR.
```sh
$ # 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.
```sh
$ kble #level.kble
$ kble sample.kble
$ kble $HOME/projects/kble/sample.kble
```
2021-02-25 23:31:23 +01:00
# Configuration.
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.
2021-02-25 23:31:23 +01:00
* Change and add colors.
* Edit keybindings.
# Default keybindings
Repetition/parameter:
* `0``9`: behavior similar to Vi.
Movement:
* `h`: left
* `j`: down
* `k`: up
* `l`: right
* `y`: up-left
* `u`: up-right
* `b`: down-left
* `n`: down-right
Verbs:
* `<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.*
2021-03-13 00:40:31 +01:00
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
Modes:
* `<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.
# Backups
Safety backups are made when:
* Reading operation is started (`backup_read.kble`)
* The program exit (`backup_exit.kble`)
2021-01-24 19:22:48 +01:00
# License
Copyright (c) 2021 KikooDX
2021-01-24 19:22:48 +01:00
This project is under the MIT license.
See LICENSE for more details.