Difference between revisions of "BuildingCampaigns"

From The Battle for Wesnoth Wiki
(added a link to the (upcoming campaign tutorial)
m
 
(28 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{| style="float:right; margin-left:1em;"
+
{{Translations}}
|__TOC__
+
 
 +
{{Create}}
 +
 
 +
{| style="float:right; margin-left:1em;"
 +
|__TOC__
 
|}
 
|}
  
This page describes how to make your own user campaign for use with Battle for Wesnoth. Please note that this document is not normative - its author is not a Wesnoth developer.  I'm simply reporting on what works for me, and on what developers have prescribed elsewhere.
+
While a single scenario might be used to create a single battle to play with your friends, a campaign is a number of scenarios grouped together to tell a story. Scenarios in a campaign usually depict specific locations that tell a bit of the story, as opposed to the "arenas" of multiplayer.
If you see any errors, please fix them.
 
  
See also [[DebuggingCampaigns]] if your scenario doesn't load.
+
Assuming you have your add-on set up with a basic _main.cfg as described in [[AddonStructure]], this page will guide you through the use of the [campaign] tag, as well as some general advice for designing the story.
  
There are several steps to building a single player campaign in Wesnoth. The mechanics are covered in the sections below:
+
<b>Note:</b> <b>A Simple Campaign</b> by Anonymissimus is an add-on made to help people starting to create their first campaign. You can download it from the add-ons server for your Wesnoth version.
  
* [[BuildingCampaignsDirectoryStructure]]
+
<!-- (NOTE: this text may or may not be needed anymore. I intend these pages on the wiki to be a guide  itself, plus this link is very incomplete... leaving it here in a comment to decide on later - Vultraz, 3/17/14) Because many aspiring campaign developers find the initial creation of a working campaign to be difficult (if not exasperating) a [[BuildingCampaignsTutorial|step-by-step tutorial]] covering the initial phase of campaign development (getting it to work) is under construction.  It includes a working campaign that you can install, and then alter to fit your own needs. -->
* [[BuildingCampaignsTheCampaignFile]]
 
* [[BuildingCampaignsThePBLFile]]
 
* [[BuildingCampaignsDistribution]]
 
* [[WesCamp]] (How to make your campaign translatable, and get in touch with translators)
 
* [[UMCSandbox]] (Where you can collaborate on UMC projects)
 
  
Because many aspiring campaign developers find the initial creation of a working campaign to be difficult (if not exasperating) a [[BuildingCampaignsTutorial|step-by-step tutorial]] covering the initial phase of campaign development (getting it to work) is under construction.  It includes a working campaign that you can install, and then alter to fit your own needs
+
== Setting up the campaign ==
  
Xer has also created a campaign skeleton which is the barebones of a campaign: [http://www.wesnoth.org/forum/download/file.php?id=24587 here]
+
<div class="thumb tright"><div>
 +
[http://www.wesnoth.org/wiki-images/wesnoth-campaigns-menu-1.11.11.jpg http://www.wesnoth.org/wiki-images/wesnoth-campaigns-menu-1.11.11-175.jpg]
 +
<div class="thumbcaption"><i>The South Guard</i></div></div>
 +
</div>
  
What follows is a collection of advice to aspiring campaign designers extracted from the Wesnoth fora.  For a more in-depth treatment including heuristics for scenario and campaign balancing, see the [http://catb.org/~esr/wesnoth/campaign-design-howto.html Campaign Design How-To].
+
Technically, a campaign is simply a string of scenarios with <b>next_scenario=<i>id</i></b> keys in toplevel (see [[BuildingScenarios]]), where the value of <b><i>id</i></b> is in the key of the same name in toplevel. This allows each one to load the next. But how to begin playing? By setting up a [campaign] tag in your _main.cfg.
  
== Start with Something Manageable ==
+
The [campaign] tag is like the campaign's "cover". It will display your work in the campaign selection dialog with a description, an image (as shown on the right), as well as allowing the user to select a difficulty level before beginning to play.
  
If you set out to make an epic campaign spanning the whole history of Wesnoth, you'll likely (not necessarily, though)
+
* It should be placed in your _main.cfg <b>outside</b> any preprocessor conditionals
become bored or frustrated along the
+
* For the <b>#ifdef</b> conditional, you should use the format <b>#ifdef <i>YOUR_DEFINE_HERE</i></b> (you may define one in [campaign]).
way somewhere and give up.  It's much easier to start with a small story and add elements to it than it is to cut an
+
 
epic down to the length of a haiku.
+
The full syntax of the [campaign] tag is documented in [[CampaignWML]], and an example of a fully featured _main.cfg with one in use can be found on the [[BuildingCampaignsTheCampaignFile]] page. If you run into errors while putting things together, [[DebuggingCampaigns]] has a few tips.
 +
 
 +
<b>Note:</b> By default, you will find your campaign in the singleplayer selection menu. If you intend to create a multiplayer campaign, see [[MultiplayerContent]] for the required syntax amendments.
 +
 
 +
== Designing the campaign ==
 +
What follows is a collection of advice to aspiring campaign designers extracted from the Wesnoth forums.  For a more in-depth treatment including heuristics for scenario and campaign balancing, see the [http://catb.org/~esr/wesnoth/campaign-design-howto.html Campaign Design How-To].
 +
 
 +
=== Start with Something Manageable ===
 +
 
 +
If you set out to make an epic campaign spanning the whole history of Wesnoth, you'll likely (although not necessarily) become bored or frustrated along the way somewhere and give up.  It's much easier to start with a small story and add elements to it than it is to cut an epic down to the length of a haiku.
  
 
;Shade (author of The Rise of Wesnoth) wrote<nowiki>:</nowiki>
 
;Shade (author of The Rise of Wesnoth) wrote<nowiki>:</nowiki>
: I started TRoW last April, even after it was scenario complete it was still eating all of my free time (Time not spent sleeping, at school / work, or with loved ones / friends) until mid-November... Even now there is still bugfixing and a couple of things I'd like to add... and keeping it up to date with the game engine and any new happenings on the WML front... so there is still quite a lot to keep you busy after you are done... The forums are littered with half finished epics... Before you commit to an epic think long and hard. I don't want to discourage you too much... But it is a lot of 'work' (& fun)
+
: <i>"I started TRoW last April, even after it was scenario complete it was still eating all of my free time (Time not spent sleeping, at school / work, or with loved ones / friends) until mid-November... Even now there is still bugfixing and a couple of things I'd like to add... and keeping it up to date with the game engine and any new happenings on the WML front... so there is still quite a lot to keep you busy after you are done... The forums are littered with half finished epics... Before you commit to an epic think long and hard. I don't want to discourage you too much... But it is a lot of 'work' (& fun)."</i>
  
== Story First ==
+
=== Story First ===
  
What separates a campaign from a single scenario is the ability to tell a story. Consequently, what keeps people coming back for more is a good, interesting story mixed with good, interesting game play.  If you have a good idea of where the story of your campaign is going when you start, the little
+
What separates a campaign from a single scenario is the ability to tell a story. Consequently, what keeps people coming back for more is a good, interesting story mixed with good, interesting game play.  If you have a good idea of where the story of your campaign is going when you start, the little
 
pieces will fall into place much more easily.  After all, it worked for Pixar!
 
pieces will fall into place much more easily.  After all, it worked for Pixar!
  
;Scott (author of Liberty, the outlaw campaign) wrote<nowiki>:</nowiki>
+
;Scott (author of Liberty) wrote:
: Here is how I wrote Liberty.
+
: "Here is how I wrote Liberty:
 
:# Write a rough story and plot
 
:# Write a rough story and plot
 
:# Decide how many scenarios you want to have
 
:# Decide how many scenarios you want to have
:# Divide the story between the scenarios so you can decide what will happen in each scenario
+
:# Divide the story between the scenarios so you can decide what will happen in each scenario:
:#* where are you?
+
:#* Where are you?
:#* who are you fighting and why?
+
:#* Who are you fighting and why?
:#* what do you have to do in this scenario?
+
:#* What do you have to do in this scenario?
:#* where does the hero want to go next?
+
:#* Where does the hero want to go next?
 
:# Decide on the "hook" for each scenario. There are a lot of different possible setups for scenarios, and if you want to avoid the boring repetition of "Kill the 2 enemy leaders" you can list interesting combinations of enemies, allies, shroud/fog, day/night effects, recruiting and terrain situations, etc. and pick a good mix to keep the combat interesting and fun.     
 
:# Decide on the "hook" for each scenario. There are a lot of different possible setups for scenarios, and if you want to avoid the boring repetition of "Kill the 2 enemy leaders" you can list interesting combinations of enemies, allies, shroud/fog, day/night effects, recruiting and terrain situations, etc. and pick a good mix to keep the combat interesting and fun.     
: All of this has happened without doing any WML, but now you have enough to start coding.
+
: All of this has happened without doing any WML, but now you have enough to start coding."
  
 
The [http://catb.org/~esr/wesnoth/campaign-design-howto.html Campaign Design How-To] has much more to say about this storyboarding phase of the process.
 
The [http://catb.org/~esr/wesnoth/campaign-design-howto.html Campaign Design How-To] has much more to say about this storyboarding phase of the process.
  
== Share Early ==
+
=== Share Early ===
  
Don't be shy to post whatever you've created for others to look at.  We all had to learn too, and there are many people on the Scenario and Campaign Development forum (http://www.wesnoth.org/forum/viewforum.php?f=8) who are eager to help people learn.
+
Don't be shy to post whatever you've created for others to look at.  We all had to learn too, and there are many people on the [http://www.wesnoth.org/forum/viewforum.php?f=8 Scenario and Campaign Development forum] who are eager to help people learn.
  
 
;Turin (author of Eastern Invasion) wrote<nowiki>:</nowiki>     
 
;Turin (author of Eastern Invasion) wrote<nowiki>:</nowiki>     
: I'm working on a loyalist campaign now. I already have the basic plot. I am wondering if anyone wants to playtest my completed levels (i am done with two).  Thus i want to know if i should just post the new files as attachments, or what. There are two map files, two scenario files, an image file, a unit file, and you have to change the game file to access the campaign from the 'campaign menu. So tell me how i should make them accessable.
+
: <i>"I'm working on a loyalist campaign now. I already have the basic plot. I am wondering if anyone wants to playtest my completed levels (I am done with two).  Thus I want to know if I should just post the new files as attachments, or what. There are two map files, two scenario files, an image file, a unit file, and you have to change the game file to access the campaign from the 'campaign menu. So tell me how I should make them accessible."</i>
  
== Steal Often ==
+
=== Steal Often ===
  
There are too many quotations to pick one for this maxim.  The best way to learn how to do something is to copy it from someone else's campaign.  It's polite to ask first, and most Campaign designers are happy to see small bits of their WML living in other campaigns.
+
There are too many quotations to pick one for this maxim.  The best way to learn how to do something is to copy it from someone else's campaign.  It's polite to ask first, and most campaign designers are happy to see small bits of their WML living in other campaigns.
 
It's generally poor form to copy whole scenarios, maps, and campaigns, though.  And especially poor form to do so without permission.
 
It's generally poor form to copy whole scenarios, maps, and campaigns, though.  And especially poor form to do so without permission.
 
== Next: ==
 
* [[BuildingCampaignsTheCampaignFile]]
 
 
  
 
== See Also ==
 
== See Also ==
Line 72: Line 78:
 
* [[Create]]
 
* [[Create]]
 
* [[BuildingScenarios]]
 
* [[BuildingScenarios]]
* [[Using custom themes in campaigns]]
 
 
* [[ReferenceWML]]
 
* [[ReferenceWML]]
* [[UserScenarios]]
+
* [[Guide_to_UMC_Content]]
 
* [[ExternalUtilities]]
 
* [[ExternalUtilities]]
 
* [http://www.catb.org/~esr/wesnoth/campaign-design-howto.html Campaign Design How To]
 
* [http://www.catb.org/~esr/wesnoth/campaign-design-howto.html Campaign Design How To]
 
 
{{Create}}
 

Latest revision as of 13:14, 6 November 2019



While a single scenario might be used to create a single battle to play with your friends, a campaign is a number of scenarios grouped together to tell a story. Scenarios in a campaign usually depict specific locations that tell a bit of the story, as opposed to the "arenas" of multiplayer.

Assuming you have your add-on set up with a basic _main.cfg as described in AddonStructure, this page will guide you through the use of the [campaign] tag, as well as some general advice for designing the story.

Note: A Simple Campaign by Anonymissimus is an add-on made to help people starting to create their first campaign. You can download it from the add-ons server for your Wesnoth version.


Setting up the campaign

wesnoth-campaigns-menu-1.11.11-175.jpg

The South Guard

Technically, a campaign is simply a string of scenarios with next_scenario=id keys in toplevel (see BuildingScenarios), where the value of id is in the key of the same name in toplevel. This allows each one to load the next. But how to begin playing? By setting up a [campaign] tag in your _main.cfg.

The [campaign] tag is like the campaign's "cover". It will display your work in the campaign selection dialog with a description, an image (as shown on the right), as well as allowing the user to select a difficulty level before beginning to play.

  • It should be placed in your _main.cfg outside any preprocessor conditionals
  • For the #ifdef conditional, you should use the format #ifdef YOUR_DEFINE_HERE (you may define one in [campaign]).

The full syntax of the [campaign] tag is documented in CampaignWML, and an example of a fully featured _main.cfg with one in use can be found on the BuildingCampaignsTheCampaignFile page. If you run into errors while putting things together, DebuggingCampaigns has a few tips.

Note: By default, you will find your campaign in the singleplayer selection menu. If you intend to create a multiplayer campaign, see MultiplayerContent for the required syntax amendments.

Designing the campaign

What follows is a collection of advice to aspiring campaign designers extracted from the Wesnoth forums. For a more in-depth treatment including heuristics for scenario and campaign balancing, see the Campaign Design How-To.

Start with Something Manageable

If you set out to make an epic campaign spanning the whole history of Wesnoth, you'll likely (although not necessarily) become bored or frustrated along the way somewhere and give up. It's much easier to start with a small story and add elements to it than it is to cut an epic down to the length of a haiku.

Shade (author of The Rise of Wesnoth) wrote:
"I started TRoW last April, even after it was scenario complete it was still eating all of my free time (Time not spent sleeping, at school / work, or with loved ones / friends) until mid-November... Even now there is still bugfixing and a couple of things I'd like to add... and keeping it up to date with the game engine and any new happenings on the WML front... so there is still quite a lot to keep you busy after you are done... The forums are littered with half finished epics... Before you commit to an epic think long and hard. I don't want to discourage you too much... But it is a lot of 'work' (& fun)."

Story First

What separates a campaign from a single scenario is the ability to tell a story. Consequently, what keeps people coming back for more is a good, interesting story mixed with good, interesting game play. If you have a good idea of where the story of your campaign is going when you start, the little pieces will fall into place much more easily. After all, it worked for Pixar!

Scott (author of Liberty) wrote
"Here is how I wrote Liberty:
  1. Write a rough story and plot
  2. Decide how many scenarios you want to have
  3. Divide the story between the scenarios so you can decide what will happen in each scenario:
    • Where are you?
    • Who are you fighting and why?
    • What do you have to do in this scenario?
    • Where does the hero want to go next?
  4. Decide on the "hook" for each scenario. There are a lot of different possible setups for scenarios, and if you want to avoid the boring repetition of "Kill the 2 enemy leaders" you can list interesting combinations of enemies, allies, shroud/fog, day/night effects, recruiting and terrain situations, etc. and pick a good mix to keep the combat interesting and fun.
All of this has happened without doing any WML, but now you have enough to start coding."

The Campaign Design How-To has much more to say about this storyboarding phase of the process.

Share Early

Don't be shy to post whatever you've created for others to look at. We all had to learn too, and there are many people on the Scenario and Campaign Development forum who are eager to help people learn.

Turin (author of Eastern Invasion) wrote:
"I'm working on a loyalist campaign now. I already have the basic plot. I am wondering if anyone wants to playtest my completed levels (I am done with two). Thus I want to know if I should just post the new files as attachments, or what. There are two map files, two scenario files, an image file, a unit file, and you have to change the game file to access the campaign from the 'campaign menu. So tell me how I should make them accessible."

Steal Often

There are too many quotations to pick one for this maxim. The best way to learn how to do something is to copy it from someone else's campaign. It's polite to ask first, and most campaign designers are happy to see small bits of their WML living in other campaigns. It's generally poor form to copy whole scenarios, maps, and campaigns, though. And especially poor form to do so without permission.

See Also

This page was last edited on 6 November 2019, at 13:14.