بخش سوم -اشنایی با ساختار موتور بازی
اشنایی با ساختار موتور بازی
مقدمه: بسیاری از مردم بازی را با موتور بازی اشتباه می گیرند، اما درست مثل این است که یک شخص موتور یک خودرو را با خود خودرو اشتباه بگیرد. می توان موتور خودرو را بیرون اورده و با یک پوشش جدید خودروی جدیدی ساخت، این مثال تا حدی تفاوت ان دو را نشان می دهد.
رندرگر:بطور کلی اولین چیزی که در ساختن یک موتور باید به ان فکر کرد رندرگر ان است. رندرگر نتیجه دیدن بازیکن در بازی را تولید میکند. یعنی به بیان بهتر ان چیزی را که بازیکن باید ببیند رندرگر برایش تولید میکند و به نوعی چشم بازیکن دریک بازی کاملا به رندرگر موتور وابسته است، با این حساب رندرگر اهمیت فوق العاده ای پیدا می کند. بیش از 50 درصد قدرت پردازشگر برای رندرگر مصرف می شود، البته برای گرفتن پیکسل ها در صحنه در این روزها احتیاج به کارت های گرافیکی جدیدتر ، توابع کاربردی مختلف ،ریاضیات سه بعدی وطرز کار سخت افزار های سه بعدی دارد. اگر کسی بخواهد برای یک کنسول بازی بسازد احتیاج به برخی اطلاعات دیگر هم دارد چرا که روند کار یک کنسول بازی با یک رایانه کاملا متفاوت است و پیکربندی کنسول بر اساس تصویر در زمان است نه فریم در زمان یکی از دلایلی که کمتر کسی سراغ XNA می رود این است که XNAبر پایه ساخت بازی برای کنسول است نه برای رایانه . البته می توان برای رایانه هم توسط این ابزار بازی ساخت اما چون روند کار کنسول اجرای بازی با استفاده از قدرت CPUاست در نتیجه XNA تنها از قدرت CPUاستفاده می کند و نه از قدرت کارت گرافیک و این مساله باعث می شود که تنها کسانی که تمایل به ساخت بازی برای کنسول دارند به سمت XNAبروند.
گرافیک سه بعدی در اصل هنری است که بیشترین چیز را با کمترین کارها می سازد. اشیای سه بعدی در جهان سه بعدی درحقیقت نقاطی هستند که به انها راس (vertices)می گویند که این رئوس خط را رسم می کند به عنوان مثال یک جعبه را در نظر بگیرید که دارای 8 راس می باشد،همچنین این جعبه دارای 6 سطح است که اطراف جعبه را پر می کند، این مثال یک مثال بسیار پایه ای از یک شی سه بعدی درون جهان سه بعدی است که در مسائل پیچیده چندین هزار راس و سطح وجود دارد.
چگونه مدلها و جهان سه بعدی (مراحل) قسمتی از توابع رندرگر هستند؟
در بسیاری از قسمتهای کاربردی بازی ، منطق بازی نیازی به دانستن این که چگونه اشیا در حافظه قرار میگیرند و یا اینکه رندرگر چگونه برای نمایش حرکت می کند ندارد ، بلکه یک نمونه بازی احتیاج به این دارد هنگامی که رندرگر می رود برای نمایش اشیای بازی ، اشیا را بدرستی و با فریم منظم و دقیقی نمایش دهد.
در یک موتور خوب تعویض رندرگر با یک رندرگر جدید به خوبی امکان پذیر است یعنی بتواند به راحتی یک رندرگر جدید و با قابلیت بهتر برایش بنویسد و با رندرگر قدیمی تعویض کند.
برای نمایش نقاط در فضای سه بعدی راه های دیگری هم هست، یکی از این راه ها استفاده از سیستم مختصات می باشد که با استفاده از قوانین ریاضی می توان از این راه استفاده کرد و از معادله برای شرح مستقیم بودن یا کج بودن خطوط استفاده کرده و به چندضلعی ها دسترسی پیدا کرد. هم اکنون تمامی کارت های گرافیکی از اشیای ابتدایی گرافیکی پشتیبانی میکنند. اشیای ابتدایی گرافیکی پایین ترین واحد رندر در کارت گرافیکی به شمار می رود.
اکنون یک مشکل داریم من جهانی را تشریح می کنم که دارای صد ها هزار راس و چند ضلعی می باشد. من یک دوربین اول شخص را در گوشه ای از این جهان 3 بعدی می گذارم. در این نما برخی از چند ضلعی ها polygonsنمایان هستند و باقی انها هم در دید دوربین نمایان نیستند زیرا برخی اشیاء در پشت اشیای دیگر مخفی هستند. ( مانند اشیای پشت دیوار ). بهترین برنامه نویسان بازی های رایانه ای هم نمی توانند برای یک نمای همراه با 300 هزار چند ضلعی طوری برنامه نویسی کنند که بازی با 60 فریم در ثانیه یا بیشتر اجرا گردد. پس ما باید از برخی تکنیک های مخصوص برای حل این مشکل استفاده کنیم. که بهترین کار حذف چند ضلعی هایی است که در نمای جاری نمایش داده نشده اند. که به این کار اصطلاحاً تکنیک cullingمی گویند.
تکنیک cullingدر حقیقت قسمت هایی از جهان 3 بعدی را نمایش نمی دهد. یک موتور بازی می تواند حجم کار را تا حدود زیادی کم کند. تصور کنید که در نمایی که قرار دارید یک اتاق پر از اشیاء قرار دارد و ان اتاق در طبقه پایین است و شما در نمایی قرار دارید که نمی توانید این اتاق و محتویات درونش را ببینید پس چه احتیاجی به فعال بودن ان اتاق و اشیای درون ان هست در نتیجه این اتاق و اشیای درون ان غیر فعال می گردند و یک بار اضافی کم می شود.
شیوه ساده cullingجهان را به چند قسمت تقسیم می کند. که هر قسمت دارای لیستی از قسمت هایی است که می تواند دیده شود. با استفاده از این روش نمای دید ما در هر نقطه ای فقط قسمت هایی را می بیند که امکان دیدن برایش در ان قسمت هست. خوب سؤال اینجاست که چگونه یک همچنین لیستی را از قسمت های مختلف تهیه کنیم. یکی از روش های تهیه لیست استفاده از تکنیکی تحت عنوان درخت BSPمی باشد.تکنیک BSPدر حقیقت یک روش برای تقسیم بندی جهان به قسمتهای کوچکتر می باشد و با سازماندهی به راحتی می توان تصمیم گرفت که کدام نمایش داده شود و کدام نمایش داده نشود.
برخی از چند ضلعی ها در موتور بازی را convex می نامند. Convex به شی ای میگویند که هر جفت نقطه در روی شی فقط بصورت یک شی مستقیم به هم وصل شوند درست همچون دو تصویر زیر که در تصویر راست ، شی مورد نظر ما convex نیست و خط صاف بین دو نقطه در میانه راه از شی خارج می شود ولی در تصویر دوم خط بین دو نقطه ایجاد شده بر روی شی بدون خارج شدن به هم وصل می شوند
یک موتور پایه Portal (اولین سه بعدی بازی اورده شده از پروژه تمام شده) که ناحیه یا اتاقی است به همراه یک مدل با درها یا دروازه ها که در هر قسمت می توان قسمت های دیگر را دید .رندرگر هر قسمت را اختصاصی و جدا رندر می کند . برخی از تکنیک ها هم مشمول عنوان occlusion culling می شوند . اما در کل تمامی این تکنیک ها هدف یکسان دارند و ان زدودن کارهای اضافی می باشد.
برای یک بازی اول شخص اکشن shooter first person ، هنگامی که مقداری از چند ضلعی ها در نمای دید هستند و بازیکن کنترل کامل دید را به عهده دارد این خیلی مهم است که چند ضلعی هایی که دیده نمی شوند رها (cull) شوند ، بااین کار در حقیقت یک فضای مجازی را برای خود نگاه داشته ایم.هنگامی می توان راه های بسیار طولانی را دید که چرخه culling را از دور خودش خارج کرد، انوقت محدودیت دید زیاد می گردد، مانند یک بازی با سبکRTS(real time sterategy)که کاری ساده ولی مهم است.
خط لوله گرافیکی یک رندرگر
اکنون در زیر یک نمونه ساده از خط لوله گرافیکی یک بازی با رندر شدن اشیای ان را با ارائه توضیحات نشان خواهیم داد.
بازی تعیین می کند که چه اشیایی در بازی هستند ، چه مدلهایی دارند ، از چه بافت هایی استفاده می کند، چه فریم های پویانمایی(animation) توانایی اجرا دارند و جهان بازی در چه محلی قرار دارد و همچنین بازی تعیین می کند که دوربین در چه موقعیتی قرار بگیرد.
بازی اطلاعات را به رندرگر می دهد ، در مورد مدل ها رندرگر ابتدا به اندازه مدل نگاه می کند، موقعیت دوربین در محل، و سپس تعیین می کند که مدل در تمام صحنه نمایش داده شود یا در چپ یا راست بیننده (دوربین) یا پشت سر او قرار دارد و یا فاصله تا بیننده به حدی است که نمایش داده نشود.
تعیین سیستم تجسمی جهانی هنگامی است که دوربین در جهان قرار گرفته و معلوم گردد که چه قسمت یا چند ضلعی در نمای دوربین نمایش داده شود. این کار می تواند از طرق مختلف انجام گیرد ، یکی از راه ها استفاده از درخت BSP است ، به این صورت که مرحله را به قسمت های مختلف تقسیم کرده و سپس برای هر قسمت تعیین کنیم که ایا به عنوان مثال در قسمت Dکاربر می تواند قسمت ها و چند ضلعی های قسمت A ،B و C را ببیند یا نه، سپس تمامی چند ضلعی ها از تست عبور کرده و به رندرگر فرستاده شوند.
برای هر چند ضلعی که از رندرگر عبور می کند ، رندرگر برخی عملیات های تغییر شکل را طبق محاسبات محلی (به معنی انیمیشن خود مدل ) و محاسبات جهانی (به معنی جای مدل نسبت به دوربین) و سپس ازمایش چند ضلعی (به معنی پوشش کنار دوربین) محاسبه می کند. مسلما چند ضلعی هایی که در عقب باشند رها می گردند، سپس رندرگر نگاه می کند که این چند ضلعی از چه بافت هایی استفاده می کند و سپس API یا کارت گرافیکی را مامور به استفاده از این بافت برای رندرگر می کند.
ظاهرا این خط لوله خیلی ساده است اما در واقع این ساده ترین نوع کار یک رندرگر است . اکنون در زیر برخی قابلیت های یک رندرگر را می بینیم :
1.Application/Scene
Scene,Geometry database traversal
Movement of object and aiming and movement of view camera
Animated movement of object models
Description of the contents of the 3D world
Object Visibility Check including possible Occlusion Culling
Select Level of Detail (LOD)
2.Geometry
Transforms (rotation, translation, scaling)
Transform from Model Space to World Space (Direct3D)
Transform from World Space to View Space
View Projection , Trivial Accept/Reject Culling , Back-Face Culling
Lighting , Perspective Divide-Transform to Clip Space
Clipping , Transform to Screen Space
3.Triangle Setup
Back-face Culling , Slope/Delta Calculations , Scan-Line Conversion
4.Rendering / Rasterization
Shading , Texturing , Fog , Alpha Translucency Tests
Depth Bufering , Antialiasing (optional) , Display
معمولا چند ضلعی ها را درون برخی از انواع لیست ها تزریق می کنند و سپس نوع این لیست را مطابق با بافتها قرار می دهند. راه دیگر، تزریق یکباره بافت ها به درون کارت است که این روش سریع تر است.
همچنین میتوان از روش چند ضلعی هایی که بر اساس فاصله با دوربین تنظیم می شوند استفاده نمود به این صورت که ابتدا دورترین نقاط رندر شوند سپس چند ضلعی های نزدیکتر. یک رندرگر چندضلعی ها را از عقب به جلو رندر می کند ، یکمرتبه برنامه کاربردی صحنه را از APIقطع می کند وAPI از شتاب دهنده سخت افزاری برای تغییرات و نور پردازی استفاده می کند که به این تغییرات و نور پردازی اصطلاحا و به اختصار T&L می گویند. اکنون در پیش پاافتاده ترین کارت های گرافیکی سه بعدی از اعمال تغییرات و نورپردازی پشتیبانی میشود ، بدون این که وارد محاسبات ماتریس شود. این تغییرات به کارت گرافیک این اجازه را می دهد تا چند ضلعی ها را با نهایت دقت ترسیم و با زوایای صحیح ، درست در محل ان درون جهان سه بعدی رندر گردد.
عملیات نور پردازی بر روی براقیت و روشنایی رنگ های بافت ها کار می کند و این که چگونه نور ها بر روی رئوس می افتد و با چه زاویه ای .در گذشته این CPUبود که مسائل را محاسبه می کرد اما بعد از چندین سال که سخت افزار های گرافیکی پیشرفت قابل ملاحظه ای کردند وظیفه این محاسبات به عهده کارت گرافیک می باشد.
عملیات نور پردازی
این عملیات یکی از ان چیزهایی است که موقعی که کار می کنید متوجه ان نیستید اما موقعی که کار نکند تازه متوجه می شوید که این همه چیز کارتان است و روش های مختلفی از نورهای بارنگ های متفاوت مبتنی بر جهت یا فاصله با چند ضلعی می باشد. همه این راه ها برای تولید یک سایه با گوشه های صاف از نگاشت نور و جایگذاری ان در بافت پایه به کار می رود.برخی از APIها می توانند شیوه های بسیار حرفه ای برای ساخت نور به ارائه دهند، به عنوان نمونه Open GLسه نوع نور پردازی با نام های per polygon وper vertex و per pixelرا ارائه می کند.
در نور پردازی vertexتعیین می کنیم که چند ، چند ضلعی به یک vertexمتصل است و سپس حد وسطی از جمع جهت همه چند ضلعی ها (که با نام normalخوانده می شود. ) گرفته می شود و normalبه vertexارجاع داده می شود ، هر vertexچند ضلعی های معین می تواند اندکی دستور العمل های ان را تغییر دهد. همچنین می تواند بتدریج ان را پایان دهد یا به سراسر چند ضلعی، رنگ نورها را وارد کرد.این شیوه از نور پردازی ، نور بسیار شفافی را می دهد اما این دلیل نمی شود که برای تک تک چند ضلعی ها از این شیوه استفاده شود. مزیت این شیوه این است که سخت افزار برای سریع تر اجرا شدن ان کمکمان می کند چرا که این شیوه از شیوه سخت افزاری T&Lاستفاده می کند و اشکال بزرگ ان این است که نمی تواند سایه تولید کند.
یک نوع نورپردازی دیگر هم به نامlight map وجود دارد . طرز کار این نوع نورپردازی به این طریق است که از یک بافت ثانویه استفاده می کند که به ان light mapمی گویند که با بافت موجود ترکیب شده و جلوه نور را تولید می کند.این نوع نورپردازی بسیار خوب کار می کند امادر حقیقت این یک جلوه نیست که بخواهد قبل از رندر تولید بشود، اما اگر یک نور متحرک داشته باشیم ان وقت برای هر فریم دوباره light mapرا مجدد رسم می نماییم و تغییرات ان مطابق با چگونگی حرکت نور های متحرک می باشد.
یکی از مزایای خوب light mapرندر شدن سریع ان است و ایراد بزرگ ان حافظه ای است که به خاطر این بافت ها می گیرد که بیشتر اوقات برای حل این مشکل، بافت ها را فشرده می کنند تا کمتر از فضای حافظه رایانه را اشغال کند، بعضی دیگر هم از اندازه ان کم می کنند و برخی دیگر ان را تک رنگ می کنند که در این صورت نمی توان از نورهای رنگی استفاده کرد، ایراد دیگر ان استفاده از چندین نور متحرک در مرحله است زیرا با هر بار انجام عمل رسم مجدد تمام دور CPUکاربر گرفته می شود.
بافت ها
بافت ها برای داشتن یک نمای واقعی از صحنه سه بعدی بسیار ضروری هستند و بطور پایه تصاویری هستند که در چند ضلعی ها تفکیک می شوند و عموما برای اشیاء یا محیط در صحنه به کار می روند . تنها چند بافت می تواند مقدار زیادی از حافظه را اشغال کند و برای حل این مشکل باید از تکنیک های مدیریت حافظه بهره گرفت.فشرده سازی بافت ها یکی از این تکنیک ها برای کم کردن حجم بافت است در صورتی که بتوان اطلاعات تصویر را نگاه داشت، یا نگاه داری بافت های فشرده در قسمتی از حجم CD یا DVDبازی.در کل فشرده سازی بافت ها روش بسیار خوبی نسبت به دیگر روش هاست و به این صورت عمل می کندکه ابتدا تصویر فشرده شده بر روی حافظه به AGPفرستاده می شود و AGPهم به کارت گرافیک متصل است و در نتیجه در کسری از زمان بافت برای نمایش اماده می شود.چند تکنیک فشرده سازی در زیر امده است .
عمل MIP Map:یکی از تکنیک هایی که موتور بازی از ان استفاده می کند و میزان حافظه و پهنای باند خواسته شده بافت ها را کاهش داده این تکنیک است. هنگامی که بافت ها در یک صحنه سه بعدی قرار گرفتند با توجه به prespectiveصحنه که دور هستند در نما کوچک تر دیده شده و به نوعی با مقیاس کوچک تری نمایش داده می شوند در نتیجه بافت های با اندازه بزرگ را برای اشیای کوچک تر تغییر مقیاس داده و کوچک می کنیم تا حجم کمتری بگیرند . البته درست است که استفاده از یک تصویر در چند ضلعی ها کیفیت فوق العاده ای به کار می دهد اما سرعت اجرای بازی را کم می کند و با استفاده از این ترفند می توان سرعت اجرای فریم های بازی را به مقدار زیادی افزایش داد.
تکنیک MIP Mappingقبل از پردازش بافت با ساختن چند رونوشت (Copy)اجرا می شود ، این رونوشت های متوالی هر کدام از لحاظ اندازه نصف رونوشت قبلی می باشند.در بدترین حالتی که یک بافت دارد این است که ان را به یک چند ضلعی بچسبانید و فقط سهم ان خارج از صحنه باشد. نسبت بافت به چند ضلعی باید یک به یک باشد همچنین یک texel(عنصر بافت) در نگاشت بافت اصلی برابر با یک pixel(کوچکترین واحد تصویر ، سلول تصویر) باشد که تمام این ها به اتصال بافت به یک شی کاملا وابسته است. اگر چند ضلعی که نمایش می دهیم به نیمی از اندازه خودش تغییر مقیاس داده و کوچک گردد ، بافت ها بر روی دیگر texelها نمایش داده می شوند. به عنوان مثال تصور کنید بافت اصلی ما یک بافت با نمای اجر های فراوان است و ملات بین این اجر ها فقط یک pixelعریض و پهن است ، اگر چند ضلعی را به مقیاس نصف کوچک نماییم ان وقت بطور ناگهانی pixelملات ناپدید می شود و پس از این که دوباره تصویر را به حالت اول برگردانیم دیگر ان بافت اولیه طبیعی را به ما بر نخواهد گرداند و یک بافت غیر طبیعی به ما تحویل داده می شود.با MIP Mappingمی توانیم تصاویر را قبل از این که کارت گرافیک ان را بگیرد تغییر مقیاس داده و بعد از ان دوباره می توان پردازش کرد.
Bump mapping: هدف اینترفند این است که بتواند سطح روی بافت را در مواجه با نور بصورت افت و خیز نشان دهد. Bump mappingنمی تواند همراه نور حرکت کند ، این تکنیک فقط برای خلق نقص های کوچک بر روی بافت طراحی شده و برای خلق افت و خیز های بزرگ بر روی یک سطح مناسب نیست.به عنوان مثال ما می توانیم از این تکنیک برای خلق برخی جزئیات روی یک کوه در یک شبیه ساز پرواز استفاده نماییم.Bump mappingخیلی خوب می تواند برای ظاهر شدن جزئیات یک سطح عمل کند ، هر چند که کمی زبردستی و مهارت هم در استفاده از این تکنیک لازم است . پس از تعریف و برای اجرای عملیات به کارت گرافیکی نیاز دارد.البته با امدن تکنیک هایی نظیر Normal Mapکه افت و خیز را بر اساس رنگ اصلی انجام می دهد ( و نه همچون Bump mappingکه بر اساس سیاه و سفید است) این تکنیک در حال کم رنگ شدن است.
مدیریت حافظه بافت
اگر در موقعیتی قرار بگیریم که مجبور شویم بافت های گرفته شده را بارها و بارها به داخل و خارج کارت گرافیک تعویض کنیم ان وقت احتمال بسیار زیادی وجود دارد که APIبا خطا روبرو شده و از کار بیافتد، در نتیجه فریم بعدی بارگذاری می شود و این باعث گرفتن کمی وقت از بازیکن و افت سرعت فریم می شود و همیشه سرعت فریم به خاطر بارگذاری مجدد و مجدد حافظه APIکم می شود.
برای به حداقل رساندن خطاهای حافظه ای بافت، تکنیک های متفاوتی وجود دارد. یکی از این تکنیک ها این است که از بافت فقط یک بار استفاده کنیم یعنی فقط یک بار بافت را بارگذاری کنیم و به جای این که چندین و چند بار بارگذاری کنیم ، مجددا دوباره از حافظه کارت گرافیک ان را بیرون میاوریم.این تکنیک کار بسیار ساده ای را انجام می دهد ، پس از این که تمامی بافت ها در یک فریم رسم شد بافت ها را درون حافظه خودش نگاه می دارد و سپس دوباره اگر چند ضلعی با یکی از این بافت ها برخورد کرد به جای گرفتن بافت، از بافت موجود در حافظه اش استفاده می کند که باعث بالا رفتن پهنای باند و سرعت فریم بر ثانیه در بازی می شود.اگر دقت کرده باشید برخی بازی ها (در سیستم های ضعیف) ابتدا کمی گیر می کند و با افت فریم مواجه است اما کمی که با ان بازی کنید کم کم سرعت فریم زیاد می شود که یکی از علت های اصلی ان همین مورد است.
تکنیک دیگر مدیریت حافظه فشرده سازی بافت می باشد که در مورد ان توضیح داده ایم.در بیشتر الگوریتم های فشرده سازی بافت ها نسبت به بافت اصلی اکثرا یک به چهار می باشد و در نهایت سخت افزار بافت ها را از حالت فشرده سازی در می اورد و برای عملیات رندر از ان ها استفاده می کند.
مقدمه ای برمحاسبات حافظه کارت گرافیک:اکنون می خواهیم به حافظه های کارت گرافیک واستفاده امروز و اینده ان بپردازیم. به عنوان مثال یک کارت گرافیکی که می گویند32بیت حافظه دارد یعنی 8 بیت برای قرمز، 8 بیت برای ابی، 8 بیت برای سبز و 8 بیت هم برای شفافیت و بی رنگی از هر پیکسل است و چیزی حدود 256 سایه از قرمز و ابی وسبز در حال ترکیب هستند که این اجازه می دهد تا ما چیزی در حدود 16.7 میلیون رنگداشته باشیم.
همچنین چرا هر ساله ما می بینیم که بازی سازان برای اجرای بازیشان به گرافیک با حجم بیشتری نیاز دارند، بصورتی که امروزه حتی کارت گرافیک های 256برای بعضی از بازی ها کم است. اکنون یک نقطه را بر روی یک مدل در بازی در نظربگیرید و همچنین چند نور متفاوت را هم در بازی در نظر بگیرید، اکنون رنگ اصلیمدل را می گیریم و به جای ان رنگ یک نور را به کار گرفته و درمیزان رنگ اصلی شی تغییراتی ایجاد می کنیم سپس یک نور دیگر را هم به کار می بریم و باز هم درمیزان رنگ شی تغییرات دیگری ایجاد می کنیم. مشکل اینجاست که ما با 8 بیت حافظه برای هر رنگ فقط می توانیم 4 نور را به کار ببریم و این 8 بیت به اندازه کافی کیفیت خوبو لازم را به ما نمی دهد و نمی تواند نتیجه رنگ خوبی به ما بدهد و این به تدریجباعث امدنerror هایی می شود که اینerror ها در نتیجه نارسایی تعدادی از بیت هایحافظه است.
اکنونمی خواهیم به بحث مه)(Fogبرسیم. مه یکی از انواع جلوه های ویژه در بازی می باشد. بیشترموتورهای امروز این جلوه مهم را به کار می برند و می توان بصورت دستی و به راحتی این جلوه رادر فضای جهان بازی اورد. ولی نمی توانیم مدل ها و صحنه هایجغرافیایی را که خارج از تقاطع محدوده مجازی برای صفحه قطعه شده هستند را ببینیم.این تکنیکvolumetric fogging نامیده می شود محل مه در حد فاصله دوربین نمی باشد، اما یک شی فیزیکی حقیقی است که می توان انرا دید، از میان ان حرکت کرد واز گوشه های ان خارج شد، با جلوه بصری مه می توان مرحله را دگرگون کردو از میان اشیا حرکت نمود. یکی از نمونه های بسیار خوب اجرا شده تکنیکvolumetric fogging مه قرمز دربرخی مراحل بازیQuake III می باشد.
ازمایشعمق:اکنون می خواهیم به ازمایش عمق بپردازیم. هنگامی کهpixel ها به دورانداخته می شوند و ما باید به فکر طرحی باشیم که دوباره انها را اجرا یا به گفتهبهتر ترسیم مجدد نماییم. دوباره کشیده شدنpixel ها تا حدی سرراست است، فقط چندبار می توان محل یکpixel را در یک فریم کشید. پایه تعدادی از عناصر اجرایی صحنههای سه بعدی در بُعد (عمق)Z می باشد که به ان پیچیدگی عمق هم میگویند. اگر به اندازه کافی عمل ترسیم مجدد را انجام دهیم مثلاً جلوه های ویژه خیره کننده داشته باشیم در نتیجه می توان افت فریم را کم نمود. به عنوان مثال در بازیHeretic II هنگامی که چند نفر در صحنه گلوله ها را به یکدیگر پرتاب می کنند نتیجهاین حالت این است که ترسیم هرpixel 40بار در یک فریم می شود.و این چیزی بود که از قبل تنظیم شده بود به خصوصاین که نرم افزارهای رندرکننده نمی توانند بازی را همچون یکslide show رندر کنند. ازمایش عمق، تکنیکی است که بواسطهان اشیایی که در جلو هستند نسبت به دیگر اشیایی کهpixel هایشان در همان محل استتعیین می شوند همچنین می توانیم از ترسیم اشیایی که جلویشان بسته است جلوگیرینماییم.
می خواهم توضیح بدهم کهچرا ازمایش عمق می تواند به نرخ فریم کمک کند. یک منظره پر جزئیات را باpolygon ها(یاpixel های) بسیار زیاد پشت به پشت یکدیگر را تصور نمایید. بدون یک راه سریعتمامی اینها پیش از رندرشدن به دور انداخته می شوند، پس باید صحنه را باpixel هایی که ابتدا باید رندر گردند پر کرد همچنینهنگامی که به رندرpixel هایی که در پشت سر انها هستند رسیدگی می کنیم (همچون تعیینZ یا ازمایش عمق)، به سرعت به دور انداخته می شوند. به گامهای ترکیبی یاذخیره انها نباید فکر کرد اگر انpixel هایی را که پشتpixel های جلویی هستندبخواهیم رندر نماییم انوقت تمام اشیایی که پشت اشیای جلویی هستند باید به صورت کاملرندر شوند سپس باید کامل دوباره نویسی شوند، در این موقعیت وخیم ازمایش عمق چیزبسیار خوبی به نظر می رسد.
تکنیک ضد پله پلگی:اکنون می خواهیم یک مرورسریعی به تکنیک ضد پله پلگی(anti-aliasing) بکنیم. هنگامی که یکpolygon (چندضلعی) اختصاصیرندر می شود کارت سه بعدی یک نگاه خوب به چگونگی رندرشدن ان پیش از این می اندازدو گوشه هایpolygon جدید را تیره می کند و کاربر گوشه هایpixel را لبه دار نمیبیند. این تکنیک معمولاً در یکی از دو راه زیر کاربرد دارد، اولین شیوه بر رویpolygon منحصر به فرد و اختصاصی کاربرد دارد که نیاز دارد تاpolygon را ازعقب به جلو رندر نمود، همچنین هرpolygon می تواند به طور مناسب با پشت سری اشترکیب شود، اگر خارج از تنظیم، رندر شود می توان با انواع جلوه هایناشناس این کار را پایان داد. در شیوه دوم باید تمام فریم را در یک اندازهتصویر(resolution) بسیار بزرگ نسبت به نمایش قرار داد و سپس مقیاس تصویر راپایین اورد و لبه های دندانه دار خود به خود در کنار مقیاس ترکیب می شوندشیوه دوم یک نتیجه بسیار زیبا را می دهد امّا به یک فضای بسیار زیاد و یک پهنای باند نیاز دارد. کارت نیاز به رندرکردنpixel های بیشتری دارد و سپس نتیجه درچهارچوب تصویر قرار می گیرد. بیشتر کارتهای جدید انصافاً خوب هستند، امّا چندشیوه برای رسم ضد پله پلگی(anti-aliasing) داریم که می توان ان را انتخابنمود. همچنین می توان اصلاً این کار را انجام نداد تا نرخ فریم بیشتری داشتهباشیم. این بستگی به بازی ساز دارد که کیفیت یا سرعت اجرا کدامیک را در ارجحیت قراردهد. البته اکنون روش های جدیدی هم پیرامون تکنیکارائه شده و هر روز ارائه میگردد که نیاز به تحقیق بیشتر دارد.
Vertex And Pixel shader : پیش از این که ما به تکنیکهای رندر بپردازیم کمی هم بهvertex shader وpixel shader می پردازیم.vertex shader یک راهی برای دسترسی مستقیم به ترکیبات سخت افزاری کارت و بدون استفاده ازAPI های فراوان می باشد، به عنوان مثال اگر کارت دارای سخت افزارT&L می باشد، می توان تحتDirectX یاOpenGL کد نویسی نموده و انتظار داشت که رئوستحت واحدT&L کار کنند. (این راه مطمئنی نیست چون کاربرد ان درونdriver است)یا اینکه مستقیماً و سخت بر رویvertex shader کار شود، این به بازی ساز اجازه میدهد تا کدهای ویژه را برای ترکیبات خود کارت بنویسد.
در حقیقتvertex shader گرافیک سهبعدی کارتها را موجب می شود، یعنی با دسترسی مستقیم به سخت افزار و دانش لازم، از بهترین راه ها برای گرفتن بیشترین خروجی سیستم ها، استفاده می کند. سریع ترین راهتکیه کردن به یکAPI است که همه کار را برای بازی ساز انجام دهد. برای برخی برنامه نویسها کد نویسی برای یکAPI می تواند یک شوک باشد امّا مطمئنا ارزشش را دارد.
اکنون بیشتر توضیح می دهیمvertex shader ،برنامه یا روالی است که جلوه های یکvertex را پیش از تایید و رندر توسط کارت، محاسبه و انجام می دهد، بازی ساز باید چنینچیزی را در نرم افزار و تحتCPU انجام دهد، یا اینکه ازvertex shader تحت کارتاستفاده نماید. تغییر دادن یک شبکه توری(mesh) برای پویا نمایی یک مدل اولینکار برنامهvertex است.
یکی از بدترین چیزها برای برنامه نویس یک رندرگر، این است که سرعت صنعتکارتهای سه بعدی هر روز در حال تغییر است. یک روز بازی ساز یک تصویر را به صورت شفاف باسعی و تلاش و کوشش بسیار منتشر می کند و روز بعدMicrosoft یاnvidia یا هر کمپانیدیگر، یک برنامه نویسی جدیدvertex shader را ارائه می کند و ما باید به سرعت بهسمت ان حرکت کنیم. همواره استاد John Cormack اشاره می کند که "چهار سالگذشته چه چیزهایی از کارتهای گرافیکی ان زمان می دانسته که اکنون ان چیزها پیش و پاافتاده است."
Tim Sweeney از کمپانیEpic توضیحاتی را در این باره می دهد که خواندنشخالی از لطف نیست.
"ما 9 ماه بی وقفه تمام کدهای رندرگرمان را عوض کردیم،تاUnreal اصلی که به صورت یک نرم افزار رندرگر طراحی شده بود به رندرگر سخت افزاریتبدیل گردد. موتور بعدی مان برایGeForce و بهترین کارتهای گرافیکی طراحی شده بود وبیشتر از 100 توان عملیاتی برای استفاده درUnreal Tournament داشت.این به یکجایگزینی یکجا برای رندرگر نیاز داشت و خوشبختانه ماژول های این موتور به قدر کافیتوانایی برای تجدید قوا داشت".
یکAPI چیست؟یک واسطه کاربردی برنامه نویسی(Application Programming Interface) میباشد که تمام چیزهای ناسازگار و متناقض را سازگار می کند. برای نمونه هر کارتگرافیکی سه بعدی با ابزارهای گرافیکی و با برجستگی های گرافیکی مختلف واردبازار می شود. همچنین ممکن است برایX در کارت گرافیک کد نویسی نمود اما دریک کارت گرافیکی دیگر این نتایج بر رویY عمل شود.
هنگامی که ازCPU برای نمایشpolygon ها و سیستم های ذره ایو از یک رندرگر عالی و ممتاز همچونUnreal استفاده می کنیم ، برای استفاده از یکی از دوAPI گرافیکی امکان پذیریعنیDirectX وOpenGL اماده می شویم.OpenGL یکAPI چندplatformایاست و این یکیاز مزیت های بزرگ اینAPI محسوب می شود زیرا می توان همزمان ان را برای هر سهplatform رایانه یعنی Win، Linux وMac استفاده نمود و همچنین کد نویسی به زباناینAPI کهGLSL نام دارد بسیار راحت تر ازHLSL زبانDirectX می باشد. امابزرگترین نقصOpenGL وسیع نبودن ان و نبود قابلیتهایی برای شبکه، صدا، ورودی و...می باشد وOpenGL بیشتر یکAPI گرافیکی است که برای ساختن نرم افزارهایگرافیکی کاربرد دارد تا موتورهای ساخت بازی. اماDirectX با قدرت بی نظیری که دراختیار بازی ساز قرار می دهد و همچنین مراجع وسیع و فراوانی که در موردش پیدا می شود باعث شده بسیاری از افراد به سمت اینAPI روی بیاورند ضمن این که نباید فراموشکرد که اکثر بازی بازهای جهان تحتWin کار می کنند.
معرفی انواع سیستم هایاسکلتی :چگونه مدل شخصیت در صحنه نمایش داده می شود؟ و چگونه ساخته شده، بافت زنی شده و پویانمایی شود. سیستم مدل سازی شخصیت به مهارتبسیار زیادی نیاز دارد، با بهترین و زیباترین راه ها و کمترینpolygon ها می توانانواع مدل ها را روانه صحنه کرد.
برای ایجاد مدل شخصیت درابتدا باید یک سیستم پایه شبکه توری(mesh) و یا یک سیستم پویانماییاسکلت را تعریف نمود. با یک سیستم پایه شبکه توری(mesh) برای هر فریم ازپویانمایی باید موقعیت هر نقطه از مدل در جهان سه بعدی را تعریف نماییم. بهعنوان مثال ما یک مدل دست داریم که شامل 200polygon با 300 راس می باشد. (نکته :معمولاً نسبتpolygon به راس 3 به 1 نمی باشد. زیرا بسیاری ازpolygon ها پس ازاشتراک رئوس و استفاده از سرسلسله و زیر دسته رئوس می توان شمارش رئوس راشدیداً کاهش داد.) اگر 10 فریم پویانمایی داشته باشیم سپس برای هر فریم اطلاعاتی را پیرامون موقعیت 300 راس در حافظه داشته باشیم 3000 = 10 × 300 تحت سهمحور xوy وz به همراه اطلاعات رنگ و الفا برای هر راس ساخته می شود. هر سه نسخه بازیQuake بااین سیستم کار می کند که می تواند به راحتی شبکه توری(mesh) را در حالت معلقتغییر شکل دهد، مانند ساختن اعوجاج لباس یا موج گرفتن مو.
از مزیت های پویانمایی به روش اسکلتی وجود قابلیت "وزن" برای هر راس بهصورت انفرادی و برپایه نفوذ رئوس می باشد. برای نمونه: حرکت استخوان ها در بازو،شانه ها، گردن و هر قسمت دیگر که باعث حرکت پیچشی در شبکه توری(mesh) میشود شخصیتی کاملاً شبیهبه شخصیت طبیعی می چرخد. سرتاسر نتایج پویانمایی های شخصیتهای سه بعدی باید روان وباورکردنی باشد و در عین حال تا انجا که ممکن است باید حافظه کمتری را بگیرد.یکی دیگر ازمزیت های سیستم بر پایه اسکلت داشتن قابلیت روی هم سوار شدن استخوان ها می باشد.این قابلیت می گوید: من نمی خواهم توجه کنم که چه پویانمایی هایی می خواهد برایاستخوان ها انجام شود، من می خواهم نقاط من نقاط ویژه ای باشند. می توان مدل هایی را داشت که به نظر می اید به گرداگرد رویدادهای جهان اطرافشان توجه می کنند، این به طبیعی تر شدن صحنه کمک بسیار می کند. به عنوانمثال با سیستم اسکلتی می توانیم این چنین تعیین نماییم:
"من می خواهمپویانمایی مخصوصم را بر روی قدم زدن های مدل کار بگیرم، دویدن و پیچ و تاب مدل درهنگامی که اسلحه به دوش دارد با هنگامی که شلیک می کند باید متفاوت باشد، و در اینحین هنگامی که شخصیت فریاد می زند حرکت سر ان باید متفاوت باشد.".از سیستم اسکلتی در بازی هایی زیادی نظیرSoldier of Fortune II: Double Helix یاJedi Knight I: Outcast استفاده گردیده است. این طراحی ویژه به برنامه نویس اجازهمی دهد تا به تمام پویانمایی های روی هم سوار شده دسترسی داشته باشد و هر کدام رادر زمان خودش اجرا نماید و همچنین به کمک پویانما می اید برای این که تمام حالات نظیر دویدنبا اسلحه و دویدن حین شلیک و... را پویانمایی کند.
قبلاً عواملی را که باعث میشد مراتب سیستم اسکلتی ترکیب شوند شرح داده شد. کار این وسیله چیست؟ به جای این کههراستخوان در فضا به صورت مستقیم گذاشته شود، در حقیقت هر استخوان در هر موقعیتی که قرار دارد منسوب به استخوان های والد می باشند،بدین صورت که اگر استخوان والدحرکتی بکند تمام استخوان هایی که فرزند این استخوان والد هستند هم بدون اضافه کردنهیچ کد اضافه ای حرکت می کند. برخی دیگر از راه های سیستمپویانمایی که از راه های گفته شده نسبتاً جدیدتر می باشد سیستم پویانمایی ترکیبی میباشد که در هنگامی که پویانمایی در حال اجرا است، در یک زمان کوتاه ان را با یکیدیگر تغییر می دهیم و به سرعت پویانمایی از نوعی به نوع دیگر شکسته می شود. به عنواننمونه شما شخصی را دارید که راه می رود امّا سپس او می ایستد. سریع ترین راه این است که به سرعت پویانمایی را تغییر مسیر بدهیم و پاها و قدم های او را به وضعیت بیکاری برسانیم. این ترکیب باید در 2/1 ثانیه انجام پذیرد. همچنین حرکت قدم زدن به یکپویانمایی طبیعی جدید تبدیل می شود، البته از این تکنیک نباید بیش از حد استفادهکرد و استفاده از ان نیاز به مهارت های خاص خودش را دارد.
سینماتیک معکوسInverse Kinematics (IK) جمله نامفهومی در میان بسیاری از مردم است. سینماتیک معکوسکه به اختصارIK خوانده می شود نسبتاً یک سیستم جدید در بازی ها می باشد. بااستفاده ازIK برنامه نویس می تواند یک دست یا پا را حرکت بدهد ان هم در حالی که ازمفاصل شخصیت که به طور طبیعی حرکت و جهت پیدا می کنند مطمئن باشد. به عنوان نمونه : می گوییم دست، برو و جام را از روی میز بردار! دست در موقعیتی در جهان سه بعدیقرار دارد که جام هم همان جا می باشد. دست می خواهد برای برداشتن جام حرکت کند وبدن و پشت هم می خواهد خودش را با دست و حرکت او هماهنگ کند، بدن به طور مناسب خم میشود.
روش دیگری که بیش از حد معکوس می باشد سینماتیک جلوForward Kinematics خوانده می شود که کاملاً با سینماتیک معکوسIK متفاوت است. تصور کنید که یکدست، به یک بازو متصل است و ان بازو هم به یک بدن متصل است. اکنون تصور کنید که به یک بدن سخت می خورید. معمولاً بازو کوبیده می شود و دست ها هم به انتهای بازو متصل استو تمامی حرکات بدن باید توسط پویانما طراحی و ساخته شود. به طور اساسی این نیازمندیک تون اطلاعات پیرامون هر کار و تنظیم ان توسط پویانما می باشد. چیزهایی همچونمحدوده حرکت مفاصل، میزان درصد استخوان هایی که می توانند حرکت نمایند و اگر یکی ازانها جلو باشد باید چه کاری انجام دهد و...، این کاملاً مشکلات پردازش را تشدیدمی کند. امّا اگر ازIK استفاده کنید دیگر نیازی به ساختن پویانمایی هایگوناگون برای حرکات مختلف بدن ندارید. چاره کار استفاده ازIK است که ان نیز نیازبه سیستم اسکلت بندی مرتبه ای دارد که بسیار سریع تر از سیستم مدل ازاد باپویانمایی های از پیش ساخته شده دارد زیرا سیستم مدل ازاد زمان بسیاری را میگیرد.
سیستمLOD:اکنون می خواهیماندکی پیرامون سیستم هایLevel of Detail (LOD) که مربوط است به مقیاس مدل هایپیچیده بحث نماییم. در قسمت قبلی مطالبی پیرامون تکنیکMIP Mapping که مربوط بهتغییر مقیاس بافت در فواصل دور و کوچک کردن ان بافت ها برای کمتر شدن فضای حافظه وپردازش صحبت هایی کردیم. درست در مقابل این تکنیک یعنی به بیان بهتر راه دیگری کهمی توان از ان برای کم شدن فضای حافظه و پردازش استفاده کرد استفاده از سیستمLOD می باشد.
گرفتن یک دید وسیع همراه با پردازش سریع امروزه در بیشتر بازی های رایانه ای دیده می شود. به طور کلی به سیستم هایی نیاز است که بتوانند از پسنمایش 12 شخصیت که هر کدام ان 3000polygon و در یک لحظه در صفحه، بربیاید و درحداقل میزان فریم طبیعی قرار بگیرد،LOD برای چنین مواقعی طراحی گردیده است. اینتکنیک حتی این توانایی را دارد که تعدادیpolygon که برای رسم شخصیت استفاده میشود را تغییر دهد. هنگامی که شخصیت در فاصله بسیار دوری قرار دارد و شاید فقط 10Pixel از فضای صحنه را بگیرد حقیقتاً نیازی به 3000polygon برای رندر شخصیتنداریم و 300polygon هم می تواند کار را راه بیاندازد و کسی از اینفاصله دور نمی تواند متوجه تغییرات در شخصیت شود. برخی از سیستم هایLOD بهساختنچند نسخه از مدل نیاز دارند و می تواند سطوحLOD را در صحنه تغییر دادهکه به چگونگی بسته شدن مدل و همچنین میزانPolygon هایی که یکبار نمایش داده می شودمربوط می شود. بیشتر سیستم های پیچیده در وضعیت متحرک می توانند تعدادPolygon ها در صحنه را در زمان های مشخص بکاهند.
پویانمایی روان، شامل ترکیبی از پویانمایی بهروش دستی و پویانمایی با استفاده از دستگاهMotion Capture می باشد. برخی اوقات برای مدل فقط باید یک پویانمایی دستی انجام داد زیرا بعضی حرکات نمیتواند توسط یک شخص واقعی انجام شود. به عنوان مثال نمی توان به طور خیلی زیاداز پشت خم شد یا اینکه نمی توان همچونLui Kang درMortal Kombat 4 به صورتدوچرخه وار در اسمان به سمت سینه دشمن رکاب زد.Motion Capture دستگاهی است کهبوسیله ان می توان حرکات طبیعی یک انسان را ثبت و ضبط کرد و سپس به شخصیت ساخته شدهنسبت داد. این ابزار واقعاً برای نمایش حرکات طبیعی شخصیت فوق العاده است. بهعنوان نمونه می توان شخصیتی را تنها با 200Polygon ساخت، امّا مدلش به شکل فوق العاده روانو سیالی پویانمایی شده باشد.
مدلسازی و پویانمایی :اکنون می خواهیم بهقلب مدل سازی و پویانمایی برویم. بیشتر اوقات هنگام ساختن یک محیط سه بعدی ما اجزایسه بعدی برای این کار داریم،به نوعی توسعه بازی راهی برای ساختن محیط های سه بعدیو تغییر و تبدیل اسان به شکل موثر و باPolygon کم است. در حالی که برنامه هایمعماری سه بعدی بسیاری ازCAD/CAM تا 3D Studio Max می باشد. ساختن جهان بازی کاریبسیار متفاوت تر از ساختن مدل های یک جهان درونی یا بیرونی است. در ساخت جهانبازی باید میزانPolygon ها را به شدت در نظر گرفت، در ساختن مدل برای یکپویانمایی اهمیت زیادی به میزانPolygon ها نمی دهند و چون مدل هر چقدر هم کهPolygon داشته باشد در انتها به صورت یک صحنه دو بعدی رندر می شود امّا در ساخت مدلبرای بازی چون مدل ها به صورتReal Time در یک صحنه در حال رندر شدن هستند
— فصل سوم
همایش های بازی سازان
بخش اول - معرفی همایش ها ، نمایشگاه ها و سازمان های ساخت بازی در جهان
مقدمه:یکی از بهترین راه های کسباطلاعات بیشتر و اشتراک اطلاعات و بروز شدن اطلاعات پیرامون صنعت و فناوری ساختبازی های رایانه ای دانستن انواع همایش ها و نمایشگاه های پیرامون این موضوع درسرتاسر جهان است.
Game Developer Conference : بزرگترینکنفرانس توسعه بازی در جهان این کنفرانس می باشد که ابتدا یک ملاقات غیررسمی بودهو سپس به یکی از مهمترین وقایع صنعت بازی تبدیل می شود . سالیانه هزاران بازی سازبه انجا رفته و با هم تبادل نظر می کنند و یا با جدیدترین پیشرفتهای تحقیقاتییکدیگر اشنا می شوند و هر ساله سخنرانی های بسیاری در این مورد انجام می شودسخنرانی ها به چند قسمت صدا، تجارت و مدیریت، طراحی بازی، تولید، برنامه نویسی،جلوه های ویژه و برخی مسائل دیگر مطرح می شود، همچنینGDC دارای یک مسابقه بزرگبازی سازی است که هر ساله هدایای ویژه ای به برندگان این مسابقات داده می شود و یکنمایشگاه بسیار بزرگ را هم در بر دارد که کمپانی ها جدیدترین ابزارهای توسعه شان رادر انجا به نمایش گذاشته و دانش پژوهان می توانند در میان دریایی از ابزارهای روزتوسعه بازی به سیاحت و بازدید بپردازند.
این نمایشگاه هر ساله در ایالت سانفرانسیسکو و شهر کالیفرنیا در تاریخ 23-27 مارس برگزار می گردد. برای اطلاعات بیشتربه سایت ان مراجعه نمایید.(
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
)
Austin Game Developers Conference: استین به عنوانیکی از اولین مکانهای گرداوری استعدادهای بازی سازی در جنوب امریکا شناخته شده است.این کنفرانس به مدت سه روز کارگاه های بزرگ بازی سازی و سخنرانی هایی را برای علاقهمندان اماده می کند که می تواند هم برای دانش پژوهان و هم حرفه ای ها مورد استفادهباشد همچنین برنامه های ویژه ای را برای صدا در بازی ها، نویسندگی در بازی ها وبازی های انلاین ارائه داده و همچنین دارای یک جلسه پیرامون حرفه بازی می باشد وتمامی این موارد باعث گردیده که گروه بسیاری از مردم علاقه مند به ساخت بازی از جای جای جهان به سمت این کنفرانس حرکت کنند. این همایش هر ساله در شهراستین ایالتتگزاس در تاریخ 17-15 سپتامبر برگزار می گردد.(
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
)
Game Convention :یکی از مهمترین وبزرگترین بخش تجاری بازی های رایانه ای در اروپاGame Convention می باشد که در هرتابستان درLeipzig کشور المان برگذار می گردد. این نمایشگاه برای عموم باز می باشد. سازندگان بازی می توانند در این همایش در کنفرانس های توسعه ان شرکت داشتهباشند.(
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
)
E3 Media & Business Summit : این همایش درگذشته با نامElectronic Entertainment Expo خوانده می شده است که اکنون به اختصاران راE3 می نامند. این نمایشگاه در همان ابتدای اغازش توجه ده ها هزار علاقه مندرا جلب کرد. این نمایشگاه در ماهJuly هر سال در لس انجلس برگزار می گردد که در بردارنده گروه کوچکی از فروشندگان عمده، ناشرین، و سیستم های سمعی وبصری برای نمایش جدیدترین پیش نمایش بازی های روز دنیا می باشد. در کلE3 یکی ازمهمترین نمایشگاه های ساخت بازی است که اکثر شرکت های ساخت بازی برای نمایش بازی هایشان سعی می کنند در ان حضور داشته باشند و بسیاری از اخبار بازی ها و توجهمنابع خبری بازی های رایانه ای به این نمایشگاه می باشد.(
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
)
CHINAJOY : نمایشگاهسرگرمی های دیجیتالی چین فرصتی را برای دیدن صنعت بازی در چین و ناشرین و توسعهدهندگان بازی در این کشور را ایجاد می کند. این نمایشگاه ترکیبی از دیداربا تجارت و صنعت بازی در چین و مصرف کننده های بازی در چین می باشد. این نمایشگاههرسال در شهرShanghai کشور چین برگزار می گردد.(
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
)
PENNY ARCADE : همایشPenny Arcade در سه روز انتهایی فصل تابستان برگزار می شود که عمیق وپایدار برای دوستداران بازی های رایانه ای است و هزاران بازدید کننده دارد. البته اینهمایش همانطور که از نامش هم پیداست بیشتر بر روی بازی های مستقل و کوچک تمرکزدارد ، این همایش در ماه اگوست و در سیاتل برگزار می شود.(
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
)
D.I.C.E. SUMMIT : بعد از سال 2002 دانشگاهInteractive Arts & Sciences یک نمایشگاه با نامD.I.C.E (Design,Innovate,Communicate, Entertain)را بوجود اورده و هر ساله بابحث پیرامون صنعت بازی سازی و همچنین جمع اوری پول های مردم برای ایجاد توسعه وانتشار صنعت بازی درLas Vegas ایجاد کرده است.(
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
)
TOKYO GAME SHOW : این نمایشگاه بزرگترین نمایش صنعت بازی های ویدیویی در ژاپن را ارائه می دهد. شروعاین نمایشگاه در کریسمس هر سال که می توان پیش نمایش جدیدترین بازی ها و جدیدتریناخبار را در انجا دید و شنید. دو روز اول این نمایشگاه فقط مخصوص برخی افراد (نظیرخبرنگاران و...) و دو روز انتهایی هم بازدید برای عموم مردم می باشد. محیط وسیعیبرای نمایش در نظر گرفته شده اتاق کارهای گروهی و همچنین سخنرانی های ان بعلاوهاجتماع فروشنده گان سرگرمی های رایانه ای و هدیه سالیانه بازی ژاپن همگی یکنمایشگاه بسیار خوب و جذاب را باعث گردیده است. این نمایشگاه هرسال در9 تا 12اکتبر در شهرChiba برگزار می شود.(
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
)
نمایشگاه رسانه های دیجیتال:این نمایشگاه توسطوزارت فرهنگ و ارشاد اسلامی جمهوری اسلامی ایران در ایران برگزار می شود. در ایننمایشگاه شرکت های داخلی ایران به نمایش اخرین دستاوردها و نرم افزارها می پردازند.این نمایشگاه به چند قسمت تقسیم شده است، در قسمت سرگرمی های دیجیتال میتوان با نمایندگان شرکت های توسعه دهنده بازی های رایانه ای در ایران ملاقات کردهو اخرین کارها و بازی های ساخته شده یا در دست ساخت انها را دید. نمایشگاهمتاسفانه تاریخ مشخصی ندارد، تاکنون سه بار این نمایشگاه برگزار شده که هر سهبار در شهر تهران برگزار گردیده. بار اول در محل دائمی نمایشگاه های بین المللی وبار دوم و سوم در مصلی تهران برگزار شده است.(
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
)
همایش بازی سازان: این همایش اولین بار بصورت خودجوش توسط برخی علاقه مندان به دانش ساخت بازی درایران و در سال 1386 برگزار گردید. بدلیل این که هیچ سازمان یا شرکت خاصی از اینهمایش حمایت نمی کند این همایش هیچ زمان و مکان خاصی نداشته است. در این همایش جمعیاز علاقه مندان و محققان در یک سالن جمع می شوند و برخی از محققان پیرامون تکنیکهای ساخت بازی در حوزه های مختلف سخنرانی می کنند. تبلیغات این همایش فقط درتالارهای گفتگوی برخی تارنماهای مربوط به بازی و توسعه بازی مطرح می شود. تاکنون دوبار در سالهای 1386 و 1387 این همایش برگزار شده است.
(
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
)
اکنون چند سازمان پیرامون بازیهای رایانه ای و توسعه ان در جهان و ایران را به شما معرفی مینماییم:
TIGA : سازمانی در انگلستان است که برای حمایت از توسعه دهندگانبازی در این کشور ایجاد گردیده است. انگلستان و المان فعالترین کشورهای اروپایی در زمینه توسعه بازی می باشند.(
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
)
ESA : اتحادیه سرگرمی های نرم افزاری نماینده ناشران امریکایی علاقه مند به بازی هایرایانه ای می باشد. این اتحادیه به شدت از این صنعت پشتیانی می کند و برنامه هاییعلیه دزدی در این صنعت انجام می دهد. این اتحادیه ابتدا از نمایشگاهE3 شروعشد.(
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
)
ESRB : دسته بندی سرگرمی های نرمافزاری توسط این سازمان انجام می گردد. عمده ترین و مهم ترین کار این سازمان تعیینمحدوده سنی بازی باز در استفاده از بازی رایانه ای می باشد. این سازمان توسطESA ساخته شده است.(
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
)
بنیاد ملّی بازی های رایانه ای
این بنیاد در پی فرمایشات مقام معظم رهبری در ایران پیرامون جدی گرفتن صنعت بازی هایرایانه ای در دیدار با کارگردانان سینما در خرداد ماه سال 1385 ایجاد گردیده و باهدف حمایت از شرکت های ساخت بازی کارش را شروع کرد. در سال اوّل فعالیت های زیادیاز این شرکت خصوصی دیده نشده و شاید مهم ترین فعالیت ان ایجاد تارنمای اینترنتی اینشرکت بوده است و شرکت های ساخت بازی رضایت چندانی از حمایت های این بنیاد نداشتهاند امّا در سال های بعد و بعد از انتقادات فراوانی که به این بنیاد شد کم کم افرادمتخصص وارد ان شده و به وضعیت ان سر و سامان داده و در راه تعامل بیشتر با توسعهدهندگان فعالیت هایی را انجام داده اند که ما امیدواریم در راه حمایت هر چه بیشتراز توسعه دهندگان هر روز گامهای این بنیاد نسبت به گذشته بلند تر و بلند تر شود. امّا برای معرفی بیشتر ان مصوب پانصد و هشتاد و چهارمین، جلسه مورخه 09/03/1385شورای عالی انقلاب فرهنگی اشاره می کنیم :
بازی های ویدیویی و رایانه ای به لحاظتاثیر گذاری خود در زمینه فرهنگ سازی، رشد و تکوین شخصیت فرهنگی و علمی کودکان ونوجوانان و ایفای نقش های اموزشی و کمک اموزشی و همچنین پر کردن بخشی از اوقاتفراغت گروه های سنی مختلف جامعه از جایگاه ویژه و مهمی برخوردار است. بنا به اهمیتمزبور، توجه بیش از پیش به برنامه ریزی برای تولید محصولات فرهنگی جدید (همچون بازیهای رایانه ای مناسب) و اهتمام ویژه به امر نخبگان جهت شناسایی و ساماندهی انان بهمنظور بهره گیری بهتر از این قشر ممتاز از ضرورت بالایی برخوردار است.(
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
)
بر اساساین ضرورت، بنیاد ملی بازی های رایانه ای برای برنامه ریزی و حمایت از فعالیت هایمرتبط در تمامی زمینه های فرهنگی، هنری و فنی صنعت بازی های ویدیویی و رایانه ای،زیر نظر وزارت فرهنگ و ارشاد اسلامی با اهداف و ارکان زیر تاسیس میگردد.
• ماده 1- نام و نوع بنیاد:
بنیاد ملی بازی های رایانه ای زیر نظر وزارت فرهنگ و ارشاد اسلامی است. موسسهای فرهنگی، هنری، غیر انتفاعی، غیر دولتی و ایرانی است که شخصیت حقوقی مستقل دارد ومرکز اصلی ان در شهر تهران است.
• ماده 2-اهدافتاسیس بنیاد:
1.تبیین،تقویت و ترویج مبانی فرهنگی واسلامی-ایرانی ازطریق این صنعت با نگاه ویژه به کودکان و نوجوانان
2.حمایت کاملاز ظرفیت های موجود این صنعت در کشور با رویکرد بومی سازی و تقویت تولیداتداخلی
3.حمایت و نظارت بر گسترش فرایند تولید، تامین، واردات، صادرات، امادهسازی، تکثیر و توزیع انواع بازی های ویدیویی و رایانه ای
4.تلاش در جهتتولید و تامین دانش فنی و نیز امکانات و تجهیزات وابسته به ان در تمامی حوزه ها وقالب متفاوت سخت افزاری و نرم افزاری
• ماده 3-وظایف بنیاد:
1.تهیه و تنظیم راهبردها و سیاست ها در زمینهبازی های رایانه ای جهت ارائه به شورای عالی انقلاب فرهنگی
2. برنامه ریزی وطراحی کلان در زمینه این بازی ها در ابعاد مختلف تفریحی، اموزشی و کمکاموزشی
3. تدوین سیاست های حمایتی و تشویقی در زمینه تهیه، تولید، واردات،صادرات و توزیع بازی های رایانه ای توسط بنیاد و بخش خصوصی به منظور ارائه به شورایعالی انقلاب فرهنگی و تعریف سیاست های مناسب برای مقابله با بازی های مضر ومخرب
4.استفاده از ظرفیت های داخل و خارج از کشور به منظور رشد و ارتقا صنعتبازی های ویدیویی و رایانه ای
5.تدوین استانداردهای لازم جهت بررسی کمی وکیفی واردات و صادرات محصولات بازی های رایانه ای
6.تلاش در راستای تامینحقوق مادی و معنوی تولید کنندگان و مصرف کنندگان بازی های رایانه ای
7.برنامه ریزی و حمایت از اجرای دوره های اموزشی و پژوهشی مورد نیاز با هدف تقویتمبانی نظری، علمی و کاربردی اسلامی و ایرانی در حوزه بازی های رایانه ای
8.ایجاد زمینه برای رشد و شکوفایی خلاقیت های جوانان در صنعت سرگرمی و بازی
9.برگزاری، حمایت و شرکت در همایش ها، جشنواره ها و بازی های ملّی، منطقه ای وجهانی
10.ایجاد زمینه جهت رقابت های علمی، فنی، فرهنگی و هنری در میان دستاندرکاران فعال در صنعت سرگرمی و بازی به منظور ارتقا و رشد کمی و کیفی اینصنعت
11.تلاش در جهت توسعه همکاری های بین المللی به ویژه با کشورهای اسلام در زمینه صنعت بازی های رایانه ای
• ماده 5- هیاتامنا:
هیات امنای بنیاد متشکل از هفت نفر است که عبارتند از:
1.وزیر فرهنگ و ارشاد اسلامی (رئیس هیات امنا)
2.معاون امور سینمایی و سمعی وبصری وزارت فرهنگ و ارشاد اسلامی
3.معاون ذیربط سازمان صدا و سیما
4.رئیس کانون پرورش فکری کودکان و نوجوانان
5.معاون ذیربط وزارت اموزش وپرورش
6.معاون ذیربط سازمان تبلیغات اسلامی
7.دبیر شورای عالی اطلاعرسانی
8.یک نفر کارشناس فرهنگی - هنری اشنا به بازی های رایانه ای به انتخابشورای هنر
9.یک نفر متخصص در بازی های رایانه ای به پیشنهاد وزیر علوم،تحقیقات و فناوری
چند سالی است که حرکت هایی در رابطه با بازی های رایانه ایدر کشور شروع شده است که گزارش کوتاه و مختصری از عملکرد دستگاه های مختلف را بهاطلاع شما می رسانیم.
شورای عالی اطلاع رسانی : ایجاد کارگروه در مورد بازی وسرگرمی های الکترونیکی با مسئولیت در 3 محور
1.ایجاد الگوی صحیح در زمینهواردات بازی
2.تولید بازی های رایانه ای در ایران
3.ارایه طرح هایپژوهشی (رده بندی بازی ها و سازماندهی گیم نت ها)
وزارت فرهنگ و ارشاد اسلامی(
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بنیاد ملی بازی هایرایانه ای در ایران طبق مصوبه شورای انقلاب فرهنگی به عهده این وزارتخانه است که درحال حاضر وزارت فرهنگ و ارشاد اسلامی بر محتوای بازی ها نظارت دارد که نظارت وتایید محتوای بازی ها در داخل کشور به 2 بخش تقسیم می شود.
1.تائید محتوایبازی تولید شده در ایران
2.تائید محتوای بازی های خارجی ووارداتی
وزارت صنایع نوین: بیگمان همه کسانی که در حال ساخت بازی های رایانه ای هستند نام مرکز صنایع نوین راشنیده اند، مرکز صنایع نوین حمایت از تولیدات داخلی را مد نظر خود قرار داده که یکیاز انها بازی رانندگی در تهران است و در نهایت هم اختصاص بودجه ای به بازی عصرپهلوانان.
سازمان تربیت بدنی(
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ایجاد انجمن بازی هایرایانه ای قدم اوّل این سازمان بود که بعد از ان اقدام به برگذاری مسابقات بازی هایرایانه ای با عنوان جام رمضان و... کرد. اهداف و سیاستهای بلند مدت این انجمن بهشرح زیر عنوان شده است:
• ایجاد زمینه مناسب به منظور تهیه و ساخت نرمافزارهای مرتبط با رقابت های ورزشی مطابق با فرهنگ اصیل، اسلامی و ایرانی با هدفتوسعه و تبیین و ترویج جوانمردی، جهاد، ایثار و شهادت.
• کسب جایگاه های برتر در عرصه های مسابقات اسیایی و بین المللی بازیهای رایانه ای توسط تیم های ملّی و بازی بازهای ایرانی
• برگزاری مسابقات ولیگ های منظم و ساماندهی شده، ویژه باشگاه ها و علاقمندان
منابع و ماخذ
. تام میلر، مترجم : رامین مولاناپور ،طراحی و ساخت بازی در #C، مؤسسه فرهنگی هنری دیباگران تهران ، 1385
2. علی غلامی مهرداد ، برنامه نویسی بازی های سه بعدی در Directx، کتاب مرو ، 1385
3. روح الله سلیمانی ، ساخت بازی های سه بعدی 3d Game Creator، ناقوس اندیشه ، 1387
4. شهاب حبیبی ،اصول ساخت و طراحی بازی های کامپیوتری ،مؤسسه فرهنگی هنری دیباگران تهران ،1385
5.سیامک پاک ، اموزش طراحی بازی های کامپیوتری ، لوح فشرده
6.محمد غضنفری ،"اشنایی با موتور بازی" ،
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
7. علی حسینی ، "ماهنامه شبکه " ،
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
8. امیر رضا سعیدی ، "ساخت بازی های رایانه ای و بررسی ابعاد مختلف بازی" ،
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
9. احمد باقرزاده ، "بازی سازان توجه کنند" ،
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
7. محسن شایان ، "موتور بازی" ،
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
10. سروش احسانی ، "اشنایی با موتورهای گرافیکی" ،
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
11. محمد حسین پور ، "موتورهای گرافیکی بازی ها" ،
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
می گما این مقاله هه یه پایان نامه کارشناسی بود . می گم عحب پایان نامه ای نمی دونم چرا اینجور پایان نامه ها به ما نمی خوره
نامردا می گن حتما باید یه چیز فوق خفن بسازین یا تحقیق کنین
حالا می گم اگه مردین بشینین اینو بخونین