ايران ويج

نسخه‌ی کامل: نوشتن یک موتور برای یک بازی
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
چه طوری می شه یک موتور یک بازی که می سازیم درست کنیم

البته لازم نیست مثل موتور پایه آنریل3 باشهExclamationExclamationExclamationExclamationExclamation
ساده ترین موتور گرافیکی(البته2d)از 3 تا timer تشکیل میشه که تایمر اول مسئول حرکت و کارهای کاراکتر شماست تایمر دوم مسئول تغییرات پس زمینست و تایمر سوم مسئول حرکت دشمن در صفحه هست
تو مخیطهای 3d معمولا برای ساخت کاراکتر و حرکتشون از opengl و یا direct 3d استفاده میشه + الگوریتمهای هوش مصنوعی بهتره تو www.sourceforge.net دنبال سورس موتورهای open source بگردی و یه کم باهاشون ور بری کتاب هم تو این زمینه زیاده البته english
ساخت یک موتور بازی ساده نیست . یک موتور بازی از چندین بخش تشکیل شده مثل :

1-موتور گرافیکی (افکت های تصوصیری ، نورپردازی ، Render کردن ، Vertex یا Pixel shader و .. ) معمولا از کتابخونه هایی مثل Direct3D یا OpenGL برای ساخت این قسمت استفاده میشه . بسیاری از موتور های گرافیکی Open source هم هستند که میتونید اونها رو هم استفاده کنید .

2-سیستم هوش مصنوعی ( کنترل و جهت یابی کاراکتر ها مثلا حرکت یا استراتژی دشمن ها یا ماشین ها یا پیدا کردن نزدیکترین مسیر در صفحه و ...) معمولا از الگوریتم های هوش مصنوعی و ژنتیکی در این قسمت استفاده میشه

3-موتور فیزیک ( تشخیص برخورد های مختلف و پاسخ دادن به اونها بشکلی که بصورت کاملا طبیعی و واقعی به نظر برسند با کمک فرمول های فیزیک نیوتونی ) ساخت یک سیستم فیزیکی قدرتمند و دقیق حتی برای بازیهای تجاری ، بسیار مشکل و پرهزینه هست و مدت زمان زیادی رو میبره . برای همین کتابخونه های فیزیکی مختلفی وجود دارند مثل Open Dynamics Engine یا Newton Game Dynamics که بسیاری از سازندگان بازیهای کامپیوتری از اونها استفاده میکنند . جدیدا روی کارت های گرافیکی یک IC جدید با نام PPU نصب میکنند که به طراحان بازیها قابلیت ساخت یک سیستم فیزیکی قدرتمند ، دقیق و پر سرعت در سطح سخت افزار رو میده .

4-سیستم صدا ( کنترل ، پخش ، پردازش و افکت های صوتی مثلا شبیه سازی صدای سه بعدی و افکت دوپلر و ...) بازهم کتابخونه هایی مثل Direct Sound یا Direct Music و یا OpenAL و ... به برنامه نویسان اجازه میده سیستم صوتی مورد نظر خودشون رو به راحتی طراحی کنند .

بسیاری از بازی ها هم به سیستم انتقال دیتا روی شبکه نیاز دارند مثلا بازیهای اینترنتی و یا مالتی پلیر رو شبکه. معمولا بسیاری از پروتکل های شبکه مثل TCP و UDP به تنهایی پاسخگوی نیازهای سیستم بازیهای جدید نیستند . بسیاری از برنامه نویسان سیستم های شبکه مختلف و خاصی رو برای بازیهای خودشون طراحی میکنند و یا از کتابخونه های آماده مثل OpenTNL ، HawkNL یا Raknet برای اینکار استفاده میکنند .
با تشکر از همه دوستان

می خواستم بدونم موتورهای بازی را اکثرا با چه زبانی می نویسن؟؟؟؟
اونقدی که من دیدیم اینور و اونور بیشتر با ++c بوده
90 درصد موتور های بازیها رو با زبان ++C نوشتن .همچنین اخیرا مایکروسافت با ارئه تکنولوژی XNA ، راه رو برای #C باز کرده !
زبانهای دیگه به ندرت استفاده میشن
سلام به همه با استعدادها.

یه سوال داشتم اونم اینکه کتاب اموزشی در مورد برنامه نویسی Direct3D یا OpenGL از کجا می تونم پیدا کنم .(البته فارسی) راهنمای کنید ممنون می شم.
فکر کنم یه کتاب بود آموزش ساخت بازی توسط Directx و C# حالا اسمش دقیق یادم نیست. برای n سال پیشه. توی کتابخونه بگرد. توی اینترنت آموزشش زیاده.