No announcement yet.

Reimagining of Greed [BluePrint]

  • Filter
  • Time
  • Show
Clear All
new posts

  • started a topic [PROTOTYPE] Reimagining of Greed [BluePrint]

    Reimagining of Greed [BluePrint]

    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.

    • 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.

    • 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)

    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:
    1. 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.
    2. Open up a terminal, and then navigate to your "\UnrealTournamentEditor\Engine\Build\BatchFiles" folder, then issue the following command:
      RunUAT.bat makeUTDLC -DLCName=Greed -platform=Win64 -version=3525360
      This will produce a package, which will contain only the GameMode, and can be found under your "\UnrealTournamentEditor\UnrealTournament\Saved\StagedBuilds\Greed\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:
      1. Start any CTF map from the game, with Greed as the selected GameMode. (This is faster, but will use the default GameMode configuration)
      2. 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):
        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):
      UE4Server-Linux-Test UnrealTournament CTF-Face?Game=/Game/Greed/Greed.Greed_C?GoalScore=50?TimeLimit=20?MinPlayers=2?MaxPlayers=8?BotFill=0
      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:

      Add the following lines in your Rules.ini
      	"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": [
      	"optionFlags": 65535,
      	"bHideFromUI": false
      Add the following lines in your Game.ini
      	RedirectReferences=(PackageName="Greed-WindowsNoEditor", PackageURLProtocol="<URL_PROTOCOL>", PackageURL="<HTTP_PATH_TO_GREED_PACKAGE>", PackageChecksum="<GREED_PACKAGE_CHECKSUM>")
      NOTE: For proper redirecting/auto-download of the GameMode package from the hub to the clients, you need to:
      1. Replace <URL_PROTOCOL> with the value that your fileserver uses, https or http.
      2. Replace <HTTP_PATH_TO_GREED_PACKAGE> with the url that the Greed.pak will be downloaded from.
      3. 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!
    Last edited by FrostbyteGR; 07-23-2017, 08:02 AM.

  • replied
    Works on CTF maps, yes. I test this on my local standalone game ok last week.
    I think I tested this version on my server last year, but cannot remember for certain, since I modified Frostbyte's bp to be more like UT3 Greed for most of my testing.

    Leave a comment:

  • replied
    Originally posted by Narayana View Post
    This game mode is still working:
    So just to be clear, and maybe I misunderstood, is it necessary to bake any maps you want to play with the game mode and repackage or should something such as CTF-Face just work with everything else setup?
    When I add the game mode, add the ruleset, add the redirect and try to start a game nothing happens and the match never starts. I can just fly around endlessly and cannot exit the game.

    Leave a comment:

  • replied
    This game mode is still working:

    Leave a comment:

  • replied
    Is this game mode still working. I have been unable to get it going. Followed the instructions but when I run it on my HUB I cannot start the match and have to restart the HUB.

    Leave a comment:

  • replied
    Hotfix v1.5.1 Changelog:

    • The HUD Overlay is now displayed during Warm Up.
    • Left over skulls from Warm Up are now cleaned up when the match starts.

    Leave a comment:

  • replied
    Greed v1.5 Changelog:

    • The GameMode is now compatible with the 3525360 build.

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

    Last edited by FrostbyteGR; 07-22-2017, 06:57 PM.

    Leave a comment:

  • replied
    Greed v1.4 Changelog:

    • The GameMode is now compatible with 4.15-based builds.

    User Interface:
    • The HUD Overlay is being properly displayed again.
    • Improved the HUD Overlay visibility code.

    Leave a comment:

  • replied
    Greed v1.3 Changelog:

    • The GameMode is now compatible with 4.12-based builds.
    • Code improvements for better readability and compactness of the Blueprint.

    • Added attenuation settings to the sounds for the alarms, pickup and deposit of skulls, so they can no longer be heard across the map. Please give me your feedback on the current radius.

    Rushbase appears to be down at the moment, I will supply temporary download links from my HUB, until the situation gets addressed.
    Last edited by FrostbyteGR; 06-02-2016, 02:53 PM.

    Leave a comment:

  • replied
    In case you missed it, the GameMode has been showcased by Zaccubus during the UTea Forecast of the 03/23/2016.
    You can view the full VoD here.

    Many thanks to Zaccubus and to the participants of the stream, for taking the time to play and review it!
    PS: Excuse my bad english, as it's not my native language. Some presentation errors were made and my train of thought was lost many times in the process, as I was trying to play and explain at the same time.

    Leave a comment:

  • replied
    Similar, but not quite. There's a breakdown on the GameMode's rules on the first post.

    Leave a comment:

  • replied
    So this is basically Harvester gamemode from Q3TA? I have rarely had a chance to play it because it was quite unpopular for some reason. Keep up the good work, maybe you'll be able to revive it.

    Leave a comment:

  • replied
    New Version v1.2 Changelog:

    • The GameMode has now reached beta state.
    • The GameMode is now compatible with 4.11-based builds.
    • Added GameMode badge texture to be used by the HUB UI. (Credits to frez)

    GameMode Customization:
    • Made changes to the allowed range of some customization variables:
      • ConduitDamageAmount, ConduitDamageTimer, ConduitSkullDropMax and ConduitSkullDropMin are no longer allowed to be zero or less.

    • Slightly optimized the performance and bandwidth of the GameMode by improving a few functions.
    • Dropped skulls now have 60 seconds of lifetime until they get automatically destroyed, to avoid performance regression and cluttering.

    • Kills will no longer award any personal score to the players, in order to encourage them to play the objective. (Suiciding will still subtract a point from the player's personal score, to prevent exploitation)
    • Players capturing enemy skulls to their team's conduit, will now be awarded 2 points worth of personal score, per skull.
    • Players denying friendly skulls by picking them up, will now be awarded 1 point worth of personal score, per skull.

    • The GameMode now properly handles the Overtime and EndGame states, and will always select the correct winner.
    • The EndGame code prioritizes the last scorer, if there is a tie in score between teammates, when selecting the match winner.

    • The particle system which indicates how many skulls a player is carrying, is no longer visible to the owner, so the player's view is no longer obstructed by it.

    Download links will be available as soon as I resolve my technical difficulties uploading stuff into rushbase.
    EDIT: I added temporary download links from my HUB, until the situation with rushbase can get resolved.
    Last edited by FrostbyteGR; 03-08-2016, 05:35 PM.

    Leave a comment:

  • replied
    New Version v1.1 Changelog:
    • Fixed the particle system to update properly.

    Leave a comment:

  • replied
    Relics mutator for instance (or RelicMadness or how the latests versions are called). Just an example for a mutator which uses PreventDeath. It's just a matter to support it .

    PS: That's why a mutator and a gametype . The gamemode will have some features the mutater wouldn't have (or as separate mutator). I like the game mode that was a big reason why I created it besides the reason that I wanted a non official, trivial and non existing gamemode to work on Blueprint support (through pull requests).
    Last edited by RattleSN4K3; 10-29-2015, 04:24 PM.

    Leave a comment: