Sadra Delir
Sadra Delir
خواندن ۹ دقیقه·۴ سال پیش

بازی سازی را از کجا شروع کنیم؟

اجازه بدین ابتدا راجع به کلمه بازی سازی! این کلمه اشتباه رایج در ادبیات تکنولوژی صحبت کنیم، اما قبل از اون بدونیم منظور از بازی توی این مقاله یک محصول نرم افزاریه که مستقل از اهداف فرهنگی یا مالی سازندگان این محصول در ظاهر برای سرگرم کردن مخاطب ساخته شده. پس هر گونه محصول غیر دیجیتالی که ممکنه ما بهش بازی بگیم ( اعم از بازی های صفحه ای مثل شطرنج و تخته نرد و یا اسباب بازی ها) منظور این مقاله نیست اند، هر چند در عمل ممکنه در بعضی از مراحل تولید با بازی های دیجیتال اشتراکات زیادی داشته باشن.

چرا بازی سازی مثل شیشه سازی یا آهنگ سازی نیست؟

بیشتر مشکلات شما از همین نقطه آغاز میشه که تصور میکنید بازی سازی مثل خیلی مهارت های دیگه سلسله مراتبی از آموزش ها داره که با گذروندن اونها شما تبدیل به اون شخص رویایی یا همون آقا یا خانم بازی ساز میشید! ولی شوربختانه بازی سازی فقط یک مهارت نیست که شما اون یک مهارت رو آموزش ببینید و تمام . بازی با همون تعریفی که در ابتدای مقاله داشتیم یه محصول نرم افزاریه که تعداد زیادی از آدم ها با مهارت های مختلف ممکنه در ساخت، توسعه یا بازاریابی و یا تست و ارزیابی این محصول شرکت داشته باشن. شما در توسعه بازی های خیلی بزرگ و تجاری در بهترین حالت میتونید یک نفر ازین آدم ها باشین. هرچند تو محصولات کوچیک (که ما بهشون میگیم indie یا همون مستقل) دیده میشه که یک یا چند نفر در قالب یک تیم کوچیک تمامی نقش ها رو بر عهده میگیرن، جلوتر با این آدم ها، یا بهتره بگیم نقش ها بیشتر آشنا میشیم و میگیم برای تبدیل شدن به هر کدوم از اونها باید چه چیزهایی رو یاد بگیرین. پس از این لحظه به بعد هیچ وقت از کلمه بازیس ساز استفاده نکنید!

پس به جاش چی بگیم؟

بازی به عنوان یک محصول نرم افزاری و همینطور یک محصول سرگرم کننده و در عین حال یک محصول هنری(!) به سه عضو اصلی در تیم تولید نیاز داره که مسئولیت این سه بخش رو بر عهده بگیرن! هر چند همون طور که گفتیم خیلی مواقع دو یا هر سه این نقش ها ممکنه بر عهده یک نفر باشه و مشخصا در محصولات بزرگتر ممکنه برای هر کدام از این سه نقش تعداد زیادی نیرو اختصاص داده بشه ولی چیزی که نمیشه ازش فرار کرد اینه که باید یک بار به صورت جداگانه و سپس در ارتباط با سایر بخش ها به هرکدوم پرداخته بشه حتی اگه هر سه رو یک نفر انجام میده،‌ حالا ببینیم برای اینکه بتونیم عضو تیم تولید بازی باشیم (‌و نه اینکه بازیساز باشیم) باید دقیقا کی باشیم؟

بازی به عنوان نرم افزار و نقش برنامه نویس یا Game Developer

نقش هایی که اون بالا راجع بهشون صحبت کردیم هر سه به اندازه هم اهمیت دارن و هیچ ترتیب خاصی در اهمیت شون نیست و بدون هر کدوم محصول شما مطمئنا قرار نیست موفقیت تجاری،‌ فنی یا هنری کسب کنه! بزارید یه کشتی رو مثال بزنیم:‌ اهمیت لنگر کمتر از بادبان کشتی نیست هر چند بادبان بیشتر جلوی چشم قرار داره ولی در نهایت بدون هر کدوم از اونها شما نمیتونید وارد دریا بشید.


