Team Fortress 2

Team Fortress 2

322 ratings
Afterlife
3
3
3
2
   
Award
Favorite
Favorited
Unfavorite
Other: Halloween, Night
Game Mode: Arena, Specialty
File Size
Posted
Updated
16.470 MB
27 Aug @ 8:25pm
9 Oct @ 3:31pm
4 Change Notes ( view )

Subscribe to download
Afterlife

Description
Death is not the end...

In this seasonal remodel of Valve's 2008 classic Ravine, players wage battle in a fast-paced twist on the classic Arena gamemode. Rather than being relegated to spectator for the remainder of the match, players who die are sent directly to Hell to continue fighting, that they may collect souls to bargain for their lives, just as the Medic did in TF Comics #6: The Naked and the Dead. Any player who scores a kill or assist on an enemy in Hell steals their soul, and can take it to one of the altars to resurrect themselves, rejoining the fight in the main arena back on Earth.

Welcome to Hell!

--------

Credits:
Valve -- Original Ravine map
LizardOfOz -- Original Arena vscript; code review, revision, and debugging
Piogre -- Map concept, additional vscript for gamemode variant, Hell area layout and detail, Ravine Halloween re-detail and adjustments
ImAware -- Custom particle effects
HirschVA -- Devil voice actor and audio editing
IJCT -- Showcase promos, menu photos

--------

See this map on TF2Maps[tf2maps.net]
Popular Discussions View All (1)
17
29 Oct @ 12:01am
PINNED: Bug Report Thread
Piogre
101 Comments
dyku 29 Oct @ 3:28pm 
my dude just fix Arena this is much better than graveyard the fact you can fight the get back into the game is so much better make geting cons easier too i be fine if this Mechanic is in more maps even on normal maps
soggäh 29 Oct @ 1:15am 
Wow, thanks for the detailed yet concise write-up on the bug, unfortunate that you were so thorough in testing, only for untestable, Casual-specific (and very hard go debug!) circumstances to haunt you.

Also, seems like one of the two hard problems of computer science reared its head here:
Naming things, cache invalidation and off-by-one-errors. :rbiggrin:
Piogre  [author] 29 Oct @ 12:22am 
In the wake of this, we're trying to make known in the vscripting community that player_disconnect can behave this way, to ensure these issues don't recur in future maps. BeepIsla has also put together what looks to be an offline casual matchmaker tester on github, which may also help catch issues created by differences between casual and community servers.

At this time, the issues are believed to be fixed. Please don't hesitate to let us know if you continue to see any bugs in the map. We hope you all enjoy the map, and have a happy Scream Fortress. (7/7)
Piogre  [author] 29 Oct @ 12:22am 
Furthermore, once we knew the bug existed, since we had no way to replicate the bug outside casual, our only means of troubleshooting was to try to intentionally break casual servers and take notes on what was happening, and review footage for clues later. We had no server logs, no stack traces or script exception logs in the console, only guesswork based on what was visible to players. And once we determined what we believed was the cause, our only way to actually test if the issue was fully fixed was to push the changes to Valve and hope they worked. This is why it was still broken after the first patch, and why the smaller regression bug happened after the second patch. (6/7)
Piogre  [author] 29 Oct @ 12:22am 
Based on all the above, we're pretty sure there's a small difference in timing of when the "player_disconnect" fires for vscript on a server hooked up to casual matchmaking versus a vanilla community/LAN/whatever "normal" dedicated tf2 server, when a player disconnects under some uncommon circumstance. This isn't to specifically say that casual does it "wrong" -- only that it does it differently, and because we had no way to test maps in the casual matchmaker until they go live in casual matchmaking, all testing was done in community/LAN servers (AKA the config "quickplay" Valve servers used) so it was never caught. Although we don't know for sure, we suspect that when Valve playtests maps deciding which ones they want to add, they play them as a group in the normal LAN/community server config as well (not in the casual framework) -- so we suspect maps don't get run in the casual matchmaker at all until they go live. (5/7)
Piogre  [author] 28 Oct @ 11:58pm 
Afterlife was playtested extensively on the TF2Maps testing servers, which included people disconnecting and rejoining. It was playtested on other community map testing servers. It was tested on locally-hosted LAN servers specifically checking to make sure players connecting/disconnecting worked. And yes, it was tested with mp_tournament 1, which changes *some* things to be similar to casual, but does not fully replicate a casual server. At no point during any of this testing did this bug occur. After it launched, it was played on Shounic's 100-player server in a forty-versus-forty and this bug did not occur. And once we knew a bug existed, We did everything we could to try to replicate the bug in LAN/community servers, and we could not replicate the issue once outside the casual matchmaker, including using methods that seemed to consistently cause the break on a casual server. (4/7)
Piogre  [author] 28 Oct @ 11:58pm 
The Vscript driving the gamemode in this map maintains an internal list of all active players, arranged by team, plus a second list tracking only players counted as "alive". This cache is updated during play to track players spawning, disconnecting, changing teams, dying, resurrecting, etc. Occasionally, a player disconnecting from the server in a particular way would have their player object invalidated before the player_disconnect event fired. This prevented the reference to the player from being properly removed from the cache, resulting in the script breaking later when attempting to call functions on non-existent players, usually breaking in the middle of functions that were supposed to start/end/reset the miniround. Once this break happened one single time, the script would be completely softlocked, and the server would stay broken for any newly-connecting players until it emptied out and terminated. (3/7)
Piogre  [author] 28 Oct @ 11:58pm 
We are now fairly certain the cause of all the major bugs, from the initial issues of the round not starting (locking people in spawn) or not ending (getting people stuck in Hell) or only partially starting (getting people infinitely respawning in the overworld) -- to the different issue after the first (failed) patch in which minirounds restarted infinitely without incrementing the score, or broke the scoreboard for red -- to after the second patch a less common issue that would result in kills in hell not granting souls -- all to have been caused by different variations of *one single bug*. (2/7)
Piogre  [author] 28 Oct @ 11:58pm 
Wanted to give a quick post-mortem (no pun intended) on the issues this map had on release, now that we believe these issues to be fully resolved.

During playtesting, this map's gameplay was somewhat polarizing among testers. Many players enjoyed the variation on Arena mode that allowed players to keep playing the game after having died. Some players simply didn't enjoy the mechanic outright. We anticipated that the map would be similarly polarizing among the larger playerbase on launch, and that seems to have been the case.

What we did not anticipate was the map being broken on launch. Afterlife was playtested extensively, and in no playtests did these bugs occur. (1/7)
spover 26 Oct @ 7:14pm 
valve adding the best map ever...

I hope to see this being played in competitive or uncletopia soon. Fast paced gameplay with lots of decision making and lots of great moments.