<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Sarvly</title>
        <link>https://virgool.io/feed/@sarvly</link>
        <description>سَرولی</description>
        <language>fa</language>
        <pubDate>2026-06-07 15:04:14</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1095245/avatar/lYAyMP.png?height=120&amp;width=120</url>
            <title>Sarvly</title>
            <link>https://virgool.io/@sarvly</link>
        </image>

                    <item>
                <title>داستان و تجربه من بعد از سه سال برنامه نویسی</title>
                <link>https://virgool.io/wptips/%D8%AF%D8%A7%D8%B3%D8%AA%D8%A7%D9%86-%D9%88-%D8%AA%D8%AC%D8%B1%D8%A8%D9%87-%D9%85%D9%86-%D8%A8%D8%B9%D8%AF-%D8%A7%D8%B2-%D8%B3%D9%87-%D8%B3%D8%A7%D9%84-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-mp4l4ogwiaak</link>
                <description>داستان و تجربه من بعد از سه سال برنامه نویسیداستان شروع برنامه نویسی من با جستجو در مورد نحوه توسعه بازی های ویدیویی شروع شد و از آنجایی که به دنیای کامپیوتر و وب علاقه داشتم وارد حرفه برنامه نویسی شدم.داستان زیر، داستان یکی از اعضا تیم سروتم است و از تجارب این فرد نوشته شده است.شروع داستانحدود چهار سال پیش بود که در حال انجام یک بازی ویدیویی بودم. به یاد نمیارم دقیقا کدوم بازی بود؛ اما فکر میکنم Warcraft 3 یا یک بازی از سری Stronghold بود.به فکرم رسید چطور این بازی ها طراحی میشن و دقیقا با چه ابزاری ساخته میشن. هیچ دانشی از برنامه نویسی نداشتم و هیچ چیز در مورد کد نویسی نمیدونستم. شروع کردم به جستجو تو موتور جستجو Google.اولین موردی که باهاش برخورد کردم &quot;موتور بازی سازی&quot; بود. بعد از مدتی دیگه ای جستجو با کلمه &quot;برنامه نویسی&quot; برخوردم. کلمه عجیب و نا آشنایی بود. البته زیاد توجه ای به کلمه برنامه نویسی نکردم و تمرکزم رو رو موتور بازی سازی قرار دادم.بعد از جستجو و تحقیق بیشتر در مورد توسعه بازی های ویدیویی با بخش های مختلف توسعه بازی های ویدیویی مثل گرافیک و موتور بازی سازی آشنا شدم و رفتم سراغ نصب یک موتور بازی سازی.بعد مطالعه چند مقاله به این نتیجه رسیدم که بهترین موتور بازی سازی، Unity Engine هست. رفتم سراغ نصب Unity. یونیتی رو دانلود کردم و نصب رو شروع کردم. زمانی که نوار وضعیت نصب به آخر نزدیک شد یه حسی بهم دست داد و گفتم:&quot;آخیش... بالاخره تموم شد!&quot;نصب نرم افزار تموم شد. با کلی شوق و ذوق نرم افزار رو باز کردم و... با یه ارور روبرو شدم!ارور رو تو گوگل سرچ کردم به نتیجه ای نرسیدم. گفتم حالا شاید فایل مشکل داشت. دوباره یونیتی از یه جای دیگه رو دانلود کردم دوباره نصب دوباره شوق و ذوق و دوباره ارور. این بخش رو دقیق به خاطر نمیارم اما فکر کنم ارورش با ارور قبلی متفاوت بود.چند بار دیگه فایل رو دانلود و نصب کردم اما اون حلقه(دانلود، نصب، شوق و ذوق و ارور) همش تکرار میشد. البته بار های آخر شوق و ذوقم کلا از بین رفته بود. آخرش دیگه کلا کلافه شدم و دو سه تا فحش آب دار به یونیتی و جاهایی که ازشون دانلود کرده بودم دادم و تمام.شروع برنامه نویسی منچند هفته گذشت. اینبار هم یه سوالی به فکرم رسید: چطور نرم افزار های یه سیستم عامل ساخته میشن؟دوباره رفتم پیش رفیق عزیزم Google. دوباره با کلمه &quot;برنامه نویسی&quot; برخوردم. با خودم گفتم این چیه دیگه هر سنگی بر میدارم باهاش روبرو میشم؟رفتم یکم تحقیق کردم و به یه نتیجه رسیدمبرنامه نویسی یعنی پیدا کردن یه ایده، کامل کردن ایده و زدن چهار تا دکمه رو کیبورد و چند تا کلیک موس و تمام!البته اینقدرا هم نتیجه گیریم ضایع نبود اما به هر حال، ادامه بدیم داستانوبا اسم چند تا از زبان های برنامه نویسی روبرو شدم. اسم زبان های خانواده C خیلی تو چشم بود. منظورم از خانواده C زبان های C، #C و ++C هست. اما نمیدونم چرا و به چه دلیل رفتم سراغ Java.اسم Java برام زیاد غریب نبود چون قبلا برای نصب بازی Minecraft رو سیستمم نصبش کرده بودم.با Java اصلا تجربه خوبی نداشتم. حدود 1 ماه در حال یادگیری بودم. منبع یادگیریم هم Youtube بود.نکتش اینکه بعد 1 ماه یادگیری حتی با حلقه های Java آشنا نشده بودم! نمیدونم مشکل از من بود، از آموزش بود یا از Java اما به هر حال خیلی ناجور بود.شروع برنامه نویسی وب1 2 ماه گذشت و تو این مدت ماه کلا در حال یادگیری زبان های مختلف بودم. یه هفته #C یاد میگرفتم یه هفته Python. کلا یه وضعی بود.گفتم اقا بسه دیگه. رفتم بالاخره یه تحقیق درست حسابی کردم و با زبان های مختلف برنامه نویسی آشنا شدم. با خودم گفتم: حالا که من و بقیه مردم برای پیدا کردن جواب سوالاتشون تو گوگل سرچ میکنن و وارد سایت ها میشن، چرا خودم یه سایت طراحی نکنم؟رفتم سراغ توسعه و برنامه نویسی وب. مثل بچه آدم اول رفتم سراغ HTML و CSS. دیگه هدفم مشخص شده بود.هنوز اولین فایل های HTML که نوشتم رو دارم. یادمه اولین تگ HTML که نوشتم تگ p و اولین Property های CSS که نوشتم Color و Background-color بودن.با HTML و CSS در حد متوسط آشنا شدم. البته هنوز توانایی طراحی یه قالب درست و حسابی رو نداشتم. به هر حال.دیدم کلا طراحی Static صفحات وب خیلی خسته کنندس و رفتم سمت بک اند. اولین زبان بک اند ام PHP بود. یه دوره آموزشی پیدا کردم و شروع کردم به دیدن اون. زمانی که در حال یادگیری PHP بودم یکم به یادگیری html و css هم میپرداختم.زبان برنامه نویسی PHPیک وقفه کوچک! پیام بازرگانیدوره آموزشی PHP که گفتم تموم شد. از مستندات خود سایت php و سایت های دیگه هنوز به یادگیری ادامه میدادم که یه دفعه خسته شدم. نمیدونم چرا اما با خودم گفتم برنامه نویسی وب برای من مناسب نیست.تو این وقفه اولین کاری که کردم یادگیری Wordpress بود. چیز جالبی بود. البته به نظرم واقعا خیلی نامردی بود. من اون همه زمان گذاشتم PHP یاد بگیرم تازه در حد مقدماتی. اما میتونستم با wordpress و افزونه هاش یه سایت چند برابر بهتر از چیزی که خودم با PHP خام میتونستم رو توسعه بدم؟البته اینکه با HTML، CSS و PHP آشنا بودم خیلی تو وردپرس بهم کمک کرد. پس اولین درسی که میگیریم اینکه قبل از اینکه بریم یه CMS یاد بگیریم بهتره با زبان برنامه نویسیش آشنا باشیم و اگه اولین بارمونه میخوایم یه CMS یاد بگیریم و چیزی از طراحی سایت نمیدونیم بهتره قبلش با HTML و CSS آشنا بشیم.سمت SEO هم رفتم. یه نکاتی در مورد SEO گوگل و مقاله نویسی یاد گرفتم.تو این مدت کار دیگه ای که کردم این بود که دوباره رفتم سمت Unity. از اونجایی که با PHP کار کرده بودم با حلقه ها، عملگر ها و بخش های اصلی دیگه یه زبان برنامه نویسی آشنا بودم.دو سه تا بازی ساده 2 بعدی با کمک Adobe Photoshop و Unity طراحی کردم و بازم خسته شدم!بازگشت به عقبدوباره رفتم سمت PHP. البته زمانی که در حال یادگیری PHP بودم هنوز با وردپرس کار میکردم. با OOP و MVC هم تو PHP آشنا شدم. سمت Laravel هم رفتم اما به نظرم زیاد خوب نبود. شاید من به چیزی فراتر از بهترین فریم ورک PHP نیاز داشتم.تقریبا همون زمانا بود که وارد تیم سروتم شدم.زمان مسخره بازی نبود. تمرکزم رو گذاشتم رو طراحی و توسعه وب. تو این زمان با Ajax، Javascript و API هم آشنا شدم.کلا چند تا درس مهم در مورد طراحی UI، افزایش فروش، برنامه نویسی وب و موارد مرتبط دیگه با توسعه وب یاد گرفتم:1- به کد هات اعتماد نکن2- به نظر مردم اعتماد نکن3- به آمار اعتماد نکن4- فقط به خودت اعتماد کن5- و در نهایت به اعتماد تکیه نکن!اعتماد به تنهایی کافی نیست. اما ممکن بپرسین زمانی که از چیزی مطمئن نیستم، دقیقا باید چی کار کنیم؟ خب، منم دقیق نمیدونم. شاید مطمئن نبودن به این معنی نیست که نباید آزمون خطا کرد.حال...الان در حال یادگیری NodeJS هستم چون احساس میکنم PHP برام کافی نیست. الان چیز خاصی جز یادگیری Node JS تو فکرم نیست. اما فکر نکنم این پایان این داستان باشه...</description>
                <category>Sarvly</category>
                <author>Sarvly</author>
                <pubDate>Fri, 18 Mar 2022 19:23:44 +0330</pubDate>
            </item>
                    <item>
                <title>ای‌پی‌آی(API) فایلزی زنده شد! راهنما استفاده از API Filzy</title>
                <link>https://virgool.io/@sarvly/%D8%A7%DB%8C-%D9%BE%DB%8C-%D8%A2%DB%8Capi-%D9%81%D8%A7%DB%8C%D9%84%D8%B2%DB%8C-%D8%B2%D9%86%D8%AF%D9%87-%D8%B4%D8%AF-%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-api-filzy-y82epwyn1coy</link>
                <description>ای‌پی‌آی یا Application Programming Interface یکی از کاربردی ترین فناوری ها در زمینه توسعه سایت است. به وسیله این فناوری دو و یا چند وبسایت میتوانند بدون توجه به زبان برنامه نویسی به وسیله XML و JSON با هم ارتباط برقرار کنند.ای‌پی‌آی فایلزی، یک API کاربردی برای ارتقا سطح مدیریت فایل های نرم افزارتان است.حال تنها قابلیت فشرده سازی فایل های CSS ،JS ،WEBP،JPG و PNG وجود دارد. اما در آینده تمامی قابلیت های وبسایت فایلزی مانند تغییر سایز تصاویر به این API اضافه میشوند.نحوه استفاده از API فایلزیارسال درخواست به API و کار با فایل JSONقبل از مطالعه این مقاله پیشنهاد میکنم مستندات فایلزی را مطالعه کنید.به صورت کلی برای استفاده از این API باید یک درخواست به آدرس مربوط به این API ارسال کنید. اگر با نحوه ارسال درخواست به فایل آشنایی ندارید، عبارت زیر را در گوگل جستجو کنید.Send Request For JSON {Language Name}بخش {Language Name} را با نام زبان برنامه نویسی که استفاده میکنید جایگزین کنید. برای مثال:Send Request For JSON PHPخروجی این API یک JSON است و از این رو باید با نحوه کار با JSON در زبان برنامه نویسی مورد استفاده توسط خود نیز آگاه باشید. اگر از این موضوع آگاهی ندارید عبارت زیر را در گوگل جستجو کنید.Work With JSON {Language Name}برای فشرده سازی تصاویر، فرمت آدرس درخواست به API باید به شکل زیر باشد:https://filzy.ir/api.php?file=File_Address&amp;res=QualityFile_Address : آدرس فایل || Quality : کیفیت تصویرکیفیت تصویر عددی بین 1 تا 98 است. عدد کمتر برابر است با  فشرده سازی و کاهش کیفیت بیشتر.آدرس تصویر باید آدرس کامل یک تصویر JPG یا PNG با HTTP یا HTTPS باشد.آدرس تصویر به صورت کلی اجباری نیست. اما در صورتی که این فیلد را وارد نکنید به صورت پیش فرض بر روی 75 قرار میگیرد. همچنین این فیلد تنها در فشرده سازی فایل های JPG و WEBP کاربرد دارد و در فایل های دیگر تاثیری ندارد.اگر منظور از فرمت آدرس را متوجه نشدید نگران نباشید. جلوتر به شکل عملی از این API استفاده میکنیم.کار با API فایلزی به وسیله PHP$file = &#039;https://i.picsum.photos/id/674/200/300.jpg?hmac=kS3VQkm7AuZdYJGUABZGmnNj_3KtZ6Twgb5Qb9ITssY&#039;;
