View Full Version : سوال: آیا میتوان بازی های باگرافیک بالا که امروزه با C++ مینویسند با C# نوشت؟
shn1377
پنج شنبه 12 مرداد 1391, 22:58 عصر
با سلام خدمت دوستان.
آیا میتوان بازی های باگرافیک بالا که امروزه با C++ نوشته میشود با C# نوشت؟
یه سوال دیگه هم داشتم چرا اکثر بازی ها را با C++ مینویسند؟
the king
جمعه 13 مرداد 1391, 04:43 صبح
با سلام خدمت دوستان.
آیا میتوان بازی های باگرافیک بالا که امروزه با C++ نوشته میشود با C# نوشت؟
یه سوال دیگه هم داشتم چرا اکثر بازی ها را با C++ مینویسند؟
کلا در برنامه نویسی تجاری ++C در همه زمینه ها انتخاب خوبیه، بهترین کامپایلر ها رو داره، سرعت اجرای کد اش خیلی بالا است،
برنامه نویسان حرفه ای زیادی داره و برای کاربرد های گرافیکی نمونه کد و منابع زیادی به زبان ++C هست.
کد نویسی با #C ساده تره اما فایلهای اجرایی که با #C و سایر زبان های Net. کد نویسی شده اند کد Native زبان ماشین نیستند،
تحت یک ماشین مجازی اجرا می شوند که هم سرعت اجرایش به مراتب کمتر از خروجی کامپایلر هایی است که زبان هایی مثل ++C دارند
و هم به دلیل ماهیت فایل اجرایی اش شکستن قفل اش ساده تر است. برای سازندگان بازی سرعت اجرا و حفاظت از کد اهمیت زیادی داره،
در ضمن تعدد و تنوع کتابخانه ها و نمونه کد هایی که برای بازی سازی بکار می روند در ++C به مراتب بیشتر از #C است.
شما قطعا می توانید با #C بازی بسازید، اما تا حد امکان باید کد نویسی #C اش را کاهش دهید. هر چه بیشتر روی کتابخانه های DLL ای
که با زبان های غیر Net. ساخته شده اند تکیه کنید بازی تان کمتر تحت تاثیر کندی #C قرار خواهد گرفت.
shn1377
جمعه 13 مرداد 1391, 17:04 عصر
سلام.
آیا دلیل اینکه سرعت C++ از C# بیشتره،به دلیل مدیریت نشده بودنش است؟
the king
جمعه 13 مرداد 1391, 18:01 عصر
سلام.
آیا دلیل اینکه سرعت C++ از C# بیشتره،به دلیل مدیریت نشده بودنش است؟
نه، مدیریت شده و نشده اصطلاحات Net. ای اند، در مورد ++C نمیشه گفت مدیریت نشده، چون اصلا دیگه بحث مدیریتی در کار نیست.
مدیریت شده و نشده الزاما به معنای سریعتر و کندتر بودن روال پردازش کد نیستند.
در Net. به هر کدی که خارج از محیط Net. طراحی شده مدیریت نشده میگن، جالا ممکن یک کد سریع زبان ماشین پردازنده باشه
یا یک کد کند ماشین مجازی جاوا یا ویژوال بیسیک کلاسیک. کاری به سرعت اش ندارند، تنها ویژگی مشترک شون اینه که بیرون از محیط
ماشین مجازی Net. طراحی شده اند.
فرق اساسی فایل های اجرایی ++C و #C در نحوه کامپایل و خروجی کامپایلر شونه که هیچ شباهتی به هم ندارند، اختلاف سرعت
اجرا هم سر همین خروجی کامپایلر و نحوه اجرا شدنشه.
++C سریعتره چون اولا کد اش موقع کامپایل شدن صرفا به یکی یا دو دستور زبان ماشین پردازنده ترجمه میشه که مستقیما توسط
پردازنده اجرا میشه، خیلی نزدیک به خروجی زبان خیلی سطح پایینی مثل اسمبلی. در ضمن کتابخانه ها و کمپوننت های جانبی
++C هم همین سرعت رو دارند. در نتیجه از قابلیت ها و قدرت پردازنده استفاده بهینه ای میشه.
اما در مقابل کد های #C موقع کامپایل شدن به یک زبان میانی ترجمه می شوند که نه شبیه #C ئه و نه شبیه زبان ماشین پردازنده.
برای پردازنده هم قابل فهم نیست. همچین خروجی ای اگه بخواهد اجرا بشه یک مرحله کامپایل دیگه رو پشت پرده طی می کنه تا از
کد میانی به زبان ماشین ترجمه بشه و بعد تازه اجرا میشه. اولا این مرحله کامپایل اضافی خودش زمانبر ئه و ثانیا کد ماشینی که
ایجاد میشه به اون اندازه ای که کامپایلر ++C بهینه است در مورد این زبان میانی نیست. تنها مزیت این زبان میانی در اینه که
میشه در سیستم عامل های مختلف یا پردازنده های ناسازگار بکارش برد، البته به شرطی که مایکروسافت این تمایل رو داشته باشه.
barnamenevisforme
شنبه 14 مرداد 1391, 09:39 صبح
سلام
ظاهرا میشه،سوای بحث سرعت و امکان قفل گشایی
این موضوع رو یه نگاه بندازید:
http://barnamenevis.org/showthread.php?352490
hi.alir
شنبه 14 مرداد 1391, 17:34 عصر
اگر از بحث سرعت و بهینه سازی و ... هم صرف نظر کنیم، یعنی اصلا کامپیوتر ها اونقدر قدرتمند باشند که اصلا دیگه این چیزا براش مهم نباشه، باز هم با امکاناتی که الان #C فراهم می کنه نمیشه یه بازی در حد بازی های بزرگ ساخت. نه کتابخونه های لازم رو داره و قدرت لازم برای پیاده سازی کتابخونه های لازم. مگر اینکه کتابخونه های لازم رو با C++ بنویسید و به صورت API تو #C استفاده کنید. ولی کلا با تکنلوژی ای مثل دات نت کار هایی مثل ساختن بازی نمیشه انجام داد، با دات نت حتی نمی تونید یه برنامه برای رایت سی دی بنویسید. کلا هر چیز که نیاز به تعامل مستقیم با سیستم عامل و سخت افزار داشته باشه یه زبانی مثل Cpp لازم داره.
fjm11100
یک شنبه 15 مرداد 1391, 09:44 صبح
به ابزار unity3d یک نگاهی بنداز.
اینکه کلا یک بازی را با C# بنویسی اگر بازی های شکل فلش باشه با wpf میشه نوشت اما بازی های 3d خیلی کند میشه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.