Page 1 of 15

[v2.11.3] Abiathar: The superior Keen Galaxy editor

Posted: Fri Mar 14, 2014 12:45
by Fleexy
Celebrating three years of Abiathar - Keen Day 2017!

Behind every great mod, and even every not so well known mod, is a level editor. With patches more advanced than ever before, the need is arising for smart level editors. Seeing this, I started Abiathar three months ago, as a personal project and programming exercise. Originally just a map editor for the lost episode, it blossomed into a superpowerful Keen:Galaxy editor (of course retaining support for Keen:Dreams).

It may be said, “why did you go to all this trouble just to reinvent the wheel? The Omegamatic is already perfectly functional!” TOM is a very nice editor (and on the surface looks very similar to Abiathar), but Abiathar contains many features that TOM simply cannot match due to the language it is written in.

Some of Abiathar’s amazing new features include:
  • Internally stored default resources: don’t need to keep the original files around!
  • Tileinfo editing: tweak your tile properties immediately, without leaving the level editor!
  • Direct EGA graphics reading: don’t worry about exported graphics format!
  • Conglomerate file handling: once you have your resources together, you only need to deal with one dialog to open it again!
  • Tileinfo overlay: never worry about solid vs. secret area tiles again!
  • Inspectors: check your levels for crash bugs without having to load the game!
  • Sound management: add IMF tracks, edit sounds, and set level songs without knowing any patching!
  • Automatic patch/batch generation: easily get started modding!
  • Combinable infoplane: place infoplane sprite tiles in the foreground!
  • Custom, separate infoplane icons: squeeze the most foreground tiles out of your tileset and have visually recognizable infoplane icons!
  • Single-level export/import: share individual level files!
  • All kinds of config file settings: make Abiathar exactly what you want!
  • VeriMaps: sign your levels for authenticity and validate downloaded level sets, in Abiathar or with the VeriMaps tool!
  • Extension API: create your own specialized tools and features, share .NET DLLs to extend Abiathar!
  • Auto-updater: know about new features immediately!
  • ...and of course, every feature you’ve ever heard of or seen in other level editors
And that’s not even mentioning the amazing new tools like the Path Plotter and the Tile Instance Remapper! Even the commonplace tools that you expect in any level editor have been extended and empowered in Abiathar! (Read the help file for comprehensive and detailed information on tools and features.)

Before you begin to experience the amazing power of Abiathar, I recommend you begin to read its help file, at least the Concepts section:

Abiathar help file
Video tutorials too!

Now, let’s look at Abiathar in action!

Inspecting the Security Center in Keen 5, showing the switch link to the platform stopper:
Image

Showing tile properties in Keen Dreams, plus Simultaneous Tileset mode:
Image

Checking out Siege, a Keen 6-style NetKeen level:
Image

Since Abiathar is based on FleexCore 2, some DLL files need to stay with the executable. If you want to compact it down to just one EXE, use this ILMerge setup on it. Drop the three files (Abiathar.exe, FMod.dll, and Interop.dll) into the ILMerge directory and run the batch file. (I don’t publish pre-compacted executables because ILMerge does not produce strictly correct .NET assemblies and I don’t want to be responsible for a faulty program that blows up your .NET Framework. You’ll probably be fine, but it’s not my fault if Bad Things Happen.)

You should really read the Concepts section of the help file before starting to use Abiathar in earnest. Please, read the help file. Please?

My plan is to update Abiathar semifrequently, so it’s probably a good idea for you to download the updater, which will fetch the latest version from the right place.

Alright, ready? Three... two... one... KEEN DAY! (Also thousandth post!)
Download ABIATHAR update client
Or download Abiathar v2.11.3 in ZIP form

To get started with the defaults, go to File – New, select your episode from the drop-down in the upper right, check all the boxes (those are what tell it to use defaults), set the tileinfo drop-down to one that either dumps or reads from memory, and click OK. All the controls are pretty intuitive, but reading the help file is strongly recommended.

Once you close Abiathar for the first time, quite a few settings will get saved to the editor.aconf config file. Its format is pretty intuitive, so it should be pretty obvious how to reconfigure stuff. For more details about the formats of values there, read the appropriate section of the help file. Those settings are loaded when Abiathar starts.

The *.adeps files created when you save a level set are what can be opened later. They don’t store any level data on their own, just pointers to all the resource files. Please do not try to send someone your levels by sending the dependency binder.

If you ever need to place your resource files in a different folder or change the names of them, you should probably create a new dependency binder. (It’s also possible to modify the .adeps, but that might result in some weird stuff if not done right.)

Miscellaneous utilities are also packaged with Abiathar, but you don’t need to worry about keeping a folder full of them – just use the File Emitter. Select what you need, choose the output folder, and click Emit! Some of the more useful are FxTomDMh (which can repair TOM-created Dreams files), ManTliMh (possibly helpful when modifying NetKeen levels), and the Galaxy patchers.

Abiathar was designed with NetKeen in mind. “NetKeen” is present as an option in the Dependency Collector’s episode drop-down, allowing you to open and edit NetKeen levels. Make sure you select "in maphead" for the tileinfo.

If you’re interested in creating extensions for Abiathar, contact me for more information. If you have a bug report (oh no!) or a feature request, by all means pester me until it gets done – but please start by posting something below.

Take a moment to thank the beta testers; without their help, Abiathar would not be nearly as amazing as it is.
  • lemm was the first to actually open Abiathar, which was then called Fudge. He requested it to be made into a Galaxy editor, for it was at the time only for Dreams. He also helped with the NetKeen support much later.
  • levellass was the first one I sent it to. She found some very important crash bugs and has continued to provide suggestions for tweaks.
  • Ceilick did perhaps the most important testing: actually using it. Under his guidance, all kinds of features were added, including the Simultaneous Tileset and Lone Editing mode.
Well, I’ve typed enough. Thanks everyone; Keen Days 2014-17 are ones to remember! (Use Abiathar to make the next even more amazing!)

Ben Nordick
“Fleexy”

Posted: Fri Mar 14, 2014 13:54
by guynietoren
Wow this is massive. Even the manual looks nice!

Just one question. Where did the name come from?

Posted: Fri Mar 14, 2014 19:17
by KeenRush
Looks pretty cool. :eek Maybe this will get me trying some Keen 4 levelling again?

Posted: Fri Mar 14, 2014 19:24
by Roobar
KeenRush wrote:Looks pretty cool. :eek Maybe this will get me trying some Keen 4 levelling again?
That's exactly what I thought. This editor is really a nice surprise. The new features looks awesome. Plus, the auto updater is something promising. Also, cool name, though I too don't know what it means (not that it's that important anyway).

Posted: Fri Mar 14, 2014 23:02
by lemm
This looks great! I'll definitely switch over to using this for my Keen projects.

Do you still plan on adding more features to Abiathar in the coming months?

Posted: Sat Mar 15, 2014 0:01
by Fleexy
Originally, when this was just a Dreams editor, its name was Fudge because Fleexy understands Keen:Dreams and gives an editor. Then, about a month ago (a while after the expansion to Galaxy), I realized it needed to have a more impressive name. For both sound and meaning, I chose "Abiathar", the name of one of David's mighty men from somewhere in Jewish/Christian history. Other names that were considered were "Cataclysm", "Universal Toaster Cannon", and "Shock Maps."
lemm wrote:Do you still plan on adding more features to Abiathar in the coming months?
Yes. I already have some tweaks ready; that update will be pushed via that magical auto-updater in a few days. I'd like to add support for migrating Keen:Next maps and maybe for reversing the effects of the super derpy fake Carmackization CK Guy used a few years back. I might add a tileinfo editor in a couple months and I've been fantasizing about integrating graphics work too - that would take quite a while to get a decent UI on it.

I'll of course implement any simple features people come up with in a matter of days. Reported bugs (of which I'm pretty sure there are extremely few) will be dealt with immediately.

Posted: Sat Mar 15, 2014 0:56
by Ceilick
I wish I had more time to give feedback the last few days, sorry :dead

But from what I've seen, Abiathar is the future of Keen Galaxy level editing and possibly of Keen Galaxy modding altogether.

More than well done, Fleexy :)

Posted: Sat Mar 15, 2014 2:02
by MoffD
I am having way too much fun with this:
Image
This has an amazing tile interface, well done Fleexy!

Posted: Sat Mar 15, 2014 2:06
by Dynamo
I haven't tried it but it looks great. Excellent work there Fleexy :)

Posted: Sat Mar 15, 2014 3:32
by Flaose
Beautiful.

Posted: Sat Mar 15, 2014 4:01
by MoffD
I was wondering: Is there a way of manually selecting the infoplane? you have the linker tool which is handy but is there a way of using it for, say making a barrier until you complete a level (I.E. the wooden gates from the forts in 4 or flags)
other than re-sizing the map to 208 width and clicking on (208,numberoflevel)?
at least that :stoopid works for now if I need a tile that disappears after hillville

Posted: Sat Mar 15, 2014 14:20
by Fleexy
An excellent question! Anticipating this, I had written a section in the documentation about it (see "Tile ID Entry" under "Advanced Use", page 25).
I wrote:Right-clicking any of the selected tile bay images will produce a dialog that allows you to type the tile ID to put in that bay.

Entering world map infoplane values (and possibly all values) is easier to do in Hexadecimal mode, which displays the number like the selected tile captions do.

The following high (first) byte values have special effects on the world map. The low (second) byte specifies the level ID to which it applies.
ï‚· C0 allows the player to enter the level when on that tile
ï‚· D0 acts as a blocking tile until the level is completed
ï‚· DD always acts as a blocking tile
ï‚· F0 will receive the K flag when the level is completed

For example, an infoplane value of F00A marks the flag holder for level 0A (10).
That's a pretty impressive work-around, I've got to say. I'm honored to have you as a user!

Posted: Sat Mar 15, 2014 16:46
by MoffD
Ahhh, I guess I should read the manual more thoroughly
I was a little confused about what you meant by "tile bay image" but I figured it out anyway ;)

Posted: Sun Mar 16, 2014 4:29
by Keening_Product
Can't get any of this to run under WINE on Ubuntu. Given this is made in MS.NET I assume a Linux port is a long, long way away?

What I've seen here and in the manual is neat though.

Posted: Sun Mar 16, 2014 14:33
by Fleexy
Yeah, Linux support is not even on the implementation queue right now. I was hoping that everyone would have a Windows machine, and it seems most do, but I can't go cross-platform and keep all the amazing features. (In fact, I'd have to learn some other language and re-implement everything.)

Have you tried Mono? It claims to be a complete Linux implementation of .NET, though I haven't actually looked into it very much. EDIT: Here's a compatibility report; Mono is nowhere near accommodating the awesome power of Abiathar.

Official system requirements
Minimum (works with High Speed Mode):

Code: Select all

* Windows XP
* Microsoft .NET Framework 4.0
* 512 MB of RAM
* 2Ghz processor
Recommended:

Code: Select all

* Windows 7
* Microsoft .NET Framework 4.5
* 2 GB of RAM
* 3.66Ghz multi-core processor
In other news, the v1.1 update is on the way; we'll see it publicly out in one or two days! Integrated tileinfo editing, anyone?