قدیمی 24-08-2010, 01:54 PM   #1
3dman
(کاربر باتجربه)
 
تاریخ عضویت: May 2010
نوشته ها: 113
Icon34 شروع بازی سازی

برای شروع ساخت بازی باید از کجا شروع کرد؟

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

از کدام دسته هستید؟
در صنعت توسعه بازی اگر بخواهیم به صورت کاملاً کلی بازی سازان را تقسیم کنیم آنها به دو دسته سازندگان ابزارهای مورد نیاز ساخت بازی (همچون سازندگان موتورهای بازی و...) و همچنین استفاده کنندگان از این ابزارها برای ساخت بازی تقسیم می شوند. به دسته اوّل توسعه دهنده ابزارهای ساخت بازی و به دسته دوّم توسعه دهنده بازی می گویند. در حال حاضر بازی سازان کشور ما فقط از دسته دوم هستند و هنوز دسته اوّل به صورت کامل ایجاد نشده است که تلاش این مجله و سردبیر آن بر این است که با اجرای طرح تخصصی نمودن بازی سازان ایرانی یک تغییر اساسی در صنعت بازی سازی ایران انجام پذیرد و آن دسته اوّل هم در ایران ایجاد شده و سپس دسته اوّل به تولید ابزارها و موتورهای ساخت بازی پرداخته و دسته دوّم هم با استفاده از آن ابزارها بازی های بومی بسازند که انشالله با اجرای این طرح می توان به صورت کامل مدعی شد که این صنعت در ایران بومی شده است.

دسته دوم یعنی استفاده کنندگان از ابزارها هم خود به دو دسته هنرمندان و برنامه نویسان تقسیم می شوند. مسلماً از نام این دو دسته مشخص است که چه کارهایی انجام می دهند. برنامه نویس ها بیشتر به کار کد نویسی و اسکریپت نویسی در محیطهای متنی می پردازند و هنرمندان هم به کارهایی نظیر طراحی دو بعدی، مدل سازی سه بعدی (به عنوان مثال یا کمک برخی نرم افزارها همچون 3D Studio Max طرح های دو بعدی را به یک مدل سه بعدی در فضای سه بعدی تبدیل می کنند.) و سایر کارها نظیر طراحی مراحل و... هستند. البته لازم به ذکر است که ما در شماره گذشته مجله بصورت کامل پیرامون اعضای یک گروه ساخت بازی بحث کرده ایم. در کل براساس علاقه به هر کدام از این دو دسته که تمایل پیدا کردید می توانید در همان سمت کار را شروع کنید. ما ابتدا از شروع کار مدل ساز ها شروع می کنیم و سپس به شروع کار برنامه نویس ها خواهیم رسید. البته در کارهای هنری طراحان دو بعدی مسلماً نقش فراوانی را دارند امّا ترجیح می دهیم که در مورد تولید بافت فعلاً صحبت خاصی نکنیم و آن را موکول به مقالات آموزشی که در آینده پیرامون طراحی بافت در این تارنامه منتشر خواهد شد واگذار کنیم.

شروع کار مدل ساز ها
مسلماً شروع کار شما با توجه بر این که دوره های آموزشی مدلسازی به سبک LowPoly در کشور ما تقریباً نیست و من خودم شخصاً با بسیاری از آموزشگاه ها صحبت کرده ام و معیار آنها بیشتر از یادگیری مدلسازی ساختن مدل های High Poly برای پروژه های پویانمایی است به نظر می رسد که راه یادگیری شما تاحدودی سخت تر از برنامه نویس ها باشد. البته شم در ابتدا می توانید پایه مدل سازی را یاد بگیرید و از این پایه شروع به مطالعه کتب مربوط به مدلسازی کنید. مسلماً یکی از راه های خوب برای مدلساز شدن استفاده از تصاویر برخی اشیا به عنوان مرجع و کمک از آنها برای ساختن مدل سه بعدی آن می باشد. این تصاویر می تواند بر اساس طرح هایی باشد که خودتان بر اساس تخیلاتتان بر روی کاغذ کشیدید یا تصاویری باشد که توسط دوربین از اشیا گرفته اید. هر چند که پیشنهاد من شروع بااستفاده از تصاویر واقعی و همچنین اشیایی خیلی ساده و ابتدایی است. برای شروع حتی می توانید از کتب مختلف آموزش مدلسازی در بازار استفاده کنید. بهترین نرم افزار مدلسازی برای توسعه دهندگان که محبوبیت بسیاری هم دارد 3D Studio Max است البته علت هایی دیگری هم از این استفاده وسیع توسعه دهندگان است همچون این که خروجی بسیاری از موتورها در این نرم افزار بسیار قوی تر و بهتر کار می کند. البته نباید از قدرت وسیع نرم افزار Maya غافل شد و مسلماً نرم افزار Maya هم می تواند گزینه دوم و خوبی برای شروع مدلسازی باشد. البته نرم افزارهای دیگری هم هستند امّا چون منابع آموزشی برای این دو نرم افزار بیشتر از سایر نرم افزارها است من یکی از این دو را به شما توصیه می کنم. هرچند که نرم افزار Zbrush که برای ساخت و طراحی شخصیت به کار می رو سر و صدای زیادی به پا کرده و از کار با آن نباید غافل شد.

شروع کار برنامه نویس ها
کدام دسته: توسعه دهندگان ابزار یا بازی
در صنعت توسعه بازی عموماً برنامه نویسان ساخت بازی به دو دسته توسعه دهندگان ابزار و توسعه دهندگان بازی تقسیم می شوند. تفاوت اصلی این دو دسته در این است که توسعه دهندگان ابزار متشکل از برنامه نویسان متخصص و با تجربه ای هستند که به ساختن ابزارهای مورد نیاز برای تولید بازی می پردازند. امّا توسعه دهندگان بازی کسانی هستند که از ابزارهای ساخته شده توسط توسعه دهندگان ابزار استفاده می کنند. هر دو این گروه یک هدف دارند ساخت شدن بازی. اما توسعه دهندگان ابزار شاید در عمرشان حتی یک بازی کامل هم نسازند و اگر هم چیزی بسازند در حد یک نمونه کار اجرایی با موتور می باشد و همچنین به خاطر تخصصی بودن کار و نیاز به دانش بالا در علوم برنامه نویسی و ... کار این افراد بسیار سخت امّا از نظر خودشان شیرین و لذت بخش می باشد. در ایران هم عده ای توسعه دهنده ابزار هستند اما در اقلیت هستند و بیشتر بازی سازان ایرانی یک توسعه دهنده بازی هستند. ما هنوز کسی را در ایران مشاهده نکرده ایم که یک موتور کامل ساخت بازی ایرانی را طراحی کند. البته کسانی بودند که با تلاش و پشتکار زیاد توانسته اند یک رندرگر ساده یا یک ویرایشگر مرحله بسازند امّا هنوز تا رسیدن به یک موتور کامل راه بسیار زیادی در پیش است و بازی بازهای ایرانی نباید فریب برخی شیادان که ادعای ساخت موتور بازی را می کنند امّا از کوچکترین اطلاعات فنی برخوردار نیستند را بخورند. تنها راه پیشرفت کشور توسعه دادن ابزارهای ساخت بازی مانند موتور بازی است و این توسعه دهندگان ابزارهای ساخت بازی هستند که آینده این صنعت در کشور ما را تعیین می کنند مسلماً اگر توسعه دهندگان ابزار در صنعت جهانی ساخت بازی نباشند هیچ توسعه دهنده بازی نمی تواند هیچ بازی بسازد. هدف، ساخت یک بازی نباید باشد بلکه هدف باید رسیدن به علم ساخت بازی باشد. و ما اگر تا ابد هم یک توسعه دهنده بازی باشیم و با موتورهای آماده اقدام به ساخت بازی بکنیم نمی توانیم به دانش ساخت بازی آن هم به صورت کامل دست پیدا کنیم. امّا کسی که تجربه اندکی در علوم برنامه نویسی دارد نمی تواند و یا سخت می تواند ابتدا برای ساخت یک موتور فعالیت کند و باید ابتدا با یک موتور منبع باز آماده کار کند و آن را توسعه دهد و وقتی که توانست نمونه های گرافیکی و یا حتی یک بازی توسط این موتور ها بسازد آنوقت می تواند اقدام به تلاش برای ساخت یک موتور بازی اختصاصی بکند. عده دیگری هستند که سعی می کنند از نرم افزارهایی که بصورت کاربردی (Application) برای ساخت بازی طراحی شده استفاده کنند. این افراد هیچ علم و دانشی از برنامه نویسی ندارند و فکر می کنند که ساخت یک بازی یعنی چند کلیک موشواره و ساخته شدن بازی. امّا این مساله اصلاً صحیح نیست و برای ساخت بازی باید زحمات فراوانی توسط یک گروه کاملاً مجرب و با تجربه در برنامه نویسی انجام گردد و کسی که هنوز مقدمات علم برنامه نویسی را نمی داند مسلماً نمی تواند یک بازی ساز خوب شود. برخی از افراد هم فکر می کنند که با نوشتن چند خط کد اسکریپت ساده در نرم افزارهای بسیار ساده ساخت بازی (نظیر Game Maker یا 3D Game Studio) به یک برنامه نویس تمام عیار بازی تبدیل شده اند این در حالی است که هیچ کدام از بازی سازان بزرگ دنیا با اسکریپت نویسی ساده در این نرم افزارها بزرگترین بازی های دنیا را نساخته اند که اکنون این افراد ساده لوح می خواهند با توسل به این نرم افزارهای ساده بزرگترین بازی ها را بسازند بلکه این نرم افزارها فقط برای شروع کار مفید است و کاربر به محض این که توانست با کمک این نرم افزار یک بازی ساده را بسازد باید سریعاً از کار با آن دست کشیده و به سمت ابزارهای قوی تر و بهتر برود.

