# مباحث متفرقه برنامه نویسی > طراحی و ساخت بازی‌های کامپیوتری >  رایجترین و بهترین زبان برنامه نویسی بازی

## saeidmscs

سلام به همه دوستان
خوش میگذزه؟
شاید سوال من خیلی ابتدایی باشه ولی اگه اجازه بدید بپرسم و اون اینکه الان در سطح دنیا قویترین  و رایجترین زبان game programming چیه؟
من یه چیزایی در مورد python شنیدم ولی نمیدونم چقدر صحت داره
من احتمال زیاد وارد این کار بشم و اینجارو بهترین سایت برای پرسیدن سوالم دونستم
اگه توضیحتون کامل باشه یا لینک به جایی گذاشته باشین،ممنون میشم

----------


## PC2st

اگر بیشتر جستجو کنید بطور حتم به جواب ++C می‌رسید.

----------


## gbg

++C خیلی خوبه ولی من تا جدیدا کسی رو ندیدم که با این زبان بازی بنویسه
اکثر از نرم افزار ها و متور های بازی سازی استفاده می کنن که پیچیدگی کار رو به چند کیلک ساده و ساخت گرافیگ و تکستچر ها می رسونه! و البته در مواقعی به اسکریپت نویسی ولی با این حال به نظر من تمام بازی های ایرانی از ضعف شدید سناریو رنج میبره

----------


## gbg

> دوست عزیز شما اشتباه متوجه شدید.
> اکثر همین نرم افزارها و موتورهای بازی و API ها رو که شما بهش فکر میکنید رو با همین ++C درست میکنند.


من درست متوجه شدم و می دونم اکثر این متور ها رو با سی++ نوشتن ولی وقتی شما با کمک یکی از این متور هایی که با سی نوشته شده بازی بسازی نمی تونی بگی من بازیم رو با زبان سی نوشتم و زبان برنامه نویسیم سی بوده، چون اصلا برنامه ننوشتی

----------


## مرتضی پیروزی

> من درست متوجه شدم و می دونم اکثر این متور ها رو با سی++ نوشتن ولی وقتی شما با کمک یکی از این متور هایی که با سی نوشته شده بازی بسازی نمی تونی بگی من بازیم رو با زبان سی نوشتم و زبان برنامه نویسیم سی بوده، چون اصلا برنامه ننوشتی


سلام
دوست عزیز چه ربطی به هم دارن؟؟
یکی دوست داره بره برنامه نویسی کنه، شما میگی نرو و بیا با موتور کار کن؟؟
دقیقاً عین این میمونه که یکی بگه میخوام برنامه نویسی وب یاد بگیرم، شما بگی یاد نگیر؛ بیا از 
Dream Weaver استفاده کن!!!

----------


## gbg

الان میشه بفرمایید کجای جمله من این معنی رو میداد که بیا با متور کار کن و برنامه ننویس؟

----------


## مرتضی پیروزی

> الان میشه بفرمایید کجای جمله من این معنی رو میداد که بیا با متور کار کن و برنامه ننویس؟





> ++C خیلی خوبه ولی من تا جدیدا کسی رو ندیدم که با این زبان بازی بنویسه
> اکثر از نرم افزار ها و متور های بازی سازی استفاده می کنن که پیچیدگی کار   رو به چند کیلک ساده و ساخت گرافیگ و تکستچر ها می رسونه!


این دقیقاً این معنی رو میده که نیازی به ++C نیست و بهتره بیایم با چند کلیک ساده بازی بسازیم!!

----------


## REZAsys

*دوست عزیز اگر سی++ نباشه موتوری هم در کار نیست !

*

----------


## مصطفی ساتکی

حالا چه اصرارییه حتماً C++‎‎ باشه این همه زبان

----------


## مرتضی پیروزی

> حالا چه اصرارییه حتماً C++‎‎‎ باشه این همه زبان


به خاطر سرعت بالای اون و همچنین سازگاری اکثر موتورها با اون. فراوانی مستندات روی وب.
بهترین سازگاری با OpenGL و  DirectX و................

----------


## gbg

