[mainline] Fix inconsistent races

Brainstorm ideas of possible additions to the game. Read this before posting!

Moderator: Forum Moderators

Forum rules
Before posting a new idea, you must read the following:
User avatar
beetlenaut
Developer
Posts: 2828
Joined: December 8th, 2007, 3:21 am
Location: Washington State
Contact:

[mainline] Fix inconsistent races

Post by beetlenaut »

We have a lot of great new creatures with great art, but we have a problem with races becoming more and more inconsistent.
Some examples:
  • A Bat is a "bat," but a Rat is a "monster."
  • Level-0 units like Piglets and Giant Ants are also "monsters," as are mundane creatures like bears and stoats.
  • We have a race for falcons (2 units), but not for scorpions (4 units).
  • Dunefolk are humans, but are not listed with them.
  • The Goblin Knight is a "wolf," but the human Knight is not a "horse."
For animals, the general trend has been to give them their own races, but if done logically, this will get out of hand. If we have races for falcons, wolves, bats, and horses, there is no reason we shouldn't also have them for bears, pigs, monaxes, and so on. Unfortunately, this would make the help screens even longer than they already are and bury the soldiers in a list of animals and other NPCs.

My proposal is to do the opposite and consolidate creatures into fewer groups. We could have an "animal" race that takes care of all mundane non-sentients. (Mundane by the standards of Irdya, anyway.) "Monsters" would be restricted to giant, dangerous creatures or sentient beasts. It does make sense to split out a race when there are nine or ten that go together, which is why I also added "bugs" and "elementals." That assumes that the elementals get filled out a bit first instead of leaving mainline with just mud and fire spirits.

For riders, I think that a sentient rider on a steed should be counted under the rider's race. The rider is presumably in charge, even if the steed does most of the damage. It used to be this way, and I think it should be changed back so that we are consistent. Besides, the game acknowledges that the rider is more important since its alignment overrides the alignment of the animal.

New races list:
Spoiler:
Campaigns: Dead Water,
The Founding of Borstep,
Secrets of the Ancients,
and WML Guide
User avatar
Lord-Knightmare
Discord Moderator
Posts: 2369
Joined: May 24th, 2010, 5:26 pm
Location: Somewhere in the depths of Irdya, gathering my army to eventually destroy the known world.
Contact:

Re: [mainline] Fix inconsistent races

Post by Lord-Knightmare »

The Goblin Knight is a "wolf," but the human Knight is not a "horse."
I think this was intentionally done. As MP requires the traits be from the wolf and not the goblin riding it. Goblins have 1 trait slot and the 3 options are negative (dim/slow/weak).
Dunefolk are humans, but are not listed with them.
I believe this was also intentional, but the dunefolk race is listed as derivative of the human race, which is okay.

I don't think I can accept Skeletal Dragon as a monster. It's an undead.

Gryphons seem to be identified as their own race, so re-assigning them as monsters seem to be undesired.
Bats being `race=bat` seem to be due to the "feral" trait.

I will also note that some UMC use `race=gryphon` or `race=xxx` as filters so changing such values would trigger breakages en masse.
but not for scorpions (4 units).
Three. 3 units. Sand Scuttler is still sharing the ID of the Giant Scorpion.
Flesh Golem (from UtBS)
How is this an elemental class? Doesn't seem to fit here.
Creator of "War of Legends"
Creator of the Isle of Mists survival scenario.
Maintainer of Forward They Cried
User:Knyghtmare | My Medium
gnombat
Posts: 715
Joined: June 10th, 2010, 8:49 pm

Re: [mainline] Fix inconsistent races

Post by gnombat »

Lord-Knightmare wrote: December 22nd, 2022, 8:25 am
Flesh Golem (from UtBS)
How is this an elemental class? Doesn't seem to fit here.
I think that's generally the way it works in most other games:
https://dnd-wiki.org/wiki/SRD:Golem wrote:Golems are magically created automatons of great power. Constructing one involves the employment of mighty magic and elemental forces.

The animating force for a golem is a spirit from the Elemental Plane of Earth. The process of creating the golem binds the unwilling spirit to the artificial body and subjects it to the will of the golem’s creator.
Of course, it doesn't necessarily have to work the same way in Wesnoth.
User avatar
Helmet
Posts: 641
Joined: December 19th, 2006, 5:28 pm
Location: Florida, USA

Re: [mainline] Fix inconsistent races

Post by Helmet »

beetlenaut wrote: December 22nd, 2022, 5:48 am My proposal is to do the opposite and consolidate creatures into fewer groups. ...
beetlenaut, you left out the one example that boggles my mind the most: goblins!

This is what the mainline guide says about goblins:
In any race, there are always those rare individuals who, by stroke of bad luck, are born much smaller and weaker than the rest of their kind. For Orcs, however, such occurrences are extraordinarily common, with there usually being several runts born in each litter. Known as ‘Goblins’...
In other words, goblins are small orcs -- born in the same "litter" as orcs -- and yet they are not orcs. Huh?

Anyhow, I like your proposal to create fewer groups. Here are my thoughts.

1.) Change race to some other term, and deprecate race. For the new term, I have 3 suggestions: class, classification, or group.

2.) Use the term Magical, not Elemental. This would allow golems to be included.

3.) Use the term Big Bug, not Bug.

4.) Create a new class called Flying and put falcons, bats, rocs, wild wyverns, and gryphons in it.

5.) Create a new class called Humanoid and put ogres, orcs, goblins, merfolk, nagas, saurians, and drakes in it.

5b.) Trolls remain classified as Troll, not Humanoid. They are made of some kind of rock-like substance, after all. 8)

6.) Create a new class called Aquatic and put water serpents, great seahorses, cuttlefishes, and the like in it.

7.) Classify any "animal" as a Monster if it is sufficiently dangerous, aggressive or scary; for example: swamp lizards, dire wolves, and monster crabs.

8.) Create a new class called Plants and put woses in it.

9.) Regarding the generation of names for units, instead of using race, use something like name_group=orc.
Author of:
DIY Campaign, Confederacy of Swamp Creatures: Big Battle 1, Confederacy of Swamp Creatures: Big Battle 2, Frogfolk Delivery Service, The Pool of Ek.
User avatar
Toranks
Translator
Posts: 168
Joined: October 21st, 2022, 8:59 pm
Location: Sevilla
Contact:

Re: [mainline] Fix inconsistent races

Post by Toranks »

races= as far as I can read, affects things as:

- help_taxonomy: (Version 1.15.5 and later only) in the help browser, show this race as a group of units from another race

- undead_variation: sets the default undead variation for members of this race.

- [trait]: describe a trait for this race. See above for syntax.

Since undead_variation and [trait] can be defined within the individual unit, it doesn't make sense to deprecate races, plus it can break many mods. It is just a classification to have its own definition and group in the help menu, as a basic purpose.
User avatar
beetlenaut
Developer
Posts: 2828
Joined: December 8th, 2007, 3:21 am
Location: Washington State
Contact:

Re: [mainline] Fix inconsistent races

Post by beetlenaut »

