Hi all, I’ve been thinking about this issue for a while but haven’t really been able to think of anything solid.
So if you don’t know Cosmos (linked in my signature) it’s essentially like asteroids but it’s far more fast paced for one thing, and there are a lot of situations that require a quick burst of bullets to stop asteroids from hitting you.
Now the issue comes when we consider macros. Although the movement and quick tactical thinking are important, the quicker you can shoot, the easier, and if you make a macro to have it shoot so fast you have a kind of death beam, you’re more or less invincible.
Although macros are an issue, I’m not sure how to feel about this if the player can press that fast; in that case is it good or bad?
I thought of a few things but I don’t particularly like any of the solutions.
Cool down:
You must wait x seconds before shooting a bullet to shoot another one. Makes it impossible to shoot multiple bullets in rapid succession, and a macro shooting at max fire rate would still likely be unfairly helpful; if it wasn’t then real players would be limited with such a cool down.
Overheating System:
This one would be a bit trickier to get right but I feel like it’s better than the last one. Say you can have a maximum heat of y, and y reduces by x every second. So your heat dissipates over time. Whenever you shoot, z heat is added to your heat. Essentially you can shoot at moderate rate continuously, or short rapid bursts but spaced out to give time to cool down. This is the best I can think of for making the game fairer, however it quite fundamentally changes how you play the game, and I’m not sure if that’s for the good or bad. Stops it being so chaotic arcade to a slightly more tactical one.
What are your thoughts on this? Not just cosmos, but the topic in general?
(if anyone has a better idea or thinks my ideas are really bad let me know)
A real weapon will have a limit on number of bullets it can shoot per second.
You aren’t going to be able to shoot a hundred bullets per second from a pistol. You can absolutely do that in a computer game without a cooldown.
Overheating makes sense for a more tactical games where player needs to think, fine-tune and balance systems, for example in spacesims, mechwarrior kind of games, etc.
Basically, as much as I dislike the idea of “DPS”, a weapon should be able to deal certain amount of damage per second, and you should know that amount. Without a cool down, potential dps of a weapon is “infinity points”. And that is almost certainly not a good idea.
P.S. I think in a first stalker game it was possible to shoot pistol at machinegun speed by pressing buttons really quick. Don’t do that. Cooldown is probably the first thing you’ll want to implement in any shooting game.
Hmm I think I see your point, especially as a general rule, I’m just worried it will ruin the flow of the game or make unfair situations where you can’t shoot fast enough, but that’s particular to my project so I’ll just have to find a way around it.
Tweaking your design for correct flow and balance are fairly routine tasks for most games, but you can’t fine-tune those until your core mechanics are nailed down, and that’s what a limited rate of fire is all about. (And I’d suggest using the term rate-of-fire since cooldown is normally another way to describe what you’re calling overheat.)
Adding to the comments from @neginfinity : I see ROF as a core mechanic; you’re defining absolute limitations on what the player can do. Those limits always apply no matter what else is happening in the scene. Overheat is more of a balance (fairness) consideration. The player has some input into how it affects them, but it’s less about preventing abuse or cheating and more about adding an extra dimension to whatever you’re simulating.
They aren’t mutually exclusive, and overheat is a great concept when the player has multiple weapon choices: little or no overheat on the slower or less-powerful weapons, scaling up as the ROF increases and/or damage increases.
Funny how many design decisions we can take for granted as players, but when you start building games all these seemingly minor issues crop up…
Yeah this all makes sense, thanks for the insight.
The either idea I had was a mix of the two, where cooldown is a function of heat, but it would probably come out awful. I’ll just need to find a cool down value that works
I still separate the two. An absolute rate of fire limitation, but slowing the rate of fire as the weapon heats up sounds like a reasonable option for overheating, too, especially if the game has multiple weapon options. It’s all about getting the player to choose between the tradeoffs (with multiple weapons).
Personally, I don’t like it when games make you mash on a button quickly in order to be effective. I would give it a max rate of fire, and let the player automatically shoot at that max rate if they hold down the mouse button. The max rate of fire doesn’t have to be slow, either. You can make it as fast or as slow as you want. Whatever works best for your game.
This used to be a thing in the old days. Any old joysticks came with ‘auto fire’ buttons, which basically spammed the fire key far faster then a human player could.
My general preferred solution to the OP is to implement a fixed maximum rate of fire. If the fire button is held down or spammed, the fire rate hits it’s maximum. Please be nice to your players hardware and encourage buttons to be held rather then spammed.
Implementing overheating, cooldowns and reloading work to break the flow of the game up. They mean the player should actively be managing when they shoot, rather then always firing at the maximum rate.
Another alternative option is to embrace the macros. Set up an in game system for building the macro. Encourage players to mess around with it to create the most powerful combos available.
Hmm i see your point about macros but it has pros and cons in my opinion; in some games like fighting games, executing the combo itself could be considered half the challenge, whereas in others the button sequence is just a tedium. Good points though.
I have always considered it productive to look at whatever players are scripting or automating as meaning “this part of your game is not fun.”
Think about it. They don’t like doing it, so they make a machine to do it for them. That’s literally the opposite of something being fun.
Now, there are cases where “this is not supposed to be fun” is the proper response, and you should actively force the player not to have any fun. But I can generally think of some way to replace the not-fun mechanic with something fun, which generally seems like the better idea to me.
Well, isn’t that fundamentally saying “cheating is more fun than getting better?”
A lot of this is because the average gamer is converging on the average person, who is married and has kids and a day job, so anything that takes four hours of trial and error to get past is just not suitable.
Cheating in multiplayer is worth addressing. Nothing will crush a multiplayer game faster then having a significant part of the player base cheating.
It’s also once you get into multiplayer territory that some people tend to enjoy griefing. Which is getting joy purely from others expense.
But this can really be dealt with via good design and engineering, as discussed in earlier posts. You really don’t want a players fire rate to be tied to the mechanical rate of their space bar.
And I agree. I wasn’t arguing with the fact that having auto-fire being a good idea or not, I just disagreed with the notion that if people would rather cheat than play it properly that they should be allowed to do so.