Search Unity

  1. Check out our Unite Austin 2017 YouTube playlist to catch up on what you missed. More videos coming soon.
    Dismiss Notice
  2. Unity 2017.2 is now released.
    Dismiss Notice
  3. The Unity Gear Store is here to help you look great at your next meetup, user group or conference. With all new Unity apparel, stickers and more!
    Dismiss Notice
  4. Introducing the Unity Essentials Packs! Find out more.
    Dismiss Notice
  5. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice
  6. Unity 2017.3 beta is now available for download.
    Dismiss Notice

[fighting game] Kinetic Damage [Released]

Discussion in 'Made With Unity' started by n0mad, Mar 18, 2009.

?

Which real martial art would you love to master ?

  1. Muay Thai

    53 vote(s)
    15.8%
  2. Ninjutsu

    70 vote(s)
    20.8%
  3. Taekwondo

    33 vote(s)
    9.8%
  4. Tai Chi Chuan / Qi Gong Jin

    22 vote(s)
    6.5%
  5. Jeet Kun Do

    29 vote(s)
    8.6%
  6. Pencak Silat

    8 vote(s)
    2.4%
  7. Boxing

    20 vote(s)
    6.0%
  8. Shaolin Kung Fu

    76 vote(s)
    22.6%
  9. I don't like martial arts / fighting games

    25 vote(s)
    7.4%
  1. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Thank you very, very much Aldo :)
    In these hard times of insane working hours, these are the kind of words that drive me forward :)

    Working my ass off not to disappoint you all !
    Best regards

    Thank you Kashif :) Keep it up on Project Champion !
     
    Last edited: Feb 19, 2013
  2. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    3,674
    Good to see you are still kicking ass on the dev front... I am looking forward to playing this game :)...and you are also driving me to work harder
     
  3. toto2003

    toto2003

    Joined:
    Sep 22, 2010
    Posts:
    475
    i ll second the others support, looking forward of the release of your game, you ve been a good inspiration even after 4 years you re still there, how you manage to survive? :)
     
  4. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    A sincere thank you :)

    haha, financially, I saved money from my dayjob during 2 years, so I could work at home for 2 other years (and eat pastas everyday lol).
    morally, I just didn't look back a single time :p plus I have wonderful friends to help me release the pressure every friday / saturday night.
    physically, regular sport sessions, healthy food, and a lot of Orange Juice :p
     
  5. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    3,674
    Perfect combo... i do the same thing... hitting the gym during my sessions
     
  6. MABManZ

    MABManZ

    Joined:
    Sep 29, 2011
    Posts:
    144
    Good to see you so close to release! Have you included any support for HID gamepads on Android? I think you should definitely release an enhanced version for Ouya release this summer!
     
  7. dtg108

    dtg108

    Joined:
    Oct 1, 2012
    Posts:
    1,168
    Looks good! How many on team?
     
  8. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Thanks :)
    Ah, well actually the gameplay would have a hard time to fit on a pad (there are some contextual touch components), but things are not set in stone of course. Also, there will be an enhanced version this year on release platforms, so Ouya might be a good idea ;-)

    Thanks DTG,
    only one person (myself).
     
  9. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Hi guys,
    if anyone is interested in creating a single texture by adding several ones on top of each other, in ridiculously low times, I wrote a tutorial for a script 2 years ago. I took the time to write down the script properly lately, so you can find it here :

    Link.
     
  10. Nevers

    Nevers

    Joined:
    May 6, 2008
    Posts:
    39
    Hey nOmad, congrats on getting ggpo into your project!! That's exciting news. I would also like to use ggpo for my project and i'm wondering, from your experience, what stage in the dev process would be best to implement ggpo? Should i try to implement it as soon as i have one character? Should i wait until the full cast is ready? Also, is ggpo reasonable priced?
     
  11. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Hi Nevers ! Hey thanks :)

    Ah, I knew I should have written sooner the promised tip techniques about multiplayer in fighting games ...
    Actually, your question is super interesting, and would need such a lengthy, detailed post to cover all the points.

    I'll make that post in a few days, when things would got packed up, but right now I'll try to answer concisely, in a few points :

    1) In fact, I didn't use GGPO as a package, I coded from scratch my own networking framework based around the GGPO philosophy (aka Rollback)

    2) GGPO model needs to be conceived and integrated as soon as possible into your framework game architecture, step by step. Because it just forces you to use some very specific types of architecture, for the following reasons :


    • In order to be able to rollback your entire gamestate, you need to store every single important variable locally, so you can redeploy them back at any time to distant device. Made simple : you have to be able to save your whole game state at any time, and restore it at any time. Which includes stats, times, animations, data, and hardest of all : game logic. Which leads me to next point :

    • Saving any current game logic perfectly is incredibly tedious if you don't design it right from the first line of code. Because usually, game events are triggered by other events. Like if [1-do this], then it triggers [2-do that] and [3-do that]. But when you have 100 different steps of [do this/that] triggering themselves at different times and conditions, how can you tell at which step you are ? So with rollback, you have to create game logic variables that will monitor each step of these trigger chains. And instead of [1-do this] triggering [2-do that] -> [3-do that], you will have [1-do this], *check each frame if the variable monitoring current logic chain is fullfilled*, if yes, [2- do that], or check if it's rather [3-do that] etc... for each different step. Put it simply, you have to create as many micro state machines as there are local game logics. If you don't design these logics with such a model from the start, you'll have to convert every one of them. For 90% of the core gamecode, that would mean rewriting data structures, methods, or even whole classes. I'll let you imagine the nightmare, especially with such complex mechanics as in fighting games.
    Actually there are 4 crucial steps to manage with Rollback mode :


    1. Store any business variable.
      For example : if your game jumps are bezier based, you have to store every bezier data (control points, duration, step, etc). If you perform a speed based translation, you have to store the speed. If you created a class that manages a special move, you have to store every single business variable of your class.
    2. Serialize all these variables into bytes arrays.
      So you can send them over the network. That part is tricky, because you have to design your custom serialization around performance, as they will happen very often (as soon as player pushes button). So you have to check if some variables can be skipped, if their related game logic is currently inactive, for example.
    3. Fold serialized data into one package, send it to distant, Unfold.
      This is another tricky part, because you have to code tons of specific data folding/unfolding functions on each related class, without screwing current game state. You also have to pack all those bytes into a single array to send it. Data insertion order into array has to be the same everytime, so you can deploy it on the other side by linearly reading the bytes array.
    4. Deploy received data to a current game state.
      That was the trickiest one for me. Because you have recreate a whole complex game logic precise state, just with the least possible amount of variables. When you have to manage player stats (health, energy, power, speed etc), animation chains, combos chains, and hardest of all, complex special moves mechanics, this becomes hardcore.

    That's it, the Rollback model in a nutshell :)
    There's a reason why there are only 3 AAA games that are using it in whole game history, it's freakin hard to implement once you already built a whole framework. So the sooner you integrate its model into your code design, the better.

    But there's actually no other model that has such a powerful, precise, error-free, and lag-free experience :)
    I'm highly doubting you will see any generic, universal Rollback solution for sale anywhere, because it's far too dependant on each code architecture.
     
    Last edited: Aug 25, 2013
  12. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    When a Toucharcade member expressed the cool plan of building an offensive Taekwondo character, I just wanted to build a video showing how offensive you can become with that Art :)

    I only covered 2 specials out of 4, and didn't talk about stance switching, Perfect strikes, debuffs, or focusing on localized damage yet. But this could show you what kind of mindgames you'll have to think about by playing Kinetic Damage. Here are 2 fights against the AI.
    Hope you'll like it !

     
  13. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
  14. Nevers

    Nevers

    Joined:
    May 6, 2008
    Posts:
    39
    Thanks for the detailed answer nOmad! It's a small shame it isn't the actually ggpo but i'm glad you built your own received great results. I guess I'll have to start a small side project to figure out how to implement my own rollback code lol. such a big job O_O haha
    Thanks again!
     
  15. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    19,820
    SO CLOSE TO RELEASE NOW!

    GO GO GO GO GO! but don't rush it... need to market it really good :) 4 years paycheck incoming :D
     
  16. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Haha thanks Hippo ! :D
    Actually I even took a week off my dayjob to focus 100% on the last tasks before release :)
     
  17. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    19,820
    Do you have a proper marketing plan?
     
  18. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    The usual procedure I guess : banners, ads, sending reviews to popular sites, going to conferences, expos, etc ... I even got some ideas for Kinetic Damage branded outfits :)
    Beyond those usual stuff, I'm mostly relying on gamers feedback and word of mouth. If game doesn't live up to the hype, then it will be because it didn't deserve it. I'll have some fun times discussing strategies with gamers over forums, too :)
     
  19. broken

    broken

    Joined:
    Mar 14, 2013
    Posts:
    30
    Hi, n0mad!

    I'm sorry if I did not see the available information in this topic.

    1. How you move the fighters in the game, by rigidbody.velocity (addForce ...) or change transform.position?
    2. If you define a collision with colliders and triggers (OnTriggerEnter), how you calculate the position (Hit Point) of attack in order to show the effect (flash) of a hit in the right place.

    Glad that there are people who share their experiences. Game is cool!

    Thanks!
     
  20. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Hi Broken !

    1. I wrote my own collision engine, based on Bounds prediction (which themselves are calculated from the FBX animated hitboxes). So anytime a fighter receives a translation / bezier request, it is stored inside a structure that determines the new position. Then on LateUpdate, I'm simply doing a Sweep Test (not Unity one, homebrew one) to determine where the real position should be. The advantage for such a technique is that fighters will never go through each other, even at super high speed, plus I got complete control over animation-driven movements.

    2. Collisions are calculated with Bounds.Intersects (= the fastest of all Unity collision detections). The function doesn't provide any collision point, but all my actions, strikes, etc do have a lot of internal data that can be used to determine if the strike has hit the head, left arm, right leg, etc. After being determined, I just put the collision visual at the matching bone.

    Thank you for your interest :)
     
  21. Ippokratis

    Ippokratis

    Joined:
    Oct 13, 2008
    Posts:
    1,452
    Hi,
    I am not so good at marketing, but I wish to share some thoughts :
    - To get people talking about your game, you have to get people playing your game first.
    - Since you have done such a big investment in developing, investing in marketing, done by people who get paid for doing so, in a proper way seems a decent choice to protect your investment so far.
    - Regardless your choices on how you market this game and the outcome of your efforts, you have my respect for being so helpful with all of us so far. But, I really wish to see you succeed on this one, it is the only "fair" outcome.
    Kind regards,
    -Ippokratis
     
  22. BrUnO-XaVIeR

    BrUnO-XaVIeR

    Joined:
    Dec 6, 2010
    Posts:
    1,698
    Making the game is the easy part...
    For an indie, real challenge comes after the game is done. Good luck!
     
  23. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Thank you guys for your awesome comments !

    @Ippo : Marketing is very important, I agree, and having people play the game is the most efficient marketing in my opinion, too :) That's why I decided long ago to have a simple business model : shareware. Game will come free with 2 martial arts, quick matches, and 1 level. And the only IAP will be full game, with all martial arts, levels, career, multiplayer, etc. Next to that, once dev is finished, I will transform my dev time into "virtual presence" time, meaning I'll make a lot of efforts to have some online presence with people who enjoy the game, talking with them, sharing techniques, tips, videos, etc ...I want to behave like some kind of "gaming buddy" with people who'll enjoy Kinetic Damage, instead of the classical marketer. Thank you for your sincerity, I really appreciate !

    @Bruno : Thanks :) Although for this one, I can assure that making the game was definitely the hardest part :) I really can't wait to stop having to spend all those hours and hours working in my lair, and finally start to share the game with the world. At this point, marketing, virtual presence, etc, all sound like a welcome vacation to me :)
     
  24. broken

    broken

    Joined:
    Mar 14, 2013
    Posts:
    30
    Thanks for the reply!
    I have read the information on the links:
    http://forum.unity3d.com/threads/19299-fighting-game-Kinetic-Damage/page15
    http://forum.unity3d.com/threads/19299-fighting-game-Kinetic-Damage/page12?p=734968#post734968

    But if you only have one Fighter Global HitBox how you define that Opponent StrikeBox hit exactly in the face, body, leg, arm?

    Thank you!
     
  25. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Yes, at the time, when I wrote this post on page 15, I was using Physics driven collisions, where OnTrigger and Unity's Collider methods would give me the exact point. But now I'm using hard written data for each strike, telling me if it's a head, torso, leg strike etc... then the side (left or right) is calculated upon the fighter's stance (normal or inverted). Actually I manually wrote tons of data into each move, strike, etc.. (some being auto-written on import, though) like strike's target limb, duration, strength, etc... When there's a hit, I just have to collect all those data and calculate the result i've searching for :)
     
  26. broken

    broken

    Joined:
    Mar 14, 2013
    Posts:
    30
  27. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Thanks for the link, yes, actually those Editor scripts I wrote are doing a lot of operations, like cleaning useless animation curves (scale / position for bones), create mirror anims, etc. Editor scripts are quite powerful !
     
  28. broken

    broken

    Joined:
    Mar 14, 2013
    Posts:
    30
    Have you tried for their tasks Mekanim new animation system in the latest version of Unity?
     
  29. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    I didn't yet, as homebrew anim system fits the job (for now), but I'm interested in Mecanim for future work on KD :)
     
  30. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Ok guys. I can't stand making you all wait any longer. So I'll send it to Apple asap, without multiplayer for now. It will come as a free update quite soon.
    You'll have a few weeks of fun with single player anyway :)
     
  31. _Daniel_

    _Daniel_

    Joined:
    Feb 28, 2007
    Posts:
    2,466
    Awesome! Can't wait to play!
     
  32. TylerPerry

    TylerPerry

    Joined:
    May 29, 2011
    Posts:
    5,577
    Is there any chance of a PC version?
     
  33. Izitmee

    Izitmee

    Joined:
    Jan 27, 2011
    Posts:
    3,224
    Hey, Sir.Tiddlesworth made a thread for voting Kinetik Damage for IndiesCrashE3 :) You can find it here
     
  34. HitStop

    HitStop

    Joined:
    Mar 22, 2013
    Posts:
    6
    Given that this is Unity, after all, I think PC is not completely out of the question. But of course, it would be up to n0mad to decide.
     
  35. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Hi guys !
    Thanks Izitmee for the Indies Crash heads up :)

    @Tyler : I might give it a try for PC, but I'm not too confident about current graphics on a full 30" screen. I'm intending to overhaul all 3D models post-release anyway, so this could make it a candidate for PC ;-)


    Meanwhile, I just tested Kinetic Damage on Samsung's latest Galaxy S4. Honestly, it looks impressive, the S4 screen is awesome. Running at 50 fps, full details (with intensive bloom effects that even the iPhone 4S has a hard time to handle).


    Here is a screenshot :

    [​IMG]
     
  36. TylerPerry

    TylerPerry

    Joined:
    May 29, 2011
    Posts:
    5,577
    What about Ouya? The graphics would look worse I guess, but I think that early adopting a platform is a boot above future devs. And even Ouya said:

     
  37. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Interesting. If OUYA wants to push the Fighting Game community on their platform, then I might give it a shot to salute their effort. (even if KD controls are designed for touch devices)
     
  38. Saikobooru

    Saikobooru

    Joined:
    Oct 30, 2012
    Posts:
    31
    Oh yes, I can't wait to play this on my iPad! Really looking forward to this now.
     
  39. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    1,762
    Guys, stop engaging Nomad in conversation LET HIM FINISH THE GAME!
     
  40. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Submitted to Apple :)

    $KineticDamageForReview.jpg
     
  41. Izitmee

    Izitmee

    Joined:
    Jan 27, 2011
    Posts:
    3,224
    Wohooooo! CLAP CLAP CLAP!!!
     
  42. Sir-Tiddlesworth

    Sir-Tiddlesworth

    Joined:
    Oct 19, 2011
    Posts:
    908
    Awesome!
    You must be glad that you are finally releasing it.
     
  43. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Thanks :) totally !
    But the most interesting is yet to come ! :p
    Multiplayer, even deeper game mechanics, specializations .... got a lot, lot of ideas to make it more unique. Can't wait to read players reactions about how they choose to fight, too.
     
  44. jrDev

    jrDev

    Joined:
    Nov 5, 2008
    Posts:
    1,564
    :-O congratulations! What was it, 4 years in the making?
     
  45. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Thanks ! 4 years and 5 monthes, I'll never do a fighting game alone again :p
     
  46. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,924
    Congratulations!!!
    Wow, impressive you had the drive to go though with it!
    I wish i could stay that dedicated for extended periods of time as well : D
     
  47. meta87

    meta87

    Joined:
    Dec 31, 2012
    Posts:
    254
    huge props! what an achievement, can't wait to give it a go :D
     
  48. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Thank you guys :)
    I'm keeping an eye on Apple's review status, and will ask to move this topic in Showcase section as soon as it hits the store.
     
  49. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    1,762
    Damn, i got an email notification from this thread hoped it was a message saying it was live on the app store!
     
  50. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Ladies and Gents, I'm very, very happy to announce that..

    Kinetic Damage is now officially approved by Apple, and will be out on iOS this next Wednesday, 5th June.

    Now let's partyyyyyyyy ! :D

    [​IMG]


    and the next post will be the 500th of this 4 years old thread ! haha !
     
    Last edited: May 30, 2013