Fantastic, thanks!
I think everyone’s getting a bit too ahead of themselves here. What’s your basic idea in terms of what you want from a fighting game? Do you want something very fast, something more footsie based, a combo heavy game, a weapon fighter, etc? Do you want the game to be somewhat turn based (such as SamSho or VF) or much more frentic (as many anime fighters are). How many buttons are you looking at using? Do you want it to be a chain based or link based fighter?
What’s the concept here? I used to do some design/modeling work on racing games, and you have to pin down what exactly you want to work towards before you start doing any code, lest it be wasted.
If you are doing a 2.5D game then you shouldn’t need full 3D box hitboxes. The hitboxes should all live on the same plane so 2D squares should suffice. Theoretically anyway; i haven’t worked with Unreal so not sure if there would be engine limitations. Don’t quote me on this, but i remember something about the early version of SF4 using the model for it’s collision detection and it never really panned out when they playtested it. Someone else might have the source for that.
I would definitely research into how fighting games handle hitboxes are what they are used for. Obviously you have the hitboxes that are used for attacks and the hurtboxes that the hitboxes interact with. But you also have boxes for things like so the characters cannot walk past each other (the boxes cannot intersect and push each other out), boxes to handle proximity guard, the different states that hurtboxes can have (to make overheads, lows, unblockables etc work). I’d recommend messing around with Skullgirls’ hitbox viewer and try to reverse engineer (for lack of a better term) about how they interact and the reasoning for why things are the way they are.
Great descision for making a FG, hope it will end up good!
As for blocking, hold back to block is generally the accepted method instead of the block button. The reason like mentioned before is that it negates crossups, the only scary mixup will be low/high(overhead) and strike/throw. Block butons work alot better in 3D fighters as there are different ways to open up an opponent.
A few suggestions however these are based on my opinion and may not be shared by anyone else, atleast it may inspire you to consider certain aspects.
MOVEMENT
Walkspeed is more a balancing issue based on a character itself, however in geeneral it should be fast enough to propery position your character and slow enough for the opponent to react to.
Dashing into Running, i personally am a fan of running when you hold forward after a dash, it allows for more fluid movement and gives a more natural and cinematic look than the static dashing. It also speeds up the gameplay while it doesn’t neccessarily makes movement hectic.
I personally prefer more grounded FG’s such as SF but air dashing is a popular movement option, if it is implemented i suggest it be done by the use of pressure 2 buttons with a direction, this is far easier and less of an hassly to tap a direction twice in the air.
Jumps, i personally dislike double jumps as it makes a game too hectic and more “random”, i however do like variety in jump arcs, KOF XIII went a bit overboard with the 6 different type of jumps but having a regular jump and a superjump allow for different approach vectors
On knockdown will the player have movement options there like quickrise, rolling, etc?
CONTROLS
Will it be a 3,4,5,6 button fighter? Eventhough i likea 6 button layout for the simple fact you can have more variety in which normals you have at your disposal, however a 3 or 4 button fighter can be as equally rewarding as a 6 button fighter and the amount of normals can be remedied by command normals. Lastly, the vast majority of people whoplay FG’s don’t have arcade sticks, except for the more harcore players. Having only 3 or 4 buttons is perfect for using a controller, making combinations of these buttons you can still use throws and other (universal)attacks.
MOVES
How are moves implemented, will there be normals, strings, chains. How are the moves made up, do they follow the startup>active>recovery path orwill they be implemented in another way. I have zero experiece with UE or any engine for that matter but i imagine that you write a script for different properties such as startup, active, recovery and link these to to proper frames. Will there be counterhits and what is the result of a counterhit, extra damage, knockdowns?
I like a mix of normals, strings and chains. Just one type makes it too bland, especially if character just has strings which can be cancelled into specials. If there is a bit of everything there is variety in offense but there will also be obvious holes which the the defender can use against the opponent. In MK9 the primary offense was the use of strings into specials, you had to commit to a string and not all strings couuld be “hitconfirmed” making it a bit random in nature.
GAMEPLAY MECHANICS
I like universal mechanics which every character has the ability to use, makes it easier to balance but also easier for players to pick up other characters. In find too many mechanics and sub mechanics taking away from the experience of a FG. a few unique universal mechanics should be the core that differentiate it from other FG’s. An idea is maybe having 3 mechanics, one for defensive purposes, one for the neutral game and one for offense.
Will it have meter, meter seems to be the biggest rage in the current fighting games and KI seemingly has meter mechanics upon meter mechanics…too much imo. Will the meter be used for improving certain attacks properties or more unique such as for a stock/bar etc allow you to use maybe it for one of the aforementioned mechanics, defensive neutral or offensive. Again i have to refer to KOFXIII, aside from HD mode i really really like the idea of drive cancels, the ability to cancel one special move in another, this gives the player a big arsenal of options for simply extending a combo or creating a mixup, making a certain special move “safe”, and in general allows the player to create very iunique playstyle.
Throws, how will they be implemented, can you tech them, and what is the result of a tech? If i teched a throw attempt will i recieve a bit of damage like in Soul Calibur, will the person who initiated the throw attempt get a bit of frame advantage to continue his offense eventhough he got his throw teched?. I like the idea of the initiator of the throw to gain a bit of frame advantage but the pushback of the tech should be significant enough to not allow and immediate mixup again., just enough to press his offense.
Combo system, it is one of the defining characteristic of a FG today and unfortunately,imo, the focus is way too much on huge combos, it is a 1v1 game where you play against a person and not a dummy. I like relatively short combo’s in FG’s like Street Fighter, Dark Stalkers(vampire saviour), earlier Tekken games, Virtua Fighter, earlier KOF games. The basic KOFXIII combos are short but ofcourse can get extremely long depending on the amount of meter. Having short combo’s allows for more back and forth between the players, more interaction. Like i’ve mentioned before at the cost of a bit of meter being able to cancel a special into another special allows for alot of creativity. Lastly i feel combos should be uninteruptable, they are the reward for you opening up your opponent.
Hopefully some of this stuff gives some food for thought, and ofcourse, parries are cewl.
No, 3d games always used spheres for collision. From VF1 to smash even SFEX name it used spheres. Main reason it saved a lot of space and alot easier to place.
also its easier to calculate collision with spheres in terms of the formula used
hell i think circles are probably easier to determine hit detection versus boxes.
so considering this is more or less trying to make something using UE4, guess we really should just be asking questions. Or posing suggestions that leads to questions. I guess Epic would like to see you make a 2.5d fighter seem easy in UE4
in all honesty could you be able to make some sort of smash clone with your system, or at least be able to?
as mentioned how about hit stun, or lack of hit stun?
are controls going to be separately threaded? or would it be too much overhead compared to doing everything in one go when reading and drawing a frame? How does UE4 even handle controls in the first place
sure you can lock the framerate, but is it possible to increase framerate without changing game speed. ex: can someone run the game on 120fps, or 100fps, yet it still plays exactly like if it was 60fps instead, and honestly it doesnt really offer any advantages. perhaps if it runs on 120fps the animation might be more smooth but the effective hitboxes remain the same.
Before YOU start giving out suggestions, I would recommend re-reading OP. It makes no mention of creating a fighting game framework “that anyone could use to make a fighting game”. You’re making it sound like he’s making MUGEN 2.0 out of Unreal 4.
Also, recall this specific line from his post
Help/watch me make a fighting game so I don’t get canned.
He states he wants help making a fighting game. Which if you havent noticed, everyone here is generously trying to do.
And I’ll be completely honest, a brand new engine that will rake tons of dough on licensing alone, has much better applications than wasting a bunch of time creating a broken custom fighter that only a handful of people will play on GGPO every few months. The guy wants to make a fighting game so I want to help with that as long as I don’t feel detrimental. But if he’s just making 3D MUGEN then i’ll walk out of this thread right now.
EDIT: I will say this though, I made that post about blocking when I was at work, so I havent really had the chance to catch up on the thread. If he specifically said something that disproves my defense, present it.
Whoa, whoa, whoa… everyone cool out, we’re all friends here!
Sorry if I was unclear. Let me try to straighten this out.
The point of this project is A.) For me to learn Unreal 4, B.) To engage the community and inspire others to collaborate and learn Unreal 4 C.) Create a fighting game framework from which we can build upon.
I have no specific game, characters, environments, or set of mechanics in mind at this point. I plan on implementing features and providing options.
For example: the initial jumping implementation took into consideration the character’s horizontal velocity; you could perform shallow, medium, or long jumps based on how long you were moving one direction just prior to the jump. The latest version I have implements fixed, but separate jump lengths depending on whether you are pushing up-forward or up-back.
Another example would be Back Guard and Button Guard; both will be implemented, with the option to ultimately enable one or the other.
I want to try and create something relatively simple and fun. I want others to follow along and do the same for themselves.
That out of the way, I will attempt to address some of the points raised in prior posts…
What’s your basic idea in terms of what you want from a fighting game?
Again, I prefer the old school games, so I am looking for something probably a bit more weighty than many fighting games today typically are.
I want to try less reliance on specials, super meters, and extended combo sequences. I would like to see mastery of the base movesets be a key factor.
This may end up being terrifically boring. That’s fine! Hopefully people will follow along to the steps as we go and make the adjustments they want to make to customize the game to their liking.
If you are doing a 2.5D game then you shouldn’t need full 3D box hitboxes. The hitboxes should all live on the same plane so 2D squares should suffice.
In a 3D system such as Unreal 4, planes have a depth of zero. I suspect that would make 2D collision detection unreliable, if it worked at all. Some sort of constant per tick raycast for the area of the shape would have to be done, which sounds complicated, honestly. At that point you’re basically extruding the shapes into the screen anyway, only you’re going about it the hard way. There is already a library of functionality in place for dealing with 3D collisions. As long as the hitboxes have some depth, then detecting hits should be fairly straightforward.
The trick will be creating those volumes and attaching them to the character controller. I am envisioning a module in which 2D shapes are drawn over the character, and then automatically given depth so that the physics engine can do its thing. It should all end up being transparent to the creator/player. Is a module like that feasible? I do not know, but if we can make the case that something like this is a good feature to have, it might be worthwhile to pursue and get integrated into Unreal 4.
<TOO MUCH TO QUOTE!>
Many good thoughts in your post. Some I have considered, some I have not. Many points I agree with you on.
MOVEMENT
Currently each character can have a unique max walk speed. I am thinking of breaking this out into separate walk forward and walk backward speeds. Might be neat to have a character with variation between the two. For example: perhaps an aggressive character walks forward more quickly than back.
Dashing probably won’t be too difficult to implement, though I don’t care for it, so I will probably put it off for a while. Same for running and air dashing.
Each character can have unique foward jump and backward jump distances. I will also show how to implement velocity based jump lengths. I will probably provide an implementation for double jumps at the character level as well.
I haven’t though about quick getups. I’ll defer on that till later.
CONTROLS
Adding buttons is really simple in Unreal 4. I will probably start with 4 because A.) the joypad facebutton count issue and B.) I am won’t be spending a tremendous amount of time creating animations initially.
MOVES
We’ll start with implementing normals and getting that down solid. Later, we can look at how we do combo chains. (Probably with the use of the animation montage system.)
There’s a whole slew of decisions to be made about how a normal move is going to be handled as an entity. It is fairly easy for somebody who knows their way around the Animation Blueprint to change up moves, but how those are tweaked for variations in damage, speed, etc gets tricky. It would be a good amount of manual labor. That’s how we’ll start, but eventually some sort of nice system for easily swapping things in and out and tuning.
GAMEPLAY MECHANICS
To begin, there will just be one character, so by default, there will be a universal set of mechanics.
Will probably implement some sort of simple, single layer super meter that unleashes a super move or powers up the base move set. People following along can expand on that as they like.
Just thinking about a simple throwing system to start: Each character will have throw volumes that will resize depending on state. You get thrown, or you don’t. Escapes/counters will be tabled for later.
Parries: same deal- thought about them a bit, but on the backburner for now.
could you be able to make some sort of smash clone with your system, or at least be able to?
I have no doubt it could be done in Unreal 4. Hopefully the framework we’re talking about could be modified fairly easily?
how about hit stun, or lack of hit stun?
Definitely hit stun/hit slide.
are controls going to be separately threaded?
I don’t have an answer for this.
How does UE4 even handle controls in the first place?
Actually the system is really nice. We’ll get to that right away.
<NUMEROUS FRAMERATE QUESTIONS>
I don’t have an answer to this, but two people running the game at different rates sounds like trouble. At some point there are probably diminishing returns to the headaches involved.
cool thread.
there is a similar project going on with Unity 3D, the srk thread is here: Universal Fighting Engine for Unity 3D
it might be a useful read for you, might not.
The new Killer Instinct seems to have hurtboxes in the method you explained. The hurtboxes are tied the to character position but not the animations(meaning it isn’t all over the place during hitstun). You can see the hurtboxes in training mode. This is definitely preferable to what is done in SF4.
About the optional guard button, I’d been thinking of a fighter having something like that for a while. Just merging SF and MK style guard options would cause glaring problems but there are some interesting ways to balance it that I believe would actually add to the game. I was thinking of there being 5 buttons, 4 are the standard KOF attack buttons and the fifth is guard*. When you press guard, your character takes a special defensive stance and you lose a certain amount of meter(you need meter to do it). If an attack makes contact while in this stance(it lasts a second or two) then you will guard it regardless of it being overhead, low, cross-up, maybe unblockables too(designed and unintended). You recover earlier, take no chip and no pushback. BUT, you can be grabbed during this time(and you can’t tech) and there is punishable recovery(during recovery you take extra damage when hit). So the counters are throw and nothing+punish. It can’t be done out of a normal SF style block but you can do back-to-back guard buttons provided you have enough meter. In essence it is similar to parry, though it can’t be done in the air and directional mixups don’t factor in. A skilled player could use it like parry to create an advantage. A player who is confused with a mixup could use up their resources to forgo dealing with it(keeping them in the game but diminishing their future opportunities).
*I call the button guard because I can’t think up anything better to call it. The reason is because of an other idea I have which is tied to the button. If you press the button during a jump but before you reach the peak, your upward movement will be cancelled. This in effect makes your jump arc variable. If you tiger knee it, you get a KOF style hop. I don’t know if this should cost meter or not.
@anoon
If you want to implement parries i will recomend to see how Battle Fantasia did them (the 3s way is just horrid, imo).
Besides that good luck with your project.
Well, I can tell you haven’t played Yatagarasu which tries to do 3S Parries but fails. Mainly because you can block and Parry in that game. Parries have to have some sort of risk. I’d be okay with making them have recovery ala Last Blade or Blitzkampf but there has to be risk. They cannot be dumbed down. Even Garou’s Just Defend system was acceptable, it still wasn’t super easy to Just Defend shit and it’s hard to Guard Cancel after a Just Defend.
A good throw system would go hand in hand with a Parry system. 1 Button grabs don’t really suit it.
2 mistakes don’t make it a right, also, i thought that you were not going to comeback to SRK ever, Loucipher.
Whoa, whoa, whoa… everyone cool out, we’re all friends here!
Don’t be too surprised lol, we’re all going to argue about what kind of game we want in UE4 even if you decide what you want on your own :lol:
I’m still not quite sure what you’re trying to do here; do you want to build a game or a framework for building other games?
What kind of help are you looking for, mostly fighting game related stuff, or technical stuff as well. I’ve actually worked a lot on an unreal 4 game(as a programmer), but seeing as you work at epic you probably have all the help on that end that you need!
What kind of help are you looking for, mostly fighting game related stuff, or technical stuff as well. I’ve actually worked a lot on an unreal 4 game(as a programmer), but seeing as you work at epic you probably have all the help on that end that you need!
Epic games is actually the last company I’d think to have hardcore fighting game fans but I’d be glad to be proven wrong. Also, I’d be ecstatic to see the latest alpha build of Unreal Tournament 4.
I meant the technical help portion, while I’m as reasonably experienced with UE4 as someone who doesn’t work at epic can be, he probably has access to the people who MADE unreal 4!
Even Garou’s Just Defend system was acceptable, it still wasn’t super easy to Just Defend shit and it’s hard to Guard Cancel after a Just Defend.
It was HELLA easy to JD in Garou dude. The window was very generous, if you messed up you were still blocking, and after a successful JD you could MASH and JD everything perfectly. GC is debatable but unless you have shit execution or play Tizoc it’s not that bad.
This Thursday, May 8th, at 2:00pm EST I will be making an appearance on the weekly Epic Livestream over on the Unreal Engine Twitch TV channel.
http://www.twitch.tv/unrealengine
I will be sitting in With Nick Whiting and Nick Donaldson to chat a bit about Unreal 4′s Blueprint feature and how it makes game development possible for a much wider audience. We’ll talk about the Unreal Fighting Game in terms of the overarching goals of the project, what has been accomplished thus far, and when the next steps are.
There will also be a full reveal of the future of Unreal Tournament, so it promises to be a pretty big episode!