CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.65k stars 4.18k forks source link

Round Chambering for Guns #15513

Closed Gstayton closed 8 years ago

Gstayton commented 8 years ago

Proposal:

Introduce a chambering mechanic to existing firearms, allowing the user to chamber a single round into the firearm without a magazine.

What this proposal would add:

Besides allowing guns to be made usable even when found without a magazine (although not entirely viable without one in the long term), it would help accurately model another aspect of firearms currently missing from our existing model, in tandem with magazines. Additionally, it would open the door to another possible aspect of firearm malfunctions. With this it would also be possible to add in an extra time cost associated with the manual chambering (or charging) of a firearm for the first shot.

Possible method of implementation:

It should be possible to make some use of existing mechanics for both integral magazines as well as the spare magazines weapon mods, essentially giving firearms a single round of internal magazine storage that would be drawn from for firing, and would in turn draw from an inserted magazine. Display could be managed by using the spare magazine style of 1+29, or [chamber]+[magazine].

Personal thoughts:

I was originally not a huge fan of the idea, but after spending a fair bit of time talking about it with some gun enthusiasts it seems like about the right course of action. My outlined implementation is obviously not perfect, nor do I feel it is the only way to achieve this, but ultimately I feel that this is something we should introduce while @mugling already has everyone thinking about exactly how a gun works.

chaosvolt commented 8 years ago

See issue: https://github.com/CleverRaven/Cataclysm-DDA/issues/15172

However, I like that you outlined some ideas in a fairly comprehensive manner, it's worth reposting in that issue as well.

kevingranade commented 8 years ago

Keep in mind this requires identifying and annotating guns that can chamber a round without a magazine, many automatic actions have no sensible way of doing this. When exactly would the round be transferred from the magazine to the chamber? With most automatic actions I think the first round would be chambered as soon as the magazine is loaded in the gun, so if for example you extract the magazine the round will remain in the chamber.

I'm not at all convinced this would meaningfully improve gun handling, the distinctions between the round being in the magazine and in the chamber are few and far between, and this might complicate the gun ui quite a bit.

Gstayton commented 8 years ago

@kevingranade The only actual limiting factor is a magazine disconnect, which in a lot of cases is fairly simple to modify out of a gun. It's up in the air as to whether or not it would be worth the time to worry about this facet of gun design, but it's there. One could safely assume no magazine disconnect, and allow JSON definitions of guns in order to state the gun has such a feature, but if that were the case we'd also need to be able to modify the gun in game...

When the round is moved from the magazine to the chamber is not simply on magazine insertion, (whether or not we decide the survivor charges the gun on reload is a different matter), every gun requires a charging action to chamber the round. So inserting the magazine, and then taking it out, would result in no net change to the magazine. (Again as to whether or not we decide the survivor does this automatically is kinda up for grabs, I'd lean towards yes).

Ultimately, my intention with this is hardly to introduce more work to the survivor (though the parts are there should we wish to expand) so much as find a way to internally track where rounds are in the firearm to allow people to insert a single round into the gun when they lack a magazine. Displaying the chambered round is about the only real change to the UI that I'd suggest, and even that I've not settled on, and was more just looking to get people talking about the how, and not just the do of this mechanic.

chaosvolt commented 8 years ago

Keep in mind this requires identifying and annotating guns that can chamber a round without a magazine, many automatic actions have no sensible way of doing this.

This would add to the list of small details that future contributors would have to be aware of, yes. The only major benefit I can see to this would be as a workaround to a lack of magazines, as has been frequently suggested by others.

Another possible use would be the tactic of chambering a different type of ammo than what the magazine (whether internal or detachable) already uses. This is used with, for example, pump-action shotguns to go from a normal load of buckshot to a slug that is suddenly needed. I'm not sure how common this tactic is though.

Even then, these are just theoretical benefits. The question is whether the complexity of code and UI is worth it, and I personally have no opinion to offer regarding that question.

Gstayton commented 8 years ago

@chaosvolt There are very few guns that will be angry with loading a round into a gun without a magazine. This is something that I, and a group of gun enthusiasts, have come to a conclusion that it would actually be fairly safe to assume that nearly every gun would be capable of.

chaosvolt commented 8 years ago

Maybe. Though exceptions would be primarily made for open-bolt firearms.

Gstayton commented 8 years ago

That is the only class of weapon that may be angry, but it ... should work? I wouldn't do it IRL just because it wouldn't feel right... But you should be able to without any serious complications.

chaosvolt commented 8 years ago

Given by nature, closing the bolt of an open-bolt firearm is meant to chamber and subsequently fire a round...if there was a way to cock the hammer even with the bolt closed, it might work. But that would likely only be for the rare examples of guns that are meant to fire in either closed or bolt bolt, presumably different mechanisms in a selective-fire weapon.

Not sure how many firearms would work in that way.

Gstayton commented 8 years ago

From what I'm gathering, it would seem the only problem with open-bolt firearms is the round falling out of the chamber with the bolt open. Other than that, pulling the trigger with the round in location would result in the gun firing, as per normal operations.

chaosvolt commented 8 years ago

So it might be acceptible, if a bit awkward. Still, as Kevin said, it might complicate the UI. Though from a display standpoint, it could be as simple as, say, 31/30 or 30+1/30 (allowing for a partially-loaded magazine to be displayed without issue).

Plus again, whether the assortment of small benefits is worth the trouble. It might be depending on how complex it is to code, and I'm the last person you should be asking that question to. XP

kevingranade commented 8 years ago

From a balance and gameplay point of view, I'm perfectly happy leaving guns with no magazine as useless, they're practically useless anyway, so it's not much of a stretch.

From a realism point of view, you're going to need something more definite and reliable than "I and a number of gun enthusiasts think this is reasonable", especially if you're making a blanket statement about all firearms.

I actually find the ability to load a round in the chamber and then top off the magazine it was extracted from to be a much more compelling use case. Especially if you only have one magazine for a gun, it's a lot bigger deal than turning a full size gun into a single shot holdout pistol.

mugling commented 8 years ago

From a balance and gameplay point of view, I'm perfectly happy leaving guns with no magazine as useless, they're practically useless anyway, so it's not much of a stretch.

Guns should be useless without magazines. They are however presently too rare but I've begun to address this in recent PR's.

Plus again, whether the assortment of small benefits is worth the trouble. It might be depending on how complex it is to code

A lot of complexity for little tangible benefit. I'm still busy closing bugs on the reloading and charges code and I don't want to start adding any new features until that's done.

and this might complicate the gun ui quite a bit.

Another major concern

chaosvolt commented 8 years ago

Right. I personally think it's plausible, but again it's more hassle than needed at the moment.

Regarding the balance and gameplay point of view, though? It depends on what your overall objective is. It seems that among those who support Mugling's magazine changes, there are two different reactions. Those that see it primarily as a balancing factor, and those that see it primarily as fleshing out the game mechanics.

Adding a round chambering system is...well, as has already been stated, there are higher-priority things to worry about anyway. As far as I can tell, being able to chamber a round would make a gun with no magazine more useful, but it would partially mitigate the use of magazines as a balancing factor, via making the magazine the key to making a gun MORE useful, rather than making a gun useful in the first place.

It's a good thing for those that are more interested in the gun system being fleshed out, but I can see it getting a mixed reaction among those more focused on how the changes affect game balance.

tl;dr: Idea has both good points and bad points to it, but it can always wait until other things have been sorted out.

John-Candlebury commented 8 years ago

There's at least a single situation in which the being unable to single load could feel weird and unrealistic:

-The non integral magazine bolt-action sniper rifles ( limited for now to the m2010esr and m1017) without a magazine. Especially since it is presumably rather straightforward to single load those, and because since they are sniper rifles, you dont need/can't fire them in quick succession.

chaosvolt commented 8 years ago

Hmm, might be a good starting place if the idea gets implemented. What about the Browning BLR? Last I checked that hasn't been magazined-ified yet anyway. Already at one point had to remove RELOAD_ONE from it due to it being mistaken for a tube-loader.

SeanMirrsen commented 8 years ago

I think the primary use case is something like single-shot DIY guns. Those could breach (breech?) the mechanic in principle.

As far as UI, I think you are all overestimating the complications and hassle. Just treat all magazine-fed guns as still having a 1-round internal magazine with single load, and a properly tuned load time. On reloading, the player will be given an option to reload with both magazines as well as any loose ammo he has on hand, possibly split into sections or color-coded to show which choice results in what. Choosing loose ammo will eject the magazine (choosing anything will eject the magazine, really), and the character will spent time to load a single round into the gun's internal magazine, as per the old reload code. Simple and effective. I think there's a four-letter acronym to that effect. :P

kevingranade commented 8 years ago

Single shot diy guns are handled by having an internal magazine with an ammo capacity of 1, so that's not a use case for this. You put a full magazine in a gun with no round in the chamber, when is the first round chambered? Is it when the magazine is loaded? Is it when the first shot is fired? Is it part of a separate chambering action? Fire a round from a loaded gun, same question.

SeanMirrsen commented 8 years ago

If you really need to simulate round chambering, then simple. Round gets chambered as part of both the reload action, and the fire action, assuming the "chamber" magazine is empty. Firing always uses the round in the chamber first, assuming the gun has/needs one (i.e. revolvers don't), then pulls a round from the external mag into the internal one. If you want to have an extra round in your gun you can single-load the chamber first, or you load the magazine (round chambers, player gets message to that effect), unload magazine, add round to magazine, load magazine back (round already chambered) if you want to do it the more realistic way.

Edge case is pump-action shotguns and bolt-action rifles (some of them at least), which have round chambering as a sort of a separate action. There is no simple way of accurately representing the ability to hotload a round through the open cover without feeding another round from the magazine. But, if the feature would primarily be used for either having an additional round or using a gun without its magazine, I think the mechanic I outlined above would work.

mugling commented 8 years ago

Edge case

This. There will be many such cases each of which will need special handling in code. That's a lot of extra complexity.

SeanMirrsen commented 8 years ago

This. There will be many such cases each of which will need special handling in code.

Or, not. Besides the "many" cases being pretty much exactly one mechanical hiccup of manual bolt operation (pump-action, bolt-action, lever-action, all have the same thing in common), these cases can quite safely be omitted, if not forever then at least for the time being.

Think of it this way - the current system allows for none of the realistic firearm mechanics. The principle I proposed covers some of those mechanics, arguably the more useful ones to a survivor. Not being able to cover all the fringe quirks possessed by various historical firearms, is not a very good reason not to consider the proposed change. Once the system is in place, adding onto it would be a simpler matter, and we could evaluate the difficulty and complexity versus probable gain on a feature-per-feature basis from then on.

kevingranade commented 8 years ago

I'm still waiting on a use case for this that makes it worth the effort.

SeanMirrsen commented 8 years ago

The two primary use cases that I see are:

1) having a gun and ammo but no loaded magazines, either through having spent them or having none in the first place. An alternative to the former is being able to partially load magazines to save time, if you fancy doing more work on that front.

2) having an extra round in the gun prior to going out into a zombie-infested area, which has rather obvious benefits. Especially important if a gun is freshly found with only one magazine available.

Anything else, apart from not being covered by the comparatively simple mechanical solution I've outlined, would be a collection of questionably useful edge cases, like being able to single-load a round into a manually-operated gun while the magazine is present and not empty, for the purposes of either slowly single-firing rounds and conserving ammo in the magazine, or using some different kind of round of the same caliber for some special purpose mid-clip (i.e. a slug for a shotgun, or an incendiary or AP round for a rifle).

mugling commented 8 years ago

having a gun and ammo but no loaded magazines, either through having spent them or having none in the first place

Guns being unusable without a loaded magazine is intentional although magazine rarity is still being worked upon. Running out of loaded magazines should force a change of tactics not a crude workaround.

An alternative to the former is being able to partially load magazines to save time

Definitely intending to support this but I want to work on improvements to the reloading UI initially.

having an extra round in the gun prior to going out into a zombie-infested area, which has rather obvious benefits

Maybe but it's a lot of extra complexity. The entire reloading and firing code will need updating as pretty much every check for ammo_remaining() will need to consider for example ammo_chamber(). This doesn't seem worth the effort (and the bugs) for an extra ~10% capacity in some rarer circumstances. Of course there is the unsolved UI concern...

mugling commented 8 years ago

I'm still waiting on a use case for this that makes it worth the effort.

I'm closing this in consensus with the above. Feel free to reopen the issue if you have a suggestion as to a well defined UI and a use case that is likely to have broad appeal to many/most players.