A Friendship Tested

Discussion and development of scenarios and campaigns for the game.

Moderator: Forum Moderators

tribes55
Posts: 132
Joined: June 10th, 2012, 4:29 am

A Friendship Tested

Post by tribes55 »

Hey all,

I've been working on a campaign in my spare time and have so far made three(subject to change as I add more) scenarios playable.

A Friendship Tested is about an exhausted alliance between two peoples, a community of Humans and Dwarves, the Hollians and Blackhands, respectively. Their friendship had been slowly waning over time due to issues between the two. This campaign follows the events of how this alliance holds up when tested by an ORCISH INCURSION. :doh: :hmm:

I'm all for hearing feedback, such as balancing and flow-of-gameplay, as well as suggestions about the scenarios I've completed so far, and suggestions for what I should do in the future!
-- I have noticed a few parts where I feel like a character is out of place. Please let me know if you feel that way about a scene.

---

Notes:
10/13: I've once again polished and worked on the campaign. 10 scenarios available
10/14: I had re-released the add-on. There are now 11 scenarios available, with some polish and some integral story changes.
10/15: Many story and dialogue changes to make it fit within the timeline of Wesnoth. Now it fits into the timeline where the Northern Alliance exists, and Wesnoth is embroiled in civil war, justifying the decisions made by the characters.
10/18: New Version, 3.3. Many misc changes. Changed scenario 2, slightly easier-- new light mechanic implemented (will need to playtest for balancing in future, if you'd like to provide feedback). Scenario 3 had a couple dialogue changes. Scenario 4 made it clearer the consequences of your decision. Scenario 5 hasn't had any changes, but I would like feedback if it's too difficult or easy. Scenario 6 now properly removes anti-hollian heroes. Scenario 9 received a few bug fixes, along with making it less of a black and white situation, but morally gray.
10/22: Fixed an issue where the Battling Ram unit wasn't showing correctly. Fixed issue where they wouldn't have traits. Reduced the health of the ram rider, because 47 health for a level one unit is insane.
11/6: Bug fixes causing character to spawn in incorrect locations; dialogue changes to make things more clear; made scenario 9 easier
Last edited by tribes55 on November 6th, 2020, 6:56 pm, edited 16 times in total.
User avatar
ResExsention
Posts: 97
Joined: March 17th, 2018, 12:00 am
Location: Alberta, Canada

Re: A Friendship Tested

Post by ResExsention »

Alright, those two things you intend to do are certainly possible. And yes, your campaign does sound quite interesting, so I'll give it a try in my spare time. Anyway, here goes:

- I am not a graphic designer or anything, but from what I know, the Wesnoth core directory has many useful stuff you can use in your development, from unit images, to some useful macros, to even overlay images. If you check out TerrainGraphicsWML and scroll down you will find all you need to know about inserting image overlays with the [image] tag. Again, I can't help you with the graphics design if you want to use your own overlays, and again, in the Wesnoth core directory, there is an entire repository of images you can use in your UMC.

- Now you said you wanted to have stuff like creating fortifications and stuff. The [terrain] tag can be used to replace tiles with any kind of terrain really; in one of my campaigns I use it to set lava abound. Information on how to use the terrain tag can also be found on DirectActionsWML. I'll also include a macro in here for you to copy and paste into your script. It will also contain a basic syntax for the tag, so:

Code: Select all

# Modify a terrain hex
#define CHANGE_TERRAIN TERRAIN LAYER X Y
	[terrain]
		x={X}
		y={Y}
		terrain={TERRAIN}
		layer={LAYER}
	[/terrain]
#enddef
Wherein the parameter terrain is set to the terrain code of the terrain you want to use, the layer is used to set it as either a foreground (by setting it to overlay), a background (base) or both (both). Then you have the simple X and Y coordinates of where you want to set that terrain. If, for example, you want to set the castle tiles for an encampment without continuously repeating this macro or the [terrain] tag, the X and Y coordinates can be divided by commas.

From what I know, I think this is the most simple way to achieve what you intend to do in those questions you posted. For that terrain castle thing, if you want to have the player manually set the castle with a right click on a hex, adding another tag can do this, though I haven't learned this yet and don't know where to find it in the WML reference.

But hopefully, this answers yours and a lot others' questions relating this kind of coding. I look forward to seeing what you intend to bring into your campaign when you finish it!
I am a ranger and my WML knives will implant themselves in your back.

Creator of the abandoned campaign Royalties Forgotten and the work in progress campaign Purger of Evil.
Maintainer of Fate of a Princess.
tribes55
Posts: 132
Joined: June 10th, 2012, 4:29 am

Re: A Friendship Tested

Post by tribes55 »

Hey ResExsention,

I do indeed use the [terrain] tag for some things already. It is necessary, but there's a whole lot of other stuff I needed to incorporate. Fortunately, Adamant14 helped me with this and I'm going to attach it here for anybody else to use who needs it:
Spoiler:
User avatar
ResExsention
Posts: 97
Joined: March 17th, 2018, 12:00 am
Location: Alberta, Canada

Re: A Friendship Tested

Post by ResExsention »

Well, then well done. Did you add this campaign to the add-ons server yet? In my opinion, it's better than relying on a forum post, since most people use the add-on server to get UMC.
I am a ranger and my WML knives will implant themselves in your back.

Creator of the abandoned campaign Royalties Forgotten and the work in progress campaign Purger of Evil.
Maintainer of Fate of a Princess.
tribes55
Posts: 132
Joined: June 10th, 2012, 4:29 am

Re: A Friendship Tested

Post by tribes55 »

ResExsention wrote: July 19th, 2018, 3:11 am Well, then well done. Did you add this campaign to the add-ons server yet? In my opinion, it's better than relying on a forum post, since most people use the add-on server to get UMC.
Hey Res,

I appreciate the advice. I plan on uploading it after I get 5-6 scenarios ready. :)
Most of the feedback I've received has been out of this thread. I'm either privately messaged or contacted on Discord about it. So there is some feedback, more than what it appears is on here. :)

Thanks for your consideration :P
User avatar
ResExsention
Posts: 97
Joined: March 17th, 2018, 12:00 am
Location: Alberta, Canada

Re: A Friendship Tested

Post by ResExsention »

Understood, tribes55. Sounds like a cool campaign. Do you need any other WML help? And I'm curious; is this a campaign on the dwarf side or the human side?
I am a ranger and my WML knives will implant themselves in your back.

Creator of the abandoned campaign Royalties Forgotten and the work in progress campaign Purger of Evil.
Maintainer of Fate of a Princess.
tribes55
Posts: 132
Joined: June 10th, 2012, 4:29 am

Re: A Friendship Tested

Post by tribes55 »

It's primarily a Dwarf campaign, but you will be playing both sides. I will post here if I need some help. Thanks Res :)
User avatar
ResExsention
Posts: 97
Joined: March 17th, 2018, 12:00 am
Location: Alberta, Canada

Re: A Friendship Tested

Post by ResExsention »

So I tried to install your campaign, though on my first run attempt I'm experiencing problems already. Hopefully my Debian Linux system isn't at fault.

So I'm going to point out some problems and suggest some solutions (I won't force you) to many problems I found. I hope this can get your campaign working again.

The first problem relates to the fact that the first map is invalid. The error said that a terrain type called "Urc" could not be found. I looked into the scenario map file and confirmed this. Did you use the map editor to make the campaign maps? It appears to me that you just coded the terrain manually, which many don't find very effective. Try using the Wesnoth map editor. If the standard Wesnoth terrain doesn't suit your needs, a free "UMC terrain pack" (search it up in the add-on server) is available, with a lot of free terrain to add to your UMC. If you do add this as a dependency, adding the line

Code: Select all

{~add-ons/UMC_Terrain_Pack/load_UTP.cfg}
in the

Code: Select all

#define
macro definition in _main.cfg will set up the campaign to accept UMC terrain pack terrains. Also add

Code: Select all

