Difference between revisions of "Umbra"

From RogueBasin
Jump to navigation Jump to search
(created the entry)
 
(updated links)
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<div style="float:right;clear:right; margin:1em; padding-top:.5em;padding-bottom:.5em; line-height:1.4em;text-align:center;border: 1px solid #93BACB; background:#E0E7EF;width: 22em;font-size:95%;clear:right; ">'''{{PAGENAME}}''' is a [[beta]]-stage [[engine]]</div>
<div style="float:right;clear:right; margin:1em; padding-top:.5em;padding-bottom:.5em; line-height:1.4em;text-align:center;border: 1px solid #93BACB; background:#E0E7EF;width: 22em;font-size:95%;clear:right; ">'''{{PAGENAME}}''' is a [[beta]]-stage [[engine]]</div>
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 [[User:Dominikmarczuk|Mingos]] and [[jice]]. The engine's name derives from [[Umbrarum Regnum]], wherein it was originally supposed to be contained.
 
=Engine=
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 [[User:Dominikmarczuk|Mingos]] and [[jice]]. The engine's name derives from [[Umbrarum Regnum]], wherein it was originally supposed to be contained. Since work on Umbrarum Regnum was suspended in mid 2008, Umbra gained a life of its own.
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=
The current release is 10.10 Alpha, and it's available at [http://www.umbrarumregnum.net/downloads/umbra Umbrarum Regnum website].
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==
=UmbraEngine=
A special kind of module that can be used in Umbra is a widget. Widgets are standard modules, but they offer extra interactivity options: they can be minimised, closed and freely positioned on the console as if they were a moveable window.
The engine takes care of module 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.
 
=UmbraModule=
Umbra uses the term "module" in reference to any "chunk" of an application, which will typically have 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. It's totally up to the developer how small or large the modules will be.
 
==UmbraWidget==
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.
 
This feature is planned to become an add-on to Umbra's core in order to reduce bloat and let developers choose only the features they require.
 
==Internal modules==
==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).
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, aka Speedo).
 
=User input=
=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]].
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=
=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.
For now, there are no released 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 publicly showcase the engine's potential.  
 
=Download=
=Download=
Umbra can be grabbed directly from its Subversion repository: https://doryen.eptalys.net/svn-umbra/trunk
*[http://www.umbrarumregnum.net/downloads/umbra Umbra @ Umbrarum Regnum]
*[http://doryen.eptalys.net/svn-umbra/trunk Umbra SVN repository]
 
=Talk=
You can post anything and everything regarding Umbra in the following forum board:
*[http://doryen.eptalys.net/forum/index.php?board=37.0 Umbra @ Roguecentral]


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.
=Other resources=
*[http://www.roguetemple.com/2010/10/10/arrp-2010-umbra Umbra article @ Roguetemple]
[[Category:beta engines]]
[[Category:beta engines]]

Latest revision as of 10:19, 2 November 2010

Umbra is a beta-stage engine

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. Since work on Umbrarum Regnum was suspended in mid 2008, Umbra gained a life of its own.

The current release is 10.10 Alpha, and it's available at Umbrarum Regnum website.

UmbraEngine

The engine takes care of module 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.

UmbraModule

Umbra uses the term "module" in reference to any "chunk" of an application, which will typically have 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. It's totally up to the developer how small or large the modules will be.

UmbraWidget

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.

This feature is planned to become an add-on to Umbra's core in order to reduce bloat and let developers choose only the features they require.

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, aka Speedo).

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 released 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 publicly showcase the engine's potential.

Download

Talk

You can post anything and everything regarding Umbra in the following forum board:

Other resources