Game logic question: koth variant

Chesh

L1: Registered
Aug 16, 2021
9
0
I am working on a game type and wanted some opinions on its viability in game as well as one technical issue.
It is a variant of king of the hill, a king of two hills (or more), if you will.
The rules:
-Both (two) control points must be captured for the koth timer to begin counting down
-The team whose timer runs down completely and who still hold both control points wins
-The first point must be captured before the second one can be captured
-The first point can be recaptured by the opposing team which will pause the koth timer if the second point is owned

I have the essential game logic working but wanted to know what the community thinks of this idea. Does it sound fun or interesting?

One issue I have found in testing this: the game can go into perpetual overtime if a koth timer runs down and the first point is captured (blu team owns one point and red team owns the other). Would this be annoying or would the prospect of winning overcome any stalemate situation? Or would the nature of the map it is incorporated into be best designed to discourage teams from playing passively?

I would like to have a time limit on the overtime and force a stalemate when it runs out, but I've yet to find a way to do this. Help is much appreciated.
 

Maid

Bimbo Succubus Lesbian
aa
Sep 29, 2018
246
553
sounds like an interesting spin on the koth/domination formula - i like the idea that both must be held to have the timer count down, however i feel like that could lead to stalemates if not done carefully, so you'd probably want to make both points able to be captured quickly and quite unsafe to defend, in order to facilitate lots of back n forth - look at koth_bagel for an example of this done very well.
i feel like the requirement that A be captured before B doesn't really make that much sense, however? might just overcomplicate a simple concept. if the points are functionally identical to one another, the gamemode will be much easier to quickly wrap your head around.

ideally, you would achieve a time limit on overtime through using a seperate team_round_timer entity (set to start paused, not show on hud, count downwards and, OnFinished, force a stalemate), and starting it ticking down once overtime begins.

however, sending an output on koth overtime is quite an annoying thing to do which isnt supported by default - the best way i can think of doing it is to manually add an output to zz_*_koth_timer during runtime, using the AddOutput input. (zz_red_koth_timer and zz_blue_koth_timer are team_round_timer entities created by tf_logic_koth on map load, that don't exist in the editor, which are used for the koth timers)

You could use the OnFinished output but that will only send once overtime is done, so using the On1SecRemain output with a 1 second delay will send the output while overtime is still going on.

so here you go; in a logic_auto entity, where 'overtime_timer' is the name of your team_round_timer (ideally send this after a short delay, to allow the timer entities to be created first):
[ output ; target ; input ; parameters ]
OnMapSpawn ; zz_*_koth_timer ; AddOutput ; On1SecRemain overtime_timer:Resume::1:1

that should hopefully work, however documentation on this is limited, so you may need to do some fiddling around. good luck with your map!

if you want to display this overtime timer, you would however need to make use of some other entity system, such as using a synced up math_counter and game_text.

edit: added some colour formatting to easily distinct entity types, entity names, inputs/outputs and text fields
 
Last edited: