Dynamic Conversations - Legacy Devlog #23

Поделиться
HTML-код
  • Опубликовано: 1 июн 2024
  • Support me on Patreon:
    / aarthificial
    0:00 Showcase
    1:14 How does it work?
    3:27 Practical example
    === GDC Talks ===
    AI-driven Dynamic Dialog through Fuzzy Pattern Matching:
    • AI-driven Dynamic Dial...
    Programming Context-Aware Dialogue in The Last of Us:
    • Programming Context-Aw...
    Do You Copy? Dialog System and Tools in Firewatch:
    • Do You Copy? Dialog Sy...
    === Tools I'm using ===
    JetBrains Rider
    Unity
    Adobe Illustrator, After Effects, Premiere Pro, Audition, Photoshop
    === Music from Epidemic Sounds ===
    www.epidemicsound.com/referra...
    Jo Wandrini - Puzzle Of Complexity:
    • Puzzle Of Complexity
    Luella Gren - There Is Something about the World:
    • Luella Gren - There Is...

Комментарии • 130

  • @sodagames4980
    @sodagames4980 2 года назад +332

    Once again I'm absolutely blown away by your ability to easily present these complex systems in such a short video. That's awesome

  • @louispretends
    @louispretends 2 года назад +220

    Dialogue like that looks so snappy and satisfying! Really cool for people replaying the game, and don't need to go through the tutorial, too. Amazing job man!
    Also the more I learn about your game the more I think speedrunners are going to love it

  • @KyotecYT
    @KyotecYT 2 года назад +102

    Finished binge watching your channel.
    Damn you're good. I am a software engineer looking to do some hobby game dev and oh boy did I love watching all your vids! Keep up the good work, you're definitely on an upwards trend and the quality of your vids is stellar, the best devlogs in term of explaining architecture & code, next to Sebastian Lague.

    • @aarthificial
      @aarthificial  2 года назад +13

      Thanks, it really means a lot!

  • @capsey_
    @capsey_ 2 года назад +135

    Your editing and explanation are so good! Similar to Sebastian Lague in some way. I really hope you'll finish the game, because as far as it goes, it looks amazing. Keep it up!

    • @aarthificial
      @aarthificial  2 года назад +24

      Thanks so much!

    • @EthMiC_
      @EthMiC_ 2 года назад +25

      I mean he has the same trifecta:
      Amazing accent
      Intuitive learning
      Chill and relaxing vibes

    • @samhblackmore
      @samhblackmore 2 года назад +3

      @@EthMiC_ now just imagine if @aarthificial would do a 30-minute long coding adventure!

    • @EthMiC_
      @EthMiC_ 2 года назад +1

      @@samhblackmore I would watch it

  • @krycerkris
    @krycerkris 2 года назад +12

    I am blown away by just how insane your code structure is. It's like you're 10 steps ahead of your own programming, making every feature into a complex, yet flexible and efficient structure.
    I try to follow a similar philosophy in my own code, but after watching your videos I can only awe at how much more I have to learn.. And don't even get me started on the video itself...

  • @logix8969
    @logix8969 Год назад +2

    Always love when a game makes tutorials opt-in and doesn't do them in an obnoxious way that locks you in place while the NPC talks and then forces you to do something specific. That ability to just walk away mid-conversation is so underrated!

  • @BravosChannel
    @BravosChannel 2 года назад +3

    I love how intricate and clean everything you put into this game is. It's not common to find people talking about how they work on their architecture, so seeing channels like this always makes me intrigued on what there is. Have a great time with working on your game!

  • @guilhemane
    @guilhemane 2 года назад +2

    I've been watching your videos for a while and also making an event-based context-aware dialogue system based on the GDC talks you mentioned... And somehow I never saw this video! You solved every difficult aspect of this really elegantly and the tool looks great!

  • @monsieuralexandergulbu3678
    @monsieuralexandergulbu3678 2 года назад +2

    Yayy, new vid!
    Love them!

  • @Gerz970
    @Gerz970 2 года назад +1

    Your devlogs are such a breath of fresh air. I havent found any devlogs that explain games systems as well as yours and most devlogs anymore are spent talking about non devlog stuff like making a coffee or going for a walk.

  • @krawieck
    @krawieck 2 года назад +13

    A day when aartificial uploads is a good day. It’s great to see how much care and thought you put into this game

  • @greatot7429
    @greatot7429 2 года назад +17

    Finally, a video!
    I really like the way you handle your codes. It gives me a lot of insight

  • @lunarxs
    @lunarxs 2 года назад +3

    I love the interaction and immersion these dynamic dialogues add to your tutorial

  • @verified_tinker1818
    @verified_tinker1818 2 года назад +53

    Amazing job! Every video you put out, I'm astonished by the amount and quality of work you put into your game. I feel like a half-assed amateur, watching you.
    Have you considered selling Typewriter on the Asset Store, once you deem it reasonably finished? I'm not a fan of third-party assets, but if I were looking for a dialogue system for Unity, I can totally see myself buying this.

    • @aarthificial
      @aarthificial  2 года назад +39

      Thanks!
      Like most of my tools, I'd like to release Typewriter as an open-source package. The only problem right now is that I don't have time for maintaining it so it'll have to wait a bit

    • @right_jehoon
      @right_jehoon 2 года назад +6

      @@aarthificial im so fascinating by your concepts. I really want to see how you implement these concept to real codes! waiting for you to release the package :)

    • @ruchirraj5300
      @ruchirraj5300 Год назад +1

      @@aarthificial I would really love to see how you made all those editor tools 😁

  • @AreThereGhostsOnMars
    @AreThereGhostsOnMars Год назад +1

    I just love your dev logs. You’re not just doing things, you’re showing us how you did them and even teaching us about them.

  • @BlueGooGames
    @BlueGooGames 2 года назад +2

    This is super cool, love that it’s letting you play freely during dialogue!

  • @timmy8852
    @timmy8852 2 года назад

    Absolutely amazed at the quality of your devlogs. Inspiring!

  • @AstonishedByTheLackOfCake
    @AstonishedByTheLackOfCake 2 года назад

    smh, youtube recommendation did not notify me of this one in time
    on the upshot, now I have two glorious aarthificial videos to watch :D

  • @S41L0R
    @S41L0R 2 года назад +2

    Your videos are made so well. I literally get excited when I see them, because I know they'll be worth my time (:

  • @the_mm_159
    @the_mm_159 Год назад +1

    The explanations are great, love those videos

  • @justVontadeh
    @justVontadeh 2 года назад +2

    Love this! I've been making a custom tool for doing something similar in Unreal for a while and I've struggled a bit on how to organize the tool. Love the look and simplicity of yours! Can't wait for more vids on Typewriter and see its inner workings.

  • @igrb
    @igrb 2 года назад

    I get so excited watching you talk about systems you built for the game, they're aways so cool and the editing is just on point! Thanks again for making these videos

  • @Talvara
    @Talvara 2 года назад +1

    very cool. Tingles the brain with excitement.

  • @tommckenzie
    @tommckenzie 2 года назад +1

    This channel deserves way more subs. Quality work!

  • @albertoaltozano8354
    @albertoaltozano8354 2 года назад

    This tutorial is so thought through and well explained. So on point with the animations too. I dont even make games and found this entertaining, good job.

  • @3dsteve
    @3dsteve 2 года назад +1

    Never ceases to inspire several heated, fascinating conversations in and outside my head lol

  • @bobthedeleter
    @bobthedeleter 2 года назад +1

    you really have a talent for explaining these very technical systems in a very human way. subscribed!

  • @Skeffles
    @Skeffles 2 года назад

    Great to see how you're implementing conversations!

  • @_kett2164
    @_kett2164 2 года назад +1

    Another amazing devlog! This is going to make a fantastic game

  • @peterhuijsen
    @peterhuijsen 2 года назад

    That looks very impressive. Can't wait to see what you do next

  • @quinndepatten4442
    @quinndepatten4442 Год назад

    This is incredible intel. I'm very inspired.

  • @JonaCorrea
    @JonaCorrea 2 года назад +1

    This is just amazing. And the way it's explained is simple but insightful.

  • @lime31373
    @lime31373 2 года назад

    Great video as usual. I feel like I learn new things with each video. :)

  • @sinus4784
    @sinus4784 2 года назад

    some amazing work as usual

  • @zaidmermam2524
    @zaidmermam2524 2 года назад

    its unfair how smart you are , you inspire me ALLOT as a developer , thanks for the amazing content

  • @asyncrevengance3322
    @asyncrevengance3322 2 года назад

    I’m so excited to play this game!

  • @animaitor99
    @animaitor99 2 года назад

    Every one of your videos opens my eyes to a new way things can be programmed.

  • @UnofficialFoneE
    @UnofficialFoneE 2 года назад

    Great stuff as always!

  • @CoolGabrijel
    @CoolGabrijel 2 года назад

    Very cool and inspiring video!

  • @benjaminlehmann
    @benjaminlehmann 8 месяцев назад

    This is wonderful.

  • @PurpleDaemon_
    @PurpleDaemon_ Год назад

    Still waiting for this project to be published. Not even for use in my projects, but for a deep understanding of how such a system can be coded.

  • @Snowdrama
    @Snowdrama 2 года назад +1

    The real question I have is how did you make that sweet unity UI for searching for those event entries at 3:22? Is event entry a scriptable Object? Anyway good stuff! Can't wait for the next video!

  • @socialseymour4834
    @socialseymour4834 2 года назад

    such high quality editing

  • @spunglebop1348
    @spunglebop1348 2 года назад

    finaly!!!!!
    i really enjoy your vids

  • @Will_-it3mh
    @Will_-it3mh 2 года назад

    I've personally firewatch and didn't even notice such a feature. I guess it really does make conversations more seamless. also just a great game in general

  • @FaceFirst
    @FaceFirst 2 года назад +5

    Wow this is totally amazing! I also loved reanimation! Is there any chance we will be getting typewriter on your github too? I am so in love with the tools you created for your games! You are a great help for the Unity Community!

    • @aarthificial
      @aarthificial  2 года назад +4

      Thanks! Yes, that's the plan, although it may take a while do to my lack of time™

  • @TimSAksu
    @TimSAksu 2 года назад +2

    Would love a tutorial or breakdown on how you put together your editor UI's.

  • @laszlokortvelyessy1999
    @laszlokortvelyessy1999 2 года назад

    i wanna play this game soooo baaaad. this is excelent work my friend! keep it up

  • @svendpai
    @svendpai 2 года назад +1

    Impressive system! :)

  • @His-Games
    @His-Games 2 года назад +1

    was doing work, this is more important

  • @Ziboo30
    @Ziboo30 2 года назад +1

    As always that's awesome !
    Love the editor UI. I guess you used the new UI Toolkit, would love a breakdown :)
    Also does the search dialog popup is a build-in one ?
    Great work !

    • @aarthificial
      @aarthificial  2 года назад

      Thanks!
      Yes, the search dialog was done as a property drawer, so I could use TreeView from IMGUI

  • @escapegoat573
    @escapegoat573 Год назад +1

    I love your dialogue system, is there any way you could make a tutorial on your VODS channel like you did with the other cool one

  • @eboatwright_
    @eboatwright_ 2 года назад

    Super interesting! :D

  • @stealcase
    @stealcase 2 года назад

    HAHA, gosh darnit dude! I was going to make a video about this and my own implementation on the Elan Ruskin dialogue system, but then you go ahead and make something even better.
    Amazing work, but damn. 😅

  • @manueldiprima
    @manueldiprima Год назад

    You've gained my respect by talking about Naughty Dog.

  • @yaboiskner
    @yaboiskner Год назад

    I'm very impressed by the potential of Typewriter. It's very adaptable and seems to be very scalable also.
    Getting more technical, I have a question: how are you able to reference Events in your Rules or the Interaction Handle in the inspector? How are these Entries defined? How can you create them and then reference them uniquely across Unity?

  • @FelanLP
    @FelanLP 2 года назад

    So, tldr, to make context aware dialogue you still have to script every situation you can think of manually. There are just tools and methods and stuff to make the workflow easier.

  • @matthewedwards8849
    @matthewedwards8849 2 года назад +1

    I love this system!
    Do you plan on publishing the typewriter program you made? I think a lot of unity developers would be interested in using it, and you could probably make a lot of money off of it if felt like it!

  • @DrakiniteOfficial
    @DrakiniteOfficial Год назад

    I didn't even know you were able to create your own UIs in Unity for custom tools. Very neat. Did you have to create Typewriter as a Unity plugin, or is Typewriter just part of your project?

  • @plusmorale
    @plusmorale 2 года назад

    As always, short, information++

  • @pw5687
    @pw5687 Год назад

    How does this compare to Inky? It can also do context-aware branches using variables. It, imo, also seems a lot simpler than handling events, you just type something similar to very basic pseudocode in plaintext files. I have no experience with either solution yet, but a dialogue system is soon on my todo list.
    Also, good job on the videos! Very high quality, enjoyable and informative. I always find myself watching these far too late at night as i just get hooked!

  • @musictme4317
    @musictme4317 2 года назад

    Can’t wait until the game is finished

  • @SnackLive
    @SnackLive 2 года назад

    At this point i dont even care what the game is gonna be, look or whatever. I'm gonna buy it just because these videos are just amazing, high quality content that not only shows the work and dedication but also would help others to create their own things. Simply amazing dude keep going

  • @the_yashe
    @the_yashe 2 года назад

    Amazing video as always! What do you use for animations etc. ? They are so clean and well made..

    • @aarthificial
      @aarthificial  2 года назад +1

      Thanks! I use Illustrator and After Effects

  • @imveryangryitsnotbutter
    @imveryangryitsnotbutter 2 года назад

    My god, could you imagine a Phoenix Wright-type game which allowed you to solve cases through a wide variety of routes using a robust dialogue system like this?

  • @captainbarge
    @captainbarge 2 года назад

    It looks nice, but terminology can use some polishing,
    - Fact, Rule, Event doesn't share any domain, you can understand termins separately, but they don't act as whole
    - What you call "Rule" is in fact "Action", but should be called something domain specific, lets say Dialog. Rule as termin is more a part of criteria.
    I'll make an example from different area: Imagine you have a cart in online shop, then there are a collection of promotion, that are eligible for application. Each promotion has collection of rules (cart total exceeds certain amount, cart contains at least one product from certain category) and collection of actions (do a fixed price discount, do a percentage discount, add a complimentary gift product).
    So a propasal is to have something like that:
    DialogEntry extends ActionEntry and has collection of rules(criteria) and collection of actions (modificator, execute)

  • @ruchirraj5300
    @ruchirraj5300 Год назад

    Hey, how did you create the selection popup for events in your system? I really could use a system like that in my project.
    You editor tools just look so well organized, do you have any tips or resources I could look at?

  • @zop5725
    @zop5725 2 года назад

    Amazing work! Could you make a video on Serializing bool functions the way UnityEvent does it with voids?

    • @aarthificial
      @aarthificial  2 года назад

      I'm not sure what you mean exactly.
      UnityEvent serializes functions by storing the method's name and then using Reflection to find it. Is that what you're referring to?
      Also, by "bool functions" do you mean a function that returns bool or a function that takes bool as a parameter?

  • @TheAguilacelestial
    @TheAguilacelestial Год назад

    How do you link the behaviour that a rule should execute? For instance, RuleA triggers a dialogue but Rule B triggers some noise to reproduce or a cutscene, how do you do that?
    Great content!

  • @TheBlazeThrower
    @TheBlazeThrower 2 года назад

    Hi there, love your work. I thought you would appreciate being told that at 0:24 there's a small typo in dialogue "straigth" instead of "straight". Very nitpicky, so keep it up!

    • @TheBlazeThrower
      @TheBlazeThrower 2 года назад

      Sorry, then 0:35 "breake" instead of "break" - not like anyone cares about spelling when it all looks so awesome!

    • @aarthificial
      @aarthificial  2 года назад +1

      Thanks so much!
      Yeah, I think there's a few more mistakes, especially when it comes to punctuation.
      Don't worry though. I haven't really started writing the game yet so all these dialogues are more of a "programmer art" and will most likely change in the future

  • @KjipGamer
    @KjipGamer 2 года назад

    Amazing video. Do you use Odin for your custom inspectors?

    • @aarthificial
      @aarthificial  2 года назад

      Thanks!
      No, it's all done with Unity's new UI Toolkit

    • @KjipGamer
      @KjipGamer 2 года назад +1

      @@aarthificial Wow, I've dabbled with custom inspectors myself but this looks absolutely astonishing! Keep up good work!

  • @ObsidianContraption
    @ObsidianContraption 2 года назад

    I love the dynamic dialog concept, plus your pixel perfect scrolling, seems like it's turning out to be a cool game. What platforms is this coming out for? I would love this on Atari VCS

    • @aarthificial
      @aarthificial  2 года назад +1

      Thanks!
      I haven't thought this far ahead. Windows and Linux for sure, we'll see about other platforms.
      The new Atari doesn't seem to be too difficult to relase onto though

    • @ObsidianContraption
      @ObsidianContraption 2 года назад

      @@aarthificial if you do that I'll definitely support it. I'll find you on itch anyway. I'm a musician and dabble in game creation myself

  • @Mouse97Master
    @Mouse97Master 2 года назад

    Interesting and flexible realization.
    How about adding graph presenter of this system, so you can more easily handle the dialog flow?

    • @aarthificial
      @aarthificial  2 года назад +1

      Thanks!
      That was the plan initially, but Elan Ruskin changed my mind (clip):
      ruclips.net/user/clipUgwkneKnSZnjMGj1kFp4AaABCQ
      And after making this tutorial level, I don't really feel like I need a visual tool

    • @Mouse97Master
      @Mouse97Master 2 года назад

      That's sad
      Also, how do you store the dialog files?
      Is they are hardcoded to the prefab or you use files?

  • @bonyimperio8809
    @bonyimperio8809 Год назад

    Is there a tutorial explaining how to do it? Or source code to study?

  • @MrMagicPenguin12
    @MrMagicPenguin12 2 года назад

    Was the UI done by hand with Unity libraries or did you use another tool like Odin? Very cool system..

    • @aarthificial
      @aarthificial  2 года назад

      Thanks! It was done with Unity's new UI Toolkit

  • @syntheticperson
    @syntheticperson Год назад

    cool

  • @sagrel
    @sagrel 2 года назад

    Your videos are great and I think you deserve more views. Have you thought about posting something on reddit? I'm sure people will love it.

    • @aarthificial
      @aarthificial  2 года назад +1

      Thanks!
      I used to post on reddit a bit in the past.
      Unfortunately, for me, posting on social medias tends to be really stressful, and since growing this channel is not my priority, I don't do any marketing like that so that I can focus on the game more

  • @jimmyliu0104
    @jimmyliu0104 2 года назад

    God like...

  • @uhhmir
    @uhhmir 2 года назад

    Is Typerwriter public? I would love to use it but I can't find the link anywhere (:

  • @jao5254
    @jao5254 2 года назад +1

    god

  • @EthMiC_
    @EthMiC_ 2 года назад

    Great, I no longer need friends to talk too

  • @WeslomPo
    @WeslomPo 2 года назад

    Instead of strings, use struct with string in it - that represent this id. This is much robust and agile method compare to strings.

    • @aarthificial
      @aarthificial  2 года назад +1

      I'm using keys that are integers because there's lots of dictionary lookup that needs to be done to test all the rules - and strings are much slower for that.
      Elan Ruskin in his talk goes into more technical detail on why strings are generally a bad idea in this case

    • @WeslomPo
      @WeslomPo 2 года назад

      @@aarthificial yeah, this is true, but point that you can change how struct is works in their guts, so your struct can be as fast as integers. And you can do that _later_, when you get problem with their performance. As example, you can calculate their hash when they created, and save that hash to variable that will be used when calculated hash for dictionaries. Or can replace string completly for hash calculation and does not save them at all. You will create your ID with string, but after that it will be works as integer. Just a little trick to make the code cleaner.

    • @WeslomPo
      @WeslomPo 2 года назад

      This is how your Events is represented. I think :) id and their humanreadable name.

    • @aarthificial
      @aarthificial  2 года назад +1

      Yes, like I siad in the video, entries are objects that contain an id. I'm not using structs because these entries need to be extended.
      Still, calculating the hash when a string is created would be nightmare because there is no way to prevent collisions.

    • @calcopod6337
      @calcopod6337 Год назад

      @@aarthificial I am sorry for replying 11 months after, however I was wondering: when you say the entry is an object, do you mean it inherits from UnityEngine.Object, or is it just a normal class?

  • @partially2413
    @partially2413 2 года назад

    God damn

  • @AntonioBrandao
    @AntonioBrandao 2 года назад

    What language (+platform) are you using for development?

    • @aarthificial
      @aarthificial  2 года назад +1

      It's Unity, C#
      Unless you mean something more specific?

    • @AntonioBrandao
      @AntonioBrandao 2 года назад

      @@aarthificial thanks! Yeah that’s what I mean. Just started learning C#, looking forward to do cool stuff with Unity too :)

  • @AmberLimShin
    @AmberLimShin 2 года назад

    Ajsohebdodowuhe it's so fascinating to see people make game systems. It's like a weight has been lifted off my shoulders as I imagine how much easier it's going to make the development process later. 🥵🥴

  • @kirillarionov123456
    @kirillarionov123456 2 года назад

    So it is basically a state machine with extra steps.
    Good work tho

    • @aarthificial
      @aarthificial  2 года назад +1

      In theory, every computer is a finite state machine.
      Therefore any program that runs on it is just a finite state machine with extra steps

    • @kirillarionov123456
      @kirillarionov123456 2 года назад

      @@aarthificial well that’s pretty true

  • @notsoren665
    @notsoren665 2 года назад

    I don't see why one shouldn't just use yarn spinner?

    • @aarthificial
      @aarthificial  2 года назад

      One should use whatever they want

  • @Btomaek
    @Btomaek Год назад

    half-life 2 lost cost and alyx has this type of system

  • @khushalkhan83
    @khushalkhan83 Год назад

    Typewriter should be polished & released to asset store, there are many dialogue systems on asset store but all of them poorly implemented.

  • @windbreaker17
    @windbreaker17 Год назад

    Interesting, but i wish i didnt try to recreate it, just wasted time (

  • @RoffeDH
    @RoffeDH 2 года назад +1

    I'm gonna say it again: if you end your video with "and if you want to learn how to do this for yourself, pay me all the moneys in the world" I'd pay it.

  • @jakubfuntal8972
    @jakubfuntal8972 2 года назад

    First