1 / 20

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

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

phelan-orr
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  13. فريم بر ثانيه (Frame Per Second) فريم در ثانيه يکي از مهمترين مقياسهاي تخصصي سرعت موتور يک بازيست. يک بازي متوسط بايد بتواند صفحه را حداقل با نرخ به روز سازي مانيتور به روز نمايد. بازيهاي حرفه اي (مانند Counter Strike) براي اينکه اجراي زنده و حرفه اي داشته باشند، احتياج به فريم بر ثانيه اي بيش از نرخ به روز رساني مانيتور دارند (براي مثال 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. Parallox Scrolling ويژگي پارالاکس،براي بعد سوم دادن به بازي هاي دو بعدي به کار مي رود، جهت اعمال اين ويژگي، کافيست با تعريف عمق براي اشياء، آنها را به نسبت عمقشان Scrollنماييم. اين فرآيند در شکل مشخص است:

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

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

More Related