PDA

View Full Version : سوال: Allegro OR OpenGL OR SDL OR SFML ؟



moonDark
سه شنبه 19 دی 1391, 10:15 صبح
با سلام و خسته نباشید خدمت تمام دوستان:قلب:
من خیلی وقته کار با C++ رو شروع کردم و به این تنیجه رسیدم که خود C++ به تنهایی کار زیاد جالبی نمیتونه بکنه منم سعی کردم رو محیط کنسول یکم کار کنم و تونستم یه کتابخانه ساده برای رابط کاربری کنسول بنویسم (شاه کار نکردم هرکسی میتونه) بعد رفتم سراغ win32 که اونم چیز پیچیده و خسته کننده ای و ولش کردم و بعدش رفتم سراغ QT که اونم با هر دردسری که بود IDE و SDKش رو گیر آوردم ولی کار نکرد که نکرد اونم بیخیال شدم.:متعجب:
تو همین هفته یه سری کتابخانه بازی سازی توجهم رو جلبید! SDL اولیش بود که باهاش آشنا شدم ولی فهمیدم که با SDL نمیشه کار 3D انجام داد رفتم دنبال OpenGL که اونم از کلی کتابخانه دیگه باید باهاش استفاده کنی بعد Allegro رو پیدا کردم که این دقیقا همون چیزی بود که میخاستم همه چی داره همش آمادس با چند تا تابع ساده میشه کلی کار باهاش انجام داد ولی قدرت OpenGL و سرعت SDL یا SFML رو نداره:گریه:
حالا من موندم کار با کدوم یکی رو شروع کنم که قابلیت کراس پلتفورم داشته باشه و سرعت و قدرت زیادی داشته باشه و راه اندازیش هم مثل GL دردسر نداشته باشه؟؟:لبخند::لبخند:
اگه امکانش هست چند تا منبع آموزشی خوب هم معرفی کنین خیلی ممنون میشم:لبخندساده:

یه سوال دیگه هم دارم:
فرق کتابخانه های استاتیک و دینامیک چیه(همون .a یا .lib و .dll) و چه طوری به جای استاتیک ها از دینامیکشون استفاده کنم مثلا برای استاتیک ها باید سرفایل هاشو به تنظیمات کامپایلر معرفی کنم و پوشه فایل های .a یا .lib رو بهش بدم و چندتا دستور اضافی توی linker option بنویسم ولی نمیدونم چه طوری .dll ها رو به کامپایلر معرفی کنم ایندفعه به شدت ازتون ممنون میشم اگه اینیکی رو هم جواب بدین :لبخند::لبخند::لبخند:

moonDark
چهارشنبه 20 دی 1391, 07:24 صبح
کسی نیست جواب مارو بده؟
آخه چرا تو ایران اینقد به C++ اهمیت نمیدین؟ بهترین و قوی ترین زبان دنیا تو تمام زمان ها:لبخند::لبخند:

#target
چهارشنبه 20 دی 1391, 10:50 صبح
برای یادگیری که فکر کنم Document خودش بهتر از همه باشه . در مورد منبع و اینکه کدام چیه من نمیدونم

منظورتون از معرفی Dll چیه . اصولا همون فایل lib که معرفی میکنین خودش به لینکر میگه که کدام تابع داخل کدام DLL هست و فایل اجرایی ساخته شده دی ال ال رو لود میکنه . شما باید DLL رو کنار فایل اجرایی بذارین (یا تو پوشه های دیگه مثل system32 )
کتابخانه داینامیک همینه . وقتی لازم داره دی ال ال رو لود میکنه . استاتیک هم تو همون فایل اجراییت همش میاد . بسته به کتابخانه هر دو تا ممکن

peacism
شنبه 05 اردیبهشت 1394, 10:24 صبح
lib: Static link Library در واقع يكسري فايل obj هست( بنابراين حجم يك فايل lib زياده) كه در فاز link به application لينك ميشه و اين يكي از بديهاش هست به اين معني كه اگر شما مثلا سه تا application داريد كه از يك lib استفاده ميكنند هر سه اونها در فاز لينك اين فايل رو تو حافظه load ميكنن و ديگه اينكه شما ممكن هست به يك كلاس از اون lib احتياج داشته باشيد اما كل اون فايل بزرگ تو حافظه هست.

dll:Dynamic link library در فاز run به application لينك ميشه به عبارتي پروژه بدون كدهاي library كامپايل ميشه و در زمان run به صورت ديناميك به قسمتهايي كه توي library احتياج داره لينك ميشه. خوب يك dll معمولا همراه يك فايل lib هست(در غير اين صورت بايد توابعي مثل loadlibrary و ... توي كد برنامه اضافه كرد) اما اينجا فايل lib يك فايل كوچك هست كه نقش proxy رو براي توابع dll بازي ميكنه يعني به application ميگه كه چيزي براي لينك كردن وجود داره و لازمه كه يك dll وجود داشته باشه كه برنامه درست اجرا بشه.

در هر دو حالت (استفاده از dll و يا lib) فايل lib به عنوان additional dependencies به پروژه معرفي ميشه.

chikar
شنبه 05 اردیبهشت 1394, 11:33 صبح
رفتم سراغ QT که اونم با هر دردسری که بود IDE و SDKش رو گیر آوردم ولی کار نکرد که نکرد اونم بیخیال شدم.:متعجب:


ببینید دوست عزیز شما تمام چیزهایی که می خواهید رو می تونید با کیوت (بهتر بگم QML)فراهم کنید هم کراس پلتفرم هست و هم می تونید به صورت سه بعدی باهاش کارکنید و هم به خوبی از opengl پشتیبانی می کنه و هم به دلیل C++‎‎‎‎‎‎‎‎‎ بودنش سرعت بالایی داره، دیگه چی می خواید؟
شما احتمالا طرز استفاده از qt و یا با نحوه یادگیری کیوت مشکل دارید! که باید وقت بگذارید از منابع لاتین اعم از خود سایت کیوت، اعم از فروم، مستندات و مثال هاش،سایت نرم افزارهای رایگان نوشته شده به کیوت، ایبوک های لاتین، ویدئوهای یوتیوب، stackoverflow و همین برنامه نویس خودمون و ... استفاده کنید
لیستی از کتابخانه های C++‎‎‎‎‎‎‎ (http://en.cppreference.com/w/cpp/links/libs)
اصلا حواسم نبود مثل که تاپیک مال خیلی وقت پیش هست!!!

ravaei
دوشنبه 07 اردیبهشت 1394, 20:55 عصر
تو همین هفته یه سری کتابخانه بازی سازی توجهم رو جلبید!



اگه می خواید سراغ بازی سازی برید اشتباه خیلی بزرگیه که بخواین از محیط های برنامه سازی مثل Qt یا هر IDE دیگه استفاده کنید احتمالا کتابخونه های خیلی قوی برای این کار وجود داره ولی اصلا قابل مقایسه با موتور های بازیسازی نیست ...

به نظر من اگه واقعا به بازی سازی علاقه دارید میتونید از موتور هایی مثل : GMS , Unity , UDK و .... استفاده کنید که برای مثال تو Unity با زبان های #C و javascript کد بزنید ...

بازم اگه خواستید به صورت native بازی سازی رو شروع کنید همونطور که آقای chikar گفتن محیط Qt و اسفاده از Qml گزینه خوبیه .

موفق باشید.

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