Lord-Knightmare wrote: December 22nd, 2022, 8:25 am I think this was intentionally done....
Bats being `race=bat` seem to be due to the "feral" trait.
I am not arguing that any of this was an accident, and I understand that traits will have to be adjusted--moved to unit files instead of given to all members of a race. That doesn't seem like too big a problem though. When a Knight or Outrider is intelligent or dexterous, we are talking about the rider, and when quick, we're definitely referring to the horse. So we already have traits that can refer to either.
Lord-Knightmare wrote: December 22nd, 2022, 8:25 am the dunefolk race is listed as derivative of the human race, which is okay.
I don't know what you mean by that. They are human, are they not?
Lord-Knightmare wrote: December 22nd, 2022, 8:25 am I don't think I can accept Skeletal Dragon as a monster. It's an undead.
I don't feel strongly about where this one would end up, but it is an undead monster, so it could go in either category I think.
Lord-Knightmare wrote: December 22nd, 2022, 8:25 am Gryphons seem to be identified as their own race
Well, a lot of things are, which is my point. The list of races is already pretty long, and it could easily double if we were being consistent.
Lord-Knightmare wrote: December 22nd, 2022, 8:25 am I will also note that some UMC use `race=gryphon` or `race=xxx`
I know this breaks some UMC, but races have been changed in the past, so compatibility-breaking changes can be considered. UMC authors writing for 1.17 should understand that it is a moving target.
Lord-Knightmare wrote: December 22nd, 2022, 8:25 am Sand Scuttler is still sharing the ID of the Giant Scorpion.
I think players would see the units as different as they have different colors and traits. Exactly how this is implemented in the code (variation vs. base_unit or whatever) isn't very important. However, it's not really that important if it's three or four. The point is that it could be a race if we were being consistent.
Helmet wrote: December 22nd, 2022, 9:39 pm beetlenaut, you left out the one example that boggles my mind the most: goblins!
Yeah, goblins and orcs are technically the same species, but so are cabbage, cauliflower, and broccoli. I can't think of any animal species that are that distinct in real life, but in principal, they could be, so keeping those two like that is fine.
Helmet wrote: December 22nd, 2022, 9:39 pm Change race to some other term, and deprecate race.
That would be a huge change, and not one I would be in favor of. Many of your categories are based on movement types which is already its own thing.
Campaigns: Dead Water,
The Founding of Borstep,
Secrets of the Ancients,
and WML Guide
User avatar
Lord-Knightmare
Discord Moderator
Posts: 2369
Joined: May 24th, 2010, 5:26 pm
Location: Somewhere in the depths of Irdya, gathering my army to eventually destroy the known world.
Contact:

Re: [mainline] Fix inconsistent races

Post by Lord-Knightmare »

I don't know what you mean by that. They are human, are they not?
If you check the code, dunefolk race define has:
help_taxonomy = human
Which groups it as a subset of the human race. Meaning, they are human.
Creator of "War of Legends"
Creator of the Isle of Mists survival scenario.
Maintainer of Forward They Cried
User:Knyghtmare | My Medium
User avatar
octalot
General Code Maintainer
Posts: 790
Joined: July 17th, 2010, 7:40 pm
Location: Austria

Re: [mainline] Fix inconsistent races

Post by octalot »

beetlenaut wrote: December 22nd, 2022, 5:48 am For animals, the general trend has been to give them their own races, but if done logically, this will get out of hand. If we have races for falcons, wolves, bats, and horses, there is no reason we shouldn't also have them for bears, pigs, monaxes, and so on. Unfortunately, this would make the help screens even longer than they already are and bury the soldiers in a list of animals and other NPCs.
help_taxonomy currently only adds links on the races' help pages, but that could be changed to rearrange the individual unit types' pages too.

Already WML's [race] can mean species, race or faction; I think the tagname should stay the same even if the player-visible meaning of it changes.
User avatar
doofus-01
Art Director
Posts: 4137
Joined: January 6th, 2008, 9:27 pm
Location: USA

Re: [mainline] Fix inconsistent races

Post by doofus-01 »

As the person who added many of the monster/beasts recently. I should say that I mostly just tried to work within the existing classifications. I'd considered rearranging things in recent PRs, but decided against it because of all the annoying downstream effects of breaking filters, etc. The orc/goblin/wolf issue has been around forever.
octalot wrote: December 23rd, 2022, 9:28 am
beetlenaut wrote: December 22nd, 2022, 5:48 am For animals, the general trend has been to give them their own races, but if done logically, this will get out of hand. If we have races for falcons, wolves, bats, and horses, there is no reason we shouldn't also have them for bears, pigs, monaxes, and so on. Unfortunately, this would make the help screens even longer than they already are and bury the soldiers in a list of animals and other NPCs.
help_taxonomy currently only adds links on the races' help pages, but that could be changed to rearrange the individual unit types' pages too.

Already WML's [race] can mean species, race or faction; I think the tagname should stay the same even if the player-visible meaning of it changes.
If the main issue is the help layout, addressing that directly does seem to make the most sense. Then "monsters" can easily be broken up.
BfW 1.12 supported, but active development only for BfW 1.13/1.14: Bad Moon Rising | Trinity | Archaic Era |
| Abandoned: Tales of the Setting Sun
GitHub link for these projects
User avatar
Helmet
Posts: 641
Joined: December 19th, 2006, 5:28 pm
Location: Florida, USA

Re: [mainline] Fix inconsistent races

Post by Helmet »

octalot wrote: December 23rd, 2022, 9:28 am Already WML's [race] can mean species, race or faction; I think the tagname should stay the same even if the player-visible meaning of it changes.
Now that I think about it a little more, all the little quirks in The Battle for Wesnoth help give it it's charm. If all the little oddities and rough edges were polished away, the game would become bland, predictable, and far less interesting. I retract my suggestion to change race to classification or whatever.

Not that anybody liked my goofy idea. :P
Author of:
DIY Campaign, Confederacy of Swamp Creatures: Big Battle 1, Confederacy of Swamp Creatures: Big Battle 2, Frogfolk Delivery Service, The Pool of Ek.
User avatar
beetlenaut
Developer
Posts: 2828
Joined: December 8th, 2007, 3:21 am
Location: Washington State
Contact:

Re: [mainline] Fix inconsistent races

Post by beetlenaut »

doofus-01 wrote: December 23rd, 2022, 1:46 pm If the main issue is the help layout, addressing that directly does seem to make the most sense. Then "monsters" can easily be broken up.
If monsters is broken up and most creatures get their own race instead, that would also fix the inconsistency, and I would be satisfied with that. We would also have to change the help system though, and I couldn't think of a way to do that that made sense for all of our units. That's why I went the direction I did. Did you already have an idea about the help screen?
doofus-01 wrote: December 23rd, 2022, 1:46 pm The orc/goblin/wolf issue has been around forever.
Yes, so why not do something about it? :)

I think the traits is the main issue, so I will get specific about how we could manage them.

I mentioned before that horseback units have some traits that clearly apply to the rider, and others that must apply to the horse. With that in mind, the same thing could work for gryphon riders. At the moment, I think that quick and strong apply only to the mount, and intelligent and resilient might reasonably apply to either. We could add healthy so we have one that applies to just the rider. Then we would have a set like for the horseback units.

For the wolf/goblin units, you could again imagine giving the whole unit traits for both creatures: one for the goblin and two for the wolf. But, since any goblin trait would necessarily negate one of the wolf's traits, you could instead just give the whole unit one positive trait (from the standard list).
Campaigns: Dead Water,
The Founding of Borstep,
Secrets of the Ancients,
and WML Guide
User avatar
doofus-01
Art Director
Posts: 4137
Joined: January 6th, 2008, 9:27 pm
Location: USA

Re: [mainline] Fix inconsistent races

Post by doofus-01 »

beetlenaut wrote: December 23rd, 2022, 4:20 pm Yes, so why not do something about it? :)
Because it's time-consuming relative to the payoff, and whatever you do will piss off some fraction of the people who notice. That's why it's been around forever, it's not that no one noticed.
beetlenaut wrote: December 23rd, 2022, 4:20 pm Did you already have an idea about the help screen?
Not one that I could implement, or I would have done it. But if a "race" could be marked as subset of another race, such that it was moved to a sub-node on the tree-view (not just a link on the top page like now), we could have a bunch of "wildlife", "animals"** , "monsters", and "legendary beasts". We could also have:
  • dunefolk and "wesfolk/wesnites/weswhatever" both be humans.
  • goblins and orcs more easily linked
  • undead split between spirits and puppets
  • quenoth and wood elves linked, if the UtBS elves are ever moved into core for some reason
It wouldn't require a lot of changes to existing configurations or filtering instances.

**- "domesticated animals" just doesn't have a nice ring to it, but maybe there is a better word
BfW 1.12 supported, but active development only for BfW 1.13/1.14: Bad Moon Rising | Trinity | Archaic Era |
| Abandoned: Tales of the Setting Sun
GitHub link for these projects
User avatar
beetlenaut
Developer
Posts: 2828
Joined: December 8th, 2007, 3:21 am
Location: Washington State
Contact:

Re: [mainline] Fix inconsistent races

Post by beetlenaut »

doofus-01 wrote: December 24th, 2022, 12:34 am if a "race" could be marked as subset of another race, such that it was moved to a sub-node on the tree-view
A tree view with opening branches sounds great (maybe using those little spinning triangles). Instead of marking "subraces" though, I think the best way to do this would be to add a key to [unit_type] that specified the node or sub-node the unit belonged under. We could predefine the root nodes with many of the races that we have now, and create sub-nodes to split up the larger races even more than just Wesfolk and Dunfolk. Maybe something like this:

Code: Select all

├── Humans
│   ├── Infantry
│   ├── Cavalry
│   ├── Civilians
│   ├── Dunefolk
│   └── Wizards
├── Elves
├── Dwarves
├── Beasts
│   ├── Wildlife
│   ├── Livestock
│   ├── Monsters
│   ├── Ogres
│   ├── Bugs
│   └── Legends
├── Merfolk
├── Undead
│   ├── Corpses
│   └── Spirits
etc...
Or the Dunefolk could be spread out into the classes above instead of being their own distinct class.

Or the humans could look like this:

Code: Select all

├── Humans
│   ├── Crown
│   ├── Dunefolk
│   └── Outlaws
I can't code a new help system either, but I volunteer to help fill out a new key for all the unit types if we go that way.
Campaigns: Dead Water,
The Founding of Borstep,
Secrets of the Ancients,
and WML Guide
User avatar
octalot
General Code Maintainer
Posts: 790
Joined: July 17th, 2010, 7:40 pm
Location: Austria

Re: [mainline] Fix inconsistent races

Post by octalot »

doofus-01 wrote: December 24th, 2022, 12:34 am Not one that I could implement, or I would have done it.
I have an old prototype in #7228.
User avatar
Celtic_Minstrel
Developer
Posts: 2258
Joined: August 3rd, 2012, 11:26 pm
Location: Canada
Contact:

Re: [mainline] Fix inconsistent races

Post by Celtic_Minstrel »

Some of the proposals in the opening post seem weird. I've quoted here with just the ones I disagree with left in:
beetlenaut wrote: December 22nd, 2022, 5:48 am Monster race
Skeletal Dragon
Ogre
Young Ogre

Animal race
Frost Stoat
Giant Rat
Great Icemonax
Great Seahorse
Icemonax
Vampire Bat
Blood Bat
Dread Bat
Monster Crab (from UtBS)

Elemental race
Flesh Golem (from UtBS)
Here's my reasonings:
  • The skeletal dragon is an "undead" version of a "monster", but I think the "undead" part is more important than the "monster" part. (Note that if you were including undead monsters under "monster", you'd also need to move the chocobone to monsters.)
  • Isn't the ogre a humanoid? I suppose you could describe it as a "monstrous" humanoid but it's still basically humanoid, isn't it? I don't really see a problem with it having its own race.
  • Frost stoat and icemonax both have ice attacks. Vampire bat has a drain attack. I think animals should exclude anything with a "supernatural" type of attack, so I would move these to "monsters".
  • The monster crab clearly belongs under "bugs" since it's a crustacean.
  • The giant rat is debatable, but my thought was that since it's used as a base for more supernatural monsters, it probably fits a bit better in "monsters". Plus, it's unnaturally large, an argument that also fits the great seahorse (though that is also debatable).
  • Flesh golem doesn't make sense as an elemental to me. I could see an argument for a clay or stone golem to be an earth elemental (though I would still disagree), but not a flesh golem. Even Gnombat's quote from d20 that golems are animated by an elemental spirit misses the detail that golems themselves are not classified as elementals in the d20 system. If we want to add golems, we should create a new race called something like "construct" or "automaton".
By the way, is there a reason why the dustbok and tauroch are missing from your list?
Author of The Black Cross of Aleron campaign and Default++ era.
Former maintainer of Steelhive.
Post Reply