کسانی که کاملاً مبتدی هستند باید علم برنامه نویسی را یاد بگیرند و می توانند در کنار یادگیری یک زبان برنامه نویسی علم برنامه نویسی را هم یاد بگیرند. یک شخصی که می خواهد یک بازی ساز بشود ابتدا باید یک برنامه نویس متبحر شود و به نوعی پیش نیاز بازی ساز شدن برنامه نویس شدن می باشد. شما باید با مباحث عمومی علم برنامه نویسی نظیر متغیرها، آرایه ها، رشته ها، توابع و همچنین با مباحث شی گرایی نظیر ارث بری، چند ریختی، کلاس ها و... آشنا باشید.

انتخاب زبان برنامه نویسی
اولین کار انتخاب زبان برنامه نویسی است تا در عین یادگیری آن زبان با علم برنامه نویسی هم آشنا شوید. شما می توانید از میان این چند زبان یکی را انتخاب نمایید.
Basic, Pascal, C, C++, Java...
پیرامون این که کدام زبان برای ساخت بازی بهتر است بحث های زیادی بین افراد شده است. امّا من توصیه می کنم از زبان های C یا C++ شروع کنید. برخی از مردم می گویند که این زبان بسیار حرفه ای و تخصصی است و مناسب مبتدی ها نیست. امّا در حقیقت این گونه نیست. چرا که امروزه این زبان بیشترین استفاده را در توسعه نرم افزار و بازی دارد به طوری که اکثر موتورهای ساخت بازی در جهان توسط این زبان ساخته شده و تحت این زبان کار می کنند و همچنین این زبان بیشترین منبع و راهنما را دارد. اگر زبان C++ را در ابتدا شروع به یادگیری کنید می توانید ابتدا برنامه نویسی رویه ای را یاد بگیرید و سپس برنامه نویسی شی گرایی را فراگیرید. البته هیچ ترسی نباید نسبت به این زبان داشته باشید و من فکر می کنم که اگر شما یک منبع بسیار خوب یادگیری را پیدا کرده و توسط آن شروع به یادگیری این زبان کنید مشکل خاصی پیدا نخواهید کرد.
البته برخی از افراد هم می گویند زبان Basic برای شروع خوب است اما این زبان با این که آسان و ساده می باشد اما دست شما را در بسیاری از قابلیت ها می بندد و در حقیقت این سادگی بیش از حد آن و ساختار فوق العاده قدیمی آن باعث شده که هر روز بر طرفداران این زبان کمتر شده و اکثر افراد به سمت زبان C++ روی بیاورند. بزرگترین انتقادی که به این زبان وارد می شود نبود قابلیت شی گرایی در این زبان می باشد. روی گردانی از زبان Basic آنقدر فراگیر شده که کمپانی TheGameCreator که یکی از بزرگترین حامیان این زبان برای توسعه بازی بود بالاخره تسلیم شد و در سال گذشته پیش یک کیت جدید با نام DarkGDK را ارائه داد که این کیت تحت کامپایلر Visual C++ 2008 کار می کند. هم اکنون در بیشتر دانشگاه های معتبر دنیا مدت هاست که دیگر زبان Basic تدریس نمی شود و به جای آن به یادگیری زبان های نوپایی نظیر C# و یا زبان C++ پرداخته می شود. و انتقادهای فراوانی هم در ساختار قدیمی و غلط نظام آموزشی ایران که همچنان این زبان را در رشته کامپیوتر یاد می دهند وارد است.
اکنون شاید شما بپرسید چگونه زبان C++ را یاد بگیرم؟ خوب من خوشحالم که شما بهترین راه و انتخاب را در برنامه نویسی پیدا کرده اید. بهترین راه برای یادگیری این زبان رفتن به یک کلاس آموزشی است؟ حال این کلاس می تواند در دانشگاه باشد یا اینکه شما یک کلاس آموزشی آزاد بروید. امّا بهترین راه ممکن همین می باشد چرا که اگر یک استاد به شما دروس برنامه نویسی را یاد بدهد و در عین حال به مشکلات شما رسیدگی کند و پاسخ دهد خیلی سریع تر از سایر راه ها به این زبان مسلط خواهید شد.
اگر امکان رفتن به کلاس آموزشی برنامه نویسی به زبان C++ را ندارید راه بعدی گرفتن یک کتاب آموزشی خوب می باشد.
البته شاید نتوانید یک کتاب را پیدا کنید که در آن تمام مباحث این زبان بزرگ را یک جا با تمام جزئیات جمع کرده باشد چون این زبان فوق العاده ساختار وسیعی دارد. امّا می توان برای شروع از کتب مقدماتی برنامه نویسی این زبان شروع کرد و سپس کتب حرفه ای را خواند. بهترین کتابی که من پیرامون برنامه نویسی این زبان دیدم کتاب (چگونه با C++ برنامه نویسی کنیم؟) نوشته دایتل و دایتل است که ساختار این کتاب بدین صورت است که از مقدماتی ترین مسائل برنامه نویسی تا حرفه ای ترین مباحث را با جزئیات کامل به همراه نمونه کد و مثال توضیح می دهد. همچنین در 6 فصل اوّل برنامه نویسی رویه ای را به شما یاد داده و در فصول بعدی به مباحث شی گرایی می پردازد.
همچنین در اینترنت می توانید آموزش های مختلفی پیرامون این زبان را یاد بگیرید. همچون پایگاه (http://www.mcp.com/personal) . و بزرگترین مرجع توابع و ساختار C++ که MSDN کمپانی مایکروسافت می باشد و به همراه کامپایلر محبوب و معروفش یعنی Visual Studio ارائه شده است.

انتخاب یک کامپایلر
برنامه هایی که شما می نویسید یا سورس کدهایی که در اختیار دارید در حقیقت یک فایل متنی هستند حتی شما می توانید از Notepad سیستم عامل Windows برای نوشتن کدهای C++ استفاده نمایید. امّا این فایلهای متنی حاوی کد باید به یک فایل اجرایی تبدیل شوند تا قابل استفاده برای همه شوند. که این کار تبدیل را ابزاری با نام کامپایلر انجام می دهد. در حقیقت کامپایلر رابطی است که کدهای برنامه نویسی را به کدهای باینری شده (بصوت 0 و 1) تبدیل می کند تا قابلیت خواندن کدها توسط رایانه بوجود آید. امروزه تعداد بسیار زیادی کامپایلر برای زبان C++ وجود دارد که اکثر آنها هم رایگان می باشند و در بازار ایران هم به راحتی می توان آنها را یافت. بهترین گزینه ها Borland C++ Builder و ++Microsoft Visual C می باشد که ما ++Microsoft Visual C را پیشنهاد می کنیم. این کامپایلر آنقدر قوی است که می تواند تمامی کدهایتان را به 0 و 1 محض تبدیل کرده و هیچ نشانی از کدهایتان را بعد از کامپایل نگذارد حتی تمام متون اضافی که برنامه نویس در حین کدها با استفاده از علامت // در قلب کدها قرار می دهد تا پیرامون کدها توضیح بدهد را حذف می کند. سرعت فراوان و اشکال زدایی فوق العاده پیشرفته از دیگر قابلیتهای این کامپایلر می باشد.

ساختن یک موتور بازی
مسلماً بهترین راه برای ساخت یک بازی این است که شما ار ابتدا یک موتور ساخت بازی را طراحی و بسازید. مطمئن باشید بازی ساخته شده تان هرچقدر هم که بی کیفیت باشد در عوض ارزش تجربه و دانشی را که بدست می آورید را دارد. اما نباید فراموش کرد که این کار به دانش بسیار بالا و تحقیقات گسترده نیاز دارد. و مسلماً یک فرد مبتدی با تجربه کم در کار با موتورها و برنامه نویسی نمی تواند به راحتی این کار بزرگ را انجام بدهد. بهترین زبانها برای این کار ++C و #C هستند. چون منابع خوب و لازم در مورد آنها است. DirectX چون از رابط COM استفاده می کند از پیچیدگی بیشتری برخوردار است امّا در عوض کارهای بسیار خوب و قوی می توان با آن کرد و می توان آینده و پیشرفت را در این API دید زیرا این API مخصوص سیستم عامل ویندوز است و همان طور که می دانید اکثریت بازی بازها در کل جهان از این سیستم عامل برای بازی هایشان استفاده می کنند. OpenGL هم می تواند گزینه خوب و سریعی باشد و بزرگترین مزیت OpenGL آسان و سریع بودن آن است.


نويسنده: محمد غضنفري
منبع: igdmag.com

ویرایش توسط 3dman : 24-08-2010 در ساعت 05:56 PM
3dman آنلاین نیست.   پاسخ با نقل قول
پاسخ

برچسب ها
شروع کار بازی سازی


کاربران در حال دیدن موضوع: 1 نفر (0 عضو و 1 مهمان)
 
ابزارهای موضوع
نحوه نمایش

مجوز های ارسال و ویرایش
شما نمیتوانید موضوع جدیدی ارسال کنید
شما امکان ارسال پاسخ را ندارید
شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
شما نمیتوانید پست های خود را ویرایش کنید

BB code هست فعال
شکلک ها فعال است
کد [IMG] فعال است
کد HTML غیر فعال است

انتخاب سریع یک انجمن

War Dreams    Super Perfect Body    Scary Nature    Lovers School    Winner Trick    Hi Psychology    Lose Addiction    Survival Acts    The East Travel    Near Future Tech    How Cook Food    Wonderful Search    Discommend

Book Forever    Electronic 1    Science Doors    The Perfect Offers    Trip Roads    Travel Trip Time    Best Games Of    Shop Instrument    Allowedly


All times are GMT. The time now is 12:55 PM.


کپی رایت © 1388 . کلیه حقوق برای وبگاه حرف روز محفوظ است