پیتر لولز مأموریتی تازه برای GTA: San Andreas با Claude Code ساخته است

pasqualepillitteri.it

انتشار در منبع: انتشار در سایت ما:

مقاله اصلی · English

پیتر لولز با کمک Claude Code، مأموریتی تازه برای بازی GTA: San Andreas ساخته است که «Vibe Coded» نام دارد. در این مأموریت، سی‌جی با استفاده از کدنویسی مبتنی بر هوش مصنوعی استارتاپی راه‌اندازی می‌کند و در پایان، ۱۰ میلیون دلار از سرمایه‌گذاران سان‌فرانسیسکو می‌گیرد. ویدئوی این مأموریت که در فاصله شب ۲۰ تا ۲۱ اکتبر در شبکه اجتماعی ایکس منتشر شد، بیش از ۱٫۱ میلیون بازدید داشته است.

لولز توسعه‌دهنده مستقلی است که پروژه‌هایی مانند Remote OK، یک وب‌سایت کاریابی برای مشاغل دورکار، Photo AI، Interior AI و Hoodmaps را راه‌اندازی کرده است. Hoodmaps نقشه‌ای است که ویژگی‌ها و حال‌وهوای محله‌های شهری را توصیف می‌کند. او در وبلاگ خود می‌گوید استارتاپ‌هایش را به‌تنهایی، بدون جذب سرمایه و با کدنویسی روی لپ‌تاپش می‌سازد. Claude Code، عامل برنامه‌نویسی شرکت Anthropic، در محیط ترمینال کار می‌کند، فایل‌ها را می‌خواند، فرمان‌ها را اجرا می‌کند و سپس کدها را بازنویسی می‌کند. ایده کدنویسی مبتنی بر هوش مصنوعی یا «وایب کدینگ» نیز دقیقاً همین است: کاربر خواسته‌اش را با زبان معمولی توصیف می‌کند و هوش مصنوعی کدنویسی را انجام می‌دهد؛ رویکردی که موضوع اصلی طنز این مأموریت است.

GTA: San Andreas و Claude Code در مأموریت Vibe Coded ساخته‌شده به دست پیتر لولز
تصویری از مأموریت Vibe Coded برای GTA: San Andreas که با Claude Code ساخته شده است؛ اثر گرافیکی وبلاگ

مأموریت Vibe Coded را چگونه امتحان کنیم؟

لولز دستور کامل ساخت مأموریت را در پست خود در ایکس منتشر کرده است. برای بازسازی آن، به نسخه رایانه‌ای بازی GTA: San Andreas، یک مک مجهز به CrossOver ــ نرم‌افزاری پولی برای اجرای برنامه‌های ویندوز ــ و Claude Code نیاز دارید. همچنین باید آماده باشید مراحل را یکی‌یکی اجرا کنید و برای رسیدن به نتیجه، حوصله کافی داشته باشید.

مشاهده دستور کامل در ایکس

تماشای ویدئوی مأموریت

در مأموریت Vibe Coded چه اتفاقی می‌افتد؟

در این مأموریت، سی‌جی وارد نشانگر مأموریت در سن‌فیرو می‌شود و با خودرو به یک غذاخوری می‌رود. او پشت میزی در کنار هم‌بنیان‌گذار خود می‌نشیند و در قالب یک بازی کوچک، استارتاپی به نام Vibes AI را «کدنویسی» می‌کند. سپس به دفتر سرمایه‌گذاران می‌رود، به سه سؤال پاسخ می‌دهد و پیشنهادی ۱۰ میلیون دلاری دریافت می‌کند؛ اتفاقی که مأموریت را به پایان می‌رساند.

