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

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

۷۴عضو
آموزش بازیسازی و برنامه نویسی | سجاد احمدی نیت
undefined به جرئت میتونم بگم که نزدیک به 20 وبسایت تولید فایلهای 3D رو امتحان کردم، اما هیچکدوم به توازن #رایگان بودن و #دقیق بودن هوش مصنوعی Copilot3D نرسیدن! undefined بااینکه Meshy.ai با دقت بیشتری اینکارو انجام میده. اما Copilot 3D مدلها رو با حجم کمتر، بهینه تر و حتی رایگان تولید میکنه! کافیه یک عکس بدید، یا توضیح بدید چی میخواید(پرامپت) برات تولید میکنه! میتونید ازش استفاده کنید: https://copilot.microsoft.com/labs/experiments/3d-generations #ابزار undefined @Sajad_Ahmadi_Niat 🪔
thumbnail
همینو بگم که اگر استفاده نکنید، از دستش دادید. به تازگی وایرال شده undefinedundefined
undefined @Sajjad_Ahmadi_Niat 🪔

۴:۲۸

آموزش بازیسازی و برنامه نویسی | سجاد احمدی نیت
undefined یکی از هوش مصنوعی های خفنی که ازش استفاده کردم anything بوده. undefined هم مدل سه بعدی رو ریگ میکنه. undefined هم با پرامپت 3d model میسازه. undefined هم یک Game Ready SDKs برای تولید بازی داره. undefined هم یک کتابخانه حاوی مدلهای سه بعدی داره. پیشنهاد میکنم تستش کنید: https://www.anything.world/ #ابزار undefined @Sajad_Ahmadi_Niat 🪔
thumbnail
بسیار دقیق و عالی! undefinedundefined🪻(کاراکتر عمونوروزه)
undefined @Sajad_Ahmadi_Niat 🪔

۴:۲۹

undefined خروجی(Export) تمامی لایه ها در Photoshop و Illustratorگاها لازم داریم تا رابط کاربری ها و Sprite هایی که در یک فایل psd (فایل فتوشاپ) یا فایلهای ai و vector (فایل ایلاستریتور) وجود دارن رو بصورت مجزا استخراج کنیم تا بتونیم راحت تر و بصورت جُدا در بازی استفاده کنیم.
undefinedدر فتوشاپ (Photoshop)روش ۱: استفاده از Export Asاین روش برای خروجی گرفتن چند لایه به‌صورت همزمان عالیه: لایه‌های مورد نظر رو با نگه‌داشتن Ctrl انتخاب کن. روی یکی از لایه‌ها راست‌کلیک کن و گزینه Export As رو بزن. در پنجره بازشده، فرمت خروجی (مثل PNG، JPG، SVG) و سایز دلخواه رو تنظیم کن. روی Export All کلیک کن و پوشه مقصد رو انتخاب کن تا همه لایه‌ها جداگانه ذخیره بشن⁽¹⁾.
روش ۲: استفاده از Layers to Filesاین روش برای خروجی گرفتن تمام لایه‌ها به فایل‌های جداگانه با تنظیمات دقیق‌تر کاربرد داره: مسیر File > Export > Layers to Files رو دنبال کن. فرمت خروجی، پیشوند نام فایل‌ها، و پوشه مقصد رو مشخص کن. روی OK کلیک کن تا همه لایه‌ها به‌صورت فایل‌های مستقل ذخیره بشن.
undefined در ایلاستریتور (Illustrator)ایلاستریتور ابزار مستقلی برای خروجی گرفتن از آبجکت‌ها نداره، اما می‌تونی از این روش‌ها استفاده کنی:روش ۱: استفاده از Asset Export Panel از منوی Window > Asset Export پنل رو باز کن. آبجکت‌ها یا گروه‌هایی که می‌خوای خروجی بگیری رو به این پنل Drag کن. فرمت خروجی (PNG، JPG، SVG، PDF) و رزولوشن رو تنظیم کن. روی Export کلیک کن تا همه آبجکت‌ها جداگانه در پوشه‌ای که انتخاب کردی ذخیره بشن.
روش ۲: استفاده از Artboardsاگر هر تصویر یا آبجکت رو روی یک آرت‌بورد جداگانه قرار بدی، می‌تونی از مسیر زیر خروجی بگیری: File > Export > Export for Screens انتخاب آرت‌بوردها یا آبجکت‌ها تنظیم فرمت و پوشه مقصد کلیک روی Export
#ترفندundefined @Sajad_Ahmadi_Niat 🪔

۱۴:۳۶

thumbnail
undefinedundefined اخیرا از این نمونه playable games ها داخل یوتیوب دیدید.این دو لینک به شما یاد میده که چطور از اینطور گیم های آنلاین و playable بسازید.
undefined https://developers.google.com/youtube/gaming/playablesundefined https://developers.google.com/youtube/gaming/playables/reference/sdk
#ترفندundefined @Sajad_Ahmadi_Niat 🪔

۱۴:۳۶

thumbnail
یک مخزن عالی و رایگان برای انیماتور هاundefined در این مخزن، شما مدل سه بعدی رو میدی و animation اون رو تحویل میگیری!بازیسازی داره روز به روز، در عین سختی، ساده تر از قبل میشه.
https://github.com/scottpetrovic/mesh2motion-app
#ابزار | #مخزن | #ai | #هوش_مصنوعیundefined @Sajad_Ahmadi_Niat 🪔

۱۴:۳۶

چند وبسایت ساخت sfx با هوش مصنوعی undefined
اخیرا تکنولوژی در ساخت sound effects ها پیشرفت گسترده ای کرده. چند نمونه وبسایت که با هوش مصنوعی(ai) افکت صوتی میسازه رو براتون لیست کردم:undefined https://elevenlabs.io/sound-effectsundefinedhttps://soundeffectgenerator.orgundefined https://sfxengine.com/undefined https://myedit.online/en/audio-editor/ai-sound-effect-generator

اکثرا پولی(با پلن رایگان) یا رایگان با محدودیت خاص هستند.ولی میتونید افکت های صوتی شون رو با camtasia ضبط کنید و ازش استفاده کنیدundefined.
#ابزار | #sfx | #افکت_صوتی | #ai | #هوش_مصنوعیundefined @Sajad_Ahmadi_Niat 🪔

۱۴:۳۶

لطفا مطالب کانال رو فوروارد کنید عزیزانتا سایر دوستان هم از مطالب استفاده کننداکثر مطالب توسط خودم نوشته میشه. فوروارد شما هم یک کار خوب و خیرخواهانه ست، هم حمایت از مطالب کانال.
ممنونم undefinedundefined

۱۴:۳۶

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 🪔

۱۲:۵۰