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 attempt 3 #35971

Closed

Conversation

Saint-of-Grey
Copy link
Contributor

@Saint-of-Grey Saint-of-Grey commented Dec 9, 2019

Summary

SUMMARY: Balance "adjusts bows and crossbows"

Purpose of change

The part 3 of the archery rework darktoes was working on before his... incident. All merge conflicts fixed, I think.

Describe the solution

There have been a few changes to both archery.json and items.cpp I think I hammered out. Other than that, I left it mostly unchanged. I have attempted this before, and got it working, but I sat on it for a few months after sliding into a slump and it stopped working, so I'd like to get this one out this time in case that happens again.

Describe alternatives you've considered

Letting archery continue to suck. I really don't like that idea, though.

Testing

All of it seems to check out, loaded up a game and tried the various bows and arrows.

Additional context

The issue he was running into that prevented new world generation was fixed in this pull request.

I'd appceiate a more experienced pair of eyes on item.cpp to make sure I did that right, I was kinda just copying how the surrounding code looked to make this branches changes fit with the recent refactor.

EDIT: Darktoes has made his spreadsheet linked in his original PR publicly accessible, which makes it a lot easier to check the data.

@Saint-of-Grey
Copy link
Contributor Author

Saint-of-Grey commented Dec 9, 2019

Oh boy already failing the tests! Figured there'd be a few hitches.

Also I totally did not asytle this.

src/item.cpp Outdated Show resolved Hide resolved
@SirPendrak
Copy link
Contributor

First, great job reviving this. That said,
Second, some bows have changed their power and strenght reqirement, yet their loudness remains unchanged. Most noticeable for composite bow which changed from 5 to 10 str and from 5 dmg to 23 dmg.
Third thing, windlass shouldnt modify reload by 0.0. Value like 0.1 or even 0.05 would be better, its just that you still need to use your own strenght at certain ratio. If youre dying from pain, you shouldnt be able to use this on medieval arbalest.
Fourth, pistol crossbow and repeating crossbow should get their minimum str. requirement. I am not sure exactly how big, but probably something like 6 or 7 at their current power.

@ghost
Copy link

ghost commented Dec 9, 2019

What happened to darktoes?

@SirPendrak
Copy link
Contributor

If i remember corectly, he neded something small done in C++ and couldnt do it himself, then he told one of the contributors to do it for him. Not being rude in any way nor politely asking, just nutral sentence. Then a lot of people started writting how inappropriate it is to telling other people to do your job. Mind you that the actual person told to do this thing didnt reply. Then some rlly unnecasery drama started quickly, almost as big as one arround Firestorm or Klaus, and soon after Darktoes decided he doesnt want to contribute anymore.
Shame, because it all rose from such a small thing. It could just end with that person told to do thing for Darktoes saying:
a) Sry buddy, i dont have time doing sht for you
b) Sure, i can do it

@Saint-of-Grey
Copy link
Contributor Author

First, great job reviving this. That said,
Second, some bows have changed their power and strenght reqirement, yet their loudness remains unchanged. Most noticeable for composite bow which changed from 5 to 10 str and from 5 dmg to 23 dmg.
Third thing, windlass shouldnt modify reload by 0.0. Value like 0.1 or even 0.05 would be better, its just that you still need to use your own strenght at certain ratio. If youre dying from pain, you shouldnt be able to use this on medieval arbalest.
Fourth, pistol crossbow and repeating crossbow should get their minimum str. requirement. I am not sure exactly how big, but probably something like 6 or 7 at their current power.

Glad someone took the time to look though the content and give me some new thoughts! I'm still trying to make the time myself, finals are coming up and it's kinda sucking away my motivation to do anything else at the moment.

I was pondering if the content of the rework itself was done or not and if I just needed to fix any technical issues, or if I needed to do anything else related to the stats as well. I can now see I'm going to at least need to do a cursory glance over the other two parts darktoes committed to hammer out what his intent was overall and decide what needs to be tweaked moving forward.

@ghost
Copy link

ghost commented Dec 14, 2019

If i remember corectly, he neded something small done in C++ and couldnt do it himself, then he told one of the contributors to do it for him. Not being rude in any way nor politely asking, just nutral sentence. Then a lot of people started writting how inappropriate it is to telling other people to do your job. Mind you that the actual person told to do this thing didnt reply. Then some rlly unnecasery drama started quickly, almost as big as one arround Firestorm or Klaus, and soon after Darktoes decided he doesnt want to contribute anymore.
Shame, because it all rose from such a small thing. It could just end with that person told to do thing for Darktoes saying:
a) Sry buddy, i dont have time doing sht for you
b) Sure, i can do it

You are mis-remembering.
That was not their only request, they had been asking other people to do c++ work for them for their archery rework throughout the whole process.

That was just the final straw.

This is not the place to discuss this in detail, but it is also not good to put out bad information like that.

@Saint-of-Grey
Copy link
Contributor Author

Hey guys! Totally didn't forget about this. Looking up some of the underlying mechanics of crossbows and archery in general has given me a ton of inspiration and ideas, and I can tell you right now this isn't going to be done in time for 0.E stable.

Right now, two glaring issues I see compared to reality are:
Crossbows, with the right reloading mechanisms, are actually really easy to reload. They also take a lot longer to reload than what's currently in game, and most reload mechanisms are removed before firing the weapon.
Firing bows is actually something that's really tricky to do in close quarters, especially if you're using a traditional bow. And it probably should take stamina.

@SirPendrak
Copy link
Contributor

Not everything needs to be done in a single PR

@Saint-of-Grey
Copy link
Contributor Author

