ساخت اولین بازی معمولاً با یک ایده هیجانانگیز شروع میشود: یک مسابقه کوتاه، معمایی متفاوت یا دنیایی که دوست دارید با دوستانتان در آن بازی کنید. اما فاصله میان این ایده و چیزی که واقعاً اجرا شود، پر از تصمیمهای کوچک است؛ از انتخاب ابزار و نوشتن قوانین بازی تا رفع خطا و انتشار نسخهای که دیگران بتوانند امتحانش کنند.
هوش مصنوعی میتواند در بخشهایی از این مسیر، مانند نوشتن کد اولیه، توضیح خطاها و پیشنهاد مکانیکهای بازی، کمک کند. برای استفاده مؤثر از آن، بهتر است پروژهای کوچک و روشن داشته باشید و بدانید بعد از دریافت کد، چه مراحلی پیش رو دارید.
برای پروژه اول، سراغ ساخت یک بازی جهانباز با دهها شخصیت و مرحله نروید. چنین ایدهای حتی با کمک ابزارهای هوش مصنوعی، تصمیمهای فنی و طراحی زیادی دارد و احتمال نیمهکارهماندنش بالاست.
یک نمونه مناسب برای شروع، بازی جمعکردن سکه در مدت محدود است. بازیکن در یک محیط دوبعدی حرکت میکند، با گرفتن هر سکه امتیاز میگیرد و پس از پایان زمان، نتیجه را میبیند. همین ایده ساده به شما اجازه میدهد حرکت، برخورد، زمانسنج و امتیازدهی را تجربه کنید.
پیش از کدنویسی، پاسخ این چهار سؤال را بنویسید:
این پاسخها محدوده پروژه را مشخص میکنند و معیار شما برای بررسی خروجی هوش مصنوعی خواهند بود.
درخواست «یک بازی جذاب بساز» جزئیات کافی ندارد. مدل باید درباره سبک بازی، شیوه کنترل، ظاهر و حتی شرایط پایان آن حدس بزند. هرچه تصمیمهای اصلی را روشنتر بیان کنید، بررسی و اصلاح نتیجه آسانتر میشود.
برای نمونه، میتوانید چنین درخواستی بنویسید:
یک بازی دوبعدی ساده برای مرورگر طراحی کن که بازیکن در آن طی ۳۰ ثانیه سکه جمع کند. کنترل با کلیدهای جهتدار باشد، شخصیت از محدوده بازی خارج نشود و پس از پایان زمان، امتیاز نهایی و دکمه شروع دوباره نمایش داده شود. از HTML، CSS و JavaScript استفاده کن. ابتدا ساختار فایلها و مراحل اجرا را توضیح بده و سپس کد نسخه اولیه را بنویس.
این نمونه، هدف، محدودیتها و خروجی موردانتظار را مشخص میکند. اگر میخواهید بدانید prompt engineering چیست، میتوانید آن را در همین کاربرد ببینید: طراحی و اصلاح درخواست برای رسیدن به نتیجهای مشخص و قابل ارزیابی.
پس از دریافت نسخه اول، تغییرات را جداگانه بخواهید. مثلاً ابتدا حرکت شخصیت را اصلاح کنید و بعد سراغ افزودن مانع بروید؛ این روش تشخیص علت خطاهای تازه را سادهتر میکند.
برای یک بازی ساده مرورگری، میتوان رابط و ظاهر را با HTML و CSS ساخت و منطق حرکت، برخورد و امتیازدهی را با JavaScript پیادهسازی کرد. قابلیت Canvas در مرورگر نیز برای ترسیم عناصر دوبعدی کاربرد دارد.
در نسخه اولیه، شخصیت میتواند یک مربع و سکهها چند دایره ساده باشند. در این مرحله باید مشخص شود که بازی درست کار میکند و انجامدادنش جذاب است.
کار را به چند مرحله تقسیم کنید:
۱. محیط بازی و حرکت شخصیت را بسازید.
۲. سکهها و تشخیص برخورد را اضافه کنید.
۳. امتیاز، زمانسنج و پایان بازی را پیادهسازی کنید.
۴. دکمه شروع دوباره و راهنمای کنترل را قرار دهید.
پس از هر مرحله، بازی را اجرا کنید و نسخه سالم را نگه دارید. اگر چند قابلیت را همزمان اضافه کنید، پیدا کردن بخشی که باعث خرابی شده دشوارتر میشود.
همچنین از هوش مصنوعی بخواهید نقش فایلها و توابع اصلی را توضیح دهد. شناختن محل تنظیم سرعت حرکت یا مدت بازی کمک میکند تغییرات کوچک را خودتان انجام دهید.
نمایش صفحه بازی به معنای درستبودن همه بخشهای آن نیست. ممکن است زمانسنج با شروع دوباره دو بار فعال شود، امتیاز قبلی باقی بماند یا شخصیت هنگام حرکت مورب سریعتر جابهجا شود.
برای آزمایش، چند سناریوی مشخص داشته باشید: بازی را چند بار پشتسرهم شروع کنید، همزمان دو کلید را نگه دارید، اندازه پنجره را تغییر دهید و بررسی کنید پس از پایان زمان، امتیاز همچنان افزایش پیدا نکند.
اگر مخاطبان با گوشی بازی میکنند، کنترل لمسی و نمایش در صفحه کوچک را هم بررسی کنید. بازیای که فقط با صفحهکلید کار میکند، برای استفاده روی موبایل آماده نیست.
هنگام درخواست رفع خطا، بهجای «بازی خراب است»، رفتار دقیق را گزارش کنید:
پس از کلیک روی شروع دوباره، زمان دو برابر سریعتر کم میشود. انتظار دارم هر دور فقط یک زمانسنج فعال باشد. بخش مربوط به شروع و پایان دور را بررسی کن.
متن خطای مرورگر و کد مرتبط را نیز اضافه کنید. توضیح دقیق مشکل، مسیر بررسی را محدودتر و نتیجه را قابل سنجش میکند.
نسخه تکنفرهای که تمام منطقش در مرورگر اجرا میشود، میتواند بهصورت فایلهای ثابت HTML، CSS و JavaScript منتشر شود. سرویسهای میزبانی استاتیک، مانند GitHub Pages، برای انتشار این نوع فایلها کاربرد دارند.
اگر بخواهید امتیاز کاربران روی دستگاههای مختلف در دسترس باشد یا جدول رتبهبندی مشترک بسازید، به بخشی برای دریافت و نگهداری اطلاعات نیاز دارید. این بخش میتواند یک برنامه پایتونی باشد که درخواستهای بازی را دریافت و اطلاعات را در دیتابیس ثبت میکند.
برای آزمایش چنین قابلیتی، بررسی هاست رایگان پایتون میتواند نقطه شروع باشد. پیش از انتخاب، محدودیت منابع، توقف برنامه در زمان بیاستفادهبودن، ماندگاری دادهها و روش اتصال به دیتابیس را بررسی کنید.
اگر برنامه را با Flask میسازید، برای انتشار از روش استقرار مناسب استفاده کنید؛ سرور داخلی توسعه Flask برای اجرای نهایی برنامه طراحی نشده است.
وقتی بازیکنان باید همزمان در یک محیط مشترک حضور داشته باشند، مسئله فقط انتشار فایلها نیست. وضعیت بازی، حرکت بازیکنان، ورود و خروج افراد و نتیجه رویدادها باید میان دستگاهها هماهنگ شود. این قابلیت به طراحی و پیادهسازی ارتباط شبکه نیاز دارد.
در معماریهایی که یک برنامه مرکزی وضعیت بازی را مدیریت میکند، سرور گیمینگ میتواند محل اجرای این برنامه باشد. انتخاب منابع باید با توجه به موتور بازی، تعداد بازیکنان همزمان و نتیجه آزمایش مصرف پردازنده، رم و شبکه انجام شود.
خرید سرور بهتنهایی بازی را چندنفره نمیکند. لازم است اتصال کاربران، هماهنگی وضعیت و رفتار بازی هنگام قطع ارتباط را هم پیادهسازی کنید. بهتر است ابتدا ارتباط دو بازیکن را آزمایش کنید و سپس ظرفیت را افزایش دهید.
در این مرحله، از هوش مصنوعی برای توضیح معماری و بررسی بخشهای مشخص کد کمک بگیرید. درخواست یکجای «بازی چندنفره کامل» معمولاً ارزیابی خروجی را برای یک تازهکار دشوار میکند.
اولین آزمایشکنندگان بهتر است افرادی باشند که توضیحات شما درباره بازی را نشنیدهاند. ببینید آیا هدف را میفهمند، کنترلها را پیدا میکنند و میتوانند بدون راهنمایی یک دور کامل بازی کنند.
از آنها سؤالهای مشخص بپرسید: کجا سردرگم شدند؟ چه چیزی بیش از حد سخت بود؟ آیا دوست داشتند دوباره بازی کنند؟ این پاسخها برای اصلاح نسخه بعدی، از نظر کلی «خوب بود» مفیدترند.
پیش از انتشار گسترده، این موارد را هم بررسی کنید:
برای ساخت بازی با هوش مصنوعی، از ایدهای شروع کنید که بتوانید قوانینش را دقیق توضیح دهید و نتیجهاش را آزمایش کنید. سپس نسخه اولیه را مرحلهبهمرحله بسازید، خطاها را با گزارش روشن اصلاح کنید و میزبانی را متناسب با اجزای واقعی پروژه انتخاب کنید.
هدف پروژه اول، تمامکردن یک تجربه کوچک و قابل بازی است. وقتی این مسیر را یک بار طی کنید، تصمیم درباره افزودن گرافیک بهتر، جدول امتیازات یا قابلیت چندنفره هم آگاهانهتر خواهد بود.