Jump to content

[CS:GO] King of the Hill gamemode development/suggestions thread


Recommended Posts

Hi everyone,


As you may know, I've been developing a King of the Hill gamemode as seen in TF2 and many other games for CS:GO. Last Sunday we've had a quick playtest on the Mapcore server to see if the mode worked at all or not.


Even though (with some map hassle) the mode worked fine, it was quite obvious I still need to improve it in several areas. That's what I could use some feedback and suggestions for.


The current setup:

- One control point

- 10 seconds per team needed to capture a point

- Capture progress will decay per second if the other team is at the point whilst none of the teammembers that were making capture progress are present on the point

- Once a team has taken control of the point, their timer will start to count down

- First team to reach 00:00 will win the round.

- An env_instructor_hint is abused to display the control point timers and color of the team that is currently in control.


Some things I already have set up but had disabled during the playtest:

- A multiplier to speed up capture/decay progress when multiple people from the same team are on the point

- Using team score to communicate timer progress


Things that could use improvements:

- An extra incentive to capture or defend the point other than possibly winning the match

- Yesterday was set-up using buyzones instead of deathmatch-like buying systems; the only way to gain money was by killing people, hence nobody went for the control point and it turned out to be a massive handgun fight. Depending on the economy settings, it could be an idea that you get cash for capturing a point, cash over time as the timer decreases etc.

- Capture progress status: Currently I spam the chat with a progress indicator per team which looks like "DEBUG: Point capture progress T: 3/10" etc. A better way of communicating to players that they are making capture progress is needed, but how?

- Level design needs to be aimed at CS:GO and the gamemode instead of using maps from other games/gamemodes.


Any feedback is welcome feedback! Feel free to come up with map designs for another playtest round as well, I'll start sharing the script with serious mapmakers if the mode is solid enough, and eventually release it all together to the public.



Link to comment
Share on other sites

I couldn't attend to second map, but the first one wasn't good for this mode. I feel that capture point is like both teams trying to take site and then retake or defend it. Point could be made like normal bombsite and it could have max 3 routes to get by each team. Flanking should be slightly possible, but it should be incouraged to just hold the site. Site also need choke points, so it's not that messy fighting.

Link to comment
Share on other sites

I quite enjoyed it, but it was a lot of killing, but it turned into a shooty pistol fest because when you're getting $150 a kill and no round end bonuses, you have to kill people to do anything.


The second map, the TF2 watermill map was far too large, proportions were out massively, but the money was so much better, some people still struggled, but at $900 a kill and $5000(?) for a knife kill the money was faaaaaaaaaaaaaar better. I even stretched to armour a few times in a row! Additionally the working health kits offered some relief to the onslaught.


The mode might be easier to test with a better map.


Maybe commission a couple of small grey boxed maps for testing?


EDIT: maybe enable "sv_infinite_ammo 1" to force time consuming reloading, but allow for weapons to be reused.


Is there a way to clear up the entities as well? I know a lot of people were complaining about lag.

Edited by jackophant
Link to comment
Share on other sites

Thanks for the feedback!


I also lagged on that other defusal map that was tested, so I don't think the piles of weapons on the first koth_ map we tested was an issue tbh.


Infinite ammo is one of the settings that'll have to be played around with, next to healthkits, 'armor kits', and/or spawning with or without armor in the first place.


The biggest issue at the moment for me is the gamemode feedback such as the capture progress, since that's an issue that isn't simply solved by playtesting and messing around with a bunch of settings/variables  :) Feel free to make some blockouts ofcourse ;-)

Edited by Spherix
Link to comment
Share on other sites

So I wanted to make you a graybox ;)


Feel free to use, but let the name be ;D


It looks like a masterpiece of optimisation :P


ALSO! I had an idea about the armour situation... What about spawning people with kevlar only? That way aimpunch is reduced and people aren't dropping like flies, but weaker weapons like pistols and SMGs still hold weight with headshots. That way people only have to fork out $350 on spawn for the helmet part?


With regards to the capture aspect, I don't know how easy it is to make a visual for the HUD (I imagine this would have been the first port of call...) but could you make it visible in the game? Use some logic and tower of 10 lights for instance?


If CT are in control all 10 lights are blue, as Ts start to capture, red lights creep up from the bottom and if they die during capture the lights decay back down the pole accordingly. You could have a few of them dotted around the map for reference. I realise then that this relies on the mapper getting across the gamemode, unless you were to create a freely distributable prefab?

Link to comment
Share on other sites

Pretty much anything in-game(map) is possible, but it's hard to communicate all over the map. That's why -ideally- you would want to use the HUD. Sadly, options there are very limited. If I were aware that the opposite team was trying to capture the point while I was defending it without being able to see the actual point, I'd act on it. 


