Unity Community


View Poll Results: Which real martial art would you love to master ?

Voters
437. You may not vote on this poll
  • Muay Thai

    71 16.25%
  • Ninjutsu

    87 19.91%
  • Taekwondo

    44 10.07%
  • Tai Chi Chuan / Qi Gong Jin

    28 6.41%
  • Jeet Kun Do

    39 8.92%
  • Pencak Silat

    11 2.52%
  • Boxing

    30 6.86%
  • Shaolin Kung Fu

    99 22.65%
  • I don't like martial arts / fighting games

    28 6.41%
Page 18 of 28 FirstFirst ... 81617181920 ... LastLast
Results 341 to 360 of 553

  1. Location
    Rome / Niš
    Posts
    1,754
    Quote Originally Posted by n0mad View Post
    Haha that could be true if pizza didn't make me instantly fat
    Thank you, I really appreciate such support
    Totally out of contest but... oh man! You mean you gave up on pizza? I can only imagine how hard it must be. Now your work on Kinetic Damage looks even more heroic

    ::::: GOSCURRY - a hard game :::::

    I am DEMIGIANT
    HOTween : a fast, type-safe, and powerful Unity tween engine
    HOTools - HOUnityLibs


  2. Location
    Paris
    Posts
    3,730
    Quote Originally Posted by Izitmee View Post
    Totally out of contest but... oh man! You mean you gave up on pizza? I can only imagine how hard it must be. Now your work on Kinetic Damage looks even more heroic
    But now that we've been talking about pizza, I'm having a harder and harder time to resist go buying one
    Oh screw weight control, tonight will be pizza + beer + Tera


  3. Location
    Utica, Michigan
    Posts
    4
    I read your post about how you are trying to support yourself. Have you thought about putting this project on KickStarter if you are going to continue fulltime development?
    Manipulating my world one vertex at a time.


  4. Location
    Paris
    Posts
    3,730
    Quote Originally Posted by a_insomniac View Post
    I read your post about how you are trying to support yourself. Have you thought about putting this project on KickStarter if you are going to continue fulltime development?
    This could have been a solution (as there are EU alternatives to Kickstarter), but I'm afraid I wouldn't have anything really convincing to offer to backers (besides a full copy of the game when released, but Kickstarter ended setting the bar much higher than just offering the product).
    Don't worry, I'll find a way By september, it will be probably finished enough to be released without a problem, and if it's not, I'll just work at night again on top of a dayjob ^^
    Last edited by n0mad; 05-16-2012 at 01:51 AM.


  5. Location
    Boston, Ma
    Posts
    2,441
    Keep this going man... I can't wait to finish up school so I can return to working on my game... also will there be an Android version?


  6. Posts
    134
    Keep up the good work n0mad I really hope your game is successful. I'm seriously considering quitting my day job to work on my game too, but I haven't saved nearly as much as you I would only last a few months


  7. Location
    Paris
    Posts
    3,730
    Thanks for the cheerup guys ^^

    @Neptune : Yes there'll be an Android version. I hope that Project Champion never ends in a "good memories" titled dvd rom !
    I really would like to see it finished, there's a lot of potential in your work

    @MAB : one trick used by some indies is to create a much simpler game, done in like 3 monthes max, and use its revenues to live 100% on it so they can work full time on a bigger project

    Anyway, big cheers to you guys, keep your dreams real !


  8. Location
    Rome / Niš
    Posts
    1,754
    Now I'm so happy you'll be releasing for Android too

    ::::: GOSCURRY - a hard game :::::

    I am DEMIGIANT
    HOTween : a fast, type-safe, and powerful Unity tween engine
    HOTools - HOUnityLibs


  9. Location
    Paris
    Posts
    3,730
    Quote Originally Posted by Izitmee View Post
    Now I'm so happy you'll be releasing for Android too
    It will be submitted at the same time than the iOS one, indeed
    Also, as I tried to optimize it to the max, the Android's version fate will still suffer from fragmentation problem, so I can't guarantee the game will run smooth on every device. I've tested it on a Galaxy S 1, and it's running smooth (30-50 fps depending on graphic settings, will update benchmark soon wih latest build). So as Galaxy S II seems to be the most widespread device, there shouldn't be any problem.
    I've made a graphic settings slider, going from "low" to "standard", letting the user disable some stuff in fights that could impact the overall experience (like alpha textures, some background objects, etc).


  10. Location
    Paris
    Posts
    3,730
    Hi guys,

    I just spent some time to make an indepth AI explanation with commentary, to clarify how I created the structure of the AI framework.
    I included written subtitles too because of my awful frenchy accent.
    Just click on the "CC" button (also contains AI processing infos)





    Note that this only showcases "normal" strikes. Special strikes will be, well, special (= more strategic than simple glorified normals), and will add yet another layer of thinking into how you'll have to fight. They're already coded, but not yet showcased/explained.
    Last edited by n0mad; 05-21-2012 at 01:09 AM.


  11. Location
    Rome / Niš
    Posts
    1,754
    Again, I love when you talk about your work, and this one is superbly interesting, HAD to put it in my newly-born Insights & Guides HOBlog page Thanks a lot for sharing.

    ::::: GOSCURRY - a hard game :::::

    I am DEMIGIANT
    HOTween : a fast, type-safe, and powerful Unity tween engine
    HOTools - HOUnityLibs


  12. Location
    Paris
    Posts
    3,730
    Quote Originally Posted by Izitmee View Post
    Again, I love when you talk about your work, and this one is superbly interesting, HAD to put it in my newly-born Insights & Guides HOBlog page Thanks a lot for sharing.
    I'm honored ! Thanks !


  13. Location
    Paris
    Posts
    3,730
    Dev Blog update

    Hi guys !

    Nearly finished the AI, and it's shaping exactly like I wanted it to be, I'm really excited I'm regularly testing AI vs AI fights to tweak the martial arts overall balance, and often finding myself saying at my screen fight supporter stuff like "Come on you AI guy ! you can do it, just land that strike at the right time and you'll get the advantage !". Pretty hilarious sometimes.


    To tell you, I've even discovered some neat combos thanks to some AI on-the-run decisions.
    One of them that impressed me the most was :
    - AI_1 makes a dash towards AI_2 to start a combo chain
    - instead of retreating or guarding, AI_2 placed itself in a counter waiting posture
    - AI_1 strike, AI_2 counters, AI_1 is dazed for less than a second
    - AI_2 sees an opportunity to chain with another strike
    - AI_2 combo this strike with a special ("Chi explosion"), AI_1 is stunned again
    - AI_2 detects that the histun opens a new window to chain with another special ("Palm Force", pushes back the target 2 meters away)
    - AI_2 sees that it still have room for yet another final strike before AI_1 recovery, as this Martial Art (TaiChiChuan) does have an insane range, so it strikes.

    So in the end, in 5 seconds, I witnessed a furious and totally unexpected counter chain of actions from AI_2 against what was supposed to be an aggressive combo chain from AI_1.
    She ended with receiving a 5-hit counter + 2nd strike + explosion + ejection + strike, and twice the damage she intended to output on her target
    She would have been a ball, it would have litterally been a homerun

    Balance wise, there are no infinite combos, as expected (thanks to strict frame data), and each Martial Art feels very different from each other. There is also another core mechanic that will prevent from chaining powerful stuff infinitely, which I will unveil later next month.
    I've also pushed the 3 AI stats even further : as says the Advanced AI video, there are 3 different stats used for the AI decisions. As I didn't want to make it feel like a set-in-stone "character", I've written a function that will redistribute those stat values on the fly, depending on different events.

    * For example, if the AI detects that it's been hammered by its target for more than 3 seconds, it will redistribute some of its stat named Aggressivity towards Reactivity, and therefore will be more inclined to counters and defense rather than attacks. Sort of "shit, I'm being beaten hard, I better wake up NOW".

    * Another example would be if the AI "feels" its DPS (damage per second, yes it is calculated ^^) is way below the target, it redistributes some Reactivity towards Aggressivity, so it will go more toe-to-toe. Analysis in this case wouldn't be touched, because it is more important than Reactivity to make an efficient strike (like deciding to strike feet if target is used to keep standing).

    There are actually more than 20 different case scenarios of AI readjustment, so you will really need to pay some attention to how AI reacts if you wanna win, and adapt your fighting strategy on the fly too.
    I've limited that redistribution to 3 points over a total 5 x 3 (Analysis, Reactivity, Aggressivity), so each AI fighter will still keep a "base personality" over adaptation.


    I'll post a video of AI vs AI combats when they will be finished to demonstrate all the above.
    Last edited by n0mad; 06-19-2012 at 06:41 AM.


  14. Location
    Boston, Ma
    Posts
    2,441
    That is sounding awesome every time you post... i can wait to play


  15. Posts
    31
    Very Cool, the animations are great. Love it.


  16. Location
    SK, Canada
    Posts
    156
    Loving this. It must be so cool to watch the AI vs AI fights after coding it.


  17. Posts
    1,579
    Genius project! The AI actually sounds really cool, can't wait to play it!
    Anyway, big cheers to you guys, keep your dreams real !
    btw, don't know if we are supposed to interpret that like "keep your dreams down to a realistic level" or "keep on working on your dream!"
    :P

    also, I haven't been following up the thread for a while. Does the AI learn from mistakes? for example, could it learn that it's kick attack is ineffective against the player after being blocked for a certain amount of time?
    Completely new to game development and Unity? don't know where to start? You don't have to be a n00b, click here and you'll be a pro in no time! The complete scripting series will bring you from zero to hero!

    Really guys, get over it. Everyone these days wants a MMO not single player. I know we should start out small but times have changed. Anymore in the game industry no matter how small or large you have to go big or go home!


  18. Location
    Paris
    Posts
    3,730
    Thanks guys !
    Yes I admit it's pretty exciting to see the CPU assemble those little bits of codes and functions into an unexpected *working* result, like this scenario in my previous post
    Actually I've designed the AI framework to be fully extendable to much more complex algorithms, with little to no overhead (I've completely rewritten the Unity Coroutine system to my own for that, and created highly optimized data structures. I'll post an example of such structure later on).

    Quote Originally Posted by TehWut View Post
    Genius project! The AI actually sounds really cool, can't wait to play it!

    btw, don't know if we are supposed to interpret that like "keep your dreams down to a realistic level" or "keep on working on your dream!"
    :P
    Thank you Tehwut
    Haha, in fact it is both ! There's a saying in french which fits well : "Live your dreams but don't dream your life."

    Quote Originally Posted by TehWut
    also, I haven't been following up the thread for a while. Does the AI learn from mistakes? for example, could it learn that it's kick attack is ineffective against the player after being blocked for a certain amount of time?
    Precisely !
    It learns and adapt not only from its mistakes, but from predictions about how you play, and deeper analysis (the more the Analysis AI stat is high, the deeper the analysis will go).

    A good example would be this point in Advanced AI video (make sure to turn on subtitles for AI processing info) :
    http://www.youtube.com/watch?feature...pD8t-NjM#t=87s
    (it's going a bit fast so I admit it's not easy to catch, even with subtitles)

    1) The AI suddenly retreats, "observe" what you did in the last minute, and deduce a new strategy about it. In this case, I was intentionally focusing on her head -> she comes back toe-to-toe, launching a crouched strike while I was doing yet another head strike -> I'm hit.

    2) During that "observation", the AI also saw that the average range of my strikes were approximately 1.2 meters long. Therefore after the crouch kick, she just searches for a strike that would reach longer than 1.2 meters, so that even if I'm striking, she would get the advantage over me by striking at the same time. This leads to myself receiving a strong reverse kick in the head at 1:42, while I was trying to hit her with a stomach kick.

    3) Then at 1:53, she sees I can't stop being crouched for some seconds -> Just when I try to land a crouch kick, she jumps in place, waits for the best moment during jump to strike, and delivers a jump kick in my face at 1:54 (crouch guard is ineffective against jump kicks).

    4) At 1:57, she sees I'm adapting and going to standing strikes again -> she decides to attack my feet, below my head kicks. (1:57 to 1:59 with a series of light crouch punch and crouch dodging).
    I will take yet another crouch strong kick at 2:11, as a reaction over a standing roundhouse kick.

    And that's only maybe 30% of all the different scenarios coming from the stat name "Analysis".
    Besides, there are also some decisions driven by the 2 other stats (Aggressivity and Reactivity).
    All of these being mixed on the fly according to the base "temper" of the current AI configuration, and according to how it redistribute its points, as explained in previous post.
    Last edited by n0mad; 06-19-2012 at 10:55 AM.


  19. Posts
    1,579
    WOW. That is some pretty serious stuff, I have no idea how you can up with this crazy logic!! Having to calculate all these factors, like analyzing different values, inputting them into counters, and THEN calculating the output based on all of these numbers. This is really great work, Fighting AI has been the question of many a game dev for years, and you seem to have mastered it. Props!
    Completely new to game development and Unity? don't know where to start? You don't have to be a n00b, click here and you'll be a pro in no time! The complete scripting series will bring you from zero to hero!

    Really guys, get over it. Everyone these days wants a MMO not single player. I know we should start out small but times have changed. Anymore in the game industry no matter how small or large you have to go big or go home!


  20. Location
    Paris
    Posts
    3,730
    Thanks TehWut ! Actually the AI code is maybe 7000 lines long

    To improve calculation speed, I also had to find myself some sort of trick with redundant variables to get over complicated routines :
    Sometimes, you need to get the same calculation several times in a row, during the whole lifecycle of an AI calculation routine (like, getdistance between fighters, or get hit bounds, get hit points, get speed, estimate if a certain chain of animations will hit the target at a certain time, etc). And in the end, this might represent a huge charge on CPU, as it's run several times in the same frame to determine the best choice to make.

    So I created a data format for each base type (float, string, bool, custom Enums) that I needed to calculate, which would not calculate its asked value more than twice per frame (or per a specified duration, for longer lifecycles). For example, a float optimized structured would be like this :

    Code:  
    1. public delegate float DelegateFloatCalc();
    2.  
    3. public struct calc_float{
    4.     private float Value;
    5.     private float calc_time_delay;
    6.     private float calc_time;
    7.     private DelegateFloatCalc calc;
    8.     public float val {
    9.         get {
    10.             if (calc_time == 0f || Time.time-calc_time > calc_time_delay) {
    11.                 Value = calc();
    12.                 calc_time = Time.time;
    13.             }
    14.             return Value;
    15.         }
    16.     }
    17.     public calc_float(DelegateFloatCalc calc){
    18.         this.calc_time_delay = 0.05f;
    19.         this.Value = 0f;
    20.         this.calc_time = 0f;
    21.         this.calc = calc;
    22.     }
    23.     public calc_float(DelegateFloatCalc calc, float calc_time_delay){
    24.         this.calc_time_delay = calc_time_delay;
    25.         this.Value = 0f;
    26.         this.calc_time = 0f;
    27.         this.calc = calc;
    28.     }
    29. }

    Where DelegateFloatCalc would be your complicated calculation routine, returning a float. Like for example the exact estimated position of a fighter in N seconds, consdering tons of parameters like speed, bezier, camera limit, collisions, etc.

    So here, whenever you're asking for the only public value of the struct, "val", it determines if you did ask that result lately (by default, in the last 0.05 seconds). If you did, it simply returns the already calculated value. If not, it calculates it again. And if you build the struct with a specific delay value, it waits for that delay. (For example, it's useless to calculate the average damage of a player more than every 3 seconds)

    The best part of it is that you can put anonymous methods as constructor parameter ! No need to create super specific methods just for one value to optimize. For example :

    Code:  
    1. calc_float veryCPUintensiveCalc = new calc_float(delegate {
    2.     float result;
    3.     //insert a very complicated and CPU heavy calculation here
    4.     return  result; });

    And there you go, saving a lot of FPS from redundant calculations
    Whenever you need that float val, you just ask for veryCPUintensiveCalc.val.

    edit : it seems that anonymous methods (delegate) are still asking a bit microseconds to store (not that much, but still), so it is recommanded to use a properly defined function instead.

    By totally redesigning the Unity Coroutine system (using IEnumerator magic, I think mine run 20-30% faster, but it's because Unity's coroutines are managing a lot more stuff like WWW etc) and using the above system, I went from 1.1 ms average frame time (on my PC) to 0.8 ms (+27%).
    AI calculations might the biggest charge on the CPU in games, especially in fighting games where it has to run super quickly, and with a very short delay (here 0.05 to 0.20 seconds) to match the player speed. So huge optimizations are more than required
    Last edited by n0mad; 06-22-2012 at 04:08 AM.

Page 18 of 28 FirstFirst ... 81617181920 ... LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •