Difference between revisions of "Umbra"
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. Since work on Umbrarum Regnum was suspended in mid 2009, Umbra gained a life of its own. | |||
= | 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 2009, Umbra gained a life of its own. | ||
The current release is 10.09 Alpha, and it's available at [http://umbrarumregnum.110mb.com/download/umbra 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. | 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. | 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. | 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. | ||
Line 12: | Line 18: | ||
==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, aka Speedo). | 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 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. | 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= | ||
*[http://umbrarumregnum.110mb.com/download/umbra Umbra @ Umbrarum Regnum] | |||
*[http://doryen.eptalys.net/svn-umbra/trunk Umbra SVN repository] | *[http://doryen.eptalys.net/svn-umbra/trunk Umbra SVN repository] | ||
Line 22: | Line 32: | ||
You can post anything and everything regarding Umbra in the following forum threads: | You can post anything and everything regarding Umbra in the following forum threads: | ||
*[http://doryen.eptalys.net/forum/index.php?topic=335.0 Umbra @ Roguecentral] | *[http://doryen.eptalys.net/forum/index.php?topic=335.0 Umbra @ Roguecentral] | ||
*[http://umbrarumregnum.110mb.com/ | *[http://umbrarumregnum.110mb.com/forum/33 Umbra @ Umbrarum Regnum] | ||
[[Category:beta engines]] | [[Category:beta engines]] |
Revision as of 23:07, 18 September 2010
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 2009, Umbra gained a life of its own.
The current release is 10.09 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 be come 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 threads: