County of Beichlingen update: Version 0.6.3

Discussion and development of scenarios and campaigns for the game.

Moderator: Forum Moderators

Post Reply
Palatin
Posts: 31
Joined: March 27th, 2011, 6:50 pm

County of Beichlingen update: Version 0.6.3

Post by Palatin »

The campaign is tested in Battle for Wesnoth 1.10.1 and has currently 11 maps with more than 20 playable scenarios. It is fully playable, however balancing and difficulty may be off.
Newest version can be found here: http://forums.wesnoth.org/viewtopic.php ... 10#p531910


---- Original first post:
My two favourite things in Battle for Wesnoth are leveling up units and recalling them as needed. Also I like to play challenging scenarios against ai that pose tactical riddles.
Campaigns are great for this, but often the story is way to complicated or long (endless textscreens) for occasional playing (I sometimes only have time to play like 2 hours a month) and also the scenarios aren't accessible at random.

That's why I created for myself a kind of open-world-campaign. The setting (there won't be a story developed from it) is that brother and sister are tasked to conquer the County of Beichlingen (probably wrong english, but I like my version better to quote Lord of War) and maintain order. This is done by choosing the townships on the mapscreen and choose a scenario to play - the goal is to have multiple scenarios per township. After a scenario the player returns to the mapscreen to choose again. You can always chose the township freely, but the scenario will differ depending on whether it is conquered or occupied by an enemy.
Beichlingen.jpg
The player controls two sides with different recruitment and gold - important thing is that the leaders of the sides can't die (they fall back to level 1 though), meaning you will never lose the campaign! However, you can lose leveled up units and gold, which creates a dynamic style of playing in which you play a scenario one time with 300 gold and veterans and another time with 100 gold and only level 1 units. To make this work the ai gets gold and recruitment-lists that depend on yours, also there are random elements.
So for example you can conquer the township "Suhl" from Orcs ...
Suhl_Orcs.jpg
... and later fight a Lich on the same map.
Suhl_Lich3.jpg
As for the technical side:
Currently I only used WML, no LUA. I created several macros that kind of create an interface so that it is very easy to link a new scenario into the campaign. In fact, there is a template where a scenario-designer only has to fill in some blanks (like the map-name, the coordinates where the players leaders start and stuff) and that's it. Everything you want can be done in the scenario, only at the beginning and the end (victory/defeat) things are different - but that is handled by macros. Check out the template if you are curious:

Code: Select all

[scenario]
	name= _ "<name>"
	id= <id>
	map_data="{~add-ons/County_of_Beichlingen/maps/<mapname>.map}"
	turns=-1
	victory_when_enemies_defeated=yes

	{DEFAULT_SCHEDULE}
	{DEFAULT_MUSIC_PLAYLIST}

#[essential!]
# KL_SIDE_INIT SIDE INCOME VILLAGE_GOLD RECRUIT CODE
	{KL_SIDE_INIT 1 0 2 (<recruiting list>) ()}
	{KL_SIDE_INIT 2 0 2 (Spearman,Bowman) ()}
	{KL_SIDE_INIT 3 -2 2 (Bowman) ()}
	{KL_SIDE_INIT 4 -2 2 () ()}

	{KL_PRELOAD 10,6 10,7 5,6 5,7 ()} # KL_PRELOAD XY1 XY2 XY3 XY4 CODE -> with XYx being the location of the leader of side x
	{KL_LASTBREATHS_HEROS () () () ()} #KL_LASTBREATHS_HEROS CODE1 CODE2 CODE3 CODE4 -> Deaths of the Leaders side 1-4. Side 1 and 2: MyDefeat will be fired. Leaders 3 and 4: Scenario continues, but SideInfo[3/4].leader will be set to 0. Use CODEx for extra WML in the events of lastbreath of leader side=x
	{KL_MYDEFEAT Beichlingen ()} #KL_MYDEFEAT NEXTSCENARIO CODE
	{KL_TIMEOVER Mydefeat ( #KL_TIMEOVER EVENT CODE 
		[message]
			speaker= _ narrator
			message= _ "Time is up!"
		[/message]
	)}
	{KL_VICTORY  0 "wesnoth" Beichlingen ()} # KL_VICTORY TOWNSHIP NEWOWNER NEXT_SCENARIO CODE -> use the CODE Parameter to clear scenario-specific variables
#[/essential!]