بازی کوچک مربوط به کدنویسی، از نظر پرداخت و جزئیات فنی، کامل‌ترین بخش مأموریت است. روی صفحه یک لپ‌تاپ ساختگی که مستقیماً با اسکریپت ترسیم شده، بازیکن با فشردن کلید فاصله، دستوری را به هوش مصنوعی می‌دهد و نوار پیشرفت را جلو می‌برد. هم‌زمان، گزارش فعالیت عامل هوش مصنوعی روی صفحه حرکت می‌کند و پر است از شوخی‌هایی درباره مشکلات و عادت‌های رایج در این شیوه کدنویسی: زیادشدن بی‌رویه عامل‌های فرعی، فشرده‌سازی بافت متنی، تأیید خودکار فرمان rm -rf و حذف آزمون‌ها تا همه آن‌ها موفق به نظر برسند.

هر از گاهی، یک خطای قرمزرنگ ظاهر می‌شود و بازیکن چهار ثانیه فرصت دارد با فشردن کلید Y، اصلاح پیشنهادی هوش مصنوعی را بپذیرد. هر اصلاح نیز با پاسخ طنزآمیز مخصوص خودش همراه است. اگر بازیکن به‌موقع واکنش نشان ندهد، ۱۲ درصد از پیشرفت از دست می‌رود. پس از پرشدن نوار، عبارت SHIPPED! روی صفحه ظاهر می‌شود. نشانگر بعدی بازیکن را به مرکز شهر می‌برد؛ جایی که باید در جلسه ارائه به سرمایه‌گذاران به سه پرسش با پاسخ بله یا خیر جواب دهد. پاسخ منفی به یک پرسش، پیشنهاد متقابلی را فعال می‌کند و سرمایه‌گذاران در نهایت دستپاچه می‌شوند و کوتاه می‌آیند.

تمام دیالوگ‌ها و زیرنویس‌های مأموریت آماده شده‌اند. صداها با فناوری تولید گفتار ساخته شده‌اند و متعلق به صداپیشگان اصلی بازی نیستند.

چگونه با Claude Code برای GTA: San Andreas مأموریت بسازیم؟

لولز دستور ساخت را در پنج بخش منتشر کرده است. هوش مصنوعی این مراحل را به‌ترتیب اجرا می‌کند و پیش از هر تغییر، از فایل‌ها نسخه پشتیبان می‌گیرد. فرایند کلی شامل آماده‌سازی بازی، رفع مشکلات اجرای آن روی مک، نوشتن اسکریپت، ضبط صداها و آزمایش نتیجه است. در متن دستور از کاربر خواسته شده است آن را در «clanker» خود قرار دهد؛ اصطلاحی عامیانه برای دستیار هوش مصنوعی. همچنین می‌توان داستان مأموریت را با ایده‌ای دلخواه جایگزین کرد.

  1. آماده‌سازی بازی. دستور از کاربر می‌خواهد نسخه بازی GTA: San Andreas را به نسخه آمریکایی ۱٫۰ برگرداند؛ تنها نسخه‌ای که کتابخانه CLEO، ابزار بارگذاری اسکریپت‌های سفارشی در بازی، روی آن کار می‌کند. برای این کار از ابزار متن‌باز Jetpack Downgrader استفاده می‌شود. سپس باید CLEO 5 را به همراه Silent's ASI Loader و SilentPatch نصب کرد. بدون این ابزارها، نسخه ۱٫۰ ممکن است هنگام اجرا روی مک با خطای «Cannot find 800x600x32 video mode» مواجه شود. فایل ذخیره بازی نیز باید تبدیل شود. لولز از فایلی استفاده کرده که مربوط به مرحله بلافاصله پس از مأموریت «Are You Going To San Fierro?» است.
  2. پرهیز از مشکلات اجرای بازی روی مک. اگر فایل تنظیمات gta_sa.set وجود داشته باشد، بازی هنگام شروع از کار می‌افتد؛ بنابراین باید در هر بار اجرا آن را حذف کرد. پنجره بازی نیز باید در حالت فعال باقی بماند، وگرنه فرایند بارگذاری متوقف می‌شود. خروج اجباری از بازی هم ممکن است فرایندهای ویندوزی باقی بگذارد که مانع اجرای دوباره آن می‌شوند.
  3. نوشتن اسکریپت. مأموریت با زبان اسکریپت‌نویسی CLEO و در قالب دستوری Sanny Builder 4 نوشته می‌شود. Sanny Builder ویرایشگر و کامپایلر اسکریپت‌های GTA است. اسکریپت از طریق خط فرمان و در یک محیط مجزای CrossOver موسوم به «bottle» کامپایل می‌شود تا اجرای بازی اصلی مختل نشود.
  4. ضبط صداها. دیالوگ‌ها ابتدا به‌صورت جداگانه نوشته می‌شوند و سپس با فناوری تولید گفتار به صدا تبدیل می‌شوند. در ادامه، سکوت‌های اضافی حذف و بلندی صداها با ffmpeg یکسان‌سازی می‌شود. برای اطمینان از تطابق زیرنویس‌ها با صدای واقعی، از ابزار تشخیص گفتار Whisper به‌صورت محلی استفاده می‌شود.
  5. آزمایش. پس از هر تغییر، فایل ذخیره بازی دوباره بارگذاری می‌شود و بخشی که تغییر کرده است از نو اجرا می‌شود. اگر چیزی درست به نظر نرسد، از هوش مصنوعی خواسته می‌شود تصویر صفحه تهیه کند. سپس هر بار فقط یک تغییر اعمال می‌شود تا بتوان نتیجه آن را بررسی کرد.

