Latest Posts

Topic: mini-tribes (non playable for scenarios)

Yo...
Avatar
Topic Opener
Joined: 2019-10-28, 14:47
Posts: 26
OS: Win 10
Version: 1.0 + 1.2
Ranking
Pry about Widelands
Location: MiddleEurope
Posted at: 2019-11-09, 23:16

Hi

Since a few weeks an idea struggles in my head. And that I want to share with you (both the idea and the struggling if you want). Hopefuly it is interesting enough for further discussions. Oh, and sorry for the huge wall of text now following face-sad.png

How about "mini-tribes" for Widelands? They are for "AI use" only (not playable) and could be an easy way for using in scenarios and maybe normal maps too. Most mini-tribes whould have only a few buildings, wares, and workers (including soldiers). Some mini-tribes can get specific wares in a similar way like in the start type "trading outpost" (instead with a whole production chain), maybe a bit more randomized. Some mini-tribes can be really simple, others can be relativly complex. A few ideas for mini-tribes following in my next post.

I guess the main difference with the military should be that a defeated military building of a mini-tribe is always destroyed, not conquered. Because some of my following ideas could be a disbalancing advantage for a player, if it's possible to conquere military buildings of mini-tribes (soon you'll understand what I mean).

Maybe there should be a few standard behaviors for such mini-tribes defined. The mini-tribe creator then can choose one of them as default behavior for his/her new mini-tribe, what can be changed in a different standard behavior during scenario scripting (or when place it on the map).
Such standard behaviors could be:

  • aggressive -- means attacks everyone if possible (no clearly suicidal moves)
  • defensive -- means doesn't attack, only defending
  • sneaky -- like "defensive", but tries to take advantage with other methodes (e.g. stealing, sabotage, plundering(?) ..., has to be defined in the certain mini-tribe)
  • cautious -- means usually expands to empty land; only attacks weakest enemies/buildings if no other expanding (into empty land) is possible
  • semi-defensive -- like "defensive", but if been attacked, the mini-tribe counterattacks the attacker mercyless (but no other tribes)
  • chaotic semi-defensive -- like "defensive", but fights against everyone if been attacked (not only against the attacker)

I'm sure there are more behaviors/tactics possible I don't think about yet ... If they are defined in a separated lua-file (or hardcoded in the main script) then they don't have to be defined again and again for each mini-tribe. Maybe these behaviors/tactics also can be used with standard tribes if "played" by AI (maybe not "sneaky").

possible advantages of mini-tribes

The main advantage could be the lesser effort for creating a new mini-tribe because of the low number of new graphics needed (in my imagination most will have only about 3 to 6 buildings and workers each, plus one or two soldiers, plus borders and flags, no ships or boats, no unique wares).

Another one: there are almost no limits caused by "reality", the mini-tribes could be almost everything in contrast to playable tribes. From simple bandits to fantasy-like monsters, and from everything overgrowing horror-plants to plundering pirates (of course, the latter whould need ships and ports and a bit more effort with lua-scripting -- and maybe military expeditions implemented / and the horror-plants may be very difficult too). Some mini-tribes even could be supportive instead of hostile if not attacked.

That could lead to a new win condition (mostly for multiplayer games): "work together and defeat all mini-tribes" (means: if one player is defeated, all players loose). Of course the number and strength of the mini-tribes on such maps or scenarios should be a challange, not a bad joke (e.g. not just 2 weak "bandit" mini-tribes for 4 players).

possible disadvantages and difficulties:

  • much more efford needed for changing/improve the main script for implementing mini-tribes than I think so far

  • maybe the current AI can't work with the mini-tribes and needs work too (but maybe the AI works pretty well with them because they are simple to handle? -- I hope so)

  • maybe there are new or improved lua-functions needed for handling/scripting mini-tribes?

  • someone could change the lua-scripts of a mini-tribe and make it playable (but I don't think we should bother with that, "cheating" is already possible for single players)

  • the map editor needs work too, if the mini-tribes should be placeable like normal players, and maybe for selecting some attributes/behaviors of them (which have to be defined in the lua-scripts, see above)

  • even the few needed graphics for each mini-tribe could be too much because of the few graphic artists "working" for WL?

  • ... you'll find more difficulties and such stuff face-wink.png


Top Quote
Yo...
Avatar
Topic Opener
Joined: 2019-10-28, 14:47
Posts: 26
OS: Win 10
Version: 1.0 + 1.2
Ranking
Pry about Widelands
Location: MiddleEurope
Posted at: 2019-11-09, 23:20

some ideas with first short descriptions for possible mini-tribes

I guess some of the following ideas are a bit (or way) to complex for the start with mini-tribes. But there is no need for make all in a few weeks or month.

standard mini-tribes

bandits

simple hostile mini-tribe with headquarter (wooden hut, middle-sized building), 1 or 2 small military buildings (for expanding), maybe a smithy, a tavern (works like barracks and/or training camp), only 1 or 2 types/levels of soldiers ("bandits"), tribe gets most needed wares randomized like "trading outpost" (but not weapons => smithy); attacks military buildings of other tribes and takes them over if successful. Gets more wares and soldiers with more land under its control.

thiefs

a bit like bandits (without smithy, the headquarter is just a bunch of tents), but they stray over the land (like scouts with a wider range, but starting in military buildings) and try to steal wares out of buildings of other tribes, they don't attack openly. If possible, they steal gold, iron, weapons, tools, rations etc. and beer etc. (e.g. from mines, warehouses, smithys, smelters, training buildings etc.).

native warrior clan

they have villages with hunters (for meat and fur?), lumberjacks, quarries, rangers (= forester + gamekeeper, alternating between both with very short break), crafter (crafts weapons and tools), headquarter, 1 or 2 different semi-small military buildings (big tents?), maybe a training ground (barracks at the same time?; training needs meat but no new weapon). their warriors use simple weapons (out of stone and wood logs made by crafter), they only attack if been attacked (by default) or if don't have other opportunities for expanding. they are weak but can be many over time. this mini-tribe is a bit more complex but still simple compared with the "real" tribes.

merchants

they build small warehouses instead of military buildings (they are like guardhouses/barrieres at the same time but can't be used for attacks, just for defending) and merchants stray around (like scouts, but starting in the warehouses). if they find warehouses/ports of other tribes (not mini-tribes), they offer a trade (the details we have to work out more preciesley and may be set or narrowed by the map/scenario designer). if they been attacked, of course they don't trade with the attacker anymore. the soldiers for defending the warehouses appear/spawn automatically over time in the starting headquarter (and/or it depends on wares they buy and sale?).
this mini-tribe can be used on maps or in scenarios with a lack of certain resources; the merchants of course have exactly these resources or fitting wares (e.g. gold if there is no gold ore on the map or around the starting areas).

wolf pack (or other predatory animals)

they have only "wolf's dens" (one kind as hq and one or two kinds as military building), a small building place is enough even for the hq. the wolfes appear in the hq and other dens over time, if full (hq: 12?, other dens: 6?), two of them start to stray around and "build" a new wolf's den near the actual border. usually they don't attack other tribes, but counterattack if been attacked ("semi-defensive"; see above). conquered military buildings change to wolf's dens or are destroyed. the wolfes are a bit larger than normal ones, maybe black, and relatively strong fighters. they hunt animals for meat too and can be a problem for tribes (barbarians).

fantasy-like mini-tribes

undeads

they only have a headquarter, no other buildungs, the hq can be (randomly or set by map/scenario creator) an old ruined temple, or a ruined castle, or an always foggy graveyard/tomb. The "soldiers" (e.g. level 1: skeleton, 2: zombie, 3: mummy) appear over time in the hq (e.g. after every 10 skeletons the next one will be a zombie, after 10 zombies the next one will be a mummy etc.). they attack (in hordes if possible) when military buildings of other tribes are built nearby. They take them over if the attack is successful and use them like an additional hq (but new undeads appear slower as in the real hq and not more then space is available). This last part might not be easy or even possible to code in lua, I don't know. But maybe the conquered military building just changes in a ruin (a building of the mini-tribe with the function as described; it needs to be destroyed if successfully attacked by a player -- because we don't want the players use spawning undeads).

stone trolls

their hq is only possible in mountains like mines, also their military building(s) (and that's the main reason why "conquered" military buildings of mini-tribes should be automatically destroyed). They don't have other buildings (I guess). Starting from military buildings they stray over the land like scouts and searching for trees (need them for food or whatever). If they find one or more, they cut them down but let drop a small or middle-sized rock instead. The rock can be cut down by masons etc. (like normal stones on the map). They don't attack if been unattacked, but they are very strong and they don't know something like mercy ("semi-defensive" or "chaotic semi-defensive"?; see above).
This mini-tribe can be set on maps (or certain continents) with very few rocks. the players can cultivate big forests to lure the trolls to them to get more stones. The downside of the "supporting" trolls is that they are living in the mountains. So maybe the players have to attack the trolls sooner or later if there are important resources in the mountains. (This ist already like a mini scenario just with making the map and set a few troll-hqs on it -- if this mini-tribe exists of course.)
The stone trolls would need a bit more lua scripting but I'm sure this is already possible (stray around, find and cut down tree, drop a rock instead of the dead tree). It may be a bit tricky to let a troll walk more likley to a forest instead to a single tree.

hobgoblins

they have only a hq and 1 or 2 military buildings, maybe an additional hut for "hunters" (or they use the military buildings?). The "hunters" sneak around near borders (you guessed it: like scouts, but a shorter range) and sabotage production sites of other tribes (because they like to haunt others and don't like the machines, and tools and their noises). (technically maybe they just set back the worker to a long break, e.g. around 2 minutes?) their soldiers are weak (no weapons, but fast and evading very well) and don't attack anyone. the soldiers and "hunters"/saboteurs spawn over time in huge numbers (in the hq).

special mini-tribes (or much more difficult to create)

pirates

their hq can only built on an port place and is --surprise!-- a port; they have some additional buildings/workers like tavern (= barracks), brewery/distillery, fishers (beer/rum, and fish are needed for new pirates and for training, they can also use other meals and drinks from other tribes if they get them), shipyards (and ships), maybe ports, maybe smiths, and of course training camp and miltary buildings (maybe even a tower). they get some basic resources (wood logs, cloth (for sails), stone, iron, coal, wheat/sugar-cane) over time in their hq and other ports (more ports means more wares). with thier ships they can attack ports of other tribes but don't destroy or conquere them, instead they just plunder some wealthy wares (gold, iron, weapons, beer and wine of course etc., also maybe material for building ships so they can build new ships faster).
Maybe there could be two different types of pirates: one can build new ports with expedition ships, the other can't. When it is implemented for all tribes the pirates also can attack other ships (maybe not both types of pirates?).

horror-plants

I guess the most difficult so far. the hq is a huge single plant with big leaves covering the ground. it grows over time to the next few adjacent free places for small buildings (even mining places are possible). (graphically it should look at the end like one even larger plant reaching over several nodes of the map, all single plant graphics should overlap each other; technically maybe the "plant-tribe" sends out an invisible builder and the building process looks like a growing plant?; all of these partially plants are technically like military buildings. The "soldiers" could look like big leafy branches, they are only needed for take over new own buildings and defending them.) The "plant-tribe" don't bother very much with borders, they simply overgrow them and destroying all buildings (military ones too) they are able to touch (tricky, I know). Of course they easyly can be attacked and destroyed node for node (or plant for plant) (otherwise it would be a stupid feature), but they may grow back again just a few (real time) minutes later.
just an early idea which still needs much brainstorming and work if even possible to realize.


Top Quote
GunChleoc
Avatar
Joined: 2013-10-07, 15:56
Posts: 3324
Ranking
One Elder of Players
Location: RenderedRect
Posted at: 2020-02-21, 20:52

The different behaviors would need to be supported by the AI. So, a first step would be to code the AIs...

If you don't need the special behavior, start by implementing one them like a normal tribe - we can already define scenario-specific units, so the step towards scenario-specific tribes shouldn't be far once https://github.com/widelands/widelands/pull/3693 has been merged.


Busy indexing nil values

Top Quote