dependencies="UMC_Terrain_Pack"
to the _server.pbl file, when you do upload it to the add-on server. Going back, the campaign has no idea what kind of terrain Urc is.

Another problem I found is that under utils, the macro file deaths.cfg.txt is wrong. Change it to just deaths.cfg.

Yet another problem I found was with the campaign icon; instead of going

Code: Select all

icon="data/add-ons/AFriendshipTested/images/story/campaignicon.png"
, try

Code: Select all

icon="~add-ons/AFriendshipTested/images/story/campaignicon.png"
. This may not work, but no harm done if you try.

Another thing you may need to change is that in the side definitions of your scenarios, you use

Code: Select all

description=
. I don't know the state of that keyword, but if you intend to use that as the name as displayed in the status table, then using

Code: Select all

user_team_name=
might be better.

And that's all I could find as of now. Hopefully you fix all of these mistakes I mentioned and others that you find so that your campaign works fine. After all, I think that thing I downloaded from your first post was outdated, so hopefully you release or already have released a more stable, working version. And again, I highly recommend putting this campaign in the add-on server. It makes dependency work and a lot other work easier. To release your campaign, there is a _server.pbl guide in the Wesnoth Create page, under campaign, so that should get it working. You can post any other problems you get here or on the discord, as others may be able to help you. So good luck with your campaign making and I look forward to a later, more functional version of your campaign.

P.S. If you already have a later version of the campaign, could you point me in the right direction?
I am a ranger and my WML knives will implant themselves in your back.

Creator of the abandoned campaign Royalties Forgotten and the work in progress campaign Purger of Evil.
Maintainer of Fate of a Princess.
tribes55
Posts: 132
Joined: June 10th, 2012, 4:29 am

Re: A Friendship Tested

Post by tribes55 »

ResExsention wrote: July 20th, 2018, 6:03 pm So I tried to install your campaign, though on my first run attempt I'm experiencing problems already. Hopefully my Debian Linux system isn't at fault.

So I'm going to point out some problems and suggest some solutions (I won't force you) to many problems I found. I hope this can get your campaign working again.

The first problem relates to the fact that the first map is invalid. The error said that a terrain type called "Urc" could not be found. I looked into the scenario map file and confirmed this. Did you use the map editor to make the campaign maps? It appears to me that you just coded the terrain manually, which many don't find very effective. Try using the Wesnoth map editor. If the standard Wesnoth terrain doesn't suit your needs, a free "UMC terrain pack" (search it up in the add-on server) is available, with a lot of free terrain to add to your UMC. If you do add this as a dependency, adding the line

Code: Select all

{~add-ons/UMC_Terrain_Pack/load_UTP.cfg}
in the

Code: Select all

#define
macro definition in _main.cfg will set up the campaign to accept UMC terrain pack terrains. Also add

Code: Select all

dependencies="UMC_Terrain_Pack"
to the _server.pbl file, when you do upload it to the add-on server. Going back, the campaign has no idea what kind of terrain Urc is.
Hi Res. This is very strange :augh: I do not have this problem, and everyone else who has play tested it haven't had it either. I don't know what could be causing this? I do indeed make the map via the Map Editor, and make minimal changes through [terrain] WML changes, where such changes are limited to events.
Another problem I found is that under utils, the macro file deaths.cfg.txt is wrong. Change it to just deaths.cfg.

Yet another problem I found was with the campaign icon; instead of going

Code: Select all

icon="data/add-ons/AFriendshipTested/images/story/campaignicon.png"
, try

Code: Select all

icon="~add-ons/AFriendshipTested/images/story/campaignicon.png"
. This may not work, but no harm done if you try.

Another thing you may need to change is that in the side definitions of your scenarios, you use

Code: Select all

description=
. I don't know the state of that keyword, but if you intend to use that as the name as displayed in the status table, then using

Code: Select all

user_team_name=
might be better.


P.S. If you already have a later version of the campaign, could you point me in the right direction?
I have made the path changes as you recommended. I will be releasing a new version here soon with some further fixes, and hopefully a fourth scenario.

