[TEMPLATE] Fighting Game ^_^

Updated 29.09.2015! Small Progress for Paper2D Template! :slight_smile: 66th post!

Hello everyone!

For around 2 months I am working on a project related to our old-school fighting games. You know, 2 players, regular stages etc.

Before I move on to the real deal though, I am working on a template which I will share with community when I am feeling comfortable about it, and when it is finished.

I have very little experience with coding, and all I am using is blueprints so I am learning as I go ahead with it. I made the basic animations for now alongside with little core mechanics, so I decided to make a thread about it. Why not?!

Here is the first video, presenting the basic core system. Local multiplayer, a camera, and a stage with limited space to play on. :slight_smile:

Next video is about collision. 90% done. Still need to iron it out. :3

Lastly a very short video demonstrating animations for both left and right side standings. (30% slower for showing blending is “okay-ish” ^^)

** <---------------------------------------------------------------------------------------------------------------------------------------> **
** <------------------------------------------------------- UPDATE 05.15.2015 ----------------------------------------------------------> **
** <---------------------------------------------------------------------------------------------------------------------------------------> **

  • Player BP is almost done. It works flawlessly. It got it’s own gravity system and on hit component event to find out if it is on ground or not, aka mimicing “IsFalling” of movement component. Biggest outcome so far is having no variables that I don’t use. So it is way less confusing for a newcomer to Unreal 4.

  • Various bugs are fixed when it comes to jumping continuously on top of the another player. Blending were slightly going mad time to time, but now fixed. \o/

  • Got rid of some variables, things are more connected… so… yay.

  • Post Process Effect for background is finished by accident. Accident because I had no idea how to do it. Fiddling around suddenly gave epic (maybe not so epic) results. :slight_smile: Here are examples;

  1. First Picture, all is normal. Just for you to compare later.

  1. Second Picture, incase you want the environment to become colorless.

  1. Third one, what if you want it bloodred? D:

  1. What if you want it to have a kawai picture? o.o’

  1. Not enough? Maybe you want to have a ubercoolhaxmadness video at background? Any video would work, but let’s say you finished the opponent with a Street Fighter Style Super!

Anything works as you see. That’s all for now! :slight_smile:

** <---------------------------------------------------------------------------------------------------------------------------------------> **
** <------------------------------------------------------- UPDATE 05.31.2015 ----------------------------------------------------------> **
** <---------------------------------------------------------------------------------------------------------------------------------------> **

Howdy! Here is the progress, plus a video! It’s been 15 days now and I am working like hell on this template, it’s coming up nicely!

  • Collision System got it’s size reduced by 85% and it works better. There is no twitching -at all- now and it reacts to all kinds of speeds. Pushing or getting the player pushed rather nicely. I can gladly say it is finally finished.
  • Lot’s of internal problems fixed. PEBCAK was the reason most of the time. http://vignette2.wikia.nocookie.net/uncyclopedia/images/4/4f/Pebcak.png/revision/latest?cb=20140503101239
  • Anim Graph got updated and is now only half by size. All blendings are awesome now! (Promised!)
  • Small Key Press Recognisiton is now in motion! For example you can dash to right or left, depending on which button you pressed twice in a row!
  • Endless Jumping is there just like other Fighting Games. Before you could not hold jump to continously jump everytime you landed. Now you can! O_O !
  • Dashing and Jumping can work together, letting you jump right after a short moment you land from a dash and vice versa.

And here is a quick video. :slight_smile: Enjoy!

https://www.youtube.com/watch?v=smeFD3Umm60

— o —

— Things that are “almost” finished —

  1. Player Start system. Players spawn at two locations randomised. - FINISHED -
  2. Animation base system is done. Using two sets of animations for being at left and being at right side so the characters look flipped. - FINISHED -
  3. Camera system is done. Working flawlessly. Maybe need abit of clamping at jumping moments.
  4. Players never go out of the screen. They are blocked well. - FINISHED -
  5. Two maps are finished.

— Things that are being worked on —

  1. Player BP. Decided to make my own. I do not use 95% of the stuff the Movement System of the Character BP so cleaning up things. - FINISHED -
  2. Make many things component based. For example need to make a Collision Component so that if developer wants to make a new character, simply add the component and he would have a collision system. Plug’n Play kinda.
  3. Need to make a gravity system of my own. Related to 1. - FINISHED -
  4. Advanced combo system. Basic input detection is there but needs to become more complex. - ON GOING -
  5. Better animations.

— Things that needs to be done later —

  1. Music and Particle Effects.
  2. A few more maps.
  3. UMG. Options, health bars, character selection etc.
  4. Release afew things from Tick Event and use Timer instead. - ON GOING -

That’s all I can say so far! Will update with new stuff soonish! ^^

This is looking pretty cool. I like your endless bridge system. The actor spawns a new bridge actor when it overlaps and deletes exiting one when it ends overlap? Pretty clever ^^
I like this as a template, can’t wait to see more progress!

Thank you for your support! Yep. There is a bridge creator that checks if there are bridges at the opposite side of where both players are heading, deleting them if it detects. Also the new bridge creators make a check for theirselves to delete the creators with the same rule, so nothing is left. :slight_smile:

Hope to show some action more soon!

Really like the progress so far :slight_smile:

Thanks! Crouching coming soonish!

awesome…thanks for sharing…

looking good

Cheers for the support everyone :slight_smile:

Looks awesome! cant wait for this template. any ideaon time frame?

Hello Mr AdamF, thank you!

It is unfortunately hard to say when. I am almost working every day on it. At the moment working on the Player Pawn. Completely redoing collision and gravity myself which is the hardest part so far. Once I am done with things, I will update the first thread so you will be able to get an idea. :slight_smile:

Update :slight_smile:

Update :slight_smile: 05.15.2015 ! You can see it when you scroll down to the last part of this post! Enjoy!

Holy hell. You just helped me figure out one of the biggest issues I would’ve had with the 2d fighter I have in mind. No walls but limitations on how far off you can go.

You’re a saint. A SAINT!
This looks great though. Would love to give the template that you have so far a spin :stuck_out_tongue:

In time young padawan. :slight_smile:

Limitation part was too easy than I expected, just make sure the blocking collisions on left and right are connected to the camera. Then add a clamp to the movement of camera, like -10000 to 10000 and there you go xP

Thanks for the kind words aswell, good luck on your 2d fighter! I would like to see some stuff about it aswell !

Hopefully I can get a presentable demo soon, but I’ve been stuck on something for awhile that across 3 engines I’ve had issues with.

The **** on hit cancel system. Unity didn’t exactly prove the best for 2d fighters, Unreal isn’t exactly cooperating, hell FM2K had its issues and it’s built for this kind of thing. Any suggestions?

Hmmm. If I understand correctly, you want to be able to cancel the hit to another one, such as dashing in the middle of Shoryuken before it gets player on air right?

If that’s the case, it’s not really Unreal’s fault, but how you implement your input system AND movement one.

Personally my movement system consists of “Set World Offset” and “Set Actor Offset” ones accompanied with timelines for moving them for special things, such as jumping. In this case if I am making a Ryu and wanting to cancel his Shoryuken into a dash, I would have a AND boolean with inputs tagged into “IsOnGround” and “DoingShoryuken”, which are both true until he flies upwards (which makes it TRUE for DoingShoryuken but FALSE IsOnGround, making it impossible to dash or cancel after he flies). So if the Ryu player tries Dashing by tabbing 2 times frontier, I would stop the Timeline that is updating ActorLocalOffset of Shoryuken before it’s Z direction starts (aka jump) and I would switch to Dash state in Anim Graph, only to trigger the Timeline for Dashing Actor Local Offset with 0.0 seconds blending. There we go, chu haz a dash in the middle of zhe shoryuken!

I didn’t play the new Street Fighter where many cancels their attacks to dashes, but I watched the videos, so I think thats what you mean, even if its not, I would still use this way for any type of cancellation anyway.

In my humble opinion, you should always use Actor Offseting in a fighting game. I don’t think Velocity is a term you should use or need, for your character goes left and right in instant speed, as it should.

Here is an example of how I move my characters;

I am not showing it all so it might be confusing (as I still am not use if this is the correct way), thought what you need to note is, I multiply every move I have with delta seconds as you see at bottom. And I always get good results. Maybe thats how you should move aswell!

I never thought to do that. Not bad haha.

Quick question on your infinite scrolling stages, mostly the backgrounds, do you have those do a similar thing with the background as well with the destroy the back and rebuilt the front?

That is my lazy side. I am not doing anything for them because it takes 10 min of walking towards a side to get rid of them anyway :stuck_out_tongue:

Though even if I wanted, I would add a overlap detection on very far sides of the camera that would trigger them to become visible/spawn, just like I do for my playground bridge parts. It’s not hard, but it’s just not needed imo.

** <---------------------------------------------------------------------------------------------------------------------------------------> **
** <------------------------------------------------------- UPDATE 05.31.2015 ----------------------------------------------------------> **
** <---------------------------------------------------------------------------------------------------------------------------------------> **

Howdy! Here is the progress, plus a video! It’s been 15 days now and I am working like hell on this template, it’s coming up nicely!

  • Collision System got it’s size reduced by 85% and it works better. There is no twitching -at all- now and it reacts to all kinds of speeds. Pushing or getting the player pushed rather nicely. I can gladly say it is finally finished.
  • Lot’s of internal problems fixed. PEBCAK was the reason most of the time. http://vignette2.wikia.nocookie.net/uncyclopedia/images/4/4f/Pebcak.png/revision/latest?cb=20140503101239
  • Anim Graph got updated and is now only half by size. All blendings are awesome now! (Promised!)
  • Small Key Press Recognisiton is now in motion! For example you can dash to right or left, depending on which button you pressed twice in a row!
  • Endless Jumping is there just like other Fighting Games. Before you could not hold jump to continously jump everytime you landed. Now you can! O_O !
  • Dashing and Jumping can work together, letting you jump right after a short moment you land from a dash and vice versa.

And here is a quick video. :slight_smile: Enjoy!

I need this!

Wow, amazing stuff. Wish I could help out but I’m a total blueprint noob, but I learn quickly so maybe later on I’ll be able to chip in. I’m trying to create a camera system same as the 1 in your first steps video for my game aswell, I know your a busy man but if you have some time to spare could please tell us in more detail how to prepare the camera your using, or show some screenshots of how on how you set it up. Here’s a link to the game I’m working on Chronicles Of Eden, A 2 Player Fighting Game. Please help out, I've many blue print issues to solve. - Work in Progress - Unreal Engine Forums