ورود

View Full Version : حرفه ای: برای شروع چه باید کرد؟ (سوال از حرفه ای ها)



maktab
دوشنبه 14 تیر 1389, 18:50 عصر
سلام
من می خوام شروع به یادگیری ساخت بازی های کامپیوتری کنم! ولی چندتا سوال دارم:
- چه نرم افزارهایی و چه زبانهایی نیاز است؟
- کامپیوتری که بازی ها را توش می سازیم باید چه امکاناتی داشته باشه؟ سیستمی که من باش کار می کنم سطح پایینه (رم، گرافیک و...)
- کتاب آموزشی دارید برام بزارید (البته این سوالی نیست!!!!)

khorzu
چهارشنبه 16 تیر 1389, 11:26 صبح
سلام
همون جور که می دونید برای ساخت یک بازی تخصص های مختلفی باید با هم جمع بشند . برنامه نویس ، گرافیست ، موزیسین ، داستان نویس ، گیم پلی نویس و ... . پس ابتدا باید با توجه به علاقتون یکی از این موضوعات رو انتخاب کنید . مشخصه که به جز برنامه نویس می شه سایر نقش ها رو حذف کرد . هرچند که این کار به کیفیت خروجی ممکنه لطمه بزنه . منظور اینکه راه ورود اگر نخواهید از ابزار های آماده استفاده کنید ، برنامه نویسی هست . البته گزینه ابزار های آماده رو به این راحتی نمی شه کنار گذاشت . ولی با توجه به اینکه اینجا انجمن برنامه نویسی هست یه سری پیشنهاد در مورد شروع برنامه نویسی بازی ها برای گروه های یک نفره (!) هست که عرض می کنم . نکته اینکه من با فرض اینکه منظور شما از حرفه ای اینه که کسی حرفه اش این باشه جرات کردم اینجا چیز بنویسم وگرنه از مطالعه صرف نظر کنید .

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

Beginning C#‎‎‎‎‎‎‎‎‎‎Game Programming/Ron Pentonبرای دانلود اسمشو + رپید شیر گوگل کنید .
( یک نکته مهم اینه که چون هنوز منابع کافی فارسی مرتبط با این موضوع متاسفانه نیست . حتما باید یک آشنایی مختصر با زبان انگلیسی داشته باشید + بابیلون با دیکشنری های تخصصی خیلی میتونه به سرعت مطالعه شما کمک کنه.)


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

http://www.cplusplus.com/doc/tutorial/پیشنهاد : کل این سایت رو با OfflineExplorer دانلود کنید و ازش CHM بگیرید . حدودا 5 مگ می شه .
سعی کنید اون چیزهایی که توی سی شارپ یا گرفته اید توی سی پیاده کنید . تفاوت ها جزئی اند اما چیزی که زود برای شما مشخص می شه سی خشن تر از سی شارپ هست .
اینجا چیز جدیدی که باید بدونید که توی سی شارپ نیازش خیلی پر رنگ نبود ساختار های نگهداری داده مثل آرایه های پویا ، لیست ها ، مپها ، رشته ها و غیره هست . موضوع جدید برای یادگیری ، کتابخانه STL هست . که باز می تونید گوگل کنید و اگر مشکلی بود توی انجمن ها مطرح کنید .

حالا وقت یادگیری برنامه نویسی Win32 هست .یادگیری Win32 به طور کامل ممکنه یک سال طول بکشه اما برای شروع آشنایی با اسکلت کدنویسی یک پنجره کافی هست . منبع :

http://www.toymaker.info/Games/html/windows_api.html پیشنهاد : کل این سایت رو با OfflineExplorer دانلود کنید و ازش CHM بگیرید . حدودا 6 مگ می شه .

http://www.thehavok.co.uk/scene/32bits/tutorials/directx/thebasics/tut1win32basicsdx9.phpپیشنهاد : کل توتریال های این سایت رو با OfflineExplorer دانلود کنید و ازش CHM بگیرید . حدودا 3 مگ می شه .
(یک نکته اساسی که به نظرم اومد بگم اینه که واسه اینکه انگیزه ادامه کارتون رو از دست ندید سعی کنید تحقیقاتتون همه معطوف به خروجی نزدیک به بازی باشه . پس از ورود عمیق به تکنولوژی های جانبی رندرر پرهیز کنید بعد از خروجی گرفتن وقت برای پر کردن نواقص دانشتون هست . نتیجه اینکه فقط به اندازه اینکه لازمه چیز یاد بگیرید . توی این کار فقط Directx ارزش وقت گذاشتن داره .)

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

