Latest Posts

Topic: "Northmen" Tribe Page

GunChleoc
Avatar
Joined: 2013-10-07, 14:56
Posts: 3324
Ranking
One Elder of Players
Location: RenderedRect
Posted at: 2017-08-19, 13:42

I have played the scenario, and here's my thoughts on what can be improved to make it better. The story line is fine face-smile.png

Adjust the header text colors for the speakers, some of them are a bit glaring

Waiting for materials after the brick production:

  • Tell the player to build a few military sites and recommend to shift the wood economy further away to make more room for the clay pit? I had to build a military site anyway in order to fit the clay pit in at all, so some sentinel building hint would be good in any case. We could start this with just wood and reed production and the wooden tower, so that the clay pit won't be needed yet, then have the brick production afterwards.
  • How long does one have to wait until the scenario continues? Maybe have a concrete target of x amount of bricks?

Enhance Food Economy: The instructions where to build the bee keeper should be included in the objective text as well. BTW you can distinguish between the objective texts in the story message window and the objectives window - have a look at the 1st tutorial to see how it's done.

It takes a lot of Sentinels to reach the gold. Unlock a medium-sized military building. It would also help to have the headquarters a bit more to the North-East. Also, the "Expand further" objective seems a bit pointless to the player at the time, since most of the island seems to be already discovered to get at the gold. So, I recommend:

  1. Remove the gold mine from the instructions that include the iron mine, since gold is not needed to produce soldiers
  2. After building the Small Armor Smithy, add instructions to build a seamstress and associated buildings so that we can produce basic soldiers
  3. Now have the expand objective with the medium size building
  4. Build gold mine and upgrade the economy
  5. A good story-wise motivation for expanding further would be to have more space for farms and to build a second reindeer farm. The extra carriers will come in handy when the island floods. When building the reindeer farm, mention that reindeer are also used for transport.

Training soldiers: The objective window does not include the instructions on what to build. Placing the L10 soldier in a militarysite complicates things, why not add the warehouses and the headquarters to the list to check?

"Fur Clothes" are causing grammar problems with the production site strings, because it's a plural. How about renaming them to "Fur Garment"?

You could eventually unlock the charcoal kiln. No need to have scenario instructions for it though.

Defeat the enemy: It takes ages to reach the enemy, maybe start the scenario more towards the middle of the island (I know you won't want to change the shape of the island, since this is authentic Langeneß) and have the necessary mountain resources there? Part of the problem might be though that the AI productivity goes down after a while and it didn't expand at all. It's still a long chain of military sites though, which isn't that interesting to build.

Weaving Mill and Shipyard aren't unlocked when the island floods. Also, the island floods too fast, so there will be no time to finish building a ship.

Edited: 2017-08-19, 13:46

Busy indexing nil values

Top Quote
Nordfriese
Avatar
Topic Opener
Joined: 2017-01-17, 17:07
Posts: 1950
OS: Debian Testing
Version: Latest master
Ranking
One Elder of Players
Location: 0x55555d3a34c0
Posted at: 2017-08-19, 15:54

Thanks for your feedback!

I changed the message headers´ colours to green for the chieftain, light blue for the advisor, dark red for the enemy. The clay pit instruction now advises to build some sentinels.

After the brick economy is done, the scenario waits until no rations are left in the warehouse and at least one mine is out of rations. This is when the advisor reports about the hungry miners.

I added the hint to build the bee-keeper near a berry farm to the objective. Which gold mountain are you referring to? There are two – one that triggered the expand objective, one further west, northeast of the iron mountains. I intended for the gold mine to be placed on the western one, but I found that it can be overlooked if sentinels are placed only near the southern shore. I removed the gold mine from the objective. The charcoal kiln is unlocked at this point.

As soon as the mining objective is done, the chieftain demands to start recruiting soldiers now. When that is done, he orders further expansion and says it gives more space for farms and it might be good to recruit more reindeer. I renamed the fur clothes to fur garment.

When the enemy is sighted, soldier training is demanded. The objective contains a list of the required new buildings; the soldier may be sent to a warehouse now.

The problem with the long expansion chain is AI-related. I intended for it to expand much faster than it does and even added precautions in the code in case it reached the second gold mountain first. It will get much more generous starting conditions, perhaps that will make the expansion and fighting more interesting. If that doesn´t work, I might even build some free outposts for the AI after the enemy is sighted to force it to be a more interesting opponent.

I think the problem with weaving mill and shipyard was that the map was for some reason not tagged as seafaring. I´m testing the scenario with the changes now, then I´ll upload it…


Top Quote
GunChleoc
Avatar
Joined: 2013-10-07, 14:56
Posts: 3324
Ranking
One Elder of Players
Location: RenderedRect
Posted at: 2017-08-19, 20:23

The test for seafaring checks if there are at least 2 port spaces, I think. So, there are 2 solutions to the problem:

  • Add a tiny island in the ocean that has a port space on it
  • Have a look at how the Atlantean scenario solves the problem

Busy indexing nil values

Top Quote
Nordfriese
Avatar
Topic Opener
Joined: 2017-01-17, 17:07
Posts: 1950
OS: Debian Testing
Version: Latest master
Ranking
One Elder of Players
Location: 0x55555d3a34c0
Posted at: 2017-08-21, 17:00

I now pushed a new revision with the changes to the scenario. I solved the seafaring problem by adding a second port space under the player´s headquarters. I tested it (with some cheating, to make it faster) and adjusted the flood speed so it is now actually possible to win, provided one is very quick building the seafaring buildings.

The enemy is much stronger now, I gave him lots of building materials, so his speed of expansion was just fine, he appeared at my border five minutes after the defeat-the-enemy objective was unlocked. Instead of 100 rookies, I gave him 50 soldiers with maximum attack and 150 with maximum health+defence. I haven´t played a full battle yet, but as the AI can´t train or recruit soldiers, this should be doable.

There is one spot of bother. The stormflood consumes lots of memory; the further it progresses, the more memory is flooded. In the end, it sometimes gets so bad that Widelands no longer responds and I have to force-close it. I´m unable to find the reason for this…


Top Quote
GunChleoc
Avatar
Joined: 2013-10-07, 14:56
Posts: 3324
Ranking
One Elder of Players
Location: RenderedRect
Posted at: 2017-08-21, 17:32

Looks like this bug: https://bugs.launchpad.net/widelands/+bug/1651591


Busy indexing nil values

Top Quote
Nordfriese
Avatar
Topic Opener
Joined: 2017-01-17, 17:07
Posts: 1950
OS: Debian Testing
Version: Latest master
Ranking
One Elder of Players
Location: 0x55555d3a34c0
Posted at: 2017-08-23, 13:26

I´m trying to script another feature for this scenario: I want the island to have a special terrain, since the northern frisian islands have salt meadows with completely different plants than on the mainland. At first, I tried setting the parameters of the terrain types in the script, but Widelands complained that they are read-only. So I added a script that defines a new terrain type and sets all normal land fields to salt meadow:

wl.World():new_terrain_type{
   name = "salzwiese",
   ...
   textures = {"campaigns/fri01.wmf/pics/salzwiese_00.png" },
   ...
}
function halligwelt()
   local x = 0
   while x < wl.Game().map.width do
      local y = 0
      while y < wl.Game().map.height do
         local field = wl.Game().map:get_field(x,y)
         if field.terr == "summer_meadow3" then field.terr = "salzwiese" end
         if field.terd == "summer_meadow3" then field.terd = "salzwiese" end
         y = y + 1
      end
      x = x + 1
   end
end

The result is always a crash due to a "Gleitkomma-Ausnahme" with no further information. gdb points to this line in terrain_description.cc:

const Image& TerrainDescription::get_texture(uint32_t gametime) const {
    return *textures_.at((gametime / frame_length_) % textures_.size());
}

Since the crash is always the same independent of whether I run the function before everything else or during the game, I guess the problem might be the texture image path. I tried setting "textures = {"world/terrains/pics/summer/steppe_barren_00.png" }" as a test, but the same exception occurred. I hope there is an easy fix for this, as this would make it possible for me to place the scenario in the real geographical context. This is not really necessary but would be a very nice addition.

What am I doing wrong?


Top Quote
GunChleoc
Avatar
Joined: 2013-10-07, 14:56
Posts: 3324
Ranking
One Elder of Players
Location: RenderedRect
Posted at: 2017-08-23, 15:21

The world isn't moddable via scenario scripting - you'll have to add the new terrain to data/world/terrains.

I have some ideas on how to get real mods going, but that will still take a while - I have too many open branches already.

Edited: 2017-08-23, 15:21

Busy indexing nil values

Top Quote
Nordfriese
Avatar
Topic Opener
Joined: 2017-01-17, 17:07
Posts: 1950
OS: Debian Testing
Version: Latest master
Ranking
One Elder of Players
Location: 0x55555d3a34c0
Posted at: 2017-08-23, 17:15

I don´t think new terrains should be added to the entire game for a not-even-that-important improvement to a scenario. I deleted the code from the campaign and won´t use custom world additions. It wouldn´t have been a very accurate representation of the salt meadows anyway, as the terrain parameters have nothing like "saltiness".


Top Quote
GunChleoc
Avatar
Joined: 2013-10-07, 14:56
Posts: 3324
Ranking
One Elder of Players
Location: RenderedRect
Posted at: 2017-08-23, 17:22

Terrain properties only affect tree growth anyway, so you might use a terrain that has less trees and still looks a bit lush if we have one. Or come up with an eyecandy immovable to place on them - that would have to become part of the default immovables too though.


Busy indexing nil values

Top Quote
king_of_nowhere
Avatar
Joined: 2014-09-15, 17:35
Posts: 1668
Ranking
One Elder of Players
Posted at: 2017-08-23, 23:33

GunChleoc wrote:

Or come up with an eyecandy immovable to place on them - that would have to become part of the default immovables too though.

there are a few immovables that cannot be removed and can look a bit like salt. some of the "ruins" type. I used it extensively in the dolomites map to force roads to follow the valleys


Top Quote