برنامه نویس بازی کسیه که میتونه ایده ها و مکانیک های بازی رو با استفاده از زبان های برنامه نویسی کد نویسی یا اجرا کنه و احتمالا با یک یا چند موتور برنامه نویسی آشنایی داره اطلاعات خوبی از معماری نرم افزار در بازی ها داره و مهم تر از همه یخورده از کار دو نفر دیگه هم سر در میاره! (این مورد بسیار مهمه) یعنی شما اگه صرفا برنامه نویس هستین که در حوزه ای غیر از بازی فعالیت داشتین (مثلا بانک یا سرویس های خدماتی) برای ورود به صنعت بازی حتما باید اطلاعات غیر برنامه نویسی تون رو در حوزه بازی بیشتر کنید. برنامه نویس بازی بهتره کمی هم ریاضیات،‌ هندسه و فیزیک اش از بقیه بچه های مدرسه بهتر میبوده و اگر هم نبوده الان باید به این فکر کنه که در دنیای بازی ها ما خیلی وقت ها مساله های واقعی رو شبیه سازی میکنیم و شبیه سازی حرکت ها و واکنش اجسام و محیط چیزی جز ریاضیات و فیزیک نیست. همینطور آشنایی شما با الگوریتم، طراحی الگوریتم و بهینه سازی و پیچیدگی زمانی در صنعت بازی بیشتر از هر جای دیگه حیاتی محسوب میشه. پس اگر میخواید به عنوان برنامه نویس وارد این قضیه بشید آشنایی با یه زبان برنامه نویسی مثل CSharp یا ++C و یا JavaScript (میتونید از دوره های آنلاین استفاده کنید یا کتاب بخونید!) همچنین آشنایی با یک موتور بازی سازی مثل Unity ،‌ Godot و یا Unreal میتونه تا سالها توانایی شما رو در تولید بازیهای ۳ بعدی یا ۲ بعدی با سبک های مختلف تضمین کنه. برنامه نویس بازی بهتره بعد از اینکه برنامه نویسی زبان اش رو خوب یاد گرفت شروع به توسعه مهارت در موتور بازی سازی و سپس افزایش عمق دانش اش در حوزه Game Development Patterns بکنه که در انتهای این مقاله منابع خیلی خفنی رو میتونید برای هر کدوم پیدا کنید.

بازی به عنوان یک محصول سرگرم کننده و نقش طراح بازی یا Game Designer

بریم سراغ طراح بازی یا اگه فنی تر بخوایم بگیم Game Designer توضیح مهم نویسنده این که: من مخالف استفاده از کلمات فارسی نیستم شاید تو یه مقاله جدا مفصلا راجع بهش صحبت کردم ولی فعلا بدونیم بهتره هر کلمه ای رو در زبانی استفاده کنیم که ابهام کمتری رو اون کلمه خاص داشته باشه و ما در فارسی به کسی که با مداد روی کاغذ اجسام و اشخاص رو میکشه هم طراح و به اون کار طراحی میگیم پس استفاده از کلمه طراح بازی ممکنه ما رو با طراح هنری یا Artist دچار اشتباه کنه. پس تا به این جای کار میدونیم طراح بازی در واقع قرار نیست چیزی نقاشی کنه و خیلی اوقات این دوستان مجبورن بیشتر از بقیه کار خودشون رو توضیح بدن تا با آرتیست و برنامه نویس اشتباه گرفته نشن.

ایده اصلی هر بازی، محیطی که قراره بازی در اون اتفاق بیفته،‌ خط داستانی و این دست ملزومات غیر قابل لمس ممکنه در جلسات و همفکری های تیم بازی به نتیجه برسه ولی همواره طراح بازی مسئولیت هماهنگی این موارد بعلاوه طراحی مراحل و مکانیک های بازی بالانس میزان سختی و آسونی بازی برای بازیکن، تحقیق در مورد رده سنی مخاطب و همینطور طراحی مراحل آموزش بازی رو بر عهده داره. در کنار اون طراح بازی باید قیمت آیتم های بازی،‌ میزان قدرت اسلحه ها و یا سرعت ماشین ها رو تو بازی محاسبه و در اختیار برنامه نویس قرار بده.

پس اگر میخواید به عنوان طراح بازی وارد تیم بشید چیزهای خیلی زیادی هست که باید دنبال یاد گرفتن شون باشید که به طور خلاصه و حداقلی شامل موارد زیر (به ترتیب اهمیت)‌ میشه:

  • آشنایی با سبک های مختلف بازی های دیجیتال، مختصری از تاریخچه و نحوه شکل گیری و کمی بازی کردن از هرکدوم
  • مطالعه و کسب مهارت در خصوص طراحی مرحله و مکانیک ،‌ تعیین میزان سختی بازی و بالانس اعداد
  • آشنایی کامل با سیستم های درآمد بازی ها و سبک های پر مخاطب
  • استفاده از ابزار های تست و آمارگیری در بازی های ( باید بدونید بازیکن ها کدوم اسلحه رو بیشتر دوست دارن و چرا؟)
  • آشنایی مختصری در مورد روانشناسی در حوزه بازی های دیجیتال
  • توانایی کامل استفاده از نرم افزار های مثل excel یا trello برای ارتباط با سایر اعضای تیم
  • توانایی کامل تولید و ارائه مطالب در قالب مستند،‌ اسلاید یا جدول
  • و یه عالمه مهارت دیگه که توی بخش منابع میتونید پیدا کنید…


بازی به عنوان یک محصول هنری و نقش هنرمند یا Artist

