Idea (seeking guidance) for new TF2 game mode

  • If you're asking a question make sure to set the thread type to be a question!

mdawgmike

L1: Registered
Jun 7, 2009
40
18
I'd first like to say that I am a n00b to level design for Source. I have, however, had much experience in design for other games (mainly Warcraft III) in the form of structured event triggering for the level. The Source SDK seems to lack such a structured (all in one place) event system. So, this is where I seek help.

I do not plan to be a "mapper." All I am aiming to do is create a functioning set of entities that can be applied to any map. Here's what I want to make:

Team Deathmatch (taken from UT2K4):

Description: A semi-serious game mode where the only objective is to rack up kills on the other team. This came out of a running gag in my community about how 2Fort (a map we all despise) would be much better without the flags. The game-play would remain identical...only now nobody would complain about the intel that never gets captured :D! Anyways, after some thought I believe this might actually work out somewhat alright.

Structure:
*A frag counter would be displayed for each team and would count up to a pre-determined "frag limit."
*The team that reaches this limit first would be declared the winner
*If the map time limit expires before this, then it would go into sudden death (or stalemate/award victory to the team with the most frags if the server isn't set to do SD)
*There would be no round timers; the mp_timelimit cvar would control the count-down timer.

What I have found:

*I first have successfully compiled dm_2fort without the flag entities just to see what happens by default (hoping to get out of any extensive work)
*The cvar mp_fraglimit evidently does nothing in TF2. I was hoping this could just be taken care of on the server side, but it looks like this is not the case. Setting it to any number has no effect on victory conditions.
*Obviously, the tooltips are incorrect (being CTF related)

What I need to figure out how do do:
*Make a frag limit trigger as an entity on the map.
*What a good pre-determined frag limit would be (50 maybe)?
*Tooltips
*Make a working frag counter (HUD). I was thinking the CTF HUD would work best as the base. I would then just remove the flag icons and maybe put in a caption saying "Frags" above it. The "playing to" would be whatever the frag limit is.
ctf_2fort0035.jpg


Maps that this game-mode would probably work best on are small symmetrical layouts (generally CTF or KOTH). I'll most likely apply it to the following Valve maps to see how it works out:

2Fort
Nucleus
Sawmill
Viaduct

Good idea? I look forward to any guidance I can get.
 
Last edited:

Shoomonger

L4: Comfortable Member
Jul 8, 2009
185
55
Sounds good for a deathmatch. I always like a DM where there's a "purpose" to it.
 

Tapp

L10: Glamorous Member
Jan 26, 2009
776
215
Probably the best way to count frags would be to put the spawns high up, and put a trigger brush over the spawns. Every time somebody spawns, they would trigger it and then leave the brush area. You could probably use the capture counter on the ctf hud (without the 10 second crit-buff, unless you want all-out madness) and maybe put the intel underneath the spawn floors, to show the objective. Otherwise, there should be some kind of punishment or spawn delay for someone who dies incredibly fast.
 

megawac

L4: Comfortable Member
Oct 2, 2009
180
29
But... this is just not tf2!!! Btw you should add this to orange to if you want to appeal to the people that only objective is fraggin
 

Pseudo

L6: Sharp Member
Jan 26, 2008
319
150
One way to count the number of player deaths would be to have two trigger_multiples covering the entire map, with a filter_activator_tfteam for each team. The OnEndTouch output would be fired each time a player dies. You could then use math_counters and game_round_win to declare the winning team.

The "playing to" value is determined by the server setting ""tf_flag_caps_per_round". A map could change this value with a point_servercommand but this method is kind of frowned upon because there isn't a way to change it back to its previous setting when your map is over.

Perhaps a better method for displaying the score would be the use of the game_text entity. It is a bit complicated though, since you can't just send it a number to display, you'd have to have a separate entity for each digit.
 

Freyja

aa
Jul 31, 2009
2,994
5,813
It does sound interesting. However on maps like 2fort, there's not much point having the basement anymore, without the flags...
I'm thinking Arena maps would work better, just without the capture point.
 

Garner

L4: Comfortable Member
Aug 16, 2009
154
38
You would have to edit the maps in order to incorporate this new game mode.
Then the maps will be, according your prefix, tdm_nucleus, for example.

I can see what your trying to do, but the team deathmatch aspect would only be achieveable by plugins for sourcemod or scripts for the eventscripts plugin.
 

NoodleCollie

Stoat fiend
aa
Jul 30, 2009
383
335
This sounds like a good idea in theory but would probably not be so good in practice. The OnEndTouch triggers, as well as counting kills, would also trigger if someone suicided or died an environmental death, adding kills to the other team. The kills would also not be in sync with player points, as 2 people would often receive points (kill + assist) for one person dying.

There would also be no real way to show the score in the HUD as you can't send custom values to game_texts while in-game.
 

Pseudo

L6: Sharp Member
Jan 26, 2008
319
150
There would also be no real way to show the score in the HUD as you can't send custom values to game_texts while in-game.
You don't need to send custom values, you would need many separate game_texts. 15 for each team to show 0 to 50. dom maps use this method to show a score as a percentage.
 

mdawgmike

L1: Registered
Jun 7, 2009
40
18
Hmm, interesting that there doesn't appear to be a built-in way to count kills. I was almost positive there would be. Like I said triggers were a lot easier to do with other games. You would just have to make a simple script.

example (variables in italics):

event: player dies
if dieing player belongs to red team and if attacking player belongs to blue team
then increment blufrags +1
else if dieing player belongs to blue team and if attacking player belongs to red team
then increment redfrags +1
update scoreboard

So...no such capability exists with Hammer?

(team) deathmatch is an easy to make gamemode, but doesn't wit with tf2. tf2 is about TEAMwork.

Killing other players shouldnt be your goal, but should make getting to your goal easier.
Doesn't arena just involve killing people too? The only difference would be that this has re-spawn, and instead of taking a whole team down at once it would count up to a certain number (probably dependent on how many people are playing). The TEAM aspect would come in in that a team would win based on how many kills they collectively tally up. You would still have to work together to achieve this (sticking together in groups, medics and engineers functioning as support, etc.) And really, on maps like 2Fort, they turtle so much in a full server that it's basically a TDM anyways...just with flags that never get capped.

Not true, I will post a tdm prefab later
Actually, that was the whole point of this thread was to see if I could make a prefab for this. But if you can come up with something that would be sweet though! Chances are somebody more experienced with the editor will do it better anyways.
 
Last edited: