آموزش ساخت بازی

ساخت بازی

در این صفحه می خوانید:

تاریخچه ساخت بازی

تاریخ بازی با توسعه اولین بازی های ویدئویی آغاز می شود، هر چند که بازی های ویدئویی بستگی به تعریف آن دارد، اولین بازی ها ارزش سرگرمی کمی داشتند و تمرکز توسعه آنها جدا از تجربه کاربر بود، در حقیقت این بازی ها نیاز به رایانه داشتند. OXO، توسط الکساندر داگلاس در سال 1952، اولین بازی کامپیوتری بود که از صفحه نمایش دیجیتال استفاده کرد. در سال 1958 یک بازی به نام تنیس برای دو، که خروجی آن روی یک اسیلوسکوپ نمایش داده می شد توسط فیزیکدان ویلی هگینبثام، در آزمایشگاه ملی بروکلین ساخته شد. در سال 1961 بازی رایانه ای به نام Spacewar توسط گروهی از دانشجویان موسسه فناوری ماساچوست به رهبری استیو راسل ایجاد شد. طراحی تجاری واقعی و توسعه بازی ها در دهه 1970 آغاز شد، زمانی که بازی های ویدیویی و نسل اول کنسول ها به بازار عرضه شد. در سال 1972، اولین سیستم کنسول خانگی به نام Magnavox Odyssey منتشر شد. در همان سال شرکت آتاری بازی پونگ را منتشر کرد که محبوبیت بازی های ویدئویی را افزایش داد. موفقیت تجاری پونگ شرکت های دیگر را برای توسعه کلون های پونگ و تولید بازی های ویدئویی ترغیب کرد.

در اوایل سال 2000 بازی های موبایل شروع به محبوبیت نمود. از آنجا که نسل سوم کنسول ها و صنعت بازی های ویدئویی خانگی به طور مداوم رشد و گسترش داشت درآمد صنعت بازی از دهه 1990 حداقل پنج برابر شده است. در سال 2007 درآمد بازی های ویدئویی بخش نرم افزاری 9.5 میلیارد دلار بود که بیشتر از صنعت فیلم بود. سریعترین بخش های بازار در حال رشد، بازی های موبایل با میانگین سالیانه 19٪ برای گوشی های هوشمند و 48٪ برای تبلت ها است.

ساخت بازی چیست؟

ساخت بازی یا توسعه بازی ویدیویی فرآیندی است که در آن بازی‌های ویدئویی عرضه می‌شوند. توسعه بازی های کامپیوتری و کنسول های تجاری سنتی معمولا توسط یک ناشر تامین می شود. تهیه‌کننده و ناشر معمولاً خارج از تیم طراحی و از شرکت‌های بیرونی هستند و می توانند در طول چند سال این فرآیند را به اتمام برسانند. بازی های Indie معمولا زمان و پول کمتری می گیرند و می توانند توسط افراد و توسعه دهندگان کوچک تولید شوند. صنعت بازی مستقل افزایش یافته است و با رشد سیستم های جدید توزیع آنلاین مانند Steam و Uplay و همچنین مارکت های بازی موبایل برای دستگاه های Android و iOS این روند تسهیل شده است.

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

برخی از تکنولوژی هایی که در ساخت بازی استفاده می شوند عبارتند از :

DirectX در توسعه بازی: DirectX مجموعه ای از فرمان ها و توابع استاندارد است که توسعه دهندگان نرم افزار می توانند در هنگام ایجاد اپلیکیشن های خود استفاده کنند. در حالی که هر برنامه نرم افزاری مبتنی بر ویندوز می تواند شامل فرمان های DirectX باشد، آنها معمولا در بازی های ویدئویی استفاده می شوند. به عنوان مثال، توسعه دهندگان ممکن است از DirectX برای کنترل پخش ویدئو، جلوه های صوتی و ورودی محیطی (مانند صفحه کلید، ماوس یا جوی استیک) استفاده کنند. با استفاده از توابع DirectX در یک بازی کامپیوتری، برنامه نویسان می توانند از دستورات از پیش تعریف شده برای مدیریت ویدیو و صدا بازی خود و همچنین ورودی کاربر استفاده کنند.