منظور من این بود که مهم نیست با چی بنویسی مهم اینکه چی می خوای بنویسی
اگه بازی که نوشتی سناریوی جالبی نداشته باشه و گرافیک جذابی فرق نمیکنه با سی بنویسی یا دلفی یا بسیک، بازی نویسی از چند بخش تشکیل شده که یکی از بخش های اون برنامه نویسی هستش
در ضمن خود برنامه نویسی برای بازی از چند بخش 1-هوش مصنوعی بازی 2-فیزیک بازی 3-گرافیک بازی تشکیل شده که هر وقت حرفی از بازی نوشتن میشه همه می چسبن خِر اوپن جی ال و دایرکت ایکس رو
مطمعنن سی برای گرافیک خوب باشه ولی من برای 2 مورد دیگه زبان دیگه ای رو می پسندم و کسی دیگه باز سی رو می پسنده
من از سال 70 به زبان سی برنامه می نوشتم پس به قدرت سی کاملا واقفم

----------


## pswin.pooya

> حالا چه اصرارییه حتماً C++‎‎‎ باشه این همه زبان


فرق C/C++‎ اینه که برعکس زبونهای دیگه برای برنامه نویسها طراحی شدن و نه صرفا برای ساخت برنامه از نوع خاصی. این دو زبون به معنای تمام انعطافی رو که یه سیستم میتونه به شما ارائه بده رو به شما میدن و تقریبا خالی از محدودیتهای جانبی هستن.

بازی سازی یه کار سیستمی هستش (یا حداقل قسمت ساخت موتور) و از طرف دیگه توی بازی بیشتر از هر چیزی به سرعت بالا نیاز هست که بعد از اسمبلی که امکان نوشتن کد برای یه موتور داخلش تقریبا صفر هست (مگر اینکه طرف دیگه مخ به تمام معنا باشه و صبر عیوب داشته باشه) سریعترین زبان و انعطاف پذیرترین زبان C/C++‎ هست.

اگر از یه جنبه دیگه به قضیه نگاه کنی:  توی بازی سازی باید به روز باشی و خود این یه دلیل استفاده از C/C++‎ هست چون تقریبا تمام SDKها اول برای این زبونها منتشر میشه(و بعضی از اونها تنها برای این زبونها). و بعد به زبونها دیگه پورت میشن.

C/C++‎ آوای گوش خراشی برای مبتدیان هست چون دقت و سختی (اولیه) کار با اون باعث فرار خیلی ها از سمت این زبونها میشه و برعکس برای حرفه ای ها تنها پناهگاه به شمار میره! چون بهشون اجازه میده هرچی از ذهنشون رو که میگذره باهاش پیاده سازی کنن و این موردی هست که داخل زبانها دیگه نیست.

----------


## مصطفی ساتکی

> فرق C/C++‎‎ اینه که برعکس زبونهای دیگه برای برنامه نویسها طراحی شدن و نه  صرفا برای ساخت برنامه از نوع خاصی. این دو زبون به معنای تمام انعطافی رو  که یه سیستم میتونه به شما ارائه بده رو به شما میدن و تقریبا خالی از  محدودیتهای جانبی هستن.


شما اول بایستی از زبان های دیگه اطلاعات کافی داشته باشید بعد اظهار نظر کنید .اونایی که با C++‎ کار می کنن بزرگ ترین عیبشون اینه که همش به زیان های دیگه ایراد می گیرد . Visual C++‎ بر توانمند این زبان شکی نیست ولی اینو فراموش نکنید که ابر شرکتی مثله مایکروسافت با پولای مفتی پشتشه.
خود شرکت مایکروسافت بی تنهایی و با افرادی که در ابتدا تو شرکت پا گرفته باشن گلی به سر کسی نزده یعنی بیشتر گند زده تا کار مفید . اینو بهتون میگم چون تعصب بی جا دارید  C builder هم داره همون کارو انجام میده ولی به اندازه c  مایکروسافت نتونست رشد کنه یعنی دقیقاً یه کارایی مشابه دارند و جوابش هم یک کلمه است پول.




> ازی سازی یه کار سیستمی هستش (یا حداقل قسمت ساخت موتور) و از طرف دیگه توی  بازی بیشتر از هر چیزی به سرعت بالا نیاز هست که بعد از اسمبلی که امکان  نوشتن کد برای یه موتور داخلش تقریبا صفر هست (مگر اینکه طرف دیگه مخ به  تمام معنا باشه و صبر عیوب داشته باشه) سریعترین زبان و انعطاف پذیرترین  زبان C/C++‎‎ هست.


تو همه زبان ها میشه اسمبلی کد و inline کار کرد بستگی به برنامه نویسش داره نه زبان.




> C/C++‎‎ آوای گوش خراشی برای مبتدیان هست چون دقت و سختی (اولیه) کار با اون  باعث فرار خیلی ها از سمت این زبونها میشه و برعکس برای حرفه ای ها تنها  پناهگاه به شمار میره! چون بهشون اجازه میده هرچی از ذهنشون رو که میگذره  باهاش پیاده سازی کنن و این موردی هست که داخل زبانها دیگه نیست.


همچین تعریف می کنید هر کی ندونو فکر میکنه معجزه است چه سختی داره . شما میگه سخت چون اوایل براتون سخت بوده و گرنه سختی خاصی نداره.




> اگر از یه جنبه دیگه به قضیه نگاه کنی:  توی بازی سازی باید به روز باشی و  خود این یه دلیل استفاده از C/C++‎‎ هست چون تقریبا تمام SDKها اول برای این  زبونها منتشر میشه(و بعضی از اونها تنها برای این زبونها). و بعد به  زبونها دیگه پورت میشن.


هر زبانی واسه خودش طرفدارهایی داره و اونا هم تو اون فیلدی که کار می کنن develop ش می کنن . SDK یی که محدود به زبان خاصیه معمولا از طرف شرکت های کوچک تولید میشه یعنی یه کار دو یا سه نفری.






> C/C++‎‎ آوای گوش خراشی برای مبتدیان هست چون دقت و سختی (اولیه) کار با اون  باعث فرار خیلی ها از سمت این زبونها میشه و برعکس برای حرفه ای ها تنها  پناهگاه به شمار میره! چون بهشون اجازه میده هرچی از ذهنشون رو که میگذره  باهاش پیاده سازی کنن و این موردی هست که داخل زبانها دیگه نیست.


تو دنیای امروز اول دانش خوبی داشته و ثانیاً ایده نویی داشته باشی نه C++‎ .

من چندین ساله کارهای تحقیقاتی انجام میدم تو زمینه پردازش تصویر و شبکه عصبی هیچوقت هم با Delphi به مشکل بر نخوردم اینکه شما به این صورت اظهار نظر میکنی برام خیلی جای تعجبه

----------


## مرتضی پیروزی

باز اسم ++C بدبخت اومد وسط، جبهه گیری ها شروع شد.........

----------


## Marzieh-H

:خیلی عصبانی: 
#Only C

----------


## Marzieh-H

:خیلی عصبانی: 


#Only C

----------


## silverfox

C#‎) xna)رو هم ببینید می تونه گزینه خوبی باشه!

----------


## pswin.pooya

Delphi_CAT                 :

دوست من، من تقریبا تمام زبانهای برنامه نویسی معروف رو کار کردم، از C گرفته تا دلفی،پاسکال، VC، C++‎‎B و بیسیک و ... من قبل از اینکه کار رو با C آغاز کنم با سی شارپ کد میزدم فکر میکردم خداست و سعی میکردم به همه ثابت کنم که دیگه بهتر از این نمیشه اما بعد از اینکه شروع کردم با C کد زدم تازه معنی برنامه نویسی و انعطاف رو درک کردم. دیگه لازم نبود برم دنبال کامپوننت. دیگه لازم نبود نگران خیلی مسائل پیش و پا افتاده باشم. و به جاش یادت گرفتم که چه شکلی که سیستم رو بگیرم تو دستم. به هر شکلی که دلم خواست انعطاف داشتم. و تازه متوجه شدم که چرا طرفدارای C/C++‎‎ تعصب دارن. یاد گرفتم که از کدینگ و سرعت لذت ببرم. یاد گرفتم به جای چیدن آیتمها توی فرم به دیزاین فکر کنم. من تا حالا کسی رو ندیدم که به صورت حرفه ای وارد C/C++‎‎ بشه بتونه ازش دست بکشه.

