LlamAcademy
LlamAcademy
  • Видео 224
  • Просмотров 2 002 206
Top 3 Lessons (Re)Learned from Making My Chicken Defense Microgame
In this video you'll hear about my top 3 lessons learned and re-learned from making my free and open source microgame: Chicken Defense. You've probably heard some of these before, but somehow I'm still re-learning them even after writing code for over 20 years!
👨‍💻 As always, all code from this video is available on GitHub: github.com/llamacademy/chicken-defense
🏷️Save 25% on the ultimate C# IDE: JetBrains Rider with code LLAMACADEMY: www.jetbrains.com/store/?section=personal&billing=yearly
📚 Resources:
⚫ Play the game for free: llamacademy.itch.io/chicken-defense
⚫ Hofstadter's law (everything takes longer than you think): en.wikipedia.org/wiki/Hofstadter%27s_law
⚫ Generics in C#: learn.micros...
Просмотров: 399

Видео

Event Bus & Scriptable Object Event Channels | Unity Game Architecture Tutorial
Просмотров 3,7 тыс.14 дней назад
Learn how to implement an Event Bus strictly in code, and in a more-designer friendly, ScriptableObject driven “event channel” implementation! 👨‍💻 You can find the full Chicken Defense Project on GitHub: github.com/llamacademy/chicken-defense 👨‍💻 Scriptable Objects as Event Channels Unity GitHub: github.com/UnityTechnologies/PaddleGameSO 🏷️Save 25% on the ultimate C# IDE: JetBrains Rider with c...
Easy Minimap using UI Toolkit | Unity Tutorial
Просмотров 1 тыс.28 дней назад
Learn how to use a Render Texture and Render Layers to set up a minimap using UI Toolkit! 👨‍💻 The full project for the Chicken Defense Microgame is available on GitHub for FREE: github.com/llamacademy/chicken-defense 🏷️Save 25% on the ultimate C# IDE: JetBrains Rider with code LLAMACADEMY: www.jetbrains.com/store/?section=personal&billing=yearly 📚 Resources: ⚫ Chicken Defense on Itch.io: llamac...
Ghost Placement / Hologram Shader | Unity ShaderGraph Tutorial
Просмотров 1,2 тыс.Месяц назад
Learn how to make a Ghost Placement or Hologram Shader in Unity ShaderGraph. You'll learn how to create procedural scan lines as well as the edge glow (fresnel). 👨‍💻 The full project for the Chicken Defense Microgame is available on GitHub for FREE: github.com/llamacademy/chicken-defense 🏷️Save 25% on the ultimate C# IDE: JetBrains Rider with code LLAMACADEMY: www.jetbrains.com/store/?section=p...
Active NavMeshAgent Avoidance - Run Away From or Around a Target | Unity Tutorial
Просмотров 3,1 тыс.Месяц назад
AI pathfinding avoidance can be tricky. In this video you'll learn the basics of enhancing the built-in NavMeshAgent avoidance to have them walk around some targets or even run completely away from them! 👨‍💻 The full project for the Chicken Defense Microgame is available on GitHub for FREE: github.com/llamacademy/chicken-defense 🏷️Save 25% on the ultimate C# IDE: JetBrains Rider with code LLAMA...
Procedural Mesh & Animation with the Official Unity Spline Package | Unity Tutorial
Просмотров 2 тыс.2 месяца назад
Learn how to use the Unity Spline Package to generate a smooth procedural mesh between a set of points. We'll dive into: ⚫ How to use the Official Unity Spline Package ⚫ How we can Animate a Spline at Runtime with MATH! ⚫ Challenges with Animating that Spline 👨‍💻 As always, all code from this video is available on GitHub: github.com/llamacademy/chicken-defense 🎮 Play Chicken Defense FREE on Itc...
Simple Animated Click Indicator Shader | Unity ShaderGraph Tutorial
Просмотров 1,8 тыс.2 месяца назад
In this tutorial you'll learn how to create an animated "click indicator" shader using ShaderGraph and a very simple script. Once you understand the basics here, I challenge you to enhance it and create your own unique look! 👨‍💻 The full project for the Chicken Defense Microgame is available on GitHub for FREE: github.com/llamacademy/chicken-defense 🎮 Play Chicken Defense FREE on Itch.io: llama...
Unity Muse Animate: A First Look, Impressions, and Test Prompts
Просмотров 6 тыс.3 месяца назад
In this video I'll take a first look at Muse Animate (release 0.2.5) which promises to generate humanoid animations from simple prompts like "walk forward". I'll give my first impression of this tool, what works well, what doesn't, and we'll walk through a bunch of prompts together to see how they work and even how you can modify the animations right there in the Muse Animate tool! 👨‍💻 Unusuall...
Sample NavMesh Positions PER AGENT TYPE Using NavMeshQueryFilter | Unity Tutorial
Просмотров 1,6 тыс.3 месяца назад
In this tutorial you'll learn all about NavMeshQueryFilter and how to use it to distinguish between different baked NavMeshes that are baked per Agent Type using the NavMeshSurface component. 👨‍💻 The full project for the Chicken Defense Microgame is available on GitHub for FREE: github.com/llamacademy/chicken-defense 🎮 Play Chicken Defense FREE on Itch.io: llamacademy.itch.io/chicken-defense 🏷️...
Does Animation Rigging Work on "Generic" (non-Humanoid) Models? | Unity Tutorial
Просмотров 2,4 тыс.4 месяца назад
In this video we'll explore using the Animation Rigging package on non-humanoid ("Generic") models in Unity. The use case we'll use is creating a Stomp animation for a Llama! 👨‍💻 As always, all code from this video is available on GitHub: github.com/llamacademy/chicken-defense 🎮 Play Chicken Defense FREE on Itch.io: llamacademy.itch.io/chicken-defense 🏷️Save 25% on the ultimate C# IDE: JetBrain...
Shrapnel Shotgun with Knockback | Guns Series 15 | Unity Tutorial
Просмотров 2,3 тыс.4 месяца назад
Learn how to extend our ScriptableObject gun system to support shrapnel shooting shotguns (or any other type of multi-bullet-per-shot gun)! We'll also go into how to add knockback to arbitrary objects using our ICollisionHandler and some new interfaces! 👨‍💻 As always, all code from this video is available on GitHub: github.com/llamacademy/scriptable-object-based-guns 🏷️Save 25% on the ultimate ...
Physic Materials, Explained. | Unity Tutorial
Просмотров 2,7 тыс.5 месяцев назад
Learn all about Physic Materials in Unity. What they are, how they work, and how to create them! 👨‍💻 As always, all code from this video is available on GitHub: github.com/llamacademy/physic-materials-explained 🏷️Save 25% on the ultimate C# IDE: JetBrains Rider with code LLAMACADEMY: www.jetbrains.com/store/?section=personal&billing=yearly 📚 Resources: ⚫ Physic Material Asset Reference: docs.un...
Knockback NavMeshAgents using Physics | AI Series 51 | Unity Tutorial
Просмотров 4,6 тыс.5 месяцев назад
Go to this video's Sponsor: snhu.edu/llamacademy to see what the current average annual salary for a game developer programmer is and learn how you can get started! In this tutorial you'll learn how to combine the Unity Physics system and the NavMeshAgent to apply realistic knockback forces to the NavMeshAgents! 👨‍💻 As always, all code from this video is available on GitHub: github.com/llamacad...
3 Twinkling Emissive Light Shaders | ShaderGraph Unity Tutorial
Просмотров 1,5 тыс.6 месяцев назад
In this tutorial you'll learn 3 different ways to have lights flicker or twinkle in a shader (no code required!). Since it's the end of year holiday season, Christmas lights were on my mind, but this can be applied in a Horror game, Halloween updates, Christmas, and all kinds of other use cases in your game. 📚 Resources: ⚫ ShaderGraph Course: www.gamedev.tv/p/unity-shader-graph?coupon_code=LLAM...
GOAP Enemy AI FULL IMPLEMENTATION | AI Series 50 | Unity Tutorial
Просмотров 8 тыс.6 месяцев назад
Go to this video's Sponsor: snhu.edu/llamacademy to see what the current average annual salary for a game developer programmer is and learn how you can get started! See a full implementation of an enemy AI with GOAP (Goal Oriented Action Planning). This enemy AI will have 3 goals: Wander, Kill Player, and Eat. You'll learn how to set up Actions, Goals, Behaviors and have them work together with...
Introduction to GOAP | AI Series 49 | Unity Tutorial
Просмотров 6 тыс.7 месяцев назад
Introduction to GOAP | AI Series 49 | Unity Tutorial
Embers Shader (No Sprite Sheets) | ShaderGraph Unity Tutorial
Просмотров 1,1 тыс.7 месяцев назад
Embers Shader (No Sprite Sheets) | ShaderGraph Unity Tutorial
Blend Between Textures in a Shader (Vertex Colors) | ShaderGraph Unity Tutorial
Просмотров 8 тыс.8 месяцев назад
Blend Between Textures in a Shader (Vertex Colors) | ShaderGraph Unity Tutorial
Save and Load a Player Loadout | Gun Series Part 14 | Unity Tutorial
Просмотров 2,4 тыс.8 месяцев назад
Save and Load a Player Loadout | Gun Series Part 14 | Unity Tutorial
Every Physics "Overlap" Visualized | Unity Tutorial
Просмотров 6 тыс.9 месяцев назад
Every Physics "Overlap" Visualized | Unity Tutorial
Bullet Penetration with Raycasts and Rigidbodies | Gun Series Part 13 | Unity Tutorial
Просмотров 3,6 тыс.9 месяцев назад
Bullet Penetration with Raycasts and Rigidbodies | Gun Series Part 13 | Unity Tutorial
Enemy Behavior Tree AI FULL IMPLEMENTATION (AI Tree) | AI Series 48 | Unity Tutorial
Просмотров 13 тыс.9 месяцев назад
Enemy Behavior Tree AI FULL IMPLEMENTATION (AI Tree) | AI Series 48 | Unity Tutorial
Enemy State Machine AI FULL IMPLEMENTATION | AI Series 47 | Unity Tutorial
Просмотров 18 тыс.10 месяцев назад
Enemy State Machine AI FULL IMPLEMENTATION | AI Series 47 | Unity Tutorial
Which AI Behavior Framework Should You Use? | AI Series 46
Просмотров 37 тыс.10 месяцев назад
Which AI Behavior Framework Should You Use? | AI Series 46
8 Inverse Kinematics Solutions in Unity Evaluated - Which should you use?
Просмотров 13 тыс.11 месяцев назад
8 Inverse Kinematics Solutions in Unity Evaluated - Which should you use?
Aiming with Inverse Kinematics (IK) and Animation Rigging | Gun Series 12 | Unity Tutorial
Просмотров 21 тыс.11 месяцев назад
Aiming with Inverse Kinematics (IK) and Animation Rigging | Gun Series 12 | Unity Tutorial
Runtime Gun Swapping | ScriptableObject-based Gun Series Part 11 | Unity Tutorial
Просмотров 3,7 тыс.Год назад
Runtime Gun Swapping | ScriptableObject-based Gun Series Part 11 | Unity Tutorial
Visualize a NavMesh, In Game! | AI Series 45 | Unity Tutorial
Просмотров 4,1 тыс.Год назад
Visualize a NavMesh, In Game! | AI Series 45 | Unity Tutorial
Static Batching, Explained. Free, Powerful Draw Call Optimization | Unity Tutorial
Просмотров 18 тыс.Год назад
Static Batching, Explained. Free, Powerful Draw Call Optimization | Unity Tutorial
Gun Attachment System | Gun Series 10 | Unity Tutorial
Просмотров 4,4 тыс.Год назад
Gun Attachment System | Gun Series 10 | Unity Tutorial