OpenGL در توسعه بازی: هر بازی سه بعدی که حداقل در یک پلتفرم متفاوت از مایکروسافت، نینتندو و سونی اجرا می شوند از OpenGL استفاده می کنند که شامل هر بازی است که در لینوکس، اندروید، MAC OS X ، آیفون-اپل، سیمبین و غیره اجرا می شود.

Sprite Kit در توسعه بازی: با این رندر گرافیک و زیر ساخت انیمیشن می توانید با استفاده از یک سیستم انیمیشن سازی بهینه سازی شده، شبیه سازی فیزیکی و پشتیبانی از رویداد، بازی های مبتنی بر دوبعدی را ایجاد کنید.

GameSalad در توسعه بازی: ساده ترین پلتفرم برای ساخت بازی های ویدئویی دو بعدی و برنامه های تعاملی است که برای سیستم عامل های MAC OS X و ویندوز طراحی شده است.

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

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

آنریل انجین: آنریل انجین یک موتور بازی سازی است که در زبان ++C نوشته شده است و دارای درجه بالایی از قابلیت انتقال و ابزاری است که امروزه بسیاری از توسعه دهندگان بازی استفاده می کنند. هدف بزرگ استفاده از تکنولوژی Unreal ساخت پایگاهی از کد بود که بتوان آن را از طریق نسل های مختلف بازی توسعه و بهبود داد.

Game Maker: یک ابزار توسعه بازی است که شما را قادر به ساخت بازی های ویدئویی می کند. همه توسعه دهندگان بازی می توانند از GameMaker Studio استفاده کنند. خواه شما یک توسعه دهنده حرفه ای باشید که به دنبال ورود به انجمن بازی های ویدئویی است یا یک دانش آموز علاقه مند به رشته بازی ویدئویی، می توانید از این نرم افزار استفاده کنید. از این رو استفاده از این نرم افزار برای ایجاد بازی های کامپیوتری آسان است.

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

Havok Vision Engine: یک موتور بازی متقاطع سه بعدی است که توسط Trinigy ساخته شده و توسط Havok در سال 2003 منتشر شد.

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

درآمد ساخت بازی

برای اینکه متوجه شویم که درآمد بازی سازی چقدر می باشد به بررسی درآمد چندین کمپانی بزرگ بازی سازی دنیا می پردازیم:

کمپانی بازی سازی Blizzard Entertainment: شرکت بازی سازی بلیزارد به عنوان یکی از قدیمی ترین استودیو های بازی سازی دنیا به شمار می رود که تا به امروز توانسته با ارائه 7 بازی خارق العاده همانند بازی معروف WarCraft درآمد چشمگیر 4 بیلیون دلاری را برای خود در سال 2014 به ارمغان بیاورد. همچنین می توان به بازی StarCraft نیز پرداخت که سود سالیانه این بازی برای شرکت حدود 4.5 بیلیون دلار تخمین زده شده است.

کمپانی بازی سازی UbiSoft: شرکت بازی سازی UbiSoft یکی از بزرگترین و ثروتمند ترین شرکت های دنیا می باشد. ارزش تخمینی این شرکت تا به امروز چیزی حدود 2 بیلیون دلار برآورد شده است .کمپانی یوبی سافت دارای 29 استودیو زیرمجموعه است و از بازی های معروف این کمپانی می توان به Assassins creeds ،prance of Persia ،cell و splinter اشاره کرد.

کمپانی بازی سازی Konami: شرکت بازی سازی konami یکی از برترین شرکت های بازی سازی دنیا می باشد که از بدو تولد خود فراز و نشیب های بسیاری را طی کرد، اما با ورود مغز متفکری مثل هیدئو کوجیما این شرکت جان تازه ای به خود گرفت و توانست رشد سریعی در بین کمپانی های بازی سازی داشته باشد. از موفق ترین بازی های این شرکت می توان به Silent Hill و بازی فوتبالی PES اشاره کرد.

اگر شما هم به فکر ساخت یک بازی فوق العاده هستید با آموزش های بازی سازی سایت گیت تبدیل به یک بازی ساز قدرتمند شوید.

