Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Archery Redux Part 3 #30681

Closed
wants to merge 23 commits into from
Closed

Conversation

darktoes
Copy link
Contributor

@darktoes darktoes commented May 20, 2019

Summary

SUMMARY: Balance "adjusts bows and crossbows"

Purpose of change

Part 3 as I'm still working on part 2, but this fixes all the damage/range issues people have been complaining about.

Describe the solution

Adjusts bows/crossbows to match the system outlined in : https://docs.google.com/spreadsheets/d/1wpuAk7F1fJ227yAgYbokwn7KxdEeOv-MGFvnnnW5s1Q/edit#gid=781207725

Additional context

Hopefully everything is right, but this isn't an exhaustive set of changes.

Also, the reload mechanisms have somewhat crappy recipes but I intend to fix that when I get around to part 2.

darktoes added 5 commits May 20, 2019 15:47
Adjusts values to fit with the new system. Should make bows more viable and less garbage.
Ranges are currently just based directly on range, since it's kind of a nonsense value anyway.
Minor name/description changes.
Adjusted range and damage, added required strength value (based on strength required to draw it by hand), added mod slots for reloading mechanisms.
Necessary for various reasons
@SirPendrak
Copy link
Contributor

You did not changed the loudness of bows. So while composite bow went from 5 dmg to 23, and from 5 str to 10, its loudness is still 6. Selfbow is 8 loud, shortbow 6, compound bow 10. And comp bow is closest in its other stats.

@Dacendeth
Copy link
Contributor

Missed the rail mounted crossbow which would close #29941

@darktoes
Copy link
Contributor Author

You did not changed the loudness of bows. So while composite bow went from 5 dmg to 23, and from 5 str to 10, its loudness is still 6. Selfbow is 8 loud, shortbow 6, compound bow 10. And comp bow is closest in its other stats.

Fair, but composite bows are still quite quiet. I'll have to check it against the other traditional style bows.

Missed the rail mounted crossbow which would close #29941

Those aren't in crossbows.json so I forgot, thanks for the reminder.

darktoes added 2 commits May 21, 2019 09:25
Gave it an actual damage value so it actually fires and doesn't just plonk bolts on the floor. Sorry if anyone's character died because of that...
@darktoes
Copy link
Contributor Author

darktoes commented May 20, 2019

This isn't working out quite as well as I had hoped.

  1. There doesn't seem to be a way to allow a mod to be attachable to multiple possible mod locations (I.E a reloading mechanism that can be attached to both a normal crossbow's "reload mechanism" slot OR a siege crossbow's "heavy reload mechanism" slot. Which means I need separate sets for normal and heavy crossbows. Unless someone changes the gunmod minimum strength mod to be multiplicative instead of additive or helps me do it. I think I can fix this bit.

  2. Not meeting minimum strength requirements still allows you to reload the weapon (what the strength is actually required for) but not to actually fire it. For the most part it's reasonably acceptable (prevents weaker characters from using it without a reload mechanism), but it's still really weird and technically incorrect. I'll be looking into changing it to limiting reloads, since that will cover all cases where strength is required that I can think of (bows, crossbows, pneumatics, etc.)

Accidentally a double space
@ifreund ifreund added [JSON] Changes (can be) made in JSON Game: Balance Balancing of (existing) in-game features. Ranged Ranged (firearms, bows, crossbows, throwing), balance, tactics labels May 21, 2019
@Dacendeth
Copy link
Contributor

Pneumatic bolt driver is also kind of a crossbow if you feel that needs changing as well.

@darktoes
Copy link
Contributor Author

darktoes commented May 22, 2019

It does, but that's going to be in part 4 or 5.
(Part 2 is crafting and is about one third finished. I decided to set it aside because I was tired of looking at trees.)

@YukariMindGap
Copy link
Contributor

What kinda thing that still needs working on?

@darktoes
Copy link
Contributor Author

I made the mistake of deciding to tackle crossbows in this PR. Which means I need to revamp the strength requirement mod and possibly change minimum strength requirements in general. I'm hoping to handle that tomorrow, which should complete this PR.

@yarbelk
Copy link

yarbelk commented May 27, 2019

