مقاله ای برای شروع کار با Job System و Burst Compiler در یونیتی👇
link : https://www.raywenderlich.com/7880445-unity-job-system-and-burst-compiler-getting-started
#یونیتی #آموزش
#dots #JobSystem
@UnityEngine3D
link : https://www.raywenderlich.com/7880445-unity-job-system-and-burst-compiler-getting-started
#یونیتی #آموزش
#dots #JobSystem
@UnityEngine3D
raywenderlich.com
Unity Job System and Burst Compiler: Getting Started
In this tutorial, you’ll learn how to use Unity’s Job System and Burst compiler to create efficient code to simulate water filled with swimming fish.
This media is not supported in your browser
VIEW IN TELEGRAM
پروژه Tiny ( قدرت گرفته شده از DOTS ) مخصوص بازی های خیلی کوچیک و کم حجم
اطلاعات بیشتر در :
🌐 https://unity.com/solutions/instant-games
🌐 https://docs.google.com/document/d/1A8hen2hLFY5FLkC5gd3JP2Z-IpHfnAX-CpYLK3aOdwA/edit
مثال های پروژه بازی های ساخته شده توسط Tiny در گیت هاب :
https://github.com/Unity-Technologies/ProjectTinySamples
یک بازی ماشینی ساخته شده بر بستر وب توسط همین پروژه (خیلی باحاله این ، روی وب و بازی ماشینی سه بعدی😅) :
https://tiny.vision/demos/TinyRacing
#یونیتی #ویژه #DOTS
👉 @UnityEngine3D 👈
اطلاعات بیشتر در :
🌐 https://unity.com/solutions/instant-games
🌐 https://docs.google.com/document/d/1A8hen2hLFY5FLkC5gd3JP2Z-IpHfnAX-CpYLK3aOdwA/edit
مثال های پروژه بازی های ساخته شده توسط Tiny در گیت هاب :
https://github.com/Unity-Technologies/ProjectTinySamples
یک بازی ماشینی ساخته شده بر بستر وب توسط همین پروژه (خیلی باحاله این ، روی وب و بازی ماشینی سه بعدی😅) :
https://tiny.vision/demos/TinyRacing
#یونیتی #ویژه #DOTS
👉 @UnityEngine3D 👈
سلام دوستان از اونجایی که میدونید دارم آموزش DOTS میبینم ، گفتم هر وقت دوست داشتم بیام و در مورد برخی چیز ها توضیح بدم (اگه جایی رو اشتباه توضیح دادم ، کامنت بدید)
موضوع : نگاه کلی به ECS و DOTS
DOTS = Data oriented technology stack
داتس (DOTS) یک تکنولوژی یا یک معماری هست که ما با اون میتونیم بازیمون رو بهینه کنیم
بیشتر برای بازی هایی با تعداد آبجکت بالا به کار میره
داتس از ۳ قسمت تشکیل شده
1-ECS
که یک شیوه کد نویسی داده محور هست که باعث قرار گیری منظم داده ها در RAM میشه و سرعت بازی بالا میره
2-JobSystem
که با اون میتونیم اجرا شدن کد هامون رو به جای استفاده از main thread (رشته اصلی) اون رو multi thread (چند رشته ای) کنیم که وظایف یا همون job هامون تقسیم بشن و سرعت کار افزایش پیدا کنه
3- Burst Compiler
یک کامپایلر هست که بایت کد های IL/.NET رو با استفاده از LLVM به کد های بسیار بهینه شده تبدیل میکنه
خب ECS چیست؟
ECS = Entity Component System
( کاری فعلا به Component و System نداشته باشید)
توی یونیتی دو جور چیز داره
یکی آبجکت هست که شما بهش اسکریپت میدید (کلاس MonoBehavior) و یکی Entity ، این Entity شاید تقریباً مثل آبجکت باشه ولی خب تفاوت داره ، مثلا توی Hierarchy دیگه نمیتونی Entity ها رو ببینی و باید از طریق EntityDebugger کامپوننت هاش یا ... رو ببینی
توضیح قرار گیری Entity ها در RAM :
اگه به فرض چند تا گیم آبجکت با چند تا کامپوننت ایجاد کنی این ها به صورت نامنظم توی رم قرار میگیرن و تا یونیتی بیاد این ها رو از جا های مختلف برداره و پردازش کنه و... طول میکشه
ولی Entity به صورت منظم داخل RAM قرار میگیره و با مقادیر اختصاصی و کوچکتر ، در نتیجه کنترل روی RAM راحت تر میشه و سرعت میره بالا
به طور مثال ، کامپوننت Transform یک آبجکت با همون کامپوننت در Entity فرق داره ،
مثلا همین کامپوننت Transform شامل مختصات ، چرخش و اندازه هست ولی داخل Entity به چند بخش تقسیم شده و هر کدوم شدن یک کامپوننت تا فضای کمتری رو داخل رم بگیره
در Entity :
Translation = برای مختصات
Rotation = برای چرخش
NonuniformScale =
برای اندازه های (scale) مخالف عدد یک
(هر کدوم از این ها یک کامپوننت محسوب میشوند)
فرض کنید یک Entity داریم که چند کامپوننت داره ، Rotation ، Translation و RenderMesh (اولی برای مختصات ، دومی برای چرخش و سومی برای رندر شدن (یه چیز توی مایه های Mesh Renderer حالت عادی))
حالا اگه ما هزار تا Entity داشته باشیم که دقیق همین کامپوننت ها رو داشته باشن (نه کمتر و نه زیاد تر) و حتی اگه مقادیرشون هم متفاوت باشه (مثلا مختصات متفاوتی داشته باشند) میشن یک Archetype
ولی اگه یک کامپوننت NonuniformScale به یکی از این Entity ها اضافه شد این Entity یک Archetype جدید تشکیل میده
مثلا اولی میشه
Archetype (A)
(شامل ۹۹۹ Entity)
و دومی میشه
Archetype (B)
(شامل ۱ Entity)
#یونیتی #ecs
#dots
#آموزش #فارسی
👉 @UnityEngine3D 👈
موضوع : نگاه کلی به ECS و DOTS
DOTS = Data oriented technology stack
داتس (DOTS) یک تکنولوژی یا یک معماری هست که ما با اون میتونیم بازیمون رو بهینه کنیم
بیشتر برای بازی هایی با تعداد آبجکت بالا به کار میره
داتس از ۳ قسمت تشکیل شده
1-ECS
که یک شیوه کد نویسی داده محور هست که باعث قرار گیری منظم داده ها در RAM میشه و سرعت بازی بالا میره
2-JobSystem
که با اون میتونیم اجرا شدن کد هامون رو به جای استفاده از main thread (رشته اصلی) اون رو multi thread (چند رشته ای) کنیم که وظایف یا همون job هامون تقسیم بشن و سرعت کار افزایش پیدا کنه
3- Burst Compiler
یک کامپایلر هست که بایت کد های IL/.NET رو با استفاده از LLVM به کد های بسیار بهینه شده تبدیل میکنه
خب ECS چیست؟
ECS = Entity Component System
( کاری فعلا به Component و System نداشته باشید)
توی یونیتی دو جور چیز داره
یکی آبجکت هست که شما بهش اسکریپت میدید (کلاس MonoBehavior) و یکی Entity ، این Entity شاید تقریباً مثل آبجکت باشه ولی خب تفاوت داره ، مثلا توی Hierarchy دیگه نمیتونی Entity ها رو ببینی و باید از طریق EntityDebugger کامپوننت هاش یا ... رو ببینی
توضیح قرار گیری Entity ها در RAM :
اگه به فرض چند تا گیم آبجکت با چند تا کامپوننت ایجاد کنی این ها به صورت نامنظم توی رم قرار میگیرن و تا یونیتی بیاد این ها رو از جا های مختلف برداره و پردازش کنه و... طول میکشه
ولی Entity به صورت منظم داخل RAM قرار میگیره و با مقادیر اختصاصی و کوچکتر ، در نتیجه کنترل روی RAM راحت تر میشه و سرعت میره بالا
به طور مثال ، کامپوننت Transform یک آبجکت با همون کامپوننت در Entity فرق داره ،
مثلا همین کامپوننت Transform شامل مختصات ، چرخش و اندازه هست ولی داخل Entity به چند بخش تقسیم شده و هر کدوم شدن یک کامپوننت تا فضای کمتری رو داخل رم بگیره
در Entity :
Translation = برای مختصات
Rotation = برای چرخش
NonuniformScale =
برای اندازه های (scale) مخالف عدد یک
(هر کدوم از این ها یک کامپوننت محسوب میشوند)
فرض کنید یک Entity داریم که چند کامپوننت داره ، Rotation ، Translation و RenderMesh (اولی برای مختصات ، دومی برای چرخش و سومی برای رندر شدن (یه چیز توی مایه های Mesh Renderer حالت عادی))
حالا اگه ما هزار تا Entity داشته باشیم که دقیق همین کامپوننت ها رو داشته باشن (نه کمتر و نه زیاد تر) و حتی اگه مقادیرشون هم متفاوت باشه (مثلا مختصات متفاوتی داشته باشند) میشن یک Archetype
ولی اگه یک کامپوننت NonuniformScale به یکی از این Entity ها اضافه شد این Entity یک Archetype جدید تشکیل میده
مثلا اولی میشه
Archetype (A)
(شامل ۹۹۹ Entity)
و دومی میشه
Archetype (B)
(شامل ۱ Entity)
#یونیتی #ecs
#dots
#آموزش #فارسی
👉 @UnityEngine3D 👈
👍1
سلام دوستان
توی این قسمت میخوایم بریم سراغ وارد کردن پکیج های مورد نیاز برای DOTS
اول اینکه نسخه ای که من الان استفاده میکنم 2022.1.0a3 هست و شما هم سعی کنید از نسخه های جدید یونیتی برای این آموزش استفاده کنید تا به مشکلی بر نخورید
موضوع : وارد کردن پکیج های مورد نیاز DOTS
اول اینکه وارد پکیج منیجر بشید و روی تنظیمات بالا (علامت چرخ دنده) کلیک کنید و روی گزینه Advanced Project Settings کلیک کنید تا وارد قسمت تنظیمات پکیج منیجر بشید . گزینه Enable Pre-realse Packages رو فعال کنید و برگردید به پکیج منیجر و اینترنت خودتون و فیلترشکن رو روشن کنید ( ترجیحا یک بار پکیج منیجر رو ببندید و دوباره بازکنید و روی Refresh کلیک کنید ) چهار تا پکیج Jobs و Entities و Hybrid Renderer و Burst رو فعال کنید .
البته نسخه ای که من استفاده میکنم Burst رو به صورت پیش فرض داره و حذف هم نمیشه
اگر این چهار تا رو پیدا نکردید روی گزینه + بالای پکیج منیجر کلیک کنید و گزینه Add git from URL... رو بزنید و
com.unity.entities
com.unity.jobs
com.unity.rendering.hybrid
com.unity.burst
و ADD رو بزنید و بعد از وارد شدن هر پکیج ، بعدی رو بگذارید ADD رو بزنید
#یونیتی #ecs
#dots
#آموزش #فارسی
(قسمت های بعدی انشاءالله به زودی)
👉 @UnityEngine3D 👈
توی این قسمت میخوایم بریم سراغ وارد کردن پکیج های مورد نیاز برای DOTS
اول اینکه نسخه ای که من الان استفاده میکنم 2022.1.0a3 هست و شما هم سعی کنید از نسخه های جدید یونیتی برای این آموزش استفاده کنید تا به مشکلی بر نخورید
موضوع : وارد کردن پکیج های مورد نیاز DOTS
اول اینکه وارد پکیج منیجر بشید و روی تنظیمات بالا (علامت چرخ دنده) کلیک کنید و روی گزینه Advanced Project Settings کلیک کنید تا وارد قسمت تنظیمات پکیج منیجر بشید . گزینه Enable Pre-realse Packages رو فعال کنید و برگردید به پکیج منیجر و اینترنت خودتون و فیلترشکن رو روشن کنید ( ترجیحا یک بار پکیج منیجر رو ببندید و دوباره بازکنید و روی Refresh کلیک کنید ) چهار تا پکیج Jobs و Entities و Hybrid Renderer و Burst رو فعال کنید .
البته نسخه ای که من استفاده میکنم Burst رو به صورت پیش فرض داره و حذف هم نمیشه
اگر این چهار تا رو پیدا نکردید روی گزینه + بالای پکیج منیجر کلیک کنید و گزینه Add git from URL... رو بزنید و
com.unity.entities
com.unity.jobs
com.unity.rendering.hybrid
com.unity.burst
و ADD رو بزنید و بعد از وارد شدن هر پکیج ، بعدی رو بگذارید ADD رو بزنید
#یونیتی #ecs
#dots
#آموزش #فارسی
(قسمت های بعدی انشاءالله به زودی)
👉 @UnityEngine3D 👈
(دو پست قبل در مورد سیستم قدیمی یونیتی حرف زدم و پست قبلی مربوط به JobSystem هست)
خب دوستان این آموزش هم تموم شد ولی خب یک چالش بگذارم برای اینکه یادبگیرید
چالش هم اینه که بعد از اتمام این کار ها به جای تغییر مختصات محور z شما rotation آبجکت رو حول محور y تغییر بدید یا اگه میتونید کارای خفن تر انجام بدید
نتیجه رو به صورت اسکریپت یا فیلم یا... کامنت بدید
(توجه کنید که چالش جایزه نداره)
#یونیتی #JobSystem
#dots
#آموزش #فارسی
👉 @UnityEngine3D 👈
خب دوستان این آموزش هم تموم شد ولی خب یک چالش بگذارم برای اینکه یادبگیرید
چالش هم اینه که بعد از اتمام این کار ها به جای تغییر مختصات محور z شما rotation آبجکت رو حول محور y تغییر بدید یا اگه میتونید کارای خفن تر انجام بدید
نتیجه رو به صورت اسکریپت یا فیلم یا... کامنت بدید
(توجه کنید که چالش جایزه نداره)
#یونیتی #JobSystem
#dots
#آموزش #فارسی
👉 @UnityEngine3D 👈
با استفاده از کامپوننت Physics Debug Display و تبدیل اون به Entity میتونید کلایدر های Entity ها رو هنگام اجرای بازی به این صورت ببینید (تیک Gizmo هم یادتون باشه فعال باشه)
(تصویر دوم ، داخل پنجره Scene میتونید نتیجه رو مشاهده کنید)
(DOTS)
#نکته #یونیتی #dots
👉 @UnityEngine3D 👈
(تصویر دوم ، داخل پنجره Scene میتونید نتیجه رو مشاهده کنید)
(DOTS)
#نکته #یونیتی #dots
👉 @UnityEngine3D 👈
آموزش ساخت بازی دونفره AR با DOTS
لینک :
https://dots-tutorial.moetsi.com/
#یونیتی #dots #آموزش #AR
👉 @UnityEngine3D 👈
لینک :
https://dots-tutorial.moetsi.com/
#یونیتی #dots #آموزش #AR
👉 @UnityEngine3D 👈
دوستان خواستید با Unity Physics کار کنید ، یادتون باشه موقعی که میخواید برخورد رو تشخیص بدید ، اون آبجکتی که میخواد برخورد رو تشخیص بده ، توی کامپوننت Physics Shape حتما Collision Response روی Collide Raise Collision Events باشه (یا یه همچین گزینه ای اگه نبود) و مثل من دو ساعت نگردید برای عیب یابی توی کد ها😐❤️
(DOTS)
#نکته #یونیتی #dots
👉 @UnityEngine3D 👈
(DOTS)
#نکته #یونیتی #dots
👉 @UnityEngine3D 👈
👍1
دوستان دارم روی پروژه Mega City که قبلا با نسخه بتای ۲۰۱۹ نوشتنش رو ، توی یونیتی 2021.2 مشکل هاش رو درست میکنم
انشاءالله درست بشه عجب چیزی میشه
این پروژه با DOTS نوشته شده و حجم پروژه برای دانلود هم حدود ۷ گیگ و خورده ای هست
اطلاعات بیشتر و دانلود پروژه در :
https://unity.com/megacity
#یونیتی #dots
انشاءالله درست بشه عجب چیزی میشه
این پروژه با DOTS نوشته شده و حجم پروژه برای دانلود هم حدود ۷ گیگ و خورده ای هست
اطلاعات بیشتر و دانلود پروژه در :
https://unity.com/megacity
#یونیتی #dots
Unity
Megacity Metro – Large-Scale Multiplayer Demo | Unity
Learn more about building ambitious multiplayer games using ECS, Unity Cloud, Multiplayer Services, and URP with this competitive action sample that supports 128+ players.
This media is not supported in your browser
VIEW IN TELEGRAM
سلام دوستان
نتیجه آموزش فیزیک DOTS که دیدم این شد
وقتی تیر ها به اردک ها میخورن ، اردک ها حذف میشن (CollisionEvent)
وقتی هم که بازیکن یا... میره داخل اون مکعب ، 1000 واحد نیرو به سمت محور z به اون بازیکن یا... وارد میشه (TriggerEvent)
فیزیک با Havok هست و تعداد اردک های ایجاد شده در اول بازی ۲۰۰۰ تا هست
و موقع حرکت این دوربین لگ میزنه😑🤷♂
#dots
نتیجه آموزش فیزیک DOTS که دیدم این شد
وقتی تیر ها به اردک ها میخورن ، اردک ها حذف میشن (CollisionEvent)
وقتی هم که بازیکن یا... میره داخل اون مکعب ، 1000 واحد نیرو به سمت محور z به اون بازیکن یا... وارد میشه (TriggerEvent)
فیزیک با Havok هست و تعداد اردک های ایجاد شده در اول بازی ۲۰۰۰ تا هست
و موقع حرکت این دوربین لگ میزنه😑🤷♂
#dots
case-study-dots-runs-futuristic-megacity-on-mobile.pdf
211.7 KB
کتاب DOTS ، مگاسیتی آینده نگر را روی تلفن همراه اجرا میکند از شرکت یونیتی به زبان انگلیسی
#یونیتی #کتاب #آموزش #dots
👉 @UnityEngine3D 👈
#یونیتی #کتاب #آموزش #dots
👉 @UnityEngine3D 👈
❤1
case_study_dot_speeds_up_mobile_games_and_development.pdf
101.5 KB
کتاب DOTS سرعت بازی های موبایل و توسعه را افزایش می دهد از شرکت یونیتی به زبان انگلیسی
#یونیتی #کتاب #آموزش #dots
👉 @UnityEngine3D 👈
#یونیتی #کتاب #آموزش #dots
👉 @UnityEngine3D 👈
نسخه 0.50 ، Entities اومد
اطلاعات بیشتر در :
https://forum.unity.com/threads/experimental-entities-0-50-is-available.1253394/
نقشه راه DOTS :
https://unity.com/roadmap/unity-platform/dots
توضیحاتی در مورد این خبر از کانال یوتیوب Turbo Makes Games :
https://youtu.be/qUccc1K5pDI
#یونیتی #dots
👉 @UnityEngine3D 👈
اطلاعات بیشتر در :
https://forum.unity.com/threads/experimental-entities-0-50-is-available.1253394/
نقشه راه DOTS :
https://unity.com/roadmap/unity-platform/dots
توضیحاتی در مورد این خبر از کانال یوتیوب Turbo Makes Games :
https://youtu.be/qUccc1K5pDI
#یونیتی #dots
👉 @UnityEngine3D 👈
🔥2