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:
ConduitDamage Mode:
The game, by default, is played with ConduitDamage enabled. If you wish to disable it, please refer to the "Game Customization/Variable Explanations" section of this post. This mode affects the game in the following ways.
Game Customization/Variable Explanations:
You can customize the GameMode (to a degree) to fit your needs, even without any blueprint knowledge.
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=50?TimeLimit=20?ConduitDamageAmount=120?ConduitDamageTimer=2.8
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:
Reporting Issues:
To report any issues/bugs that you've found with the GameMode, post in this thread, after making sure of the following:
FAQ:
Roadmap for Upcoming Features and Optimizations:
Credits:
Wail: Assisting with the debugging process, during the early playtests.
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.
TimEh: Assisting in the debugging process.
knepleyp, Frost: Assisting in locating and resolving game-specific crashes.
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:
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:
Version History/Information:
10/28/2015: Initial version.
10/31/2015: Version 1.1 Changelog.
03/08/2016: Version 1.2 Changelog.
06/02/2016: Version 1.3 Changelog.
03/11/2017: Version 1.4 Changelog.
07/22/2017: Version 1.5 Changelog.
07/23/2017: Hotfix 1.5.1 Changelog.
Any sort of footage, testing, suggestions, feedback are more than welcome!
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 CTF maps. Once launched, flag bases will be replaced by team conduits.
- Scoring is done by capturing enemy skulls at your base's conduit.
- Each skull contains color information about what team it belongs to.
- 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.
- Any friendly skulls that are picked up, award points and get destroyed, effectivelly denying them from the enemy.
ConduitDamage Mode:
The game, by default, is played with ConduitDamage enabled. If you wish to disable it, please refer to the "Game Customization/Variable Explanations" section of this post. This mode affects the game in the following ways.
- Conduits can receive damage, but are otherwise indestructible.
- Conduits can only receive damage from enemy players.
- When a conduit receives a set amount of damage, over a set amount of time. It can drop between a set amount of minimum and maximum skulls. (If not enough damage was done before the timer expires, it will reset)
- The amount of dropped skulls are subtracted from the team's score. So it's to your best interest to also pay attention on your defence!
- The skulls dropped by the conduit, can be picked up by friendly players and put back in. Attackers have to actually touch them, to be able to deny them.
- If the GameMode is played with more than 2 teams, the skulls dropped by the conduit will be randomized. You never know what you might get, if you are lucky enough they might be skulls of another team that you can capture!
Game Customization/Variable Explanations:
You can customize the GameMode (to a degree) to fit your needs, even without any blueprint knowledge.
- ConduitDamage (Boolean, Default=True): Controls whether the conduits can be damaged to drop skulls or not. "True" enables the damage mechanism, "False" disables it.
- ConduitDamageAmount (Float, Default=100, Range >0): The amount of damage an enemy player will have to deal to the conduit, before it drops skulls.
- ConduitDamageTimer (Float, Default=2.5, Range >0): The amount of time (in seconds) that an enemy player has to deal the ConduitDamageAmount in, before the conduit drops skulls. If the enemy player fails to deliver the damage in time, the accumulated damage will reset.
- ConduitSkullDropMax (Integer, Default=3, Range >0): The maximum amount of skulls that the conduit can drop when damaged. (The number of skulls dropped is a result of a random value between the Max and the Min)
- ConduitSkullDropMin (Integer, Default=5, Range >0): The minimum amount of skulls that the conduit can drop when damaged. (The number of skulls dropped is a result of a random value between the Max and the Min)
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=50?TimeLimit=20?ConduitDamageAmount=120?ConduitDamageTimer=2.8
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 Greed.
- You do not have any previous versions of Greed 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 4 teams?
A: Yes and no. The GameMode can support any number of teams. However, the core game does not offer any skins, announcers or scoreboard/HUD resources for anything other than the Red and Blue teams. - 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:
Wail: Assisting with the debugging process, during the early playtests.
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.
TimEh: Assisting in the debugging process.
knepleyp, Frost: Assisting in locating and resolving game-specific crashes.
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 "Greed" as your GameMode Override setting (located in World Settings), then proceed by hitting Share > Share This Level. This will bundle Greed 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:
Code:RunUAT.bat makeUTDLC -DLCName=Greed -platform=Win64 -version=3525360
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 CTF map from the game, with Greed 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 CTF-Face?Game=/Game/Greed/Greed.Greed_C?GoalScore=50?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):
Code:UE4Server-Linux-Test UnrealTournament CTF-Face?Game=/Game/Greed/Greed.Greed_C?GoalScore=50?TimeLimit=20?MinPlayers=2?MaxPlayers=8?BotFill=0
- For hub servers:
Place the cooked package under your "\UnrealTournament\Content\Paks" hub server folder, and then edit the corresponding files accordingly:
Add the following lines in your Rules.ini
Code:{ "uniqueTag": "Greed", "categories": [ "TeamPlay" ], "title": "Greed", "tooltip": "A new take on Greed!", "description": "GameMode created by FrostbyteGR.\n<UT.Hub.RulesText_Small>Report any issues on the forums!</>\n\n<UT.Hub.RulesText_Small>TimeLimit : %TimeLimit% Minutes</>\n<UT.Hub.RulesText_Small>GoalScore : %GoalScore% Skulls</>\n<UT.Hub.RulesText_Small>Maximum players : %MaxPlayers%</>", "displayTexture": "Texture2D'/Game/Greed/GB_GD.GB_GD'", "gameMode": "/Game/Greed/Greed.Greed_C", "requiredPackages": [ "Greed-WindowsNoEditor" ], "gameOptions": "?TimeLimit=20?GoalScore=50?MustBeReady=1", "minPlayers": 2, "maxPlayers": 10, "bTeamGame": true, "bCompetitiveMatch": false, "mapPrefixes": [ "CTF" ], "defaultMap": "/Game/RestrictedAssets/Maps/CTF-Face", "customMapList": [ "/Game/RestrictedAssets/Maps/WIP/CTF-Bigrock", "/Game/RestrictedAssets/Maps/WIP/CTF-Blank", "/Game/RestrictedAssets/Maps/WIP/CTF-Dam", "/Game/RestrictedAssets/Maps/CTF-Face", "/Game/EpicInternal/Pistola/CTF-Pistola", "/Game/RestrictedAssets/Maps/WIP/CTF-Plaza", "/Game/EpicInternal/Polaris/CTF-Polaris", "/Game/RestrictedAssets/Maps/WIP/CTF-Quick", "/Game/RestrictedAssets/Maps/CTF-TitanPass", "/Game/RestrictedAssets/Maps/WIP/CTF-Volcano" ], "optionFlags": 65535, "bHideFromUI": false }
Code:[/Script/UnrealTournament.UTBaseGameMode] RedirectReferences=(PackageName="Greed-WindowsNoEditor", PackageURLProtocol="<URL_PROTOCOL>", PackageURL="<HTTP_PATH_TO_GREED_PACKAGE>", PackageChecksum="<GREED_PACKAGE_CHECKSUM>")
- Replace <URL_PROTOCOL> with the value that your fileserver uses, https or http.
- Replace <HTTP_PATH_TO_GREED_PACKAGE> with the url that the Greed.pak will be downloaded from.
- Replace <GREED_PACKAGE_CHECKSUM> with the MD5 provided above, or generate your own MD5 checksum if you did the cooking yourself.
NOTE: You can also use the "-run=UTGenerateRedirects" 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.
Version History/Information:
10/28/2015: Initial version.
10/31/2015: Version 1.1 Changelog.
03/08/2016: Version 1.2 Changelog.
06/02/2016: Version 1.3 Changelog.
03/11/2017: Version 1.4 Changelog.
07/22/2017: Version 1.5 Changelog.
07/23/2017: Hotfix 1.5.1 Changelog.
Any sort of footage, testing, suggestions, feedback are more than welcome!
Comment