بله | کانال آموزش بازیسازی و برنامه نویسی | سجاد احمدی نیت
عکس پروفایل آموزش بازیسازی و برنامه نویسی | سجاد احمدی نیتآ

آموزش بازیسازی و برنامه نویسی | سجاد احمدی نیت

۷۷عضو
undefined لایسنس و مجوز های انتشار در دنیای کامپیوتریک بازیساز که بصورت بین المللی کار میکنه، باید با اکثر license های معروف آشناییت داشته باشه. خصوصا کسی که داره بارگذاری یا انتشار Asset و پروژه انجام میده.
undefined All Rights Reserved تمامی حقوق برای نویسنده محفوظ است. هیچ‌کس بدون اجازه نمی‌تواند نرم‌افزار را کپی، تغییر یا توزیع کند. این نوع مجوز معمولاً برای نرم‌افزارهای اختصاصی استفاده می‌شود.
undefined Apache License 2.0 مجوزی آزاد و بسیار محبوب با اجازه استفاده تجاری. شامل بندهایی برای حفظ علائم تجاری و ثبت اختراعات است. نیازمند ذکر منبع و تغییرات در کد است.
undefined Artistic License 2.0 برای پروژه‌های خلاقانه طراحی شده است. اجازه تغییر و توزیع را می‌دهد، اما با شرایط خاصی. هدف آن حفظ یکپارچگی نسخه‌های اصلی است.
undefined BSD 2-Clause License مجوزی بسیار ساده و آزاد با دو شرط: ذکر منبع و عدم مسئولیت. اجازه استفاده، تغییر و توزیع را بدون محدودیت می‌دهد. مناسب برای پروژه‌های تجاری و متن‌باز.
undefined BSD 3-Clause License مشابه نسخه ۲-بندی، اما با یک شرط اضافی: ممنوعیت استفاده از نام نویسنده برای تبلیغ. مجوزی آزاد و سازگار با GPL. مناسب برای پروژه‌هایی که نیاز به انعطاف‌پذیری دارند.
undefined Eclipse Public License v1.0 مجوزی با ویژگی‌های copyleft جزئی. اجازه استفاده و تغییر را می‌دهد، اما تغییرات باید با همان مجوز منتشر شوند. مناسب برای پروژه‌های مشارکتی مانند Eclipse IDE.
undefined GNU GPL v2.0 مجوزی با copyleft کامل؛ تغییرات باید با همان مجوز منتشر شوند. مناسب برای حفظ آزادی نرم‌افزار در طول زمان. سازگار با بسیاری از پروژه‌های متن‌باز قدیمی.
undefined GNU GPL v3.0 نسخه به‌روز شده GPL با بندهای ضد DRM و ثبت اختراع. تأکید بیشتر بر آزادی کاربر و مقابله با محدودیت‌های سخت‌افزاری. سازگار با پروژه‌های مدرن‌تر.
undefined GNU LGPL v2.1 نسخه سبک‌تر GPL برای کتابخانه‌ها. اجازه استفاده در نرم‌افزارهای اختصاصی را می‌دهد. تغییرات در کتابخانه باید با همان مجوز منتشر شوند.
undefined GNU LGPL v3.0 نسخه جدیدتر LGPL با ویژگی‌های امنیتی بیشتر. اجازه استفاده در نرم‌افزارهای اختصاصی با حفظ آزادی کتابخانه. سازگار با GPL v3.0.
undefined MIT License یکی از ساده‌ترین و محبوب‌ترین مجوزهای آزاد. اجازه استفاده، تغییر و توزیع بدون محدودیت، با ذکر منبع. مناسب برای پروژه‌های تجاری و متن‌باز.
undefined Mozilla Public License 2.0 مجوزی با copyleft جزئی؛ فقط فایل‌های تغییر یافته باید آزاد باشند. اجازه استفاده در پروژه‌های اختصاصی را می‌دهد. مناسب برای پروژه‌هایی مانند Firefox.
undefined Unlicense نرم‌افزار را به حوزه عمومی واگذار می‌کند. هیچ محدودیتی برای استفاده، تغییر یا توزیع وجود ندارد. مناسب برای کسانی که می‌خواهند کدشان کاملاً آزاد باشد.
🧩 Zlib License مجوزی بسیار ساده و آزاد، مشابه MIT. اجازه استفاده تجاری، تغییر و توزیع را می‌دهد، بدون مسئولیت نویسنده. اغلب برای کتابخانه‌های فشرده‌سازی مانند zlib استفاده می‌شود.
#مطلب_کمکی undefined @Sajad_Ahmadi_Niat 🪔

۵:۵۱

