شاید هنگام رویاپردازی در مورد پروژه ساخت بازی ویدیویی خود به این فکر کردهاید که اگر آن را به واقعیت تبدیل کنید بسیار شگفت انگیز و البته سودمند است. البته، میتوانید یک استودیوی کوچک را استخدام کنید تا بازی را برای شما بسازد، اما بیش از 1000 دلار هزینه دارد. در عوض، بسیاری مسیر ساخت بازیهای رایانهای را خودشان انتخاب میکنند، زیرا این کار فقط وقت شما را خرج میکند. با این حال، هنوز هم همین سوال وجود دارد: چگونه میتوانید بازی سازی را شروع کنید؟ این سوال با انبوهی از سوالات دیگر نیز همراه است. در این راهنما، هدف ما ارائه یک درک پایه از مراحل بازی سازی است و شما را در مسیر درست هدایت میکند تا بتوانید از طریق منابع ارائه شده این کار را انجام دهید. بنابراین، اگر آماده یادگیری نحوه ساخت یک بازی هستید، همراه ما باشید.
چرخه توسعه بازی چیست؟
توسعه بازی ویدیویی فرآیند ساخت بازی ویدیویی است. در توسعه بازی، یک چرخه کلی وجود دارد که بسیاری از پروژههای بازی از آن پیروی میکنند، چه در مورد یک استودیوی عظیم 200 نفره صحبت کنیم یا یک پروژه مستقل انفرادی. برای بازی سازی شما با یک مفهوم شروع میکنید و با ایجاد، برنامه نویسی، مهندسی، رندر، ضبط و غیره به یک بازی کاملاً کارآمد میرسید. در این مقاله، شما را با مراحل گام به گام نحوه ساخت بازی و نکات مهمی را که برای ساخت بازی خود باید در نظر بگیرید آشنا میکنیم.
مراحل بازی سازی
محبوبیت ساخت بازیهای ویدیویی به شدت افزایش یافته است. دلایل متعددی به این امر کمک کرده از جمله گسترش مداوم صنعت بازی که یکی از آشکارترین موارد است. افراد بیشتری علاقهمند به دانستن آنچه که در پشت صحنه بازیهای ویدیویی میگذرد، شدهاند. به احتمال زیاد اینترنت نیز دلیل دیگری است. پیدا کردن همه چیز واقعا آسان است! آموزشها، بازیها و مقالهها نشان میدهند که داشتن یک طراح موفق بازی مستقل چقدر لذت بخش است. چرخه زمانی که صحبت از ساخت بازی میشود به شرح زیر است:
1. فکر کردن به یک ایده
ساختن بازی خود از پایه ممکن است بسیار سرگرم کننده باشد، اما کار زیادی نیز دارد. با به دست آوردن یک نمای کلی از مراحل مربوط به ساخت بازی شروع کنید. حتی ابتداییترین بازی نیز نیاز به تخیل و مفهوم سازی دارد. این ایده باید به یک سند طراحی دقیق تبدیل شود، که سپس برای توسعه بازی مورد نظر شما مورد استفاده قرار میگیرد.
2. طراحی بازی
در این مرحله به فکر توسعه بیشتر آن ایده، ایجاد اسناد، و فرمول بندی هر یک از سیستمها، سطوح، سبک هنری و غیره باشید.
3. ساخت بازی
اینجا جایی است که شروع به ساخت بازی میکنید. بسیاری از مردم دوست دارند یک نسخه بسیار ساده از بازی خود را با گرافیک اولیه توسعه دهند تا قبل از پرداختن به همه چیز، به سرعت احساس کنند که بازی چگونه کار میکند.
4. تست بازی
نمایش بازی به افراد دیگر. بهعنوان توسعهدهنده، شما از قبل همه چیز را در مورد بازی میدانید، بنابراین برای اینکه بدانید بازی کار میکند، بازی سرگرمکننده است، درک آن آسان است و غیره، باید افراد آن را آزمایش کنند. این فرآیند همچنین باید به طور منظم انجام شود زیرا تغییرات جدید در بازی ممکن است نحوه بازی افراد را تغییر دهد.
5. نهایی کردن بازی
به یک معنا، هیچ بازی هرگز تمام نشده است. یا وقت شما تمام میشود یا پول. در نهایت، شما نیاز دارید، یا احساس میکنید که بازی را به پایان برسانید.
6. انتشار بازی
این زمانی است که بازی خود را برای دیدن شدن در جهان منتشر میکنید. اکنون که بازی شما کامل شده است، احتمالاً میخواهید آن را به چند نفر نشان دهید. خوشبختانه، ما در زمانی زندگی میکنیم که قرار دادن بازی آسانتر از همیشه است. پلتفرمهای آنلاین زیادی برای انتشار وجود دارد. برخی رایگان و برخی پولی هستند. در اینجا لیستی از آن پلتفرمها، الزامات و نحوه شروع به کار آمده است:
- io یک پلتفرم محبوب برای توسعه دهندگان مستقل است. انتشار بازی خود در اینجا رایگان است.
- Game Jolt یکی دیگر از پلتفرمهای محبوب برای توسعه دهندگان مستقل است که به شما امکان میدهد بازی خود را به صورت رایگان در آنجا منتشر کنید.
- فروشگاه اپیک گیمز یک توزیع کننده بازیهای رایانهای نسبتاً جدید و رو به رشد، مشابه استیم است. فرمی را برای Epic تکمیل کنید تا بازی شما را در نظر بگیرد.
- گوگل پلی استور فروشگاهی برای اپلیکیشنهای اندروید است. هزینه ثبت نام 25 دلار میباشد.
- اپ استور اپل یکی از بزرگترین پلتفرمهای توزیع اپلیکیشن موبایل است. 99 دلار در سال برای انتشار.
- فروشگاه پلی استیشن یک فروشگاه آنلاین برای بازیهای پلی استیشن است. رایگان برای درخواست.
- فروشگاه مایکروسافت یک فروشگاه آنلاین برای بازیهای ایکس باکس و رایانه شخصی است. رایگان برای درخواست.
- فروشگاه بازی نینتندو یک فروشگاه آنلاین برای بازیهای سوییچ و دی اس است. رایگان برای درخواست.
- فروشگاه Oculus یک فروشگاه آنلاین برای بازیهای واقعیت مجازی است که از هدست Oculus استفاده میکند. رایگان برای درخواست.
- استیم یک فروشگاه آنلاین برای بازیهای VR است. 100 دلار از طریق Steam Direct.
نکات مهم بازی سازی
بازی یک صنعت پویا و پر از فرصت است. راههای زیادی برای طی کردن در دنیای ساخت بازی وجود دارد و یافتن مسیری که برای شما مناسب باشد بسیار مهم است. در این مسیر چیزهای زیادی کشف خواهید کرد، با در نظر گرفتن نکات زیر به حرفه رویایی خود برسید.
طیف توسعه بازی
یک طرف را انتخاب کنید. سطح پایین یا سطح بالا. اگر قبلاً این کار را نکردهاید، میخواهید بفهمید که کدام طرف از طیف توسعه بازی بیشتر مورد علاقه شماست. در سطح پایین، محصول شما موتور بازی و در سطح بالا، خود بازی است.
- سطح پایین، جایی که شما برنامه نویسی موتور را انجام خواهید داد.
- سطح بالا، جایی که با استفاده از موتورهای از پیش ساخته بازی میسازید.
موتورهای بازی از پیش ساخته شده
امروزه موتورهای بازی از پیش ساخته شده مانند Unity و Unreal به شما امکان میدهند بدون نیاز به دانستن برنامه نویسی موتور بازی بسازید. اگر علاقه ندارید واقعاً نیازی به یادگیری آن ندارید. شما فقط میتوانید از یک موتور از پیش ساخته استفاده کنید. هر دو طرف این طیف برای توسعه بازی بسیار مهم هستند. آنها به یکدیگر نیاز دارند زیرا یک موتور به تنهایی یک بازی نیست و به طور مشابه، شما نمیتوانید یک بازی بدون موتور بسازید. همپوشانیهای زیادی وجود دارد، اما دامنه دانش متفاوتی را شامل میشود.
آیا شما به خود فناوری علاقه دارید یا میخواهید بازی بسازید؟
engine programming مربوط به همه چیزهایی است که در زیر کاپوت در یک بازی اتفاق میافتد. این شامل برنامه نویسی گرافیکی، برنامه نویسی فیزیک و انیمیشنهای برنامه نویسی میشود. بسیاری از این کارها روی جلوههای بصری بازی مانند سایهها و نور و مکانیک یک فرد در حال دویدن تأثیر میگذارد. اما شما همچنین نگران جزئیات فنی مانند بهینه سازی سرعت و عملکرد، مدیریت حافظه و کیفیت خواهید بود.
به عنوان مثال، متوجه خواهید شد که آیا بازی میتواند روی پلی استیشن 5 به همان سرعتی که روی رایانه اجرا میشود اجرا شود یا خیر. شرکتهایی که از موتورهای از پیش ساخته شده استفاده نمیکنند، به توسعهدهندگانی در تیم خود نیاز دارند تا روی موتور داخلیشان کار کنند، جایی که شما وارد آن میشوید. همچنین میتوانید ابزارهایی بسازید که میتوانند به هنرمندان در ساختن بخشهایی از بازی کمک کنند (مثلاً برای اینکه درختان تاب بخورند یا گلها شکوفا شوند).
بدون وارد شدن به مسائل فنی بازی بسازید
اگر فقط به ساخت یک بازی علاقهمند هستید و به موتور بازی دسترسی دارید، میتوانید بدون وارد شدن به مسائل فنی بازی بسازید. در هر صورت، موضوعاتی که مربوط به برنامه نویسی موتور هستند هنوز در زیر کاپوت این ابزارها درگیر هستند، اما محدودیتی برای سفارشی کردن آنها وجود دارد. به عنوان مثال، شما درگیر مدیریت حافظه نیستید، اما همچنان در حال یادگیری سیستم فیزیک و سیستم گرافیکی آن موتور خاص هستید.
انتخاب سمتی که برای شما رضایت بخش است ممکن است نیازمند کاوش باشد. اگر اهل فن آوری هستید و متوجه میشوید که چگونه کار میکنند، ممکن است از engine programming لذت ببرید. اگر به جزئیاتی که بر ظاهر و اجرای بازی تأثیر میگذارند اهمیتی نمیدهید، فقط از موارد سطح پایین صرفنظر کنید و با یک موتور بازی از پیش ساخته بازی بسازید. نکته این است که اگر به جزئیات سطح پایین علاقه دارید، نمیتوانید با ابزار از پیش ساخته Unreal Engine و Unity به اکثر آنها دسترسی پیدا کنید.
ترکیب زیبا از خلاقیت و مهندسی
اگر هر دوی این نقشها به یک اندازه جذاب به نظر میرسند، میتوانید نقش بینالمللی بودن یک هنرمند فنی را نیز کشف کنید. اگر میخواهید بازی بسازید، اما آنقدر برنامهنویسی را دوست ندارید که بخواهید در تمام روز به کدها خیره شوید، این نقش شامل ترکیبی زیبا از خلاقیت و مهندسی است. شما می توانید مدل سازی سه بعدی و برنامه نویسی را با هم ترکیب کنید. شما ممکن است برنامه نویسی سطح پایین (مثلاً برنامه نویسی گرافیکی) انجام دهید، اما نیازی به فرو رفتن عمیق در نگرانیهای سطح پایین معمولی مانند مدیریت حافظه ندارید.
تمرکز و تخصص خود را محدود کنید
اگر به دنبال engine programming هستید، این توصیه کمی مرتبطتر است، اما اگر به ساخت بازی علاقه مند هستید نیز کاربرد دارد. همه چیز در این واقعیت خلاصه میشود که شما نمیتوانید تمام جنبههای توسعه بازی را به طور موثر یاد بگیرید. بدون توجه به جاه طلبی شما، باید بپذیرید که قرار نیست تمام پایههایی را که برای توسعه یک بازی وجود دارد پوشش دهید. شما به سادگی نمیتوانید در برنامه نویسی مدل سازی، هنر، صدا، انیمیشن و فیزیک تسلط داشته باشید. اگر میخواهید، میتوانید همه آن چیزها را با صرف زمان یاد بگیرید. اما اگر میخواهید به زودی در پروژههای بازی مشارکت موثری داشته باشید، باید تمرکز خود را محدود کرده و تخصص داشته باشید.
اگر می خواهید از یک موتور بازی استفاده کنید، فقط یک موتور را انتخاب کنید و روی آن تمرکز کنید. شما باید یاد بگیرید که چگونه از سیستم تولید صدا، فیزیک و نقشه موتور استفاده کنید، شما میخواهید تا آنجا که میتوانید پایههای آن موتور خاص را پوشش دهید. بر خلاف برنامه نویسی موتور، تخصص در یک زمینه خاص مانند برنامه نویسی صوتی یا فیزیک شما را با یک موتور بازی دور نمیکند، زیرا موتور بیشتر کار را برای شما انجام میدهد.
یک استراتژی یادگیری بسازید و هر بار یک قدم بردارید
اهداف شما هر چه که هستند، یک برنامه آموزشی بسازید که مفاهیمی را که باید برای شغل رویایی خود بدانید را پوشش دهد. سپس با یک هدف در یک زمان مقابله کنید. زمانی که تصمیم گرفتید روی کدام سمت طیفی که میخواهید کار کنید، میتوانید برای خود برنامه بسازید. اگر میخواهید برنامهنویسی موتور را یاد بگیرید، میگویم C++ را یاد بگیرید، یک موتور بسازید و کتابخانههایی را که باید استفاده کنید (مثلاً برای برنامهنویسی فیزیک، گرافیک و انیمیشنها) یاد بگیرید.
سپس، از آنجایی که بسیاری از مشاغل به Unity یا Unreal Engine نیاز دارند، احتمالاً ایده خوبی است که آنچه را که یاد گرفتید در Unreal و Unity اعمال کنید. مهارتها راحتتر از برنامه نویسی موتور به موتورهای بازی منتقل میشوند. این مانند مقایسه بین انتقال مهارتهای نقاشی به فتوشاپ است. اگر یک نقاش هستید، مقابله با فتوشاپ فقط یک موضوع یادگیری استفاده از ابزار است. اگر در جهت مخالف بروید، کمی سنگینتر میشوید، زیرا هم مبانی هنر و هم خود ابزار را یاد میگیرید. (نکته جانبی: زبان هایی غیر از C++ نیز وجود دارد، مانند Rust)
زبانها
اگر طرفدار صنعت بازی سازی هستید، زبانی را بر اساس موتور بازی که میخواهید یاد بگیرید انتخاب کنید. Unreal Engine از C++ و Unity از C# استفاده میکنند، اما زبانهای دیگری نیز وجود دارند که برای موتورهای مختلف استفاده میشوند (مانند Lua، JavaScript یا Python). یکی را انتخاب کنید که با آن راحتتر هستید یا از موتور بازی که میخواهید با آن کار کنید استفاده کنید. پس از یادگیری زبان، میتوانید از آن برای پیاده سازی و یادگیری مفاهیم خاص بازی برای آن موتور استفاده کنید.
اشتیاق خود را در یک نمونه کار به نمایش بگذارید
هر توسعهدهندهای باید مجموعهای از کار خود داشته باشد و این برای توسعهدهندگان بازی تفاوتی ندارد. اما نمونه کارها شما باید بیشتر از مهارتهای فنی شما نمایش داده شود. ما به دنبال اشتیاق واقعی، کنجکاوی و اشتیاق به یادگیری هستیم. اشتیاق مهم است زیرا کار در این صنعت آسان نیست. همیشه سطحی از بیثباتی در شغل شما وجود دارد.
بنابراین خوب است نشان دهید که واقعاً به خاطر خود کار متعهد هستید. تعهد همچنین مهم است زیرا زمانبندی پروژههای بازی بسیار طولانی است. کارفرمایان میخواهند بدانند که شما نه تنها علاقهمند هستید، بلکه به اندازه کافی متعهد هستید که پروژهها را با تلاش کامل خود دنبال کنید (بهجای توقف در میانه راه وقتی شرایط سخت میشود). در سطح فنی، پورتفولیوی شما مهارتها و توانایی شما در ساخت پروژهها را نشان میدهد. اما تلاشی که برای پروژههای خود انجام میدهید میتواند اشتیاق و تعهد شما را نشان دهد. آنها همچنین باید نشان دهند که شما واقعاً روند ساخت بازی را دوست دارید.
هیچ کتاب واحدی وجود ندارد که ساخت بازی را به شما آموزش دهد
اکثر افراد در صنعت بازی خودآموز هستند. ما هر روز چیزهای جدیدی در کار یاد میگیریم. هیچ کتابی وجود ندارد که ساخت بازی را به شما آموزش دهد. به طور مشابه، هیچ برنامه آکادمیک یا بوت کمپ واحدی نمیتواند هر آنچه را که باید بدانید را به شما آموزش دهد. بنابراین مهم نیست چه مسیری را طی میکنید، باید بدانید که چگونه به خودتان آموزش دهید.
ما خوش شانس هستیم که امروزه منابع زیادی وجود دارد که به ما کمک میکند تا بازی سازی یاد بگیریم. اما حتی نمیتوان انتظار داشت که این منابع یادگیری هر آنچه را که باید بدانیم به ما یاد دهند. شما باید هر آنچه را که میآموزید به صورت انتقادی بررسی کنید. به ندرت منبعی را پیدا خواهید کرد که در حال تهیه کد باشد که بتوانید آن را همانطور که هست در برنامه خود دوباره استفاده کنید. شما باید آنچه را که میدانید به کار ببرید تا بفهمید چگونه میتوانید آن را برای شرایطتان کارآمد کنید.
کد آموزش سایهها
به عنوان مثال نمیتوانید کد آموزش سایهها را فقط در هر برنامه کپی و پیست کنید. شما باید کارهای زیادی انجام دهید تا مطمئن شوید که دادههای شما به درستی پیش میرود. اینجاست که همه چیز کمی پیچیدهتر میشود. بیشتر آموختهها از دنبال کردن کنجکاوی حاصل میشود. مانند نحوه ایجاد سایه در بازیهای ویدیویی یا نحوه ایجاد پیچ و خم برای آن کتابهای پازل. یک آموزش پیدا کنید و ببنید چگونه انجام میشود. همانطور که در حال بررسی موضوعاتی در توسعه بازی هستید، دنبال کردن حس کنجکاوی شما به جذابیت یادگیری شما کمک میکند و همچنین میتواند شما را به سمت تخصصی سوق دهد.
به آنچه دارید بسنده کنید
بازیهای AAA مانند God of War، آنقدر واقعگرایانه است که احساس میکنید میتوانید وارد صفحه تلویزیون شوید. اگر به موتورهای شگفتانگیز دسترسی ندارید، به این معنی نیست که نمیتوانید چیزی بسازید که جهانی شود. برای مثال Flappy Bird را در نظر بگیرید. آن بازی منفجر شد اما خیلی پیچیده نبود. بازی سازی میتواند نیازمندیهای فنی بالایی داشته باشد و همه ما منابع لازم برای تکمیل آنها را نداریم.
هر کس در مورد نحوه رویکرد ساخت بازی نظر ایدهآلی خواهد داشت. اما اگر یک کامپیوتر قدیمی دارید که نمیتواند Unreal Engine را اجرا کند، Unreal را فراموش کنید. فقط به این دلیل که به نظر میرسد کل صنعت از Unity استفاده میکند، به این معنی نیست که شما باید از Unity استفاده کنید. به یاد داشته باشید که در حال خدمت به بازیکن هستید و برای بازیکن، نحوه ساخت بازی مهم نیست. با تمام اهمیتی که دارند، میتوانید هنگام ساخت آن از کارتهای تراشه قدیمی استفاده کنید یا یک بازی از پیش ساخته بخرید و برخی از داراییها را تغییر دهید. یکی از مزایای صنعت بازی این است که، شخصی که بازی شما را بازی میکند، اهمیتی به نحوه ساخت آن نمیدهد.
کاری را انجام دهید که از آن لذت میبرید
اگر میخواهید توسعهدهنده شوید، میتوانید دستمزد بیشتری دریافت کنید و در هر صنعت دیگری به جز بازیها، ثبات شغلی بیشتری کسب کنید. اگر به سمت بازی سازی میروید، برای دستمزد یا ثبات شغلی در آن نیستید. شما به خاطر عشق به بازی در آن هستید. بنابراین ممکن است آن را به حد افراط برسانید و فقط کاری را که دوست دارید انجام دهید. انجام کاری که دوست دارید بدون شک خطری دارد. ممکن است به این معنی باشد که یافتن شغل یا شغلی با ثبات بیشتر طول میکشد. اگر میتوانید در ازای لذت بردن از حرفه خود در طولانی مدت ریسک کنید، آن را بپذیرید. سفر یادگیری شما برای شما جالبتر خواهد بود، که شکل خود ثروت است. اما همه ما نمیتوانیم ریسک کنیم.
بازی سازی را شروع کنید
در نهایت، سفر شما هر زمان و هر طور که بخواهید آغاز میشود. توصیههای کسی را به دل نگیرید. اگر چیزی با شما سازگار نیست، آن را رها کنید! حال، سفر توسعه بازی شما در دستان شماست. شما تنها فردی هستید که مجموعه خاصی از نکات ساخت بازی را دارید. بنابراین راه خود را دنبال کنید و برای یادگیری چیزهای زیادی آماده باشید!
چگونه یک بازی سهبعدی بسازیم؟
میتوانید از هر یک از نرم افزارها استفاده کنید و شروع به ساخت بازی سهبعدی کنید. امروزه این نرم افزار حتی نیازی به برای کدنویسی و برنامه نویسی ندارد. بنابراین، به عنوان مبتدی، میتوانید از آنها برای توسعه اصول اولیه خود برای ساخت بازی استفاده کنید. با این حال، کارشناسان ما برای تبدیل شدن به یک بازیساز موفق، اکیداً یادگیری مهارتهای برنامهنویسی و کدنویسی را توصیه میکنند.
سخن پایانی
ساخت بازی کار سختی است و کمی زمان میبرد. یادگیری این مهارتها نیز یک شبه اتفاق نمیافتد. تئوری یک چیز است، اما درک آنچه برای ساخت یک بازی نیاز است یک چیز دیگر است (چه رسد به کار با زبان های برنامه نویسی). بهترین راه برای بهبود و یادگیری بازی سازی، ساخت بازی است. بنابراین، از اولین روزی که سفر یادگیری خود را شروع میکنید، ساخت بازیها را نیز شروع کنید. فناوریهای زیادی وجود دارد که میتوانید از آنها استفاده کنید. موفق باشید.