- 41
- 40 958
Tale Forge
United States
เข้าร่วมเมื่อ 17 ส.ค. 2023
🎮📖 Welcome to Tale Forge - Where Creativity Comes to Life! 📖🎮
🔥 Patreon: www.patreon.com/TaleForge
At Tale Forge, we're more than just game developers - we're storytellers, crafting immersive experiences that blur the lines between reality and the virtual world. Our forge is where epic tales come to life, and where your imagination takes the lead.
🎮 Dive into our captivating story-driven adventure games that put you in the heart of the action. Discover a world where imagination knows no bounds.
💡 For developers, we offer a treasure trove of Unity tutorials, guiding you through the art of game creation. Join our community of like-minded visionaries and let's shape the future of gaming together.
🌟 Join our vibrant community where gamers, storytellers, and developers unite. Let's create, explore, and celebrate the art of gaming together!
🔥 Subscribe to our channel and forge your own story!
🔥 Patreon: www.patreon.com/TaleForge
At Tale Forge, we're more than just game developers - we're storytellers, crafting immersive experiences that blur the lines between reality and the virtual world. Our forge is where epic tales come to life, and where your imagination takes the lead.
🎮 Dive into our captivating story-driven adventure games that put you in the heart of the action. Discover a world where imagination knows no bounds.
💡 For developers, we offer a treasure trove of Unity tutorials, guiding you through the art of game creation. Join our community of like-minded visionaries and let's shape the future of gaming together.
🌟 Join our vibrant community where gamers, storytellers, and developers unite. Let's create, explore, and celebrate the art of gaming together!
🔥 Subscribe to our channel and forge your own story!
Collectibles - UI communication in Unity ECS and animation with DOTween - MVC pattern.
In this video I handled Collectibles in the Unity ECS and want to show you how to update points on the UI using DOTween animation. I will also use Model-View-Controller pattern to implement the UI logic, so let’s dive in and see how to do it! 🍻
--------------------
We appreciate your support on the Patreon:
patreon.com/TaleForge
---------------------
Social Media:
Discord:
discord.gg/gZssNGuDdc
Facebook:
taleforge/
Instagram:
taleforgegames
LinkedIn:
www.linkedin.com/company/tale-forge/
Reddit:
www.reddit.com/user/taleforge
Tiktok:
www.tiktok.com/@taleforge
Twitter:
TaleForgeStudio
#taleforge #unity #ecs #tutorial #gamedev #games #programming #education #learning #trending
--------------------
We appreciate your support on the Patreon:
patreon.com/TaleForge
---------------------
Social Media:
Discord:
discord.gg/gZssNGuDdc
Facebook:
taleforge/
Instagram:
taleforgegames
LinkedIn:
www.linkedin.com/company/tale-forge/
Reddit:
www.reddit.com/user/taleforge
Tiktok:
www.tiktok.com/@taleforge
Twitter:
TaleForgeStudio
#taleforge #unity #ecs #tutorial #gamedev #games #programming #education #learning #trending
มุมมอง: 115
วีดีโอ
What's next? Future of the Channel in the 2025!
มุมมอง 86214 วันที่ผ่านมา
Happy New Year, Tale Forgers! ❤️ As we wrap up 2024, here’s a quick look back and an exciting peek ahead! This year, we dove into incredible topics like ECS, Physics, Jobs, ComputeShaders, and more. Thank you for being part of this journey! :saluting_face: Looking forward to 2025: Projects: - Universe Architect: A sandbox/Idle Tycoon hybrid. - Tower Defense: Built entirely with ECS in our spare...
BlobAssets and ScriptableObjects in action! - Collectibles in Unity ECS
มุมมอง 1.1K28 วันที่ผ่านมา
In this video we integrate ScriptableObjects with BlobAssets in Unity ECS! Level up your Unity ECS skills with this hands-on tutorial! Learn how to create dynamic collectibles using BlobAssets and ScriptableObjects. Watch as we build Gold and Bronze Coins, set up CollectibleSO, and implement essential ECS systems like PlayerDetection and CollectibleSystem. See how collectibles are detected, sco...
BlobAsset - What is it? - Theory with minimum working example - Unity ECS
มุมมอง 773หลายเดือนก่อน
BlobAssets represent immutable binary data - because all the benefit of using BlobAssets and their performance comes from the fact that the data is read-only binary. In this sense, they are a great addition when passing data, because we can rewrite data from ScriptableObject to BlobAsset. But that's not all - if we have high-order filter coefficients - or a machine learning training set, or any...
Loading Screen for Subscenes in Unity ECS
มุมมอง 7252 หลายเดือนก่อน
Learn how to implement a Loading Screen in Unity with async operations using the FREE UniTask package! We’ll dive into Scene Management, ECS SubScene loading and fade animations. Watch as the Loading Screen ties everything together! 0:00 - Introduction 0:06 - Plan on this video 0:26 - UniTask package 1:17 - LevelSystem 5:02 - SceneType 5:11 - Patreon 5:27 - LoadingScreenAnimationController 8:10...
CORRECT way to manage Scenes and Subscenes in Unity ECS
มุมมอง 8302 หลายเดือนก่อน
Today we will implement the logic of the following UI classes: NextLevelWindowController - from which we go to the next level (so ECS Subscene). GameOverWindowController - from which we will return to the Menu scene. MenuController - from which we go to the Game scene. And - of course - ECS systems like LevelSystem and extend GameOverSystem & InputSystem implementations. We will cover Loading S...
Tutorial - Compute Shader with ECS - High performance meets clean code!
มุมมอง 1.4K3 หลายเดือนก่อน
So you go to the description section, right? Great! Let me tell you a little bit about this tutorial. After learning a bit about Compute Shaders, I'm going to show you how to create a Falling sand particle effect using Compute Shaders with ECS in Unity. For the sake of simplicity, I will break it down into five steps: 1) Set up ECS scripts like DrawComponentData, DrawAuthoring and DrawSystem - ...
Compute Shader with ECS - Falling Sand shader showcase!
มุมมอง 3.2K3 หลายเดือนก่อน
New'n'Tasty special video - Compute Shaders with ECS! 🔥Thank you for your support - we have reached over 1k subscribers and are close to 1.5k! Interested in a tutorial about Compute Shaders and ECS? Let us know in the comments and we'll prepare a material about it! ❤️ Music thanks to amazing @alkakrab www.youtube.com/@alkakrab/ Really appreciate the work done by cinight - the shader examples we...
Triggers in Unity ECS - CollisionFilter, PhysicsShape
มุมมอง 1K4 หลายเดือนก่อน
In this video we dive into setting up player detection using ECS triggers in Unity. We start by creating an EndFlag sprite, adding collision filters, and setting up a NextLevel UI window that pops up when the player reaches the end of the level. ❤️ Along the way, we refactor PlayerGround into PlayerDetection, introduce NextLevelComponentData, and connect everything to a new LevelSystem that han...
How to work with UI in Unity ECS? - Localization, Events
มุมมอง 8824 หลายเดือนก่อน
The long-awaited material covering the UI and its use with Unity ECS. You are warmly invited to watch, as in addition to DOTS-related topics, there will be topics on text localization, events and more! 0:00 - Introduction 0:06 - Goal of the video 0:16 - Creating the In-game UI 3:12 - Localization Configuration 5:09 - GameOverSystem - Events part 6:32 - GameOverController - Localization part 8:1...
Collisions in Unity ECS - Dead Zone
มุมมอง 1.2K5 หลายเดือนก่อน
In this tutorial, I'll show you how to create Dead Zones that react when players enter them. You'll learn to design and apply distinct visual materials, configure collision settings, and integrate these zones into your game. I'll also extend the collision detection system to trigger specific responses, like logging messages or altering the player's state. 0:00 - Introduction 0:06 - Goal - Colli...
How to handle Camera in Unity ECS - Cinemachine, Follow Player
มุมมอง 1.3K5 หลายเดือนก่อน
Discover how to integrate Cinemachine with Unity's ECS for dynamic and smooth camera control. Learn how to create and integrate CinemachineVirtualCamera with entities and manage it (Follow Transform) with ECS for optimal performance in your game projects! 0:00 - Introduction 0:06 - Camera Follow - our goal! 0:20 - Cinemachine package 0:42 - Virtual Camera 1:38 - Remove DestroyEntity from Player...
Animations in Unity ECS - Managed Components
มุมมอง 1.3K6 หลายเดือนก่อน
Unity's ECS improves performance through a data-oriented technology stack (DOTS). Managed components, which allow reference types, are ideal for complex animation data. Implementing animations involves creating entities with Managed Components and defining systems to process them, ensuring optimal performance and scalability. While there is a slight performance difference compared to unmanaged ...
Is Player Grounded? - Jump in Unity ECS - Unsafe Code, Pointers, OverlapBox
มุมมอง 7576 หลายเดือนก่อน
In this video I'll show you how to find out if the player is grounded in Unity's Entity Component System (ECS). For implementation I used Unsafe Code, Pointers, OverlapBox, lots of fancy stuff, worth learning! 😎 Don't forget to like, comment, and subscribe for more Unity ECS tutorials! 0:00 - Introduction 0:06 - Topics covered in tutorial 0:22 - Cleanup Subscene hierarchy 0:38 - Player Physics ...
Physics in Unity ECS - Rigidbody, PhysicsShape, PhysicsBody
มุมมอง 1.2K7 หลายเดือนก่อน
Physics in Unity ECS - Rigidbody, PhysicsShape, PhysicsBody
Tutorial - Bad Apple but it's a 172800 Entities in Unity ECS
มุมมอง 3.8K8 หลายเดือนก่อน
Tutorial - Bad Apple but it's a 172800 Entities in Unity ECS
Bad Apple but it's a 172800 Entities in Unity ECS
มุมมอง 3.2K8 หลายเดือนก่อน
Bad Apple but it's a 172800 Entities in Unity ECS
How to use New Input System in Unity ECS?
มุมมอง 1.7K9 หลายเดือนก่อน
How to use New Input System in Unity ECS?
One Minute in Unity - ECS - Entity Query Refactor
มุมมอง 29910 หลายเดือนก่อน
One Minute in Unity - ECS - Entity Query Refactor
ISystem vs SystemBase differences in concepts - ECS
มุมมอง 61311 หลายเดือนก่อน
ISystem vs SystemBase differences in concepts - ECS
How to profile code in Unity ECS? - Performance Tests for Burst & Jobs
มุมมอง 31311 หลายเดือนก่อน
How to profile code in Unity ECS? - Performance Tests for Burst & Jobs
How to use Jobs in Unity ECS - JobSystem, IJobEntity, EntityCommandBuffer, ParallelWriter
มุมมอง 872ปีที่แล้ว
How to use Jobs in Unity ECS - JobSystem, IJobEntity, EntityCommandBuffer, ParallelWriter
Christmas Special - Unity ECS DevLog - Let's see what I am working on every day!
มุมมอง 189ปีที่แล้ว
Christmas Special - Unity ECS DevLog - Let's see what I am working on every day!
Thousands of DIFFERENT Sprite Renderers in Unity ECS - DynamicBuffer, IBufferElementData
มุมมอง 814ปีที่แล้ว
Thousands of DIFFERENT Sprite Renderers in Unity ECS - DynamicBuffer, IBufferElementData
It's time to move the Bullets in Unity ECS - EntityQuery, NativeArray, Dispose, LocalTransform
มุมมอง 944ปีที่แล้ว
It's time to move the Bullets in Unity ECS - EntityQuery, NativeArray, Dispose, LocalTransform
Thousands of Sprite Renderers in Unity ECS - TransformUsageFlags, SystemGroups, Instantiate
มุมมอง 1.5Kปีที่แล้ว
Thousands of Sprite Renderers in Unity ECS - TransformUsageFlags, SystemGroups, Instantiate
Let's introduce Randomization in Unity ECS! - Authoring, Baker, Aspect, ISystem
มุมมอง 953ปีที่แล้ว
Let's introduce Randomization in Unity ECS! - Authoring, Baker, Aspect, ISystem
One Minute in Unity - ECS - IComponentData #unity #ecs #tutorials
มุมมอง 636ปีที่แล้ว
One Minute in Unity - ECS - IComponentData #unity #ecs #tutorials
awesome! waiting for the US launch!
You and me both! 🫡
Looks interesting!
Glad to hear that! ❤️
good news, very excited for DI series. Wish you luck
Thanks 😊
I wanted to ask, why did you set up InputSystem and PlayerInputSystem separately. you can do the task in one class right? just want to know why choose that architecture ♥
In our scenario - yes, you can! However, if you want to add a mini-game like Memory, or handle some custom UI popups, or anything else to your game, you can split the responsibility to the MemoryGameInputSystem and SomeCustomInputSystem. For me, PlayerInputSystem is strictly related to the "Game" section, so - if it is more readable for you - you can call it GameInputSystem ❤️
Thank you!
You're welcome! 🤗
Thanks for sharing knowledge, helps a lot with ECS journey
You are welcome 🤗
Sir thank you a lot. I have a question. Do you know how to take any entity transform from another system script ? Yours is little bit confused me. Do you know any other way ?
In the video it is the solution for the managed components (in this case - Camera). If you have unmanaged custom components on the Entity or want to simply get LocalTransform - you can use SystemAPI.GetComponent<type>(entity) 🫡
Oh Good Job, I find it all last weekend. Finally I use SceneStreamingState run in OnUpdate
Thanks! 😊 And good job to you too 🫡
In my game, I have a single initial regular empty scene that does nothing but load the bootstrap (addressables) scene. After that, subsequent scene loading is done asynchronously through a unified system that can handle regular scenes, addressables scenes, and even ECS subscenes. I use addressables scenes to precisely control which resources are included in the game and when they are utilized directly in the game. However, the ECS Content Management system obviously doesn’t know anything about addressables scenes, and during the build process, it defaults to looking for all SubScene components in the regular scenes listed in the build settings. To address this, I manually specify which subscenes need to be included in the build (see IEntitySceneBuildAdditions) by extracting them from a configuration where all scenes (both addressables and subscenes) are listed. Here, I should note that with this approach, loading scenes through SubScene components placed on objects in addressables scenes will indeed work (even via WeakObjectSceneReference)! However, in my case, I want to have full control via code, through a configuration, and using my custom scene loading system. This is especially important because I load scenes in groups and can display a global progress indicator for loading all scenes (the combined progress of regular, addressables, and subscenes).
Good job
Thanks ❤️
Cool!
Thanks! ❤️ I invite you to Discord community 😊 discord.gg/gZssNGuDdc
Why instantiate visualization on every system update?
It is instantiated only once thanks to the WithAll / WithNone EntityQuery parameters 🫡. In other words - Update method is called only once if conditions are satisfied Without state.RequireForUpdate(query) - it will be executed many times.
Seriously solid intro to compute shaders and ECS. I plan to follow along at some point, as this is the kind of project I've always wanted to try.
Thanks! Really appreciate your comment ❤️
Also, I will be more than happy if you join the Discord community: discord.gg/gZssNGuDdc
Your video save my life. Tks so much.❤
I'm so glad to hear that! 😊
Also I will be glad if you join us on Discord: discord.gg/gZssNGuDdc
Can’t wait to see the tutorial
I am in the process of creation, already edited 20 minutes, should also be ready for next weekend 🥳
The tutorial is ready, so let's dive in ❤️ Also let me invite you to join Discord community: discord.gg/gZssNGuDdc
It looks absolutely incredible. I've always been curious to learn how games like Noita work, where probably every pixel has physics and can be destroyed
Couldn't agree more! Thanks mate 🎉
I warmly invite you to join our Discord community: discord.gg/gZssNGuDdc
Where can I download that project? Post it to us. 😢
Hi Subject478, All the content we create on TH-cam - is available for free in the form of tutorials. In return, for those who appreciate our hard work and support us financially - as a token of gratitude - we offer - as part of our support on Patreon (Tier 2) - additional content - including the ability to download the entire project. If you are interested in supporting us in such a way - I have provided a link on Patreon: patreon.com/TaleForge A small note: Since preparing tutorials does not pay off in any way (unfortunately, such are the realities of creating videos as a small content creator), we have adopted the strategy that for the backers we provide various materials - from the project code to other useful Utils. This is always an incentive for us to keep going, and we appreciate any support we get 😊 Our dream is that one day we could make a living out of creating tutorials - who knows, maybe we can achieve that? We are of good thoughts! And then we would also be able to focus only on that = more content❤️
Your video subjects flow is on point, each one feels like continuation, which makes it feel like concise series, thank you for these, keep improving on your english, it becomes better 🔥
Thanks a lot for your feedback, glad you are with us ❤️
Very good!
Thanks!
Very clear explanation, thanks for showing what ECS is, even when it comes to dying!
Thanks for your kind words 😊
This is the best ECS Course on YT!! Congratulations!!
Glad you think so! I will be more than happy if you want to join our community on the Discord ❤️ discord.gg/gZssNGuDdc
In my debug.log i get double logs for each button press. like if i press A i get -1 two times, and when i press D i get 1 two times. what could be causing this?
Make sure you only add the subscription to the Input event once 😊
Harry's case (after talking on Discord) - He was using Unity Netcode for ECS, so there were two worlds: client and server - so he had duplicated Debug.Logs Solution: - Use [WorldSystemFilter(WorldSystemFilterFlags.ClientSimulation)] attribute for InputSystem class, so only client instance gets Debug.Log()
wow, i needed it. right on time!
Glad it was helpful! 🥳
Solid material, great work, helps me a lot with animations
Great, thanks ❤️
The background object in my subscene is not being rendered by my unity camera in the main scene. Can you help me figure out why is that issue :(
SRP batcher is enabled .. but still i cant see background sprite in camera :/
Solved -> the problem was that the entity graphics package was incorrectly included.
Great tutorial, straight to the point.
Glad to hear that ❤️
This and the previous video were good until the aspects portion, unfortunately aspects are being deprecated.
Unfortunately, they are changing the flow a bit (Personally, I like aspects). However you can also achieve everything from video without aspects ❤️
Can you please tell. What alternative features are currently available instead of aspects?
@@ЛариссаКарандашева Currently, there is no official information regarding alternatives to Aspects. The simplest and I think the only sensible solution - although obviously inconvenient if you have several components in an Aspect - is to build Query after all required components (instead of withAspect<XyzAspect> as before). Analogously in Job. From the developers' assumption: “The long term plan was for Aspects to be used in helper methods to manipulate component data in a simpler, safer, and more stable manner.” Fortunately, helper method data manipulation can be achieved with static ECS systems - although unfortunately this requires passing components or data, and you can't reference directly as in the case of, for example, BulletSpawnerAspect (one of the first tutorials on the channel), where I reference a buffer or component directly. An example of such a static class, here acutely with ComponentData in the form of LocalTransforms: [BurstCompile] [UpdateInGroup(typeof(SimulationSystemGroup))] public partial struct MathUtilsSystem : ISystem { [BurstCompile] public static bool IsEntityInOtherEntityRadius(in LocalTransform entityLocalTransform, in LocalTransform otherEntityLocalTransform, float radius) { float distanceFromEntity = math.distancesq(entityLocalTransform.Position.xz, otherEntityLocalTransform.Position.xz); return distanceFromEntity < radius * radius; } } For new tutorials, I avoid creating new Aspects. Of the good news, according to the source: discussions.unity.com/t/dots-development-status-and-next-milestones-may-2024/946863 “Both Entities.ForEach and Aspects will remain supported in Unity 6”. I hope you find it helpful ❤
Well presented
Glad you think so! ❤️
Interesting topic, thanks
You are welcome!
thanks for replying to my year old reddit post asking how Bad Apple!! videos get made, this is so goated
Any time ❤️
Of course, Thank you sir!
You are welcome ❤️
Too complicated for me. I just throw an apple into the air. :D
Interesting 🤔
Bad Apple (the animation) is definitely a masterpiece! I feel so nostalgic!
And tutorial is landing tomorrow ❤️
Subscribed!
Thanks for your support ❤️
New sub
Welcome aboard! 🍎
nice optimized, my DOTS game deltaFps ~ 30 :)) yours is stable as good as bad apple.
Thanks, keep going - you can improve your performance ❤️💪
Subscribed
Thanks! 😊
500 sub special
Exactly ❤️
Look amnazing
Looks
I'm glad to hear that!
Love that!
Thanks!
Wow, how climatic
Thanks! I am big fan of the Bad Apple, so it was "must have" for me ❤
Doesn't appear that you need to have sprite rendering code in your system, is that due to the SRP Batcher? Otherwise not sure how the sprite renderer is converted to an entity component
Sorry for the late reply, I've been busy this week. Indeed, you need SRP Batcher to render in ECS - this setting is available in the UniversalRenderPipelineAsset. If you disable SRP Batcher, you will get an error: Attempting to render a BatchRendererGroup with SRP Batcher OFF. This is not supported.
@@TaleForgeStudio So this may be something only available in the 3D environment and not the 2D. I don't see those options available in a 2D environment game.
@@heroslegendstudios1658 you need to have URP package and enable Static Batching for 2D or 3D environment. If you need help You can reach me out at the Discord: discord.gg/gZssNGuDdc
What are the differences between RequireForUpdate<> per component in OnCreate() and Create a Query WithAll<ComponentA, ComponentB, ...> then require that query?
Generally - if we have suppose a player: RequireForUpdate<PlayerComponentData> and RequireForUpdate <PlayerMovementComponentData> - this is equivalent to queryBuilder.WithAll<PlayerComponentData, PlayerMovementComponentData> Performance-wise most likely too, I haven't checked it in great detail, but it happens in OnCreate, towards which there is a negligible cost. However, if we have projectiles and a player, we need to do two RequireForUpdate or Query - for the reason that the player does not have a projectile, in view of which Query: queryBuilder.WithAll<SomeBulletCompData, PlayerComponentData> will be empty! Similarly, if in the Execute in Job I add a parameter "in BulletComponentData bulletCompData" where I have "in Entity player", such Job will also fail to execute (because it will not find matching entities, i.e. those that are both player and bullet). This is quite a complex topic, I hope I managed to explain it reasonably :)
@@TaleForgeStudio Thanks for your response. As i researched, if we use RequireForUpdate<Component> n times, that means we Query n times, if either of those Queries return none, OnUpdate() won't run. In the other hand, if we use EntityQuery as i said, that means we only Query once. Ex: RqForUpdate<PlayerData> RqForUpdate<BulletData> System runs correctly RqForUpdate(query) (query with all said 2 components) System won't run cause there is no entity contains both BulletData and PlayerData
@@hoangtongvu9952 Exactly. All depends from what we need. For example query WithAll<PlayerComponentData, PlayerMovementComponentData, ...> etc makes great sense, but we rather don't need Bullet AND Player in one query. If we want to query something generic, I think it is a good idea to group things like "InteractableCompData" or "DamagableCompData" etc
These short videos are really helpful! Thank you
Glad you like them!
aspect is not good enough, component in RefRO or RW can't be viewed in Aspect tab in Entity inspector, so currently it's function only for fast, simple query, not monitoring data
I checked it out and yes: - giving public makes the Component visible, but you can't highlight its data - instead, there is information about what components the aspect has - however, we don't want to expose direct public access to the RefRO/RefRW field - giving [SerializeField] also makes the RefRW/RefRO field visible, this is quite an unusual action, you have to admit So far, I have not been able to find a way to preview the fields of the Components from the Aspects tab. However, you can use the Components tab and find the IComponentData of interest there.
This is great 🎉
Thank You very much! ❤️
I pass in the required components using in and ref keywords without creating an entity query and it still works...
Indeed, you should look at: docs.unity3d.com/Packages/com.unity.entities@1.0/manual/iterating-data-ijobentity.html Chapter "Specify a Query" Remember, that manually created EntityQuery allows you to set restrictions / specify different invocation requirements in very polish way.
Ooo new video, love it
Thanks!
Can you animate the Sprite ?
Yes, after Input section, I would focus on the Animations!