#سوالات_شماundefined چطوری در یادگیری توسعه بازی موفق باشیم؟
متاسفانه خیلی ها توسعه بازی رو فقط ساخت بازی میدونند. حتی گاها دیدگاه تخصصی و رشته ای تر ندارند.اگر میخواید توسعه بازی انجام بدید، پس قطعا بخش فنی با شماست. من اصولی ش رو خدمت همگی تون عرض میکنم، چون خیلی ها داخل ایران اصلا غیرتخصصی دارن آموزش می‌بینند یا آموزش رو ادامه میدن.
۱. ابتداء مبانی برنامه نویسی رو یاد بگیرید. الگوریتم و فلوچارت، حل مسئله و ...
۲. زبان و ریاضیات کامپیوتری تون رو کمی قویتر کنید طبق مباحث مهم (اجباری و متوقف کننده نیست ولی خوبه و همزمان انجام بدید). مباحث نظری بازیسازی هم اگر میتونید جمع و جور کنید تا یاد بگیرید، خوبه.
۳. یک انجین قوی رو انتخاب کنید و طبق اون برید جلو (معمولا توسعه دهندگان یونیتی که زبان سی شارپ رو پشتیبانی می‌کنه رو انتخاب میکنند. البته بعضی ها هم ابتداء سعی میکنند یک زبان رو به شکل قوی یاد بگیرن و بعد برن سراغ انجین که این هم خوبه، ولی خیلی وقت بره و گاها مطالب اضافی زیاد به شما یاد داده میشه، ولی از اونور برعکسش هم گاها باعث میشه شما خیلی چیزها رو یاد نگیرید)
۴. زبان برنامه نویسی و انجین رو که تا یک حدی مسلط شدید، شروع کنید پروژه های کوچک با گرافیک ساده زدن، بهبودش دادن، و یادگیری بیشتر سی شارپ و تکنیک های فنی بازیسازی
۵. همزمان کار با ابزارهای هوش مصنوعی مربوط به حوزه توسعه و کدنویسی رو هم یاد بگیرید.
۶. تکنیک های اشکال‌زدایی، بهینه سازی و ... رو همزمان یاد بگیرید. بااینکه پیشنهاد میکنم مباحث نظری فنی بازیسازی رو پیش از شروع بازیسازی بهتره یاد بگیرید، اما اینجا هم میتونید یاد بگیرید.
۷. تکنیک ها و tip های انجین و زبان برنامه نویسی اون رو یاد بگیرید. همزمان درخواست بدید به شرکت ها و کارآموزی کنید و تجربه تون رو افزایش بدید. لینکدین تون رو قوی کنید. همزمان پروژه هایی هم بزنید و روی گیتهاب بارگذاری کنید.
۸. بازیهای حرفه ای رو کلون کنید. حتی با گرافیک ساده. مکانیک های مختلف رو پیاده سازی کنید. مقالات و کتابهای حرفه ای حوزه فنی رو بخونید. از تجارب دیگران استفاده کنید.
۹. مهارت های فنی ارتباطی گسترش بدید. مثلا گیت و گیت لب (البته اگر وارد تیمی بشید، اینها رو یاد میگیرید از قبل)
۱۰. حوزه فنی تون رو گسترش بدید. VR ، شبکه ، ارتباط با سخت افزار ، Cloud و ...
۱۱. وارد مباحث حرفه ای مثل مهندسی معکوس، هوش مصنوعی(مثل شبکه های عصبی)، معماری شناسی بازی، دیکامپایل، هک اخلاقی بازیها و ... برای شناخت معماری بازیها و افزایش امنیت بازیها برید که معمولا اینطور موارد، بین رشته ای هست. مثلا مهندسی شبکه و مهندسی کامپیوتر و ...
۱۲. سعی کنید همزمان کمی گیم دیزاین هم بخونید. بازیسازی که گیم دیزاین میخونه و یاد میگیره، خیلی از دیگران فهیم تره.
همین موارد رو بصورت پشت سر هم یا همزمان وقت بگذارید. میانگینی ۳ ساعت در روز می‌تونه خوب باشه. مطالعات تون رو حتما از دست ندید، در انجمن ها و دیسکاسهای داخلی و خارجی و مجازی و حقیقی شرکت کنید، همیشه درحال آموزش دیدن و مشورت کردن باشید(خاضع باشید)، سورس پروژه بازیها رو تست و فضولی کنید، در گیتهاب و یوتیوب و مستندات انجین و زبان برنامه نویسی حتما بگردید، از هوش مصنوعی بعنوان راهنما استفاده کنید ولی بهش وابستگی ذهنی پیدا نکنید.
#تجربه_شخصی | #توصیه | #مطلب_کمکیundefined @Sajad_Ahmadi_Niat 🪔

۵:۵۲

thumbnail
‍*undefined جویسی (Juicy) در بازی‌سازی یعنی چی؟*
دیدم این روزا خیلی درمورد کلمه جویسی صحبت میشه. گفتم یک توضیحی بدم.اگه تا حالا یه بازی رو بازی کردی و از حرکت ساده یه دکمه یا پریدن یه کاراکتر کلی کیف کردی، احتمالاً اون بازی "جویسی(آبدار)" بوده!در #گیم_دیزاین ، جویسی یعنی اضافه کردن جزئیات بصری، صوتی و لمسی که تجربه بازی رو لذت‌بخش‌تر و زنده‌تر می‌کنه. این جزئیات ممکنه تأثیر مستقیمی روی گیم‌پلی نداشته باشن، ولی حس خوبی به بازیکن می‌دن و باعث می‌شن بازی "زنده" به نظر بیاد.
undefined مثال:فرض کن تو یه بازی پلتفرمر، وقتی شخصیت می‌پره:undefined یه افکت نور کوچیک زیر پاهاش ظاهر می‌شهundefined صدای بامزه‌ای پخش می‌شهundefined دوربین یه لرزش کوچیک دارهundefined امتیاز با یه انیمیشن رنگی بالا می‌رههمه اینا باعث می‌شن حس کنی یه حرکت ساده، خیلی هیجان‌انگیز بوده. اینه قدرت جویسی!البته همه اینها به تجربه و مثالها و آزمون و خطا بستگی داره.
undefined بازی‌هایی مثل Fruit Ninja یا Candy Crush پر از المان‌های جویسی هستن. هر برش، هر انفجار آب‌نبات، یه جویسی بصریه.اگه بازی‌ساز هستی، یادت باشه: جویسی بودن بازی، می‌تونه تفاوت بین یه بازی معمولی و یه بازی اعتیادآور باشه. هر جویسی، یک قلقلک ذهنی برای ادامه دادن بازی و به یادآوردن خاطره خوشه.
#مقاله | #علم_بازی | #طراحی_بازی | #game_designآموزش بازیسازی و برنامه‌نویسیundefined️:undefined @Sajad_Ahmadi_Niat 🪔

۱۶:۲۹

undefined* مدل‌های درآمدی بازیها
وقتی بازی می‌سازی، فقط طراحی گیم‌پلی و گرافیک مهم نیست؛ باید فکر پول درآوردن هم باشی! اینکه بازی‌ات چطور پول‌ساز بشه، یه تصمیم مهمه که روی تجربه بازیکن، میزان درآمد و حتی محبوبیت بازی تأثیر می‌ذاره. توی این بخش می‌خوایم سه مدل معروف درآمدی رو بررسی کنیم که معمولا استفاده میشه: فریمیوم، پریمیوم و اشتراکی.

undefined
فریمیوم(Freemium)؛ بازی رایگان، استفاده مشروط!*
فریمیوم یعنی بازی رو رایگان منتشر می‌کنی، ولی یه سری امکانات، آیتم یا مراحل خاص رو پولی می‌ذاری. بازیکن اولش بدون پرداخت وارد بازی می‌شه، ولی اگه بخواد سریع‌تر پیشرفت کنه یا چیزهای خاص داشته باشه، باید پول بده.این مدل توی بازی‌های موبایلی خیلی جواب می‌ده، چون مردم راحت‌تر بازی رایگان رو امتحان می‌کنن. اما باید حواست باشه که بازی‌ات تبدیل به "Pay-to-Win" نشه؛ یعنی کسی که پول می‌ده خیلی راحت‌تر از بقیه جلو بره. اگه این اتفاق بیفته، بازیکن‌های معمولی زده می‌شن و بازی رو ول می‌کنند.
*undefined
پریمیوم؛ پول بده، همه ش مال تو!*
پریمیوم یعنی بازی رو با قیمت مشخص می‌فروشی و بازیکن بعد از خرید، به کل محتوای بازی دسترسی داره. این مدل بیشتر توی بازی‌های مستقل، داستان‌محور یا کنسولی استفاده می‌شه.مزیتش اینه که تجربه بازی بدون تبلیغ و خریدهای مزاحم انجام می‌شه. بازیکن می‌دونه چی خریده و با خیال راحت بازی می‌کنه. ولی جذب کاربر سخت‌تره، چون باید قبل از اینکه بازی رو تجربه کنه، پول بده. پس باید بازی‌ات اون‌قدر جذاب باشه که بازیکن حاضر باشه ریسک کنه و بخره.
undefined* اشتراکی؛ ماهیانه خرج کن، نامحدود بازی کن!*مدل اشتراکی یعنی بازیکن هر ماه یا هر سال یه مبلغ مشخص می‌ده و به یه مجموعه بازی یا محتوای خاصی از بازی، دسترسی پیدا می‌کنه. این مدل توی پلتفرم‌هایی مثل Apple Arcade یا Xbox Game Pass خیلی رایجه.خوبی‌اش اینه که درآمدت ثابته و می‌تونی روی برنامه‌ریزی بلندمدت حساب کنی. ولی باید همیشه محتوای جدید و جذاب تولید کنی تا مشترک‌ها بمونن. همچنین باید با کلی بازی دیگه که توی همون پلتفرم هستن رقابت کنی تا دیده بشی.
#مقاله_ | #مطلب_کمکیundefined @Sajad_Ahmadi_Niat 🪔

۱۶:۳۰

thumbnail
*کمپین تولد 14 سالگی مکتبخونه! *undefinedکمپین تولد مکتب ‌خونه آغاز شده و تا پایان هفته ادامه خواهد داشت. حتی دوره دوره آموزش ساخت بازی Color Switch در یونیتی هم به مدت کوتاه رایگان شده!در این کمپین، کاربران می‌توانند با استفاده از کد تخفیف HBD یک دوره را به‌صورت کاملاً رایگان ثبت‌نام کرده و بدون پرداخت هیچ هزینه‌ای یادگیری خود را آغاز کنند.
undefined نکته مهم:برای دوره‌هایی که گواهینامه مکتب‌خونه دارند، کاربران باید پیش از افزودن دوره به سبد خرید، تیک گزینه‌ی دسترسی کامل را بردارند تا کد تخفیف به‌درستی اعمال شود.
undefined لینک دوره آموزش ساخت بازی Color Switch در یونیتی:https://mktb.me/0mig/
undefined لینک لندینگ همه دوره ها:https://mktb.me/i6un/
#کمپین | #تخفیفundefined @Sajad_Ahmadi_Niat 🪔

۱۶:۳۰

thumbnail
undefined* انجمن علمی دانشجویی بازی‌های رایانه‌ای دانشگاه شهید چمران اهوازبا همکاری سایر انجمن های علمی کشور برگزار می‌کند:*
undefined همه چی از یه دکمه Start شروع میشه...
undefined اگه همیشه دلت می‌خواسته بدونی بازی‌ها چطور ساخته می‌شنالان وقتشه وارد دنیای واقعی بازی‌سازی بشی!
undefined* کارگاه ۱۴ جلسه‌ای آموزش: مبانی فنی بازی‌سازی*با تدریس undefined مهندس سجاد احمدی‌نیت(با چندین سال تجربه حرفه‌ای در صنعت بازی‌سازی)
undefined شروع دوره: ۱۷ آبان ۱۴۰۴undefined مکان: گوگل میت / اسکای‌رومundefined همراه با گواهی معتبر
undefined این فقط یه کلاس نیست...شروع مسیرت برای تبدیل شدن به یه Game Developer واقعیه!این کارگاه بخشی از مجموعه دوره‌های توانمندسازی Level Up مخصوص علاقه‌مندان بازی‌سازی undefined
undefined برای ثبت‌نام و ارتباط با ما:Instagram: [@cgames_scu]Telegram: [@arezoo_0230]
undefined️ آماده‌ای لِوِل بعدی خودتو باز کنی؟بزن Start و وارد بازی شو!- - - - - - - - - - - - - -
undefined انجمن علمی دانشجویی بازی‌های رایانه‌ایundefined @Sajad_Ahmadi_Niat 🪔

۱۶:۳۱

آموزش بازیسازی و برنامه نویسی | سجاد احمدی نیت
undefined undefined* انجمن علمی دانشجویی بازی‌های رایانه‌ای دانشگاه شهید چمران اهواز با همکاری سایر انجمن های علمی کشور برگزار می‌کند:* undefined همه چی از یه دکمه Start شروع میشه... undefined اگه همیشه دلت می‌خواسته بدونی بازی‌ها چطور ساخته می‌شن الان وقتشه وارد دنیای واقعی بازی‌سازی بشی! undefined* کارگاه ۱۴ جلسه‌ای آموزش: مبانی فنی بازی‌سازی* با تدریس undefined مهندس سجاد احمدی‌نیت (با چندین سال تجربه حرفه‌ای در صنعت بازی‌سازی) undefined شروع دوره: ۱۷ آبان ۱۴۰۴ undefined مکان: گوگل میت / اسکای‌روم undefined همراه با گواهی معتبر undefined این فقط یه کلاس نیست...شروع مسیرت برای تبدیل شدن به یه Game Developer واقعیه! این کارگاه بخشی از مجموعه دوره‌های توانمندسازی Level Up مخصوص علاقه‌مندان بازی‌سازی undefined undefined برای ثبت‌نام و ارتباط با ما: Instagram: [@cgames_scu] Telegram: [@arezoo_0230] undefined️ آماده‌ای لِوِل بعدی خودتو باز کنی؟ بزن Start و وارد بازی شو! - - - - - - - - - - - - - - undefined انجمن علمی دانشجویی بازی‌های رایانه‌ای undefined @Sajad_Ahmadi_Niat 🪔
thumbnail
عزیزان این دوره، برای اولین بار در کشور با این تیتر و سرفصل هایی که اعلام شده درحال برگزاری است.قرار هست در این دوره به برخی از ابتداییات بخش فنی توسعه بازی بپردازیم.
مواردی که در تصویر بالا نوشته شده، سعی میشه که در دوره ان شاالله بهش اشاره بشه.
#دوره_آموزشی | #دوره_آنلاینundefined @Sajad_Ahmadi_Niat 🪔

۱۶:۳۱

بازارسال شده از صنایع خلاق نسیم مهر
thumbnail
undefined Nomo 3D Apples Pack undefined• 10 completely free 3D apple models for #Unity• With materials in both Built-in and URP rendering modes, featuring two separate scenes
Avalaible NowOn itch.io:https://icerosestudio.itch.io/nomo-3d-apple-pack
undefined Free undefined
@nasim_mehr_creative_industries

۱۶:۳۲

thumbnail
undefined* یک راه حل مناسبتر برای ساخت فضاهای 3D Pixel ، استفاده از زوایای مختلف جهت طراحی است.*
#پیکسل_آرت | #Pixel_Artآموزش بازیسازی و برنامه‌نویسیundefined️:undefined @Sajad_Ahmadi_Niat 🪔

۱۲:۴۹

thumbnail
#ارور_شناسی


پیغام Security Alert در یونیتی هاب ورژن های اخیر، برای هشدار مسیر دادن یونیتی هایی است که بصورت دستی(local) نصب شده اند. به این معنا، که ممکن است حاوی ویروس و trojan ها، یا تزریق وابستگی های مشکوک در ساختار نرم افزار باشند که پروژه شما و سیستم عامل و سخت افزارتان را تحت تاثیر قرار میدهند و شاید هم عامل جاسوسی باشند!
در کل این error ، مشکل خاصی نیست. صرفا یک هشدار عادی ولی قابل توجه است.
آموزش بازیسازی و برنامه‌نویسیundefined️:undefined @Sajad_Ahmadi_Niat 🪔

۱۲:۴۹

thumbnail
تخفیف بلک فرایدی متخصص بازیسازی دانشجویاردوره های طلایی یونیتی(بنده) و آنریل انجین(سجاد میرشبی عزیز) رو + به همراه برخی از دوره های مهم بازیسازی سایتبا تخفیف بسیار عالی undefined بر روی سایت قرار گرفته. تقریبا 20 ساعت بیشتر مهلت نیست(البته احتمالا تمدید بشه)
حتما از کوپن ها استفاده کنید چون محدودیت تعداد هم دارن. فعلا که زیر 120 کوپن باقی مونده!
استفاده از تخفیف و ورود به سایت دانشجویار
آموزش بازیسازی و برنامه‌نویسیundefined️:undefined @Sajad_Ahmadi_Niat 🪔

۱۲:۴۹

thumbnail
بازیسازان ایرانی، سه واحد درسی باید "اخلاق حرفه ای" پاس کنند واقعا.تا نحوه استفاده از Asset ها + اخلاق استفاده از Asset های داخلی و خارجی + خط مشی پلتفرمها و انواع لایسنس ها و همه اینها رو بیاموزنحالا این بنده خدا شاید نه، ولی واقعا خیلی از کسانیکه به سرعت وارد بازیسازی ایران میشن بصورت غیرحرفه ای، اصلا از کپی رایت داخلی هم حتی چیزی نمیدونند!
#حرف_دلآموزش بازیسازی و برنامه‌نویسیundefined️:undefined @Sajad_Ahmadi_Niat 🪔

۱۲:۴۹