Umm; 40lb draw selfbow? am i reading that right? Please CMIIW, but I thought you're more likely to get 25 - 30lb draw on these. Basically, about as good as a resonable, but professionally made (non-recurve) shortbow.

At 40lbs you're not really a self bow any more; as you've probably added recurve, backing and moved more into the territory of some other bow. Selfbows... kinda suck without really good points on arrows.

I mean; they are better than no bow; and useless against armour. and can take down a goat... but anything much bigger has a good chance of living.

edit: missed the notes part: yup, is a bit generous. but given short bow is 30lbs, why not make it the same and make a short bow less encumbrancy and more accuracy.

@darktoes
Copy link
Contributor Author

Selfbow is just a very broad category rather than a particular type of bow, namely a bow made from a single piece of wood rather than from composite materials. In our case I've renamed it to crude bow, since even the 200lb longbows on the Mary Rose are selfbows.

Most of the admittedly rough research I've done suggest most rough selfbows people make from actual staves fall in the 60lb range. This one isn't made from a proper stave or properly seasoned, so I think 40lb is reasonable. Alternatively, you could consider it 30lb and slightly more efficient, but the roughness makes it feel like a 40lb draw.

@kevingranade
Copy link
Member

I've said this a number of times, but to repeat, all selfbows are going to require seasoning as soon as we have code in place to handle it. Unseasoned bows are not worse than seasoned bows, they're not bows at all.

@darktoes
Copy link
Contributor Author

Perhaps I didn't explain it properly. The "crude bow" isn't made properly, it's not from a stave or any proper piece of wood, just some sort of semi-dry or reasonably bendy stick. Something along the lines of:
https://www.youtube.com/watch?v=xPwuCbN3j3Q
https://www.youtube.com/watch?v=vVzPIPR9O0k
(First one is a bit more elaborate than I had in mind, but you get the idea.)
Super crappy, but enough to get a person going when they're just starting out.

@kevingranade
Copy link
Member

As a special exception for the very easiest bow to make we can leave it unseasoned.

Your sources place it squarely in the 25-30 lb. draw weight range that @yarbelk cited. And no, a rough hewn stick bow is definitely not going to be at all efficient at turning that force into propulsion.

You need to come to terms with this, a survival bow is garbage, and its stats need to reflect that. 30lb draw weight, 0.5 efficiency, and whatever damage the formula tells you that should have.

@darktoes
Copy link
Contributor Author

darktoes commented May 29, 2019

This kind of thing is why i orginally asked for feedback. There's no "coming to terms with" anything, It was basically just a value I pulled out of nowhere. All you need to do is say what you think.

@YukariMindGap
Copy link
Contributor

any eta on progress?

@darktoes
Copy link
Contributor Author

darktoes commented Jun 3, 2019

Well you'll notice the last commit was 2 weeks ago, so maybe tomorrow, maybe in another two weeks. Motivation is a fickle beast.

darktoes added 2 commits June 6, 2019 20:12
Changing both to be proportional rather than additive and percentage multiplier
Basically trying to change the reload modifier from percentage to multiplicative since nothing else uses a percentage multiplier and also change the str modifier from additive to also multiplicative, since that's what it was originally supposed to be.

I sure hope this works.
@Zireael07
Copy link
Contributor

@darktoes: The project requires PRs be tested by the contributor making it. For JSON changes, the very least you can do is swap out original files for your new ones and see if the game loads and the items work as expected (debug menu is a godsend for that).

And I speak as a contributor who never had a proper dev environment either, so I limited myself to JSON-only changes.

@darktoes
Copy link
Contributor Author

darktoes commented Jun 24, 2019

I wanted it to be JSON only changes and I thought it would only be JSON only changes, then it turned out some things weren't set up the way they needed to be and I needed to change them. I'm trying to do the best I can but obviously I need some help since I'm out of my depth. I'm not sure why that warranted the original comment, and I'm not sure why replying in kind is out of line.

To be clear, the issue above isn't testable without an environment because this PR changes hardcode that modifies how that JSON value is treated. Without an environment I can't test most of the changes, and i don't yet have one set up, so I asked Zhilkin if he could rerun his test for me.

@ghost
Copy link

ghost commented Jun 24, 2019

Does requiring help make me open to be freely abused without consequence?

Freely abused ??? ..... Jesus.

You were asking other people to compile and test your changes in the discord weeks ago, and giving attitude to people then when they questioned why you couldn't set it up to do it yourself.

And now it's happening again... this is not abuse, this is the baseline level of input required from all contributors in their own PRs.

I cannot believe you still don't understand this.

Asking for help and guidance when you are out of your depth is one thing, asking other people to do your work for you is another, and it is not stopping.

If you cannot do it yourself, then just don't do it , pick a contribution you can do, or set up a dev environment.

@Zireael07
Copy link
Contributor

@darktoes: Sorry, but the moment you made a PR with source changes, you need a dev environment. The requirement is there for a reason. The project is too large and popular to sneak in untested changes which will likely result in the game outright crashing. Even with the requirements for contributors to test - and a suite of automatic tests - things break. Case in point, the recent change to 1s a turn.

@darktoes
Copy link
Contributor Author

darktoes commented Jun 24, 2019

giving attitude to people then

I don't remember this, can you give an example?

this is the baseline level of input required from all contributors in their own PRs.

It hasn't been an issue before, and that's not the issue I have now. My issue was why I can't reply in kind to a comment that I interpreted as derisive. If it wasn't meant to be derisive and I misinterpreted it, then that makes things far different, but Ifreund would need to answer that. I'd like to be able to do these things on my own but I simply don't have the environment set up or the knowledge to do so on my own, which is why I'm hoping to get a friend of mine to help me with it in the near future.

Asking for help and guidance when you are out of your depth is one thing, asking other people to do your work for you is another, and it is not stopping.

If you cannot do it yourself, then just don't do it , pick a contribution you can do, or set up a dev environment.

No one who's "done my work for me" has ever told me they had an issue with it. I need help, I ask for it, sometimes people give it to me, and everything is fine. I'm not sure what the issue there is, and this is the first time I've heard anything about it. I'd happily go back to JSON-only PRs if it weren't for the fact that this one is kind of necessary to fix bow/crossbow balance, which a fair number of people consider significant enough to bother me about on Discord. Kevin wants ranged bow tests so someone needs to make that happen, and the fact is I can handle it myself given enough time but it would be a lot quicker if someone helped me. Honestly, I'd just like this PR to be completed.

Sorry, but the moment you made a PR with source changes, you need a dev environment. The requirement is there for a reason. The project is too large and popular to sneak in untested changes which will likely result in the game outright crashing.

Same thing. I've been pulled out of my area of expertise by the scope of this PR, which I'd really like to finish since a number of people want it, and I just need some help with that. I'm not trying to sneak in anything untested (and I rather resent that), which is why I wait until Zhilkin or anyone else with the ability to help me has time to help me and offers their help.

The crux of the argument here seems to be "you're contributing but only doing XX% of the work when you should be doing 100%", but isn't XX% still infinitely better than 0%?
At the risk of sounding overly dramatic, would everyone here rather I drop the PR entirely and let it be lost to the sands of time and leave bows broken forevermore than me take up a few minutes of other people's time here and there, which they willingly give me?

@ghost
Copy link

ghost commented Jun 24, 2019

The crux of the argument here seems to be "you're contributing but only doing XX% of the work when you should be doing 100%", but isn't XX% still infinitely better than 0%?
At the risk of sounding overly dramatic, would everyone here rather I drop the PR entirely and let it be lost to the sands of time and leave bows broken forevermore than me take up a few minutes of other people's time here and there, which they willingly give me?

Personally, I'd rather that, than indulging the selfish and entitled attitude you are displaying.

But that's just me, others may have generous hearts overflowing with bounteous time to give to others.

And others may just want this PR over the line, and hold their nose and hold your hand to get it done.

I've said my opinion, but its not up to me.

@darktoes
Copy link
Contributor Author

darktoes commented Jun 24, 2019

No, it's really not, and I don't understand where you're getting selfish and entitled from. I'll freely acknowledge that I've grouched about how difficult this has become but it's never been intentionally directed at anyone. I made a comment (on Discord) about "not getting shit" when asking for help on Discord, but that was an explanation and statement of fact, again, not directed at anyone. If there's any other comments on Discord (which currently appears to be down, making it difficult for you to provide examples if you're inclined, I acknowledge) which could be construed as entitled or selfish then I suspect they were just poorly worded (likely due to my recent stresses), since I'm sincerely thankful to everyone that has helped me with this PR, @ifreund included.