$output = file_get_contents&#40;&amp;quothttps://filzy.ir/api.php?file=$file&amp;res=50&amp;quot&#41;;
$output = json_decode($output, true);
echo $output[&#039;file&#039;]; // Output compressed File Addressهمانطور که میبینید فرمت فایلی که توضیح داده بودیم را به file_get_contents پاس دادیم تا خروجی API را دریافت کنیم.کار با API فایلزی به وسیله JSvar request = new XMLHttpRequest();
var file = &#039;https://i.picsum.photos/id/674/200/300.jpg?hmac=kS3VQkm7AuZdYJGUABZGmnNj_3KtZ6Twgb5Qb9ITssY&#039;;
request.open(&#039;GET&#039;, `http://localhost/fillzy/api.php?file=${file}&amp;res=50`, false);
request.send();
var output = JSON.parse(request.responseText).file;
console.log(output); // Output compressed File Address
// OR
fetch(`http://localhost/fillzy/api.php?file=${file}&amp;res=50`).then(response =&gt; response.json()).then(json =&gt; console.log(json))  // Output compressed File Addressدر Javascript دو راه برای استفاده از این API وجود دارد.راه اول استفاده از XMLHttpRequest و راه دوم استفاده از Fetch است.خروجی API فایلزیبه صورت کلی خروجی این API آدرس فایل جدید یا یک ارور است.یک نمونه خروجی موفق:{&amp;quotfile&amp;quot : &amp;quotmyImage.png&amp;quot}همانطور که میبینید درصورت موفقیت آمیز بودن انجام عملیات خروجی این API چیزی مشابه به شکل بالا خواهد بود.یک نمونه خروجی ناموفق:[{ &amp;quoterror_num&amp;quot : 0, &amp;quoterror&amp;quot : &amp;quotدر دریافت فایل مشکلی پیش آمد. لطفا آدرس فایل را بررسی کنید&amp;quot }]همانطور که مشاهده میکنید زمانی که مشکلی رخ میدهد خروجی JSON به دو بخش error_num(شناسه خطا) و error(متن خطا) تقسیم میشود.برای مدیریت خطا میتوانید از error_num و error استفاده کنید. یک راه ساده برای بررسی موفقیت آمیز بودن یا شکست عملیات، بررسی وجود داشتن error_num در خروجی است.لیست کامل خطا های API فایلزی:[{ &amp;quoterror_num&amp;quot : -1, &amp;quoterror&amp;quot : &amp;quotآدرس فایل وجود ندارد.&amp;quot }][{ &amp;quoterror_num&amp;quot : 0, &amp;quoterror&amp;quot : &amp;quotدر دریافت فایل مشکلی پیش آمد. لطفا آدرس فایل را بررسی کنید&amp;quot }]
[{ &amp;quoterror_num&amp;quot : 1, &amp;quoterror&amp;quot : &amp;quotواکنش نامناسب. کد :&amp;quot }]
[{ &amp;quoterror_num&amp;quot : 2, &amp;quoterror&amp;quot : &amp;quotحجم فایل از حداکثر حجم مجاز(3.5مگابایت) بیشتر است.&amp;quot }]
[{ &amp;quoterror_num&amp;quot : 3, &amp;quoterror&amp;quot : &amp;quotفرمت فایل نامناسب است. تنها PNG و JPG/JPEG قابل قبول است.&amp;quot }]برای مشاهده توضیحات هر خطا میتوانید از مستندات فایلزی استفاده کنید.در پایاندر این مقاله به توضیحاتی در مورد نحوه استفاده از API فایلزی پرداختیم. این مقاله در صورت آپدیت API فایلزی آپدیت میشود. همچنین در آینده در این مقاله به نکات جزئی تر نیز میپردازیم.آخرین اخبار فایلزی را از Twitter دنبال کنید.</description>
                <category>Sarvly</category>
                <author>Sarvly</author>
                <pubDate>Mon, 14 Mar 2022 17:39:17 +0330</pubDate>
            </item>
                    <item>
                <title>راه هایی برای گرفتن backlink رایگان که احتمالا نمیدانید</title>
                <link>https://virgool.io/sarvtheme/%D8%B1%D8%A7%D9%87-%D9%87%D8%A7%DB%8C%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-backlink-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-%DA%A9%D9%87-%D8%A7%D8%AD%D8%AA%D9%85%D8%A7%D9%84%D8%A7-%D9%86%D9%85%DB%8C%D8%AF%D8%A7%D9%86%DB%8C%D8%AF-q3cokkocjoqo</link>
                <description>راه هایی برای گرفتن بک لینک که احتمالا نمیدانیداحتمالا میدونید که بکلینک یکی از چیز هایی هست که رو رتبه سایت تاثیر زیادی میزاره. احتمالا شما با روش هایی برای گرفتن بکلینک رایگان مثل پست مهمان و ساخت پروفایل اشنا هستید. تو این مقاله میخوام تکنیک ها و روش هایی برای گرفتن بکلینک معرفی کنم که احتمالا نمیدونستید که وجود دارن.راه ها و تکنیک های گرفتن بکلینک رایگاناز ویکی پدیا استفاده کنید!احتمالا همتون ویکی پدیا رو میشناسید. میدونستین که میتونید از ویکی پدیا بکلینک رایگان بگیرید؟ببینید احتمالا وبسایت شما یک حوزه کاری داره. مثلا الان فرض میکنیم که حوزه کاری ما سئو و برنامه نویسی وب هست.اول تو ویکی پدیا یک اکانت درست میکنیم. بعد میریم دنبال مقالات مرتبط با سئو و برنامه نویسی تو ویکی پدیا میگردیم. مثلا صفحه HTML 5 تو ویکی پدیا.بعد یک سری توضیحات از یکی از مقالات وبسایتمون که به HTML 5 میشه رو کپی میکنیم و بعد میایم مقاله HTML 5 رو تو ویکی پدیا ویرایش میکنیم.میتونید از این ویدیو برای یادگیری نحوه ویرایش مقاله استفاده کنید.میایم توضیحاتی که از مقاله سایت خودمون کپی کردیم رو تو بعضی بخش های اون مقاله تو ویکی پدیا پیست میکنیم(البته یکم هم بعد از Paste کردن ویرایشش میکنم تا یکم فرق داشته باشه) و بعد میایم پایین و تو بخش منابع لینک مقاله سایتتون رو قرار میدین. بعد انتشار رو میزنید.راه دیگه ای که وجود داره اینکه یک مقاله در مورد برند یا سایتتون تو ویکی پدیا درست کنید و یک لینک از سایتتون توش قرار بدین.یک کتاب دیجیتالی(PDF) بنویسید و منتشر کنیدراه دیگه ای که وجود داره اینکه یک کتاب دیجیتال یا همون PDF در مورد حوزه کاریتون بنویسید و تو سایت هایی مثل کتاب سبز منتشر کنید و لینک سایتتونو تو بعضی از بخش های اون کتاب به عنوان منبع یا آموزش های بیشتر قرار بدین.درسته این روش به صورت مستقیم رو سئو تاثیر نداره و تقریبا بک لینک به حساب نمیاد اما همونطور که میدونید هدف ما از سئو افزایش بازدید سایت و هدف از افزایش بازدید سایت افزایش فروش هست. میتونید کتابتونو تو سایت های پر بازدید مثل کتاب سبز قرار بدین تا بازدید و دانلود زیادی داشته باشه و در نهایت بازدید سایتتون بالا بره.گرفتن Backlink از سایت هایی مانند Torobیک نمونه بک لینک از وبسایت ترباگر محصولات فیزیکی میفروشید میتونید تو وبسایت هایی مثل ترب فروشگاهتونو ثبت کنید و لینک سایتتون هم قرار بدین.با این کار هم بکلینک میگیرید هم بازدید سایتتون افزایش پیدا میکنه. همچنین احتمال اینکه فروشتون بالا بره به دلیل وجود محصولاتتون تو وبسایت های پر بازدیدی مثل ترب افزایش پیدا کنه خیلی بالاس.در پایان راه های گرفتن بکلینکتو این مقاله به تعدادی از راه هایی برای گرفتن بکلینک که احتمالا نمیدونستید پرداختم. این مقاله قراره آپدیت بشه و هر چند وقت راه های بیشتری بهش اضافه بشه. اگه راه های دیگه ای میشناسید تو بخش نظرات بگین تا اضافه کنم.</description>
                <category>Sarvly</category>
                <author>Sarvly</author>
                <pubDate>Wed, 29 Dec 2021 16:18:39 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش طراحی قالب اختصاصی وردپرس</title>
                <link>https://virgool.io/sarvtheme/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D9%82%D8%A7%D9%84%D8%A8-%D8%A7%D8%AE%D8%AA%D8%B5%D8%A7%D8%B5%DB%8C-%D9%88%D8%B1%D8%AF%D9%BE%D8%B1%D8%B3-la9fguo39cln</link>
                <description>وردپرس رو احتمالا همتون میشناسید. محبوب ترین سیستم مدیریت محتوا یا CMS جهان. احتمالا میدونید که تمام قالب یا همون پوسته ها و افزونه های وردپرس توسط سازنده اصلی وردپرس یعنی جناب مت مولنوگ ساخته نمیشن و افراد میتونن قالب و افزونه هایی رو بسازن و به صورت پولی یا رایگان برای عموم به اشتراک بزارن.تو این مقاله و یک سری مقاله دیگه میخوام بهتون موارد ابتدایی طراحی و ساخت قالب وردپرس رو یاد بدم.شروع ساخت و طراحی قالب وردپرسمقدمات و پیش نیاز های طراحی قالب وردپرساول یک سری مقدمات و پیش نیاز برای شروع ساخت قالب اختصاصی رو بهتون توضیح میدم.اولین پیش نیاز های طراحی قالب وردپرس دانش فنی مورد نیازش هست. باید با های HTML ، CSS ، js و php به صورت متوسط آشنا باشید. همچنین باید با cms وردپرس اشنا باشید و کار باهاش رو بلد باشید.پیش نیاز بعدی سرور یا هاست هست که میتونید از Xampp استفاده کنید. احتمالا با این مورد هم اشنا هستید.برای دانلود وردپرس از وبسایت رسمی وردپرس فارسی کلیک کنید.شروع طراحی قالب و ساختار فایل هاخب اول باید وردپرس رو دانلود کنید و نصبش کنید که احتمالا بلدید.  بعد که فولدر وردپرس رو تو فولدر htdocs زمپ کپیش کردین بازش کنید. بعد برید تو فولدر wp-content و بعد themes. حالا یک فولدر اونجا درست کنید و برید توش.من اسم فولدر اصلی وردپرس ام رو تو پوشه htdocs زمپ zardo-meshki گذاشتم. اسم فولدری که تو فولدر themes درست کردم هم همونطور.خب حالا فولدر قالبتون رو باز کنید(همون که تو فولدر themes ساختید).حالا بیاید ساختار ابتدایی فایل های یک قالب وردپرس رو بسازیم. فایل هایی که میگم بسازید رو تو همون فولدر قالبتون بسازید.اول یک فایل به اسم index با پسوند php. بسازید.یک فایل با اسم style و پسوند css. (دقت کنید style.css و styles ننویسید).یک فایل با اسم 404 و پسوند php. (این فایل صفحه 404 قالبتون میشه).یک سری فولدر برای css ، js و تصاویر.خب حالا باید ساختار داخل فولدر قالبتون به شکل زیر باشه:فولدر fonts برای فونت هام هست و اجباری نیست و میتونید فونت هاتونو هرجایی بزارین. فولدر mvgt هم اصلا به وردپرس و قالبمون ربطی نداره و به نیازی نیست بسازیدش.حالا برید تو پیشخوان وردپرستون بعد برید تو بخش نمایش و بعد پوسته(از منو سمت راست یا چپ پنل ادمین وردپرستون).حالا دو تا احتمال وجود داره. یا قالبتون رو تو لیست قالب هاتون میبینید یا  اگه اینطور نبود احتمالا پایین تر یه سری ارور نوشته. مثلا نام : فلان توضیح : سند style.css وجود ندارد.اگه همچین ارور هایی داد فایلی که گفته رو چک کنید که اسمش یا پسوندش رو درست نوشتید یا نه. اگه نتونیستید مشکل رو حل کنید تو نظرات همینجا ارور رو بگین یا تو گوگل سرچ کنید.خب اگه با مشکلی برخورد نکردید یا مشکلتون رو حل کردید و خطایی تو صفحه پوسته ها نبود باید صفحه پوسته های وردپرس همچین ظاهری داشته باشه.اون قالب zardo-meshki قالب منه. هر اسمی برای پوشه قالبتون تو فولدر themes گذاشته باشید همون اسم رو نشون میده اما میتونید تغییرش بدین؛ جلوتر توضیح میدم.شخصی سازی نحوه نمایش و انتخاب نحوه نمایش در لیست پوسته هاخب حالا بیاین برای قالبمون یک عکس و توضیحات تایین کنیم. همونطور که بالاتر میبینید الان ظاهر خوبی نداره.برای قرار دادن توضیحات و انتخاب برید تو همون فایل style.css که تو فولدر قالبتون بود. بازش کنید بعد یک کامنت باز کنید و خط به خط موارد زیر رو بنویسید:/*
Theme Name: Zardo Meshki (اسم قالب)
Author: SarvTheme (ناشر یا طراح قالب)
Description: توضیحات قالب
Requires at least: 5.3 (حداقل نسخه مورد نیاز وردپرس)
Tested up to: 5.8 (اخرین نسخه وردپرس که باهاش تست کردین)
Requires PHP: 5.6 (حداقل نسخه موردنیاز پی اچ پی)
Version: 1 (نسخه قالب)
Text Domain: zardo-meshki (این مربوط به لینک قالبتون تو وبسایت وردپرس میشه و اگه قرار نباشه تو مخزن وردپرس منتشرش کنید زیاد مهم نیست)
*/الان فایل style.css من به این شکل هست :حالا اگه تو بخش پوسته های وردپرس با موس برید روی قالبتون بعد روی جزئیات پوسته کلیک کنید با همچین چیزی روبرو میشید(البته طبق چیزی که تو فایل style.css نوشتید):حالا بیاد یه عکس برای قالبمون بزاریم. من قبل از اینکه بیام قالب zardo meshki رو تو وردپرس بریزم ظاهر ابتداییش رو با html ، css و js درست کردم و یه عکس از اون میگیرم و میزارم. اکثر طراح های قالب همینکار رو میکنن.برای گرفتن عکس از افزونه Screen Capture گوگل کروم استفاده کردم.عکسی که من برای قالبم گذاشتمخب بعد از اینکه یه عکس از قالبتون گرفتین اون رو میارین تو فولدر اصلی قالبتون یعنی:فولدر زمپ =&gt; فولدر وردپرستون =&gt; فولدر wp-content =&gt; فولدر themes =&gt; فولدر قالبتوننکتش اینکه باید دقیقا تو فولدر اصلی قالبتون کنار index.php و style.css باشه. بعد اسمش رو به screenshot تغییر بدین. توجه کنید که دقیقا باید اسمش screenshot باشه و پسوندش png یا jpg باشه.حالا ظاهر قالبم به این شکل در اومد:حالا فولدر اصلی قالبم به این شکله:در پایان مقاله آموزش طراحی قالب اختصاصی وردپرس بخش 1خب تا فعلا کد نویسی و کار خاصی برای قالبمون نکردیم و فقط ساختار فولدر اصلی و ظاهر اون تو بخش پوسته های وردپرس رو درست کردیم. تو مقاله های بعدی میایم و یک قالب static که فقط با html ، css و js درست شده رو به یک قالب داینامیک وردپرسی تبدیل میکنیم و کد های php و تابع های وردپرس رو بهش اضافه میکنیم.</description>
                <category>Sarvly</category>
                <author>Sarvly</author>
                <pubDate>Tue, 21 Dec 2021 00:05:46 +0330</pubDate>
            </item>
                    <item>
                <title>بزرگترین تغییرات الگوریتم و سیاست های گوگل در سال 2021</title>
                <link>https://virgool.io/sarvtheme/%D8%A8%D8%B2%D8%B1%DA%AF%D8%AA%D8%B1%DB%8C%D9%86-%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1%D8%A7%D8%AA-%D9%87%D8%A7%DB%8C-%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%D9%88-%D8%B3%DB%8C%D8%A7%D8%B3%D8%AA-%D9%87%D8%A7%DB%8C-%DA%AF%D9%88%DA%AF%D9%84-%D8%AF%D8%B1-%D8%B3%D8%A7%D9%84-2021-yjldqqpmyigs</link>
                <description>گوگل همیشه درحال آپدیت کردن سیاست های رتبه بندی خود است تا مطمئن شود بهترین و امن ترین صفحات در نتایج برتر نمایش داده شوند.دانستن این تغییرات میتواند باعث این شود که بدانید برای بهبود عملکرد خود چه کاری باید انجام دهید و یا از دلیل جابجا شدن رتبه سایت خود مطلع شوید.پس امروز به تاثیر گذار ترین تغییرات الگوریتم های گوگل در سال 2021 میپردازیم؛ این توضیحات شامل موارد زیر میشود:رتبه بندی پاساژ (Passage ranking)در مورد این نتیجه (About this result)بررسی های محصول (Product reviews)مامان! (Mum)اول ایندکس کردن برای موبایل (Mobile-first indexing)تجربه صفحه (Page experience)عنوان های صفحه (Page titles)همچنین به نکاتی برای بهینه سازی با توجه به موارد بالا میپردازیم.بزرگ ترین آپدیت های سئو گوگل در سال 2021رتبه بندی پاساژ (Passage ranking)با این آپدیت گوگل میتواند جدا از ایندکس کردن صفحه های وبسایت ها پاراگراف ها و جملات موجود در سایت را ایندکس کند. با این کار گوگل میتواند به سوالات جستجو کننده ها سریع تر از گذشته پاسخ دهد.مثال زیر را مشاهده کنید؛ گوگل با فرستادن روبات های خود به وبسایت های A و B توانست بفهمد که وبسایت B بهتر میتواند به سوال مورد نظر جواب دهد. در نتیجه بخشی از متن که به سوال مربوط میشود را بالای خود وبسایت قرار داد تا فرد جستجو کننده سریع تر به جواب سوال خود برسد.به هر حال این الگوریتم تغییر زیادی بر روی نتایج کلی ایجاد نمیکند. اما برای بهینه سازی سئو سایت خود برای این الگوریتم میتوانید نکات زیر را در نظر داشته باشید:کلمات کلیدی بلند را مورد هدف قرار دهید.مقاله عمیق و با کیفیت در مورد موضوع بنویسید.ساختار محوا و وبسایت خود را بهینه کنید تا روبات و هوش مصنوعی راحت تر بتواند مطالب شما را درک کند.در مورد این نتیجه (About this result)این الگوریتم برای کربر راهی فراهم میکند که اطلاعاتی در مورد نتیجه جستجو مشاهده کند. زمانی که بر روی دکمه مورد نظر کنار لینک ایندکس شده میزنید اطلاعات زیر را میتوانید مشاهده کنید:زمان اولین باری که آن وبسایت در گوگل ایندکس شد.اتصال شما به سایت امن است یا خیر(احتمالا با توجه به SLL)کدام کلمه از کلماتی که جستجو کرده اید در صفحه وجود دارد.آیا سایت مورد نظر به نتایج دیگر که مشاهده میکنید لینک داده است(و یا بلعکس)زبان صفحهاینکه در مناطق دیگر(شهر یا کشور دیگر) این نتیجه برای کاربران نمایش داده میشود.و در نهایت اگر وبسایت مورد نظر صفحه ویکی پدیا دارد آن را نمایش میدهد.نمونه:خب چه کاری میتوانیم انجام دهیم؟به صورت کلی هیچ روش خاصی برای بهینه سازی برای این الگوریتم نیست. البته میتوانید برای وبسایت خود از SLL استفاده کنید تا کاربر با دیدن بخش &quot;اتصال شما به سایت امن است یا خیر&quot; فرار نکند :)اول ایندکس کردن برای موبایل (Mobile-first indexing)این مورد مدت هاست که وجود دارد و تقریبا از سال 2010 که کاربران موبایل افزایش یافتند به وجود آمد.به صورت کلی گوگل به بهینه بودن وبسایت شما برای موبایل اهمیت میدهد و رسپانسیو بودن و سرعت سایت شما را در موبایل چک میکند. کار هایی که میتوانید انجام دهید:از رسپانسیو (واکنش گرا) بودن وبسایت خود اطمینان حاصل کنید.در بارگذاری تنبل(Crazy Load) برای تصاویر خود استفاده کنید.تصاویر خود را فشرده کنید.پاپ اپ ها و فرم های وبسایت را در موبایل تست کنید.بررسی های محصول (Product reviews)گوگل با این الگوریتم می خواهد وبسایت هایی که فقط محصول را به فروش میرسانند در نتایج برتر قرار نگیرند. این جمله به این معنا است که در بین وبسایت های فروشگاهی به دنبال انهایی میرود که محصول را بررسی کرده  اند و مقالاتی در مورد ان محصول نوشته اند.البته این الگوریتم فقط به مقالات بررسی محصول ختم نمیشود. به صورت گوگل به دنبال وبسایت هایی میرود که توضیحات کاملی در مورد محصول مورد نظر به خریداران و کاربران میدهند.یک نمونه صفحه فروش محصول مناسب :همانطور که میبینید وبسایت به توضیحاتی در مورد اینکه این محصول برای که کسانی مناسب است پرداخته استبرای بهینه سازی وبسایت خود:به کاربران کمک کنید که عاقلانه خرید کنند.محصول را با مدل های قدیمی ترش مقایسه کنید.به توضیحات تخصصی در مورد محصول بپردازید.مامان! (Mum)این الگوریتم برای سوالات پیچیده ای که پاسخ ساده و کوتاهی برایشان وجود ندارد به وجود آمده است.برای مطالعه بیشتر در مورد این الگوریتم کلیک کنید.تجربه صفحه (Page experience)به صورت کلی این مورد الگوریتم جدیدی نیست اما تغییراتی در آن ایجاد شده است.به صورت کلی این مورد به سرعت سایت ربط دارد و به مواردی مانند زمان مورد نیاز برای باز شدن وبسایت مربوط میشود.مواردی که میتوانید برای بهینه سازی وبسایت خود انجام دهید:استفاده از Lazy Loadبهینه سازی و فشرده سازی تصاویرابعاد مناسب برای تصاویر و Embed هابهبود در زمان پاسخگویی سرورعنوان های صفحه (Page titles)مدتی بود که گوگل عنوان صفحه ها را با توجه به مورد جستجو شده تغییر میداد. بعد از مدتی متوجه شد که این مورد به ضرر کاربران و وبمستران است.گوگل تایید کرد که سیستم جدیدی را ایجاد کرده است که یک عنوان کلی برای صفحه به صورت خودکار پیدا میکند و ان را به عنوان، عنوان صفحه انتخاب میکند.البته این سیستم هم مناسب نیست زیرا ممکن است عنوان صفحه را از تگ H1 ، بخشی از متن یا حتی از متن لینک لنگر انتخاب کند. به هر حال زمان نگارش این مقاله این مورد حل نشده است؛ اما میتوانید با استفاده از این لینک اطلاعات بیشتری در مورد این سیستم بدست بیاورید.منبع</description>
                <category>Sarvly</category>
                <author>Sarvly</author>
                <pubDate>Sat, 18 Dec 2021 23:40:57 +0330</pubDate>
            </item>
                    <item>
                <title>چگونه یک برنامه نویس حرفه‌ای/خوب به نظر بیایم؟</title>
                <link>https://virgool.io/sarvtheme/%DA%86%DA%AF%D9%88%D9%86%D9%87-%DB%8C%DA%A9-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D8%AD%D8%B1%D9%81%D9%87-%D8%A7%DB%8C%D8%AE%D9%88%D8%A8-%D8%A8%D9%87-%D9%86%D8%B8%D8%B1-%D8%A8%DB%8C%D8%A7%DB%8C%D9%85-rgyjirm4hvuj</link>
                <description>چگونه یک برنامه یک برنامه نویس حرفه ای باشیم؟تو هر حرفه ای، عادت های خوب خیلی میتونه به نفعمون باشه؛ این جمله تو برنامه نویسی هم صدق میکنه. فرقی نمیکنه که برای وب برنامه نویسی میکنید یا دسکتاپ یا هدفتون کد نویسی برای بازی های ویدیویی یا نرم افزار های دسکتاپ. با یک سری عادت خوب میتونید به یک برنامه نویس حرفه ای تبدیل شید.عادت های مناسب برای برنامه نویسان1 .  فقط برای کامپیوتر کد ننویسیدبرای سیستم/کامپیوتر مهم نیست کامنت گذاشید یا نه یا چطور اسم متغیر ها رو چطور تعریف کردید فقط کد های قابل اجرا که باید اجرا بشن رو اجرا میکنه.طوری کد هاتونو بنویسید که اگه قرار شد چند سال بعد تغییرشون بدین یا فرد دیگه ای قرار باشه اون کد رو تغییر بده معلوم باشه چه خبره. برای هر بخش از کد کامنت بزارین و اون بخش رو توضیح بدین اسم متغیر ها رو هم با معنی بزارید.یک سری  اصول دیگه هم برای راحت شدن خوندن کد ها هم هست که پایین تر میبینید.اصول نام گذاری برای متغیر هابرای مرتبط کردن کد های خود از Space ، Tab و Enter استفاده کنیداز کامنت گذاری برای آگاهی از نحوه کار یا دلیل وجود کد استفاده کنید2 . فانکشن ها و متد ها را طرد نکنیداز فانکشن ها و متد ها برای کد های پرکاربرد خود استفاده کنید. من خودم به شخص زیاد از Function و Method استفاده نمیکنم و این عادت درستی نیست.3 . به پوشه بندی و دسته بندی فایل ها اهمیت بدینبرای فایل هایی که تو یک دسته بندی قرار میگیرن فولدر درست کنید و اون هارو کنار هم بزارید تا وقتی نیاز شد بدونید باید کجا برید. فایل هایی هم که به هم مربوط نیستن رو از هم جدا کنید تا اشتباه نگیرید.درسته ممکن دسته بندی کردن فایل ها تاثیر خاصی رو خروجی نداشه باشه اما مرتب بودن فولدر ها و مرتبط بودن فایل های موجود تو یک فولدر میتونه تو توسعه پذیری و سرعت توسعه پروژه مقداری تاثیر داشته باشه.4 . نسخه منتشر شده را با نسخه درحال توسعه ادغام نکنیداین جمله بیشتر تو طراحی و برنامه نویسی وب مهمه چون اگه تو فایل های سایت تغییری ایجاد کنید کاربر های آنلاین تو سایتتون میتونن تغییرات رو به طور مستقیم ببینن.به نظر من وقتی سایتتون رو تو هاست اپلود میکنید و بعد به گوگل کنسول معرفیش میکنید تا ایندکس شه یه کپی ازش بگیرین و تو یه هاست دیگه یا لوکال هاست بریزیدش و نسخه منتشر شده رو تغییر ندین. بعد هر اپدیتی خواستید تو سایتتون بدین اول تو نسخه کپی که نسخه در حال توسعه به حساب میاد اعمال کنید اگه مشکلی نداشت رو سایت اصلیتون هم تغییرات رو انجام بدین.البته اگه نسخه در حال توسعه رو تو هاست واقعی اپلود کردین اون رو رو به گوگل معرفی نکنید و متا روبات Noindex و Nofollow بهش بدین تا مشکل خاصی از نظر سئو پیش نیاد.5 . چرخ را از اول اختراع نکنیدنیازی نیست که حتما شما از اول کد بزنید. میتونید از فریم ورک ها استفاده کنید.فریم ورک ها کد های ابتدای مورد نیاز شما رو کنار هم دارن و اکثرا از یک ساختار استاندارد(تو طراحی سایت مثل MVC) استفاده میکنن.تو بازی سازی موتور های بازی سازی حکم فریم ورک ها رو دارن البته نسبت به فریم ورک ها تو طراحی سایت خیلی واجب ترن.6 . گیت لب و گیت هاب را جدی بگیریدیکی از اصل های حرفه ای بودن قابلیت همکاری تیمی هست. اگه نتونید به طور تیمی کار کنید از مزیت کار تیمی محروم میشید و مجبورین تنهایی پروژه هاتونو جلو ببرید :)با استفاده از ابزار هایی مثل گیت هاب و گیت لب به پروژه های اوپن سورس کمک کنید یا با اشنا هاتون پروژه هایی رو انجام بدین. با این کار مهارت کار تیمی تون بالا میره و راحت تر میتونین با بقیه همکاری کنین.در پایانخب تو این مقاله بعضی از عادت های خوب توی کار برنامه نویسی رو لیست کردم. البته خودم اکثرشون رو رعایت نمیکنم؛ مثلا اصلا از فریم ورک ها خوشم نمیاد و وقتی میبینم پروژه ای که دارم توسعه میدم بدون فریم ورک از پسش بر نمیام حاضرم انجامش ندم و نیمه کاره رهاش کنم :|به هر حال ممنون که این مقاله رو خوندین امید وارم همیشه موفق باشید.</description>
                <category>Sarvly</category>
                <author>Sarvly</author>
                <pubDate>Wed, 15 Dec 2021 18:37:42 +0330</pubDate>
            </item>
                    <item>
                <title>7 چالش که توسعه دهندگان مستقل بازی های ویدیویی با ان ها روبرو میشوند</title>
                <link>https://virgool.io/@sarvly/7-%DA%86%D8%A7%D9%84%D8%B4-%DA%A9%D9%87-%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%D8%AF%D9%87%D9%86%D8%AF%DA%AF%D8%A7%D9%86-%D9%85%D8%B3%D8%AA%D9%82%D9%84-%D8%A8%D8%A7%D8%B2%DB%8C-%D9%87%D8%A7%DB%8C-%D9%88%DB%8C%D8%AF%DB%8C%D9%88%DB%8C%DB%8C-%D8%A8%D8%A7-%D8%A7%D9%86-%D9%87%D8%A7-%D8%B1%D9%88%D8%A8%D8%B1%D9%88-%D9%85%DB%8C%D9%88%D9%86%D8%AF-sjdtlodecegf</link>
                <description>متاسفانه تعداد زیادی از گیمر ها احساس میکنند این حق را دارند زمانی که از یک بازی خشمگین هستند پیام های توهین آمیزی به توسعه دهندگان آن بازی ارسال کنند. آنها فکر میکنند که این توسعه دهندگان در بهترین وضعیت ممکن قرار دارند؛ اما اصلا به این شکل نیست و توسعه دهندگان بازی های ویدیویی با چالش هایی روبرو میشوند که البته این چالش ها بسته به مستقل بودن یا کار کردن در یک شرکت بزرگ متفاوت است.من نمیتوانم به جای توسعه دهندگان کهنه کار صحبت کنم، اما من خودم تعدادی بازی(حدودا 5تا) به صورت مستقل ساخته‌ام و میخواهم با حرف هایم برخی از تصورات نادرست افراد را برطرف کنم.مزیت مستقل بودن این است که هیچ فشاری از سمت رئیس یا مدیر در مورد اینکه تا که زمانی وقت دارید بازی را بسازید وجود ندارد. اما در عوض مشکلات بسیاری هنگام کار کردن به صورت مستقل وجود دارد که یکی از انها این است که کسب در آمد بسیار سخت میشود.در ادامه به 7 چالش که توسعه دهندگان مستقل بازی های ویدیویی با ان ها روبرو میشوند میپردازم.1 . چرخ را از اول اختراع نکنیدبرای بسیاری از توسعه دهندگان بازی های ویدیویی، مخصوصا ان هایی که از خوب کد نویسی سر در میاورند وسوسه ای وجود دارد که از اول شروع کنند، برای مثال موتور بازی سازی خود را بسازند. شاید موتور های بازی سازی که وجود دارند را دوست ندارند یا فکر میکنند کار با موتوری که خودشان ساخته اند آسان تر است.موتور هایی مانند Unreal و Unity ابزار های بسیاری دارند که ساخت انها از اول سال ها طول میکشد.همچنین ممکن است ما این عمل را برای موضوعات کوچکتر انجام دهیم. برای مثال ممکن است ما ابزار های پیش‌فرض که وجود دارند را بررسی نکنیم و فقط فرض کنیم که باید خودمان چیزی بسازیم. این فرضیات را باید از خود دور کنیم و فقط روی بازی خود تمرکز کنیم.2 . فلج شدن هنگام انتخابموتور های بازی سازی بسیاری وجود دارد. همچنین ابزار های بسیاری نیز برای طراحی محیط و کاراکتر و چیز های دیگر وجود دارد. هنگام انتخاب کردن بین موتور ها و ابزار ها سردرگم شدن بسیار آسان است. ابتدا باید فکر کنید چه بازی میخواهید بسازید، تک نفره یا چند نفره؟ میخواهید چه نوع گرافیکی داشته باشد؟ منطق بازی چقدر پیچیده است؟اولین بازی که من ساختم یک بازی تخته ای آنلاین ساده بود پس نیاز به موتور بازی سازی نداشتم. سپس از انجا که از قبل سابقه کار با جاوا اسکریپت را داشتم، یادگیری یونیتی را شروع کردم و شروع به ساخت بازی های پیچیده تر کردم.زمانی که میدانید چه بازی میخواهید بسازید میتوانید با در نظر گرفتن مهارت خود یک موتور بازی سازی انتخاب کنید. اگر زیاد از کد نویسی سر در نمیاورید بهتر است از موتور های قدرتمند مانند Unity استفاده کنید زیرا ابزار های بسیاری به شما ارائه میکند که شما را از کد نویسی خلاص میکند. اما اگر به کد نویسی مسلط هستید میتوانید از موتور های دیگر نیز استفاده کنید.3 . باید محدوده را کوچک نگه داریداگر میخواهید بازی که همیشه رویایش را داشتید را بسازید و امکانات یا تجربه کافی برای ساخت ان بازی را ندارید، ممکن است ان بازی را ناقص و نا تمام بسازید. بهتر است یک بازی کوچک و ساده داشته باشید تا پروژه وسیع ناقص.4 . مراقب کار های قراردادی باشیدبعد از اینکه چند بازی برای خود ساختید، ممکن است وسوسه شوید و به دنبال کار به عنوان یک توسعه دهنده بازی ویدیویی بروید.ممکن است شما بیش از حد کار کنید و حقوق کمتر از حد مناسب بگیرید؛ این یکی از مشکلات کار کردن برای یک شخص یا شرکت است.5 . دست کم گرفتن چیز هاوقتی در حال انجام بخش های سرگرم کننده توسعه بازی خود هستید ممکن است زمان زود بگذرد. سپس وارد دوره جدیدی میشوید که باید بازی خود را تبلیغ کنید. یک توسعه دهنده بازی ویدیویی مستقل همان اندازه که وظیفه توسعه بازی را دارد، همان اندازه هم وظیفه تبلیغ ان را دارد. ممکن است در زمانی که در حال تبلیغ هستید احساس کنید که دارید در شبکه های اجتماعی فریاد میزنید تا یک استریمر بازی شما را استریم کند.این دوره فقط بازاریابی نیست. پخش یک بازی میتواند یک فرایند پیچیده باشد. باید هفته ها منتظر بمانید تا بازیکن هایی بازی شما را انجام دهند سپس با نظرات انها تازه میتوانید مشکلات اصلی بازی را حل کنید. برای مثال UI را در نظر بگیرید، باید یک گیمر با ان کار کند تا چیز هایی که مشکل دارند را پیدا کند.6 . پیدا کردن یک تیم خوب مشکل استاین نکته برای هر پروژه ای صدق میکند. ما اغلب دنبال یک تیم برای همکاری در توسعه بازی هستیم. متاسفانه پیدا کردن یک تیم مناسب کاری بسیار دشوار است.من تصمیم گرفته ام که به ساخت بازی ویدیویی به صورت تکی پایبند باشم چون هروقت سعی میکنم با یک تیم کار کنم همه چیز به هم میخورد. ممکن است بعضی از اعضا تیم انگیزه خود را از دست بدهند یا یک دفعه ناپدید شوند. تقریبا همیشه هیچ ساختار مشخصی در مورد اینکه که کسی پروژه را مدیریت میکند وجود ندارد.7 . پول در اوردن بسیار سخت استدر امد من از 3 بازی اولم 0 دلار بود. درست است من سخت تلاش میکردم اما هیچ تلاشی برای کسب در امد از انها نکردم. البته اگر هم میکردم شک دارم میتوانستم به مقداری پول برسم. بازی چهارم من یک بازی VR بود حدود 500 دلار برایم سود داشت. یکی از دلایل این اتفاق این بود که بازی چهارمم را در Steam منتشر کردم. استیم مخاطبین زیادی دارد پس شانس شما برای رسیدن به در آمد در انجا زیاد است. اما تنظیم و قرار دادن بازی در استیم هم دردسر هایی دارد.منبع</description>
                <category>Sarvly</category>
                <author>Sarvly</author>
                <pubDate>Mon, 13 Dec 2021 21:49:16 +0330</pubDate>
            </item>
                    <item>
                <title>مراحل توسعه بازی های ویدئویی - 6 مرحله شروع طراحی بازی های ویدئویی برای تازه کاران</title>
                <link>https://virgool.io/@sarvly/6-%D9%85%D8%B1%D8%AD%D9%84%D9%87-%D8%B3%D8%A7%D8%AE%D8%AA-%D8%A8%D8%A7%D8%B2%DB%8C-%D9%88%DB%8C%D8%AF%DB%8C%D9%88%DB%8C%DB%8C-snv1rw8rjsyq</link>
                <description>حال ابزار ها و منابع برای طراحی و توسعه بازی های ویدئویی بسیار بیشتر از گذشته شده است. این به این معنی است که حال توسعه دهندگان بازی میتوانند بازی هایی بسازند که در گذشته اصلا امکان طراحی و توسعه انها ممکن نبود. البته وجود ابزار های مختلف بسیار ممکن است تازه کاران را سردرگم کند.در این مقاله به مراحل توسعه بازی های ویدئویی و 6 مرحله اصلی شروع طراحی بازی های ویدیویی میپردازیم.برای اینکه از سردرگمی خلاص شوید و در مسیر درست قرار بگیرید من توضیحات و کار هایی که برای من مفید بوده اند را برایتان توضیح میدهم. همچنین نحوه انتخاب ابزار های مناسب مانند موتور بازی سازی را شرح میدهم.6 مرحله شروع طراحی بازی های ویدئویی1. یک ایده(هرچند کوچک) پیدا کنیدبازی ساز های تازکار اغلب به دنبال ساخت بازی های مشابه به بازی هایی که به انها علاقه دارند میروند. برای مثال ممکن است اگر شما به بازی Civilization یا Stardew Valley علاقه داشته باشید همان اول کار به دنبال ساخت یک بازی مشابه به ان بازی بروید.متاسفانه شما برای چنین پروژه بزرگ و پیچیده ای اماده نیستید. توسعه بازی های ویدئویی یک مهارت دشوار است و با تمرین رشد میکند. مانند نوازندن پیانو؛ شما باید اول از زدن اهنگ های ساده شروع کنید و سپس سعی به زدن اهگ های پیچیده و سخت تر کنید.بهترین راه شروع پیدا کردن ایده بازی های کوچک و توسعه انها است که به ویژگی های اصلی بازی محدود هستند. برای مثال میخواهید یک بازی پلتفرمر بسازید؟ از ابتدا لازم نیست دشمن و یا مکانیزم هایی مانند مکانیزم شلیک بازیکن را طراحی کنید. تنها نیاز است راه رفتن کاراکتر، پریدن و شرط برد بازی را طراحی کنید.این روش بهترین راه حرفه ای شدن در طراحی و توسعه بازی های ویدیویی است. اگر شما یک بازی کامل طراحی کنید، هرچقدر ساده هم باشد امید و انگیزه شما برای یادگیری بیشتر میشود.2. یک فریم ورک و یا موتور بازی سازی انتخاب کنیددر این مرحله باید یک موتور بازی سازی و یا فریم ورک انتخاب کنید.موتور های بازی سازی مانند Unreal Engine و Unity دارای رابط گرافیکی کاربری یا همان UI هستند.فریم ورک ها تنها کد های اماده ای هستند که احتمالا در ساخت باز های ویدیویی به انها احتیاج پیدا خواهید کرد. اکثر فریم ورک ها ازادی بیشتری نسبت به موتور های بازی سازی به شما میدهند و سبک تر هستند.احتمال سردرگم شدن هنگام انتخاب موتور بازی سازی یا فریمورک بسیار است. راه صحیح انتخاب این است که بر روی هدف و بازی خود تمرکز کنید و مناسب ترین ابزار را انتخاب کنیدغیر برنامه نویساناگر تجربه زیادی از برنامه نویسی ندارید پیشنهاد میکنم از موتور های بازی سازی استفاده کنید. برای مثال موتور بازی سازی Godot Engine و Unity با استفاده از UI نیاز به برنامه نویسی را کمتر کرده اند.  البته شما باز هم باید یک زبان برنامه نویسی را بیاموزید؛ اما با استفاده از موتور بازی سازی برنامه نویسی را برایتان اسان تر میشوند.برنامه نویساناگر تجربه زیادی از برنامه نویسی دارید و بر یک زبان برنامه نویسی مناسب برای بازی سازی تسلط دارید میتوانید از فریم ورک ها نیز استفاده کنید.من به افرادی که از فریم ورک ها استفاده میکنند پیشنهاد میکنم که حداقل یک بازی را با موتور بازی سازی بسازند تا سطح شیرین بودن و جذابیت این کار را درک کنند.سه بعدی یا دو بعدیاگر هدف شما ساخت بازی های سه بعدی هم باشد بهتر است که با ساخت بازی های دو بعدی شروع کنید زیرا ساخت بازی های دو بعدی اسان تر است و روند شروع یادگیری و کسب تجربه برای شما اسان تر میشود.به صورت کلی هدف شما یادگیری است. اگر با بازی های دو بعدی شروع کنید و کمی تجربه کسب کنید روند انتقال شما به ساخت بازی های سه بعدی اسان تر میشود.تصویری از یک بازی ساخته شده توسط نویسنده3. یک نمونه اولیه طراحی کنیدحال نوبت ان رسیده که به صورت عملی شروع به ساخت و توسعه بازی خود کنید. هدف شما ساخت بازی خود با حداقل ویژگی ها و مکانیزم ها است. منظور این است که فقط مکانیزم و بخش های اصلی بازی را طراحی کنید.نگران صدا ها و گرافیک بازی نباشید. برای هر چیز در بازی مانند کاراکتر اصلی از یک مربع ساده استفاده کنید. صدا ها را نیز در اینده به بازی اضافه خواهید کرد.این کار به شما کمک میکند تا در ابتدا بازی خود را محدود کنید و بر روی مکانیزم های اصلی تمرکز کنید. برای مثال اگر درحال ساخت یک بازی پلتفرمر هستید تنها نیاز دارید که مکانیزم هایی مانند راه رفتن و پریدن را طراحی کنید و چیز های مختلفی را مانند سرعت راه رفتن و... را تست کنید.مکانیزم های اصلی بازی همیشه تاثیر گذار ترین بخش بازی هستند. هرچقدر هم که یک بازی بزرگ و پر جزئیات باشد این ویژگی ها نمیتوانند جای مکانیزم های اصلی را پر کنند. پس هنگام ساخت نمونه اولیه مکانیزم های اصلی را طراحی کنید و ان ها را تست کنید.4. Assets  ها را پیدا کنیدحال نوبت ان رسیده است که صدا های بازی و طراحی های گرافیکی را به ان اضافه کنید. اگر به صدا برداری و طراحی گرافیکی علاقه دارید میتوانید ان ها را خودتان طراحی کنید؛ در غیر این صورت میتوانید ان ها را از سایت هایی مانند itch.io و opengameart.org پیدا کنید.صدا های مختلف را تست کنید تا متوجه شوید چقدر بر جذابیت بازی تاثیر دارد.یکی از بهترین منابع پیدا کردن صدا رایگان برای بازی و انیمیشن وبسایت Free Sound است.تصویری از یک بازی ساخته شده توسط نویسنده5. بازی خود را کامل کنیدمنظور از کامل کردن بازی ایجاد یک حلقه از برد، باخت و شروع دوباره است. البته در همه بازی های ویدیویی نیاز نیست مکانیزم برد را طراحی کنید. برای مثال فرض کنید در بعضی بازی های سروایوال هرچقدر بیشتر زنده بمانید امتیاز بیشتری میگیرید و بردی وجود ندارد.زمانی که یک بازی را کامل کنید ارزش واقعی ان را درک میکنید. یکی عمده ترین مشکل بازی سازان تازه ساز این است که هرگز یاد نمیگیرند که یک بازی را کامل کنند. و زمانی به خودشان میایند که میبینند تعداد بسیاری پروژه هرچند جذاب اما غیر کامل دارند.6. دوباره شروع کنید!تبریک میگم شما اولین بازی خود را ساختین؛ نه تنها ان را ساختین بلکه ان را کامل هم کردید. حال شما بسیار جلو تر از بسیاری از افرادی که میخواهند توسعه بازی های ویدیویی را یاد بگیرند پیش رفته اید.حالا ادامه بده! بهترین راه یادگیری طراحی بازی ساخت و کامل کردن پروژه های هرچند ساده و کوچک است. چیز هایی که قبلا تست نکرده اید را تست کنید و به بازی خود اضافه کنید.منبع</description>
                <category>Sarvly</category>
                <author>Sarvly</author>
                <pubDate>Fri, 26 Nov 2021 21:20:59 +0330</pubDate>
            </item>
                    <item>
                <title>سخت ترین زبان های برنامه نویسی بخش 2</title>
                <link>https://virgool.io/sarvtheme/%D8%B3%D8%AE%D8%AA-%D8%AA%D8%B1%DB%8C%D9%86-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%A8%D8%AE%D8%B4-2-by8d7ruf5afg</link>
                <description>امروز ادامه لیست قبلی یعنی سخت ترین زبان های برنامه نویسی رو معرفی و بررسی میکنم.Ook!این زبان شباهت زیادی به Cow Programming Language داره؛ اما تعداد تکه کد هاش از Cow خیلی کمتره، همه تکه کد ها با &quot;Ook&quot; شروع میشن و تفاوتشون سه تا کاراکتر &quot;.&quot; &quot;!&quot; &quot;؟&quot; هست که با این کاراکتر ها به پایان میرسن. نکته جالب اینجاس که نمایش Hello World با Ook به کد کمتری نسبت به Cow احتیاج داره. پس اگه میخواین بین Ook و Cow یکی رو یاد بگیرید من پیشنهاد میکنم Ook رو یاد بگیرید :)نمایش Hello World با Ook! :Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. + حدود 5 خط دیگه Ook D:JSFuckاین زبان شباهت زیادی به اسم و سینتکس BrainFuck داره فرقش اینکه با JavaScript کامپایل میشه. JSFuck فقط 6 تا کاراکتر رو درک میکنه &quot;[&quot; &quot;]&quot; &quot;(&quot; &quot;)&quot; &quot;!&quot; &quot;?&quot;. شما میتونین وارد وبسایت jsfuck.com بشین و کد های JavaScript خودتونو بنویسید و خودش کد هایی که نوشتین رو به زبان JSfuck ترجمه میکنه.معادل Alert&#40;Hello World&#41; با JS Fuck:[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+  + حدود 20 خط دیگه از این کاراکتر ها D :LolCodeسینتکس Lolcode شبیه زبان انگلیسی هست اما فکر نکنم کسی بفهمه چی میگه؛ کلا نمیفهمم تو سینتکسش چه خبره.نمایش Hello World با LolCodeHAI