# Now do your own scenario. 
# - For victory fire the event "victory". There is no automatic goldbonus in case of victory! Add gold by yourself.
#
# - For defeat fire the event "Mydefeat". All gold of sides 1-4 will be set back to the amount it was at the beginning of the scenario. Helene and Thietmar, as well as leaders of side 3 and 4 if they exist, will be set back to what they were at the beginning of the scenario. All units on the map will be killed and put back in the recalllist, units in the recalllist will stay there. That is so the player can not gain something in a scenario he loses.
#
# - the variable SideInfo is your friend! For x=1-4 you find in there:
#			after invoking {KL_PLAYER_STRENGTHLEVEL} you find the average level of the players units in SideInfo[0].strengthlevel
#			SideInfo[x].side the number of the side
# 		SideInfo[x].gold the amount of gold side x started the scenario with. If leaders of sides 3 or 4 die, SideInfo[3/4].gold will be set to 0.
#			SideInfo[x].leader the unit that is the leader of the side x. If leaders of sides 3 or 4 die, SideInfo[3/4].leader will be set to 0.
#			SideInfo[x].recalllist an array of all the units that were in the recalllist at the beginning of the scenario. If leaders of sides 3 or 4 die, SideInfo[3/4].recalllist will be set to 0.

	[side]
		side=5
		controller=ai
		team_name=orcs
		income=2
		gold=100
		
		type=Orcish Warrior
		name=_ "Yugur"
		id=Yugur
		canrecruit=yes
		recruit=Orcish Grunt,Orcish Archer
	[/side]

	[event]
		name=prestart
		[objectives]
			side=1
			[objective]
				description= _ "Defeat enemy leaders."
				condition=win
			[/objective]
		[/objectives]
	[/event]


[/scenario]
Obviously this is an early stage, more like a prototype, but I would like to hear peoples opinions. Especially on the difficulty, since I created it to fit my standard. I'm looking for ideas on adaptive difficulty in scenarios too.
Also all kinds of contributors are welcome: If you have a map or a scenario to link in, please do! If you think my english sucks and you could create better dialog, please contact me. If you have art I can use, just show me. If you anything to improve this, please don't hold back.
Last edited by Palatin on June 23rd, 2012, 6:21 pm, edited 9 times in total.
User avatar
The_Other
Posts: 189
Joined: February 3rd, 2012, 10:05 pm
Location: UK

Re: County of Beichlingen

Post by The_Other »

I like the open-world concept, but I had one very big issue with the execution.
Controlling two sides gets annoying really fast, particularly if your computer is slow like mine (loading time between turns annoys me, though obviously this is a hardware problem and not directly caused by your code)
It is possible to replicate this using WML for a single side - one side can have two can_recruit units, and they can have different units to recruit (eg. Grog in Son of the Black Eye).

