برنامهنویسان باید اطمینان حاصل کنند که طراحان و سایر اعضا تیم میتوانند از ویژگیها و ابزارهایی که طراحی کردهاند استفاده کنند و ماژولهایی که طراحی میکنند به درستی به نیازها پاسخ میدهد. بر همین اساس برنامهنویسان باید مفاهیم و اسپرینتهایی که طراحان در طول جلسه به آنها میدهند را درک کنند و راهحلی برای پیادهسازی آنها ابداع کنند. این راهحلها باید بهینه باشند تا منابع سیستم را بیهوده مصرف نکنند و محصول نهایی روی طیف گستردهای از دستگاههای مجهز به سختافزارهای مختلف قابل اجرا باشد. برنامهنویسان در تیمهای بازیساز نقش کلیدی دارند و در حالی که سناریونویسان و طراحان جلوههای گرافیکی در کانون توجه رسانهها قرار دارند، اما این برنامهنویسان هستند که تمامی مولفههای زیربنایی را به گونهای آماده میکنند که محصول نهایی بدون وجود مشکل در دسترس مصرفکننده نهایی قرار گیرد.
برنامهنویس بازیهای ویدیویی کیست؟
برنامهنویس بازی ویدیویی یک توسعهدهنده نرمافزار است که در زمینه کدنویسی بازیهای ویدیویی و چگونگی تبدیل ایدهها به بازیهای ویدئویی اطلاعات جامعی دارد. توسعهدهنده بازیهای ویدیویی میتواند فردی باشد که تمام وظایف را به تنهایی بر عهده میگیرد یا میتواند فردی باشد که در شرکت بزرگی مشغول به کار است. برنامهنویسانی که به تنهایی کار میکنند به عنوان توسعهدهندگان مستقل شناخته میشوند و بهطور معمول بازیهای Indie (مستقل) میسازند. یک توسعهدهنده بازی ممکن است در زمینه کدنویسی برای یک کنسول بازی ویدیویی (مانند نینتندو، ایکس باکس، پلی استیشن ۴ سونی) یا در زمینه ساخت بازی برای سکوهای مختلف مثل کامپیوترهای شخصی و دستگاههای تلفن همراه صاحب تخصص باشد. توسعهدهندگان بازیهای ویدیویی در زمینه ساخت سبکهای خاصی از بازیها مانند نقشآفرینی یا بازیهای تکتیرانداز مهارت پیدا میکنند، در حالی که برخی دیگر روی سازگار کردن بازیها روی سیستمهای مختلف یا ترجمه بازیها از یک زبان به دیگر تمرکز میکنند. نکته مهمی که باید به آن دقت کنید این است که بیشتر توسعهدهندگان برای استودیوهای بازیسازی کار میکنند و به ندرت پیش میآید که توسعهدهندهای به تنهایی کار کند.
چگونه یک برنامهنویس بازیهای کامپیوتری شویم؟
هر کاربر علاقهمند به دنیای فناوری این شانس را دارد تا به یک برنامهنویس خبره بازیهای کامپیوتری تبدیل شود. با اینحال، اگر به دنبال یک مسیر شناخته شده و اصولی هستد باید به شکل منظم و حساب شده در این حوزه گام بردارید. برای آنکه شناخت دقیقی در این زمینه پیدا کنید، ابتدا به سراغ گزینههای شناخته شده در این زمینه برویم. بهطور معمول افرادی که علاقهمند به بازیسازی هستند به دو گروه تقسیم میشوند. گروه اول دانشآموزان و سنین پایین جامعه هستند که دوست دارند در این مسیر گام بر دارند و گروم دوم افرادی هستند که علاقهمند به برنامهنویسی بازیهای کامپیوتری هستند و رشته تحصیلی آنها مرتبط با علوم کامپیوتر نیست یا تمایلی ندارند به شکل دانشگاهی مباحث مرتبط با این موضوع را یاد بگیرند. ابتدا اجازه دهید به سراغ گروه اول برویم.
گروه اول
دانشآموزان علاقهمند به یادگیری برنامهنویسی بازیها
در پایینترین مقطع با حمایت وزارت آموزش و پرورش و بنیاد ملی بازیهای رایانهای مدرسه بازیسازان به نشانی http://irangdi.ircg.ir/ را داریم. این مدرسه که فعالیت خود را در شبکه آموزشی شاد آغاز کرده، ماحصل همکاری مشترک انستیو ملی بازیسازی، بنیاد ملی بازیهای کامپیوتری و وزارت آموزش و پرورش است. در این مدرسه مباحث مهم بازیسازی با تمرکز بر بومی بودن بازیها برای دانشآموزان ارائه میشود. محتوای آموزشی تدوین شده در این انستیتو از طریق کانال بازیسازی فردا در شبکه دانشآموزی شاد در دسترس دانشآموزان عضو این کانال قرار میگیرد. کافی است به کانال شبکه آموزشی شاد وارد شده و آدرس @bazisazan را جستوجو کنید تا بتوانید به کانال این مدرسه و محتوای آموزشی آن دسترسی پیدا کنید. این اولین گام برای یادگیری مبانی اولیه بازیسازی است که بیشتر مناسب دانشآموزان زیر 16 سال است. اگر یک گام به جلو برداریم هنرستان کاردانش را داریم که برای هنرجویان علاقهمند به این حوزه در نظر گرفته شده است. رشته برنامهنویسی بازیهای کامپیوتری متشکل از 111 ساعت آموزش است که 42 ساعت مهارتهای عمومی، 4 ساعت مهارتهای پایه، 56 ساعت مهارتهای فنی و 9 ساعت مهارتهای غیرفنی را شامل میشود. هنرجویان این رشته در کنار دروس عمومی، پنج استاندارد مهارت شغلی را پشت سر گذاشته و به تواناییهای مهمی مثل برنامهنویسی scratch، مهارت کار با کامپیوتر (LCDL)، مهارت کاربر رایانه، مهارت کاربر آفیس، مهارت کار با ایلاستریتور، مهارت بازیسازی مقدماتی با موتور یونیتی، مهارت شهروند الکترونیکی، مهارت کاربر اندروید، مهارت برنامهنویسی بازیهای کامپیوتری، مهارت بازاریابی الکترونیکی، مهارت کار با Poser و مهارت مدیر گیمنت را به دست میآورند. پس از فارغالتحصیلی نیز این امکان وجود دارد که در مقطع کاردانی در دانشگاه جامع علمی کاربردی، آزاد و دانشگاه فنی و حرفهای در رشته مرتبط ادامه تحصیل دهند. هرچند بیشتر افراد ترجیح میدهند در مقطع کارشناسی مهندسی نرمافزار یا فناوریاطلاعات ادامه تحصیل دهند. دانشگاه علمی کاربردی در مقطع کاردانی در سه گرایش کاردانی فنی بازیسازی کامپیوتری، کاردانی حرفهای کارگردانی هنری بازیهای کامپیوتری و کاردانی حرفهای طراحی و کارگردانی بازیهای کامپیوتری در گروه هنر دانشجو میپذیرد. برای اطلاعات بیشتر در این خصوص به نشانی https://www.uast.ac.ir/ مراجعه کنید. البته بسته به نوع دیپلم باید دروس جبرانی را پاس کنید که در دفترچه راهنما به آنها اشاره شده است. در مقطع کاردانی فنی بازیسازی کامپیوتری دانشجویان باید 72 واحد درسی را پاس کنند. سرفصلهای این رشته در جدول یک نشان داده شدهاند.
جدول1
اگر فارغالتحصیل دیپلم ریاضی و به دنیای بازیسازی علاقهمند هستید، پیشنهاد میکنیم در رشته مهندسی نرمافزار یا علوم کامپیوتر ثبتنام کرده و در ادامه به سراغ بازیسازی بروید. در مقطع کارشناسی ارشد برای اولین بار در سال 1393 گرایش جدیدی بهنام تولید بازیهای کامپیوتری به تصویب رسید. این گرایش در زیرمجموعه رشته هنرهای کامپیوتری قرار دارد. بنابراین در مقطع ارشد باید در کنکور کارشناسی ارشد هنر ثبت نام کنید. در زمان نگارش این مقاله تنها دانشگاه هنر اسلامی تبریز در رشته هنرهای کامپیوتری با گرایش تولید بازیهای کامپیوتری دانشجو میپذیرد. آموزش در رشته هنرهای کامیپوتری با گرایش تولید بازیهای کامپیوتری پروژهمحور است و نزدیک به 60 درصد دروس آن به صورت عملی و کارگاهی ارائه میشود.
گروه دوم
علاقهمندان به دنیای برنامهنویسی بازیها
گروه دوم افرادی هستند که مدرک تحصیلی مرتبط با علوم کامپیوتر یا رشتههای مرتبط ندارند، اما به برنامهنویسی بازیها علاقهمند هستند. این افراد میتوانند از طریق موسسههای آموزشی نکات تخصصی را یاد بگیرند. البته باید به این نکته دقت کنید که توسعه بازی فرآیند سختی است. تحصیل در دانشگاه میتواند به یادگیری مباحث پایهای برنامهنویسی کمک کند. بهطور مثال، دانشجویان رشته مهندسی نرمافزار در مدت زمان تحصیل در مقطع کارشناسی و کارشناسی ارشد اطلاعات خوبی در ارتباط با زبانهای برنامهنویسی مثل سیشارپ، سیپلاسپلاس، جاوا، ساختمان دادهها و الگوریتمها یاد میگیرند. با اینحال، تمامی نکات موردنیاز بازار کار در دانشگاهها آموزش داده نمیشود و برای کسب مهارت باید تلاش بیشتری انجام دهید. مسیری که یک فرد برای تبدیل شدن به یک برنامهنویس خبره دنیای بازی باید پشت سر بگذارد به شرح زیر است:
1. تسلط بر زبان انگلیسی
قبل از هر چیز به فکر یادگیری زبان انگلیسی باشید. اگر فرآیند یادگیری برنامهنویسی بازیها را بدون تمرکز بر یادگیری زبان انگلیسی آغاز کنید در ادامه راه با مشکلات مختلفی روبرو میشوید، زیرا بخش عمدهای از منابع به زبان انگلیسی هستند و علاوه بر این، انجمنهایی که برنامهنویسان مجرب عضو آن هستند به زبان انگلیسی هستند.
2. یادگیری مهارتهای ریاضی سطح بالا
یکی از تعاریف جالبی که برای توصیف برنامهنویسی ارائه میشود به این صورت است که برنامهنویسی طراحی معادلات و فرمولهای ریاضی است، به گونهای که کامپیوترها را مجبور به انجام کار خاصی کنیم. برنامهنویسان بازی برای موفقیت در کار به مهارتهای ریاضی سطح بالایی نیاز دارند. برای شروع بهتر است به سراغ سرفصلهای ریاضی مقطع دبیرستان مثلثات، فیزیک و حساب بروید و در ادامه روی یادگیری جبر خطی و الگوریتمهای اساسی متمرکز شوید. بهطور مثال، هنگامی که طراحان، الگوها و طرحوارههای خود را ارائه میدهند و قرار است در بازی پل یا ساختمانی را طراحی کنید اگر درباره مباحث اولیه ریاضی اطلاعاتی نداشته باشید به مشکل برخورد میکنید.
3. دریافت مدرک معتبر
اگر به هر دلیلی امکان رفتن به دانشگاه وجود ندارد، پیشنهاد میکنم به موسسات آموزشی یا مراکز فنی و حرفهای بروید و مدرکی مرتبط با علوم کامپیوتر اخذ کنید. خوشبختانه برخی موسسات دورههای آموزش برنامهنویسی بازیها را برگزار میکنند و در پایان به شرکتکنندگان مدرک معتبری میدهند. گزارشی که اداره آمار کار ایالات متحده منتشر کرده نشان میدهد برنامهنویسان نرمافزارهای کاربردی و بازیها اغلب دارای مدرک لیسانس در علوم کامپیوتر یا مهندسی کامپیوتر هستند. این موسسات روی آموزش یک زبان برنامهنویسی (سیپلاسپلاس)، مباحث ریاضی، طراحی شیگرا، الگوریتمهای بازی، گرافیک رایانهای و مبانی شبکه متمرکز میشوند.
4. یادگیری برنامهنویسی
یادگیری یک یا دو زبان برنامهنویسی، مهارت اصلی شما است. با اینحال به جای آنکه تنها به فکر حفظ کردن دستورات باشید باید به فکر یادگیری ساختار و ترکیب نحوی برنامهنویسی باشید. یک زبان برنامهنویسی مثل جاوا، سیپلاسپلاس، سیشارپ یا پایتون را انتخاب کنید و از طریق منابع آنلاین آنرا یاد بگیرید. قاعده مشخص و ثابتی برای یادگیری زبانهای برنامهنویسی وجود دارد، بهطوری که باید به فکر یادگیری مفاهیم پایه متغیرها، حلقهها، توابع، وراثت، مدیریت استثناها و موارد مرتبط باشید. در ادامه یک بازی ساده بدون گرافیک را آماده کنید. بهطور مثال، میتوانید یک بازی متنی طراحی و آنرا پیاده سازی کنید. با این کار چگونگی کدنویسی با هدف ساخت بازیها را یاد میگیرید. در ادامه باید به سراغ یادگیری مفاهیم ساختمان داده و الگوریتمها بروید. یکی از کتب مرجع در این زمینه CLRS است. ساختارها و رفتارها را یاد بگیرید و سعی کنید نحوه محاسبه پیچیدگی زمانی و فضایی الگوریتمها را بهطور دقیق یاد بگیرید. در ادامه به سراغ الگوریتم و حل مسئله بروید و مسائل مختلف را با استفاده از الگوریتمهای مختلف حل کنید. https://codeforces.com/ یکی از سایتهای خوب برای خواندن مسائل مختلف و حل آنها است. بهطور معمول سیشارپ و سیپلاسپلاس دو گزینه اصلی در این زمینه هستند. بنابراین اگر هیچ شناخت اولیهای از این زبانها ندارید در اینترنت به دنبال عناوینی مثل متوسط (Intermediate) و در ادامه پیشرفته (Advanced) در ارتباط با زبانهای مذکور باشید. علاوه بر این، بهتر است اطلاعات کلی در ارتباط با زبان اسمبلی (Assembly) کسب کنید. پس از تسلط بر زبانهای فوق این فرصت را پیدا میکنید تا به سراغ موتورهای بازیساز بروید. یک موتور رایگان انتخاب کنید و چند نمونه اولیه را با استفاده از آن بسازید.
5. ایجاد نمونه کارها
موثرترین راه برای جلب توجه استودیوهای بازیسازی، ساخت چند بازی و آماده کردن نمونه کار است. به گفته کادر فنی ارشد استودیوی Blitz Games یک بازی ساده یا به بیان دقیقتر یک نمونه کار باید شامل چند مرحله باشد و پایان مشخصی برای آن تعریف شده باشد. نمونه کارها باید مخاطبان را تشویق کند تا نرمافزار و ملزومات آنرا نصب کنند. علاوه بر این، باید از صحنههای مهم بازی تصاویری تهیه کنید تا بر مبنای آنها امکان ارزیابی بازیها وجود داشته باشد تا اگر نمونه کارها به هر دلیلی در دسترس نبودند با استناد به تصاویر سطح مهارتهای خود را به تیمهای بازیساز نشان دهید. تمامی نمونه کارهایی که ارائه میکنید باید همراه با کدهای اصلی باشند تا استودیوها بتوانند سطح مهارتتان در کدنویسی را ارزیابی کنند. بنابراین پیشنهاد میکنم در زمان کدنویسی یادداشتهایی را در فایلهای اصلی قرار دهید تا مشخص شود هر بلوک از دستوراتی که نوشتهاید چه کاری انجام میدهند. اینکار اعتبار شما را بیشتر میکند.
6. در جستوجوی موقعیتهای متناسب با مهارتهایتان باشید
برنامهنویسان مبتدی در هنگام ورود به صنعت بازیسازی با مشکل روبرو میشوند، زیرا استودیوهای بزرگ به دنبال افراد مجرب هستند. پیشنهاد میکنم برای شروع ابتدا به سراغ استودیوهای کوچکتر بازیسازی بروید و بازیهای کوتاه و سادهای را برای دستگاههای تلفن همراه و شبکههای اجتماعی آماده کنید. یکی از راههای کسب مزیت در بازار کار رقابتی، شبکهسازی در وبلاگها، انجمنها و وبسایتهایی است که بیشتر سازندگان بازی از آنها بازدید میکنند. گاهی اوقات امکان تعامل با کاربران حرفهای از طریق سایتها و انجمنها وجود دارد و این فرصت را به دست میآورید تا نمونه کارهای خود را منتشر کنید یا برای تبلیغات مندرج در این سایتها رزومه ارسال کنید. برای آنکه شانس خود برای پیدا کردن یک موقعیت خوب را بیشتر کنید از کارآموزی غافل نشوید. کارآموزی این فرصت را فراهم میکند تا تجربه لازم هرچند مختصر در پستهای نه چندان مهم را کسب کنید و برای کار در شرکتهای بزرگتر آماده شوید. شرکتهایی که به دنبال کارآموز هستند بهطور معمول به دنبال افرادی هستند که در زمینه برنامهنویسی سیپلاسپلاس، گرافیک سه بعدی، هوش مصنوعی، فیزیک و حل مسئله مهارتهای خوبی داشته باشند.
7. به فکر تبدیل شدن به یک توسعهدهنده نرمافزار باشید
هنگامی که تجربه کافی در زمینه کدنویسی پیدا کنید ممکن است به توسعه نرمافزارهای کاربردی علاقهمند شوید. در حالی که برخی وظایف بین این دو موقعیت با یکدیگر همپوشانی دارند، با اینحال توسعهدهندگان بیشتر وقت خود را به جای کدنویسی صرف طراحی و ایدهپردازی بازیها میکنند.
8. مهارتهای جانبی دیگر
شما بر مبنای این هفت مرحله این شانس را پیدا میکنید تا به عنوان برنامهنویس به دنیای بازیهای کامپیوتری وارد شوید. با اینحال، اگر به دنبال موقعیتهای شغلی بزرگ هستید، در کنار مهارتهای مذکور باید به فکر یادگیری مهارتهای زیر باشید:
- گیت (Git): هیچ برنامهنویسی نمیتواند یک بازی بزرگ را به تنهایی طراحی کند و انتظار داشته باشد با استقبال خوبی از سوی کاربران روبرو شود. عناوین بزرگی مثل DOOM، Farcry و نمونههای مشابه توسط تیمی از متخصصان طراحی شده است. بنابراین باید به فکر یادگیری گیت به عنوان نرمافزار کنترل نسخه باشید تا بتوانید کدهای خود را در مخزن گیت بارگذاری کرده و تغییراتی که توسط سایر اعضا تیم اعمال میشود را مشاهده کنید.
- الگوهای طراحی (Design Patterns): یک راهحل عمومی قابل تکرار برای مشکلات متداول در زمینه طراحی نرمافزار است. الگوی طراحی، یک طراحی تمامشده نیست که به صورت مستقیم بتواند تبدیل به کد منبع یا ماشین شود؛ بلکه، یک توضیح یا قالب برای حل یک مسئله در شرایط مختلف است. الگوها در واقع بهترین روش ممکن هستند که یک برنامهنویس میتواند در هنگام طراحی یک برنامه برای حل مشکلاتش از آنها استفاده کند.
- هوش مصنوعی: تقریبا تمامی عناوین بزرگ بازیهای منتشر شده در چند سال اخیر از هوش مصنوعی برای موفقیت استفاده کردهاند. الگوریتمهای یادگیری ماشین باعث میشوند تا شخصیتها در بازی عملکرد جذابتر و طبیعیتری داشته باشند.
- پایگاه داده: بانکهای اطلاعاتی عامل موفقیت بازیها هستند. بانکهای اطلاعاتی باید به گونهای طراحی شوند که زمان بارگذاری و ذخیرهسازی مراحل را کم کنند و فرآیند واکشی اطلاعات از رسانه ذخیرهساز را در مدت زمان کوتاهی به سرانجام برسانند.
- گرافیک کامپیوتری (OpenGL و DirectX): دایرکتاکس (DirectX) مجموعهای از رابطهای برنامهنویسی کاربردی (API) است که کارهایی مربوط به محیطهای چندرسانهای در سکوهای مایکروسافت را بر عهده دارد. از کاربردهای خاص آن برنامهنویسی بازیهای رایانهای و ویدیوهای سهبعدی است. اوپنجیال (OpenGL) یک رابط برنامهنویسی نرمافزار چندسکویی برای رندرینگ دوبعدی و سهبعدی است. این رابط برنامهنویسی برای تعامل با پردازشگر گرافیکی و بهدستآوردن رندرینگ شتابیافته توسط سختافزار استفاده میشود
کلام آخر
چند سال قبل در بهترین حالت هفتهای چند عنوان بازی جذاب در فروشگاه استیم مشاهده میکردیم، اما اکنون این رقم به 20 بازی در روز رسیده است. در گذشته بازیسازی کاری بود که افراد کمی در آن تخصص داشتند، اما به لطف پیشرفت فناوری و وجود موتورهای بازیساز مثل یونیتی هر کاربری میتواند بازی بسازد.
بنابراین برای موفقیت باید بازی طراحی کنید که خلاقانه باشد و بهترین کیفیت را ارائه کند. برنامهنویسان بازی در بازار کار به شدت رقابتی قرار دارند، بنابراین باید سطح مهارتهای خود در مباحث ریاضی و مهارتهای پیشرفته کدنویسی را بهروز نگه دارید و همواره نمونه کارهای جدیدی داشته باشید. علاوه بر این، فراموش نکنید مادامی که موفق نشوید موقعیتهای سطح ابتدایی را بهدست آورید، هیچگاه موفق نخواهید شد به سطوح بالاتر این شغل دست پیدا کنید.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