CAN HAS STDIO?
VISIBLE “HAI WORLD!”
KTHXBYEPietزبان Piet توسط David Morgan ابداع شده و بیت مپ‌های آن مانند یک هنر انتزاعی است.(والا نفهمیدم چه خبره)نمایش Hello World با Piet:Chefاین زبان هم توسط David Morgan ابداع شده و تکه کد های Chef شبیه راهنمای اشپزی به زبان انگلیسی هست. واقعا ایده جالبی هست.نمایش Hello World با Chef:Put cinnamon into 2nd mixing bowlاما در پایان مقاله سخت ترین زبان های برنامه نویسی بخش 2این زبان ها هم مثل زبان های قبلی اصلا هیچ استفاده ای ندارن. شاید اول بنظرتون یاد گرفتن زبان هایی مثل Cow و Ook برای سرگرمی میتونه جالب باشه اما به نظرتون چند سال طول میکشه تا بتونید نوشتن Hello World با این زبان ها رو درک یا حفظ کنید؟ این زبان ها جزو دسته Esotric Programming Language به معنی &quot;زبان های برنامه نویسی محرمانه&quot; هستن.</description>
                <category>Sarvly</category>
                <author>Sarvly</author>
                <pubDate>Mon, 23 Aug 2021 13:18:47 +0430</pubDate>
            </item>
                    <item>
                <title>سخت ترین زبان های برنامه نویسی</title>
                <link>https://virgool.io/sarvtheme/%D8%B3%D8%AE%D8%AA-%D8%AA%D8%B1%DB%8C%D9%86-%D8%B2%D8%A8%D8%A7%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-ozahwa1t3xeu</link>
                <description>امروز لیستی از سخت ترین زبان های برنامه نویسی اماده کردم؛ همه این زبان ها جزو سخت ترین یا بهتر بگم عجیب ترین زبان های برنامه نویسی کره زمین هستن(شاید هم کل جهان کسی چی میدونه :) ).INTERCALیکی از رو مخ ترین نکات INTERCAL اینکه بعضی از تکه کد های این زبان خیلی مودبانه هستن و باید با این زبان عجیب غریب خیلی مودبانه و دوستانه صحبت کنیم. مثلا هر کد با &quot;Please Do&quot; با معنی &quot;لطفا انجام دهید&quot; شروع و با &quot;Plase Give UP&quot; به معنی &quot;لطفا تسلیم شوید&quot;  به پایان میرسه.نمایش Hello World با INTERCALPLEASE DO ,1 &lt;- #13
        DO ,1 SUB #1 &lt;- #238
        DO ,1 SUB #2 &lt;- #112
        DO ,1 SUB #3 &lt;- #112
        DO ,1 SUB #4 &lt;- #0
        DO ,1 SUB #5 &lt;- #64
        DO ,1 SUB #6 &lt;- #238
        DO ,1 SUB #7 &lt;- #26
        DO ,1 SUB #8 &lt;- #248
        DO ,1 SUB #9 &lt;- #168
        DO ,1 SUB #10 &lt;- #24
        DO ,1 SUB #11 &lt;- #16
        DO ,1 SUB #12 &lt;- #158
        DO ,1 SUB #13 &lt;- #52

        PLEASE READ OUT ,1
