بخشی از پاورپوینت

اسلاید 1 :

کارگاه توسعه بازيسازی

اسلاید 2 :

عناوين:
صنعت بازيسازی
بازيسازي در غرب
فرآيند توسعه
مشاغل و فعاليتها
برنامه نويس بازيساز
تئوري موتورهاي گرافيکی
پياده سازي موتور گرافيکی

اسلاید 3 :

صنعت بازيسازي
بازيسازي، بخش اعظم صنعت نرم افزار را تشکيل مي دهد.
صنعت نرم افزار، از بزرگترين صنايع جهان و چهارمين صنعت در آمدزا است.
به غير از کنفرانس سالانه GDC، تمامي کشورهاي توسعه يافته سالانه حداقل يک کنفرانس توسعه بازيسازي در کشور خود دارند.
بسياري از شرکتهاي بزرگ جهان، بر روي رشد علم بازيسازي سرمايه گذاري مي کنند. از اين جمله هستند شرکتهاي توليد قطعات سخت افزاري مانند nVidia
صنعت بازيسازي جزو معدود صنايع قانونيست که سود آن نرخ حداکثر معيني ندارد و مي تواند باورنکردني باشد.

اسلاید 4 :

بازيسازي در غرب
ESA نهاد رسمي کنترل فعاليت نرم افزارهاي سرگرمي (بازيها) و حمايت کننده اکثر شرکتهاي بزرگ توسعه بازيسازي در ايالات متحده است.
گزارش نهايي سال 2007

حقايق سال 2006

اسلاید 5 :

فرآيند توسعه

1. مرحله قبل از توليد(pre-Production)
در اين مرحله، ايده طرح بررسي اقتصادي و توانمندي مي شود، سپس داستان کامل مي گردد و طرح به يک ناشر پيشنهاد مي گردد.

2.مرحله توليد (Production)
اين مرحله، قسمت اصلي شروع کار است، کارمندان تکميل شده، طرحهاي اوليه تهيه مي شوند، برنامه هاي اوليه موتور نوشته شده و مدل ها طراحي مي شوند.

3.مرحله جدول زمانبندي (Milestones)
جدول زمانبندي مهمترين قسمت طرح هر پروژه اي به شمار مي آيد، در واقع ناشر طرح دستمزد و پشتيباني را وقتي به ميان مي آورد که يک مرحله از جدول زمانبندي کامل شده باشد. در حقيقت تمامي قدمهاي اصلي توسعه، در جدول زمانبندي با جزئيات کاري و زمانبندي و سرمايه بندي دقيق مطرح مي شوند.

4.نزديک به اتمام(Nearing Completion)
اين مرحله، بيشترين استرس کاري و بيشترين اضافه کار بدون دستمزد را براي توسعه دهندگان در بر دارد. فرآيند تست بازي که فرآيندي وقت گير و خسته کننده به حساب مي آيد، در اين قسمت گنجانده شده است که تفاوت ميان يک بازي خوب و يک بازي عالي را رقم مي زند.

5.تکامل(Completion)
در اين مرحله، اصطلاحا بازي طلايي مي شود، يعني جمع آوري و بسته بندي شده و مشتري پسند مي گردد.

6.نگهداري(Maintenance)
اين قسمت براي بازيهاي کنسول وجود ندارد، اما در مابقي نقش بسيار مهمي ايفا مي نمايد.

اسلاید 6 :

مشاغل و فعاليتها
مشاغل:
تهيه کننده
کارگردان
طراح
برنامه نويس
هنرمند
آزمونگر
طراح مراحل
مهندس صوت
متخصص
فعاليتها:
طراحي
توسعه
برنامه نويسي
آزمون
مستند نگاري
طراحي مراحل
مدلسازي
طراحي داستان
اصوات

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

اسلاید 7 :

بعضي بر اين فکرند که توسعه يک بازي يک پروسه برنامه نويسيست. بعضي ديگر بر اين تصورند که برنامه نويسي تنها جزء کوچکي از توسعه يک بازيست، اما واقعيت براي هر بازي متفاوت است. در زير ليست تخصص هاي برنامه نويسي لازم براي بازي آورده شده اند:
برنامه نويس بازيساز
برنامه نويس گرافيک
برنامه نويس فيزيک
برنامه نويس هوش مصنوعي
برنامه نويس صدا
برنامه نويس شيوه بازي
برنامه نويس رابط کاربر
برنامه نويس ورودي
برنامه نويس ابزار
برنامه نويس تبديل سکو
برنامه نويس پژوهشي
برنامه نويس شبکه
برنامه نويس جلوه ها
دستورالعمل نويس
مدير برنامه نويسي

بسياري از موارد فوق براي يک بازي متوسط مورد نيازند، اما براي يک بازي ساده، گرافيک، فيزيک و هوش مي توانند قسمتهاي درگير کننده و مابقي سطحي باشند، در حالي که براي يک بازي امروزي، تمامي اين موارد در حد کمال خود مورد احتياجند.

اسلاید 8 :

در حالي که بازي هاي دو بعدي نياز چنداني به ويژگيهاي سخت افزاري کارت گرافيکي ندارند، بازيهاي سه بعدي با استفاده از سخت افزار مناسب حدود 1000 برابر سريعتر از سرعت CPU اجرا و پردازش مي شوند!

تئوري موتورهاي گرافيکي
موتورهاي گرافيکي سه بعدي تئوري بسيار گسترده اي دارند به طوري که هر موتور چندين کتاب را براي توضيح روشهاي بکار رفته در آن مي طلبد.
در اين بخش به تعريف و بررسي چند تئوري موتورهاي گرافيکي دو بعدي مي پردازيم و در بخش بعدي، پياده سازي عملي يک موتور گرافيکي دو بعدي را خواهيم ديد. ويژگيهاي مورد بررسي عبارتند از:
بُرش
پَرش
دو حافظگي
حلقه بازيگردان
فريم بر ثانيه
همزماني عمودي
Parallax
انيميشن
حرکت
تصادم

اسلاید 9 :

در انتها يک موتور ساده گرافيکي با امکانات حداقل در مد گرافيکي 13 که مخصوص MS-DOS و بازيهاي قديمي 320x200x256 مي را با استفاده از Turbo C++ پياده سازي مي نماييم.

پياده سازي موتور گرافيکي

اسلاید 10 :

برش به اشکالي گفته مي شود که به سبب جايگزين شدن فريم بر روي صفحه نمايش با فريم قبلي، در ميانه نمايش
تصوير بر روي مانيتور اتفاق مي افتد. اين اشکال، با استفاده از تکنولوژي دوگانگي حافظه و همزماني عمودي مرتفع
برش (Tear)
مي گردد. در حقيقت، برش اکثرا به دليل تغيير جزيي در زاويه ديد دوربين و جايگزين شدن صحنه با تصوير ديگري که
تفاوتي جزئي دارد ايجاد مي گردد. به اشکال زير توجه فرماييد:

اسلاید 11 :

برش (Tear)

اسلاید 12 :

پرش، به دليل کندي انجام محاسبات و عمليات گرافيک يک فريم به وجود مي آيد. چشم انسان معمولي به طور متوسط
مابين 18 تا 24 فريم در ثانيه را تشخيص مي دهد. اگر فريم هايي که در ثانيه نمايش داده مي شوند از اين تعداد کمتر
پرش (Flicker)
باشند، پرش رخ مي دهد. براي از بين بردن پرش، بايد براي محاسبات فريم ها حداکثر زمان وجود داشته باشد و بازي
طوري طراحي شده باشد که محاسبات آن در زماني که برايش وجود دارد انجام پذير باشد.
پرش همچنين ممکن است به دليل عدم تناسب ميان فريم بر ثانيه گيرنده و فرستنده اتفاق بيافتند، مانند پرشي که در
هنگام فيلمبرداري ( 24 فريم در ثانيه) از صفحه مانيتور (60 فريم در ثانيه) پيش مي آيد. به تصاوير توجه فرماييد:

اسلاید 13 :

فريم در ثانيه يکي از مهمترين مقياسهاي تخصصي سرعت موتور يک بازيست. يک بازي متوسط بايد بتواند صفحه را
حداقل با نرخ به روز سازي مانيتور به روز نمايد. بازيهاي حرفه اي (مانند Counter Strike) براي اينکه اجراي زنده و
فريم بر ثانيه (Frame Per Second)
حرفه اي داشته باشند، احتياج به فريم بر ثانيه اي بيش از نرخ به روز رساني مانيتور دارند (براي مثال 100fps)
مکانيزم هاي مهمي براي ثابت نگه داشتن فريم بر ثانيه در بازيها پياده سازي مي شوند، ولي اين مشکل همچنان بازي
سازها را با خوددرگير نگه داشته است.

