Find me at:
Michiel Werring - Tech. World Design
  • Portfolio
    • Equinox: Homecoming
    • Helldivers 2 >
      • Scripted in Unreal Engine 5
    • Halo Wars 2
    • Horizon: Zero Dawn
    • Skyrim Mod: Lordbound >
      • Developing a City
    • Fallout 3 Mod: The Safe >
      • Developing a Combat Area
      • Developing a Handheld Mortar
  • Resume
  • About Me
  • Leadership

Goal & Contents

In June 2026 I decided I needed to better demonstrate my technical skillset. I decided to recreate the SEAF Artillery Gun I had designed for Helldivers 2, but instead of relying on Code Team in the Stingray Engine, this time I opted to make it myself in Unreal Engine 5.

The Super Earth Armed Forces Artillery Gun is a point of interest the player may come across during any other mission. If resolved, it gives the player a powerful extra ability to be called for five times.

Over the course of two weeks I spent my evenings to recreate the following:
  1. New documentation of the gun to support the creation
  2. The Terminals mechanic, allowing players to interact with a nearby computer
  3. The Stratagem mechanic, allowing players to trigger special abilities by inputting the proper code on their wrist-computer
  4. An extremely basic health system to demonstrate basic:
    1. Armor Values
    2. Damage over time
    3. Damage radius & falloff
    4. Status Effects
  5. A simple interact system, allowing the player character to: 
    1. Interact with Terminals
    2. Pick up and deliver munitions to the gun

The intended outcome was to create a faithful recreation of the SEAF Gun with enough polish to allow a Level Design Team to actively use it for an extended period of time, allowing other teams to upgrade it over time.

For my own amusement I renamed various components of the SEAF Gun to distinct counterparts in the interfaces.

Unreal Engine Systems applied:

Systems applied in the creation of this project:
  • Blueprint Interfaces, to allow for widespread decoupled communication between blueprints
  • Data Assets, to allow for expandable blueprints running modified logic
  • State Machines, allowing for complex systems to work reliably
  • Custom Events/Functions to break down sequences into easier to maintain setups
  • Blueprint Utility Widgets for easy set up of new gun & randomised shell placements
  • Blueprint Widgets for player HUD, and Terminal UI
  • Blueprint Components to split up logic on a single Actor
  • Physics Constraints to attach a shell to the player's hands, and later to the gun's loading rack
  • Sequencer to animate the loading rack, gun barrel pitch & firing, as well as the shell ejector
  • Soft Object References to prevent loading unnecessary files at runtime
Additional systems used for quick polish:
  • Animation state machines
  • UE5 Animation tools
  • UE5 Modeling tools
  • UE5 Material pipeline
  • Niagara System

Full Length Video:

No smoke and mirrors! Everything works reliably. This video showcases all components in sequence.

For more information, see the breakdowns below.

Design Document:

This Miro-board goes in-depth on how the cannon is intended to work, from initialisation to firing its last shot.

The gun has 3 states:
  1. Deactivated
  2. Ready to Load
  3. Ready to Fire
 
  • The Terminal is used to activate the cannon
  • The interact/carry system is used to pick up munitions and deliver them to the cannon
  • Once five shells are loaded, the cannon is ready to unload shots in sequence with the Stratagem recreation (Tacticums)
    • The gun will fire the shells in the order they were loaded. The player is purposefully not informed of what shell is loaded until it is fired, forcing the player to memorise the chosen firing order or find out when it might be too late to clear the area.
Picture
Picture

Terminal:

The Terminal is a shell which holds an array of programs to play and forwards player inputs to these programs.
  • Programs can be simple 'nuisances' such as a load-bar, or flipping a handful of switches
  • Programs can also be a small 'minigame' such as improving the radio reception of the terminal by adjusting the X and Y sliders.
  • While not the most 'fun' by themselves, they are designed to be completed during intensive firefights. The simplicity is intentional
The Terminal programs displayed are recreations of other peoples designs! I did not design the original programs as copied from Helldivers 2, I merely recreated them.

Each time a program is completed the Terminal immediately boots the next program in the array until it runs out of programs to play.
The terminal should, at runtime, never truly run out. The final program in the array cannot be completed, and informs the player that the artillery gun has served its purposes.

Any player input results in their character performing a 'press' animation in real time to sell the interaction and to give the player a fidget.

Carrying Shells:

Interaction with other objects is primarily managed through Blueprint Interfaces, allowing the player character to fire events on other objects and poll their type of interactions.

When players approach an interactive object it is marked with an empty 'interact' marker.
The object closest to the player's focus is given the full "Press E to Interact" banner.

On interact, if not already occupied, the Player Character polls if the interactive node is polled and identified as a terminal or a shell, then performs the desired behavior.
On interact, if already occupied with an action, the Player Character checks if its action is contextual, such as carrying a shell.
  • If not contextual, it performs the end-action for the type of action, such as leaving the terminal.
  • If contextual, the game evaluates if that context is met.
    • For shells, this would be the proximity to an available Ready Rack.
      • If true the player character plays an animation where they bend forward and the shell is LERPed (Linear Interpolation) from their hands into the rack.
      • If false, the player character ceases to blend animations and the shell falls to the ground as a physics object with a slight impulse

While not an animator by any means, I opted to include basic animations to better relay the interaction performed.
The shell is constrained to the player's hand.
The player character blends their walking animations from the upper spine up with a shell-carrying animation, or shell-placing animation.

Artillery Cannon:

  1. Ready Rack Housing, manages the shell intake and reports shell types to the main gun. Also forms the base the gun sits on.
    1. Uses five Shell Racks to hold and move shells
    2. Has three indentations for cover, or hiding shells.
  2. Turret Base, a simple static mesh the gun sits on, placed atop the Ready Rack
  3. Gun Housing, a rotating block that holds the shell ejector at the rear, and the gun barrel
  4. Gun Barrel, aims up and recoils to fire.
Picture
element_settings.Image_30621876.default
Example of how the gun loads without any shells present. The final version would require some kind of flaps or doors to hide the start and end points of the conveyor.
Ready Rack:
  • Initially deactivated.
  • Has five "Ready Rack Units" which:
    • Once activated by a signal from the terminal, it extends a shelf from the Ready Rack Units to put shells on
    • Once a shell is placed, two arms close around the shell and pull it into the machine
    • The units rotate one position forward, allowing the process to repeat
  • The shell head and icons can still be read to help memorise the load order, but not rearranged
  • Once five shells are loaded, the Ready Rack no longer offers the opportunity to load more shells
Picture
After firing the shell casing is ejected out the rear. The symbols on the casing match the latest shot fired. The object is a physics object and can be played with after.

Turret Housing:
Once a firing request is received, the housing rotates to face the target.
The housing rotation accelerates to maximum speed and decelerates before reaching its final facing through Blueprint logic.

After firing, the rear panel ejector is forced open.
At it's maximum extent the shell is ejected and its physics enabled to enable it to drop down. A Niagara system adds a smokey effect.

I applied a simple placeholder animation in sequencer to look as if it is forced open by pressure of the shot. The panel then rapidly closes most of the way as if piston powered, before made to look as if a gear-rack catches and secures the panel for the last centimeters of the operation.

The shell markings match the most recently fired shell.

Gun Barrel
Parented to the Turret Housing, the barrel will automatically rotate with the rest of the gun.

The barrel has a near-horizontal state to indicate the gun is 'deactivated'.
A halfway raised state to indicate the gun is 'ready to load'
A full raised state to indicate the gun is 'ready to fire' at high, plunging arcs.

When ordered to fire, the gun recoils, and smoke is simulated from the muzzle break at three points to sell the visual element.

A BP_FiredShell is spawned, made aesthetically to match the type of shell fired.


Picture
Four guns displaying four different firing arcs in unison. Enlarging the GIF allows you to better see the trails left by each shell in the sky.

Stratagems:

One of Helldivers' unique selling points is the Stratagem system. The player can hold down a key to bring up a menu of available objects. By performing the correct inputs a baseball sized object is 'charged' with the ability and once thrown, will call down the ability at the destination.

Doing so begins a countdown until expected activation of the ability at the destination and a laser to notify allies of danger.
Inputting the code displays which abilities correspond with the code input so far.

New abilities added to the player's roster are shown even if the roster is hidden.
Abilities recently activated, or with their cooldown soon ending, use the same display override no notify the player of their status.

Stratagem symbols are color coded to indicate type.
  • Yellow for supplies/reinforcements
  • Blue for player equipment
  • Green for automated ordnance like turrets or minefields
  • Red for large weapons to be fired on target.

Additionally, the symbols:
  • Convert to white to indicate progress on its activation since request
  • Converts back from white to indicate its cooldown progress since activation

While not immediately obvious, the arc of the throw is adjusted by the pitch of the player camera. If the player looks up, they will throw farther than if they look straight down. This is best observed in the Youtube Video at:
  • 1:10 (High)
  • 3:21 (Low)
Picture
Click GIF enlarge! Players use WASD to select a Stratagem, then throw a ball to call it down.
Picture
Click GIF enlarge! Once the player unlocks a new Stratagem, it appears for a brief moment and shows its input combo to request.
Picture
Click GIF enlarge! Once an ability is called, it remains visible until activated. Then it becomes visible again once it nears its cooldown completion.