Good point. I can focus this one on crossbow reloading just for the purpose of getting it done, then work on an archery part four.

While it would be realistic to have the player install a crossbow mod, reload the crossbow, then uninstall the mod before firing, that would also be supremely annoying from a gameplay perspective. I just don't know any other way of fitzing with it, save having it be an item you can use on your crossbow.

@esotericist
Copy link
Contributor

So, have you somehow managed to get your hands on the research/goals that darktoes supposedly had, but never successfully supplied us?

Because the main reason nobody fixed up darktoes' PR before was because we had no notion of the actual value of it at that point.

What is the rationale for the accuracy and damage of the weapons? Or any other change here?

Because this isn't likely to go anywhere without an actual rationale other than "I guess it works"

@Saint-of-Grey
Copy link
Contributor Author

Darktoes was kind enough to make his data publicly accessible, I'm pouring over it now.

@Saint-of-Grey
Copy link
Contributor Author

...okay, looks like gun mods can't actually draw power. Not without some CPP changes.

@Saint-of-Grey
Copy link
Contributor Author

Excellent news! I figured out where all the data comes from, and it (mostly) checks out. Probably only needs a few tweaks, if any (depending on if you think the self bow should continue to be a thing).

Only hitch I have is the electric crossbow reloader, I might just yoink it out and make it a separate PR just to get all this done with.

@Zireael07
Copy link
Contributor

Can you post darktoes's data here so that the maintainers have a reference?

@Saint-of-Grey
Copy link
Contributor Author

Other than the spreadsheet, he used the data presented in #26183 to figure out the arrow stats. (Which I admittedly still need to give a more thorough reading.) From a cursory look, it all checks out, but I'm not about to trust my judgement on this 100% at 3am.

@Saint-of-Grey
Copy link
Contributor Author

Saint-of-Grey commented Jan 14, 2020

Alright, probably should of made the updated tests a separate PR. Gimme a moment to fix this...

Nothing to see here, definitely didn't get overeager about committing or anything....
But I think I got everything that could go in a single pull request done. Everything else I can think of would warrant it's own PR. Will mark as ready for review once I figure out how to hammer the tests in.

@Saint-of-Grey Saint-of-Grey marked this pull request as ready for review January 14, 2020 23:44
@Saint-of-Grey Saint-of-Grey changed the title [WIP] Archery Redux Part 3 attempt 3 Archery Redux Part 3 attempt 3 Jan 14, 2020
@Saint-of-Grey
Copy link
Contributor Author

Tests are included in #37060 so that CI will continue to function on this PR.

@Saint-of-Grey
Copy link
Contributor Author

Alrighty, did a quick reload adjustment, since I remembered that darktoes told me the times were still relative to 6 second turns. Crossbows got a flat x6 increase, and regular bows only got x3.

Since most practiced archers actually draw and aim at the same time, I figured only multiplying by x3 would be a good way of temporarily fixing it until I can do some code work on the matter. If you take the time needed to line up the shot, it generally works out to six seconds per shot.

Reloading bows is currently represented by aiming, then you draw the bow and shoot, which is... not realistic at all. Drawing a bow takes your whole upper body, and the bow is not going to stay in place while you do this. A better way of simulating it would be having a delay before entering the aim screen (representing knocking the arrow then drawing), then while hanging out in the aim screen it would slowly take stamina as you hold the draw and line up the shot.

@Saint-of-Grey
Copy link
Contributor Author

A discussion on the discord has shown that there's a lot of things in this that... don't hold up under scrutiny. And I can't say I'm TOO attached to all of this, since it's not my data, and if I did it from scratch I would do it very differently.

Connections to reality aside, right now archery is in a very poor place balance wise, and I would suggest the contents of this PR as a form of triage until it's improved. If that's not a priority, then I can just close it while I take a closer look at the game's bow and crossbow loadout (This would likely have me scrapping the current set of bows and crossbows completely, and doing something completely different).

@Saint-of-Grey
Copy link
Contributor Author

Saint-of-Grey commented Jan 19, 2020

Merge conflicts resolved with the accuracy adjustments my attempts at making tests brought to light. If this passes I'm going to call this done.

Actually, I'll call it done even if it doesn't pass. I'M done working on it.

EDIT: No idea why it's failing tests, but looks like it's not my fault.

@Saint-of-Grey Saint-of-Grey mentioned this pull request Jan 19, 2020
4 tasks
@kevingranade kevingranade mentioned this pull request Jan 20, 2020
6 tasks
@ZhilkinSerg
Copy link
Contributor

I guess you can close current PR, as it is being obsoleted by #37241.

@ZhilkinSerg ZhilkinSerg added [C++] Changes (can be) made in C++. Previously named `Code` [JSON] Changes (can be) made in JSON Game: Balance Balancing of (existing) in-game features. Ranged Ranged (firearms, bows, crossbows, throwing), balance, tactics Code: Tests Measurement, self-control, statistics, balancing. labels Jan 21, 2020
@Saint-of-Grey
Copy link
Contributor Author

I suppose so, at first I thought it was an either-or situation, but as I see it progressing, it looks like the other PR is tackling some of the underlying issues that my source material did not. I've managed to exhaust myself on this, and if someone else is willing to tackle these underlying issues before me, I see no reason to keep this open.

@Saint-of-Grey
Copy link
Contributor Author

I might just do another PR with the item.cpp and item.h changes after 0.E happens, those seem handy to have for later.

@ghost ghost mentioned this pull request Mar 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[C++] Changes (can be) made in C++. Previously named `Code` Code: Tests Measurement, self-control, statistics, balancing. 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.

8 participants