یکی از تفاوت‌های مهم این دستور با یک فرمان نمایشی و سطحی، بخش مربوط به داده‌های فنی بازی است. در متن تأکید شده که نباید مختصات را صرفاً با حدس تعیین کرد. مختصات و شناسه فضاهای داخلی از بخش‌های enex در فایل‌های نقشه .ipl استخراج می‌شوند. برای مثال، غذاخوری سن‌فیرو با شناسه DINER2 و فضای داخلی شماره ۵ مشخص شده و دفتر سرمایه‌گذاران با شناسه PAPER و فضای داخلی شماره ۳ تعریف شده است. مدل‌های صندلی، میز و رایانه نیز از فایل‌های .ide به دست می‌آیند. شناسه‌های این اشیا به‌ترتیب ۱۷۱۴، ۲۰۰۸ و ۲۱۹۰ هستند، زیرا بازی مدل لپ‌تاپ ندارد. ابعاد اشیا از روی مدل‌های .dff اندازه‌گیری می‌شوند و نام انیمیشن‌ها نیز در فایل‌های .ifp بررسی می‌شود.

چرا نشاندن سی‌جی پشت میز این‌قدر دشوار است؟

دلیل اصلی این است که مختصات نقاط ورود به محیط لزوماً ارتفاع سطح زمین را نشان نمی‌دهند. اگر شخصیت را با تخمین چشمی در جای مناسب قرار دهید، ممکن است در هوا معلق بماند. دستور منتشرشده لولز مجموعه‌ای از قواعد مربوط به جانمایی شخصیت را شرح می‌دهد که پس از چندین بار آزمون‌وخطا اصلاح شده‌اند؛ این بخش از آموزنده‌ترین قسمت‌های فرایند است.

برای به‌دست‌آوردن ارتفاع واقعی زمین، باید پس از بارگذاری برخوردهای محیطی و حدود یک ثانیه انتظار، تابع get_ground_z_for_3d_coord را از خود بازی فراخوانی کرد. تابع جابه‌جایی شخصیت نیز از قبل ارتفاع ایستادن او را، که حدود یک متر است، به مختصات اضافه می‌کند. بنابراین اگر هنگام تعیین موقعیت، یک متر دیگر به ارتفاع زمین بیفزایید، شخصیت در هوا معلق خواهد ماند. شخصیتی که در هوا ثابت نگه داشته شده باشد، انیمیشن را اجرا نمی‌کند و در حالت نامناسبی سقوط می‌کند. انیمیشن نشستن، بدن را ۰٫۴۰۳ متر پایین می‌آورد؛ مقداری که از فایل .ifp خوانده شده است و باعث می‌شود لگن شخصیت روی صندلی‌ای با ارتفاع ۰٫۴۹ متر قرار بگیرد.

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

