How To Make YOUR OWN Fighting Game with Unreal and C++
The following Playlist is a serie of tutorials on How To Make YOUR OWN Fighting Game with Unreal and C++
Tutorial List of Episodes
- Episode 1: Introduction to the tutorials that wwill help you create games from pre-made tutorials that are similar to: Street Fighter, Tekken, Mortal Kombat, Killer Instinct, Super Smash Brothers, Skullgirls, BlazBlue, Guilty Gear, Fury Strike: 80s Beatdown, and the Injustice series.
- Episode 2: creating inputs, movement, and basic character spawning!
Episode 3: health and stamina/mana bars with a Widget-Blueprint overlay. Check out that crispy 60-FPS!
- As an added note, if your Health Bar and Stamina Bar are not showing up, that would be because the tutorial author has forgotten to show that in the video! Here is a step-by-step text guide to fix that issue (join the Discord for more help with photos and videos of how to do it, right here: https://discord.gg/bZdbbP9). Click on the “Blueprints” tab in the main taskbar of Unreal Engine. Find where it says “Level Blueprints” and select “Open Level Blueprint”. From here, right-click on your mouse and search for “BeginPlay”, and then select the Event. Drag out of the BeginPlay Event, search for “Create Widget”, and select the option under the category “User Interface”. Go to the “Class” parameter of that node, and find the HUD Class you made when watching this video (the “Owning Player” parameter does not need to be filled out at this time). Lastly, drag off of this node, search for “Add To Viewport”, and select the option under the category “Viewport”. Drag the “Return Value” output parameter into the “Target” parameter of the “Add To Viewport” node and you are good to go!
- Episode 4: creating AnimBPs (Animation Blueprints), state machines, and skeletal meshes.
- Episode 5: creating hitboxes and how to make them usable with different types of attacks. The tutorial also cover a variety of hitboxes including Proximity Hitboxes, Strike Hitboxes, and Player Hurtboxes.
- Episode 6: collisions between hitboxes and characters, tweaking damage for each hit, and the beginnings of two-player games.
- Episode 7: dynamic multiplayer spawning, using spawn points, and character references (pointers) for cleaner code and Blueprints.
- Episode 8: player spawns that can be use dynamically with character classes and objects, UE4 enums, and possessing pawns.
- Episode 9: design of a standard Character Select Screen for most fighting games.
- Episode 10: implementing functional character select screen logic and saving persistent data (such as your chosen character) for use throughout the game’s runtime, including when switching between levels.
- Episode 11: implementing a functional stage select (or level select) screen to be uses to quickly changes maps and characters from a menu.
- Episode 12: implementing hurtboxes (player hitboxes), allowing us to implement actual collision tests between hitboxes, other players/characters, and Unreal Actors.
- Episode 13: making players (characters) always face each other in fighting games. This will ensure that if you jump over an enemy in your game, the characters will rotate accordingly; the player on the left will always rotate to look at the player on the right, and the player on the right will always rotate to look at the player on the left.
- Episode 14: directional input attacks. These attacks are most known from the Super Smash Brothers series, but are in most any fighting game you’ll play! At their core, they are inputs that are mixed with a direction or movement to change from a standard attack to a specialized attack. In fighting games, they are often known as “Forward-Attacks” and “Backward-Attacks”.
- Episode 15: creating a combo system in UE4 and chaining together attacks/actions (combo steps) in the combo! This will cover animations, hitboxes and damage, combos with only-on-hit logic, and even the inputs required to perform the combos.
- Episode 16: creating local multiplayer using one input device (keyboard, arcade cabinet, or something else), controlling two players (pawns), and setting up multiple Player Input Components with separate controls!
- Episode 17: local multiplayer using one input device (keyboard, arcade cabinet, or something else), controlling two players (pawns), and setting up multiple Player Input Components with separate controls!
- Episode 18:the second part of creating local multiplayer. In this episode, I go over using multiple input devices (keyboard, arcade cabinet, or something else), controlling two players (pawns and player controllers), and setting up multiple Player Input Components with separate controls!
- Episode 19:binding and rebinding controls and inputs mid-game, as well as a menu to cleanly display it. This can be used during pause menus, on the main menu, or when you want to reverse controls for a special effect (as well as any other time)!
- Episode 20:setting up camera boundaries and edges (as well as stage boundaries and edges), as well as blocking characters from moving out of the bounds of the camera.
- Episode 21: adding animations to your characters (including but not limited to: jumping, crouching, and walking/running), as well as incorporating state machines into your character’s Animation Blueprint.
- Episode 22: directional jumps (animations, logic, and execution), jump attacks, and extended character-state functionality.
- Episode 23: hitstun, hit reactions, and the initial blockstun mechanics!
- Episode 24:manual blocking functionality, state machine logic, and animations!
- Episode 25:the final components of the standard blocking functionality (performing automatic blocks when backing away from your opponent), blockstun, and blocking animations!
- Episode 26: pushback (and knockback) of both characters (the attacker and the character that was damaged), changing the amount of pushback on the character’s state, and applying forces to the characters.
- Episode 27:launchers (attacks that hit people into the air)/launching, air attacks, and the introduction gravity scaling/air-combo mechanics.
- Episode 28:showing damage on characters. This tutorial includes making “damaged” or “bloodied” materials, switching materials at runtime, and performing functionality once fighters receive a certain amount of damage or go below a certain amount of health.
- Episode 29:implementing super meter (combo gauge) mechanics, EX moves, and combo gauge scaling!
- Episode 30: implementing EX Attacks (Meter-Burn Attacks), using super meter, and the purpose behind input buffers/command buffers.
- Episode 31:implementing super moves (ultimate attacks), repositioning the camera to make it cinematic, and making an overall-dramatic attack.
- Episode 32:creating input buffers (the ability to store sets of inputs, such as quarter-circle punch). Specifically in part 1,the tutorial go over storing inputs from all users, displaying them to the screen, and clearing out the buffer after a specified amount of time.
- Episode 33:creating input buffers (the ability to store sets of inputs, such as quarter-circle punch). Specifically in part 2, the tutorial goes over parsing through the input buffer, comparing sequences in the input buffer to the sequence of a command, and performing a specific action if the sequence was found.
- Episode 34:creating input buffers (the ability to store sets of inputs, such as quarter-circle punch). Specifically in part 3, the tutorial go over parsing the input buffer for any of the commands in our move list, as well as performing that command.
- Episode 35:creating input buffers (the ability to store sets of inputs, such as quarter-circle punch). Specifically in part 4, the tutorial goes over displaying the input stack to the screen (using images) for practice mode.
- Episode 36: implementing super moves (ultimate attacks), using sequencer to create a cutscene, and making auto-combos during special attacks!
- Episode 37:implementing super moves (ultimates) for all players, as well as positioning the camera accordingly depending on which side the player is on.
- Episode 38:implementing support for gamepads/controllers (each gamepad will control a character in the game).
- Episode 39:making input stacks for both players (Player 1 and Player 2), as well as diagonal inputs.
- Episode 40:using a keyboard to control multiple players within a menu (such as the Character Select Screen and Level/Stage Select Screen).
- Episode 41:fancy addition to the Character Select Screen where selecting a character spawns them into the scene with an animation. This will help liven up your fighting game!
- Episode 42:creating projectiles (such as fireballs and Ryu’s famous Hadouken)! Specifically in this episode, we cover creating the Base Projectile class, spawning a projectile at a certain point within an animation, attaching a hitbox to our projectile, and playing an effect when a collision occurs.
- Episode 43:creating a Stage Selection Screen with a “Stage Preview” (currently-selected stage as the background). it covers implementing this functionality in three different ways: Render Targets, Movie Players in Widgets, and Materials on Actors.
- Episode 44:creating character skins, being able to select them on the Character Select Screen, and using them within the game.
- Episode 45:creating menus, menu flow, and making menus interesting!
- Episode 46:part one of implementing throws, grabs, and grapples! Specifically in this episode, It covers backward throws, attaching the grabbed character to the grabbing character, and repositioning the thrown character.
- Episode 47:using gamepads and controllers (specifically Xbox 360 controllers and X-Input gamepads) on menus for one or more players, full controller support for all menus, and spawning player controllers on the Main Menu to use them for menu flow.
Episode 48: making character entrances and intros, adding intros to the game-flow where both player 1 and player 2 play intros, and disabling the HUD to make for a cinematic experience.
- Episode 49:adding sound effects to specific animations (such as Character Intros), random effort/pain sounds when attacking/hit, and triggers to sound effects during an Animation Blueprint’s State Machine.
- Episode 50: over match flow (“READY?” and “FIGHT!” text appearing at the start of the match while the characters can move but not attack), number of rounds, and a round timer.
The serie tutorials is still growing so keep tuned on the youtube channel author for more videos.