تکنولوژی های ساخت بازی

هنگامی که طراحی اولیه بازی مورد توافق قرار گرفت، زبان توسعه بازی باید انتخاب شود. انتخاب به چندین عامل بستگی دارد، مانند آگاهی توسعه دهندگان از زبان برنامه نویسی، سیستم عامل هدف، الزامات سرعت اجرا و زبان هر موتور بازی، API یا کتابخانه مورد استفاده که باید مورد توجه قرار گیرد. برای رایانه های شخصی، زبان انتخاب شده ممکن است کمی بیشتر از بقیه موارد اولویت داشته باشد. محبوب ترین زبان ها معمولا روشی / شی گرا هستند و از طریق کامپایلرها اجرا می شوند مانند  C و ++C و جاوا. با این حال، توسعه دهندگان ممکن است به ویژگی های خاص دامنه مانند رابط با سیستم عامل و قابلیت انعطاف پذیری برای مهندسی معکوس برای بازی های ویدئویی آنلاین توجه کنند.

بسیاری از بازی ها به طور انحصاری در یک زبان نوشته نشده و ممکن است دو یا چند زبان را ترکیب کنند. به عنوان مثال Unity، یک موتور بازی محبوب، قطعات مختلفی در C و ++C و #C دارد. برای کنسول ها، حمایت از پلت فرم هدف، معمولا مورد توجه ترین عامل است. در گذشته، بازی های ویدئویی برای کنسول ها تقریبا به طور انحصاری در زبان اسمبلی به دلیل منابع محدود از نظر سرعت ذخیره سازی و پردازش نوشته شده بود. با این حال، با پیشرفت تکنولوژی، گزینه هایی برای توسعه بازی در کنسول ها وجود دارد. نینتندو، مایکروسافت و سونی همه SDK های متفاوت خود را برای Wii U، نینتندو سوئیچ، ایکس باکس وان و پلی استیشن دارند. بسیاری از توسعه دهندگان زبان های سفارشی مانند QuakeC و UnrealScript به طور کامل برای بازی های خود ایجاد کرده اند.

چند سکویی در بازی سازی

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

دسته اول: در این تکنولوژی‌ها برنامه‌نویس یک بار برنامه را می‌نویسد و سپس کامپایلر برای هر سیستم‌عامل فایل اجرایی جداگانه‌ای تولید می‌کند.

دسته دوم: توسط زبان‌های تفسیرشده نگارش می‌شوند و توسط مفسرهای موجود در هر سکوی رایانه‌ای قابل اجرا هستند.

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

از مهمترین تکنولوژی هایی که از قابلیت چند سکویی پشتیبانی می کنند عبارتند از:

  • Unity
  • Unreal Engine
  • GameMaker Studio
  • CryEngine
  • Vision
  • ShiVa

مسیر توسعه بازی

می خواهید یاد بگیرید چگونه بازی ها را توسعه دهید؟ در زیر نقشه راه نشان داده شده است که تمرکز شما را به نحوه تبدیل شدن به یک توسعه دهنده بازی جلب می کند. برای تبدیل شدن به یک توسعه دهنده بازی شما به هیچ وجه نیاز به درک همه موارد در این نقشه را ندارید. در عوض از این نقشه ها به عنوان نقطه شروع برای یادگیری استفاده کنید.

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

مسیر ساخت بازی

یادگیری های توصیه شده برای هر مسیر :

  • گیت
  • گیت هاب
  • مهارت های ارتباطی
  • دانش تحقیق کردن
  • سوال و جواب و تحقیق

در صورتی که مسیر برنامه نویسی سمت کلاینت بازی را انتخاب کنید از طریق این لینک تصویر با تکنولوژی های مورد نیاز آشنا شوید.توسعه دهنده کلاینت و دیزاینر بازی باید زبان برنامه نویسی #C به همراه موتور بازی یونیتی را یاد بگیرند. همچنین یادگیری ساختمان داده ها و الگوریتم های زبان C جهت ارائه راه حل های کارآمد برای مشکلات پیچیده و یادگیری قوی زبان C به همراه الگوریتم ها و ساختمان داده جزو مباحث پایه ای این مسیر می باشد.

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