PLEASE GIVE UPCow Programming Languageزبان برنامه نویسی گاو، 24 تا تکه کد داره که همشون از 3 حرف &quot;MOO&quot; تشکیل شدن و تنها تفاوت تکه کد ها بزرگ و کوچک بودن حرف های &quot;MOO&quot; هست. نمایش Hello World با استفاده از زبان Cow:MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO+ حدود 10 خط &amp;quotMOO&amp;quot دیگه! D:زبان برنامه نویسی BrainFuckهر چقدر جلو تر میریم اسم زبان ها و سینکتسی که دارن عجیب تر میشه؛ در مورد اسم این زبان که حرفی نیست اما سینتکس Brainfuck نسبت به Cow و INTERCAL واقعا عجیبه. توی سینتکس این زبان فقط 8 دستور وجود  داره که از علائم ریاضی و نگارشی هستن. &quot;[ ] &lt; &gt; + - . ,&quot;نمایش Hello World با Brainfuck: من تو گوگل دنبال Hello World Brain Fuck بودم اینو از ویکی پدیا پیدا کردم فکر کنم درست نباشه؛ نوشته های انگلیسی هم که توش هست کامنت هستن و جزوی از کد نیستن.[ This program prints &amp;quotHello World!&amp;quot and a newline to the screen, its
  length is 106 active command characters [it is not the shortest.]

  This loop is a &amp;quotcomment loop&amp;quot, it&#039;s a simple way of adding a comment
  to a BF program such that you don&#039;t have to worry about any command
  characters. Any &amp;quot.&amp;quot, &amp;quot,&amp;quot, &amp;quot+&amp;quot, &amp;quot-&amp;quot, &amp;quot&lt;&amp;quot and &amp;quot&gt;&amp;quot characters are simply
  ignored, the &amp;quot[&amp;quot and &amp;quot]&amp;quot characters just have to be balanced.
]
+++++ +++ Set Cell #0 to 8
[
  &gt;++++               Add 4 to Cell #1; this will always set Cell #1 to 4
    [                   as the cell will be cleared by the loop
      &gt;++             Add 2 to Cell #2
      &gt;+++            Add 3 to Cell #3
      &gt;+++            Add 3 to Cell #4
      &gt;+              Add 1 to Cell #5
        &lt;&lt;&lt;&lt;-           Decrement the loop counter in Cell #1
    ]                   Loop till Cell #1 is zero; number of iterations is 4
  &gt;+                  Add 1 to Cell #2
  &gt;+                  Add 1 to Cell #3
  &gt;-                  Subtract 1 from Cell #4
  &gt;&gt;+                 Add 1 to Cell #6
    [&lt;]                 Move back to the first zero cell you find; this will
                        be Cell #1 which was cleared by the previous loop
    &lt;-                  Decrement the loop Counter in Cell #0
] Loop till Cell #0 is zero; number of iterations is 8