Perhaps I attributed too much malice to their original comment, and/or maybe it's just been a long day and I don't have the energy to properly react to what may well have just been banter or a genuine question. Regardless, I think you're entirely wrong, and I don't understand why you're so malicious about it.

@ifreund
Copy link
Contributor

ifreund commented Jun 24, 2019

Well, looks like travis answered your original question for you: https://travis-ci.org/CleverRaven/Cataclysm-DDA/jobs/549677719

@darktoes
Copy link
Contributor Author

Oh it has indeed. That's handy! And here I thought Travis still just always failed without reason.
Of course, that means something is still wrong. Damn.

@I-am-Erk
Copy link
Member

I am baffled and amazed that you'd be defending the decision to make a fairly large balance PR without even attempting gameplay. There isn't an excuse for that and I feel rather strongly that if you can't test your changes in a case like this you shouldn't be making them.

Anyone can install a compiler.

@darktoes
Copy link
Contributor Author

I don't know what to tell you. I do this as a minor hobby and have other priorities, and it hasn't been a serious issue until now. Most of my values are real-world derived so I'm fairly confident that playtesting isn't going to reveal much balance-wise as long as nothing crashes, which the automatic builds show me just as easily. You're all being very offensive to someone who's just trying to improve a game they like playing. Nothing's going to get PRed until it's complete/working and I'll keep working on it until it is, so just calm the hell down.

@ghost
Copy link

ghost commented Jun 24, 2019

I don't know what to tell you. I do this as a minor hobby and have other priorities, and it hasn't been a serious issue until now. Most of my values are real-world derived so I'm fairly confident that playtesting isn't going to reveal much balance-wise as long as nothing crashes, which the automatic builds show me just as easily. You're all being very offensive to someone who's just trying to improve a game they like playing. Nothing's going to get PRed until it's complete/working and I'll keep working on it until it is, so just calm the hell down.

Or other people with their own priorities will keep getting asked to work on it.

@darktoes
Copy link
Contributor Author

darktoes commented Jun 24, 2019

I asked a couple of times, sometimes I ask for advice. Everyone else does as well. What's your issue, it's not enough to want to help and contribute? To do what I can?

@KorGgenT
Copy link
Member

KorGgenT commented Jun 24, 2019

I'm just going to note here that you have spent more time arguing against setting up your own dev environment than it would have taken for you to install Visual Studio

@darktoes
Copy link
Contributor Author

Well if I didn't have to sit and have this argument about what I should or shouldn't be able to do with my own damn time maybe I would have.
The issue isn't that I can just press a button and install a compiler, I have to go learn all the shit to make it work. I've never done any of that before, and none of you are having a positive impact on my motivation to do it in the first place.

@ghost
Copy link

ghost commented Jun 24, 2019

Well if I didn't have to sit and have this argument about what I should or shouldn't be able to do with my own damn time maybe I would have.
The issue isn't that I can just press a button and install a compiler, I have to go learn all the shit to make it work. I've never done any of that before, and none of you are having a positive impact on my motivation to do it in the first place.

The issue is, the fact you are not choosing to spend your time on setting up a compiler ( which every other contributor usually has to do ) has an impact on other peoples time who have to pick up the slack to get this done and help you out, and write the tests and astyle for you etc.

@KorGgenT
Copy link
Member

KorGgenT commented Jun 24, 2019

I would be happy to talk you through installing visual studio on discord and setting up a compiling environment that allows you to press a button and make it compile.

@darktoes
Copy link
Contributor Author

darktoes commented Jun 24, 2019

I wrote the tests myself thank you, I sat and worked it out. I needed someone to run them to see why they were failing. If people want to help me they can, I've never forced anyone to do anything, so fuck off about any impact I might have on others that freely and willingly give me their time. I'll spend my time however I please, and this PR will just have to take as long as it takes me.
Why don't you spend YOUR time on something useful instead of bitching at me?