مشکل Race Condition ، یکی از رایجترین اشتباهات در کدنویسی 🩺
گاها در توسعه بازی یا نرم افزار، مشاهده میکنید که کدهای شما به خوبی نوشته شده اند، اما به خوبی کار نمیکنند. گاها در وضعیتی، ممکن است اجرای کدها با یکدیگر رقابت کنند و اولویت اجرای آنها به هم بریزد.این مشکل زمانی رخ می‌دهد که چند پردازش یا نخ (Thread) به‌طور همزمان به منابع مشترک دسترسی پیدا کنند و ترتیب اجرای آن‌ها بر نتیجه نهایی تأثیر بگذارد. این وضعیت می‌تواند منجر به باگ‌های غیرقابل پیش‌بینی و (گاها) خطرات امنیتی شود.
مشکل Race Condition چیست؟مشکل Race Condition (وضعیت رقابتی) یک اشکال رایج در برنامه‌نویسی همزمان (Concurrent Programming) است که زمانی رخ می‌دهد که دو یا چند نخ (Thread) یا پردازش (Process) به‌طور همزمان به یک منبع مشترک(مانند متغیر، فایل، پایگاه داده) دسترسی پیدا کنند و ترتیب اجرای آن‌ها بر نتیجه نهایی تأثیر بگذارد. اگر این دسترسی‌ها به‌درستی همگام‌سازی نشده باشند، ممکن است نتایج نادرست یا غیرمنتظره‌ای تولید شود.
مشکل Race Condition می‌تواند منجر به مشکلات زیر شود: خطاهای منطقی در برنامه: مانند محاسبات اشتباه یا داده‌های نادرست. گاها یک چیزی باید اولویت داشته باشد اما در خروجی نمیتوان متوجه شد که چه روند اجرایی ای برتری پیدا کرده و شمارا به اشتباه می اندازد. آسیب‌پذیری‌های امنیتی: هکرها می‌توانند از این آسیب‌پذیری برای دور زدن کنترل‌های امنیتی استفاده کنند. برای مثال، در برخی سیستم‌های بانکی، مهاجمان با ارسال همزمان چند درخواست برداشت، موفق به برداشت چندباره از یک حساب شده‌اند. خرابی داده‌ها: در سیستم‌های چندنخی، داده‌های مشترک ممکن است به‌صورت ناقص یا نادرست ذخیره شوند. رفتار غیرقابل پیش‌بینی: برنامه ممکن است در برخی اجراها درست کار کند و در برخی دیگر نه، که اشکال‌زدایی را بسیار دشوار می‌کند.
undefined چگونه Race Condition را تشخیص دهیم؟تشخیص Race Condition معمولاً دشوار است، اما روش‌هایی برای شناسایی آن وجود دارد:لاگ گیری(Log): بهترین و ساده ترین روش برای فهمیدن رقابت بین دستورات و شروط تست‌های همزمانی (Concurrency Testing): اجرای چندباره برنامه با بار بالا برای آشکار شدن رفتارهای غیرمنتظره ابزارهای تحلیل استاتیک و داینامیک: مانند ThreadSanitizer، Helgrind یا ابزارهای مشابه در IDEها بررسی کد برای منابع مشترک بدون همگام‌سازی: اگر متغیر یا منبعی توسط چند نخ بدون قفل (Lock) استفاده شود، مشکوک به Race Condition است.
در وهله های سخت تر، برای جلوگیری یا رفع Race Condition، از تکنیک‌های همگام‌سازی استفاده می‌شود:undefined اول Locks (قفل‌ها): ساده‌ترین روش برای جلوگیری از دسترسی همزمان به منابع مشترک. با استفاده از mutex یا synchronized در زبان‌هایی مانند Java یا threading.Lock در Python.undefined دوم Semaphores: برای کنترل تعداد نخ‌هایی که به یک منبع دسترسی دارند.undefined سوم Atomic Operations: استفاده از عملیات اتمی که به‌صورت ذاتی غیرقابل تقسیم هستند.undefined چهارم Thread-safe Data Structures: استفاده از ساختارهای داده‌ای که برای استفاده همزمان طراحی شده‌اند.undefined پنجم Avoid Shared State: طراحی برنامه به‌گونه‌ای که نیاز به اشتراک منابع بین نخ‌ها به حداقل برسد.
(شرط اتمی (Atomic Condition) یا عملیات اتمی (Atomic Operation) به عملیاتی گفته می‌شود که به‌صورت کامل و بدون امکان توقف یا مداخله توسط نخ یا پردازش دیگر انجام می‌شود. یعنی این عملیات یا به‌طور کامل انجام می‌شود یا اصلاً انجام نمی‌شود، و هیچ حالت میانی یا ناقصی ندارد.)
🧪 مثال ساده از Race Conditionفرض کنید دو نخ به‌طور همزمان مقدار یک متغیر counter را افزایش دهند:
counter = 0
def increment(): global counter for in range(1000):
counter += 1


در این حالت، مقدار نهایی counter ممکن است کمتر از مقدار مورد انتظار باشد، چون عملیات counter += 1 اتمی نیست. برای رفع این مشکل باید تکنیک زیر را انجام داد:
import threading

counter = 0
lock = threading.Lock()

def increment():
global counter
for
in range(1000):
with lock: counter += 1

البته گاها مشکل Race Conditon (شرط رقابتی) با جابجا کردن کدها در توابع اولویت دار حل میشود. ممکن است اسکریپتی بالاتر یا پایینتر باشد، یا در تابعی باشد که زودتر اجرا میشود، یا تابعی باشد که شرط اجرای آن دیرتر از تابعی دیگر اجرا میشود و ... که یکی از مهمترین مشکلها در بازیسازی و توسعه نرم افزار است و باید کمی وقت گذاشته شده و با log گیری حل شود.
#مطلب_کمکی | #مطلب_آموزشیآموزش بازیسازی و برنامه‌نویسیundefined️:undefined @Sajad_Ahmadi_Niat 🪔

۱۲:۵۰

thumbnail
undefined لیست License های دنیای نرم افزارhttps://www.tldrlegal.com/اگر به دنبال انواع license ها و مجوزها در دنیای نرم افزاری میگردید، انواع لایسنس های مختلف نرم افزاری در اینجا گذاشته شدهلایسنسهای نرم افزاری زیادی وجود داره که مناسب حفظ کپی رایت براساس قوانین شماست.
#معرفی_سایتآموزش بازیسازی و برنامه‌نویسیundefined️:undefined @Sajad_Ahmadi_Niat 🪔

۱۷:۱۸

SceneRefrence.cs

۲.۲۷ کیلوبایت

بعلت اینکه کلاس SceneAsset فقط در Unity Editor کاربرد داره و زیرمجموعه همین namespace هست، و تمامی کلاسها و توابع Unity Editor در خروجی و export هایی مثل ویندوز، اندروید و ... کارآیی ندارند، بنده یک کلاس مشابه SceneAsset نوشتم به اسم SceneRefrence تا بتونید برای خارج از یونیتی هم با asset های صحنه کار کنید و اونهارو به شکل لیست آرایه دربیارید.فقط لطفا کپی رایت رو رعایت کنید undefinedundefined
#اسکریپتآموزش بازیسازی و برنامه‌نویسیundefined️:undefined @Sajad_Ahmadi_Niat 🪔

۱۷:۱۹

thumbnail
گاها متن شما در text mesh pro به این شکل در میاد. اگر مشکل شما با تعویض فونت حل نشد حتما بین حرف «قبل ر» و خود «ر» یک _ (همون کنترل J فارسی) قرار بدید تا مشکل حل بشه.
#حل_مشکل | #یونیتی | #unityundefined @Sajad_Ahmadi_Niat 🪔

۱۷:۲۰

thumbnail
میـلاد حضرت امیرالمومنیـن علی(ع) و بزرگداشت روز مرد مبارک باد undefinedundefined🪻به حق این شب، ان شاالله که حال دل مردم ایران خوب باشه و هیچ مرد ایرانی ای شرمنده خانوادش نباشه ...
یک هدیه خوبی برای شما عزیزان دارم که خیلی روش وقت گذاشتم. اما قرار هست که براتون بصورت رایگان منتشرش کنم تا ازش استفاده کنید undefinedundefinedundefined @Sajad_Ahmadi_Niat 🪔

۱۷:۲۱