Комментарии

  • @CaptainBlackSea
    @CaptainBlackSea День назад

    thank you

  • @legendarybanditmb
    @legendarybanditmb День назад

    doing these kinds of "post-mortems" are SO helpful! it's kind of like Step -1 for whatever your next project is. The cycle continues! :)

  • @WarspawnOG
    @WarspawnOG День назад

    oh yes... everything always takes longer than you think comes up constantly. the full spectrum from "oh this project will take 3 months (1 year)" to "fixing this bug will take me 15 minutes (4 hours)"

    • @LlamAcademy
      @LlamAcademy День назад

      😆 that “fixing this bug” is me SO many times!

  • @SunSailor
    @SunSailor День назад

    If working in a bigger team, you must even expect team members, who refuse to touch prefabs, scriptableobjects or such at all.

  • @drake_eric9799
    @drake_eric9799 День назад

    i like your video more on scriptable

  • @drake_eric9799
    @drake_eric9799 День назад

    do you have scriptable video for inventory system

  • @zivv1147
    @zivv1147 День назад

    I really like your tutorials. They are of the best ones out there. I want to add a wishlist to your tutorials - that you will make a tutorial about google analytics (Firebase). That is how to to setup custom events with parameters, how to test its working, etc. I've been searching for ages and still haven't found good and up-to-date tutorials about it.

  • @kuraikage15
    @kuraikage15 2 дня назад

    this video is a life saver. Thank you so much buddy. Very well explained

  • @oredi
    @oredi 2 дня назад

    Those states, affect only that list? I usually don't use it, but it seems those NEED the list to work. Is that the case? Ty for the video btw. <3

  • @SAAVYentertainment
    @SAAVYentertainment 3 дня назад

    Thank you so much is very straight to the point (y) I'ive been looking to how to map one key (E) to a screen button, its very simple but there is no documentation or something about it Thank you

  • @daslolo
    @daslolo 4 дня назад

    red hair = 12% cooler

  • @mattg1345
    @mattg1345 4 дня назад

    Are you using the Unity Third person controller along side this?

    • @LlamAcademy
      @LlamAcademy 4 дня назад

      Yes that is the base for the movement and the model

  • @raifazhar9727
    @raifazhar9727 4 дня назад

    Sir, I want to know know how can we fix the joystick to bottom left side of the screen. I tried to get the position of reactransform and then used RectTransformUtility.ScreenPointToLocalPointInRectangle but it did not work.

    • @LlamAcademy
      @LlamAcademy 3 дня назад

      If you want it to be fixed to bottom left you can just anchor it there on the Canvas and not move it around at all

    • @raifazhar9727
      @raifazhar9727 3 дня назад

      @@LlamAcademy but how to see if the user touch at the joystick because now we are not comparing with screenwidth/2f

  • @certilremy
    @certilremy 4 дня назад

    Can you help me? I follow your turtorial, I completed all the step, it works perfect on my laptop. When I move to my iphone, I manualy add all the product to app store. i get this error on my xcode logs : "Purchasing failed to initialize. Reason: NoProductsAvailable. More details: No product returned from the store.". Do i need to wait for my app aproved to test it on my iphone?

  • @sakeb1
    @sakeb1 5 дней назад

    how am i only finding this now???? what

  • @fabioxperuggia
    @fabioxperuggia 5 дней назад

    You should have shown how the code works and how to call those agent variables.

  • @gerarddiazvidal5121
    @gerarddiazvidal5121 5 дней назад

    shadowmasking the lights should avoid the shadow popping, would that have a noticeable impact on performance?

  • @khurum
    @khurum 7 дней назад

    Animation Rigging supports Generic IK now!.

  • @garethdenyer21
    @garethdenyer21 8 дней назад

    This really got me started on making something that would select particular items in a spreadsheet-style grid on teh UI.... thanks so much!!!

  • @davidschmitt9210
    @davidschmitt9210 8 дней назад

    Great tutorial! I really liked that you offered both a code-driven approach and an inspector driven approach. The 2017 Unite talk is geared toward studios that have dedicated designers with an emphasis on inspector use. Your guide is very balanced, showing how the inspector setup is an optional step beyond what can already be done in code! Thanks so much 😁

  • @salmanalfarisi6678
    @salmanalfarisi6678 8 дней назад

    i've watched a lot of people discussing about scriptable object, i never understand what case it can be use for, but i watched this video, and it gives me an idea about how to use it, and i've been used scriptable object since then, thank you Liam academy, thanks, love you, wish all your dream can become true

  • @RimuruDev
    @RimuruDev 9 дней назад

    Cool

  • @pirateskeleton7828
    @pirateskeleton7828 10 дней назад

    Behavior trees are still state machines, however it organizes the states by hierarchy and goes into sub-states. You can massively increase the scalability of a state machine by creating sub-states. There is no reason anyone would have to define every single transition condition between every state.

  • @MalikenGD
    @MalikenGD 10 дней назад

    The main issue I see with this approach is the number of scriptable objects you then have to create and fill your project with, one for every single event you could need. You mention when reaching for a static class it's because you want something fast, not scalable, but I look at 100s of potential scriptable object event channels and see that is not scalable. Really surprised you went from an event bus to this, but I get the rationale, just not the solution. Good video, and great way of explaining generics. Never seen it explained that hand-holdy before, and I'm sure it helped someone stuck on the concept

  • @criminalbotanist
    @criminalbotanist 11 дней назад

    Man all this AI playlist is incredible. I followed and made projects with many of the examples you show. Truly appreciated! If i wanted to make a everyone vs everyone king of the hill type of game, where we had the player and 9 AI agents, all fighting and pushing each other to stay on top of the hill for the longest time, could i simply modify this GOAP system? Here's an example of the desired end result: ruclips.net/video/oDGgwKKGIpg/видео.html

    • @LlamAcademy
      @LlamAcademy 9 дней назад

      You can absolutely use GOAP for the AI Agents on a King of the Hill game. It's all about setting up the goals, potential actions, and knowledge the world! :)

  • @maitrykotak3703
    @maitrykotak3703 12 дней назад

    why u take same animator controller in player n enemy?

    • @LlamAcademy
      @LlamAcademy 12 дней назад

      For ease of use for the tutorial 🙂 they’re all doing the same thing so I just reused the animator.

  • @worldkho
    @worldkho 12 дней назад

    I keep coming back to this video thinking how I would implement this but I cant figure it out. I'm thinking of doing a periodic check of all units in the scene to check the closest point around the player it can move to. However, it can be clunky and very costly in performance. I just want to have the my horde enemies to at least try to find an open spot around the player

    • @LlamAcademy
      @LlamAcademy 11 дней назад

      For hoards I think you are better off with a “manager” of some kind that sets the destination for the AI. That way you don’t need dozens or hundreds of agents all checking periodically

  • @Strangertoyourlife
    @Strangertoyourlife 12 дней назад

    1. Before uploading to the In-App Products tab you will need to set up your payment profile , you don't need to be registered as a legal company also 2. If you cannot get your csv file uploaded correctly (mine was saying there was no default language) , the only solution I found was to manually enter them into the In-app Products page

  • @SebastianZoellner
    @SebastianZoellner 13 дней назад

    It is not entirely clear to me what the benefit of using a events bus is over using the standard system events.

    • @LlamAcademy
      @LlamAcademy 11 дней назад

      What do you mean the “standard system events”?

  • @brickch4pel
    @brickch4pel 13 дней назад

    The funny thing is, I've been trying to learn how to use the Jobs system via implementing it into the LOS system I had and failed miserably because I didn't know the caveats of needing unmanaged resources lmao ---- Then this video popped up!

  • @anonymous49125
    @anonymous49125 13 дней назад

    I was really skeptical clicking on this video - I'm historically not a fan of SO let alone using them for events (as that has become popular lately to do)... but right off the bat, you talk about high coupling and you explain really well that it lowers dependencies on other scripts. Very compelling when put in those terms. I'll likely still use delegates for most of this stuff (from monolithic singletons), but honestly, you make a really strong point in this video and for that I enjoyed it greatly!

    • @MalikenGD
      @MalikenGD 10 дней назад

      It's funny, your use case (monolithic singletons) is the exact reason we've gotten to the point where we need solutions like this.

  • @maitrykotak3703
    @maitrykotak3703 13 дней назад

    this tutorial is awesome....having one problem is that bullet clone is creating but they all are inactive..ranged enemy come closer to our player but no bullet is generated...

  • @rocketB343s
    @rocketB343s 14 дней назад

    is it ok to follow this tutorial without text mesh pro? ,since i don't know how to use it

    • @LlamAcademy
      @LlamAcademy 13 дней назад

      You can, but the way we interact with the text is not the same with TextMeshPro versus the standard text component. I highly recommend to use TextMeshPro instead of the standard text because it looks much nicer and has more functionality.

    • @rocketB343s
      @rocketB343s 13 дней назад

      @@LlamAcademy K thanks

  • @Sethizback1
    @Sethizback1 14 дней назад

    Thanks! A very helpful example of using static classes. In my project individual units had to be registered with appropriate manager classes on enable and that caused a lot of headache to manage. I will try to move most of this logic into the event bus system you've explained and hopefully adding more particle and sound effects events in the future will be much easier. The TODO list keeps growing, no matter how many refactoring passes I do...

    • @LlamAcademy
      @LlamAcademy 9 дней назад

      Make sure the refactoring passes are helping you deliver value to your game. Eventually "good enough" has to be good enough and move on 🙂.

  • @joaopedromonteiro2517
    @joaopedromonteiro2517 14 дней назад

    In a real world scenario, would you use this buses only in events that connect different systems/unrelated parts of code? I do use a lot o Actions in my code, and many of those are to bind together closely related scripts, like the Player triggering some small events that are used in other scripts of the same hierarchy. In these it seems like it'd be and overkill to create all those classes.

    • @LlamAcademy
      @LlamAcademy 9 дней назад

      It depends on the complexity of your game. If what you have is working well and scales to the level you need it, you're good! If you find out some of those events need to be listened to by other scripts, you may consider refactoring those to a global event bus with one of these 3 methods.

  • @rofu8096
    @rofu8096 14 дней назад

    Who me?

  • @dreamisover9813
    @dreamisover9813 14 дней назад

    I've been using something similar - just in code without scriptable objects. But it has been really convenient for decoupled logic and avoiding logic from breaking when certain other objects don't exist in the scene

  • @darryljf7215
    @darryljf7215 14 дней назад

    I searched for Unity animation controller interruption source because I needed to get an animation to interrupt and found your video. Nicely explained. I understand it now. And it will help me interrupt some of my animations. I'll check out your videos too.

  • @ToughAndGrittyOpGrunts
    @ToughAndGrittyOpGrunts 14 дней назад

    Thank You !

  • @halivudestevez2
    @halivudestevez2 14 дней назад

    you just overcomplicate simple things.

    • @halivudestevez2
      @halivudestevez2 14 дней назад

      sounds great for the first glance, but in real, it's bullshit. Bus< ??? you have to find out, look thru your 1000 code finding out what to write here. While "Bus. <-- innellisense helps you, and you are more productive.

  • @halivudestevez2
    @halivudestevez2 14 дней назад

    I'm trying to avoid assigning events in inspectors: these assignments are easy to loose, they also fall apart if you add more parameter to the event. They are also untrackable, and hidden from the code aspects: you cannot track doen, why that event happens. I ban UnityEvent-s from my code as much as possible, and go by System.Event. More stabile.

    • @halivudestevez2
      @halivudestevez2 14 дней назад

      I have many criticizm about this approach, since I solodev and has negative, real-world experiences...

    • @LlamAcademy
      @LlamAcademy 14 дней назад

      Yup. If it doesn’t work for you and your workflow, don’t use that approach!

    • @sadbuttrue666
      @sadbuttrue666 13 дней назад

      @@LlamAcademy Shouldn't it be quite easy to solve the problem with the messaging approach? It would only be necessary to insert a message in the base class, which is given to each event and can be read at a suitable point. I currently use the signal system from DoozyUI and it does exactly that. Each event also has a message payload. There is then the SignalConsole and the StreamsConsole in which all fired events are displayed.

    • @Briezar
      @Briezar 11 дней назад

      I have the same approach as yours; if there's a Button component that needs to register click events, I'd create a reference to that Button and hookup from code instead. But then I am a programmer, I have the option to do that. It doesn't apply to designers who shouldn't be touching any codes.

  • @halivudestevez2
    @halivudestevez2 14 дней назад

    why SciptableObject for this? I have a MonoBehaviour for eventbus, for LevelEvents.

    • @LlamAcademy
      @LlamAcademy 14 дней назад

      Why do you need a MonoBehaviour for this? You do not need a GameObject nor the lifecycle methods like start/awake. 🙂 there are many ways to approach a problem. In this video I show a typical standard C# one, and two that Unity themselves have suggested in their e-book.

  • @franciscooteiza
    @franciscooteiza 15 дней назад

    How old are you? Maybe 30 or 35? You can't have more than 20 years of experience as a programmer.

    • @halivudestevez2
      @halivudestevez2 14 дней назад

      he worked overnight, too

    • @LlamAcademy
      @LlamAcademy 14 дней назад

      Well if we take either of those numbers 30-20 = 10. There are plenty of kids programming at 10. 35-20 = 15, people are taking boot camps at that age. I started programming in the late 90s with Visual Basic.

  • @shpoinkervr
    @shpoinkervr 15 дней назад

    i cant even get polybrush to begin with

  • @ragerungames
    @ragerungames 15 дней назад

    great tutorial. nice and easy to understand. thanks

  • @dibaterman
    @dibaterman 15 дней назад

    Sadly Godot doesn't have static actions or delegates, in there we use signals which are really convenient in their own right. I had made an event bus and made a event system which all signals emit a object Event which contains a type String and variant data (dynamic data). This isn't too bad but in bigger projects I am thinking this isn't good. So I was thinking of going with exposing the event bus via using Resources (Scriptable Objects) and putting a signal in that. Not sure... Regardless another neat thing is a broker pattern where you can get back the other end of this system, this allows for sending lamda's to handle logic inside of a broker which works independently of the origin or even the thing using the broker. So if I have say Attack and it's 0 at base but I equip a sword with 8 attack, the attack getter simply needs to return broker and whatever identifier the parameter is subscribed with to return 8. This stacks with all modifiers and I can even get a list of all modifiers and their sources since the broker knows all XD. I recall in Unity not enjoying the event channel workflow, it made it feel like drag n drop hell.

  • @kadircalloglu2848
    @kadircalloglu2848 15 дней назад

    its look like zenject event system

  • @Daeniak57
    @Daeniak57 15 дней назад

    Bread

  • @dbweb.creative
    @dbweb.creative 15 дней назад

    Can you please make a video about saving/loading player inventory, where items are ScriptableObjects. I understand that one way to go about it is - items have to be serialized by their guid or by some sort of another id, and then maybe lookup tables or something. This way there needs to be a way to scan and add SO items to lookup table in the first place... Basically I don't know which way to go about handling this whole topic, please ponder this topic in a video, thanks.

    • @sealsharp
      @sealsharp 15 дней назад

      Here's my "scan for all ScriptableObjects of a type" method. public static List<T> GetAllInstances<T>() where T : ScriptableObject { return AssetDatabase.FindAssets($"t: {typeof(T).Name}").ToList() .Select(AssetDatabase.GUIDToAssetPath) .Select(AssetDatabase.LoadAssetAtPath<T>) .ToList(); }

  • @publicmmi
    @publicmmi 15 дней назад

    Like always, a great video! Thanks :)