Sorry that the campaign is not working for you. I do use some (what I think are) recent additions to the map editor. Are you using the most recent version of Wesnoth, 1.14?

Thanks Res!

Edit: Those paths do not work, unfortunately. :annoyed:
User avatar
ResExsention
Posts: 97
Joined: March 17th, 2018, 12:00 am
Location: Alberta, Canada

Re: A Friendship Tested

Post by ResExsention »

Ohhhh! So that's why it wasn't working. I was running it on Wesnoth 1.12.6 since Debian wouldn't let me update it without some major reconfigurations to my OS, so the best I can do is help you fix programming errors, if they haven't deprecated.

So I found the solution. Instead of

Code: Select all

icon="~add-ons/AFriendshipTested/images/story/campaignicon.png"
use

Code: Select all

icon="~add-ons/AFriendshipTested/images/Story/campaignicon.png"
or uncap the Story directory name in the campaign file. That's why it the icon didn't work :roll:. My bad.

Here are a few other suggestions to make your WML cleaner, easier to read, and more organized:
- You don't have to contain the stories inside macros. Even if you remove the macro definition and macro call, the code still should work. I've noticed a lot of people put their story files in it's own macro file under a macro or utils directory. You can also do that.
- Typo on scenario 1 story. "... a community of dwarves and a community of humans south The Great River in the hills of Estmark." should be " ... a community of dwarves and a community of humans south of the Great River in the hills of Estmark."
- Spaces (although unnecessary) should be used in between major blocks of code. It's simply become programmer habit, and makes code a lot easier to read. Though the function remains the same.
- Proper indenting is also recommended to be used. Inside every tag, the code should be indented a few spaces to increase readability. No affect on function.
- I've noticed a lack of style in the difficulty selection menu. If you want to add more difficulties or just was to add icons and such the line

Code: Select all


difficulty_descriptions={MENU_IMG_TXT2 "# Whatever image #~RC(magenta># Whatever color #)" "# Whatever text #" "# Whatever text #"} + ";" + {MENU_IMG_TXT2 "#Whatever image #~RC(magenta># Color #)" "# Text #" "# Text #"} # etc...

It may look complicated, but the hash marks specify what should be written in.

- You don't seem to be using flag variants. If you specify a flag variant, you can really spice up the flag that is displayed on the turn bar and on captured villages. The line

Code: Select all

{FLAG_VARIANT # flag #}
does the trick. Options include long, knalgan, ragged, wood, undead, and loyalist. Put it in every side definition.

That's all I could find for now. You have amazing potential as a WML developer. I've never seen someone use a unit as an asset to change the scenario entirely. Great job, tribes55. Great job, Squid.
I am a ranger and my WML knives will implant themselves in your back.

Creator of the abandoned campaign Royalties Forgotten and the work in progress campaign Purger of Evil.
Maintainer of Fate of a Princess.
tribes55
Posts: 132
Joined: June 10th, 2012, 4:29 am

Re: A Friendship Tested

Post by tribes55 »

Hey Res!

Thanks for the kind words. :)

I think you're right about the flags. It's surprising how such small changes can have a huge impact on user experience.
I actually just went through each scenario and added a flag to each side.

It's a shame you weren't able to play! Perhaps in the future? Maybe I could use different terrain in a version so you could play. But it seems like you've already played just by reading through the code!

I have implemented changes you have recommended, and will try to actively adjust my writing so it become habit.

Thanks!
tribes55
Posts: 132
Joined: June 10th, 2012, 4:29 am

Re: A Friendship Tested

Post by tribes55 »

I've updated the campaign to version 3.0 with many changes.
-a lot of bug fixes.
-implementation of scenario 7 and 8.

Unfortunately due to an oversight by me in scenario 7, you need to replay it if you want to continue from your previous spot. Otherwise, scenario eight will NOT function appropriately.
User avatar
ResExsention
Posts: 97
Joined: March 17th, 2018, 12:00 am
Location: Alberta, Canada

Re: A Friendship Tested

Post by ResExsention »

Tribes, so I've tried out your campaign, and it's amazing! A few things:

- In opinion, I don't think a Shadow Mage makes a good leader in scenario 1. Have your considered using a Fugitive instead?
- Again, your idea on Squid changing the entire scenario is good, though I've noticed his presence stopped changing things after scenario 1. Like he was neglected. I don't know. Is it me going debug next_level?
- I think scenario 2 (the one with the goblins) is slightly imbalanced toward the player. I mean, having extremely powerful Steelclads going against level 0 units, it doesn't seem to add up. Weak units compensate for their incapability with numbers, so maybe a larger keep for the goblins would be nice. Also, once you got through the trolls, the scenario became too easy. Maybe every four turns or something spawn in a few troll whelps?
- Another idea I have for you is in scenario 3, when you can turn Squid into a Longbowman, instead of turning him loyalist, have you considered just giving him an extra attack instead of transforming him?

But really, your campaign is impressive! One of my favorites, really.
I am a ranger and my WML knives will implant themselves in your back.

Creator of the abandoned campaign Royalties Forgotten and the work in progress campaign Purger of Evil.
Maintainer of Fate of a Princess.
tribes55
Posts: 132
Joined: June 10th, 2012, 4:29 am

Re: A Friendship Tested

Post by tribes55 »

ResExsention wrote: August 8th, 2018, 6:13 pm Tribes, so I've tried out your campaign, and it's amazing! A few things:

- In opinion, I don't think a Shadow Mage makes a good leader in scenario 1. Have your considered using a Fugitive instead?
- Again, your idea on Squid changing the entire scenario is good, though I've noticed his presence stopped changing things after scenario 1. Like he was neglected. I don't know. Is it me going debug next_level?
- I think scenario 2 (the one with the goblins) is slightly imbalanced toward the player. I mean, having extremely powerful Steelclads going against level 0 units, it doesn't seem to add up. Weak units compensate for their incapability with numbers, so maybe a larger keep for the goblins would be nice. Also, once you got through the trolls, the scenario became too easy. Maybe every four turns or something spawn in a few troll whelps?
- Another idea I have for you is in scenario 3, when you can turn Squid into a Longbowman, instead of turning him loyalist, have you considered just giving him an extra attack instead of transforming him?

But really, your campaign is impressive! One of my favorites, really.

Hi Res.

Why did you use next_level? Was scenario one too difficult? :|
Squid does maintain a presence throughout the entire campaign, and while he is most prominently featured in scenario 1-3, he is continuously mentioned in other scenarios. In someways, he's a more consequential "burin the lost" character, if you know who Burin is.

There are a lot of events which trigger that are messed up if you do skip levels, yes. It will break the campaign in some aspects.

I took your ideas; I too thought scenario 2 was too easy. I added an extra encampment, and made it where the goblin will recruit a Troll Whelp every 7 recruits.

Regarding Squid's transformation; he is by no means perfect. I don't like the transformation all that much, but I like it more than turning him into a Trapper or something, as they're units that are obtainable by the player already. I do not have the animations to simply give him the bow, and I wanted the player to make a choice; if he becomes a longbow and takes the armor as the smith implies he would, he no longer is as quick as he would be as a footpad. I wanted the player to make a sacrifice in the choice.
Squid is Fearless, and therefore unaffected by night-time in a negative way.

I am glad you're sincerely enjoying the campaign!
white_haired_uncle
Posts: 1109
Joined: August 26th, 2018, 11:46 pm
Location: A country place, far outside the Wire

Re: A Friendship Tested

Post by white_haired_uncle »

When I finished the end of scenario 4, it took me to "The End". Last turn autosave attached. BFW 1.14.0

Also, the link to this thread on the add-ons screen works, but it's a bit messy to write down and type in compared to others I've seen.

Thanks for taking the time to create this.
Attachments
AFT-Trouble in the North-Auto-Save21.gz
(50.4 KiB) Downloaded 507 times
Speak softly, and carry Doombringer.
Post Reply