You could also keep track of two different gold amounts ([variable] name=second_leader_gold), and switch between them when a leader enters a keep (you could use set_menu_item to give an option to display both leader's gold). You could handle split-village-ownership by (for instance) the following awkward work-around:

At scenario start, create a variable named 'second_leader_villages', with an initial value of 0
When first_leader (whichever one you pick) captures a village, it works normally.
When second_leader captures a village, add 1 to 'second_leader_villages'
At the start of each turn, after gold is added, subtract N x $second_leader_villages from total gold, and add it to second_leaders_gold (N being the per-village income)
The flaw is that if an enemy captures one of your villages, there's no convenient method to determine which leader it belonged to. You could probably use some custom variables somewhere to mark each village as belonging to one or the other. Or more simply, subtract N/2 from second_leader_income (only if N is an even number!), or have a 50% chance of subtracting N. Either one of these is only an approximation, but I don't think it would be that noticeable in play (unless you use second_leader to capture all the villages)

I have to say, I also found the recruit lists a bit strange. I can handle the idea of (a few) Elves in the Wesnothian army, but I'm skeptical about Nagas, Drakes, Saurians etc. I think if you want these units to be available, it would be good to play a scenario first which would explain their presence.

That said, this campaign has a lot of potential and some clever ideas. The two-player-sides issue was a big problem for me personally, but other users may not agree (if people seem to like it, I'll shut up!)
Nothing is true; everything is permissible.
Palatin
Posts: 31
Joined: March 27th, 2011, 6:50 pm

Re: County of Beichlingen

Post by Palatin »

Thanks for the input.
To be honest I'm kind of annoyed by the two-side-system myself, not because of performance but because of the management-issues in game, sometimes units from your other side get in the way and it requires extra planning to coordinate them.
However I really want different recruitmentlists and that was the only solution so far. But thanks to your input I found that there actually is an option inside the unit-tag called extra_recruit that allows to give the leaders different recruitmentlists. I think that is the way to go! I don't think shared gold is an issue, but thanks for the thoughts anyway.

The current recruit lists are far from final. I just put them together to have something to play with. The goal is to have recruit lists that fit the scenario - of course Helene will mainly go with elves and stuff, but for example she doesn't need to be able to recruit Woses in every scenario.

I think the next task now is to work in the extra_recruit option and give the player only one side.
Palatin
Posts: 31
Joined: March 27th, 2011, 6:50 pm

Re: County of Beichlingen

Post by Palatin »

Unfortunately I have very little time for BfW, however I managed to do a small update:

- Player controls only 1 side now, but the leaders of this side have different recruitment lists. They have the same recalllist for now, I want to separate them, but that is a future task.
- changed the scenarios a little to fit the new control-scheme. The Echsenloch-scenarios even feature different recruitment-lists than the others.
- did a little work on the Beichlingen-Map
Beichlingen.jpg
Echsenloch.jpg
The campaign is tested in Battle for Wesnoth 1.10.1 and has currently 11 playable scenarios, however it is a prototype in nearly all aspects! Feedback would be greatly appreciated.
Attachments
County_of_Beichlingen_0.1.0.rar
(48.29 KiB) Downloaded 197 times
Palatin
Posts: 31
Joined: March 27th, 2011, 6:50 pm

Re: County of Beichlingen update: Version 0.6.1

Post by Palatin »

COB.jpg
Alright! After a longer break here comes a huge update! I designated it Version 0.6.1:
- the player controls only one side now, but the leaders of this side have different recruitment lists. That makes the gameplay a lot more smooth.
- there are 11 maps (one is a random generated map, so technically there are more than 11 maps) with more than 20 scenarios! Some are more complex scenarios with a story, others are simple defeat-the-enemy-leaders-battles. There is also the option to fight on some of the maps against random enemies.
- the free world concept of being able to choose where to go next is combined with a little story telling. Several scenarios have a sub-storyline that is embedded into the overall theme of conquering the County and some scenarios depend on each other.
- in several scenarios there are neat little surprises to discover and funny/helpful gimmicks (like spouses for the two main heros)
- the enemies adapt to the player in terms of gold and the level the units that are fielded. If you start leveling up your units, the enemy will eventually also throw veteran units at you.

Overall I got to say I'm pretty proud because the campaign reached a status where it is fully playable and it starts to match my vision of a nonlinear campaign setting, where you are able to choose where to go and most important of all where you can go into each scenario poor with no veterans or rich with all level 3 units and still have a challenge each time. That gives a lot of replay value.
However, the last point is what currently makes this a 0.6 and not 1.0. While the mechanics to adapt the difficulty are in place in each scenario I need to test play and fine tune this aspect. Of course I hope I will get some feedback here too.

The campaign is available now on the server, you don't need to download it from here.

Any feedback, remarks, critiques, problems, wishes and comments are welcome - please don't hold back anything, not even spelling errors!
Attachments
County_of_Beichlingen_0.6.1.zip
(116.25 KiB) Downloaded 228 times
MRDNRA
Posts: 212
Joined: September 11th, 2009, 5:06 pm

Re: County of Beichlingen update: Version 0.6.1

Post by MRDNRA »

Am liking the campaign. I did a few restarts to find the right first scenario for me, and this is the result after 1 battle, where I had 82 kills and 0 losses:
Wesnoth.jpg
My strategy was to sit at the cave choke points until they started producing level 2 units around turn 50ish.
User avatar
Crendgrim
Moderator Emeritus
Posts: 1328
Joined: October 15th, 2010, 10:39 am
Location: Germany

Re: County of Beichlingen update: Version 0.6.1

Post by Crendgrim »

I really like the concept of this add-on!
Sadly, I'm not a good SP player myself, so my attempts so far did not make me beat the first fights, but I can still say that it's done very nicely. Keep it up! :)
UMC Story Images — Story images for your campaign!
User avatar
Espreon
Inactive Developer
Posts: 630
Joined: June 9th, 2007, 4:08 am

Re: County of Beichlingen update: Version 0.6.1

Post by Espreon »

I see that you wish to have your add-on translated. Sadly, your add-on has a couple of problems:

- Some of the files in your units/ directory has spaces in their names; convert them to underscores (_).
- variables.cfg, menu-item.cfg, and defeat_and_victory.cfg aren’t bound to your add-on’s textdomain

So, just eliminate these issues, reupload, and I’ll work my magicks.

Thank you.
Palatin
Posts: 31
Joined: March 27th, 2011, 6:50 pm

Re: County of Beichlingen update: Version 0.6.1

Post by Palatin »

Thanks for the input everyone! Version 0.6.2 is out, only one improvement interesting for players:
MRDNRAs comment gave me an idea. For long-time encouragement, I added a statistic-feature. Currently only defeats and victories are counted.
statistic.jpg
Espreon, thanks for pointing out the errors, also some of the files in utils/ were obsolete anyway.

Due to work and other things, updates will come slowly in perhaps quite long intervals. Help is still more than wanted!

Have fun.
Attachments
County_of_Beichlingen_0.6.2.zip
(113.52 KiB) Downloaded 263 times
User avatar
Espreon
Inactive Developer
Posts: 630
Joined: June 9th, 2007, 4:08 am

Re: County of Beichlingen update: Version 0.6.2

Post by Espreon »

There’s one file that still has a space in its name: “Wise_ Enchantress.cfg”

Just take care of that and all will be well.
Palatin
Posts: 31
Joined: March 27th, 2011, 6:50 pm

Re: County of Beichlingen update: Version 0.6.3

Post by Palatin »

Tiny update!
Hopefully fulfill the translations requirements now.
Also, I made a coat of arms for the Counts of Beichlingen.
COB-Beichlingen-Wappen.png
COB-Beichlingen-Wappen.png (28.29 KiB) Viewed 5635 times
It is derived from the Wesnoth coat of arms and from the one of the real "von Beichlingen" noble family: http://de.wikipedia.org/wiki/Beichlinge ... eschlecht) which died out at the end of the 16th century and ruled over the real Beichlingen and some other regions in Thuringia (Germany).
I added merlons to the family coat of arms to represent that in the game the task of the siblings is to fortify the southern frontier for the Wesnoth kingdom. Behind the main emblem a sword and a leaf cross, the sword obviously shows the human aspect and loyalty to the king of Wesnoth and the leave shows the elvish heritage.

The coat of arms is used in the game already, but it may still change in details.
Attachments
County_of_Beichlingen_0.6.3.zip
(133.37 KiB) Downloaded 225 times
User avatar
Espreon
Inactive Developer
Posts: 630
Joined: June 9th, 2007, 4:08 am

Re: County of Beichlingen update: Version 0.6.3

Post by Espreon »

Palatin wrote: Hopefully fulfill the translations requirements now.
And they have been fulfilled. You can download po files for your campaign from here... soon.
Draciron
Posts: 17
Joined: March 25th, 2006, 2:14 am

Re: County of Beichlingen update: Version 0.6.3

Post by Draciron »

I just recently discovered this campaign and it's become my favorite. One of the things I hate about ending a campaign is I have a pile of troops I worked so hard to keep alive and level and then poof they are done. Nothing more to do with them. I've been looking for a good open ended campaign and this has been it, though my recall list has just about outgrown the campaign. Even the toughest scenarios are no longer that much of a challenge. I also have so many troops that I can no longer recall all of them even with 3k of gold.

Niederdorla was interesting but seemed to only work once. After conquering it I only get the option to leave.

Feengrotte is a great map while you are building up L1s into L2s. Not enough villages to support anything more than that.

Windknollen is about the same and I've never figured out what the password was.

Echsenloch was great for building L1s & L0s into L2s. It was really challenging early on. With L3s & L4s you wind up with negative gold and not much of a challenge.

Lich invasion is interesting but the Liches don't get enough gold and the maps you have to fight them on mean you are certain to come out deep in the hole gold wise.

Curl again interesting early on but not enough villages to support any real troops. I used to do the patrols however to level up L3s since you could support a single recruitment of them.

Zella is if you do a patrol, lich invasion, etc not enough gold to support real troops. The maneuvers however has been greatly challenging and one of the key maps that I constantly play. The limited recruiting space is the biggest problem. It really eats your gold up recruiting L3s & L4s 6 units at a time. It also makes it difficult to survive the onslaught since your 6 guys are facing 20 enemy.

Reihersberg still shows unfinished but it's invaluable in getting back to positives with gold total. Without it I'd probably have quit playing since it's so painful and time consuming to build gold up on any other map.

Hainrich is the other map I constantly play. I rotate through conquer, revolt, drakes and random enemies there.

The biggest issue is all of the maps heavily favor Elves or Dwarves in terms of terrain. There's no map where humans can really move efficiently. So there's not much chance to level up knights, heavy infantry and such and use them. By the time they get to the battle it's already over.

I'd love to be able to recruit all undead types instead of only acolytes.

I'm interested in designing some large scale maps for this campaign and human centered maps. Wondering if this campaign is still supported?
Post Reply