اسلاید 14 :

تمام بازيهاي کره زمين، از تکنولوژي دو حافظگي استفاده مي نمايند. دو حافظگي راه حل بسياري از مشکلات گرافيکي
بازيهاست، از جمله برش و پرش. براي پياده سازي دو حافظگي، لازم است حافظه اي به اندازه حافظه لازمه براي صفحه
دو حافظگي (Double Buffering)
نمايش، به عنوان حافظه پشتي(back buffer) اختصاص داده شود. در برخي بازيهاي مدرن، از چند حافظگي استفاده
مي شود ولي حافظه مورد نياز براي بافرهايذخيره بسيار بزرگ بوده و ما را در محدوديت بازيسازي قرار مي دهند.
حافظه پشتي مي تواند در حافظهRAM يا در حافظه کارتگرافيک در نظر گرفته شود.

اسلاید 15 :

همزماني عمودي، گزينه ايست که در اکثر بازيها به عنوان يکي از
تنظيمات و در تنظيمات خود کارت گرافيکي موجود است. اگر بازي اي
همزماني عمودي (Vertical Sync)
از همزماني عمودي، استفاده نمايد، فريم بر ثانيه آن حداکثري خواهد
داشت که برابر با نرخ به هنگام سازي مانيتور مي باشد.
همزماني عمودي بدين معناست که بافر پشتي به هنگام Vertical
Retrace بر روي بافر روبرويي کپي شود، تا پرش اتفاق نيافتد. لحظه
Vertical Ret. را در شکل روبرو ملاحظه نماييد:

اسلاید 16 :

تمامي بازي، در يک حلقه اصليي کنترل مي گردد. اين حلقه چند قسمت
حياتي دارد که بدين شرحند:
حلقه بازيگردان (Game Loop)
Loop Game
Input
AI & Feedback
Move Enemy & AI
Resolve Collisions
Draw Graphics
Play Sounds
/Loop

اسلاید 17 :

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

اسلاید 18 :

ويژگي پارالاکس، براي بعد سوم دادن به بازي هاي دو بعدي به کار مي رود، جهت اعمال اين ويژگي، کافيست با
تعريف عمق براي اشياء، آنها را به نسبت عمقشان Scroll نماييم. اين فرآيند در شکل مشخص است:
Parallox Scrolling

اسلاید 19 :

بهتر است حرکت اشياء و موجودات بازي توسط موتور فيزيک آن کنترل شود، بدينسان حرکات نه تنها طبيعي بوده،
بلکه بررسي تصادم و غيره نيز ساده تر مي گردد.
حرکت (Motion)
مکانيزم حرکت فيزيکي، با تعريف بردارهاي سينماتيکي بسيار کاراست، با اين روش مي توان موقعيت شيء در
لحظات قبلي را نيز به راحتي محاسبه کرد و به دست آورد. (جهت بازگرداني جسم به موقعيت قبلي در صورت
تصادم)

اسلاید 20 :

از مباحث به شدت مهم در توسعه بازيسازي، بحث تشخيص تصادم (Collision Detection) است. تشخيص تصادم
در بازيهاي امروزي، نه تنها لازم است بلکه پياده سازي سريع، بهينه و با دقت آن جزو مهمترين چالش هاي
تصادم (Collision)
موتورهاست. مکانيزمهاي تشخيص تصادم در دنياهاي دو بعدي ساده و سريع هستند، ولي مکانيزمهاي بازي هاي
سه بعدي، چالش بر انگيز و کند به نظر مي رسند. دو نمونه تشخيص تصادم در سيستمهاي سه بعدي معروف از
اين قرارند:
* بافر عمق (Z-Buffering):
* پنهان سازي روي پشتي (Backface Culling):
* افراز دوتايي فضا (Binary Space Partitioning):

در متن اصلی پاورپوینت به هم ریختگی وجود ندارد. برای مطالعه بیشتر پاورپوینت آن را خریداری کنید