www.codesampler.com/
http://www.thehavok.co.uk/scene/32bits/modules.php?name=Content
http://www.toymaker.info
http://www.hugi.scene.org/main.php?page=democodingهمچنین مستندات خود دایرکت ایکس که بعد از چند مدت رفیق فابریک شما خواهد شد.
خوب همون طور که می دونید برای ورود به آشنایی با مثلثات ، ریاضیات ماتریس ها و جبر بولی لازم - به طور دقیقتر مفید - هست . این ریاضیات در سطح همین ریاضیات دبیرستانی کشور خودمونه ، پس در این مورد لازم نیست نگران باشید . هرچند که برای شروع برنامه نویسی دایرکت تریدی حتی این مقدار هم لازم نیست .

چند تا نکته دیگه :
1- توی یکی از انجمن ها مرتبط فعال باشید .
2- نمونه ها و توتریال های فرنگی رو ببینید و بروز باشید .
3- مجله های این سایت رو دانلود کنید و ببینید :

http://www.gdmag.com/4- نمونه های DirectX SDk رو ببینید و هدف گذاری کنید تا به اون ها برسید .
5- مسئله عظیم ساخت موتور بازی را به زیر مسئله های ساده تر بشکنید . حتما اول یک موتور ساده دو بعدی بسازید .
6- با کتابخانه های متن باز صدا ، فیزیک ، اسکریپت و ... آشنا باشید و هرگز سراغ کدنویسی دوباره اینها نرید .
7- Unreal Engine و راهنماهای ویدیویی اونو دانلود کنید و با اون بازی بسازید .
8- این سایت لبه توسعه گرافیک ران تایمه . ماهی یک بار ببینیدش و دموسن های برگزیده رو دانلودکنید و ببینید . گروه های فعال این سایت هر از چند مدتی پارتی می گیرند و تبادل تجربه می کنند، فیلم های پرزنتیشن های این پارتی ها ، در مورد گرافیک ران تایم توی سایتاشون هست . ببینید :

http://www.scene.org/
http://awards.scene.org/nominees.php
http://www.assembly.org/9- باید با معماری موتور های بازی آشنا باشید . در مورد رندرر می تونید یک مدت با OGRE3D کار کنید + این یکی که اگه لایسنس گنو داشت من سراغ کد زدن از اول نمی رفتم :

http://frontend.outracks.net/about/10- بعد از کدنویسی اولیه هسته موتور میتونید با استفاده از تجربه سی شارپتون برای ساختن سریع اولین WorldEditor موتورتون پیش قدم بشید . این یک راه حل فراگیره برای توسعه تولست .هسته توی سی ، تولست توی دات نت.
11- آموزش های این سایت رو از توی تورنت می شه گیر آورد . یگانست .اگر پیدا نشد ما هستیم:

http://www.gameinstitute.com/12 -جشنواره بازیهای مستقل . برای کمک به افزایش خلاقیت ، بازی های برگزیده رو دانلود کنید . خیلی از این بازی ها از کتابخانه های متن باز استفاده می کنند . معمولا توی فایل readme اون ها این کتابخانه لیست شدند . با بررسی این موارد می شود در مورد کارایی این کتابخانه ها تحقیق کنید.

http://www.indiegames.com/13- ردیف 13 برای توصیه به کار گروهی . چیزی که توی کت ما نمی رود .
14- تمهیداتی برای استقلال از پلتفرم داشته باشید .
15- به خدا و قدرت و کمکش اعتقاد جدی داشته باشید . این برگ برنده ماست .
16- هر از گاهی workshop+ "موضوع مورد تحقیق" رو گوگل کنید . چیزایی پیدا می شه تو این اینترنت .
17- چند تا گروه حرفه ای توی ایران دارن روی این موضوع کار می کنند. توی وبلاگ پروژهاشون چیزای مفیدی پیدا می شه.
18- یادتون نره که همه دعوا توی گیم پروگرمینگ سر پرفورمنسه . توی همه تصمیمات این مولفه رو وارد کنید .
19- یک خط ADSL ارزون بگیرید و تا مشکلی پیش اومد اون رو به انگلیسی ترجمه کنید و گوگل کنید . همه کارایی رو که ما می خوایم بکنیمو اونا 100 سال پیش کردن.
20- یک فایل 4 گیگی توی تورنت هست که همه کتابهای مرتبط با بازی سازی توی اون هست . اگه ندیدینش ما هستیم .

در مورد کامپیوتر هم اگه گرافیکش شیدر ماژول 3 رو داشته باشه خوبه . ولی واسه شروع لازم نیست سخت افزار پیچیده ای داشته باشید .
در مورد نرم افزار هم که اون چیزی که یک برنامه نویس لازم داره Visual Studio هست . اگر بتونید آخرین نسخه اونو نصب کنید . همچنین Directx SDK که باید دانلود کنید . یا از فروشگاه های اینترنتی تهیه کنید . سایر نرم افزار هایی که ممکنه بلد بودنش بدرد بخوره فتوشاپ و مکس هست . تیم های مستقل فرنگی رسم دارند از ابزار های رایگان استفاده کنند . مثلا بجای مکس از بلندر یا بجای فتو شاپ از گیمپ . ایده خوبیه ولی مشکلات خودشو داره ...
موفق باشید .