undefined ابزار Nomo Editor Tools شامل 15 اسکریپت مهم برای تسهیل سازی کار شما در یونیتی است.در این پکیج unity ، شما 15 ابزار را یکجا دراختیار دارید که سرعت کار شمارا بسیار افزایش داده و نیازهای بدیهی شمارا رفع میکند.
شامل:- Nomo Playerprefs Monitorنمایش داده های playerprefs در حین بازی. نمایش و ویرایش آنها بصورت زنده.- Nomo Move To Scene Viewانتقال گیم آبجکت به نمای دید صحنه(Scene View) و جلوی چشم شما. فقط با یک کلیک یا میانبر ساده.- Nomo DLL Inspectorنمایش متدها، کلاسها و متغیرهای فایلهای کتابخانه ای DotNet به روش Reflection.- Nomo Mesh Pivot Utlityابزار تغییر Pivot در مش های سه بعدی به راحتی آب خوردن و به شکل حرفه ای.- Nomo URP Material Convertorتبدیل متریال های URP به Standard و Standard به URP. و تبدیل متریالها به Bi-Render.- Nomo Unity Package Listلیست نگهداری پکیج های یونیتی بصورت آسان و قابل دسترس. import پکیج موردنیاز با یک کلیک ساده! از کامپیوتر و اینترنت.- Nomo Unity Package Pro Toolsابزار نمایش محتوای داخلی پکیج، استخراج آن به داخل یا خارج پروژه، بسته بندی محتوای پروژه.- Nomo Asset Cleanerپاکسازی Asset های باحجم بالا و استفاده نشده در پروژه های یونیتی.- Nomo Asset Detectiveنمایش فایلها و دسته بندی asset ها. لیست کردن و حذف فایلهای استفاده نشده در پروژه.- Nomo Trash Toolsرهگیری فایلهای حذف شده. حذف ایمن فایلها در یونیتی.- Nomo ToDoتسک بندی کارها، برنامه ریزی، و لیست کردن کارهایی که باید انجام شود.- Nomo Autosaverذخیره ساز پروژه یونیتی، با قابلیت زمانبندی خودکار.- WorkTimeZone Offlineمناسب تیم ها و مدیران. برنامه آفلاین زمانبندی فعالیت کارمندان در یونیتی و تخصیص امتیاز به آنها.- WorkTimeZone Onlineمناسب تیم ها و مدیران. برنامه آنلاین زمانبندی فعالیت کارمندان در یونیتی و تخصیص امتیاز به آنها. به همراه پنل مدیریت یوزر ها- Github Easy Accessمناسب مبتدیان یا افرادی که میخواهند بصورت ساده و آسان با گیتهاب کار کنند. بارگذاری و Commit کردن، Pull، نمایش فایلهای پروژه و branch ها و افزودن Issue جدید.
لطفا با حفظ Copyright (لایسنس MIT) آنرا بین سایرین ایرانیانی که نیاز دارند، منتشر کنید.پکیج را میتوانید از itch.io دانلود کنید (https://icerosestudio.itch.io/nomo-unity-editor-tools) ، ولی رایگان نیست. اما برای تمامی ایرانیان و فارسی زبانان توسعه دهنده بازی در یونیتی، این ابزار بصورت کاملا رایگان قرار داده شده است و *میتوانید در ادامه این پست در کانال، آنرا دانلود کنید *undefined
#پکیج | #یونیتی | #unity | #سورس_کدآموزش بازیسازی و برنامه‌نویسیundefined️:undefined @Sajad_Ahmadi_Niat 🪔

۱۷:۲۲

Nomo Editor Tools 1.0.unitypackage

۲.۷۹ مگابایت

پکیج Nomo Editor Tools نسخه 1.0اتمام در 6 دی 1404 | انتشار در 12 دی 1404توسعه دهنده: #سجاد_احمدی نیتاستودیو رز یخی و ماکیا استودیو
شامل:15 ابزار برای Editor یونیتی- Nomo Playerprefs Monitor- Nomo Move To Scene View- Nomo DLL Inspector- Nomo Mesh Pivot Utlity- Nomo URP Material Convertor- Nomo Unity Package List- Nomo Unity Package Pro Tools- Nomo Asset Cleaner- Nomo Asset Detective- Nomo Trash Tools- Nomo ToDo- Nomo Autosaver- WorkTimeZone Offline- WorkTimeZone Online- Github Easy Access
نحوه استفاده:- پکیج unity را در پروژه import کنید.- سپس میتوانید ابزارها را از منوی Tools ، یا از میانبر(Hotkey) موردنظر فراخوانی کنید.
برای توسعه این پکیج، خیلی وقت گذاشته شده. لطفا با حفظ Copyright (لایسنس MIT) آنرا بین سایرین ایرانیانی که نیاز دارند، منتشر کنید.
آموزش بازیسازی و برنامه‌نویسیundefined️:undefined @Sajad_Ahmadi_Niat 🪔

۱۷:۲۳

بازارسال شده از صنایع خلاق نسیم مهر
thumbnail
undefined Nomo Unity Editor Tools undefined• 15 professional tools for the prerequisites of a game developer in Unity• With the ability to customize with C# language- Nomo Playerprefs Monitor- Nomo Move To Scene View- Nomo DLL Inspector- Nomo Mesh Pivot Utlity- Nomo URP Material Convertor- Nomo Unity Package List- Nomo Unity Package Pro Tools- Nomo Asset Cleaner- Nomo Asset Detective- Nomo Trash Tools- Nomo ToDo- Nomo Autosaver- WorkTimeZone Offline- WorkTimeZone Online- Github Easy Access
Avalaible NowOn itch.io (https://icerosestudio.itch.io/nomo-unity-editor-tools):https://icerosestudio.itch.io/nomo-unity-editor-tools
#Assets | #Editor | #Unity@nasim_mehr_creative_industries

۱۷:۳۰