دلیل اینکه تا حالا دلفی برات کافی بوده اینه که کار سیستمی نکردی. (هوش مصنوعی و یا پردازش تصویر کار سیستمی حساب نمی شن). بهتره با چند سوال منظورم رو برسونم:

1. تا حالا شده بخوای حافظه رو خودت مدیریت کنی نه gc دلفی؟
2. تا حالا شده بخوای با دلفی برای یه میکرو برنامه بنویسی؟
3. تا حالا شده بخوای یه برنامه بنویسی که توی بوت سیستم بالا(منظورم بوت ویندوز نیست) بیاد؟
4. تا حالا شده بخوای درایور طراحی کنی؟


اینا کارهایی هستن که میشه داخل C/C++‎‎ به راحتی انجام داد (اگر از الگوریتمهاشون بگذریم) اما تقریبا داخل خیلی از زبونهای برنامه نویسی برای انجام اینکارها یا راهی وجود نداره و یا اگر هم بشه باید کل دیزاین کامپایلرشون رو بهم ریخت.

مثلا با سی شارپ نمیشه سیستم عامل ساخت اما یه عده اومدن و سعی کردن که یه چیزی شبیه فریم ورک دات نت بنویسن (با اسمبلی) که بشه با سی شارپ اینکار رو کرد اما فعلا هیچ کدوم نتونستن موفق بشن و یه سیستم عامل رو بیرون بدن و مشکل اونها اینه که معنی CIL رو نفهمیدن.

حالا هر چه قدر میخوای چپ و راست برو، ترجیح بازی سازها C++‎‎ هست و نه چیز دیگه، ترجیح برنامه نویسهای سیستم عامل که دیگه رو دستشون نیست C++‎‎ هست. از اوراکل گرفته تا سیستم عاملهای معروفی مثل لینوکس و ویندوز و یا نرم افزارهای معروفی مثل CAD، مکس و مایا همه با C++‎‎ طراحی شدن. حالا چند تا کالای تجاری(یا غیر تجاری) خفن رو میتونی اسم ببری که با دلفی یا سی شارپ طراحی شدن؟؟؟

دلفی، سی شارپ خوبن اما فقط برای ویندوز (و یکی دو تا OS دیگه) اما هیچ وقت نمی تونی انعطاف لازم رو برای کارهای دیگه داشته باشی. حالا باز این وسط اوضاع دلفی به مراتب از C#‎‎ بهتر هست.

جواب سوال زبانهای برنامه نویسی کاملا معلوم هست C++‎‎ و نه چیز دیگه من حتی معتقدم تا زمانی که VC++‎‎ هست زبانهای تحت دات دیگه ای مثل سی شارپ معنای خاصی ندارن مگر برای آماتورها و یا افرادی که بخوان 5 دقیقه ای یه پروژه 50 تومنی بنویسن. طور خدا کجای دنیا Darg and drop شده برنامه نویسی. این زبانوها تنها دارن برنامه نویسها رو زیر سوال میبرن.

من فکر میکنم تنها زبانی که واقعا میتونه با سی رقابت کنه (و اونم از یه جنبه دیگه) تنها جاوا هست و بس.

----------


## silverfox

اینجا حرف از بازیه شما از بوت و میکرو پ و درایور زدی...این حرفت که گفتی C#‎‎‎ برای مبتدی هاست،بعد گفتی 5دقیقه ای باهاش پروژه می نویسن و با درگ&دراپ باهاش برنامه می نویسن حرفایی که در ابتدای پستت زدی رو زیر سوال برد از حرفاتون این بر میومد که با تجربه باشین...چه اشکالی داره با C#‎‎‎ و xna یه بازی در 3 هفته درست بشه که بتونه با بهترین بازی های در رده خودش رقابت کنه(یک مثال در این رابطه)،اگه جنبه ویژوال کمتر شه و کار زمان بر تر شه که نشونه بهتر بودن زبان و یا اون تکنولوژی نیست...فکر می کنم هر کسی دوست داشته باشه در زمان کوتاه تر به نتیجه مورد نظر برسه،حرفاتون در تایید C++‎‎‎ کاملا صحیح ولی در مورد زبان های دیگه با نظراتتون مخالفم!

