Suggestions on how to go about animating a 2d fighting game...

Discussion in 'Unity Gossip' started by bscarl88, Oct 5, 2012.

  1. bscarl88

    bscarl88

    Member

    Joined:
    May 11, 2012
    Messages:
    11
    So we're looking for a 2d character designer/animator for our fighting game. I would love the art/fighting style to be like Dust Elysian Trail ( http://www.youtube.com/watch?v=hs1eV4fbJRM ). In order to achieve this style of art mixed with colliders and such in Unity, should I have an artist create the various attack/jump animations like they would a cartoon, and I would create colliers that appear on the animation? I don't think any built in 2D animator with the skeleton system (sorry for my terminology) will give me the desired effect, as they seem very "Puppet" like to me. Can someone correct me if I'm wrong, or tell me if there's a best way to get the animation style above? Thanks for all the help! :)
  2. zombiegorilla

    zombiegorilla

    Member

    Joined:
    May 8, 2012
    Messages:
    1,757
    Heh.. this area I (frustratingly) have a ton of experience with.

    There are a handful of ways to go about it. It is important to choose carefully based on your needs and resources, because animating 2d characters like the ones shown impact multiple areas. First, animation is very time consuming, you want to make sure you solidly work the pipeline out in advance, because having to back and change a ton of completed animations is a massive time sink. Second, unfortunately, there aren't any broad/common solutions for this with relations to games. Often they are animated with in-house tools, or converted/translated from another tool like flash or maya. Often the solution you go with is based on the technical needs of the game.

    Since you are presumably using Unity, it will most likely be either a puppet-rig tool that draws from xml or other data source, or animated in 3d in an app like maya or blender.

    The big issue/concern here is size. This kind of stuff is very common in Flash because it is a vector engine and animation tool, and the published files are very small (vector) or fairly small and optimized (puppet rig with bitmaps). With 3d there are 3 common approaches. (assuming that the fidelity is similar the example)

    1) a puppet rig with a fair amount of parts broken and possibly mixed with swappable posed images like hands and face parts or other things that don't animate well on a simple rig.

    2) fewer parts but a higher fidelity rig that you can do mesh deformation on so you can bend a curve parts. More organic look, and can require less image data.

    3) straight up 2d frames played on single plane.

    The biggest challenge here is the platform(s) you are building for. If your intent is mobile devices at all, this very quickly becomes complex. Sprite sheets get quickly out of control. Especially if you have a lot of animation or different appearances or multiple characters. You can quickly hit memory walls, and have huge download sizes. Especially dealing with retina devices. And android and ios handle memory just a bit differently.

    So if intend to have a mobile version (or web), usually a puppet rig is going to be most efficient but you will really want to plan the art style and production assets carefully to avoid problems that are time consuming to fix/change. A mesh deformation approach is will reduce image data, but will increase animation size and memory use. 2d traditional animation with full character per frame, just isn't a viable option.

    As far as the mechanics of how to animate it, it sort of depends on your skill assets. If you have (or are) an animator that works primarily in a tool like flash and is efficient with it, you can use that and then just build a tool to translate the animation data. If you are/have a 3d animator, it might work well to go that route and build the animations in 3d. The main thing is that 2d animation is a slow, time consuming process, and you want to tailor your solution to work around that. (and of course to deal with technical realities of the target platform.)

    My biggest bit of advice is to test heavily and thoroughly before committing to a solution. Results will vary based on your game's art and animation style.

    Sorry not a simple/direct answer, but hopefully some useful information to help you make one.

    ZG

    NOTE: there is always a 4th option, which is go fully 3d and render it too look like a flat, drawn image. But that rarely has been done in a way that will achieve what you are looking for. Though sometimes you can get away with mixing that method with the other above methods to optimize/reduce size.
  3. n0mad

    n0mad

    Member

    Joined:
    Jan 27, 2009
    Messages:
    3,731
  4. bscarl88

    bscarl88

    Member

    Joined:
    May 11, 2012
    Messages:
    11
    Thank you so much both of you for this information. This is way more information than I expected I am very excited for this! I can't thankbyou enough zombiegorilla too! Both of you!
  5. bscarl88

    bscarl88

    Member

    Joined:
    May 11, 2012
    Messages:
    11
    Hmmmm i think it might be cheaper and easier for me to go with some detailed pixel art. Streets of rage style art, but super smash brothers style gameplay. what do you guys think about that? This would be my first attempt at a video game of any kind, so i shouldn't make it too complicated for myself
  6. n0mad

    n0mad

    Member

    Joined:
    Jan 27, 2009
    Messages:
    3,731
    If it's your first attempt at a video game, I should at least inform you (by experience) that fighting games are, opposedly to what it looks like, a very difficult genre to produce.
    At first, I thought that Kinetic Damage would take "only" 1 year to produce, but it ended to be 4 years (10h/day, 6 days/7 on average, as a one-man production, though). There are 3 main domains where it requires massive work loads :

    - Animations : you just have to create *tons*. This even might be the genre where you have to produce the highest number of different animations. Thing is, nowadays fighting game standards are very high in that part. The minimum amount of strikes, hits, movements, special strikes, etc to insert for each different fighter is insanely high, if you want to deliver an "at least" varied gameplay. Not enough strikes and player gets quickly bored, so it's kind of normal to see a minimum of 20 different strikes per fighter. Then comes the "being hit" animations, which also have to be very varied if you don't wnt to trigger a feeling of redundancy. And movements, like standing still, crouching, running, dashing, jumping, guarding, etc...
    So that's only the starting point to enter the fighting games crowd. Once that point reached, there's the need to have additional, original, specific movesets to make your game not look like yet another fighting game, to create its identity, and therefore its fanbase.
    As a concrete reference : Kinetic Damage "only" have 8 Martial Arts, 16 normal strikes + 6 combos + 4 specials per fighter, and total number of animations is .... 852. Each animating 40 bones, for 0.5 to 3 seconds. (Plus 1152 different textures, but that one is a bit specific to the game as you can create your character).

    - a rock solid state machine, with the least possible CPU consumption : state machine is how you manage all the different positions, conditions to perform an action, etc. With so many different strikes, if the state machine and the code architecture are not bullet-proof and bug-free, you will open the game to some potential bug exploit that some player might use to win 100% of the time, which can just kill the game's popularity in no time. Same goes for fighters balance : every strike, movement, damage, has to be checked dozens and dozens of times before going to full production, to prevent infinite combos, unreachable hitBoxes and other undesired stuff. Once again, some of the biggest fighting games have lost a truckload of popularity in no time for just one unbalanced fighter (every fighting game fan knows the history of Sentinel in Marvel vs Capcom series, for example).
    Meanwhile, all of those conditions and intrications have to be thought with the highest possible optimization in mind : because fighting games are generally very fast paced, which means litterally bombing the CPU with action requests. For mobile, it cannot be just a secondary priority.

    - a competitive Artificial Intelligence, yet not too tough, and not too easy. Fighting Games are mainly meant to be played with another player, but the solo gameplay is what holds their attention when nobody's around. so if you don't have a compelling Artificial Intelligence, players will get bored and leave the game on the shelf, or will only play it for online matches which can become very redundant after some time. The difficulty of an AI for a fighting game is to prevent it from being robotic, predictable or too unforgiving. For example, I remember that on certain games during the 90's, some fighting AIs were so straightforward that sometimes you could never land a single blow, because the cpu would detect it as soon as you pushed the button, and launched the proper unguardable counter in miliseconds. That's killing any fun, imo. On the other hand, making an AI too permissive will bore the hardcore players in no time, as soon as they discover "the right strike at the right time" to repeat over and over. So the challenge is to create an unpredictable, but yet realistic AI. And that means creating routines of movement prediction, player analysis, on-the-run strategy changing, etc. All while keeping a very small CPU consumption (which is also a huge workload of code optimizing, rewriting, synthesizing, etc).

    So all in all it's just a truckload of work, if one doesn't want to lose any motivation after some monthes of development because he realizes the fundations are unstable, or because the game simply becomes unplayable.

    I didn't write this to discourage anyone from creating a fighting game, but to rise the awareness a bit more on all the potential obstacles that pop here and there during the development, and prevent to slowly lose faith in the project because of some unpreparedness.

    Pixel art can be one choice, but as Zombiegorilla fairly mentionned, 2D still requires tons of sprite sheets, that are not even easily editable once a move has to be changed, or retimed, etc. I started a 2D fighting game project when I was 17, but it turned to be so much 2D work for just one movement that I never found the willpower to finish it. That's why I directly started Kinetic Damage in 3D. If you just want to make it for fun or learning purpose, you could do 8-bit pixel art style, so animations wouldn't eat 80% of your time, though :)

    Anyway, I wish you luck and strength for your project, and fun ;-)

    p.s : I was partly able to anticipate all those problems thanks to the great people that is the Fighting Game Community. Fighting game fans are generally very invested in milking every single move data, breaking every possible tactics metagames, to some insane amounts of precision and guessing. It's even been a common procedure for them to publish the whole frame data tables for each new fighting games (like this one), in order to help other FGCommunity folks to understand the mechanics.
    So I recommend anyone who's planning on producing a fighting game to first take part of that community, chat with hardcore players, and try to understand their vision and mindset (and indeed play fighting games, a lot). The most popular communities are of course www.shoryuken.com and www.eventhubs.com.
    Last edited: Oct 7, 2012
  7. bscarl88

    bscarl88

    Member

    Joined:
    May 11, 2012
    Messages:
    11
    extremely interesting and informative read!

    I'm thinking I should maybe start with 3D graphics then, as 2d sounds like it's a lot more work, and can be way more expensive. Would you say this is true?

    I was watching videos for your Kinetic Damage game, the animations look great!! the animations look like there was some mocap work to them.
    I'm no artist, so i was planning on paying for characters/animation sets., then i would add the hit detecion/strike detection boxes myself. If i can get this done, that would take the workload off of me for the animations, and maybe i should stick with 2D, but i was only mostly going with 2D because i felt it would be the cheaper/easier alternative.

    If anyone is interested in making a multi platform fighting game with me, most simliar to smash bros, let me know! :)
  8. n0mad

    n0mad

    Member

    Joined:
    Jan 27, 2009
    Messages:
    3,731
    Thank you Carl ;-) If you want to keep into 2D style without having to do tons of sprite sheets, you could still do pixel art, but with fewer anim steps, like in old 16-bit games (Street Fighter II, for example, only had 3 sprites for strong punch : arming, striking, recovering, all timed shorter or longer to give the desired motion effect). This could give you the basis for testing and coding, and you could add more sprites later on, if you feel the need to :)
  9. zombiegorilla

    zombiegorilla

    Member

    Joined:
    May 8, 2012
    Messages:
    1,757
    The thing about about building it in 3d is that your whole environment generally speaking, has everything you need. So the pipeline is very short. As n0mad mentioned, changes in a 2d process can be time-consuming (depending on your process).

    If it is a puppet rig built in 3d, it can be closer to 3d editing, but you will have limits that will have to be accounted in your pipeline and dealt with. For example if your character is using a sword and he has an attack that is a side swing, with 2d you will have to have at least two images, the front and back of the hand and swap them at some point in the swing. If you need to adjust the timing, there is additional work. Not a lot, but lots of little things like that can add up in terms of time and additional images. If it were all in 3d, little things like that are much easier to deal with.

    Let me add two more points here:
    1) Style should drive your choice.
    Ideally you want the game design to drive the tech considerations. For example, some friends of mine built a game called skullgirls. It was all 2d and a lot of work. But the game concept was driven by one artist's style and vision. They could have done a lot of things to simplify the building of the game, but then it would have lost what makes it unique.

    2) The right tool for the right job.
    I would probably not recommend using Unity for a 2D fighting game with high-fidelity art-style. While it certainly can be done, there are tools and ways to go about it that are a lot more efficient. While I love unity, and it does a lot of great things, for certain types of games, there are more optimal solutions.

    As an example, the game I am working on now is a 2d fighting game with (currently) around 300 characters with each with several hundred frames of animation. And it is a case where the game has a very specific style. We tried several different solutions. Unfortunately with Unity we hit too many walls in terms of size and performance. And with so many characters, and more coming, pipeline was huge consideration. Ultimately we ended up building our own engine specifically for the task.

    2d fighting games (and 2d games in general), have been around longer than 3d, and folks have come up with many creative ways to deal with them. Again, while you can pull them off in Unity, it is designed for a larger canvas. Often it can be overkill for 2d, and the overhead too expensive. (especially for mobile devices.)

    ZG
  10. bscarl88

    bscarl88

    Member

    Joined:
    May 11, 2012
    Messages:
    11
    I always considered making it a 3d fighting game, but as you said, I feel like it takes away from my vision!
    Do you have any suggestions for good 2d game creation engines? Possibly on the cheap end?
    I might start a kickstarter project once I get a few interested people together.

    I was also thinking on turning it into a side scroller MMO like maplestory in a sequal of some sort, but with more mature style art, and a better fighting system. I have written a 6 page document as to what I foresee in the game in great detail. From how I want the animations and art styles, down to specific characters, and game rules. I plan on having a league of legends game type which I have a few awesome ideas for.
  11. zombiegorilla

    zombiegorilla

    Member

    Joined:
    May 8, 2012
    Messages:
    1,757
    There are several options, but it will primarily depend on your target platform(s). Do you plan on mobile, or pc/mac or web or some combo of those?
  12. bscarl88

    bscarl88

    Member

    Joined:
    May 11, 2012
    Messages:
    11
    I would be doing Mobile and Xbox to start. Maybe moving toward PC eventually (hopefully steam would take up my game :) )

    BTW I am in contact with an artist right now that has agreed to do my artwork, and help out as much as he can. He said for a high res pixel art with over 20 animations and good framerate, it would be about 2-300 euros. but he might go lower since he found out it would be an independent project. Sounds about right to me from what I've seen!

    What would you guys suggest for PC, or Mobile, or Xbox, and what would you suggest for where to start? I honestly could not appreciate either of your help anymore. You both have overexceeded my expectations as to the information I would have gathered.

    P.S. the artist goes by balthazar321 on Deviant art
  13. Philâ„¢

    Philâ„¢

    New Member

    Joined:
    Jul 2, 2012
    Messages:
    272
    The only tool I can think of which publishes to XBox (via XBLIG) and mobile platforms is Monkey.

    http://www.monkeycoder.co.nz/

    It's 2D only, so you're not going to have a choice between 2D and 3D if you use that. It's a long way behind Unity in feature set, but if you can live with the features it has, it will target the platforms you want at a very reasonable price.
  14. bscarl88

    bscarl88

    Member

    Joined:
    May 11, 2012
    Messages:
    11
    Thank you! I did notice that there were some unity tools to do 2D gaming.

    ex2D www.ex-dev.com/ex2d

    and one called uni2D.
    I might look into those as I am really enjoying the Unity Interface. But any suggestions will always be appreciated :)
  15. zombiegorilla

    zombiegorilla

    Member

    Joined:
    May 8, 2012
    Messages:
    1,757
    Most of the 2d unity assets are for handling sprite sheet/frame animations. Those will work, but that is also where size is going be a problem. Especially for mobile. Figure you are going to need characters to be a good 300-400 pixels tall (which should be good all the way up to x-box, but too small for ipad3). if you multiply that times frame times character, you will get an idea of the size. You will probably have to work out streaming for the devices to avoid a huge download, and some memory management handle the display. If you puppet rig as much as you can, that will help massively in size/memory, but add complexity.

    X-box and mobile are very different, so probably Unity would work well for you. The optimal solution would to build the mobile natively and use something like unity to build for the x-box. But that requires more time a resources.

    My best suggestion for you is to test hard and early. Figure out your sizes as close as you can and get temp animated assets as placeholders. Don't worry about UI, colliders or anything else. Get as many animations on the stage as figure you will need, and then build it to your target device platform. See if it breaks. If it does, reduce until it doesn't. Or if it doesn't break, increase until it does. Find the breaking point.

    Try to do this before you set your animator to task. Especially if you are paying. You don't want to have to pay to have it redone. ;) 3d and the like are flexible if you need to make changes. A 2d pipeline is much more linear. You want to figure out as much as possible before production art starts.

    Good luck.
    ZG
  16. Philâ„¢

    Philâ„¢

    New Member

    Joined:
    Jul 2, 2012
    Messages:
    272
    There are, and they're very good, but you said you were targeting XBox. You can't target XBox with Unity, because it doesn't support the XNA path, and - from the information you've provided so far - you don't appear to have the sort of money and infrastructure behind you to buy Unity's XBox license, get approved as an XBLA developer, etc. But yes, sure, if you're prepared to ditch XBox as a target platform in exchange for enjoying the Unity interface, Unity would be a good tool.
  17. bscarl88

    bscarl88

    Member

    Joined:
    May 11, 2012
    Messages:
    11
    I think I'll start with an Xbox 360 Game, then go down to a mobile app.
    If I have to downgrade for a mobile app, I'll use animations with less frames, but ensure the moves take the same amount of time to complete their frameset.

    I won't be using any puppet rigs. The art style is pixelated, so just sprite animations sets with collision detectors/strike detectors per frame.
    Do you think Unity is the best tool for me if I am to go about it this way? or is there a better alternative?
    Is unity going to be less optimized for performance than other engines?

    When you say build natively, what do you mean?

    Also, what platforms can i develop for if I buy the $150 Unity?
    Last edited: Oct 9, 2012