Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Minor Fix - Update the code with relevant changes  (Read 1277 times)

FantasticDorf

  • Bay Watcher
    • View Profile
Minor Fix - Update the code with relevant changes
« on: February 02, 2017, 09:28:08 am »

A few little gripes here and there, about the fact that between versions, much of the game's systems are relatively untouched, meaning that they sometimes are left a little behind of the game's current development.

> [USE_EVIL_PLANTS/WOOD] does not work (properly) without a relevant other [OUTSIDE/INSIDE WOOD] and [GARDENS/CROPS] causing the game to buggily draw evil wood from below the 2nd cavern layer or even without any accessible evil wood generate a 'barrel' which is functional but has no wood in it whatsoever and is a pale white block.
  • Without the tag, goblins will not use, embark or sell with those materials, meaning no evil plants will enter circulation of goblins production = no goblin clothes coming along for sieges dyed black or subjective materials.

> [USE_PET_RACE_ALL] does not discriminate between [EVIL] and [GOOD] meaning that if a creature that is required to be used & exclusive to a [EVIL] race such as a beak dog is to be playable it needs [PET_EXOTIC] and even so, that means that elves with no [USE_EVIL_ANIMALS] can pick up that creature just because its PET_EXOTIC.

> Lots of the archaic underground races (rat men etc.) still have old tags, where tags like [INTELLIGENT] would fufill both.

> Previously mentioned exotic pets are weird, semi intelligent creatures attained through [EVIL] tags are both intelligent & implicit pets and don't really sit between either category. Could probably do with a new tag or to have the code for [EVIL] races re-adjusted.


All of these are very easily fixed with RAW modding, but its just a small matter that they were overlooked and individually these issues are quite trivial and don't require a mantis report each.
« Last Edit: February 02, 2017, 07:49:44 pm by FantasticDorf »
Logged

Reelya

  • Bay Watcher
    • View Profile
Re: Minor Fix - Update the code with relevant changes
« Reply #1 on: February 05, 2017, 05:40:18 am »

Quote
elves with no [USE_EVIL_ANIMALS] can pick up that creature just because its PET_EXOTIC.

I think elves are actually meant to be morally complex. They are cannibals after all. Is this necessarily a bug that needs fixing?

Quote
> Lots of the archaic underground races (rat men etc.) still have old tags, where tags like [INTELLIGENT] would fufill both.

Probably because it's archaic raws. Toady has plans to revamp how animalmen work in the future, which would probably be a case of all procedurally generated animalmen replacing some of the hardcoded stuff.

The problem is that there are lots of raws files and tags that could be improved, here and there, not just the few issues you listed. Toady making small changes incrementally to the raws all the time when not 100% necessary, would cut into the time he has to develop features that can't be modded in.

But there's also another problem. Changing the raws often creates or exposes bugs. If Toady changed things often, then he'd have to thoroughly test each individual change to see that it didn't break anything else. Right now, modders all experiment with changing raws individually, so any time lost to a bug from a raws change is limited to that one modder, and the community works out the rules of thumb for what works and doesn't work. If Toady did that himself, it would be a linear-time bottleneck on the entire project, rather than a side-project of a modder that didn't work out.

Also, since the project's overall design is nowhere near finished, then any RAWS patch he did would be temporary at best, until something better comes along. This would mean he spends more time updating things that aren't meant to last. Not a good use of time for the critical developer.
« Last Edit: February 05, 2017, 06:05:00 am by Reelya »
Logged

FantasticDorf

  • Bay Watcher
    • View Profile
Re: Minor Fix - Update the code with relevant changes
« Reply #2 on: February 05, 2017, 06:38:58 am »

Its just a poor definition of the tag i think rather than a bug. It was never expected for [PET_EXOTIC][EVIL] creatures to be encountered by elves using the military strategist behavior so got overlooked. Knowing whether the chicken came before the egg is important for working out these sort of things.

True that on archaic tags, but without meaning to be rude, with the bugs outstanding, (and sometimes outstandingly complex) the code is relatively bottle-necked every time a major change is made anyway hence the rampant frustrations of people on Mantis. Toady cannot literally progress with confidence until the bugs are worked out & players largely can't fix it themselves because its a limited closed source dev team.

EI - Pre 40.24 to post 42.01 adding a slew of related bugs, some reshuffles openly declared & secretly done etc.

Making the relevant changes as long as you can keep track of the new functions of what they apply and a clear distinction (which to be critical, toady's only really 'recently' kept concise changelogs, some earlier articles are just talking, though secrecy is required for secret features.) should work at-least in concept (it IS a complicated game after all, but solutions are often methodical like the cats ingesting alcohol from licking paws) to eliminate conflicts with a little pre-preparation and planning.

As a modder who likes to conduct & create my own game setting i guess im just venting a little bit on being unable to push circles through sometimes square holes cleanly. As much as i might not like to admit it, the game is designed in mind exclusively for vanilla dwarf mode, until that aspect or focus opens up in later development with more access to how much can be edited it's going to be a slog between versions to bugfix or try to expand on modding abilities.
Logged

Reelya

  • Bay Watcher
    • View Profile
Re: Minor Fix - Update the code with relevant changes
« Reply #3 on: February 05, 2017, 06:50:56 am »

Its just a poor definition of the tag i think rather than a bug. It was never expected for [PET_EXOTIC][EVIL] creatures to be encountered by elves using the military strategist behavior so got overlooked. Knowing whether the chicken came before the egg is important for working out these sort of things.

My point was that there's really nothing in the definition of elves that dictates that they must refrain from using evil animals. That they "shouldn't" is really an assumption brought from outside the game - really from Tolkien and D&D style elves. But DF elves are based on traditional "fey" elves who were a balance of good and evil. If the raws say that they're happy to tame Beak Dogs as much as they'll tame Unicorns then that's how the rules work. Elves don't have "good" tags either, so if they're banned from Beak Dogs they should equally be banned from Unicorns.

You see, it's more than just saying you think a specific thing that happens in the game (that's not a bug, per se) is "wrong" because it doesn't fit some thematic purpose, you need to show that it is in fact objectively "wrong", and that's not necessarily a provable case here. Also, as this is a roguelike with emergent properties, it's not really a good idea to try and over-specify how relations between things works. That stifles the ability of the engine to surprise us, which is one of the great things about roguelikes.
« Last Edit: February 05, 2017, 07:02:54 am by Reelya »
Logged

FantasticDorf

  • Bay Watcher
    • View Profile
Re: Minor Fix - Update the code with relevant changes
« Reply #4 on: February 05, 2017, 07:08:16 am »

Its just a poor definition of the tag i think rather than a bug. It was never expected for [PET_EXOTIC][EVIL] creatures to be encountered by elves using the military strategist behavior so got overlooked. Knowing whether the chicken came before the egg is important for working out these sort of things.

My point was that there's really nothing in the definition of elves that dictates that they must refrain from using evil animals. That they "shouldn't" is really an assumption brought from outside the game - really from Tolkien and D&D style elves. But DF elves are based on traditional "fey" elves who were a balance of good and evil. If the raws say that they're happy to tame Beak Dogs as much as they'll tame Unicorns then that's how the rules work. Elves don't have "good" tags either, so if they're banned from Beak Dogs they should equally be banned from Unicorns.

Code: (Vanilla elf raws) [Select]
[ENTITY:FOREST]
[ALL_MAIN_POPS_CONTROLLABLE]
[CREATURE:ELF]
[TRANSLATION:ELF]

        ~snip~ tool tags. etc, makes the list very long for just showing you

[SELECT_SYMBOL:WAR:NAME_WAR]
[SUBSELECT_SYMBOL:WAR:VIOLENT]
[SELECT_SYMBOL:BATTLE:NAME_BATTLE]
[SUBSELECT_SYMBOL:BATTLE:VIOLENT]
[SELECT_SYMBOL:SIEGE:NAME_SIEGE]
[SUBSELECT_SYMBOL:SIEGE:VIOLENT]
[SELECT_SYMBOL:ROAD:NAME_ROAD]
[SELECT_SYMBOL:TUNNEL:NAME_TUNNEL]
[SELECT_SYMBOL:BRIDGE:NAME_BRIDGE]
[SELECT_SYMBOL:WALL:NAME_WALL]
[SELECT_SYMBOL:TEMPLE:NAME_BUILDING_TEMPLE]
[SELECT_SYMBOL:LIBRARY:NAME_BUILDING_LIBRARY]
[SELECT_SYMBOL:REMAINING:NATURE]
[SELECT_SYMBOL:REMAINING:FLOWERY]
[CULL_SYMBOL:ALL:DOMESTIC]
[CULL_SYMBOL:ALL:SUBORDINATE]
[CULL_SYMBOL:ALL:EVIL]
[CULL_SYMBOL:ALL:NEGATIVE]
[CULL_SYMBOL:ALL:UGLY]
[CULL_SYMBOL:ALL:NEGATOR]
[WOOD_WEAPONS]
[WOOD_ARMOR]
[OUTDOOR_WOOD]
[OUTDOOR_ORCHARDS]
[COMMON_DOMESTIC_PACK]
[USE_GOOD_ANIMALS] <-----
[USE_GOOD_PLANTS]
[USE_GOOD_WOOD]
[USE_ANY_PET_RACE] <-----

[EVIL] animal tags that usually restrict evil entities to using PET_EXOTIC evil creatures and neutral creatures to tame in worldgen and lock out other races from using them is it in question. I refuse that i assumed based off fantasy tropes, but it just seems inconsistent.

Beak dogs (the creature in question) were given [PET_EXOTIC] by my own modding in a non-vanilla version (with identical elf raws) to make them as usable as anything else domestically (because without either pet tag they aren't interfacable in fortress mode) , and clashed with the elves [USE_ANY_PET_RACE] when because they are common domestic by default (for goblins anyway who exclusively use them in vanilla as mounts [EVIL] restricts them in that regard) they turn up in elven civilisations (key combo is local pet in the biome & common domestic)

Evil was set to off for the elves via no [USE_EVIL_ANIMALS], but use any pet race was set to on, so it's there. Just unintentional because it works in a capacity that isn't as wide as the things developed around it.


A ability to suprise us is innate with its nature of being generated (amusing names, lives & events that happen in the world), but when you have specific tokens and functions a predictable and understandable system that doesn't suprise us at all is required to be wholly consistent. I counter argue.

Most bugs are from bad relations to other factors, for example fish with [SWIMS_INNATE] cannot move unless they have the swimming skill, if the example was put into perspective of the 'real world' in which a universal creator was responsible for everything, if the universal creator suddenly forgot to put in tastebuds leading to people licking/eating everything then dying and not understanding the connection between the two after defining it needs to feel it up with its tongue to understand what's edible until a much later date its at fault.

The entertaining bit is just watching the randomly generated variety of things the creations die to while doing the behaviour.
« Last Edit: February 05, 2017, 07:20:16 am by FantasticDorf »
Logged

Reelya

  • Bay Watcher
    • View Profile
Re: Minor Fix - Update the code with relevant changes
« Reply #5 on: February 05, 2017, 07:18:29 am »

But if something is PET_EXOTIC, then even fortress dwarves can actually tame them, in game. After all, you did need to change the tag to make them tamable, so it seems reasonable that elves would also gain the ability to tame them.

USE_ANY_PET_RACE would seem to imply any pet race however. If the tags are to be interpreted literally, the "ANY" in that phrase should be paramount. "USES_EVIL_ANIMALS" would seem to be a permission that guarantees evil animals are usable. Without a "CANT_USE_EVIL_ANIMAL" tag we can't necessarily make any assumptions about what the lack of the tag implies. In any case, the wording of USE_ANY_PET_RACE eplicitly states "ANY" pet race, so that wording should trump the other concern.
« Last Edit: February 05, 2017, 07:25:15 am by Reelya »
Logged

FantasticDorf

  • Bay Watcher
    • View Profile
Re: Minor Fix - Update the code with relevant changes
« Reply #6 on: February 05, 2017, 07:21:44 am »

But if something is PET_EXOTIC, then even fortress dwarves can actually tame them, in game. After all, you did need to change the tag to make them tamable, so it seems reasonable that elves would also gain the ability to tame them.

Yes as i point out, but the [EVIL] and [GOOD] controls the "can i tame this Y/N" as a additional factor that the elves just bypass by ruling that it being exotic & common domestic is good enough reason. Not considering the wider game scope of rules just because it wasn't thought about in consideration to work in a particular way.

Their links to other tags aren't being maintained or thought about unless they are wholly intentionally built, in this case it was my own fault for setting the pet on the beakdog, but it ignores the set game rules anyway.
« Last Edit: February 05, 2017, 07:25:54 am by FantasticDorf »
Logged

Reelya

  • Bay Watcher
    • View Profile
Re: Minor Fix - Update the code with relevant changes
« Reply #7 on: February 05, 2017, 07:27:33 am »

USE_ANY_PET_RACE
USE_GOOD_ANIMALS

^ there's a problem with your assumptions here. These are rights which are additive. They are not permissions, which are subtractive.

e.g. a race may have both USE_GOOD_ANIMALS and USE_EVIL_ANIMALS, allowing both options. So having one tells you nothing about the other.

"ANY_PET_RACE" overlaps with that, adding all "pet" races to the allowed group. Basically lacking a "uses" tag doesn't exclude you from using something, you just need at least one "USES" category in which that thing fits. The alternative would be a subtractive system in which if you lacked any category in which the thing can fit, then you're excluded from it, which would be annoying, since every race would need to explicitly define it's rights for each possible variation in taming rights.
« Last Edit: February 05, 2017, 07:34:07 am by Reelya »
Logged

FantasticDorf

  • Bay Watcher
    • View Profile
Re: Minor Fix - Update the code with relevant changes
« Reply #8 on: February 05, 2017, 07:46:45 am »

But the evil 'additive' right is not applied or consulted in relation to [ANY_PET_RACE] but does consult [PET_EXOTIC] in relation to world gen events to tame them in neighboring territory.

But that's how the [GOOD] [USE_CAVE_ANIMALS] and [EVIL] rights work because other exclusive rights don't exist ([USE_SAVAGE_ANIMALS] for example) to facilitate them, green devourers for example are tamable in worldgen but not even a pet type because they fall under [USE_CAVE_ANIMALS].
Logged

Reelya

  • Bay Watcher
    • View Profile
Re: Minor Fix - Update the code with relevant changes
« Reply #9 on: February 05, 2017, 08:30:35 am »

Quote
But the evil 'additive' right is not applied or consulted in relation to [ANY_PET_RACE] but does consult [PET_EXOTIC]

But why would it be "consulted"?

Basically you automatically get access to non-good, non-evil animals. The USE_GOOD/EVIL_ANIMAL tags adds those specific types as allowable choices.

And the USE_ANY_PET_RACE tag specifically exists to allow you to use any pet race, as per it's name. It adds to the things you're already allowed to do.
« Last Edit: February 05, 2017, 09:01:51 am by Reelya »
Logged

FantasticDorf

  • Bay Watcher
    • View Profile
Re: Minor Fix - Update the code with relevant changes
« Reply #10 on: February 05, 2017, 10:49:46 am »

You require the [evil] [good] tags to use the pet in the first place (no [USE_EVIL_CREATURES] no dice with or without common domestic), the use any pet just overrides it as a oversight in its own way. Aren't we getting distracted by this to not address the constructive additional criticism of the arguement that if the workings are not clearly thought or at-least tracked by players or the dev team it will eventually wind up being a bug or broken, some things can't be expected but a lot more effort could go into organising ourselves.

If it is non-intentional to the functions of the tag originally defined (because pet evil/good restrictions) its a bug in the making, the fact that the rules of [USE_ANY_PET_RACE] define it must be 'a pet' and common domestic rather than check its a pet it can use and then apply common domestic to say that it would be always accessible before applying it to [USE_ANY_PET_RACE].

How much further and deeper with content can we go before the game gets so clogged up with silly methodical bugs that we cannot continue development, because very personally id like to see development continue but i think it'll reach a point horizon where eventuallly the brothers will get very very tired and may in extreme circumstance of outside life pressures abandon the project. (with any luck this wont happen until it is really time to put a lid on development when the game is more rounded to what the dev goals inspire)
« Last Edit: February 05, 2017, 10:54:55 am by FantasticDorf »
Logged

Reelya

  • Bay Watcher
    • View Profile
Re: Minor Fix - Update the code with relevant changes
« Reply #11 on: February 05, 2017, 10:55:17 am »

But that would make the USE_ANY_PET_RACE tag completely redundant. If you added the restrictions that you want to USE_ANY_PET_RACE then it would merely give you access to things that you already have access to. The whole point of the extra tag is ... it gives you access to extra things.

And you might want to invest in an English dictionary and look up what "ANY" means. If the tag excludes some things which also have PET/PET_EXOTIC tags then it would have to be renamed. And it clearly is intentional because of the exact wording of the name of this tag, and what it does, which is to override all other restrictions and allow you to USE ANY PET RACE. The tag itself was created solely to give this ability to elves, because the whole concept of DF elves is that they're master animal tamers, who can tame anything, so they're not limited by the normal restrictions. That's why Toady created this "ANY" tag.

Quote
id like to see development continue but i think it'll reach a point horizon where eventuallly the brothers will get very very tired and may in extreme circumstance of outside life pressures abandon the project

Well that's just silly. Have you looked at how much money a month they're getting in donations? It was only $2000 last time I checked, quite a while ago, but it's now around $6000-$9000 per month, call that $7500/month. I assume ThreeToe has other employment as well, but this is Toady's source of income, and he gets almost $2000/week out of it. He's not quitting any time soon. Maybe not forever if the life-extension technology is developed in time :P

And elves being able to domesticate Beak Dogs is going to overload Tarn, to the point that he gives up on $2000 a week income? You gotta be kidding if that's the argument you're going for. If Toady spent all his time tweaking the raws to make people happy in the short term, that's more likely to make him want to give up than having a few tags that someone or other doesn't like.
« Last Edit: February 05, 2017, 11:17:12 am by Reelya »
Logged

FantasticDorf

  • Bay Watcher
    • View Profile
Re: Minor Fix - Update the code with relevant changes
« Reply #12 on: February 05, 2017, 11:11:11 am »

~ Snip ~ *getting into schoolyard insults now on buying dictionaries, little bit of a low blow, try any of the above tags word syntax but i do understand your point, not that im obliged to agree with it*
Quote
id like to see development continue but i think it'll reach a point horizon where eventuallly the brothers will get very very tired and may in extreme circumstance of outside life pressures abandon the project

Well that's just silly. This is how they make their money and Tarn gets $2000 / month off this, e.g. enough for a full time wage.
Quote

DF doesn't have to be the last or most polished product the brothers do (they have many stop-start side projects), but it is certainly the most popular for the time being, won them awards and a degree of fame. They could literally just stop and channel what creative energy they have into other things using their skillset or start a entirely new project. Or uh retire on the spot to get out of the limelight if that's what they really wanted but they do have the passion and dedication towards the game to try and see it through.
« Last Edit: February 05, 2017, 11:24:16 am by FantasticDorf »
Logged

Reelya

  • Bay Watcher
    • View Profile
Re: Minor Fix - Update the code with relevant changes
« Reply #13 on: February 05, 2017, 11:19:14 am »

Well that whole line of argument is just not going to happen. They made other games before DF, not stop-start projects in the meantime. They've dedicated the last 10 years of their lives just to this however, and it's their source of income. And it's not just a game, they're developing a whole platform for fantasy storytelling and history in there, and it's got the whole model of reality thing down to individual toes being cut off etc. It's not like a typical game engine, the level of interdependency of systems in DF is really orders of magnitude above a "normal" engine.

Way to much work's gone into that engine in the details to start a new game. That only works when you have a shallow engine where you can easily port the whole project to a new system, e.g. a 3D shooter engine is actually very simple in structure compared to DF, so you can make one, then update to a new engine and construct a new game in that. With the scope and complexity of the modeling in DF, it's not feasible to start again with a fresh project, it would set them back 5 years, easily. There's no way they are going to quit to make "something else" at this stage.
« Last Edit: February 05, 2017, 11:25:33 am by Reelya »
Logged

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile
Re: Minor Fix - Update the code with relevant changes
« Reply #14 on: February 14, 2017, 05:22:18 am »

Well that whole line of argument is just not going to happen. They made other games before DF, not stop-start projects in the meantime.

Nah, they've made other games in the meantime, never released any. There was a consistent mention of a "month-end project" or similar a while back that never panned out.

DF doesn't have to be the last or most polished product the brothers do (they have many stop-start side projects), but it is certainly the most popular for the time being, won them awards and a degree of fame. They could literally just stop and channel what creative energy they have into other things using their skillset or start a entirely new project. Or uh retire on the spot to get out of the limelight if that's what they really wanted but they do have the passion and dedication towards the game to try and see it through.

I don't think they will, since the "Generic Fantasy Game" has been a constant throughout the development careers they've talked about that tend to end up sucking up a lot of development time.