No announcement yet.

Community Challenge #1 - Make Something Go Boom!

This is a sticky topic.
  • Filter
  • Time
  • Show
Clear All
new posts

    [OFFICIAL] Community Challenge #1 - Make Something Go Boom!

    Since the beginning, our main goal for Unreal Tournament has been to get you, the UT community, involved with all areas of the game’s development. We have been interacting with you on the forums where we have been talking about important design decision. We have gone over movement, weapons, art and UI. And there has been an amazing amount of discussions and some great progress on the art side of the project. But mostly we have listened when you said want to do more than just talk.

    Today, we open up a new chapter in this journey by introducing “Make something go Boom!” the first of many “Community Challenges”.

    Critical to the success of any arena shooter like Unreal Tournament are awesome weapons and so it’s only right that we have chosen this starting point. We are looking for 3 things:

    1. We are looking for someone, an individual or a group, to take the current UT Weapon prototypes and build them in native C++ using the new weapon system. These include the Flak Cannon, the Rocket Launcher, the Stinger, the Enforcer, the Linkgun and the Shock Rifle. Where need, fill in the blanks by making the weapons work exactly as they do in UT3.

    2. We are looking for someone, an individual or group, to prototype and build the remaining base UT weapons including the Bio and Sniper Rifles and the impact hammer. These can be started in Blueprint but ultimately we would like to see them in native C++.

    3. We want people to build their own weapons utilizing all of the content we have included with the project. Think you can improve on the Flak cannon? Do it, or team up with someone and do it together. Use native C++ or Blueprint. Just go crazy.

    This phase is critical as we proof out the new weapon system and make sure it stands up to both intense online play but is easy for the community to expand. We have created a new WIP sub-forum in the weapon design forum. We strongly encourage anyone working on this challenge to create a thread using the new "prototype" tag and start talking about what they are doing. We ask that you utilize video services like Twitch and YouTube to post videos of your progress and your final work so everyone in the community can discuss it.

    All of us here on the design team will be participating in these new threads offering support and give advice. Together, we can build something great!
    Last edited by JoeWilcox; 06-10-2014, 01:49 PM.

    Good luck to everyone

    I'd like to ask anyone working on this to have blueprint friendly options such as rate of fire, damage, projectile speed and splash radius, innitial firing delay

    Firing arcs and mass(or however it's worked out) for things like grenades, flak secondary and bio

    This way more people can become involved in testing settings on the fly, this will be especially useful as we start to approach a playable alpha stage where we can test weapon settings in quick 1v1 matches ect


      Creating a Weapon:

      To start with, here are the classes that you need to implement to create a custom weapon:
      UTWeapon: The weapon object itself and the first person representation. Contains references to the other elements as well as the code for any functionality specific to the weapon’s operation.
      UTWeaponAttachment: The third person representation of the weapon. Only contains visual effects.
      UTProjectile: The base class for projectiles fired by weapons.
      UTDamageType: Describes the details of damage that aren’t the actual damage amount and physics impulse (whether it hits armor, death effects, etc)

      In UTWeapon, there are a number of arrays that describe what happens for each fire mode (2 fire modes are currently supported by the input handling – primary and alternate fire – but the weapon code supports more). A simple weapon that fires a single projectile or instant hit beam can be created with no code at all simply by filling out the various properties. All of the properties are commented and most should be self-explanatory, but feel free to ask in the forums if you have any questions.

      The Components view in the editor can be used to set up the first person view for the weapon. The components attached there will be attached to the player camera when the weapon is equipped and removed when the weapon is put away.

      For custom functionality (such as the rocket launcher loading), either C++ or Blueprint code will be needed. Here are the main functions that are intended for custom functionality:

      FireShot() (C++) / FireShotOverride() (Blueprint) – called to fire. The default implementation is to fire a single projectile or single instant hit trace depending on the values of the weapons’ properties. For many weapons, this is the only function that you will need to override.

      BeginFiringSequence() (C++ only) – called when the user presses the trigger for a fire mode. Either enter the appropriate firing state immediately or queue it up to do so as soon as possible
      EndFiringSequence() (C++ only) – called when the user releases the trigger for a fire mode. Note that leaving a firing state always waits for the refire time to complete, so this is always delayed.
      OnStartedFiring() – called when the weapon enters the firing state.
      OnStoppedFiring() – called when the weapon exits the firing state.
      OnContinuedFiring() – called when the weapon fires, finishes its refire delay, and the trigger for that fire mode is still down so the weapon will fire again.
      OnMultiPress() – called when one fire mode is firing and the user presses the button for the other fire mode. For example, this would be used for the rocket launcher line/spiral/grenade toggle as in UT3.
      PlayFiringEffects() / PlayImpactEffects() / StopFiringEffects() – called to play audio and first person effects.

      For any functions where an explicit fire mode isn’t passed in, the firing mode can be determined by looking at the CurrentFireMode property. Something important to keep in mind is that the entire weapon execution logic executes on the server and the client that owns the weapon, but no one else. This means two important things:
      1) You need to check for (Role == ROLE_Authority) before spawning gameplay objects such as projectiles. Generally that sort of thing should only happen on the server.
      2) Excepting any Actors spawned such as projectiles, nothing the UTWeapon does will be seen by other players. For third person visuals, use UTWeaponAttachment.

      UTWeaponAttachment is a much simpler “effects proxy” for the weapon, which performs third person effects. It is given a notification that the player fired their weapon, what fire mode, and if it was instant hit, the target location. Use these to create the appropriate effects. Similarly to UTWeapon, the Components view in the editor can be used to set up the mesh, muzzle flash, etc which will be attached to the third person character mesh at the appropriate time. Note that UTWeaponAttachment should *NOT* play sounds. Do that in the UTWeapon using UTPlaySound() so that the sounds can be replicated to clients where the actual character – and therefore UTWeaponAttachment - is not accessible (not network relevant because there’s a wall in the way, for example)

      For examples, the Shock Rifle is a great place to start, since it contains both an instant hit and projectile fire mode, but minimal special code (only the projectile has custom code to execute the shock combo). From there, the Flak Cannon is the next step, containing a custom primary fire to create the 9 projectiles, and finally the rocket launcher is the most complex weapon we currently have in game with the rocket loading mechanic.


        Cool Matt. Thanks for the start. I am interested in messing with this but my C++ is so rusty that I'm sure someone else will beat me to the punch.
        HABOUJI! Ouboudah! Batai d'va!
        BeyondUnreal - Liandri Archives [An extensive repository of Unreal lore.] - Join us on IRC [ - #beyondunreal]


          Lets jump into the fun. Hopefully I will find some time tomorrow to create a crazy weapon
          Here you can find all my Unreal Engine 4 Video Tutorials: <<Klick here>>
          • on my channel you can find germand and english tutorials
          • there are also around 180 video tutorials about the UE3 on my channel


            I would prefer Lightning gun over Sniper Rifle. The Sniper rifle was great weaponery in ut99 but it just doesn't fit the rest of unreal series.
            Hopefully some talented c++ programmers will take this stuff seriously and make weapons crazy and balanced as they were supossed to be!


              Is it already more or less decided that there will be no Lightning Gun and Shield Gun?


                Originally posted by Danielito View Post
                Is it already more or less decided that there will be no Lightning Gun and Shield Gun?
                I read Point 3 as "make everything you want, let Epic sort it out".


                  Maybe I can take a stab at this. If anyone wants to pair up with me, send me a pm!


                    He did say "Sniper Rifles" as in plural... Lightning Gun is a sniper...
                    DANG YOU UT2K4 KIDS! GET OFF MY LAWN!


                      Good luck everyone.
                      if i start now i might be able to learn c++ by 2022
                      Whens the challenge for the LD's?
                      Download_AllMyStuff | videos_ofmystuff


                        i guess if i never coded anything in ued i have no chance to build my own weapons.


                          Originally posted by peterk View Post
                          i guess if i never coded anything in ued i have no chance to build my own weapons.
                          You could always try to come up with some interesting weapon concept (that's half the reason this contest exists in the first place, aside from easy and fast porting of all UT guns into the game pronto and at no effort) and simply team up with someone who does know how to implement it.


                            Peterk, let me point out that with Blueprints, you can take an existing weapon and start tweaking it and making changes with no programming experience.


                              i don't like the word "contest" for this per se (as Adridos defined it), yeah I guess there will be some competitive spirit there but we should also focus on co-operation where necessary, so "community challenge" is about right.

                              UT4 modding discussion: #UTModders
                              Contrib Digest | UT2341 - Henrik's UT4 Dev Blog | Twitter