ترکیبی از طنز و اثبات توانایی فنی

پست ویدئویی این مأموریت بیش از ۲۱ هزار پسند و بیش از هزار بازنشر دریافت کرده است. به گفته لولز در وبلاگش، ایده اولیه از الکس کریستو (@alexchristou_) بوده است. بااین‌حال، واکنش‌ها فقط مثبت نبودند. کاربری به نام Silent در واکنش خود به این پست اشاره کرد که با توجه به در دسترس بودن مأموریت‌های GTA در اینترنت، هوش مصنوعی باید می‌توانست نشانگر شروع مأموریت مناسبی بسازد، نه «آن چیز» که در ویدئو دیده می‌شود. البته بخش اصلی طنز در خود داستان مأموریت است: فردی که با هوش مصنوعی کدنویسی می‌کند، تنها پس از پاسخ‌دادن به سه پرسش، ۱۰ میلیون دلار از سرمایه‌گذاران سان‌فرانسیسکو دریافت می‌کند.

I asked Claude Code to make a new GTA: San Andreas mission where CJ has to vibe code a startup and then raise money from investors in SF

این نمونه به موجی از مطالب و پروژه‌های اخیر درباره ترکیب بازی‌های ویدئویی و هوش مصنوعی می‌پیوندد؛ موضوعی که طی هفته‌های گذشته به‌تدریج به ژانری مستقل تبدیل شده است. اوایل همین ماه، Claude Opus 5.5 بازی‌ها را مهندسی معکوس کرد تا امکان اجرای آن‌ها در مرورگر فراهم شود. در نمونه‌ای دیگر، پستی درباره انتقال GTA 4 به اندروید وعده‌هایی فراتر از توانایی واقعی پروژه مطرح کرد و پروژه اجرای رایگان GTA 5 در مرورگر نیز پس از چند ساعت از دسترس خارج شد. اما در این مورد، هوش مصنوعی نسخه‌ای از بازی را که کاربر از قبل در اختیار دارد تغییر می‌دهد؛ فقط یک اسکریپت به بازی اضافه می‌کند و کل بازی را از نو نمی‌سازد.

کسانی که می‌خواهند بدون کار با ترمینال از روش وایب کدینگ استفاده کنند، می‌توانند نمونه‌هایی مانند ابزار ساخت وب‌سایت و بازی شرکت Bluesky و Coderblock.ai را بررسی کنند؛ ابزاری که می‌تواند تنها با دریافت یک دستور، برنامه‌های کاملی بسازد.

محدودیت‌هایی که باید در نظر گرفت

  • تنها مدرکی که اجرای مأموریت را نشان می‌دهد، ویدئویی است که خود لولز ضبط کرده است. ویدئو ثابت می‌کند که مأموریت وجود دارد، اما تضمین نمی‌کند دیگران بتوانند آن را با موفقیت بازسازی کنند. کپی‌کردن دستور نیز لزوماً به نتیجه یکسانی منجر نمی‌شود.
  • دستور منتشرشده، حاصل مجموعه‌ای از تلاش‌ها و اصلاحات پیاپی است. در آن به قواعدی اشاره شده که پس از چند بار آزمایش اصلاح شده‌اند؛ همچنین از تهیه تصویر صفحه در مراحل مختلف و اعمال هر بار یک تغییر سخن گفته می‌شود. بنابراین، آزمایش نهایی در محیط بازی بر عهده کسی است که می‌خواهد مأموریت را اجرا کند و باید برای آن زمان کافی در نظر بگیرد.
  • این روش برای سیستم‌عامل macOS با استفاده از CrossOver طراحی شده و به نسخه رایانه‌ای بازی نیاز دارد که به نسخه ۱٫۰ بازگردانده شده باشد. بنابراین، دارندگان نسخه کنسولی یا موبایلی GTA: San Andreas نمی‌توانند بدون تغییرات اساسی از همین دستورالعمل استفاده کنند.