برای تست بازی و صحت انجام همه موارد بازی یکسری تکنولوژی ها و روش ها مورد استفاده قرار می گیرند که جهت بررسی آن ها می توانید از طریق این لینک تصویر با آنها آشنا شوید.

گرچه این مسیر آسانی نخواهد بود اما با پیروی از این راهنما توقف کمتری برای رسیدن به هدف خود دارید.

آیا این نوشته را دوست داشتید؟
linkedin-c-game-programming-1

آموزش برنامه نویسی بازی با ++C قسمت 1


مقدمه ای به دنیای برنامه نویسی بازی با ++C داشته باشید. این دوره اصول اولیه توسعه بازی را با ++C و کتابخانه چندرسانه ای ساده و سریع OpenGL (SFML)، با ...

1399/01/14 243 بازدید
packtpub-cinematics-and-animations-in-unity

سینماتیک و انیمیشن در یونیتی


در این دوره نحوه ساخت انیمیشن و سینماتیک در یونیتی آشنا خواهید شد. ضمناً با دوربین و رویداد های آن و همچنین ابزار ویرایشگر سه بعدی کار خواهید کرد....

1398/12/19 452 بازدید
skillshare-intro-to-unity-development

آشنایی با توسعه یونیتی


این دوره برای مبتدیان مناسب است. این دوره یونیتی برای آموزش اولیه یونیتی برای ایجاد بازی خودتان طراحی شده است تا بتوانید به دوستان خود آن را نشان دهید...

1398/12/03 498 بازدید
skillshare-develop-a-2d-shooter-game-in-unity

آموزش توسعه بازی دو بعدی تیرانداز در یونیتی


قبل از گذراندن این دوره اطمینان حاصل کنید که اصول برنامه نویسی سی شارپ را می دانید. این دوره تمام موارد برنامه نویسی را با جزئیات آموزش خواهد داد. شما...

1398/11/14 697 بازدید
pluralsight-introduction-to-the-entity-component-system-in-unity

معرفی سیستم Entity Component در یونیتی


آشنایی با Entity Component System در یونیتی درک کاملی از ECS و ویژگی ها و فواید اصلی آن را به شما می دهد. در پایان این دوره، دانش لازم برای ECS و ایجا...

1398/11/06 617 بازدید
packtpub-devslopes-devcraft-game-minecraft-clone

ساخت بازی Devcraft (همانند Minecraft)


در این دوره همراه با ساخت بازی همانند ماینکرافت با مفاهیم یونیتی آشنا خواهید شد. از ساخت Voxel، اضافه کردن ابعاد، تنظیم دوربین و اضافه یا حذف کردن بلو...

1398/10/07 572 بازدید
packtpub-devslopes-defender-2d-game

ساخت بازی Defender دو بعدی


در این دوره شما نحوه ساخت یک بازی دوبعدی از مرحله وارد کردن عکس و انیمیشن تا مسیریابی دشمنان، پرتاب موشک و استفاده از برخوردکننده ها و همچنین ساخت راب...

1398/09/28 736 بازدید
skillshare-create-your-first-computer-game-with-stencyl-no-programming-required

ساخت اولین بازی کامپیوتری با Stencyl (بدون نیاز به برنامه نویسی)


به کمک این دوره می توانید بدون نیاز به دانش برنامه نویسی بازی کامپیتوری ایجاد کنید، آن را با دوستان خود به اشتراک بگذارید و حتی در App Store و Google ...

1398/09/12 468 بازدید
skillshare-design-2d-game-ui-in-vector-with-inkscape

طراحی رابط کاربری بازی دو بعدی به صورت وکتور با Inkscape


به دوره طراحی رابط کاربری بازی با Inkscape خوش آمدیددر طول دوره تئوری طراحی بازی UI را فرا خواهیم گرفت و ایجاد چندین آیکون و تنظیم آیکون، دکمه ها و من...

1398/09/10 506 بازدید
skillshare-building-a-casual-html5-game

آموزش ساخت بازی Casual با Html5


به کمک این دوره می توانید یک بازی html5 به نام CATCHEM با Phaser ایجاد کنید. تنها کافی است تا کمی از جاوااسکریپت را بدانید....