I would be happy to talk you through installing visual studio and sitting up a compiling environment that allows you to press a button and make it compile on Discord.

I appreciate the offer but already have a friend who's agreed to give me some guidance. I'm just not going to do it today or probably anytime soon, since I'm supposed to be on holiday after the exams I suffered through.

@ghost
Copy link

ghost commented Jun 24, 2019

I wrote the tests myself thank you, I sat and worked it out. I needed someone to run them to see why they were failing. If people want to help me they can, I've never forced anyone to do anything, so fuck off about any impact I might have on others that freely and willingly give me their time. I'll spend my time however I please, and this PR will just have to take as long as it takes me.

I would be happy to talk you through installing visual studio and sitting up a compiling environment that allows you to press a button and make it compile on Discord.

I appreciate the offer but already have a friend who's agreed to give me some guidance. I'm just not going to do it today or probably anytime soon, since I'm supposed to be on holiday after the exams I suffered through.

Kindly, do not tell me to fuck off. thanks. please read the Code of Conduct.

People freely and willingly give their time because some people are nice.

It isnt fair to rely on it, that is what you are doing, you are doing something no other contributors do, putting yourself in a position where you need other peoples work to finish this.

That is not how this process is meant to work.

@darktoes
Copy link
Contributor Author

I'm sure code of conduct has plenty to say about harassing another contributor just trying to finish their own PR.

Some people are nice, I agree with that. You aren't one of them.

