آموزش برنامه نویسی بازی اندروید – از صفر تا صد


رشد بسیار زیاد بازیهای موبایلی و در نتیجه، افزایش کاربران و درآمدهای حاصل از این بازیها توجه بسیاری از افراد را به این حوزه جلب کرده است. در این بین، سیستم عامل اندروید به دلیل دارا بودن سهم بیشتر از بازار موبایلی، بیشتر مورد توجه قرار گرفته است. از این رو، در این نوشتار سعی شده است آموزش برنامه نویسی بازی اندروید در اندروید استودیو به صورت پروژه محور و در قالب ساخت بازی دو بعدی ساده ارائه شود. مطالعه این مطلب برای آشنایی با اصول اولیه ساخت بازی در اندروید مناسب است. علاوه بر این، در نوشته برنامه نویسی بازی اندروید به مباحث مهمی همچون نقشه راه برنامه نویسی بازی اندروید، مراحل ساخت بازی اندرویدی، مقایسه برنامه نویسی اندروید و برنامه نویسی بازی اندروید و سایر موارد پرداخته شده است.
پیش درآمد برنامه نویسی بازی اندروید
بازیهای اندرویدی در سالهای اخیر رشد بسیار چشمگیری داشتهاند و به یکی از محبوبترین راهها برای گذراندن اوقات فراغت تبدیل شدهاند. شرکتهای ارائهدهنده گوشیهای موبایل نیز با تمرکز بر روی ارتقا سختافزاری دستگاههای خود و ارائه دستگاههای قدرتمندتر، تجربه بهتری را برای کاربران رقم زدهاند. در نتیجه، امروزه گیمرها به عناوین مختلف از ژانرهای متنوع دسترسی دارند.
با توجه به بازار گسترده بازیهای موبایلی و وجود فرصتهای مختلف درآمدزایی در این حوزه، بسیاری از افراد یادگیری برنامه نویسی بازی اندروید را به عنوان هدف خود تعیین کردهاند. در این بین حتی برنامهنویسان اندرویدی که در زمینه توسعه اپلیکیشن موبایل فعالیت میکردند، نیز در صدد تغییر گرایش خود به ست برنامه نویسی بازی اندروید هستند. در حال حاضر توسعهدهندگان بازیهای اندرویدی به دنبال ایجاد تجربههای نوآورانهای هستند که موجب گسترش مرزهای موجود در این صنعت شده است.
امروزه با توجه به وجود منابع مختلف برای آموزش برنامه نویسی بازی اندروید ، ساخت بازی نسبت به گذشته بسیار آسانتر شده است. به عنوان مثال، اگر فردی قصد توسعه بازی ساده و محبوبی همچون Super Mario را داشته باشد، اکنون در مقایسه با ۲۰ سال قبل کار واقعاً راحتتری خواهد داشت. در زمینه کسب درآمد از بازیهای موبایلی نیز با توجه به وجود بسترهای مختلف برای درآمدزایی، کار بسیار آسانتر از گذشته است. تنها چالشی که امروزه در زمینه بازی سازی وجود دارد، بحث جذب مخاطب و رقابت با سایر عناوین در این حوزه است، زیرا با وجود عناوین با کیفیت و جذاب و همچنین حضور شرکتهای معتبر در این حوزه، رقابت بسیار سختی برای جذب مخاطبین شکل گرفته است.
برنامه نویسی اندروید یا برنامه نویسی بازی اندروید کدامیک بهتر است؟
انتخاب بین برنامه نویسی اندروید و برنامه نویسی بازی اندروید ارتباط مستقیمی با مهارت و علاقه فرد دارد. در ادامه، بررسی مختصری در خصوص این دو حوزه ارائه شده است.
برنامه نویسی بازی اندروید
سیستم عامل اندروید پلتفرمی فوقالعاده برای شروع ساخت بازی است و چالشهای منحصر به فردی نیز در این حوزه در انتظار برنامهنویسان است. یکی از چالشهای موجود در برنامه نویسی بازی اندروید بحث مقیاسبندی «رابط کاربری» (User Interface | UI) بازیها است و باید بسته به اندازه و وضوح دستگاه اندرویدی، راهحل هوشمندانهای برای این موضوع پیدا کرد. با این حال، چالشهای زیاد دیگری نیز در حین توسعه بازی اندروید در انتظار برنامهنویسان است.
به طور کلی، اگر از دیدگاه شغلی به برنامه نویسی بازی اندروید نگاه شود، باید گفت نسبت به برنامه نویسی اندروید حرفه چالشیتری است و میتوان از تخیل و مهارت بیشتری نیز در آن استفاده کرد. اساساً در بحث توسعه بازی اندرویدی نیاز به ایجاد سیستمی با «تجربه کاربری» (User Experience | UX) و رابط گرافیکی بهتری وجود دارد و در بحث «پایگاه داده» (Database) نیز باید امکان ارتباط پایدار با سرور وجود داشته باشد. علاوه بر این، از نکات قابل توجه در بحث برنامه نویسی بازی اندروید این است که باید همزمان از چندین زبان برنامه نویسی استفاده کرد. در ادامه، تعدادی از انواع زبانهای برنامه نویسی مورد استفاده در توسعه بازی اندروید ارائه شدهاند.
علیرغم وجود چالشهای بسیار در زمینه برنامه نویسی بازی اندروید و نیاز به داشتن مهارتهای مختلف، باید به این نکته نیز اشاره کرد که میانگین پرداختی برای توسعهدهنده بازی اندرویدی تقریباً دو برابر برنامهنویس اندروید است.
برنامه نویسی اندروید
در زمینه برنامه نویسی اندروید در مقایسه با توسعه بازی اندرویدی، چالشهای کمتری در انتظار برنامه نویس است. شاید توسعه اپلیکیشن اندروید به اندازه ساخت بازی اندرویدی جذاب و سرگرم کننده نباشد، اما فرصتهای شغلی زیادی در این حوزه وجود دارد و با داشتن چند نمونه کار قابل قبول میتوان در شرکتهای مرتبط استخدام شد.
به طور کلی هر دو حوزه برنامه نویسی اندروید و برنامه نویسی بازی اندروید گزینههای بسیار خوبی برای انتخاب به عنوان حرفه اصلی هستند و بیشتر باید به علاقه و استعداد خود برای انتخاب یکی از این دو حوزه توجه کرد.

برنامه نویسی بازی اندروید را از کجا شروع کنیم؟
همان طور که پیشتر نیز بیان شد، توسعه بازی اندروید به عنوان حرفهای تمام وقت شناخته میشود. با این وجود، با توجه به فرصتهای گوناگون موجود در این حوزه بسیاری از افراد تصمیم به ساخت و برنامه نویسی بازی اندروید میگیرند. در حال حاضر، فروشگاههای اندرویدی نظیر «گوگل پِلی» (Google Play)، مملو از بازیهای گوناگون هستند. بر اساس آمار سال ۲۰۲۲ میلادی (۱۴۰۱ شمسی)، تقریباً ۴۷۸ هزار بازی اندرویدی در فروشگاه گوگل پلی در دسترس کاربران بوده است. بنابراین، با در نظر گرفتن این آمار میتوان متوجه سختی کار جذب مخاطب در این حوزه شد.
برای افرادی که تا کنون تجربه ساخت بازی اندروید را نداشتهاند، یافتن نقطه شروع آموزش برنامه نویسی بازی اندروید کمی دشوار است. علاوه بر این، سوالات دیگری نظیر ابزار مورد نیاز برای بازی سازی اندروید چیست و زبان مورد استفاده برای برنامه نویسی بازی اندروید چیست برای مخاطب ایجاد میشوند. در ادامه سعی شده است تا به این پرسشها و همچنین سوالات دیگری پیرامون برنامه نویسی بازی اندروید پاسخ داده شود.
داشتن ایده اولین گام در برنامه نویسی بازی اندروید
داشتن ایده تازه و خلاقانه در برنامه نویسی بازی اندروید اولین گام برای شروع کار و در نهایت ساخت یک بازی موفق است. این روزها فروشگاههای اندروید مملو از بازیهای تکراری و فاقد ایده خلاقانه هستند و در نتیجه، برای موفق شدن در این حوزه باید از عنصر خلاقیت استفاده کرد. حتی اگر برنامهنویس چیز زیادی در خصوص ابزارهای توسعه یا زبانهای برنامه نویسی مورد استفاده در آن نمیداند، در این مرحله این موضوع اهمیتی ندارد.
در ابتدای فرایند ساخت بازی اندرویدی مهمترین مورد، داشتن چشماندازی روشن در خصوص چیزی است که قصد ایجاد آن را دارید. داشتن چشمانداز روشن در خصوص ساخت بازی از این جهت اهمیت دارد که انتخاب ابزارها و گردش کار مناسب ارتباط مستقیمی با نوع بازی دارد. در این خصوص، تفاوتی بین ساخت بازی پازل ساده، بازی دو بعدی و حتی یک بازی با استفاده از «واقعیت مجازی» (Virtual Reality) وجود ندارد و برای هر کدام از این موارد باید چشمانداز و برنامه ساخت بازی مشخص و روشن باشد.
در شروع کار برنامه نویسی بازی اندروید برای افزایش شانس موفقیت، بهترین گزینه انتخاب عنوانی ساده برای ساخت بازی است. اکثر توسعهدهندگان بازی که به صورت مستقل فعالیت میکنند، با انتخاب عنوانی ساده برای بازی سعی در کاهش هزینههای ساخت دارند. به عنوان مثال، بازی پازل یا بازیهایی که کاربر را وارد یک حلقه بینهایت بازی میکنند، این مفهوم را بهتر نشان میدهند. در ابتدا میتوان با یک بازی ساده به عنوان راهی برای یادگیری برنامه نویسی بازی اندروید شروع کرد و سپس، بعد از کسب تجربه، به فکر تشکیل تیم برنامه نویسی و ایجاد بازیها و پروژههای پیچیدهتر بود.
تعیین مشخصات اصلی بازی دومین گام در برنامه نویسی بازی اندروید
بعد از تعیین ایده اصلی برای ساخت بازی و داشتن درک صحیحی در خصوص چشمانداز آن، باید مشخصات اصلی بازی اندرویدی را تعیین کرد. یکی از بهترین راهها برای تعیین مشخصات اصلی بازی، طرح سوالات مختلف پیرامون عنوان بازی مورد نظر و ارائه پاسخ مناسب به هر کدام است. در نهایت، با جمعآوری پاسخهای مورد نظر، میتوان به جمعبندی خوبی در خصوص بازی رسید. در ادامه، چند ایده برای طراحی سوالهای پیرامون مشخصات اصلی بازی ارائه شده است.
- ژانر و دستهبندی بازی چیست؟
- مخاطب هدف بازی در چه رده سنی قرار دارد؟
- سبک گرافیکی بازی به چه شکلی خواهد بود؟
- تصاویر و جلوههای صوتی بازی به چه صورتی انتخاب شوند؟
- از چه ابزاری برای ساخت جلوههای گرافیکی بازی استفاده خواهد شد؟
- از چه روشی برای درآمدزایی بازی استفاده شود؟
- نقاط عطف و چالشهای بازی به چه صورتی طراحی شوند؟
یکی از بهترین روشها برای بدست آوردن دیدی روشن در خصوص بازی و نکات پیرامون آن، بررسی سایر بازیهای موجود در فروشگاههای اندرویدی است. در هر بازه زمانی بازیهایی با ایدههای خلاقانه توانستهاند توجه کاربران زیادی را به سمت خود جلب کنند. در نتیجه، میتوان با گشت و گذار در فروشگاههای اندرویدی از این سبک بازیها و ایدههایشان برای ساخت بازی الهام گرفت.
انتخاب ابزار مناسب برای توسعه سومین گام در مسیر یادگیری برنامه نویسی بازی اندروید
بعد از مشخص شدن ایده بازی و مشخصات اصلی آن باید به سراغ انتخاب ابزار مناسب برای توسعه رفت. به بیان ساده، زمانی که فرد اطلاعات کافی در خصوص ساخت چیزی را دارد، باید تصمیم بگیرد که چگونه آن را بسازد.
با توجه به سطح مهارت و ماهیت پروژه، میتوان از چندین گزینه برای توسعه بازی اندروید استفاده کرد. در ادامه، ابزارهای مختلف برای توسعه بازی اندروید ارائه شده است.
اندروید استودیو
انتخاب «اندروید استودیو» (Android Studio) برای برنامه نویسی بازی اندروید در واقع گام برداشتن در مسیر سنتی ساخت بازی اندروید است.
IDE یا همان محیط توسعه اندروید استودیو، توسط گوگل به عنوان محیط رسمی برنامه نویسی اندروید معرفی شده است. برای برنامه نویسی بازی اندروید به کمک محیط توسعه اندروید استودیو، باید یکی از دو زبان رسمی اندروید یعنی «جاوا» (Java) یا «کاتلین» (Kotlin) را فرا گرفت. علاوه بر این، برای راهاندازی اندروید استودیو باید ابزارهایی همچون «کیت توسعه جاوا» (Java Development Kit | JDK) و «بسته توسعه نرمافزاری اندروید» (Android SDK) را دانلود کرد و کمی نیز با زبان XML آشنایی داشت.
در واقع SDK شامل مجموعهای از کتابخانهها و ابزارهای گوگل میشود که به جاوا اجازه برقراری ارتباط با سیستم عامل اندروید را میدهد. علاوه بر این، به اندروید استودیو کمک میکند تا کد نوشته شده را به فایل APK تبدیل کند. در مجموع میتوان گفت اندروید استودیو تمام موارد لازم برای توسعه بازی اندروید را در اختیار توسعهدهنده قرار میدهد و برای همین از آن به عنوان «محیط یکپارچه توسعه» (Integrated Development Environment | IDE) یاد میشود.
اندروید استودیو برای ساخت بازیهای ساده دو بعدی نظیر بازی پازل ساده گزینه مناسبی است. به لحاظ نظری، امکان ساخت بازیهای سه بعدی با اندروید استودیو وجود دارد و برای این مورد باید از کتابخانههای گرافیکی OpenGL و Vulkan API استفاده کرد. برای ساخت بازیهای پیچیده، استفاده از اندروید استودیو توصیه نمیشود و گزینههای بسیار بهتری برای این مورد وجود دارد.
موتور بازی سازی یونیتی و Unreal
توسعهدهندگان حرفهای در زمینه برنامه نویسی بازی اندروید به دلایلی که در بالا اشاره شد، یکی از دو موتور بازیسازی «یونیتی» (Unity) یا «آنریل انجین» (Unreal Engine) را برای توسعه بازی انتخاب میکنند.
این ابزارها محیط یکپارچه توسعه را با موتور بازیسازی ترکیب میکنند. به عبارت دیگر، این موتورهای بازیسازی رابطی را برای مدیریت کدها فراهم میکنند و همچنین، بسیاری از جنبههای فیزیکی و رفتارهای آماده قابل استفاده در بازی را ارائه میدهند. به عنوان مثال، در محیطهای یونیتی و Unreal Engine، مثلاً برای مشخص کردن چگونگی سقوط چیزی از هوا نیازی به کدنویسی نیست و تنها با علامت زدن کادری با عنوان «گرانش» (Gravity) میتوان این مورد را مدیریت کرد.
یونیتی یا Unreal کدامیک برای ساخت بازی بهتر است؟
برای اکثر پروژههای بازیسازی میتوان از یونیتی استفاده کرد. علاوه بر این، افزودن ویژگیهای گرافیکی به این ابزارها تنها با «کشیدن و رها کردن» (Drag & Drop) آنها در محیط برنامه امکانپذیر است. این ابزارها کار را برای ساخت بازی بسیار آسان میکنند. به عنوان مثال، میتوان یک بازی اندرویدی ساده را در زمانی بسیار کوتاه (حتی ۷ دقیقه) ساخت.
البته در هر حال برای کار کردن با هر کدام از این دو محیط بازیسازی، نیاز به کدنویسی مختصری وجود دارد. یونیتی از زبان برنامه نویسی سی شارپ استفاده میکند که بسیار شبیه جاوا است. از سوی دیگر، Unreal نیز از زبان ++C برای بخش اسکریپت خود استفاده میکند. برای کار با این ابزارها، همچنان نیاز به استفاده از Android SDK وجود دارد. در ادامه، بارزترین ویژگیهای این دو ابزار برنامه نویسی بازی اندروید ارائه شده است.
- هر دو ابزار کاملاً رایگان هستند.
- محدودیتی در ساخت بازی با آنها وجود ندارد.
- توسط توسعهدهندگان حرفهای استفاده میشوند.
- «چند پلتفرمی» (Cross-Platform) هستند و میتوان خروجی را به سایر پلتفرمها انتقال داد.
البته این دو موتور بازیسازی قدرتمند در برخی زمینهها با یکدیگر تفاوتهایی نیز دارند. در مجموع، استفاده از یونیتی کمی سادهتر است و برای ساخت بازیهای موبایلی و دو بعدی گزینه مناسبتری به حساب میآید. از Unreal نیز با توجه به برتری آن در بحث گرافیک سه بعدی میتوان برای توسعه بازیهای بزرگتر و پیچیدهتر استفاده کرد.
استفاده از بازی سازها
یکی از آسانترین روشها برای ساخت بازی اندرویدی استفاده از نرمافزارهای «بازیساز» (Game Builder) است. استفاده از این ابزارها در واقع مفهوم برنامه نویسی بازی اندروید را کم رنگ میکند، زیرا دیگر نیازی به کد نویسی زیاد برای ساخت بازی نیست. بیشتر این نرمافزارهای بازیسازی از قابلیت «کشیدن و رها کردن» (Drag & Drop) استفاده و فرایند ساخت بازی را بسیار آسان میکنند.
نرمافزار GameMaker Studio یکی از ابزارهای بازیسازی محسوب میشود که توسط شرکت Yoyo Games معرفی شده است. کار با این ابزار بسیار سادهتر از یونیتی و انریل است و حتی در صورت آشنایی با اصول برنامه نویسی نیز میتوان با زبان مخصوص آن، تحت عنوان GML اسکریپتهای اولیه را نوشت. زبان برنامه نویسی GML در واقع ترکیبی از زبانهای C++، جاوا و C است و قابلیت برنامه نویسی شیگرا را نیز دارد. در حالی که برخی از بازیهای موفق به کمک GameMaker توسعه داده شدهاند، اما این ابزار در برخی از عملکردها برنامهنویس را با محدودیتهایی روبرو میکند. تمرکز نرمافزار GameMaker بر استفاده از الگوها و گرافیکهای از پیشتعریف شده است.
شروع ساخت پروژه گام چهارم در برنامه نویسی بازی اندروید
بعد از آشنایی کامل با مجموعه ابزارهای مورد استفاده برای برنامه نویسی بازی اندروید باید پروژه جدید را آغاز کرد. در این مرحله نگاه کردن به صفحه خالی ممکن است کمی دلهرهآور باشد، اما با ساده در نظر گرفتن هر بخش و شروع فرایند ساخت بازی میتوان پیشرفت گام به گام پروژه را مشاهده کرد.
تمام بازیها به مجموعهای از اصول و قوانین اولیه نیاز دارند. بنابراین، در این مرحله میتوان با طراحی حس بازی کار را شروع کرد. به عنوان مثال، شخصیت اصلی بازی چه ویژگیهایی باید داشته باشد و مهارتهای او چیست. مرحله طراحی در ساخت بازی بسیار سرگرمکننده است و میتوان ویژگیهای مختلفی را امتحان کرد. استفاده از گرافیک و صدا در بازی گام بعدی در ساخت بازی است.
این مرحله در عین جذاب بودن میتواند بسیار زمانبر و چالشبرانگیز هم باشد. برای افزایش سرعت توسعه میتوان در این بخش از افرادی استفاده کرد که در حوزههای طراحی و گرافیک فعالیت میکنند. در نهایت ایجاد رابط کاربری برای بازی که شامل مواردی همچون عنوان، منوی اصلی و بخش ذخیره بازی است، به عنوان آخرین مرحله در برنامه نویسی بازی اندروید شناخته میشود.
آموزش برنامه نویسی بازی اندروید در اندروید استودیو
در این بخش از نوشته به آموزش برنامه نویسی بازی اندروید در اندروید استودیو به صورت پروژه محور و در قالب ساخت بازی دو بعدی ساده پرداخته میشود.
هدف از ارائه این بخش، آشنایی با چند تکنیک ساده در برنامه نویسی بازی اندروید است. در ادامه، تکنیکهای ارائه شده در این بخش معرفی شدهاند.
- کاربرد SurfacView در ساخت بازی
- طراحی بر روی Canvas
- ایجاد جلوه حرکتی برای شخصیتهای بازی
- استفاده از جلوههای صوتی در بازی
- تعامل بازیکنان با بازی
- طراحی مراحل مختلف بازی
در این بخش به صورت گام به گام بخشهای مختلف بازی از ابتدا تا انتها پیادهسازی میشوند.
ساخت پروژه اولین گام در آموزش برنامه نویسی بازی اندروید
برای شروع نیاز است تا پروژه جدیدی در اندروید استودیو ایجاد شود. برای این منظور همانند تصویر زیر، قالب پروژه جدید را از نوعNo Activity انتخاب کنید.

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

در نهایت پروژه جدید ایجاد میشود. سپس، باید Activity جدیدی را در محیط اندروید استودیو ایجاد کرد. برای این منظور از مسیرFile > New > Activity > Empty Activity باید گزینهEmpty Activity را انتخاب کنیم.

سپس، در پنجره مربوط به تنظیمات اکتیویتی باید نامی دلخواه را برای اکتیویتی مربوطه انتخاب کرد.

نکتهای که باید به آن توجه داشت این است که دیگر نیازی به فایلactivity_main.xml برای این پروژه وجود ندارد و رابط کاربری بازی از طریق کدنویسی در محیط اندروید استودیو ایجاد خواهد شد.
آماده سازی تصاویر و صداها دومین گام در آموزش برنامه نویسی بازی اندروید
فایلهای صوتی و تصویری یکی از موارد تاثیرگذار و جدا نشدنی از هر بازی اندرویدی هستند. در گام بعدی باید تصاویر و صداهای مورد نیاز برای بازی را در پروژه قرار دهیم.
برای این منظور تصاویر و فایلهای صوتی مورد استفاده در بازی ارائه شده است.
در ادامه، با کلیک راست بر روی پوشهres و انتخاب مسیرNew > Folder > Raw Resource Folder پوشه جدیدی برای قرار دادن فایلهای صوتی و تصویری بازی ایجاد کنید.

در نتیجه، در زیر مجموعه پوشهres ، پوشه جدیدی با نامraw ایجاد میشود.

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

تنظیم تمام صفحه بازی گام سوم در آموزش برنامه نویسی بازی اندروید
برای افزایش تجربه کاربری و بهبود تعامل کاربر با بازی، باید صفحه نمایش در حالت تمام صفحه قرار داشته باشد. در این بخش باید تصویر پس زمینه مناسب را انتخاب و سپس، تنظیمات تمام صفحه را برای بازی انجام داد.
نکتهای که باید به آن توجه داشت این است که کلاسMainActivity از کلاسActivity ارثبری کند.
سپس، در فایلAndroidManifest.xml باید تنظیمات مربوط به تمام صفحه شدن اکتیویتی مورد نظر انجام شود. برای این منظور باید مشخصهscreenOrientation را برابر با مقدارlandscape قرار داد.
برای مشاهده تغییرات مورد نظر باید برنامه را اجرا کرد.

ادامه آموزش برنامه نویسی بازی اندروید با نمایش شخصیت های بازی
در بخش بعدی از آموزش برنامه نویسی بازی اندروید باید شخصیتهای بازی را در صفحه نمایش قرار داد و با نوشتن کدهای مناسب امکان جابجایی آنها را فراهم کرد.
نکتهای که در خصوص تصویر مورد نظر برای شخصیت بازی باید به آن توجه داشت این است که تنها یک تصویر برای شخصیت بازی در اختیار دارید. در نتیجه، با توجه به این که وضعیت شخصیت بازی در حالتهای مختلف تغییر میکند، این فایل تصویری به چند بخش تقسیم میشود. در تصویر زیر این مورد به وضوح مشخص شده است.