1398/09/10 797 بازدید
skillshare-introduction-to-character-animation-in-unreal-engine-4

مقدمه ای بر متحرک کردن کاراکتر در Unreal Engine 4


در این دوره شما مراحل متحرک کردن کاراکتر در Unreal Engine 4 را یادخواهید گرفت. این یک دوره مبتنی بر پروژه و سرگرم کننده است! کلیه فایل های صحنه مورد ...

1398/09/10 594 بازدید
packtpub-building-your-first-vr-experience-with-unity

ایجاد اولین تجربه واقعیت مجازی با یونیتی


در این دوره هدف از ساخت اولین اپلیکیشن واقعیت مجازی با Unity، این است که مقدمه ای بر یونیتی را به افراد تازه وارد در توسعه اپلیکیشن های واقعیت مجازی (...

1398/09/09 949 بازدید
skillshare-how-to-program-your-own-breakout-game-clone-using-visual-c

برنامه نویسی بازی Breakout با سی شارپ


در این دوره یاد می گیرید که به سرعت بازی Breakout را در ویندوز با استفاده از سی شارپ و WinForms بسازید. همچنین تکنیک هایی که برای ساختن کامل این بازی...

1398/09/09 816 بازدید
skillshare-gamemaker-studio-2-introduction-to-gamemaker-language

آموزش GameMaker Studio 2 - معرفی زبان GameMaker


از طریق این کلاس ها، شما به یادگیری نحوه کدنویسی با استفاده از زبان GameMaker برای ایجاد بازی ها در GameMaker Studio 2 می پردازید. GameMaker Studio 2 ...

1398/09/06 314 بازدید
packtpub-create-an-image-target-based-augmented-reality-experience-using-unity-3d-and-vuforia-7-video

استفاده از یونیتی سه بعدی و Vuforia 7، یک واقعیت افزوده مبتنی بر تصویر


در این دوره با کیت توسعه نرم افزار واقعیت افزوده Vuforia، پیکربندی و وارد کردن دارایی‌ها برای ساخت تجربه AR و موارد دیگر آشنا خواهید شد....

1398/09/05 660 بازدید
skillshare-modeling-weapons-for-film-production

آموزش مدل سازی اسلحه ها برای تولید فیلم


در این دوره با مدل سازی اسلحه به عنوان تپانچه آشنا می شوید که جزئیات زیادی دارد. در نهایت unwrap کردن low poly mesh را در UV Headus Tools  فرا خواهید ...

1398/08/30 493 بازدید
pluralsight-fundamentals-of-multiplayer-development-in-unity

آموزش اصول توسعه بازی چند نفره در یونیتی


در این دوره، شما دانش بنیادی توسعه چند نفره را فرا خواهید گرفت. در ابتدا، جمع آوری الزامات معرفی multiplayer در یک پروژه تک نفره را فرا خواهید گرفت. س...

1398/08/30 1194 بازدید
skillshare-unity-2d-game-development-course

دوره توسعه بازی دو بعدی در یونیتی


این دوره با هدف آموزش دانشجویان بدون تجربه در نحوه تبدیل یک بازی روی صفحه به بازی رایانه ایجاد شده است! این کلاس به شما می آموزد که چگونه بازی تخته Ru...

1398/08/25 1053 بازدید
lynda-mixed-reality-development-fundamentals

مبانی توسعه واقعیت ترکیبی (Mixed Reality)


در این دوره نحوه توسعه برنامه‌های واقعیت ترکیبی (mixed reality) جذابی را با استفاده از یونیتی را خواهید آموخت....

1398/08/21 552 بازدید زیرنویس دارد
packtpub-artificial-intelligence-in-game-development-tic-tac-toe-ai

آموزش هوش مصنوعی در توسعه بازی - هوش مصنوعی بازی Tic Tac Toe


در این دوره با نحوه عملکرد بازی ها، ویژگی های مختلف آنها و ماژول های اصلی این دوره آشنا می شوید. معرفی الگوریتم MiniMax و نحوه پیاده سازی آن، نمایش گر...

1398/08/20 1539 بازدید