Wartbed:Files/Structure
From Dark Omen Wiki
(→Modules and campaigns) |
|||
Line 26: | Line 26: | ||
==Modules and campaigns== | ==Modules and campaigns== | ||
Modules are large-scale settings. Though intended to represent game remakes (f.i. [[Wartbed:Bright Portents|Bright Portents]] and [[Wartbed:Saga|the Saga modules]] are modules implementing Dark Omen and the Myth games in WARTBED) they can of course be totally new games. Modules in turn contains campaigns which are sequences of connected battles within the setting of a module. Modules and campaigns also allow basic customisation of the WARTBED framework, for instance of user interface appearance etc. | Modules are large-scale settings. Though intended to represent game remakes (f.i. [[Wartbed:Bright Portents|Bright Portents]] and [[Wartbed:Saga|the Saga modules]] are modules implementing Dark Omen and the Myth games in WARTBED) they can of course be totally new games. Modules in turn contains campaigns which are sequences of connected battles within the setting of a module. Modules and campaigns also allow basic customisation of the WARTBED framework, for instance of user interface appearance etc. | ||
+ | |||
+ | All .module and .campaign files '''must''' specify a qualitiative <tt>name</tt> and a <tt>version</tt>, both of which are strings, and '''must''' further specify the <tt>folder</tt> that represent their local roots (the module path is always relative to the wartbed root/modules directory, and the campaign is always relative to the module root directory). Further, these files '''may''' specify an <tt>interface file</tt> detailing the graphical interface used (if none is given, the interface defaults to the module's or WARTBED's default one) and a <tt>homepage</tt> string that can be displayed if version dependencies fails. | ||
===The '''<tt>.module</tt>''' file=== | ===The '''<tt>.module</tt>''' file=== | ||
:''Should be moved to the Files/Formats article | :''Should be moved to the Files/Formats article | ||
- | The .module file defines a module that can be executed in WARTBED (and provided as a parameter to the executable). It describes the name, location and any toggles to global WARTBED rules. Modules may require (depend upon) other modules for data etc. | + | The .module file defines a module that can be executed in WARTBED (and provided as a parameter to the executable). Module files may only be placed in the modules directory under the wartbed root directory. It describes the name, location and any toggles to global WARTBED rules. Modules may require (depend upon) other modules for data etc. |
<div style="margin-left:2em;border:1px solid gray; background:rgb(215,225,215);"> | <div style="margin-left:2em;border:1px solid gray; background:rgb(215,225,215);"> | ||
<div style="float:right;text-align:right;padding:0.5em;background:grey;color:rgb(225,225,225);width:25%;">game name'''.module'''<br>(text file)</div> | <div style="float:right;text-align:right;padding:0.5em;background:grey;color:rgb(225,225,225);width:25%;">game name'''.module'''<br>(text file)</div> | ||
- | <div style="padding:1em; color:rgb(0,32,0);"><tt>name = Really Cool Tactical Fantasy Epic<br>folder = RCTFE/<br>requires = another module<br>requires = yet another module<br>interface=filename.xml<br> | + | <div style="padding:1em; color:rgb(0,32,0);"><tt>name = Really Cool Tactical Fantasy Epic<br>folder = RCTFE/<br>version = 1.0.0<br>requires = another module<br>requires = yet another module<br>interface = filename.xml //optional<br>homepage = www.mywartbedmodules.com //optional<br> |
<span style="outline:1px solid black">''Rules section goes here...''</span> | <span style="outline:1px solid black">''Rules section goes here...''</span> | ||
</tt></div> | </tt></div> | ||
Line 43: | Line 45: | ||
<div style="margin-left:2em;border:1px solid gray; background:rgb(215,225,215);"> | <div style="margin-left:2em;border:1px solid gray; background:rgb(215,225,215);"> | ||
<div style="float:right;text-align:right;padding:0.5em;background:grey;color:rgb(225,225,225);width:25%;">campaign name'''.campaign'''<br>(text file)</div> | <div style="float:right;text-align:right;padding:0.5em;background:grey;color:rgb(225,225,225);width:25%;">campaign name'''.campaign'''<br>(text file)</div> | ||
- | <div style="padding:1em; color:rgb(0,32,0);"><tt>name = Good guys rules!<br>requires campaign = another campaign<br>requires module = still another module<br>interface=filename.xml<br> | + | <div style="padding:1em; color:rgb(0,32,0);"><tt>name = Good guys rules!<br>version = 1.0.0<br>folder = good guys/<br>requires campaign = another campaign<br>requires module = still another module<br>interface = filename.xml //optional<br>homepage = www.mywartbedmodules.com //optional<br> |
<span style="outline:1px solid black">''More stuff will go here...''</span> | <span style="outline:1px solid black">''More stuff will go here...''</span> | ||
</tt></div> | </tt></div> | ||
Line 50: | Line 52: | ||
===Dependencies=== | ===Dependencies=== | ||
+ | The dependency can be specified either by filename of the module file, including the trailing .module extension, or the qualitative name of the module. | ||
+ | |||
A possible alternative for the <tt>requires</tt> format could be a block like | A possible alternative for the <tt>requires</tt> format could be a block like | ||
requires | requires | ||
Line 56: | Line 60: | ||
campaign = evil guys.campaign | campaign = evil guys.campaign | ||
} | } | ||
+ | |||
+ | If slashes are forbidden in module names, a module and campaign dependency could be written as | ||
+ | requires horror monsters/vampire fest | ||
+ | requires horror.module/vampires.campaign | ||
+ | |||
+ | This last syntax is more difficult to combine with version control, though, and would require something like this syntax: | ||
+ | requires horror.module version:1.5 / vampires.campaign | ||
+ | |||
Alternatively to the <tt>requires module</tt> and <tt>requires campaign</tt> tags above, the dependency could be resolved by filename extension. | Alternatively to the <tt>requires module</tt> and <tt>requires campaign</tt> tags above, the dependency could be resolved by filename extension. | ||
[[category:WARTBED]] | [[category:WARTBED]] |
Revision as of 20:20, 31 October 2009
Note: | This article is ahead of itself. It does not represent how WARTBED currently looks or a decision as to how it will look. It is written as a guideline and as a place to jot down ideas. |
Also see WARTBED file formats article. |
WARTBED main folder
- bin - Executables and libraries
- (bin_d - Executables and libraries for debug build)
- cfg - Currently only contains application.config
- resources - All common resources and assets
- modules - All game module description files and data folders
- Example file.module - see module format below
- Example module folder
- Good faction.campaign - see campaign format below
- Evil faction.campaign
Modules and campaigns
Modules are large-scale settings. Though intended to represent game remakes (f.i. Bright Portents and the Saga modules are modules implementing Dark Omen and the Myth games in WARTBED) they can of course be totally new games. Modules in turn contains campaigns which are sequences of connected battles within the setting of a module. Modules and campaigns also allow basic customisation of the WARTBED framework, for instance of user interface appearance etc.
All .module and .campaign files must specify a qualitiative name and a version, both of which are strings, and must further specify the folder that represent their local roots (the module path is always relative to the wartbed root/modules directory, and the campaign is always relative to the module root directory). Further, these files may specify an interface file detailing the graphical interface used (if none is given, the interface defaults to the module's or WARTBED's default one) and a homepage string that can be displayed if version dependencies fails.
The .module file
- Should be moved to the Files/Formats article
The .module file defines a module that can be executed in WARTBED (and provided as a parameter to the executable). Module files may only be placed in the modules directory under the wartbed root directory. It describes the name, location and any toggles to global WARTBED rules. Modules may require (depend upon) other modules for data etc.
(text file)
folder = RCTFE/
version = 1.0.0
requires = another module
requires = yet another module
interface = filename.xml //optional
homepage = www.mywartbedmodules.com //optional
Rules section goes here...
The .campaign file
- Should be moved to the Files/Formats article
Campaigns are settings (sequences of battles) in a module. Campaigns may depend on other campaigns and modules. (It has not been decided whether campaigns may depend on campaigns in other modules).
(text file)
version = 1.0.0
folder = good guys/
requires campaign = another campaign
requires module = still another module
interface = filename.xml //optional
homepage = www.mywartbedmodules.com //optional
More stuff will go here...
Dependencies
The dependency can be specified either by filename of the module file, including the trailing .module extension, or the qualitative name of the module.
A possible alternative for the requires format could be a block like
requires { module = a module.module campaign = evil guys.campaign }
If slashes are forbidden in module names, a module and campaign dependency could be written as
requires horror monsters/vampire fest requires horror.module/vampires.campaign
This last syntax is more difficult to combine with version control, though, and would require something like this syntax:
requires horror.module version:1.5 / vampires.campaign
Alternatively to the requires module and requires campaign tags above, the dependency could be resolved by filename extension.