Shells:

Each shell type (six total) has its own Data Asset to relay its effect to a plain blueprint.

The Data Asset holds:
  • Damage Type (Fire (DoT), Electric (Stun), Base, Penetrative or Overkill
  • Damage Amount
  • Damage Over Time Amount
  • Damage Over Time Duration
  • Damage Radius
  • Damage Falloff Curve
  • VFX Niagara System

The shell on impact takes the relevant data assets and modifies its execution as required.
To prove functionalities, the character dummies as shown in the demos were made:
  • Blue to indicate an unarmored enemy (Susceptible to all damage types)
  • Red to indicate an armored enemy (Immune to base damage)
  • Yellow to indicate a 'building' (Immune to all but overkill damage)

There are seven Data Assets:
  • Six for each type of shell and their effects and VFX
  • One for the impact of the shell, which is played regardless of the shell type
    • The shell impact will always provide Overkill damage in a small area where the munition hit, meaning even a smoke munition could be used to destroy a building on a careful throw




Clean Blueprints:

All systems were made to be easily expanded upon and modified.
Events and variables were given clear names to indicate what their function is in the greater system they are a part of.

Acknowledgements:

Original designs by my colleagues at Arrowhead Game Studios:
  • Stratagem menu designs by the respective specialists at Arrowhead Game Studios
  • Terminal Minigame designs by the respective specialists at Arrowhead Game Studios
  • Gun Housing and Barrel visual Design by the respective specialists at Arrowhead Game Studios
Assets used in the making of this project:
  • 2D Art by Lorc, Delapouite, Skoll, Sbed, Catalin Fertu and Game-Icons.net, obtained from Game-Icons.net  and used under CC BY 3.0
  • Terminal and wrist computer sound effects provided by Moa Jansson
  • Additional audio obtained from Freesound.Org under Creative Commons, including:
    • Bomb Arming by snakebarney -- https://freesound.org/s/138101/ -- License: Creative Commons 0
    • vaccumwhirr_01.wav by xtrgamr -- https://freesound.org/s/223744/ -- License: Attribution 4.0
    • METLImpt_MetalHit03_InMotionAudio_FREESampleSunday.wav by InMotionAudio -- https://freesound.org/s/685438/ -- License: Creative Commons 0
    • Extractor Fan.wav by theplax -- https://freesound.org/s/618185/ -- License: Attribution 4.0
    • Power screwdriver by chemicalcrux -- https://freesound.org/s/531444/ -- License: Attribution 4.0
    • metalClunk.wav by spukkin -- https://freesound.org/s/70887/ -- License: Creative Commons 0
    • Opening Garage Door Handle 3.wav by F.M.Audio -- https://freesound.org/s/608058/ -- License: Attribution 4.0
    • Metallic clunk.wav by michael_grinnell -- https://freesound.org/s/512475/ -- License: Creative Commons 0
    • Turning on my Wii by f-r-a-g-i-l-e -- https://freesound.org/s/613085/ -- License: Creative Commons 0
    • Metal heavy mechanics by jorickhoofd -- https://freesound.org/s/160048/ -- License: Attribution 4.0
    • DarkDetonation03.wav by M-RED -- https://freesound.org/s/183868/ -- License: Attribution 4.0
    • Astronomical Explosion by SamsterBirdies -- https://freesound.org/s/760509/ -- License: Creative Commons 0
    • Beefy Explosions by SamsterBirdies -- https://freesound.org/s/745549/ -- License: Creative Commons 0
    • Explosive.flac by qubodup -- https://freesound.org/s/189778/ -- License: Creative Commons 0
    • Windy Explosion.flac by qubodup -- https://freesound.org/s/182797/ -- License: Creative Commons 0
    • Guns & Explosions Album - Railgun - Shot 6.wav by OGsoundFX -- https://freesound.org/s/423118/ -- License: Attribution 4.0
    • Distance Explosion Sound by SoundFX.studio -- https://freesound.org/s/456272/ -- License: Attribution NonCommercial 4.0
    • Cannon artillery - distant gunshots.wav by Aegersum -- https://freesound.org/s/345844/ -- License: Attribution 3.0
    • cannon.mp3 by Kneeling -- https://freesound.org/s/448002/ -- License: Creative Commons 0
    • gas-cooker.wav by 16GPanskaSibinska_N -- https://freesound.org/s/497204/ -- License: Creative Commons 0
    • Explosive 1 v1 [DOD 130303].flac by qubodup -- https://freesound.org/s/182432/ -- License: Creative Commons 0
    • laser artillery sound effect by slopemstr -- https://freesound.org/s/517939/ -- License: Creative Commons 0


Portfolio
Resume
About Me
Contact
Copyright © 2015