Umbra
Umbra isn't specifically a roguelike engine, but rather a generic high level module loader that can be used to power any application. Umbra is based on libtcod and requires it to run. Umbra's philosophy is not to provide roguelike-specific data structures, but rather an underlying architecture that will let the developers focus directly on game-specific code as well as enforce certain code management rules. Umbra is an open source project (BSD-licenced) maintained by Mingos and jice. The engine's name derives from Umbrarum Regnum, wherein it was originally supposed to be contained.
Engine
The engine takes care of module/widget loading, running and unloading in any sequence, either static (fallbacks) or dynamic. For instance, a credits/licence screen will usually fall back to the main menu (static), while the main menu will give place to different modules depending on user input (dynamic). The engine takes care of all module rendering, internal logic updating and keyboard & mouse input parsing, which the developer should define if default behaviour isn't appropriate.
Modules
Umbra uses the term "module" in reference to any "chunk" of an application that has its own separate graphical representation and its own internal logic. The concept is rather flexible. For instance, a main menu screen might be a single module, but also might be divided into two different modules: background animation and interactive menu items in the foreground.
Widgets
The engine features a work-in-progress widget system that's tightly associated with the modules. Widgets can be "owned" by a module or be independent elements, treated by the engine in the same fashion as a module would be.
Internal modules
Internal modules are predefined widgets that are always available to Umbra users. They serve various purposes, usually application diagnostics (error reporting via the BSOD widget) and benchmarking (the Speed-o-meter).
User input
Umbra lets the developer define different kinds of user input: global and module/widget-specific keystrokes and mouse parsing (notably, the widget-specific mouse control). The developer can use Umbra's internal keystroke definition, called a callback, or any other way understandable by libtcod.
Games
For now, there are no games using Umbra as their underlying engine. The Cave, jice's experimental project, has been successfully ported to Umbra and is the first application to ever showcase the engine's potential.
Download
Bear in mind that the engine is still under development and is not guaranteed to be neither complete nor stable. It should be used for testing and debugging purposes only.