I can't see how it'd turn out pretty if such an element was simply placed all over the map either :x. As for your example with 10 lights: Those scenarios work if the capture time is a set thing; In TF2 however nearly every map has a different value for capturing/decay; making it hard to make the visuals represent the actual value (say it'd be 10 on 1 map, and 17 on another etc.)


Not sure if you can spawn helmet only? There's a value for giving free armor, but I'm not sure atm if that's helmet as well, something to try out I guess.


@The greybox, cheers! I'll grab it tonight and see how it plays with bots, if it feels alright we may as well use that in a next playtest session :)

Edited by Spherix
Link to comment
Share on other sites

Not sure if you can spawn helmet only? There's a value for giving free armor, but I'm not sure atm if that's helmet as well, something to try out I guess.


No no no, I said Kevlar only. That's the vest. Same thing as typing:

give item_kevlar

 in console.


This removes aimpunch and stops SMGs being so OP (so people still want to save for the big guns), they just have to buy the helmet when they spawn if they want, otherwise they still run the risk of being one shot in the face with a pistol after buying a valuable weapon.


Maybe rather than healthkits around the map which can cause people to camp a certain area, have a low healing rate on the capture point itself? Maybe only while they are stationary?


I see your point with the lights, well it could be nice as something visual on the point itself if a mapper feels that way inclined.

Link to comment
Share on other sites

Do you use vscript? There's probably a way to add a custom HUD with it. Otherwise, I was able to add a entity-based bar on the hud with an env_screenoverlay.

You should definitely use vscript if that's not the case already, I heard it's the way to go when you're making new gamemodes.


You can show the capture progress inside the game world, by adding a huge spotlight oriented toward the sky changing color, or by adding animated supplies drop in the 3D skybox, or by erecting a flag ala Battlefield.


As for the gamemode itself, it's limited by several factors (how do you acquire money, ammos, health, do you respawn infinitely, do dropped weapons disappear, etc).


The way I see it, the buyzones should be at spawn. The spawn is protected from spawn-camping, ala TF2. Players spawn with base equipment (a pistol and kevlar/no kevlar, depending on settings). Weapons drops but disappear after a few seconds. Everyone gain money each 5 seconds, but the team controlling the point gain more money. You get money by capturing the point/killing ennemies. There's a buyzone near the point, accessible only by the controlling team, so you can restock on ammos/armor while defending. The point itself is designed to provide a strategic advantage to the controlling team, either by opening doors so that respawning players may access the point faster, or/and by simply adding windows/covers looking over the ennemy spawn main entrance (a flank route should be added if that's the case).


Money is limited to 10000/16000 and you can't heal while defending the point, so it balance things a bit.

Otherwise you can change the spawn time of players, or change spawn positions, depending on whether or not they control the point.

Edited by Klems
Link to comment
Share on other sites

I really like Halos king of the hill where it rotates around the level and makes use of near all of the map.

This would be cool because you could apply to existing maps too.





B site

CT spawn

A site

double doors 





T spawn



etc would all make good capture points. Would make the gameplay more dynamic than 1 point to hold on a symmetrical map too.

Link to comment
Share on other sites

That's another gamemode I'm developing, but that one is way more advanced than this one, as it features a much more dynamic gameplay as that rotates a control point semi-randomly, depending on which have already been active, total points collected for each team etc. For example: if T is behind, a spawnpoint closer to the active point could become active. If they're behind quite a bit, the control point could spawn close to their base spawn next etc.


But that's a whole different topic. The version of KOTH that this topic describes was actually meant as a warmup for the other mode, as much of the issues that arrise now would have to be tackeled first before such a mode becomes viable, as it changes a lot of the dynamics in gameplay. Hence I'm asking for this precious feedback :)


@Klems: Yeah, I'm using Vscript for this. Good feedback, thanks! The screenoverlay is something I've been thinking about, but as textures are going to be stretched to fit the screen, I'd either have to create massive textures that would eat a lot of (max.) bsp size, or settle for ugly stretched textures. The latter is going to happen anyway with different aspect ratios ofcourse. Any examples of how you did it are more than welcome ofcourse.


Sadly, a proper way to display any information on the HUD isn't possible at this time: or at least not documented anywhere by Valve that I know of. Currently I overwrite a env_instructor_hint every second with the timer progress update: this makes it produce a 'beep' sound every 4 seconds as a sideeffect of the hudhint being refreshed.


Those suggestions about buyzones on the control point make it quite interesting as well! Definately a lot of parameters to balance with though. Both setting up the gamemode with these properties and designing maps for it go hand in hand, I'm starting to get a liiiitle bit worried that it might take months before anything viable pops up. Should I release the script earlier so more people can mess with it? My preference was to create a solid script first and then release it all together with a few maps so the mode is actually worth hosting straight away and such ;o

Link to comment
Share on other sites

The screenoverlay is something I've been thinking about, but as textures are going to be stretched to fit the screen, I'd either have to create massive textures that would eat a lot of (max.) bsp size, or settle for ugly stretched textures. The latter is going to happen anyway with different aspect ratios ofcourse. Any examples of how you did it are more than welcome ofcourse.


As you said, the way I did it was with huge and horribly stretched textures. It was fine for what I did (a simple prototype) but not for your purpose.

There are ways to have an almost vector-like graphics in source, with the use of $distancealpha https://developer.valvesoftware.com/wiki/$distancealpha

This fix the issue of having a massive texture (you can have fine results with even a 256^2 texture), but doesn't solve the aspect ratios problem.

Link to comment
Share on other sites

Even then, if the screenoverlay entity were to display some form of scoreboard, you'd need hundreds of textures(frames) to support all the possible combinations, and you cannot enter any dynamic content in there. Capture progress would be a little less work, but even when the capture process is set to 10 steps/seconds, that would need 100 frames to display the CT and T capture status combinations at the same time. And then you're quite stuck when you want a capture to take 13 seconds on another map for example. I'm really glad you're thinking along though!


If only Valve would add some minor UI accessibility via Vscript.. that'd save me tons of work trying to get a hackish solution working and would allow me to focus my attention towards proper gameplay :X Server plugins would allow me to use all sorts of UI feedback, but I really, really, want to refrain from having the need to install anything besides downloading the bsp to play new gamemodes...


Edit: Have to put this on hold for a bit as I have to find a new job on short terms.

Edited by Spherix
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Mapcore Supporters

    Our incredible Patreon supporters keep Mapcore's lights on. If you'd like to donate, check out our Patreon announcement.

    Note: This is brand new! The format will be tweaked and rolled out to more pages soon.

  • Create New...