The result of this is:
Cell No : 0 1 2 3 4 5 6
Contents: 0 0 72 104 88 32 8
Pointer : ^

&gt;&gt;. Cell #2 has value 72 which is &#039;H&#039;
&gt;---. Subtract 3 from Cell #3 to get 101 which is &#039;e&#039;
+++++++..+++. Likewise for &#039;llo&#039; from Cell #3
&gt;&gt;. Cell #5 is 32 for the space
&lt;-. Subtract 1 from Cell #4 for 87 to give a &#039;W&#039;
&lt;. Cell #3 was set to &#039;o&#039; from the end of &#039;Hello&#039;
+++.----.----. Cell #3 for &#039;rl&#039; and &#039;d&#039;
&gt;&gt;+. Add 1 to Cell #5 gives us an exclamation point
&gt;++. And finally a newline from Cell #6MalBlogeاین زبان توسط Ben Olmstead نوشته شده و سینتکس خیلی سخت و عجیبی داره. در حدی که Ben Olmstead تا حالا هیچ برنامه ای با این زبان ننوشته؛ برای پی بردن به سینتکس Malbloge نحوه نمایش Hello World با Malbloge رو ببینید :(&lt;`#9]~6ZY327Uv4QsqpMn&amp;+Ij&amp;quot&#039;E%e{Ab~w=_:]Kw%o44Uqp0/Q?:`H%c#DD2^WV&gt;gY;dts76qKJImZkjWhitespaceتو دنیای Withespace هر فاصله و Enter مفهومی دارن، هر تعداد از Space های کناره هم مثل کلمه و تکه کد عمل میکنه و از اونجایی که نمیتونیم از Space برای فاصله گذاری بین کلمات استفاده کنیم، حرف های T و S وظیفه فاصله گذاری و مشخص کردن مرز بین کلمات رو دارن.اما در پایان مقاله سخت ترین زبان های برنامه نویسیاین زبان ها احتمالا هیچ استفاده عملی ندارن ( البته 100% هیچ استفاده ای ندارن) و فقط برای تفریح و سرگرمی به وجود اومدن.</description>
                <category>Sarvly</category>
                <author>Sarvly</author>
                <pubDate>Sun, 22 Aug 2021 23:27:57 +0430</pubDate>
            </item>
            </channel>
</rss>