با توجه به در اختیار داشتن تنها یک تصویر کلی از شخصیت اصلی بازی در حالتهای مختلف، میتوان از مختصاتx وy برای جداسازی هر بخش استفاده کرد. در نهایت با استفاده از ساختار حلقه در برنامه نویسی اندروید میتوان به طور متناوب تصاویر مختلف را نمایش داد و حرکت شخصیت اصلی بازی را شبیهسازی کرد.

در تصویر زیر نحوه مقیاسبندی فایل اصلی مربوط به شخصیت اصلی بازی نمایش داده شده است.

علاوه بر این، در بحث متحرکسازی شخصیتهای بازی باید به جهت حرکت و سرعت آنها نیز توجه شود. در ادامه، برای برنامه نویسی این بخش از بازی باید کلاسی با عنوانGameobject ایجاد کرد که شخصیتها و موجودیتهای بازی از این کلاس ارثبری میکنند. در نمونه کد زیر کلاسGameobject ایجاد شده است.
در ادامه، برای شخصیت اصلی بازی کلاسی جداگانه با نامChibiCharacter ایجاد کنید که این کلاس از کلاسGameObject ارثبری کند.
برای بروزرسانی پیوسته رابط کاربری باید از قابلیت «نخبندی» (Threading) در اندروید استفاده کرد. برای این منظور کلاسی با نامGameThread بسازید که از کلاس Thread اصلی در اندروید ارثبری کند. نمونه کد مورد نظر برای کلاسGameThread در ادامه ارائه شده است.
در ادامه آموزش برنامه نویسی بازی اندروید باید کلاسی برای شبیهسازی کل سطح بازی نیز در نظر گرفته شود. برای این منظور کلاسGameSurface را ایجاد کنید که این کلاس ازSurfaceView ارثبری میکند و شامل یک شی از نوعCanvas است که تمام اشیاd بازی بر روی آن ترسیم میشوند. در ادامه، نمونه کد مربوط به این کلاس ارائه شده است.
در انتها نیز تغییرات زیر را باید در کلاس اصلی بازی یعنیMainActivity ایجاد کرد.
با اتمام این بخش، نسخه اولیه بازی قابل مشاهده خواهد بود. در تصویر زیر، صفحه اصلی بازی با نمایش حرکات شخصیت اصلی بازی نشان داده میشود.

