<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های امید سعادت</title>
        <link>https://virgool.io/feed/@omid3098</link>
        <description>بازی ساز و فعلاً برنامه نویس</description>
        <language>fa</language>
        <pubDate>2026-04-15 08:35:17</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/12315/avatar/SIQdzn.png?height=120&amp;width=120</url>
            <title>امید سعادت</title>
            <link>https://virgool.io/@omid3098</link>
        </image>

                    <item>
                <title>از بازی بازی تا بازی سازی</title>
                <link>https://virgool.io/@omid3098/%D8%A7%D8%B2-%D8%A8%D8%A7%D8%B2%DB%8C-%D8%A8%D8%A7%D8%B2%DB%8C-%D8%AA%D8%A7-%D8%A8%D8%A7%D8%B2%DB%8C-%D8%B3%D8%A7%D8%B2%DB%8C-tcc0nodigtqv</link>
                <description>گذشتهٔ مختصر و ضعف بزرگخیلی کوچولو بودم که روی میکرو (NES)، سوپر ماریو بازی میکردم و هیچ ایده ای نداشتم که ممکنه یه روز هم خودم بازی بسازم. توی کلوپ به بزرگتر هایی خیره میشدم که Winning Eleven بازی میکردن و از توی منوهای ژاپنی میتونستن گزینهٔ درست رو انتخاب کنن و با ترکیب چند تا دکمه، تیم های منتخب جهان و منتخب اروپا رو آزاد کنن، ترکیب بچینن و از بازیشون لذت ببرن. (که بعد ها خودم هم تونستم ولی به نظرم دستاورد خاصی نبود!) تا سالها بعد هم همینجوری بود. وقتی روی کامپیوتر ویندوز ۹۸ خراب می‌شد بدنم داغ میشد و به چشمم یه فاجعه اتفاق افتاده بود که تنها با کمک دوست بابام این مشکل میتونست حل بشه.اینکه تا سالها بعد به ذهنم خطور نکرد که «شاید یه روزی منم بتونم» ضعف بزرگی بود.حالای مختصر و باور جدیداینکه چطوری بازی ساز شدم داستان طولانی و شاید کسل کننده‌ای باشه. آخرش این شده که الان بیشتر از ۱۴ ساله که بازی میسازم و مهمترین چیزی که یا گرفتم اینه که:یادگرفتن هیچ تخصصی برای هیچ کسی غیر ممکن نیست.ابراهیم هاماتویعنی دیگه از اصطلاح آپولو هوا کردن برای نمایش سختی یه کار استفاده نمی‌کنم. چون برای آپولو هوا کردن فقط کافیه توی مسیرش قرار بگیریم. طبق این مقاله بعد از ۶ ماه یا بیشتر میشه مهارت جدیدی یاد گرفت و طبق یه مقالهٔ دیگه حدود ۱۰ هزار ساعت (حدود ۹ سال) طول میکشه که توی اون مهارت، استاد بشیم.واسه بازی ساز شدن چیکار کنیم؟اول باید ببینیم بازی از چه بخش هایی تشکیل شده و شما با کدوم بخش بیشتر ارتباط برقرار می‌کنین.طبق ویکی پدیای‌بازی سازی سه تا نقش کلی هست:تولید کننده یا Producer: معمولاً کسی که تیم توسعه رو مدیریت میکنه، زمان‌بندی میکنه، گزارش آماده میکنه، برای استخدام تیم های مختلف کمک میکنه و ...منتشر کننده یا Publisher: کسی که محصول نهایی رو توی مارکتهای موجود داخلی یا بین‌المللی منتشر میکنه.تیم توسعه یا Development team: که خودش شامل چند بخش میشه: طراح بازی، آرتیست (دو بعدی یا سه بعدی)، برنامه نویس، طراح مرحله، طراح صدا و تستر. که برای آشنایی بیشتر با هر کدوم از این بخش ها توصیه میکنم همون ویکی‌پدیای بازی سازی رو کامل مطالعه کنین.توصیه های اضافی:از انتخاب هیچکدوم از زمینه ها نترسین و فقط به رشتهٔ مورد علاقه‌تون فکر کنین.بخاطر پول تصمیم گیری نکنین. توی هر شاخه‌ای که تخصص کسب کنین و خروجی‌های لذت بخشی تولید کنین، پول کافی میرسه.زبان انگلیسی و مهارت‌های سرچ کردنتون رو تقویت کنین. تقریباً توی همهٔ زمینه‌هایی که لازمهٔ منبع آموزشی رایگان توی اینترنت پیدا میشه.  توی شبکه‌های اجتماعی، بازی ساز‌های خوب رو دنبال کنین و ازشون راهنمایی بگیرین. من تا حالا از هر کدوم از بازی‌ساز های ایرانی کمک خواستم، بازخورد خیلی خوبی گرفتم. مرسی که وقت گذاشتین و خوندین! مشتاقانه منتظرم محصولات خفنی که تولید میکنین رو ببینم و تجربه کنم. بترکونین ?----------------------------لینک‌های کمکی برای دنبال کردن محتوای بازی‌سازی در ایران: یوتوب:کانال فن‌کست: مصاحبه با بازی‌سازهای باتجربه در زمینه‌های مختلف. کانال DevQuest: بررسی شرکت‌های بازی سازی در کشورهای مختلف و تحلیل دلایل موفقیت یا شکست اونها.توی توییتر هم این لیست بازی‌ساز هاییه که من میشناسم.اگه لینک کمکی دیگه‌ای یا اکانت توییتری دیگه‌ای میشناسین که من جا انداختم، همینجا بگین تا پست رو آپدیت کنم.</description>
                <category>امید سعادت</category>
                <author>امید سعادت</author>
                <pubDate>Sat, 01 May 2021 17:18:34 +0430</pubDate>
            </item>
                    <item>
                <title>چطور با کمک گیت‌هاب یه Package manager برای یونیتی نوشتم؟</title>
                <link>https://virgool.io/@omid3098/open-package-manager-mwme9iltkcah</link>
                <description>مقدمه از وقتی کار با یونیتی رو شروع کردم، دوست داشتم بتونم یه جوری از Asset هایی که زیاد استفاده میکنم توی هر پروژه ای که میخوام استفاده کنم. یه راهش این بود که همش رو بریزم توی یه پوشه، ازش یه Package درست کنم و اکسپورت کنم و توی پروژه های دیگه وارد کنم.مزیت:  سریعمطمئن (چون توی پروژه قبلی کار کرده)عیب:  پکیج ها آپدیت نمیشنپکیج ها قبل از ایمپورت کردن قابل انتخاب نیستننمیشه مدیریتشون کردحس گیک بودن بهم دست نمیدهبجز این موارد، با Package manager های مختلفی مثل npm هم آشنایی ابتدایی داشتم ولی هیچ ایده ای نداشتم که چطور باید شروع کنم به نوشتن همچین چیزی.از طرف دیگه خود یونیتی AssetStore ای داره که میشه Asset های مختلف رو از اونجا دانلود کرد ولی خب شخصاً بجز Asset های پولی، زیاد ازش استفاده نمیکنم.تلاش اول:یک سال قبل – شروع کردم به خوندن و یاد گرفتن و نگاه کردن به ساز و کار پکیج منیجرها. درست یا غلط اینجوری دستم اومد که باید یه سرور داشته باشم که لیست همه پکیج ها رو به همراه سورسشون توش نگهداری کنه (که نه سوادش رو داشتم و نه سرورش رو)، بتونم یه CLI بنویسم که بشه پکیج ها رو از سرور دانلود کنه (که بلد نبودم) و سرافکنده شدم و بدون اینکه صداشو در بیارم صفحه ها رو بستم و رفتم دنبال کارم.تلاش دوم:نسخه جدید یونیتی یه Pakcage manager داخلی توش گذاشته که پکیج های خودش رو توش میذاره و به روز رسانی میکنه و از این کارا. هفته پیش دوباره انگولک شدم.  توی این مدت چنتا ریپازیتوری توی گیت‌هاب برای کارای مختلف توی یونیتی درست کرده بودم و حداقل خودم توی پروژه های 	خودم ازشون استفاده میکردم.دیدم میشه به فایل‌ها 	توی گیت‌هاب لینک مستقیم با آدرس ثابت داشت.سرچ کردم و دیدم میشه با توجه به نسخه های منتشر شده از 	هر ریپازیتوری، با داشتن اسم ریپازیتوری، نام کاربری صاحبش و نسخهٔ منتشر شده به 	لینک دانلود از صفحهٔ Release رسید! اینارو کنار هم گذاشتم و دیدم من که میتونم یه EditorTool بنویسم که یه JSON مثل این رو از توی گیت‌هاب بخونه و محتواش رو پارس کنه:{
&quot;packages&quot;:
[
               {
                        &quot;name&quot;: &quot;Open Audio&quot;,
                        &quot;description&quot;: &quot;singleton audio manager for unity&quot;,
                        &quot;packageName&quot;: &quot;OpenAudio&quot;,
                        &quot;author&quot;: &quot;omid3098&quot;
                },
                {
                         &quot;name&quot;: &quot;Open Framework&quot;,
                         &quot;description&quot;: &quot; A Lightweight framework for unity.&quot;,
                         &quot;packageName&quot;: &quot;OpenFramework&quot;,
                         &quot;author&quot;: &quot;omid3098&quot;
                  }
],
   &quot;server&quot;: &quot;https://github.com/&quot;
}یکم توی API خود GitHub سرچ کردم  دیدم که نیازی به شماره ورژن نداریم و میتونیم آخرین تغییرات هر پکیج رو با داشتن اسم پکیج و  نویسنده ش به دست بیاریم:&quot;https://api.github.com/repos/&quot; + package.author + &quot;/&quot; + package.packageName + &quot;/zipball&quot;پس تا اینجا به نسخهٔ زیپ شده از هر پکیجی میتونیم دسترسی پیدا کنیم. کافیه دانلودش کنیم و در جای مناسب Unzip کنیم. (میشه tarbal رو هم با همین روش گرفت)همهٔ چیزایی که برای داشتن یه Package manager نیاز داشتم رو دارم! پس فقط کافیه یه لیستی از پکیج‌ها درست کنم با یه ابزار توی خود یونیتی و بقیهٔ کارها رو بسپارم به توسعه‌دهنده های هر پکیج! هروقت توسعه‌دهنده نسخه جدیدی توی ریپازیتوری خودش منتشر کنه، این Package manager آخرین تغییرات رو میگیره و در اختیار کاربر قرار میده.و این شد که این ابزار رو نوشتم که فعلاً لیست چنتا پکیج‌ رو نمایش میده، میتونه توی اون لیست جستجو کنه، در محل دلخواه توی پروژهٔ یونیتی دانلود کنه و از این به بعد بتونیم بدون درد و خونریزی از آخرین نسخهٔ هر پکیج توی پروژه استفاده کنیم.اگه شما هم پکیجی برای یونیتی دارین که میخواین توی این Package manager قرار بگیره، کافیه لینک ریپازیتوری رو با در نظر داشتن این موارد بفرستین.دیگه چی؟طبیعتاً این ابزار در ابتدای راه قرار داره و میشه با API ای که گیت‌هاب در اختیارمون گذاشته، تاریخ آخرین انتشار، آخرین نسخهٔ منتشر شده (توی Release)، آخرین شماره Commit و خیلی چیزهای دیگه رو توی این Package manager وارد کرد، براش CLI نوشت، dependency ها رو وارد چرخه کرد و به مرور تکمیلش کنیم.و اینکه شما میتونین نه تنها برای یونیتی، که برای هر استفادهٔ دیگه ای با این قابلیت‌ها Package manager خودتون رو بنویسین.</description>
                <category>امید سعادت</category>
                <author>امید سعادت</author>
                <pubDate>Sat, 07 Jul 2018 22:07:19 +0430</pubDate>
            </item>
            </channel>
</rss>