طراحان هنری یا آرتیستها در تیم بازی معمولاً مسئولیت تولید عناصر هنری بازی از قبیل کاراکتر ها انیمیشن ها موسیقی یا انتخاب محیط های مختلف برای بازی را برعهده دارند. طرح های هنری ممکنه در زمینه های مختلفی از قبیل محیط، کاراکتر یا موسیقی و صداگذاری به بازی اضافه بشه برای همین بسته به محصولی که تولید میکنیم ممکنه تیم هنری از یک تا چند نفر رو در بر بگیره. معمولاً وقتی تیم هنری بیشتر از چند نفر میشه یکی از اونها به عنوان کارگردان هنری یا آرت دایرکتور وظیفه هماهنگ کردن اعضای دیگه تیم و ارتباط با گیم دیزاینر و برنامه نویس رو بر عهده می گیره. کسی که معمولاً تجربه و شناخت اش در حوزه های مختلف هنری از بقیه بیشتر باشه.


پس اگه به عنوان هنرمند یا آرتیست می خواهید وارد تیم بازی بشین اول از همه باید مشخص کنید که در چه زمینه ای از هنر قصد فعالیت دارین. ممکن انتخاب شما طراحی محیط باشه یا طراحی کاراکتر، خیلی از اینها مطالعات مشترک زیادی با هم دارند و خیلی هاشون مطالب تخصصی خودشون رو، ولی به طور خلاصه میشه گفت آرت در بازی‌های رایانه‌ای برخلاف رسانه های دیگه کمی با مطالب فنی تر درآمیخته است. مثلاً شما به عنوان طراحی کاراکتر جز اینکه باید اطلاعات خیلی خوبی راجع به آناتومی و یا انتخاب رنگ ها و کامپوزیشن یا ترکیب بندی داشته باشید همینطور اطلاعات خیلی خوبی هم راجع به فرمت های مختلف تصویری و اینکه آیا موتورهای بازی سازی چگونه با عناصر هنری از قبیل عکس ها و انیمیشن ها کار میکنند باید به دست بیارید. من سعی می‌کنم منابع مفیدی رو به صورت عمومی در حوزه هنر در بازی های رایانه ای در انتهای مقاله قرار بدم.

منابع ای که می توانید مطالعه کنید

به دلایل زیادی که احتمالاً خودتون هم بهتر از من میدونی مطالعه رو بیشتر از گذراندن دوره یا دیدن ویدیو بهتون توصیه می کنم ولی با این حال لینک چندتا کانال خوبه یوتیوب را هم براتون میزارم. اینجا سعی می کنم چند تا از بهترین های هر حوزه رو براتون بذارم بعضی از این کتاب‌ها یا مقالات خیلی راحت با یه سرچ ساده تو اینترنت قابل دسترسی اند ولی بعضی هاشون ممکنه کمی سخت تر پیدا بشه.

برای شروع برنامه نویسی:

https://www.w3schools.com/cpp/cpp_getstarted.asp

https://www.w3schools.com/cs/default.asp

واسه اونایی که برنامه نویس های خفن تری هستن و میخوان بهتر بشن

C# in Depth Book by Jon Skeet

Clean Code Book by Robert Cecil Martin

برای برنامه نویسی بازی:

Developing 2D Games with Unity: Independent Game Programming with C# by Jared Halpern

Learning Unreal Engine Game Development Paperback by Joanna Lee

Game Programming Patterns Book by Robert Nystrom

https://youtube.com/brackeys/

همینطور این کتاب رو میتونید رایگان از این لینک مطالعه کنید (خیلی کتاب خوبیه!)

https://gameprogrammingpatterns.com/

و اینکه میتونید رویداد های بازی سازی مثل کژوال کمپ بازار رو دنبال کنید، ویدیو های خیلی خوبی توی کانال آپارات شون میتونید پیدا کنید:

آپارات | CasualCamp.ir (aparat.com)

برای Game Design:

The Art of Game Design Book by Jesse Schell

Level Up! The Guide to Great Video Game Design Book by Scott Rogers

هر جفت این کتاب ها چون خیلی قدیمی ان نسخه الکترونیک شون به راحتی پیدا میشه (ویراست چندم چاپ کدوم سال مهم نیست) و منابع خیلی خوبی برای شروع هستن

برای آرت در بازی های رایانه ای:

توضیح: حوزه های مختلف هنری خودشون خیلی کتاب دارن هر کدوم، اینجا من چند تا منبع که به بازی بیشتر مربوط میشن رو میزارم

اول آرت بوک های مختلفی که بعد از عرضه بازی های بزرگ معمولا میتونید پیدا کنید (تو تهران میدونم بعضی کتاب فروشی ها دارن)

The Art of Dragon Age: Inquisition (Inglese) Copertina rigida

The Art of God of War, illustrated by Jose Cabrera

The Art of Magic the Gathering: Zendikar: Volume 1

دوم مطالعه طراحی دیجیتال هست که میتونید از اینجا شروع کنین:

https://www.ctrlpaint.com/

و سوم تمرین!! و شرکت تو گردهمایی ها و همایش های مربوط به بازی و به قولی بیشتر تو باغ بودن!

https://evand.com/


ده سالگی بازاربازی سازیگیم دیزاینآموزش بازی سازی
من صدرا دلیر هستم،‌برنامه نویس بازی های دیجیتال و اینجا هر چیزی که به نظرم برا بقیه مفید باشه رو مینویسم.
شاید از این پست‌ها خوشتان بیاید