View Full Version : مبتدی: کدوم ++C بهتره؟
SIMMORSAL
سه شنبه 21 تیر 1390, 01:20 صبح
سلام، تو تاپیک C کسی جواب نداد اومدم اینور! من یه مبتدی به تمام معنام و میخام به زبان ++C و با برنامهء UDK (Unreal Development kit) بازی بسازم. در اینمورد خیلی تحقیق کردم و فهمیدم که زبان ++C انواع مختلفی داره که یکیش مثلا MFCیه!
حالا میتونه کسی بگه کدوم واسه این یا هر برنامهء دیگهء بازی سازی بهتره؟
alamate_aoal
سه شنبه 21 تیر 1390, 03:01 صبح
سلام
win32 قویترین و البته سخترین است
AMIBCT
سه شنبه 21 تیر 1390, 09:33 صبح
MFC مجموعهای از کلاسها برای برنامهنویسی تحت ویندوز است
زبان ++C یه استاندارد جهانی داره
و تعدادی کامپایلر که هر کدوم تغییراتی در اصل ایجاد کردن
اگه از این تغییرات که هر کامپایلر برای خودش ایجاد کرده، استفاده نکنید، با هر کامپایلر و در هر سیستمعاملی میتونید برنامهتون رو کامپایل کنید
و البته از کلاسها و دستورات مختص به سیستمعاملهای خاص هم نباید استفاده کنید
برنامهنویسی ++C برای یک تازهکار خیلی سنگینه
و شاید شما رو ناامید کنه
بهتره اول از زبانهای سادهتر شروع کنید و بعد از اینکه با اصول برنامهنویسی آشنا شدید، سراغ این زبان و پیچیدگیهاش برید
SIMMORSAL
سه شنبه 21 تیر 1390, 21:45 عصر
گرچه نفهمیدم چی شد :گیج: ولی بازم ممنون.
من قبلا با VB کار کردم و تا حدودی از قواعد برنامه نویسی و حالت های مختلف توی برنامه نویسی های مختلف سر در میارم.
حالا چنتا سوال دیگه:
1. با win 32 میشه بازی ساخت؟
2. آموزش استاندارد زبان ++C رو کجا میتونم گیر بیارم؟ انگلیسی هم باشه مشکلی نیست.
3. AMBICT، میتونی به صورت مختصر کامپایل و کلاس رو واسم تعریف کنی که پستت رو کامل درک کنم.
4. کسی کلاس برنامه نویسی ++C تو اصفهان بلد نیست؟ من هر چی گوگل میکنم چنتا سایت شیلتر میاره!:ناراحت:
glassysmart
چهارشنبه 22 تیر 1390, 01:34 صبح
4- تو خیابان آمادگاه روبرو هتل عباسی
AMIBCT
چهارشنبه 22 تیر 1390, 09:15 صبح
پایهترین شکل برنامهنویسی زبان ماشین هست
یعنی هر دستور یک عملیات ساده رو انجام میده( عملیاتی مثل جمع دو عدد یا انتقال مقداری در حافظه یا... )
مرحلهی بعدی زبانهای ساختیافته هستن
مثل C و Basic که با مجموعهای از توابع سازماندهی میشن
هر تابع مجموعهای از عملیات ساده یا مجموعهای از توابع دیگه رو اجرا و فراخوانی میکنه
مثل جمع کردن 10 عدد یا مرتب کردن یک لیست
و در حال حاضر پیشرفتهترین شکل برنامهنویسی
برنامهنویسی شیء گرا هست
نیازهایی که در برنامه وجود دارند در قالب اشیایی سازماندهی میشوند
هر شیء مجموعهای توابع و مشخصات را در خود جای میدهد
مثلا شیء دکمه در ویندوز که قابلیتهای مختلفی دارد
MFC هم مجموعهای از اشیاء است که هر شیء کارهای خاصی انجام میدهد
یعنی با استفاده از هر شیء و مشخصات و توابع آن میتوانید کارهای پیچیدهای رو در برنامه انجام بدید
بدون MFC هم میشه برنامه نوشت
ولی کارهایی که هر شیء موجود در MFC قابل انجامه
باید به صورت دستی نوشته بشه که این حالت Win32 نام دارد
استفاده از کلاسهای آماده مثل MFC چندین مزیت داره که مهمترین اونها بهینهسازی و سازگاری در سیستمعاملهای مختلف هست
برنامهنویسی Win32 در مقایسه با برنامهنویسی با کلاسهای آماده
مثل برنامهنویسی با زبان ماشین در مقایسه با زبان C هست
با توجه به اینکه شما تازهکار هستید
انتخابهای نادرستی دارید
دو تا از سختترین گزینهها رو انتخاب کردید که من امیدی به موفقیت شما ندارم
گزینههای ++C و Win32
برای برنامهنویسی در حالت Win32 شما با هزاران دستور مواجه هستید که یادگیری حداقلهای مورد نیاز شاید به چندسال زمان نیاز داشته باشه
REZAsys
چهارشنبه 22 تیر 1390, 10:11 صبح
سلام
اشتباه نکنید
++C معمولا برای نوشتن انجین ها ( یا موتورهای) بازیسازی بکار میره و خیلی کم میتونه تو ساخت مستقیم بازی کمک کنه .
UDK انجینی هست که با ++C نوشته شده . پس انتظار نداشته باشید با سی پلاس بازی بسازید
SIMMORSAL
چهارشنبه 22 تیر 1390, 11:13 صبح
بدون MFC هم میشه برنامه نوشت
ولی کارهایی که هر شیء موجود در MFC قابل انجامه
باید به صورت دستی نوشته بشه که این حالت Win32 نام دارد
استفاده از کلاسهای آماده مثل MFC چندین مزیت داره که مهمترین اونها بهینهسازی و سازگاری در سیستمعاملهای مختلف هست
برنامهنویسی Win32 در مقایسه با برنامهنویسی با کلاسهای آماده
مثل برنامهنویسی با زبان ماشین در مقایسه با زبان C هست
من یه جاهایی از پستتو گیج شدم:
حالا تو تو بند اول میگی WIN32 حالتیه برای برنامه نوشتن برنامه به زبان ++C به روش MFC.(من اینطوری فهمیدم)
تو بند دوم میگی MFC یه کلاسه.
تو بند سوم، تو خط اول برنامه نویسی WIN32 رو با برنامه نویسی کلاسها مقایسه میکنی که کلا بندهای اول و دوم رو انکار میکنه.
در ظمن سوء تفاهم نشه، من نمیخام مچ بگیرم، من فقط میخام شروع کارم درست حسابی باشه!
با توجه به اینکه شما تازهکار هستید
انتخابهای نادرستی دارید
دو تا از سختترین گزینهها رو انتخاب کردید که من امیدی به موفقیت شما ندارم
گزینههای ++C و Win32
حالا به نظر تو من الان از کجا شروع کنم؟
SIMMORSAL
چهارشنبه 22 تیر 1390, 11:18 صبح
سلام
اشتباه نکنید
++C معمولا برای نوشتن انجین ها ( یا موتورهای) بازیسازی بکار میره و خیلی کم میتونه تو ساخت مستقیم بازی کمک کنه .
UDK انجینی هست که با ++C نوشته شده . پس انتظار نداشته باشید با سی پلاس بازی بسازید
پس من الان دقیقا باید چیکار کنم؟ همین الان UDK رو دانلود کنم و شروع کنم به بازی ساختن، یا این برنامه پیشنیاز هم داره؟
AMIBCT
چهارشنبه 22 تیر 1390, 16:14 عصر
یه بار دیگه مطلب رو بخونید کاملا واضحه و برداشت شما اشتباه هست
MFC یه رابط بین کد شما و دستورات Win32 هست
شما میتونید این رابط رو بردارید و مستقیم از دستورات Win32 استفاده کنید
البته اطلاعاتی که لازمه خیلی دراین وضعیت بیشتره
برای شروع برنامهنویسی به نظر من VB.NET خیلی گزینهی خوبی هست
REZAsys
چهارشنبه 22 تیر 1390, 18:24 عصر
پس من الان دقیقا باید چیکار کنم؟ همین الان UDK رو دانلود کنم و شروع کنم به بازی ساختن، یا این برنامه پیشنیاز هم داره؟
زبان اسکریپت این موتور Unreal script هست . نمیدونم دقیقا تو چه سطح از برنامه نویسی هستید ولی یه نگاهی به ایتجا بندازید :
http://udn.epicgames.com/Three/UDKProgrammingHome.html
این صفحه ی اصلی Programming آنریل اسکریپت هست ببینید اگر مفاهیم اولیه رو بلد نیستید بهتره با ++C شروع کنید چون ممکنه یه روز بخواید رو نوشتن انجین هم تمرکز کنید در کل پیشنهاد میکنم برای شروع این مقاله رو بخونید
http://forum.p30world.com/showthread.php?t=494812
SIMMORSAL
چهارشنبه 22 تیر 1390, 22:14 عصر
یه بار دیگه مطلب رو بخونید کاملا واضحه و برداشت شما اشتباه هست
این بار که با دقت تر خوندمش، یه چیزایه دیگه هم فهمیدم، ولی بازم هنوز نه کامل. فکر کنم باید حرفه ای تر شم تا کامل درکش کنم.
برای شروع برنامهنویسی به نظر من VB.NET خیلی گزینهی خوبی هست
چون من قبلا با VB کار کردم و یه چیزایی ازش میدونم و در کل از VB خوشم نمیاد، این زبانو بی خیال میشم. ولی بازم ممنون.
REZA جان، چون من مسلما میخام با برنامه های دیگه ای هم کار کنم، پس کلا UNREAL SCRIPT رو هم بیخیال میشم.
بهتره با ++C شروع کنید چون ممکنه یه روز بخواید رو نوشتن انجین هم تمرکز کنید
به نظر منم بهتره که با همین ++C شروع کنم. کی میدونه، شاید یه روز یه انجین ساختم، یه بازیم باش ساختم بعد که معروف شد، هر دو رو فروختم:لبخندساده: (چه خوش خیال!!)
Saeed.Masoumi
پنج شنبه 23 تیر 1390, 09:11 صبح
سلام
ببین فرقی نداره شما از چه زبانی استفاده می کنید همه خانواده سی مثله هم هستند (حالا یکم تغییرات توی این یکی بدی میشه اون یکی) اما مهم اینه که از چه روشی برای رنامه نویسی استفاده می کنند مثلا Win32 که دوستان فرمودند شما ملزم هستید که مستقیما از API های ویندوز برای ساختن ویندوز اپلیکیشن ها استفاده کنید یعنی مثلا حتی اگه بخواین یک فرم رسم کنید نیاز به دهها خط کد دارد به طبع چون شما از هیچ واسطی جز Win api ها برای برنامه نویسی استفاده نمی کنید روند اجرای برنامه تان سریع تر ولی روند نوشتن آن کند تر است اما MFC یک بسته از قبل آماده کرده است (یک کتابخانه) که علاوه بر این که شما می توانید از WinApI مستقیما استفاده کنید می توانید از توابع پیش ساخته نیز استفاده کنید که در این صورت روند اجرای برنامه بدلیل داشتن واسط مقداری کند تر (در حد اپسیلون) اما روند نوشتن آن بسیار سریع تر از روش قبل می باشد حالا میشه گفت یک رابطه معکوس بین سریع نوشتن و سریع اجرا شون وجود دارد مثلا سی شارپ چیزی نیست جز یک سری کتابخانه که از قبل طراحی شده و شما فقط کد آنرا می نویسید سپس مترجم / کامپایلر / مفسر / ...می آید و این کد شما را تبدیل با استفاده از کد کتابخانه ها قابل فهم تر کرده بعد به زبانی دیگر ترجمه میکند (IL) سپس آنرا اجرا می کند و...
اما مهمترین مسئله اینجاست چرا خیلی ها فکر می کنند زبانی که با آن انجین نوشتند بدرد ایجاد بازی نمی خورد دلیلش ساده است چون در اغلب انجین ها زبانی خود ساخته دارند یا از زبان اسکریپتی از پیش ساخته شده استفاده میکنند و شما تنها برای استفاده از این انجین باید این زبان را یاد بگیرید مثل Unreal Script و یا Lua و... اما دوست عزیز شما می توانید بدون استفاده از انجین های آماده بازی خود را مستقیما با همون اسمبلی - سی - سی++ - جاوا - سی شارپ و .... بنویسید (در هر صورت این جا هم خودتان بنحوی دارید انجین می سازید).
حالا اگه از زبان برنامه نویسی برای ایجاد بازی استفاده می کنید نیاز دارید تا توابع پیش ساخته یا کتابخانه هایی مانند DirectX و XNA و OpenGl و ... استفاده نمایید یا حتی فراتر رفته و خودتان کتابخانه گرافیکی مربوط به خودتان را بنویسید.
در هر صورت اگر بازی را با زبان برنامه نویسی می نویسید باید تمام پایه آنرا نیز خودتان بنویسید مانند فیزیک و برخوردها و ......
موفق باشید
SIMMORSAL
پنج شنبه 23 تیر 1390, 14:28 عصر
پس آخر همونی شد که اول میخاستم انجام بدم، باید قبل از همه چیز ++C یاد بگیرم.
فقط یه سوال، منظورت از این جمله:
حالا اگه از زبان برنامه نویسی برای ایجاد بازی استفاده می کنید نیاز دارید تا توابع پیش ساخته یا کتابخانه هایی مانند DirectX و XNA و OpenGl و ... استفاده نمایید یا حتی فراتر رفته و خودتان کتابخانه گرافیکی مربوط به خودتان را بنویسید.
در هر صورت اگر بازی را با زبان برنامه نویسی می نویسید باید تمام پایه آنرا نیز خودتان بنویسید مانند فیزیک و برخوردها و ......
اینه که خود انجینا قابلیتای DirectX و ... رو دارن ولی اگر بخام ازشون استفاده کنم باید زبان اصلی اون انجین رو بلد باشم و اگر بخام از زبانای دیگه (غیر از زبان انجین) استفاده کنم باید از DirectX و ... به عنوان یه پلاگین استفاده کنم؟
hi.alir
پنج شنبه 23 تیر 1390, 15:54 عصر
نه بابا. الان برا چی داری این سوالا رو می پرسی الکی وقتت رو تلف می کنی. برو ++C رو یاد بگیر، بعدش که یاد گرفتی برو تو این تاپیک (http://barnamenevis.org/showthread.php?271860-%D8%A2%DB%8C%D8%A7-%DB%8C%DA%A9-%D9%85%D8%A8%D8%AA%D8%AF%DB%8C-%D9%87%D8%B3%D8%AA%DB%8C%D8%AF%D8%9F).
Saeed.Masoumi
جمعه 24 تیر 1390, 12:31 عصر
ببین اون اینجین قبلا برنامه نویسی شده و از یک کتابخونه توی برنامه نویسیش استفاده شده حالا شما به عنوان یک کاربر این اینجین اصلا نیازی نیست بدونید زبانی که باهاش انجین رو ساختن چی هست چه برسه بخواین باهاش آشنا هم بشین شما فقط لازمه اسکریپتی که با اون برای بازی هاتون هوش مصنوعی و .... می سازین رو یاد بگیرین اما اگر می خواین بدون یک انجین بازی بسازید باید زبان برنامه نویسی بلد باشید مثلا C++ و از یک کتابخونه گرافیکی استفاده کنید مثل OpenGL .
همین!!!
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.