----------


## hi.alir

جناب gbg برنامه نويسي صوت رو فراموش كرديد. البته شايد خيلي انواع ديگري هم وجود داشته باشه كه داره.




> اینجا حرف از بازیه شما از بوت و میکرو پ و درایور زدی...


ربط درايور به بازي سازي اينه كه، فكر كن داري يه بازي ميسازي مثل گيتار حيرو، بعد ميخواي واسه بازي كن يه دسته شبيه گيتار درست كني ( تو گيتار حيرو چي ميگن بهش چنده اس چيه؟   :متفکر:  )، اونوقت چي كار مي كني؟ ( مي خواي با دات نت واسه دستت درايور بنويسي يا واسه ميكروش برنامه بنويسي) ( چه مثالي  :لبخند گشاده!:  )





> چه اشکالی داره با C#‎‎‎‎ و xna یه بازی در 3 هفته درست بشه که بتونه با بهترین بازی های در رده خودش رقابت کنه(یک مثال در این رابطه)،اگه جنبه ویژوال کمتر شه و کار زمان بر تر شه که نشونه بهتر بودن زبان و یا اون تکنولوژی نیست


اشكالي نداره! چه اشكالي داره. من خودم يه بازي واسه 360 گرفتم كه با xna درست شده بود. خيلي هم چيز خوبيه. جاتون خالي خيلي حال ميده  :لبخند گشاده!: 
من هم واسه تمرين پريدم يكي با ++C/C و DX9 كپي زدم.  :لبخند گشاده!: 
ولي اوني كه من نوشتم كجا و خود بازي كجا. واسه من ولش مي كردم fps تا بالاي 5000 هم مي رفت  :لبخند گشاده!:  البته احتمالا اين قضيه بيشتر به خاطر كامپيوترم هست.
ولي خب در هر حال حرفم اينه كه xna‌ هم خيلي چيز خوبي هست. به خصوص اينكه بدون درده سر ميشه واسه 360 باهاش بازي ساخت. ( البته فكر كنم )

----------


## pswin.pooya

> چه اشکالی داره با C#‎‎‎‎‎ و xna یه بازی در 3 هفته درست بشه که بتونه  با بهترین بازی های در رده خودش رقابت کنه(یک مثال در این رابطه)،اگه جنبه ویژوال کمتر شه و کار  زمان بر تر شه که نشونه بهتر بودن زبان و یا اون تکنولوژی نیست


C++‎ هم با  دات نت و هم با xna سازگار هست:
http://fabiogaluppo.spaces.live.com/...F2F4!154.entry

به نظر من ساختن یه بازی که بخواد تو سه هفته تموم بشه فایده نداره و شبیه همون پروژه 5 دقیقه ای میمونه.

----------


## مصطفی ساتکی

> لیل اینکه تا حالا دلفی برات کافی بوده اینه که کار سیستمی نکردی. (هوش  مصنوعی و یا پردازش تصویر کار سیستمی حساب نمی شن). بهتره با چند سوال  منظورم رو برسونم:
> 
> 1. تا حالا شده بخوای حافظه رو خودت مدیریت کنی نه gc دلفی؟
> 2. تا حالا شده بخوای با دلفی برای یه میکرو برنامه بنویسی؟
> 3. تا حالا شده بخوای یه برنامه بنویسی که توی بوت سیستم بالا(منظورم بوت  ویندوز نیست) بیاد؟
> 4. تا حالا شده بخوای درایور طراحی کنی؟


یه پردازش تصویر کار خوب وقتی بتونه یه library توپ پیاده کنه فکر کنم memory management اش خوب باشه . دوست عزیز تو هر زبان native بخای کاری انجام بدی که benchmark خوبی داشته باشه از memory و مدیریت thread ها دست خودته. من به شخصه به حافظه و سرعت در کد زنی خیلی حساسم . یه برنامه نویس پردازش تصویر به طور مستقیم با حافظه و cpu سروکار داره از شما بعید می دونم که می گید پردازش تصویر سیستمی نیست خود adobe photoshop , adobe premiereنمونه های از نرم افزار پردازش تصویرن که توش هوش هم نیست .

