Avarice, a DM-variant of Greed [BluePrint]

DISCLAIMER:
The following GameMode is in beta state, this means that it's feature-complete.
Unintended behavior and glitches may still occur during play, but it should work as intended, most of the time.
It has been heavilly optimized and has done away with most, if not all, the hacky/workaround methods.
The code will still be always improved upon, and balance tweaks might happen from time to time, to ensure smooth gameplay.

Objective/Rules:

The GameMode is played on DM/TDM Maps. Once launched, weapon bases will be replaced by neutral conduits.

Scoring is done by fragging other players, and by capturing skulls at any conduit.

When capturing skulls at a conduit, that conduit will temporarily lock and will not accept any further captures for 12 seconds.

Skulls have a lifetime of 60 seconds before they get automatically destroyed.

When players have picked up enemy skulls, skull-shaped particles will start orbiting around their player model. Players carrying many skulls can be easilly identified as high value targets.

When players get killed, they drop their skull and any other skulls that they might be carrying.

Players spawn with a designated health and armor amount.

Players start the round with all of the available arsenal that the map contains, redeemer excluded, at a designated ammo capacity. (for example, if the bio-rifle weapon pickup isn't available in the map, you won't get a bio-rifle)

Game Customization/Variable Explanations:
You can customize the GameMode (to a degree) to fit your needs, even without any blueprint knowledge.

StartingHealth (Integer, Default=100, Range 100-199): Controls how much health the players receive when they respawn.

StartingArmor (Integer, Default=6, Range 0-7): Controls what types of armor the players receive when they respawn.

To override any of the GameMode's variables listed above, all you have to do is append the corresponding variable name, along with the desired value, into the GameOptions string.
Here is an example: ?GoalScore=10?TimeLimit=20?StartingHealth=150?StartingAmmo=75
Do note that any variables that have been set incorrectly (e.g. letters where you are supposed to enter a number), set out of their allowed range, or haven't be set at all; will be assigned to their default values. The algorythm has been designed to be case insensitive, so it doesn't matter which capitalization you use.

Known Issues:

If the HUD is turned off via the "showhud" command, the UMG overlay will not be hidden. (Relevant discussion can be found here)

The skull-shaped particles are not displaying for players that have picked up enemy skulls. (Probably one of the recent builds must've broken the particle-system replication)

Reporting Issues:
To report any issues/bugs that you've found with the GameMode, post in this thread, after making sure of the following:

You are running the latest version of Unreal Tournament and the latest version of Avarice.

You do not have any previous versions of Avarice in your "\Documents\UnrealTournament\Saved\Paks\DownloadedPaks" folder. (As it can cause conflicts when installing newer versions of the GameMode)

You are not playing the GameMode with bots. (Bots are not supported. Their behavior cannot be controlled through blueprints and no logic has been coded for them yet, as a result, they will yield undesirable behavior)

You have to be able to reproduce the issue in a consistent manner, and also provide a detailed explanation on how you did it. (Please also include your GameOptions string, your mutators/configuration, and any logs that you might have)

You have read carefully the existing issues, on the first post, and the one you faced is not already listed in it.

FAQ:

Q: Help! I do not understand how to play.A: If you have questions on the gameplay mechanics, take a look at the "Objective/Rules" section of this post. A tutorial video which explains how to play, will come at some point.

Q: Can I play this with Instagib?A: Yes, Instagib is fully supported. All you have to do is include it in the mutator list.

Roadmap for Upcoming Features and Optimizations:

Include primitive bot support, so bots can at least pickup and capture skulls. (The more skulls carried, the more the urgency to do so)

Credits:vlad.serbanescu11: Being involved in tight collaboration with me, providing me with crucial fixes (in the earlier versions), latest advancements, and debugging assistance needed for this project.frez: Providing the art for the GameMode badge that's used by the HUB UI.Zaccubus: Showcasing the GameMode during the 03/23/2016 UTea Forecast steam.

Download and Cooking Instructions:You can grab the latest available blueprints/source from here.
The archive also includes a test map, which I was using, to quickly test the game's logic.

To cook it: Extract the above archive into your "\UnrealTournamentEditor\UnrealTournament\Content" folder. From there on out, you can:

Open any of your maps and select "Avarice" as your GameMode Override setting (located in World Settings), then proceed by hitting Share > Share This Level. This will bundle Avarice inside your Map Package, and can be found under your "\Documents\UnrealTournament\Saved\Paks\MyContent" folder, once cooking completes.

Open up a terminal, and then navigate to your "\UnrealTournamentEditor\Engine\Build\BatchFiles" folder, then issue the following command:

This will produce a package, which will contain only the GameMode, and can be found under your "\UnrealTournamentEditor\UnrealTournament\Saved\StagedBuilds\Avarice\WindowsNoEditor\UnrealTournament\Content\Paks" folder, once cooking completes.WARNING: Do note that if you go with this method, you will have to modify the -version argument to correspond to the network version of the currently available build.
The paths and the commands might also differ, depending on your OS configuration and setup.

A cooked version of the GameMode along with it's MD5 checksum, for those who can't or don't want to cook it, can be found here.

Installation Instructions:

For single player usage:
Place the cooked package under your "\Documents\UnrealTournament\Saved\Paks" folder, and then launch or restart your game. From there on out, you can:

Start any DM/TDM map from the game, with Avarice as the selected GameMode. (This is faster, but will use the default GameMode configuration)

Bring up your console and execute an open command.
Here's an example (you can also squeeze in any of the GameMode customization variables here):

Code:

open DM-DeckTest?Game=/Game/Avarice/Avarice.Avarice_C?GoalScore=60?TimeLimit=20?MinPlayers=2?MaxPlayers=8?BotFill=8

For dedicated servers:
Place the cooked package under your "\UnrealTournament\Content\Paks" dedicated server folder, and then edit your server execution line/script accordingly.
Here's an example (your binary may differ, based on your server configuration and setup):

WARNING: Do note that the ability of the dedicated servers to transmit packages that do not contain maps, is unknown at this point of time. Therefore it's safe to say, that if you want to avoid any complications, the players which wish to join your server will need to have the package installed prior.

For hub servers:
Place the cooked package under your "\UnrealTournament\Content\Paks" hub server folder, and then edit the corresponding files accordingly:

NOTE: You can also use the "-run=UTGenerateRedirect" commandlet, to automatically generate the redirect references for you.NOTE: For further customization of the rulesets and hub configuration in general, please review this thread which was kindly provided by RZE and JoeWilcox.

Leave a comment:

Added support for the Warm Up game mechanic. The following subsystems have been affected (report bugs if you find any):

Skull depositing

Balance:

When capturing skulls at a conduit, that conduit will now temporarily lock and will not accept any further captures for 12 seconds.NOTES: While having previously discussed about possible ways to discourage 1-by-1 capturing, we primarily discussed on restrictions focused around the player (Progressive deposits, Cooldowns and/or Multipliers).
By applying the cooldown mechanic on the conduit instead, rather than taking away the player's ability to deposit, the player will be encouraged to traverse around the map more; and so will the brawls, as well.
Even though the 1-by-1 capturing strategy does become somewhat inefficient, it can still be utilized as means to deny/stall-out captures from opponents that come in hot with a lot of skulls, further reinforcing the management aspect of the GameMode.

Leave a comment:

I'll see what I can do, but again I can't promise anything to be done soon. It will all depend on how much time I get (which is very limited at the moment) and of course also on how much and what they did break.

Leave a comment:

I feel that the occurencies of mass brawls are certainly tied to the number of players currently in the game. [...]

Option 3 doesn't really provide an increase in risk, but a considerable increase in rewards. [...]
By sense of progression, I mean how fast you're climbing the scoreboard. [...]

Assigning conduits to players/knockback [...]

I agree the core mechanics are fine, and 1 and 2 probably aren't the right choices.

You're absolutely right there.

For three though, there isn't necessarily an inherent increase in rewards. If you, say, award 6 skulls if you deposit 5, depositing 5 skulls at the same time is not something that is likely to occur regularly in a game (since everyone is making a run for it with 1 or 2 skulls already, and you die pretty fast), unless you choose to try to collect 5 at a time. This increases the reward, but it increases the risk at the same time (or do you disagree here?) while not changing both risk and reward for normal play. There still wouldn't be an increased reward for better players unless they make the conscious choose to go for the required skulls, with conscious choice being the operative words there. I can see in a match with players of different skill levels in can increase the gap, but in a game with similarly skilled players this can be a deciding factor which, in my opinion, makes it more fun.

I could be wrong, but the skill difference seemed less apparent than in, say, DM. Since everyone starts with loads of health and armor and every weapon, every time you spawn you have more health than almost everyone else, and you have the same weapons. IIRC, in the games we played no-one was alive very long. You could be right though about lesser-skilled players playing more defensively to get the bonus, but this is so fast-paced that hiding doesn't last long either.

I'm not sure about this one. If you convey it clearly ("You gained one bonus skull!" popup message or something, or a special sound cue) it probably would be ok. Just like in normal game I can recognize I did not get a headshot because the other guy had a helmet, or someone's spree ended, etc, they're all sound cues.

Great points on the assigning conduits and knockback, but some things about former. Not knowing a map is detrimental in any game mode ofc. Hunting the weaker players could maybe be avoided by assigning a different conduit after each deposit or so, with some means of showing which conduit to deposit in (making all others red, telling the user at which weap to deposit with a message, showing an arrow in the HUD a la ut2004 assault, something on the minimap, xray vision for that conduit? These may be a stretch, but it's not impossible). Point three is true, but is this more unfair than getting bad spawns? What I do think, is that people never stray too far from their conduit, thus slowing down combat immensely.

As an alternative, how about one conduit where everyone deposits, which changes every time someone deposits. Admittedly, this would probably create more massive brawls and lower-skilled players might lose out more (but who knows). I'm not talking about the core gameplay here, more like config options. Just throwing it out there .

Leave a comment:

I can agree with some of the possible issues arising, although I'm not sure how option 2 would result in the issues you described. I think it's clear anyway why someone makes a dash for a conduit, but with this option it'll only delay that dash.

By delaying the dash and controlling when a player can deposit, we'd be essentially causing an increase in the average skulls players would be holding in their inventory. That would make the act of dashing more pronounced, and the combat might shift alot more close to the conduits, as players might start feeling that those will be the most efficient locations to do combat at.
The more experienced players won't have issues most likelly, those who can stay alive long enough; but less experienced players? Their capturing ability will certainly be impacted.
The fast pace of the game will also make it hard to convey the cooldown information, and players might start perceiving this as a lag or otherwise a glitch (frustration as to why they didn't manage to capture will also be more pronounced). It's best to keep the mechanics simple, so it's easy to learn but hard to master.

To be honest, I only see see an increased reward possible with option three, the first two only allowing others more time to kill you without any reward. I had envisioned option three myself.

The mass brawls around the conduits were somewhat rare in the games I played. It's mostly grabbing one or two skulls and making a run to a conduit.I'm not sure option 3 helps stronger players. They might deposit the skulls quickly, in which case not a lot changes from the current gameplay, or they might choose to keep the skull and go for the bigger reward with the risk of losing what they have, but maybe they should get that reward? It might be more defensive (running from a big battle), but it's already very defensive by wanting to drop any skulls as quickly as possible.I'm not sure what you mean by sense of progression?

Same case goes for option three, will benefit experienced players who can stay alive long enough to capture more skulls and will yield higher payouts for them (increasing the gap in skill, compared to someone who can't pull a massive killing spree and have the skill to get away with it).

I feel that the occurencies of mass brawls are certainly tied to the number of players currently in the game. If they are somewhat rare, that means that the mechanics are working as intended (at least for now).
Clusterf***s are good and fun from time to time, but they can become pretty tiring if they happen all the time (and also anything that starts happening commonly, tends to lose it's fun quickly).

Option 3 doesn't really provide an increase in risk, but a considerable increase in rewards. Unless the skill-levels of the players are very close to each other, that would cause the skill gap to be much more pronounced.
Players who can stay alive long enough to capture skulls by the dozens, will see themselves climbing the scoreboard and winning the game way too fast (making it less enjoyable for everyone else)
Capping skulls en masse (instead of 2-3 skulls) may start becoming the preferred and efficient way, reducing the options of how you want to play.
Less skilled players will be forced to play more defensivelly, to secure increased possessions before capturing, and might avoid combat completelly at some points.
And in general, it results in a no longer even-playfield, because the less experienced players can't hope to have what the more experienced players can achieve. (unless they get really lucky)

By sense of progression, I mean how fast you're climbing the scoreboard. By keeping the ratio 1-1, you at least have a sense that you're progressing (skull by skull, or by the dozen) and the game has a fixed duration/pace.
If we were to add multiplier bonuses, the progression on the scoreboard would no longer be linear and often easy to lose track of; introducing potentialy unwanted "wtf" moments.

Leave a comment:

I can agree with some of the possible issues arising, although I'm not sure how option 2 would result in the issues you described. I think it's clear anyway why someone makes a dash for a conduit, but with this option it'll only delay that dash. To be honest, I only see see an increased reward possible with option three, the first two only allowing others more time to kill you without any reward. I had envisioned option three myself.

The mass brawls around the conduits were somewhat rare in the games I played. It's mostly grabbing one or two skulls and making a run to a conduit. I'm not sure option 3 helps stronger players. They might deposit the skulls quickly, in which case not a lot changes from the current gameplay, or they might choose to keep the skull and go for the bigger reward with the risk of losing what they have, but maybe they should get that reward? It might be more defensive (running from a big battle), but it's already very defensive by wanting to drop any skulls as quickly as possible. I'm not sure what you mean by sense of progression?

Btw, have you considered options such as assigning a conduit to a player, or droppable skulls if a player gets a big knockback?

Leave a comment:

I did make a description in every mode, so players can see now whats going on.

If you want to be 100% accurate, you also need to mention the part about damaging the enemy conduits in Greed. That seems to have been omitted. (Unless you turned it off via config)
Well done otherwise, I just checked them and they are pretty descriptive.

It could be cool to have an incentive to drop off more skulls at the same time, as a risk-reward kinda thing .

Risk-vs-Reward has been discussed a few times already. The problem mainly lies on how to balance such a thing.
So far the suggestions I had were:

Having the player stay on the conduit while he's depositing, and have the skulls go 1-by-1 (at a fixed interval) instead of all-at-once.

Having a cooldown before the player can deposit skulls again.

Having some sort of multiplier to the awarded score, if somebody deposits a quantity greater than X Y Z. (Could be tiered)

However, these come with their own set of issues:

Would severely slow down the pace of the game (and we wanna keep it fast) and also introduce alot of static targets which would require no skill to get killed.

Would only make the strong players even stronger (much like adrenaline in UT2k4), will increase spam in the radius of conduits (it'll be more clear as to why you are approaching it and payout will be bigger) plus it limits the dynamic of the game and any option for players to play a little more conservative if they wish to do so.

Would only make the strong players even stronger (much like adrenaline in UT2k4), has the potential to end games very quickly, can lead to VERY defensive play styles, and lastly (imo) lowers the sense of progression.

There is already a risk vs reward condition existing within the core mechanics. That is, you could either choose to keep being inside the action and collecting skulls, with the risk of losing them all - or you could opt for safer strategies, depositing every so often, netting you less skulls in the long term. Of course you're never 100% safe, and if an opponent notices that you have a tendency to go for the conduits too often, they can also use them as bait and have some rockets waiting for you there. You have to adapt.

That's not to say that all the mechanics are set in stone. By all means, this is a constructive discussion. If anybody has ideas to offer to the table, let's analyze them together, and I'll be more than happy to implement something that fits.

Leave a comment:

Leave a comment:

Glad to hear you're on top of things. If you don't mind me making suggestions:

2. I know LTS has a few lines (I think) when you create a game, so you could see what it's about. Maybe that's an option?
3. If I'm not mistaking, the only cue you dropped of skulls if the ringing sound? Perhaps a message right above the crosshair might help? (where usually the 'You killed xx' etc is). So you could walk a bit more blindly over the spot.

2. That's the server configuration you're referencing to. Anything that's being displayed on the screen, while you're still in the HUB and not within a game instance, is controlled by the configuration the Server/HUB admin has put in place. I have no control over this, each admin can write anything they want there.
3. I'm already planning on adding messages and fiddling around with the sound attenuation values. But that's a whole different point, as "awareness" != "precision requirements".

Finding the source of the crash is priority #1 for now, when I resolve this I will try to fine tune the things you mentioned and I'll ask you for a playtest to see how it performs.
In other news, my time will be extremelly limited this period, because I just nailed a new job and I have to do some training on my free time. (in order to be up to par)

Leave a comment:

Glad to hear you're on top of things. If you don't mind me making suggestions:

2. I know LTS has a few lines (I think) when you create a game, so you could see what it's about. Maybe that's an option?
3. If I'm not mistaking, the only cue you dropped of skulls if the ringing sound? Perhaps a message right above the crosshair might help? (where usually the 'You killed xx' etc is). So you could walk a bit more blindly over the spot.