I'm working on a space dogfighting sim and right now heat is the primary player resource that needs management during gameplay. Weapons fire generates heat, and you can't fire if you've exceeded the limit. This has some interesting interactions; for instance, ships with larger weapon arrays aren't necessarily more powerful than ones with smaller weapon compliments, given the same ability to dissipate heat. Instead, the ship with more weapons is just capable of doing more burst damage (and thereby generating more heat). It also plays nicely with my damage model, in which damaging the radiators of a ship allows you to make the target run hotter and have to make more decisions about when and how to fire their weapons.
However, it's got some problems. The big one is that it just sucks to not be able to fire because you've overheated, and squeezing small bursts out of an overheated ship as you repeatedly dip out of the overheating threshold is frustrating. It also feels inelegant; heat doesn't matter until you've hit your limit, in which case you've hit a hard cap.
Looking at the Mechwarrior series, this is handled in their design by a couple of factors:
- Harsh consequences for hitting the overheat limit. You'll shutdown until you've cooled off, which can be a death sentence as you sit there and take a beating. Push it even further by overriding the shutdown, and you can blow up your mech. You're very afraid of ever hitting your heat limit, so there's more of a psychological cost for running hot.
- Actual gameplay has plenty of opportunities to break contact (block line of sight with terrain) and cool off; instead of being in constant contact, the pacing in Mechwarrior tends to be pretty spikey.
I'm not fond of shutdown, because losing control of your vessel isn't much fun and it's a pretty binary thing. I also have very limited opportunities for players to break contact due to high speeds and open environments, though this is perhaps a separate problem that needs to be addressed.
I've been toying with other ideas for making the heat mechanic more interesting without relying on binary caps to limit the player, but haven't settled on anything. Some ideas:
- Defensive shields could be added that scale with heat, either being themselves expendable resources that recharge slower if the ship is hot, or maybe just making armour resist damage less if it's too hot. This way, a ship being reckless with heat generation is more vulnerable to attack.
- Build in a complicated sensor model in which running hot makes you very visible
- Do damage or permanently soften armour if you exceed safe heat limits
- Reduce performance characteristics like maneuverability as heat rises. Possibly pretty frustrating.
- Create weapons or environmental hazards that are more effective against hot ships, like heat seeking missiles
- Scale weapon effectiveness based on heat, reducing damage or accuracy as the ship gets hotter
Anyone dealt with a similar issue, or know any good examples of rechargeable resource systems (mana, energy, heat, etc) that have been made into interesting constraints without just resorting to hard limitations and the associated opportunity cost?