It's fair to ask people for help when I know they could do something far more quickly than I could. It's also fair for them to refuse if they don't want to. I've never forced anyone to do anything, and if they don't want to help then that's fine. That just means it's going to take longer. Even if I did absolutely require other people's work (which I don't. Or you could say that I do, considering it's a collaborative project and everything is built on everyone else's work, but then so does everyone.) then that would also be fair because at least I'm still contributing the parts I can do on my own. The only difference between me and all the contributors that put up feature requests for things they can't hardcode and then just wait for someone to do it for them is that at least I'm making an effort to do it on my own, and it disgusts me that that somehow isn't enough for you.

The way the process works is people make PRs and if they're acceptable they get merged. Mine isn't acceptable yet so I'm working on it. This has no impact on you in any way, shape, or form.

@I-am-Erk
Copy link
Member

I-am-Erk commented Jun 24, 2019

Darktoes, the issue here is not that your pr isn't acceptable nor done yet, it's that you have said yourself it's presently impossible for you to test it, asked other contributors to do elementary level tests for you, and when people get understandably a little miffed about that you get extremely defensive. The rest of us have priorities too.

I don't have a compiler. There's a reason I've only submitted about five very trivial c++ related changes, three of which were just cp'd from a coder's instructions. I also still test my changes in any way I feasibly can. It's a volunteer project, sure, but if you break stuff then it's the other volunteers who are then obligated to pick up the slack for what you break.

You do good stuff for the most part and nobody wants to see you leave, but people have been banned for refusing to test their stuff in the past, for reasons I would have thought until today would be incredibly obvious.

@nexusmrsep
Copy link
Contributor

The way the process works is people make PRs and if they're acceptable they get merged. Mine isn't acceptable yet so I'm working on it. This has no impact on you in any way, shape, or form.

From the sound of it you are throwing rocks into a pond with a blindfold on, and asking everyone "Are the waves big enough, or should I throw a bigger rock?" instead of doing some preliminary judgement yourself by self-testing the intended change and saying "I think this size of rock is ok, waves are big enough, do you agree?".

Members of the team that deal with merging will do their judgement on the latter, not the former. But if you deliberately declare "I can't be bothered with testing. It's dev team job to judge it.", you are simply wrong. I can believe they could let it go, if it was an obvious one-liner, but in more significant changes its a must! No one will get back to you again and again with feedback just for you to make another change in the blind and asking "Test it again, perhaps this time I've hit the spot". There are dozens of PR to tend to then waste time on such unproductive proceedings.

@kevingranade
Copy link
Member

Putting this on hold until you can get your build environment sorted out and get the tests done.
I understand that you have this goal to overhaul archery balance, but you wanting to do it doesn't justify pushing effort onto other people.

Also to address some of your specific points:

It's fair to ask people for help when I know they could do something far more quickly than I could.

No, it's not. People have their own priorities, and you starting things, getting stuck, and then demanding help to complete things is not fair, it's manipulative. From the project's point of view this is a terribly inefficient way to get things done, so it cannot be allowed to persist.

In particular, coding in c++ without a very tight loop of edit -> compile -> fix problems -> repeat is an incredibly difficult task that people don't normally attempt without years of experience. This is the last thing you should be trying to do if you're just learning c++.

I wanted it to be JSON only changes and I thought it would only be JSON only changes, then it turned out some things weren't set up the way they needed to be and I needed to change them.

It doesn't matter why you changed game code, only that you did. The fact that you did means you need a build environment set up to test your changes, full stop.

The crux of the argument here seems to be "you're contributing but only doing XX% of the work when you should be doing 100%", but isn't XX% still infinitely better than 0%?

No, it's not, because you're giving the impression that you're doing more work without actually doing more work, and using it as leverage to get people to work on your thing instead of what they think is more important. If you open a PR, the expectation is that YOU do the work necessary to complete the PR

it hasn't been a serious issue until now.

It has in fact been a serious issue all along, and you have been told it's a problem a number of times.

In addition to the closure of the PR, consider this an official warning, you're causing significant disruption to the project by the way you have chosen to proceed with these changes, if you continue to proceed in this fashion, your contributions will no longer be welcome.

@darktoes
Copy link
Contributor Author

darktoes commented Jun 24, 2019

@kevingranade This is the first I've heard of anyone having feelings anywhere along these lines. No one has ever told me that this was any kind of issue beyond "you really should have a proper environment set up, it makes things faster/easier/etc". I honestly don't see why it's such a big issue to do things at my own pace and get help when others can do what I can't. I haven't "demanded" help on any occasion and I've never manipulated anyone.
I've worked on this on and off for a while now, I still don't understand the idea that no work is better than some work, and the whole idea speaks against the inclusivity written in the code of conduct.

Using the Discord search i can find two instances where I asked for environment help on this PR, one of which was prompted because it came up in conversation, the other was a single, polite message. If anyone can provide instances where I've "demanded" or "manipulated" then that would interest me, otherwise this just sounds like baseless accusations. "Significant disruption to the project" also sounds like an outright exaggerration, unless you're referring to this entire conversation, in which case I wasn't the one that started it.

I haven't had any issues with anyone who has not responded to or denied my requests for help, I've only ever gotten upset in this particular case where I've been accused of demanding and manipulating.

@kevingranade
Copy link
Member

No one has ever told me that this was any kind of issue beyond "you really should have a proper environment set up, it makes things faster/easier/etc".

That IS someone telling you that it's an issue, yes. The fact that you ignored it doesn't mean it didn't happen.

I told you why this is a problem and what you need to do about it, it's not up for discussion.

@darktoes
Copy link
Contributor Author

Being told it's faster or easier to do things with an environment isn't telling me that it's a problem with regards to the standard of the community. Thus far it hasn't been an issue and I've had a number of successful PRs without having an environment set up, and I've been blindsided by this entire issue. At no point was I told or have I felt that I would be insulted and attacked because I tried to develop something without an environment, which seems like a pretty substantial communication failure to me.

I'm perfectly fine with the decision to close this PR until I can get the tests succeeding and if you had just done/said that without any other criticism there wouldn't be an issue between us. I take issue with the fact you said I was demanding and manipulative. If you can provide a good example then fine, otherwise you should acknowledge that it was unwarranted.

@CleverRaven CleverRaven locked as resolved and limited conversation to collaborators Jun 25, 2019
@ZhilkinSerg ZhilkinSerg removed their assignment Jun 27, 2019
@kevingranade
Copy link
Member

This pull request has been mentioned on Cataclysm: Dark Days Ahead. There might be relevant details there:

https://discourse.cataclysmdda.org/t/archery-nerfs-and-drama/20683/1

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Game: Balance Balancing of (existing) in-game features. [JSON] Changes (can be) made in JSON Ranged Ranged (firearms, bows, crossbows, throwing), balance, tactics
Projects
None yet
Development

Successfully merging this pull request may close these issues.