درایور 2 حالت user و kernel داره . در مورد اولش مشکلی وجود نداره و در مورد دومش Delphi Driver Development kit وجوده داره که به راحتی این کارو امکان پذیر میکنه .دیروز هم به شما گفتم C++‎‎ زبان خوبیه ولی شما بدون توجه به توانایی های یه زبان رو (عقیده) تاکید دارید.
فکر کنم این جواب براتون کافی بود
و اگر خواستید نمونه کارهایی که با دلفی انجام شده رو ببینید فکر کنم پروژه های وزارت دفاع آمریکا نمونه خوبی باشه .

http://www.embarcadero.com/rad-in-ac...ategory=Delphi

و اگر میخاید یه دوجین از نرم افزارهایی سیستمی و کاربردی رو ببینید.
http://delphi.wikia.com/wiki/Good_Qu...lt_With_Delphi

----------


## PC2st

دوستان عزیز، عنوان این گفتگو «*رایجترین و بهترین زبان برنامه‌نویسی بازی*» است نه «*با چه زبانی می‌توان بازی نوشت*». بله با دلفی و سی‌شارپ و VB و حتی QBasic هم می‌توان بازی نوشت ولی ++C نسبت به بقیه آنها رایج‌تر و مناسب‌تر است.

----------


## sia_2007

اگه خواستید یه روز واسه دسته بازی برنامه بنویسید؛ میتونید از Micro Framework خود Net. استفاده کنین ( نه Compact Framework )؛
در ضمن یه کتاب فارسی آموزش XNA دیدم؛ خوشم اومد؛ واقعا جالب بود.
از انتشارات کیان رایانه سبز
آقای ناصر داوری
از معدود منابع فارسی بود که تونست توجهم رو جلب کنه.

----------


## a_aryanfar85

سلام .
برای برنامه نویسی بازی می تونید از زبان سی پلاس پلاس و یا از زبا ن سی شارپ استفاده کنید البته باید از دایرکت ایکس و یا اپن جی ال هم که پردازنده صدا وتصویرند استفاده کنید. استفاده از موتور بازی به این معنا نیست که شما نیاز به برنامه نوسی نندارید بلکه موتور هسته کار شما است و اتفاقا نیاز به برنامه نویسی خیلی قویست و یکی از سخت ترین پروژه های برنامه نویسی است .

----------


## mehdi21

ببینید دوستان . اصلا مهم نیست با چی با کی توسط کی و برای چی بازی ساخته می شه . مهم اینکه بازی باید فان داشته باشه و بتونه چند لحظه بازیکن رو به خودش مشغول کنه و سر گرمش کنه .
درسته برنامه نویسا دوست دارن به زبان اصلیشون عشق برورزن و بهش وفادار باشن ، و هر جا می رن ازش دفاع کنن و ...  ولی چیزی که مهمه اینه که باید یه بازی ساخته بشه ، حالا چه با html - java flash و چه   در بهترین حالت ( البته سخترین حالت ) C++‎‎
این واقعا یه افتخار نیست که بگیم اون بازی زبان برنامه نویسیش سی پلاس بود پس دیگه آخره بازیه و یا این یکی چون سی شارپ و یا هر زبان دیگه ای و  چون سی پلاس نبوده پس بازیه خوبی نیست . اصلا این حرفا نیست . کافیه یه سری به سایتهای تولید کننده گیم بزنید ( البته این حرف شامل ea - epic - konami - rock star  و کلا شرکتها بزرگ بازی سازی نیست ) زیاد به زبان و موتور و این چیزا اهمیت نمی دن بلکه به خود بازی و نحوه تعامل اون با بازیکن اهمیت می دن و چون قرار نیست اونو به عنوان تابلو افتخاراتشون بزنن تو اتاقشون ، بلکه می خوان بفروشن و مشتریشون هم فقط به فان و جذابیت بازی اهمیت میده نه به زبان و خفن بودن شما در برنامه نویسی سی پلاس .
در نهایت می خوام اینو  بگم که اگه هدفتون ساخت بازی هست ، خودتونو با این محدودیت ها اسیر نکنید و به چیزای مهمتر فکر کنید که برای بازیکن بیشتر اهمیت داره تا خودتون .
موفق باشید

----------

