سلام.
دوستان یک سوال داشتم که سرچ هم کردم نتیجه ای پیدا نکردم ،من میخوام برای اندروید بازی بسازم و الآن دارم جاوا یاد میگیرم
میخواستم بدونم با جاوا میشه بازی ساخت؟وباید از چه نرم افزاری استفاده کنم؟کتابی اگر میشناسید لینکشو بدید بی زحمت.
سلام.
دوستان یک سوال داشتم که سرچ هم کردم نتیجه ای پیدا نکردم ،من میخوام برای اندروید بازی بسازم و الآن دارم جاوا یاد میگیرم
میخواستم بدونم با جاوا میشه بازی ساخت؟وباید از چه نرم افزاری استفاده کنم؟کتابی اگر میشناسید لینکشو بدید بی زحمت.
سلام
بهتره برای بازی سازی از انجین های بازی سازی استفاده کنید
gamemaker studio واسه دو بعدی خوب جواب میده
منشکرم از جوابتون.
توی گیم میکر اگه بخوایم از بعضی امکانات ایکلیپس و جاوا استفاده کنیم
مثلا اگر بخوایم پرداخت درون برنامه ای ایجاد کنیم
امکانش هست؟؟
فقط اند انجین به نظر من برای اندروید خوبه و کد زدن با این موتور بازی سازی بسیار راحته و زبانش هم جاواست . البته یونیتی هم خیلی خوبه و همین طور cocos2d-x با زبان سی ++ .
من با همشون کار کردم و از همشون راضیم ولی اندانجین هم جاواست و هم راحته و هم کار راه اندازه .
البته شما اول جاوا را یاد بگیر بعد برنامه بنویس بعد بازی . متاسفانه نمیشه یه شبه به همه جا رسید ولی اگه پشتکارت خوب باشه خیلی پیشرفت خواهی کرد .
موفق باشی .
Write Once, Run Anywhere
cocos2d-x و اندانجین این قابلیت را دارند چون توی اکلیپس بازی را می سازید ولی گیم میکر فکر نمی کنم این قابلیت را داشته باشه .
Write Once, Run Anywhere
سلام
زبان یه ابزاره.این که با جاوا میشه یا نه،کاملا بستگی به چیزی که میسازید داره.
در حالت کلی C/C++ توی بازی سازی حکم رانی میکنه.(هم دسکتاپ هم اندروید.)ولی خوب احتمالا کار شما با همون جاوا راه میفته.:)
چون پیاده سازی همه چیز از صفر خیلی زمان و هزینه بر هستش و همچنین دانش خیلی بیشتری لازم داره،معمولا از موتور های بازی سازی استفاده میکنن.این که از چه موتوری استفاده بشه هم باز بستگی به چیزی که میخواید بسازید داره.موفق باشید.:)
شما که نمی دونی الکی نظر نده عزیز من .
اندانجین که کلا یه لایبرریه که به اکلیپس اضافه میشه و همه ی ساخت بازی با کد زدن توی اکلیپسه . پس قطعا به اکلیپس ربط داره .
cocos2d-x هم فقط برای ساخت مناظر بازی و ui از یه برنامه ی دیگه استفاده می کنه و همه ی کد های جاوا و سی ++ را شما باید توی اکلیپس براش ینویسید. (خودش یه پروژه ی اکلیپس می سازه و همه ی مقدمات را فراهم می کنه) . و توی آموزش هاش استفاده از پرداخت درون برنامه ای هم بود .چون فقط با سی ++ نیست و چون با اکلیپسه میشه با جاوا هم توش یه کارایی مثل درون پرداخت را انجام داد
Write Once, Run Anywhere
در خود اکلیپس هم میشه بازی ساخت و با انجین هم میشه
برای ساخت بازی های دو بعدی از گیم میکر میتونی استفاده کنی که اسکریپت شده دلفی است (خودشم با دلفی نوشته شده)
و
برای ساخت بازی سه بعدی از یونیتی استفاده کنی که اسکریپت شده سی شارپ
خوب همین دیگه.کتابخانه چه ربطی به ویرایشگر متن و IDE داره؟ این که یه کتابخانه هستش که نشد دلیل آخه!
کتابخانه باید به نرم افزار لینک بشه.همین.شما میتونی با نوت پد هم بنویسی.ربطی نداره.فقط توی این مورد که شما گفتید موقع کامپایل شدن،اکلیپس تنظیم میشه که اتوماتیک لینک کنه.اگر نه و شما بخواید خودتون دستی کامپایل کنید هم میشه.فقط باید موقع کامپایل،دستور درست رو بنویسید(به کتابخانه هم لینک بدید.)اینها از ابتدایی ترین مفاهیمیه که یه برنامه نویس باید بدونه.الان فرضا iostream یه کتابخانه برای C++ هستش.شما چه توی نوت پد بنویسی چه توی اکلیپس،اگه بخوای ازش استفاده کنی باید به نرم افزار اضافش کنی.(تو این مورد با include).یا یه نمونه دیگه Qt هستش.هرجایی میشه براش کد زد.مهم اینه که به نرم افزار لینک بشه.هم توی ویژوال استودیو میشه هم توی کیوت کریتور هم توی نوت پد و جی ادیت.تنها در حالت اول IDE تنظیم میشه که کارهای کامپایل رو راحت کنه.همین.:)
در کل :اکلیپس صرفا یه Ide هستش که میشه برای خیلی از زبان ها باهاش کد زد.مثلا php java c C++ python و خیلی از زبان های دیگه.(تقریبا همه چیز.)گفتن این که چون میشه با اکلیپس میشه کد زد،یعنی میتونی پرداخت درون برنامه ای اضافه کنی ۱۰۰% اشتباه و کاملا بیربط هستش.
دوست عزیز . من با هردوی این انجین ها کد زدم و توی هردو شون هم از پرداخت درون برنامه ای استفاده کردم . حالا من با اکلیپس کد بزنم یا با نوت پد فرقی نداره . اصل اینه که این کار ممکنه توی هردوی اونها .
من منظورم از اینکه بازی را توی اکلیپس می سازید اینه که بازی را می تونید توی اکلیپس بسازید . وگرنه با نوت پد هم میشد همین کارو کرد . ولی هیچ کس تا اکلیپس هست از نوت پد استفاده نمی کنه.
اینکه توی اکلیپس کد می زنی یعنی اینکه می تونی باهاش مثل یه برنامه ی عادی رفتار کنی و هر چی اونجا انجام میدادی اینجا هم انجام بدی . و اینکه کد های جاوا و manifest برنامه دست خودته . مثلا موتور هایی مثل یونیتی خودشون بازی را کامپایل می کنن و به نظر من شما مثل بقیه برنامه ها نمی تونی رفتار کنی.
Write Once, Run Anywhere
عزیز من شما گفتید:
این که توی چون توی اکلیپس ساخته میشه یه قابلیتی داره کاملا اشتباهه.و تا حد زیادی در تضاد با ارسال آخرتون هستش.cocos2d-x و اندانجین این قابلیت را دارند چون توی اکلیپس بازی را می سازید.
الان کیوت هم توی کیوت کریتور ساخته میشه.ولی میشه بیرون هم ازش استفاده کرد.
پرداخت درون برنامه ای صرفا یه قابلیت ساده هستش.ربطی نداره کجا و چطوری برنامه پیاده سازی بشه.(دوباره میگم.گفتید چون توی اکلیپس میشه باهاش کد زد یعنی میشه پرداخت درون برنامه ای هم داشت.و طبعا متضادش میشه این که اگه توی اکلیپس نشه باهاش کد زد یعنی نمیشه پرداخت درون برنامه ای داشت!) فرضا ساخت pushbutton یه قابلیت در کیوت هستش.حالا شما چه در کیوت کریتور این برنامه رو بنویسید چه در نوت پد،این قابلیت وجود داره.این که بگیم چون میشه توی اکلیپس هم با سی++ و کیوت pushbutton ساخت کاملا اشتباهه.اصلا ربطی نداره!
اگر کمی راجع به کتابخانه ها،IDE، لینک داینامیک و استاتیک ،نحوه ی استفاده از کتابخانه در نرم افزار کامپایل شده و مباحث مشابه کمی مطالعه بکنید،مشکلتون حل میشه.
موفق باشید.
از همه ممنون فقط یک چیز،میتونم بدونه اینکه از موتور بازی استفاده کنم ،با اکلیپس یا نت بینز بازی بسازم؟
البته با جاو (الآن دارم جاوا یاد میگیرم دارم میپرسم که اگه جاوا خوب نیست یه زبان دیگه یاد بگیرم؟)
ممنون
من به هیچ عنوان نگفتم که اگه توی اکلیپس نشه باهاش کد زد یعنی نمیشه پرداخت درون برنامه ای داشت!
مثلا اگه من بگم آب از لوله عبور می کنه شما با خودت این فکرو می کنی که آب از هیچ جای دیگه ای عبور نمی کنه و فقط از لوله عبور می کنه؟
وقتی میگم این کار با اکلیپس ممکنه به هیچ عنوان نگفتم که با روش دیگه ای ممکن نیست و فقط همین روشه .
من کاری به کیوت و .... اصلا ندارم . شما وقتی پروژه ی اندرویدی در اکلیپس داری چرا نتونی از پرداخت درون برنامه ای استفاده کنی ؟
من نگفتم چون تو اکلپس ساخته میشه فقط این قابلیتو داره . منظور کلی م این بود که سورس بازی کامل دست خودته و خودت کامپایلش می کنی . چه با اکلیپس و چه بی اکلیپس . اکلیپس اونجا فقط برای این بود که بگم ساختار کد های بازی به چه صورتیه (مثل بقیه ی برنامه های عادی ست و برنامه های عادی اندروید هم این قابلیتو دارند.)
به نظر من شما منظورمو اشتباه برداشت کردید.
Write Once, Run Anywhere
بله!
این همه توضیح دادم هیچی؟ اکلیپس و نتبینز ربطی به نرم افزاری که نوشته خواهد شد ندارن.فقط یه سری کارها رو سریع تر میکنن(فرضا با داشتن قابلیت autocomplete یا لینک خودکار کتابخانه ها حین کامپایل و...) کتابخانه و چهارچوب و موتور صرفا یه سری کار های تکراری یا زمان بر یا ... رو پیاده سازی کرده که راحت تر باشید و سریع تر و حتی گاها بهینه تر برنامه بنویسید.قطعا یکی میتونه همه چیز رو از صفر پیاده سازی کنه(البته اگه معلوماتش رو داشته باشه).ولی باید دید آیا ارزشش رو داره؟ممکنه چیزی که با یه موتور توی ۴ ماه تموم میشه،با پیاده سازی از صفر(بدون کتابخانه و موتور و چهارچوب) مثلا دو سال زمان ببره!
قطعا بستگی به کارتون داره.احتمالا خیلی زیادتر از چیزی که میخواید هم جواب گو خواهد بود.:)ولی خوب بازم باید خودتون ببینید که چی به دردتون میخوره.شاید یه چیز دیگه پیدا کردید که در عین این که کارتون رو راه میندازه، راحت تر باشه.
متوجه نشدم یعنی چی به کیوت کاری نداری.:/ کیوت و ... مثال بودن.مثال ها برای رسوندن منظور هستن.
مقایسه ای که کردید بیربط و اشتباهه.
اشتباه برداشت نکردم.شاید شما خودتون درست متوجه نشدید معنی جمله تون رو.تنها معنی ای که از جمله ای که گفتید میشه برداشت کرد همینه.
خوبه نقل قول کردما!شما گفتی(نقل به مضمون) "چون توی اکلیپس میشه باهاش کد زد پس پرداخت درون برنامه ای داره" که این اشتباهه.آسمون بری زمین بیای اشتباهه!آقا هرچی هم بگی فلان و بهمان، این جمله اشتباهه.در پست های بعدی تا حدودی اصلاح کردید.(به این خاطر بود که گفتم متناقض شد پست هاتون)(هرچند باز هم مشکل داشت.) کلا نرم افزار ساخته شده هیچ ارتباطی با IDE ای که باهاش ساخته شده نداره! حالا اگه این رو قبول دارید که چه خوب، اگر هم ندارید بیشتر مطالعه کنید.و السلام.
من هنوزم می گم چون ساختار اون بازی پروژه ی اکلیپسه پس قطعا این قالبیتو داره . چرا؟ چون ساختار این پروژه ها طوریه که علاوه بر بازی می تونید اکتیویتی های دیگه ای از قبیل درون پرداخت را هم پیاده سازی کنید. من بازم می گم منظورم من خود IDE اکلیپس نیست بلکه ساختار پروژه های اکلیپسه که قطعا پرداخت درون برنامه ای را میشه توشون پیاده کرد . شما اگه قانع نشدی بیا تو پیام خصوصی چون دلم نمی خواد بیشتر از این اسپم بزنم و تاپیک اون دوستمونو بیشتر از این خراب کنم .
Write Once, Run Anywhere
سلام
به نظرم واسه بازی سازی برو سراغ موتورهای بازی سازی ، اونجوری خیلی کارت راحتتره مثلا یونیتی که من باهاش کمی کار می کردم خیلی خوب گرافیک و مدل ها رو با کدها ترکیب می کنه و من خیلی از این خلاقیت و کارشون خوشم اومده ، کارتون تو موتورهای بازی سازی خیلی راحتتره ولی یه عیب داره حجم برنامتون هم بالاتره
** دوستان لطفا تاپیک رو منحرف نکنید باهم دعوا دارید برید تو پیام خصوصی
من یونیتی را دارم از اینجا یاد می گیرم و واقعا هم آموزش های خوبی هست :
http://cgcapture.com/?cat=18
Write Once, Run Anywhere
احسان عزیز شما متوجه منظور دوستمون dasssnj نشدی
ایشون منظورش این بود که در جواب من که با ایکلیپس کار کردم این دوتا موتور بازی سازی به ایکلیپس اضافه میشن پس دقیقا مثل قبل همون عملیات پرداخت درون برنامه ای اینجا هم طبق روال قبلی پیاده سازی میشه. ( ساده و مختصر )
نیازی هم به این همه کش و قوس نداشت!
ممنون . ولی لطفا این بحثو ادامه ندید . من قبلا هم خیلی اسپم می زدم الان هی می خوام نزنم نمیشه . هر بحثی دارید توی پیام خصوصی . والسلام.
Write Once, Run Anywhere
از کمکتون ممنون
ممنون دوست عزیز
جسارتا ۵۰ بار نقل قول کردم حرفشون رو.;)هدف اسپم یا چیز دیگه ای نیست.فقط هدف اینه که اطلاعات غلط به کسی داده نشه. وقتی کسی چیز اشتباهی میگه باید اصلاح بشه.
یه بار دیگه هم قسمتی از ارسال خودم رو نقل قول میکنم.
کلا نرم افزار ساخته شده هیچ ارتباطی با IDE ای که باهاش ساخته شده نداره! حالا اگه این رو قبول دارید که چه خوب، اگر هم ندارید بیشتر مطالعه کنید.و السلام.
شما مثل اینکه ده نفرم یه چیزیو بهت بگن باز حرف خودتو می زنی دوست عزیز .
اینا را هم من از ارسال های خودم نقل قول می کنم .
من هنوزم می گم چون ساختار اون بازی پروژه ی اکلیپسه پس قطعا این قالبیتو داره . چرا؟ چون ساختار این پروژه ها طوریه که علاوه بر بازی می تونید اکتیویتی های دیگه ای از قبیل درون پرداخت را هم پیاده سازی کنید. من بازم می گم منظورم من خود IDE اکلیپس نیست بلکه ساختار پروژه های اکلیپسه که قطعا پرداخت درون برنامه ای را میشه توشون پیاده کرد . شما اگه قانع نشدی بیا تو پیام خصوصی چون دلم نمی خواد بیشتر از این اسپم بزنم و تاپیک اون دوستمونو بیشتر از این خراب کنم .
من قبلا هم خیلی اسپم می زدم الان هی می خوام نزنم نمیشه . هر بحثی دارید توی پیام خصوصی . والسلام.
Write Once, Run Anywhere
سلام
آخر نگفتید میشه پرداخت درون برنامه ایی برای گیم میکر نوشت؟
اشاره کردن به فریم ورک Libgdx هم خالی از لطف نیست برای بازی سازی بسیار بسیار خوب و قویه . اندروید استودیو , اکلیپس , نت بینز رو ساپورت میکنه . برای پرداخت درون برنامه ای هم هیچ مشکلی نیست چون همون کدی که تو پرداخت درون برنامه ای مرسوم استفاده میکردید اینجا هم میتونید استفاده کنید
Libgdx یه فریم ورکه ۳ بعدی به زبون جاواست که به شما خروجی اندروید دسکتاپ IOS لینوکس بلک بری html و ... رو میده .
نقاط قوتش
دسترسی نزدیک به دستورات opengl هست
بخش های مربوط به رندر کردن رو با سی ++ زدن و در واقع شما نیازی به انجام کار خاصی ندارید صرفا اسپرایت های صفحتون رو با متود draw میکشید و وظیفه فرستادن به GPU و ... به عهده خود libgdx هست
توابع و کلاس ها و برنامه های زیر شاخه بسیار بسیار قوی داره یکی از نمونه هاش overlap2d.com هست
رایگانه
فروم بسیار فعالی داره
ویکی موجود در گیت هابش هر روز داره کامل تر میشه
همونطور که گفتم با جاوا زدنش
حجم برنامه ساخته شده باهاش کمه مثلا برای اندروید با ۱ مگ هم میتونید باهاش بازی بزنید ولی تو وینیتی یه hello world حداقل ۴-۵ مگ میگیره
تو اندروید شما میتونید موازی هم از libgdx استفاده کنید هم از api اندروید مثلا برای پرداخت درون برنامه ای میتونید تو اکتیویتیتون هم بازی رو اجرا کنید هم api بازار رو روش اجرا کنید
مثال معروف بازی minecraft هست که با کتابخونه lwjgl ساختن که توسعه یافته شده همین libgdx برای کارهای سه بعدیه
نقاط ضعفش
برای یادگیریش باید وقت بزارید متاسفانه تو ایران اکثرا دوس دارن امروز مثلا اندرویدو یاد بگیرن فردا باهاش اپ بسازن پس فردا بزارن تو مارکت
یه نکته مهم راجع بش اینه کد زنیتون در واقع low level هست (low level بودن نسبت به یونیتی منظورمه در واقع اونقدر های هم سطح پایین نیس)کسی که میره libgdx رو برای بازی سازی انتخاب میکنه مطمیننا دانش بیشتری نسبت به کسایی که با یونیتی و انجین های اسکریپتی بازی میسازن کسب میکنه اونم بخاطر اینه که شما همه چی رو سطح پایین تر میزنید . libgdx برای بازی های ۲ بعدی به نظرم از یونیتی به مراتب بهتره (از لحاظ performance و آزادی عمل) ولی از لحاظ به کد رسیدن دیر تره شما باید کد بیشتری نسبت به یونیتی بزنید ولی در عوض شما آزادی کامل دارید . یه چیز خوبیم که داره شما به راحتی یه میتونید یه انجین کاملا شخصی برای خودتون درست کنید
من خودم بخاطر این دلیل ها رفتم سراغ libgdx
1- میخواستم بیشتر از اتفاقات سطح پایین بازی سازی اشنا شم
۲- باعث میشد کد زنیم تو زمینه جاوا از لحاظ بهینه کد زدن بهتر شه
۳- opensource هس و بهم آزادی میده
به نظر من ادم اگر میخواد وقتش رو بزاره برای یک کاری بهتره بهترین گزینه رو نسبت به شرایطش انتخاب کنه.
مثلا اگر برنامه نویسی فقط و فقط میخواد برای اندروید گیم 2 بعدی ساده بزنه و نه بیشتر خوب یاد گیری محیط های 3 بعدی کار اشتباهیه چون اولا خیلی گسترده هست دوما هم به هیچ عنوان بهینه ساز نیست یعنی چی یعنی اینکه بازی فرضا ساختید اما روی گوشی هایی که قدرتشون زیادم ضعیف نیست می بینید که لک میزینه و باعث میشه کاربرا اعصابشون خورد بشه. و بهینه ساز کردنش هم واقعا وقت گیره.
مسئله بعدی که باید توجه بشه اینکه اون زبان پشتیبانی قوی داشته باشه مثلا اگر شما یک موتور گیم پلاگین یا هر چیزی رو انتخاب کنید اما جامعه استفاده کنندش کم باشه واقعا می مونید داخل کارتون حالا هر چقدر هم که میخواد او موتور یا .. انعطاف پذیر باشه یا عالی باشه ...
نکته ی دیگه ای که هست اینه که نیازی نیست برای ساخت بازی بشنید موتورش رو هم کد کنید! چرا 1- چون ارزشی به هیچ عنوان داره هم از نظر اقتصادی و هم از نظر کاراریی 2- خیلی راحت میتونید از یک موتور قدرت مندتر دیگه استفاده کنید.
من unity رو برای خودم انتخاب کردم دلیل برای شخص خودم اینه:
قبل از هر چیزی من هدفم فقط دیوایس ها نبود و میخواستم بصورت کامل برم سمت بازی سازی.
1- یونیتی 3دی امتحانش رو پس داده شما بازی مثل انگری برد رو بینید یا بسیاری باز بازی های استراتژیک ماجرا جویی که برای دیوایس ها میاد همین طور بازی هایی در حد اسسین کرید ... واقعا خوب عمل میکنه .. درسته که برای ساخت این بازی ها کلی ادم نشسته و گرافیست داشته و کلی نرم افزار دیگه پشت بندش بوده اما نتیجه ادم رو شگفت زده میکنه.
2- اسکریپتش js و C# میشه کرد.(من سی شارپ کار میکنم نه جاوا)
3- پیاده سازی فیزیک خوب
4- یک بازی فقط کد نویسی حرکت عقب جلو نیست : هوش مصنوعی(میشه از کدنویسی عادی متمایزش کرد) گرافیک طراحی گیم سناریو بازی موزیک صدا انیمشین های داخل بازی ... دیگه هم هست. وقتی قراره همه این این ها رو یک نفر انجام بده واقعا اشتباه هست که ادم بره سمت یک سامانه (منظورم موتوره) ای که باید از صفر شروع به کار کرد و هرجایی که اون موتور کم داشت چیزی رو دوباره کد نوسی کرد تا نیازش رفع بشه این کار باعث میشه که زمان ساخت تمرکز سازنده و خیلی چیزای دیگه از دست در بره و به قول دوستان استاد و مهندسی نرم افزار پروژه از دست خارج بشه.
5- بهترین گزینه برای بازی های مستقله.
6- جامعه بسیار زیادی رو هم در داخل و هم در خارج کشور داره و موتور بسیار محبوبیه (چیز 5 موتور محبوبه و خدایششم کارش حرف ندراه :) تبلیغات نشه )
7- داخل کشور اکثرا سمت unity میان چون هنوز صنعتی وجود نداره که هزینه صرف شده رو مثلا در ساخت بازی با موتور شاهکاری بنام آنریل انجین رو تامین کنه.
اما معایبی هم داره البته تا اینجایی که من باهاش کار کردم:
1- اصلا ساده نیست !!! بر خلاف اون چیزی که داخل اینترنت نوشته 80 درصد بدون کد نویسیه و خیلی راحت ماست هه چیز درست میشه واقعا این طور نیست و پوست ادم رو میکنه
2- ایدتور کدش خیلی چندشه مخصوصا برای من ای کاش میشد داخل ویژوال کد نویسیش رو انجام داد (اگر دوستان راهی دارن حتما بهم بگن چون واقعا روی اعصابه این ایتور جاوا اسکریپ و سی شارپش)
3- طراحی کارکتر محیط و غیر ناچارا برای اینکه خوب در بیاد با نرم افزار های دیگه مثل مایا یا تریدی مکس استفاده کنی. که اون هم باید از افراد متخصص اون برنامه ها و هنرمندان استفاده کرد که قیمت شون هزاران برابر بوجه محدود برنامه نویس معمولی ای مثل منه.
3- گفته شده بود تکنولوژی موشن کپچر داره اما من هر چی میگردم هم داخل نت و هم خود داکیو منت های خود نرم افزار خبری ازش نیست! (دوستان اطلاعاتی دارید به منم بدید.)
هر کسی خودش باید انتخاب کنه که چی میخواد و ساده ترین و قابل اعتماد ترین گزینه رو انتخاب کنه.
از نظر سایت stack overflow بهترین ابزار برای ساخت بازی انذرویدی فریمورک libgdx است
من تمام فرمایشات شما رو تایید میکنم فقط میخوام اضافه کنم که هم در دو بعدی و هم در سه بعدی برای اندروید و آی او اس قطعا libgdx بهتره مخصوصا موقع استفاذه از انجین بولت باکس توذی یا حتی استفاده از فایل های تی ام ایکس ...