Designing a Better Aim Assist for 2D Games

Поділитися
Вставка
  • Опубліковано 13 тра 2024
  • Now that the visual design and graphics pipeline are in a stable-ish state, I've been (slowly) working on gameplay design and tuning. One of the first things that I ran into was the problem of building a player-transparent aim assist that helps the player aim with an analog controller without wrestling fine control away from the player. I thought it was a sufficiently interesting subject, so I made a video about it, in the spirit of 3Blue1Brown's SoME challenge, though my timing's a bit late.
    Timestamps:
    0:00 intro
    1:12 Hades code
    2:19 Death's Door code
    2:48 problems
    3:54 math
    8:10 constraints
    9:34 closing remarks
    Music:
    lofi geek - give me
    lofi geek - souls
    lofi geek - real
    lofi geek - two lifes

КОМЕНТАРІ • 378

  • @t3ssel8r
    @t3ssel8r  2 роки тому +1028

    I have greatly underestimated how much work it is to make a content-dense video. From here on, I may continue to make these videos as I come across sufficiently interesting problems, at a reduced upload rate, for this channel. Smaller dev updates will move over to my twitter account. Let me know if this makes sense.

    • @DragonSpirit97PL
      @DragonSpirit97PL 2 роки тому +24

      I would prefer to have more smaller videos. Even if it would mean they're going to be on the same subject. This game is a journey and we are in it together!

    • @BenjaminBlodgettDev
      @BenjaminBlodgettDev 2 роки тому +18

      This video must have taken so much work to create. It really shows.
      I'm still eager to learn more about your pixel art game engine. How long did it take you to make? What inspired you to start work on your current game? What were some big hurdles, etc. When I try to make videos I fall into the trap of everything being very formal, well edited and with good visuals, but I would really appreciate a short video of you sitting down with little to no script and just talking about your project as if it were show and tell.

    • @0xkero
      @0xkero 2 роки тому

      Anything from you will be great anyway ^_^ ! Do what you feel is best for you

    • @nadavge
      @nadavge 2 роки тому +2

      I love your videos very much. Have you thought about opening a Patreon?

    • @Beatumpop
      @Beatumpop 2 роки тому +4

      It makes sense to have the content more organized and spread on/exclusive to other platforms but i feel it'd be good to have the shorter videos on youtube as well since that makes it easier for your main audience to keep up with the project. Also yt likes consistency so maybe that'll also help reach more people?

  • @Gahanun
    @Gahanun 2 роки тому +1127

    The production value on those input curves is through the roof just to illustrate the mapping. Such a captivating delivery. You've really made me interested in looking for more mathematical interpretations of game concepts.

    • @t3ssel8r
      @t3ssel8r  2 роки тому +58

      thanks! means a lot.

    • @ThisIsTheInternet
      @ThisIsTheInternet 2 роки тому +28

      @@t3ssel8r Did you create them using Manim?

    • @t3ssel8r
      @t3ssel8r  2 роки тому +34

      @@ThisIsTheInternet yeah

    • @Bloody_River
      @Bloody_River 2 роки тому +2

      Kämpfer ?!

    • @Gahanun
      @Gahanun 2 роки тому +2

      @@Bloody_River Yup, my pfp is from Kämpfer.

  • @aarthificial
    @aarthificial 2 роки тому +350

    The video turned out amazing!
    It was absolutely worth the wait

  • @qingshuo
    @qingshuo Рік тому +473

    This is actually a very interesting problem, because in top-down games, the player's angular input is expected to map directly to a world angle, as opposed to say FPS aim assist, were you're only manipulating the 1st derivative of your aim position. I was surprised when I realized the math is going to be totally different.
    I took a similar approach to you, however ran into a problem further down the road: When the entity I'm currently aim-assisted towards dies (eg something else kills it) or blinks away, the mapping function suddenly changes. The region around the player's current input sudden snaps back to the identity function, causing the player to perceive a jump in the output position despite holding their input angle steady. This temporal discontinuity was very jarring and violated the player expectation that "if I hold my finger still, so should my aiming line".
    I ended up implementing essentially the same function, but on the first derivative. That way, if the curve "changes behind the scenes" you wouldn't notice any discontinuity, only that passing back to the area now feels "faster" than before.
    This creates a new problem, which is that you will accumulate angular error, where after all targets are eliminated, a player input of "due north" may no longer map to due north in the game world! I ended up solving this by tracking how much error there is between player input and game world output, keeping that as a "debt to be repaid". Whenever the player input angle changes, I "pay back small amounts of debt", hiding the error inside of motion. If the player input changes dramatically enough (e.g., a 90 degree sudden change) I just pay back the debt all at once, and it is not noticeable to the player.

    • @t3ssel8r
      @t3ssel8r  Рік тому +151

      great comment! I had the exact same thoughts and came to a very similar solution. accumulate "debt" as you put it to avoid time discontinuities, and pay it back at a rate proportional to the input speed.

    • @yohaanmaster2522
      @yohaanmaster2522 Рік тому +29

      I love how intuitively you explained your solution, thanks for the comment!

    • @zappergames4785
      @zappergames4785 Рік тому +45

      Late reply, but it sounds like you've independently arrived at many of the principles of what's known as "Proportional Integral Derivative" Control, or "PID". I'd highly recommend looking more into the topic! PID can apply to LOADS of concepts (motors, capacitors, human senses, etc)

    • @yohaanmaster2522
      @yohaanmaster2522 Рік тому +4

      @@zappergames4785 ooo that seems interesting

    • @qingshuo
      @qingshuo Рік тому +5

      @@zappergames4785 That's awesome! I will check this out.

  • @supermuffinbros4797
    @supermuffinbros4797 2 роки тому +224

    I love how at 10:18, the abstract representation transitions perfectly into the game. Amazing attention to detail.

    • @unvergebeneid
      @unvergebeneid Рік тому +8

      While complaining about how much work making the video was! 😄😄😄

    • @radikalbeats
      @radikalbeats Рік тому

      🤯🤯🤯

  • @djack2370
    @djack2370 2 роки тому +260

    I was not expecting this much value and professionality for a small channel, you really deserve a lot more! Just that math animation you made god knows how long it took

    • @MaksMikhnevych
      @MaksMikhnevych Рік тому +5

      if he deserves more, you can help by sharing this video on your social media ☺

  • @EyedMoon
    @EyedMoon 2 роки тому +72

    Very nice vizualisations for the aim assist properties in terms of "real vs felt" angles, love these focus videos. They always make me think of shorter, focused GDC conferences

    • @t3ssel8r
      @t3ssel8r  2 роки тому +8

      I too am a big fan of the GDC deep dives

    • @EyedMoon
      @EyedMoon 2 роки тому +1

      @@t3ssel8r there's no such thing as too big

  • @quantumsno
    @quantumsno 2 роки тому +90

    I can't even imagine how long this took to make, but I think it was worth the effort. Making content like this helps to push us as an indie dev community forward.
    I'm really excited to see what other cool solutions you come up with!

  • @rowanw5912
    @rowanw5912 2 роки тому +37

    Amazing job showing the math behind aim assist. This made me think of bullet magnetism from games like Halo, where the vector of the bullet is adjusted instead of the rotation of the player. Magnetism is the same thing as aim assist, just less obtrusive because it doesn't rotate the player, and I believe it's better because it doesn't effect the sensitivity of your rotation input like aim assist does, which could harm the consistency of movement or platforming mechanics.

    • @t3ssel8r
      @t3ssel8r  2 роки тому +19

      in 2D I guess this is equivalent to having a separate vector for projectile aiming (which gets assist) and player movement (which stays raw). This is sort of how death's door works (it aims the projectile vector secretly in the background)
      like you say, fundamentally it's the same thing, but I agree that the nuance of separating the two vectors is meaningful thing to do. thanks for the comment.

  • @noiJadisCailleach
    @noiJadisCailleach 2 роки тому +37

    I always love it everytime you flex your brain muscles and share what's inside it.
    The production quality this time is magnitudes higher than the usual, too. Man, I can just imagine how much that taxed you.
    Thank you for your hard work! Looking forward to more of your brain flexes!

  • @subbu6572
    @subbu6572 2 роки тому +34

    first of all, thank you for your hard work, all those motion graphics and editing must have taken a lot of time and effort, it was very good and helped visualize things better. while I didn't understand the math you were showing, your explanation was enough to give ideas and maybe even sell me to learn it lol.
    Also, I have been following your stuff for what feels like years I think and you are making good progress, it's very nice to see. hope the full game or project comes out as you want. I am doing gamedev too but I am a beginner at best I guess so you motivate me a lot. please keep going and have a good time.

  • @user-eh5wo8re3d
    @user-eh5wo8re3d 2 роки тому

    Excellent video! Thank you so much for taking the time to make this.
    These problems are part why I love programming so much; taking on an issue that from the outside you can hardly see is there, and thereby discovering and exploring all the intricate ways one can solve them.

  • @andrew8445
    @andrew8445 2 роки тому +4

    I like that you’re making tutorials now, your game inspires me and its awesome to see an interesting 3blue1brown-esk video on the topic

  • @olegviatkin5674
    @olegviatkin5674 Рік тому

    I am amazed at how good your game looks and the amount of detail you consider in every step of the process. Wish nothing but success onto you🙏🏻

  • @Doogler
    @Doogler 2 роки тому +2

    The visuals in this video were really helpful for understanding the concept, good video!

  • @aditya95sriram
    @aditya95sriram Рік тому

    Wowie! That was extremely engaging. Great job! The amount of work you put into it really shows (using manim for the interim math explanations was a great idea)!

  • @Mrjcraft00
    @Mrjcraft00 Рік тому

    I love the way these videos seem to take things intuitive to game design and put a new perspective on it to ask critical questions. I don’t create games but the struggle of bad aim assist is very relatable, and the idea of graphing inputs and outputs on an x-y graph was insanely novel, I love it!

  • @cupsster1
    @cupsster1 Рік тому

    Wow man, another great content video, really appreciate visual explanation and effort you have put in to explain this in consumable manner instead of pure abstraction. Bravo sir.

  • @shoenengz
    @shoenengz 2 роки тому

    your videos never dissapoint and are always a source of inspiration. Congratulations on an amazing channel!

  • @beenin1
    @beenin1 2 роки тому

    I just want to say, I've learned so much and have gained so much inspiration from your videos. This technical approach to game design problems is truly something novel. Thank you for doing what you do.

  • @stewartimel
    @stewartimel Рік тому

    These videos are so informative and interesting, thank you for putting in the effort. You’ve inspired me to look deeper at the mathematical opportunities in my game.

  • @Visigoth_
    @Visigoth_ Рік тому +1

    Dude... I *LOVE* your video style.
    Explaining technical problems with an aesthetic/intuitive focus on the artistic understanding of the problem really helps me grasp how to start thinking about solving the proble instead of not fully understanding what the problem is (just knowing that it "doesn't feel right.")

  • @duodot
    @duodot Рік тому +1

    Holy shit man, you're a genius. You explain things well and make me interested in mathematics I never thought useful to me. And you're very wellspoken and humble. Good luck on your game!

  • @andrewglick6279
    @andrewglick6279 2 роки тому +1

    I don't think I have anything to contribute here besides saying this looks amazing and I always look forward to your videos! Keep up the great work!

  • @flower-fauna
    @flower-fauna 2 роки тому +1

    This is an amazing video and totally not what i expected from subscribing to an interesting journey about developing your game
    But im very glad you created this, its amazing!

  • @DrWolves
    @DrWolves Рік тому

    This is outstanding and awe-inspiring. I love what you've done. I'm hoping to make a game with this level of quality and beauty. This is a wonderful inspiration for me. Thank you

  • @seeranos
    @seeranos Рік тому

    These are the kinds of videos I love sharing with my math and CS friends as educational and motivational displays of what uses their university maths can be applied to!

  • @dottedboxguy
    @dottedboxguy 2 роки тому +1

    this channel is pure condensed game design progress and thought, it’s amazing

  • @AntoCharles
    @AntoCharles 2 роки тому

    Damn what a wonderful video!! Awesome job on the explanations wonderful job on the animations -- low key had some 3B1B vibes with the graphs

  • @lazergurka-smerlin6561
    @lazergurka-smerlin6561 Рік тому +12

    I was thinking about how to handle objects that occlude eachother, that's probably the thing that most aim assists handle badly. But to solve this I would like to abstract this further and think of enemies as simple arc segments, and that those arc segments just overlay ontop of eachother. Then you make the aim assist only consider those arc segments when attempting to aid the player, or more likely the ends of those arc segments. That makes it easier to finetune a function for aim assist as you cut away a lot of nuances and automatically solve the issues of enemies obscuring other enemies and enemies being that are obscured by objects, at least so long as your aim assist doesn't lock on to your target. But I could also see issues cutting away that much nuance, as you could lose information that you find actually quite important, like distance, speed, size, what type of target it is etc.

  • @graemerock77
    @graemerock77 Рік тому

    These videos are
    1. Very well explained and exceedingly helpful
    2. Incredibly pleasing to watch the animations of
    3. Make me want to play the game you made very very much.

  • @cosmicreciever
    @cosmicreciever Рік тому +3

    I really appreciate that you talk about the subject at a higher level mathematically than most game developers do. Really goes to show that this is a channel aimed at professionals

  • @AlexBlackfrost
    @AlexBlackfrost 2 роки тому

    The production value of this video is impressive. Great job!

  • @DokterKaj
    @DokterKaj 2 роки тому +5

    It's always a good day when t3ssel8r uploads

  • @squeenixu
    @squeenixu Рік тому

    i love that grapple mechanic you showed near the end

  • @erikgoldman
    @erikgoldman Рік тому

    incredible video. there’s a deep discontinuity between tutorials that teach you how to quickly scaffold a mechanic and videos that change your entire thought process and frameworks. well done

  • @kungfuakash1
    @kungfuakash1 11 місяців тому

    This is incredible! Great job, man. Subbed

  • @HadesMrDark
    @HadesMrDark Рік тому

    I'm so glad i found your channel, bell icon activated, can't wait for the next one, thank you so much!

  • @theonlyponguin
    @theonlyponguin 2 роки тому +2

    the only time i actually open a youtube notification

  • @j1_dev
    @j1_dev 2 роки тому +2

    Wow, the quality of this channel is just beautiful

  • @typeer
    @typeer Рік тому

    this is great, can tell you put your whole self into this, thanks for your work

  • @mmheti
    @mmheti Рік тому

    Such a simple idea, just brilliant! Thanks!

  • @Potat_44
    @Potat_44 Рік тому +2

    Despite finding it difficult to understand, you explain it in such a way that makes sense without knowing how to code

  • @julreyrosales6886
    @julreyrosales6886 2 роки тому +3

    I've been waiting for soo looong. It's still the best

  • @Hoowwwww
    @Hoowwwww Рік тому

    you are very talented in many fields
    - programming
    - math
    - art
    - ux
    that's impressive

  • @luismollmann1572
    @luismollmann1572 Рік тому

    Great video! The animations worked very well, made it really clear. :)

  • @Gabriel-wq3lh
    @Gabriel-wq3lh Рік тому +1

    I'm not a game developer, but this video and your approach of using math are both fascinating. And your teaching skills are great, congratulations!

  • @yyattt
    @yyattt Рік тому

    It's a really good explanation of the issues. When you showed the graph of how the snapping aim assists look, I had an instant "yuck" reaction, and I really like the idea of instead adjusting the gradients.
    For me, one of the key things with an auto-aim or aim assist is communicating to the player how it works and what it's doing. I appreciate this can be difficult to do with some aesthetic choices but I think the feedback is key to helping the player develop an intuitive feeling of how it works, which in turn will help them to use it as a tool rather than get frustrated by it.

  • @whiteline4157
    @whiteline4157 Рік тому

    your videos are so captivating. I clicked on this video out of accident and spent one of the best 10 minutes of my life.

  • @robertmoats1890
    @robertmoats1890 Рік тому

    Amazing video! Great quality and detail! We are exactly the same in the sense that you put too much time into your side projects. I call them rabbit holes. They always lead me much further from my game than I plan. I completely agree that the aim assist system should prioritize vectors or angles, rather than redirecting them entirely. But your video brought several things to my attention that I had not considered before.

  • @farrukhkamal2315
    @farrukhkamal2315 Рік тому

    I really love how you dig into details with the mathematics rather than only the coding, makes it more interesting. Maybe that's just me.

  • @HyenHks
    @HyenHks 2 роки тому +15

    This is so good! And I'm getting more and more excited to see where your game ends up, anyhow I'm sure it'll be satisfying!
    Learning Manim, creating fitting visuals and setting such high standards for video quality, no wonder it takes time! These kinds of videos makes my math heart so happy! I would've loved to join SOME myself, but had trouble prioritizing it -
    But I'm curious - do you think it'll take significantly less time to make a second similar-type video, now that you've gone through the process of making one, learning Manim etc.?

    • @t3ssel8r
      @t3ssel8r  2 роки тому +4

      I still haven't figured out a good workflow for synchronizing the manim animations to audio track while still managing to iterate on the visuals/script. I think the cost of iterating on small details was probably the biggest time sink for this particular video.

  • @AgentPothead
    @AgentPothead Рік тому +2

    I'm not a game dev so I didn't think I'd watch all 11 minutes but yeah, I'm glad I did. This was well made video and everything was explained super well. Great work.

  • @triplezgames3882
    @triplezgames3882 Рік тому

    Awesome work... I really never thought of any aim assistant beyond the plain snapping solution... I hope to reach that level of professionalism once in my future devlogs! :)

  • @ccron358
    @ccron358 2 роки тому +1

    That was a clear explanation of unclear math, loving everything you’re doing

  • @JosephCatrambone
    @JosephCatrambone 11 місяців тому

    This is phenomenal. Great work.

  • @DanielNit
    @DanielNit Рік тому

    So far, I have seen two pf your videos and they were both stellar in both technical content and presentation. Formme, you are on par of the best UA-camrs in this field and I am fhankful for yoursuperb work. Thank you a lot and all the best wishes =)

    • @DanielNit
      @DanielNit Рік тому

      I also just noticed that both my views were your last two videos. As these represent the stellar quality I was talking about, your question in your own comment should be answered with "well yes the videos are rarer, but they are worth it!"

  • @stefdevs
    @stefdevs 11 місяців тому

    I did something like this (but not as good, derived with much less math know-how) years ago but this looks even better! I'm glad the idea is seeing the light of day since I failed to ever share it or release something using it.

  • @smile--
    @smile-- 11 місяців тому +1

    This is something I noticed a lot while playing EtG, good video.

  • @Bvic3
    @Bvic3 Рік тому +1

    The 3blue1brown of game dev. Insane channel.
    I doubt most game studios have such a math centric approach to gameplay.

  • @Markyparky56
    @Markyparky56 Рік тому

    I wrote an Aim Assist system for a First/Third Person shooter, primarily using the Resistance 3 GDC talk as a template. I broke it into two components, what I called "Aim Magnetism" and "Aim Forgiveness." Magnetism was an additive/subtractive layer blended into the user's inputs, essentially letting the game nudge and pull the user towards targets they were aiming close to. Forgiveness was a system that worked out the correct direction from the player's weapon to hit the nearest target, which we could blend into the actual fire direction, improving the player's chance to hit without obvious snapping of their camera, something which is far more jarring in a 1st/3rd person perspective.

  • @qu765
    @qu765 11 місяців тому

    Thoroughly enjoyed.
    The visualizations are really nice.
    As mentioned at 10:18, that the production budget is exceeded, just know that it is perfectly fine to skip doing things like: at 8:04, satisfying to watch, but the only person who is gonna see that more than once is you cause you edit the video.

    • @t3ssel8r
      @t3ssel8r  11 місяців тому

      it's actually pretty easy to do that stuff with the right tools! I think that fade out animation probably only took a minute or two to write. It's the script revisions and math visualizations that end up taking the most time for me, since those are the important things to get right or viewers will get lost

  • @regularsalamander
    @regularsalamander 11 місяців тому

    such a cool way of visualizing this

  • @myenglishisbadpleasecorrec5446
    @myenglishisbadpleasecorrec5446 11 місяців тому

    neat. Simple, good solution, and easy to understand

  • @zZSlytexZz
    @zZSlytexZz Рік тому

    I cannot believe what I am seeing it with my eyes! LOOL TY SO MUCH!

  • @DJnoratos
    @DJnoratos Рік тому

    You are clearly very smart. Thank you for the interesting grasp of this topic, very educating :)

  • @mutantshrimp168
    @mutantshrimp168 Рік тому

    Currently studying computer science to find applications on game dev I always want to find a gamedev channel that use more complex math to solve problems, so I already love this channel

  • @DK_Liao
    @DK_Liao 2 роки тому +5

    Cool work!
    I am just starting my own implementation of aim assist and this video provides a great starting for me to build upon. Thanks t3ssel8r

  • @Asdayasman
    @Asdayasman Рік тому

    I've only watched two of your videos so far, but your approach to things seems to be to generalise a problem to a mathematical form and rearrange it until your inputs are intuitively describable such that you as a game designer can tailor an experience.
    Seems pretty cool.

  • @rohkalluri
    @rohkalluri 2 роки тому

    Love your work, keep it up!

  • @okeydoke904
    @okeydoke904 2 роки тому

    Amazing video as always!

  • @owendeheer5893
    @owendeheer5893 Рік тому

    This is amazing. As a mathematician I'd love to explore this concept. Very interesting!

  • @luislaracuente
    @luislaracuente Рік тому

    I am so happy to have found your channel. This is pure beauty! Thank you for providing a mathematical definition to game design problems. Your visualizations are incredibly helpful and clean. They remind me of 3Blue1Brown channel. Can you share what tool you use to make your graphs and real-time modification of x and how it shows in f(x) in the graph? I'm definitely subscribing and turning notifications on. Keep on the great work!

    • @t3ssel8r
      @t3ssel8r  Рік тому

      the animations are made in manim. thanks for the support :)

  • @danomurdo
    @danomurdo 5 місяців тому

    Solid understanding of your algorithms

  • @rix0r222
    @rix0r222 Рік тому

    Awesome! This video is very timely for my own project. I've just started thinking about aim assist and then I see this in my youtube feed. I love this idea and plan to use it ;)

  • @sharpTrick
    @sharpTrick Рік тому

    I really appreciate the way you think. I hope you make more videos.

  • @maddyv5948
    @maddyv5948 Рік тому

    Great video! Made me fall in love with mathematics all over again ❤

  • @dwaarakesh369
    @dwaarakesh369 Рік тому

    So informative, thanks a lot!

  • @234fddesa
    @234fddesa Рік тому +4

    You could also make a narrow range within each target that deals more damage or modifies projectile or enemy function in some form, to still reward precision. Like a critical hit sort of thing.

  • @lifeinsepia
    @lifeinsepia Рік тому

    Truly excellent video!

  • @Edwardjames94
    @Edwardjames94 Рік тому

    This is amazing video with great works very well

  • @Teflora
    @Teflora 2 роки тому +1

    excellent visualizations!

  • @osmanarslan7316
    @osmanarslan7316 Рік тому

    Oh my god so good explained thank you!!!!

  • @sentinelav
    @sentinelav 7 місяців тому +1

    The only issue I can see is that the slope between targets must remain linear i.e., f(x) = x, or input mapping between targets will result in varying sensitivity. One way to solve this would be to refer to the target lock method, and retain the snapping functionality, but smoothing the sudden discontinuities. Therefore, each target would have a sharp 'entry' and 'exit', while remaining flattest, and equal to x, at the centre of the target.
    Other than that, this was an extremely intriguing video, referencing a problem I've encountered but never approached directly.

  • @HassanAli-uj8oq
    @HassanAli-uj8oq Рік тому

    U made it simple man ur subscribers are well deserved

  • @galogalliani1746
    @galogalliani1746 Рік тому

    You are an excellent instructor. I will stick with you.

  • @judsonhester1407
    @judsonhester1407 2 роки тому

    Can't wait for your GDC talk :)

  • @starbi
    @starbi 2 роки тому +3

    Not an experienced game designer here, but an interesting game to look at is CrossCode. It has amazing combat and also dedicated buttons for melee and ranged projectile attacks. That game actually has zero aim assist for projectiles, but it still feels good, even though it is harder to hit small targets. I think that game balances it by giving you large projectiles to shoot ( instead of arrows or bullets ) and having large enemies. Smaller enemies are intended to be hard to hit and the game wants you to use melee for large amounts of small enemies.
    Isn't having large projectiles basically a form of aim assist? An idea for aim assist for small hit-scan projectiles (like bullets) would be them actually having a large hitbox, and whenever they detect a hit the visual projectile gets corrected to hit the target. That way you could work around having a snapping system like this at all and avoid some of the additional problems you've shown towards the end.
    Amazing video by the way, always a great source of inspiration.

    • @t3ssel8r
      @t3ssel8r  2 роки тому +2

      Good comment. One slight difference I see with large hitboxes is that they can't thread needles. Otherwise I agree that large projectiles (or equivalently, large enemy hitboxes) are a good way to solve the problem.
      The projectiles in CrossCode were very functional, and their tactical use was very satisfying, but they were mostly used on very slow moving or stationary targets. It's pretty much impossible to aim and hit Apollo with balls. At least for me.

    • @ninjahappysquid
      @ninjahappysquid 2 роки тому

      I also think that the "small bullet big hitbox" solution would be potentially more visually jarring, seeing a shot that is clearly going to the miss wide but suddenly hits.

    • @starbi
      @starbi 2 роки тому +2

      @@ninjahappysquid That's why I said they would be hitscan, with the visual representation being corrected on attack. Like you said, it would look bad on small projectiles that actually move through the world. :^)

  • @ege9411
    @ege9411 Рік тому

    This video is so good man🎉

  • @polerin
    @polerin Рік тому

    awesome video on a subject that has bugged me greatly before.
    The approach that I've wanted to play with is weighting all potential targets within the zone then selecting the highest overall value. The directionality system you've described could play a significant role in that weighting, allowing for a more nuanced understanding of "which is the player actually pointing" than raw stick inputs.
    You could potentially even have an output be less "aim at this target" and more "aim in this direction". That may sound sorta weird, but it would allow you to do things like check if objects overlap from the pov of the avatar, and aim for that intersection. That would help with your "what if a target is hiding behind another target?" condition.
    Weighting could be arbitrary values paired with conditionality like AoE, in combat, nearness, etc.

  • @m128jg
    @m128jg 2 роки тому

    This is a very helpful analysis of aim assist. Classic Resident Evil vs over-the-shoulder aiming in RE4 could also be compared.

  • @hamsoft23
    @hamsoft23 Рік тому

    No entendí, but your videos are so well explained, the graphics that you use to explain the concepts are amazing.

  • @Heni_zion
    @Heni_zion 2 роки тому +1

    Amazing video!

  • @MannyKoum
    @MannyKoum Рік тому

    so useful not only in the realm of gamedev but also for any human/machine interaction

  • @aivrh8502
    @aivrh8502 Рік тому +2

    your videos make me wanna learn game design

  • @BillyViBritannia
    @BillyViBritannia Рік тому

    This is exactly the type of problem I love solving yet would never be able to solve in a big studio because of time constraints and perceived roi of the endeavor.
    Those details are what make a game feel great though imo.

  • @CarlBeek
    @CarlBeek Рік тому +1

    This framing of aim assist is fantastic, well done. IMO, one constraint missing from your model is that the function should be smooth with respect to its first derivative. In particular when "wrapping" round "past" 360°, the first derivative should be continuous unlike what is shown at 7:50.

  • @Rydn
    @Rydn Рік тому

    Indiscovered this channel on a rabbit hole session. And im here to STAY

  • @xkiztor7058
    @xkiztor7058 2 роки тому

    Love your content!

  • @Otakutaru
    @Otakutaru Рік тому +1

    this is pragmatic heaven born from math instead of simple logic. beautiful