From KeenWiki
Jump to navigation Jump to search

Initial release
Development statusFinished
Programming languageC
PlatformWindows XP, 7-10, Linux via Wine
Tool TypeLevel Editor

akeen is a level editor for the Keen: Vorticons, designed and written by KeenRush. The editor was designed to be 100% keyboard-operated and immersive with minimum distractions. The editor was always designed - first and foremost - to fit perfectly to the author's level editor needs and might thus be a little rough around the edges for other users. However, it should be rather stable and once one learns to use it (which should not be all that difficult) rather useful. The editor pays homage to KeenWright, which was the author's editor of choice prior to akeen, and traces of KeenWright can be seen in akeen's design, but the core idea of the editor (see below) is entirely different. akeen was not released to public until 2015, but an essentially completed version was in private use by early 2013.


To run the editor, place it to your Keen project folder. Remember to also copy the editor's necessary files akeengfx.bmp (GUI graphics), akeendef.txt (configuration) and SDL.dll (the SDL library). Make sure your folder has the tileset your mod uses, for example 1TIL0000.bmp if you're making a Keen 1 mod. Then simply run akeen.exe. For keys and help consult the akeenf1.html that comes with the editor.


Here are some features:

  • Easy increasing/decreasing of level dimensions
  • Auto-border
  • Easy bridge:
move pointer on top of bridge switch, press i (as in 'input'), move pointer where you want bridge to start at, press o (as in 'output'), and the editor places the generated bridge coordinates sprite/value in the location of bridge switch (as was chosen with i)
  • Easy Keen start: press k to place Keen (sprite 255): the editor places the sprite and removes all other instances of it, so you don't need to delete the old starting point
  • View scroll:
keep moving in a direction (such as up) and the level view will eventually appear from the opposite direction (the bottom of the level, in this example)
  • Flood fill
  • Zoom:
The editor can be viewed at different zoom levels, the level of zoom can be edited in the configuration file, where one may also change the default tile, the border tile, and names for sprites.

The core idea

The core idea of akeen is to be an editor that is flexible around level borders. The author wanted to engage in a level designing style where the dimensions of the level need not be known (or guessed) in the beginning (as opposed to how one must build levels in KeenWright) and can be changed in an easy and fast fashion at any moment, and the result seen instantly. Other modern level editors do allow changing level dimensions but the operation is far from being as simple as it could possibly be. That, and the fact that no editor was keyboard-driven nor resembled KeenWright, resulted into akeen.

Another thing the author was frustrated with was the level border. In almost all levels the author had made or seen, the border is simply consisting of one tile, repeated. That led in the idea to remove the border altogether - akeen ignores the border data of the level when loading a level, and generates it automatically when saving a level, using the border tile value defined in the configuration file. (If there is a special border produced in another editor, it will vanish in this process. And to edit border data of a level created in akeen, one has to use another level editor after saving the level in akeen. For the author, there is practically never need for this, except with the special levels 81 and 90.)

In akeen, the user can step outside the level border by simply moving the pointer there. Once the pointer is outside the level, that side of the level can be manipulated: increased or decreased. If the pointer is, for instance, above the level, increasing the level size will raise the roof, and decreasing the level size will bring it down. The way to do these operations is simple: To increase, press Ins(ert). To decrease, hold Q and press Del(ete) (it's probably evident why deleting is two keys: so that it doesn't happen by accident, since it's irreversible).

See Also

The author has used this level editor to build several levels, including the IceKeen levels, xky1rooms, The Fastest Gun In The Universe, Planet of Agony.