تعامل کاربر با بازی بخش بعدی در آموزش برنامه نویسی بازی اندروید
تعامل کاربر با بازی یکی از مواردی است که در برنامه نویسی بازی اندروید باید لحاظ شود. به طور معمول نیز میزان تعامل کاربران با یک بازی اندرویدی در مقایسه با سایر اپلیکیشنها بسیار بالاتر است.
برای این منظور باید رویدادهای مختلف در زمان لمس صفحه نمایش توسط کاربر مدیریت شوند. به عنوان مثال، همزمان با لمس بخشهای مختلف توسط کاربر، شخصیت بازی نیز به جهت مورد نظر حرکت کند. این رویدادها باید در کلاسGameSurface پیادهسازی شوند. در نمونه کد زیر، رویداد مورد نظر در زمان لمس کاربر برای جابجایی شخصیت اصلی بازی پیادهسازی شده است.
در ادامه، کد کامل مربوط به این بخش از بازی ارائه شده است.
با لمس بخشهای مختلف صفحه نمایش توسط کاربر، شخصیت اصلی بازی به سمت بخش مورد نظر حرکت میکند. خروجی این بخش در تصویر زیر قابل مشاهده است.

استفاده از شخصیتهای متعدد ششمین گام در آموزش برنامه نویسی بازی اندروید
امکان افزودن شخصیتهای جدید به بازی وجود دارد. در این بخش از آموزش برنامه نویسی بازی اندروید یک شخصیت دیگر به بازی اضافه خواهیم کرد.
برای این منظور باید کدهای مربوط به کلاسGameSurface را ویرایش کرد.
در نهایت، خروجی بازی در این مرحله با افزودن شخصیت جدید به صورت زیر خواهد بود.

ادامه آموزش برنامه نویسی بازی اندروید با استفاده از جلوه ها در بازی
استفاده از جلوهها در برنامه نویسی بازی اندروید حس بهتری را به کاربر القا میکند و تاثیرگذاری و جذابیت بازی را نیز افزایش میدهد. به عنوان مثال، بازی را در نظر بگیرید که در حال هدایت یک هواپیما هستید، زمانی که این هواپیما به زمین برخورد میکند، باید منفجر شود و در نتیجه، این انفجار جلوهای در بازی به حساب میآید. برای جذابتر کردن این بازی میتوان از صدای انفجار برای شبیهسازی بهتر استفاده کرد.
در این بخش از بازی با کلیک بر روی شخصیت اصلی بازی باید انفجار صورت گیرد. در نتیجه، این شخصیت از بازی حذف شده و در همان موقعیت، تصویر انفجار باید نشان داده شود. برای این منظور کلاسExplosion باید ایجاد شود که از کلاسGameObject ارثبری میکند.
علاوه بر این، باید کدهای مربوط به کلاسGameSurface را به صورت زیر تغییر داد.
در نهایت، خروجی حاصل از بازی در این مرحله بعد از افزودن جلوه انفجار به صورت زیر خواهد بود.

افزودن جلوه های صوتی به بازی آخرین گام در آموزش برنامه نویسی بازی اندروید
جلوههای صوتی یکی دیگر از مواردی هستند که باعث افزایش تاثیرگذاری و جذابیت بازی میشوند. به عنوان مثال، صداهای پسزمینه بازی یا صدای انفجار در زمان از بین رفتن شخصیت بازی از این نمونهها هستند.
برای افزودن صدا به بازی باید تغییراتی را به صورت زیر در کلاسExplosion ایجاد کرد.
در ادامه تغییرات دیگری نیز در کلاسGameSurface به صورت زیر باید انجام شود.
بعد از انجام تغییرات بالا، بازی برای اجرا آماده است و میتوان جلوههای صوتی استفاده شده در بازی را شنید.
سوالات متداول در برنامه نویسی بازی اندروید
تا این قسمت از نوشته با معرفی نقشه راه و مسیر یادگیری برنامه نویسی اندروید دید روشنی در خصوص این حوزه جذاب ایجاد شد. علاوه بر این، ابزار مناسب برای توسعه بازی اندروید از Android Studio گرفته تا موتورهای مختلف بازی سازی مورد بررسی قرار گرفتند. در ادامه نیز به آموزش برنامه نویسی بازی اندروید در قالب ساخت بازی ساده دو بُعدی در اندروید استودیو پرداخته شد.
در این بخش از نوشته سعی شده است تا به برخی از رایجترین سوالات پیرامون برنامه نویسی بازی اندروید پاسخ داده شود.
بهترین زبان برنامه نویسی بازی اندروید چیست؟
زبان برنامه نویسی ++C به دلیل همه منظوره بودن و پشتیبانی از شیگرایی گزینه بسیار مناسبی برای شروع ساخت بازی به حساب میآید. ++C انعطافپذیری بسیار بالایی دارد که در سایر زبانهای برنامه نویسی بازیسازی کمتر دیده شده است.
علاوه بر ++C زبانهای دیگری نیز برای بازیسازی وجود دارند که در ادامه فهرست شدهاند.
- سیشارپ (#C)
- جاوا
- جاوا اسکریپت
- Lua
- پایتون
روش های کسب درآمد از بازی سازی چیست؟
امروزه راههای مختلفی برای کسب درآمد از بازیسازی در اختیار توسعهدهندگان قرار دارد. یکی از سادهترین و در عین حال موثرترین روشها استفاده از تبلیغات درون برنامهای است. در این روش با توجه به تعداد کلیک و میزان مشاهده تبلیغات توسط کاربرانِ بازی، درآمدی برای توسعهدهنده منظور میشود.
استفاده از این روش بیشتر برای بازیهایی با نصب بالا توصیه میشود. از سایر روشهای کسب درآمد از بازیسازی میتوان به پرداخت درون برنامهای، فروش بازی، حق اشتراک و فروش محصولات مرتبط با بازی اشاره کرد.
آیا امکان ساخت بازی اندروید بدون کدنویسی وجود دارد؟
استودیوهای بازی همچون Flowlab، گیم میکر (GameMaker)، Google Game Builder و Quick App Ninja تنها چند نمونه از ابتداییترین موتورهای بازیسازی هستند.
این ابزارها به توسعهدهندگان تازهکار کمک میکنند تا تنها با «کشیدن و رها کردن» (Drag & Drop) و بدون نیاز به کدنویسی بازی مورد نظر خود را طراحی کنند.
آیا برنامه نویسی بازی اندروید حوزه پردرآمدی است؟
بازار بازیهای موبایلی با سرعت فوقالعادهای در حال پیشرفت است. هر ساله شاهد عناوین قدرتمندی هستیم که در کنار جذب کاربران بسیار زیاد، سود بسیار خوبی را نیز برای سازندگان به همراه دارند.
از سوی دیگر نیز بسیاری از بازیها در جذب کاربر ناکام میمانند. در نتیجه، برای ساخت یک بازی سودآور و موفق کار بسیار سختی پیشروی توسعهدهندگان بازی است.

آیا در برنامه نویسی بازی اندروید به محاسبات ریاضی نیاز است؟
بازیها سیستمهای پیچیدهای دارند که نیازمند محاسبات ریاضی زیادی هستند. توسعهدهندگان بازی باید مهارت خوبی در زمینه ریاضیات داشته و با جبر خطی، حساب دیفرانسیل، انتگرال، هندسه، مثلثات و آمار آشنا باشند. البته آشنایی با این موارد در سطوح پیشرفته بازیسازی نیاز است.
جمعبندی
بازیهای موبایلی در سالهای اخیر با استقبال بسیار زیاد کاربران مواجه شدهاند. علاوه بر این، بازیهای موبایلی در چند سال گذشته از نظر تعداد بازیکنان و درآمد، رشد تصاعدی داشتهاند. از همین رو، بسیاری از افراد به حوزه برنامه نویسی بازی اندروید روی آوردهاند که مخاطبین زیادی نیز دارد.
در این نوشته به آموزش برنامه نویسی بازی اندروید در اندروید استودیو به صورت پروژه محور و در قالب ساخت بازی دو بعدی ساده پرداخته شد. علاوه بر این، مباحث مهمی همچون مقایسه برنامه نویسی اندروید و برنامه نویسی بازی اندروید، نقشه راه برنامه نویسی بازی اندروید و روشهای کسب درآمد از بازیسازی نیز مورد بررسی قرار گرفت. همچنین، سعی شد تا به اکثر سوالات رایج پیرامون این حوزه پاسخ داده شود.