پرسش‌های متداول

۱. آیا برای بازسازی مأموریت باید نسخه‌ای از GTA: San Andreas داشته باشم؟

بله، به یک نسخه قانونی و نصب‌شده از بازی نیاز دارید. دستور ساخت از نسخه‌ای نصب‌شده از GTA: San Andreas آغاز می‌شود؛ همان نسخه‌ای که از طریق Rockstar Launcher تهیه شده و لولز آن را به نسخه ۱٫۰ برمی‌گرداند. تمام تغییرات روی فایل‌های خود کاربر انجام می‌شوند و به همین دلیل، در نخستین مرحله از او خواسته می‌شود از کل پوشه بازی و فایل‌های ذخیره نسخه پشتیبان تهیه کند. بدون نسخه خریداری‌شده بازی، چیزی برای تغییر دادن وجود ندارد.

۲. آیا این روش با ChatGPT، Gemini یا دستیارهای دیگر هم کار می‌کند؟

این دستور برای عاملی طراحی شده است که بتواند روی رایانه کاربر فعالیت کند. لولز می‌گوید می‌توان دستور را در دستیار هوش مصنوعی خود وارد کرد، اما نتیجه‌ای که در ویدئو نشان داده شده، با Claude Code ساخته شده است. در پست او مدرکی برای کارکرد مشابه ابزارهای دیگر ارائه نشده است. فرایند کامپایل، تهیه نسخه پشتیبان و آزمایش به عاملی نیاز دارد که بتواند فرمان‌های رایانه را اجرا کند؛ یک رابط گفت‌وگوی ساده به‌تنهایی کافی نیست.

۳. آیا صداهای شخصیت‌ها همان صداهای نسخه اصلی بازی هستند؟

خیر، صداها با فناوری تولید گفتار ساخته شده‌اند. دستور از کاربر می‌خواهد صداهایی تازه یا طراحی‌شده تولید کند و سپس با ffmpeg آن‌ها را پاک‌سازی کرده و بلندی صدایشان را یکسان کند. به‌عنوان مرحله‌ای اختیاری، پیشنهاد شده است دیالوگ‌های واقعی بازی نیز استخراج شوند. این مجموعه شامل ۲۱۸ بانک صوتی و حدود ۶۸۰۰ قطعه گفتاری است که می‌توان با کمک Whisper در میان آن‌ها جست‌وجو کرد.

۴. آیا می‌توان داستان مأموریت را تغییر داد؟

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

بیشتر یک آموزش فنی است تا یک شوخی

این مأموریت از آن جهت خنده‌دار است که وایب کدینگ حالا به موضوعی مناسب برای شوخی تبدیل شده؛ اما ارزش اصلی دستور ساخت، جزئیاتی است که درباره فرایند فنی ثبت کرده است. عاملی که اسکریپت‌های یک بازی متعلق به سال ۲۰۰۴ را روی مک کامپایل می‌کند، از لایه سازگاری ویندوز و فرایند بازگرداندن بازی به نسخه قدیمی‌تر عبور می‌کند و برای نشاندن یک شخصیت روی صندلی ناچار است مقداری را از فایل انیمیشن بخواند، نشان می‌دهد هوش مصنوعی در چه بخش‌هایی از پس کار برمی‌آید و کجا همچنان به نظارت انسان نیاز دارد. در واقع، این پروژه نوعی آموزش ساخت ماد برای بازی است که در قالب یک شوخی ارائه شده است.