Difference between revisions of "BuildingCampaigns"

From The Battle for Wesnoth Wiki
m (automated change of forum links)
m
(47 intermediate revisions by 18 users not shown)
Line 1: Line 1:
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.
+
{{Translations}}
If you see any errors, please fix them.
 
  
See also [[DebuggingCampains]] if your scenario doesn't load.
+
{{Create}}
 +
 
 +
{| style="float:right; margin-left:1em;"
 +
|__TOC__
 +
|}
 +
 
 +
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.
  
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]]
 
* [[BuildingCampaignsCreatingScenariosAndMaps]]
 
* [[BuildingCampaignsAddingUnitsArtworkMusicAndSounds]]
 
* [[BuildingCampaignsBalancing]]
 
* [[BuildingCampaignsDistribution]]
 
* [[WesCamp]] (How to make your campaign translatable, and get in touch with translators)
 
  
What follows is a collection of advice to aspiring campaign designers extracted from the Wesnoth fora.
+
== Setting up the campaign ==
  
== Start with Something Manageable ==
+
<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>
  
If you set out to make an epic campaign spanning the whole history of Wesnoth, you'll likely (not necessarily, though)
+
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.
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:
+
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.
  
    I started TRoW last April, even after it was scenario complete it was still eating all of my free
+
* It should be placed in your _main.cfg <b>outside</b> any preprocessor conditionals
    time
+
* 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]).
    (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' (&amp; fun)
 
  
== Story First ==
+
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.
  
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 playIf you have a good idea of where the story of your campaign is going when you start, the little
+
<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.
pieces will fall into place much more easily.  After all, it worked for Pixar!
+
 
 +
== Designing the campaign ==
 +
What follows is a collection of advice to aspiring campaign designers extracted from the Wesnoth forumsFor 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 ===
  
Scott (author of Liberty, the outlaw campaign) wrote:
+
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.
  
    Here is how I wrote Liberty.
+
;Shade (author of The Rise of Wesnoth) wrote<nowiki>:</nowiki>
   
+
: <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>
    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 &quot;hook&quot; for each scenario. There are a lot of different possible setups for
 
    scenarios, and if you want to avoid the boring repetition of &quot;Kill the 2 enemy leaders&quot; 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.
 
  
== Share Early ==
+
=== Story First ===
  
Don't be shy to post whatever you've created for others to look atWe 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.
+
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 playIf 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!
  
Turin (author of Eastern Invasion) wrote:
+
;Scott (author of Liberty) wrote:
   
+
: "Here is how I wrote Liberty:
    I'm working on a loyalist campaign now. I already have the basic plot. I am wondering if anyone
+
:# Write a rough story and plot
    wants to playtest my completed levels (i am done with two).  Thus i want to know if i should just
+
:# Decide how many scenarios you want to have
    post the new files as attachments, or what. There are two map files, two scenario files, an image
+
:# Divide the story between the scenarios so you can decide what will happen in each scenario:
    file, a unit file, and you have to change the game file to access the campaign from the 'campaign
+
:#* Where are you?
    menu. So tell me how i should make them accessable.
+
:#* Who are you fighting and why?
 +
:#* What do you have to do in this scenario?
 +
:#* 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.   
 +
: All of this has happened without doing any WML, but now you have enough to start coding."
  
== Steal Often ==
+
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.
  
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
+
=== Share Early ===
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.
 
  
== Next: ==
+
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.
* [[BuildingCampaignsTheCampaignFile]]
 
  
 +
;Turin (author of Eastern Invasion) wrote<nowiki>:</nowiki>   
 +
: <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>
  
== The Old Page (Deprecated) ==
+
=== Steal Often ===
  
*[[BuildingCampaigns (depreciated)]]
+
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 ==
 
== See Also ==
Line 91: 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]
 
 
{{Create}}
 

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