با Gemini و Antigravity یک بازی آرکید Match 3 بسازید

۱. مقدمه

در این آزمایشگاه کد، شما با استفاده از Gemini 3 و عامل کدنویسی Antigravity ، یک بازی آرکید به نام CloudCrush خواهید ساخت. این بازی با زبان Go نوشته شده و با استفاده از Cloud Run روی فضای ابری گوگل مستقر خواهد شد.

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

این آزمایشگاه کد برای توسعه‌دهندگان سطح متوسط ​​است که به دنبال یادگیری گردش‌های کاری پیشرفته‌ی عامل‌محور هستند. مدت زمان تخمینی کل این آزمایشگاه ۶۰ دقیقه است. منابع ایجاد شده در این آزمایشگاه کد از قیمت‌گذاری مبتنی بر مصرف استفاده می‌کنند.

کاری که انجام خواهید داد

  • منطق اصلی بازی Match-3 را با استفاده از Go و چارچوب Ebitengine بسازید.
  • تطبیق بازی برای اجرا در مرورگر وب با استفاده از WebAssembly (WASM)
  • بازی و API دارای بالاترین امتیاز آن را در Cloud Run مستقر کنید.
  • هماهنگ‌سازی زیرعامل‌ها و افزونه‌های تخصصی برای آزمایش و بررسی کد

پیش‌نیازها

  • دانش پایه زبان‌های برنامه‌نویسی
  • آشنایی اولیه با زیرساخت ابری
  • آشنایی اولیه با کنسول ابری گوگل

آنچه یاد خواهید گرفت

  • نحوه همکاری با یک متخصص کدنویسی برای ساخت برنامه‌های پیچیده
  • نحوه کار با Gemini در یک زمینه چندوجهی
  • نحوه استقرار برنامه‌ها در فضای ابری با استفاده از Cloud Run

آنچه نیاز دارید

این کارگاه می‌تواند کاملاً روی فضای ابری با استفاده از Cloud Shell انجام شود، اما اگر ترجیح می‌دهید از دستگاه محلی خود استفاده کنید، به موارد زیر نیاز خواهید داشت:

  • Antigravity 2.0 و Antigravity CLI. آن را دانلود و طبق دستورالعمل‌های موجود در antigravity.google نصب کنید.
  • ابزار Go (نسخه ۱.۲۶ یا بالاتر). آن را دانلود و با استفاده از دستورالعمل‌های موجود در go.dev نصب کنید.
  • رابط خط فرمان gcloud برای تعامل با گوگل کلود. آن را با استفاده از دستورالعمل‌های موجود در مستندات گوگل کلود دانلود و نصب کنید.
  • یک حساب پرداخت گوگل کلود (برای انتشار بازی در فضای ابری)

فناوری‌های کلیدی

در اینجا می‌توانید اطلاعات بیشتری در مورد فناوری‌هایی که ما استفاده خواهیم کرد، بیابید:

۲. تنظیمات محیطی

یکی از گزینه‌های زیر را انتخاب کنید: اگر می‌خواهید این آزمایشگاه کد را روی دستگاه خودتان اجرا کنید، تنظیمات محیط خودآموز را انتخاب کنید ، یا اگر می‌خواهید این آزمایشگاه کد را کاملاً در فضای ابری اجرا کنید ، Start Cloud Shell را شروع کنید .

تنظیم محیط خودتنظیم

  1. وارد کنسول گوگل کلود شوید و یک پروژه جدید ایجاد کنید یا از یک پروژه موجود دوباره استفاده کنید. اگر از قبل حساب جیمیل یا گوگل ورک اسپیس ندارید، باید یکی ایجاد کنید .

۲۹۵۰۰۴۸۲۱bab6a87.png

37d264871000675d.png

۹۶d86d3d5655cdbe.png

  • نام پروژه، نام نمایشی برای شرکت‌کنندگان این پروژه است. این یک رشته کاراکتری است که توسط APIهای گوگل استفاده نمی‌شود. شما همیشه می‌توانید آن را به‌روزرسانی کنید.
  • شناسه پروژه در تمام پروژه‌های گوگل کلود منحصر به فرد است و تغییرناپذیر است (پس از تنظیم، قابل تغییر نیست). کنسول کلود به طور خودکار یک رشته منحصر به فرد تولید می‌کند؛ معمولاً برای شما مهم نیست که چه باشد. در اکثر آزمایشگاه‌های کد، باید شناسه پروژه خود را (که معمولاً با عنوان PROJECT_ID شناخته می‌شود) ارجاع دهید. اگر شناسه تولید شده را دوست ندارید، می‌توانید یک شناسه تصادفی دیگر ایجاد کنید. به عنوان یک جایگزین، می‌توانید شناسه خودتان را امتحان کنید و ببینید که آیا در دسترس است یا خیر. پس از این مرحله قابل تغییر نیست و در طول پروژه باقی می‌ماند.
  • برای اطلاع شما، یک مقدار سوم، شماره پروژه ، وجود دارد که برخی از APIها از آن استفاده می‌کنند. برای کسب اطلاعات بیشتر در مورد هر سه این مقادیر، به مستندات مراجعه کنید.
  1. در مرحله بعد، برای استفاده از منابع/API های ابری، باید پرداخت صورتحساب را در کنسول ابری فعال کنید . اجرای این آزمایشگاه کد هزینه زیادی نخواهد داشت، اگر اصلاً هزینه‌ای داشته باشد. برای خاموش کردن منابع به منظور جلوگیری از پرداخت صورتحساب پس از این آموزش، می‌توانید منابعی را که ایجاد کرده‌اید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان ۳۰۰ دلاری هستند.

شروع پوسته ابری

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

از کنسول گوگل کلود ، روی آیکون Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:

فعال کردن پوسته ابری

آماده‌سازی و اتصال به محیط فقط چند لحظه طول می‌کشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:

تصویر صفحه ترمینال Google Cloud Shell که نشان می‌دهد محیط متصل شده است

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

۳. راه‌اندازی پروژه

ایجاد دایرکتوری پروژه

ابتدا، باید یک دایرکتوری جدید برای پروژه شما ایجاد کنیم. در ترمینال خود، دستورات زیر را اجرا کنید:

mkdir -p codelab-match3 && cd codelab-match3

اجرای رابط خط فرمان آنتی‌گراویتی

ابتدا، بررسی می‌کنیم که آیا رابط خط فرمان Antigravity به درستی نصب شده است یا خیر. دستور زیر را در ترمینال خود اجرا کنید:

agy --version

شما باید چیزی شبیه به این را ببینید:

$ agy --version
1.0.2

حالا رابط خط فرمان Antigravity را با دستور agy اجرا کنید:

agy

آنتی‌گراویتی از شما می‌پرسد که آیا به این پروژه اعتماد دارید یا خیر. از آنجایی که ما یک پوشه خالی ایجاد کرده‌ایم، اعتماد به آن بی‌خطر است، بنابراین دسترسی را تأیید کنید و به خط فرمان CLI هدایت خواهید شد:

da47123c5404f93e.png

اگر پیام Antigravity CLI را مشاهده می‌کنید، همه چیز آماده است. در غیر این صورت، دوباره بررسی کنید که آیا مراحل راه‌اندازی قبلی را از دست داده‌اید یا خیر.

۴. بازی پایه را در حالت برنامه‌ریزی ایجاد کنید

بیایید با ساختن منطق اصلی بازی Match-3 شروع کنیم. Antigravity به طور پیش‌فرض در حالت برنامه‌ریزی شروع می‌شود، بنابراین برای تغییر به برنامه‌ریزی نیازی به صدور دستور خاصی ندارید.

با این حال، مفید است بدانید که می‌توانید حالت برنامه‌ریزی را در هر زمانی با دستور اسلش /planning در خط فرمان Antigravity CLI فعال کنید:

/planning

اگر اکنون سعی کنید این دستور را اجرا کنید، Antigravity به شما یادآوری می‌کند که از قبل در حال برنامه‌ریزی است.

8b3d4586b1521c50.png

نقطه مقابل حالت برنامه‌ریزی، حالت سریع است که می‌توانید با /fast آن را فعال کنید:

/fast

c2a0e2a24ed682cb.png

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

دارایی‌ها را دانلود کنید

ما باید تصاویری را که قرار است در بازی استفاده شوند دانلود کنیم. از آنجایی که این یک کار کوچک و مستقل است، نیازی به اجرای آن در حالت برنامه‌ریزی نیست، بنابراین می‌توانیم از حالت سریع (fast mode) برای انجام فوری آن استفاده کنیم:

Create a folder named "assets" and download the images 
background.png, gcp_sprites.png, gemini.png and logo.png, 
from this GitHub repository to the "assets" folder:
https://github.com/GoogleCloudPlatform/devrel-demos/tree/main/codelabs/gemini-cli/gemini-cli-match3-golang

آنتی‌گراویتی از شما اجازه می‌خواهد تا چند دستور shell برای دانلود فایل‌ها اجرا کند. پس از اتمام کار، باید چیزی شبیه به این را ببینید:

de07f3310951c932.png

بازی پایه را ایجاد کنید

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

/planning

در حالت برنامه‌ریزی، دستور زیر را کپی کرده و در Antigravity CLI قرار دهید:

Build a Match-3 game called 'Cloud Crush' in Go using Ebitengine v2.
The entire game screen should have background.png as background.
The play area should be an 8x8 grid with white background. 
On the right side of the play area include a side panel with UI elements 
like player score and how to play instructions.
The side panel should have a solid background colour to help with readability of the UI.

Use standard GCP product logos (e.g. Compute Engine, Cloud Storage, BigQuery, etc.)
as icons. These icons are provided in the gcp_sprites.png file.

The icons are saved as 64x64 sprites but scale them as necessary
based on the screen resolution. Implement swapping, clearing 3+ gems, and gravity.

Use ebitengine native font rendering (size 48 for titles and size
24 for normal text) for all text and not the debug print.

The font should be monospaced (golang.org/x/image/font/gofont/gomono).
Keep the UI tidy and harmonic, e.g. centered text should always be
adjusted based on text length, not just guess based on estimates.

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

۴۶۰۹۶ce2fd4bf219.png

لطفاً به گوشه پایین سمت راست، جایی که ۱ مصنوع و اشاره به استفاده از /artifact برای بررسی را نوشته‌اید، توجه ویژه‌ای داشته باشید. در Antigravity، فایل‌های پشتیبانی مانند برنامه‌ها، لیست وظایف و راهنماها «مصنوعات» نامیده می‌شوند تا از فایل‌های معمولی که بخشی از راه‌حل هستند (مثلاً کد منبع) متمایز شوند.

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

/artifact

شما باید چیزی شبیه به این را ببینید:

2b5d9881a172ac7c.png

توجه داشته باشید که فایلی با نام implementation_plan.md وجود دارد که گزینه‌هایی برای باز کردن، تأیید یا رد کردن دارد. برای باز کردن آن، Enter را فشار دهید. در اینجا مثالی از نحوه نمایش طرح در سیستم من آورده شده است:

dd8f330bc22acebe.png

می‌توانید با کلیدهای جهت‌نما به بالا و پایین حرکت کنید و در هر خط می‌توانید با فشار دادن کلید C یک توضیح اضافه کنید. در این مورد، من دوست ندارم که از نسخه قدیمی Go استفاده کنم، بنابراین یک توضیح برای استفاده از Go 1.26 (جدیدترین نسخه در زمان نوشتن این متن) در خط ۱۶ اضافه می‌کنم:

de728205ab017d1a.png

پس از وارد کردن نظر، آن به صورت درون خطی ظاهر می‌شود:

۸۹۱۵۸۸cf۴۴۸۸۶۱۵a.png

بخش مهمی که باید بررسی شود «طرح تأیید» است. تست خودکار بازی‌ها قابل توجه است، اما go یک زبان کامپایل‌شده است، بنابراین حداقل باید مطمئن شویم که مدل، کدی را به ما تحویل می‌دهد که کامپایل می‌شود. اگر مرحله خودکاری برای ساخت فایل باینری در نظر گرفته نشده است، آن را به عنوان نظر اضافه کنید:

بخش مهمی که باید بررسی شود، «طرح تأیید» است. تست خودکار بازی‌ها به طور قابل توجهی دشوار است، اما go یک زبان کامپایل شده است، بنابراین حداقل باید مطمئن شویم که مدل، کدی را به ما تحویل می‌دهد که کامپایل می‌شود. اگر مرحله خودکاری برای ساخت فایل باینری گنجانده نشده است، آن را به عنوان نظر اضافه کنید:

ba395927ab140f17.png

این فرآیند را تا زمانی که از طرح راضی هستید تکرار کنید و برای بازگشت ESC را بزنید. سپس برای تأیید ارسال نظرات به اپراتور، Y را بزنید:

602addd55412527c.png

بعد از اینکه Y را زدید، عامل بلافاصله شروع به کار می‌کند. برای خروج از منوی "Artifact" باید یک بار دیگر ESC را بزنید. این کار شما را به حالت اعلان برمی‌گرداند. در همین حال، عامل ممکن است به دلیل نیاز به اجرای دستورات پوسته، درخواست تأیید فراخوانی ابزار بیشتری کند.

در حین انتظار، می‌توانیم با صف‌بندی اعلان‌ها، به کار روی طراحی نیز ادامه دهیم. برای مثال، می‌توانیم از این فرصت برای اضافه کردن یک الزام جدید که در اعلان اصلی از قلم افتاده است، استفاده کنیم:

Add a 60-seconds countdown timer and an in-memory high-score tracker to enhance the arcade game experience. Combos should give a score bonus of 10% per combo number.

یک اعلان در صف انتظار در تاریخچه پیام‌ها با یک فلش کوچک در جلوی آن ظاهر می‌شود:

8093d9113e14792d.png

همچنین ممکن است متوجه شوید که تعداد مصنوعات در حال افزایش است. علاوه بر برنامه، Antigravity یک لیست وظایف (task.md) نیز ایجاد می‌کند تا هر موردی را که باید پیاده‌سازی کند یا اقدامی را که باید انجام دهد، پیگیری کند. پس از اتمام، یک فایل راهنمای گام به گام (walkthrough.md) با توضیحی از اهداف به دست آمده ایجاد می‌کند. می‌توانید با استفاده مجدد از دستور /artifact همه این موارد را بررسی کنید.

384ffba82817aa8d.png

در اینجا مثالی از فایل task.md پس از تکمیل پیاده‌سازی بازی پایه آورده شده است:

5bf1f31cfef8c725.png

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

پس از اینکه فایل باینری با موفقیت ساخته شد، باید چیزی شبیه به این را ببینید:

۱۲۱۵f6ba267d9933.png

بازی را اجرا کنید و ببینید که آیا طبق انتظار کار می‌کند یا خیر. ایده خوبی است که آن را از داخل اعلان عامل اجرا کنید. می‌توانید با تایپ علامت تعجب "!"، اعلان را به "حالت پوسته" تغییر دهید:

3ed1f93c756154bc.png

شما پیام "actived bash mode" را در زیر اعلان مشاهده خواهید کرد. برای اجرای دستور، Enter را بزنید. اجرای فایل باینری در این حالت این مزیت را به شما می‌دهد که عامل (agent) هرگونه خروجی به ترمینال را "تحت نظر" دارد، بنابراین در صورتی که بازی اجرا نشود یا به طور ناگهانی از کار بیفتد، نیازی نیست که مشکل پیش آمده را برای عامل توضیح دهید. عامل بلافاصله تمام اطلاعات مورد نیاز خود را از متن پوسته (shell context) دریافت خواهد کرد.

761f3c71af5ad842.png

سعی کنید بازی را انجام دهید و پارامترهای بازی را تا زمانی که از تجربه راضی هستید، تنظیم کنید (مثلاً انیمیشن را سریع‌تر یا کندتر کنید، نحوه پاسخ آن به دستورات را تنظیم کنید و غیره).

برای مثال، این اعلان با اضافه کردن حالت دسترسی و دستورات جدید صفحه کلید، تجربه را بهبود می‌بخشد:

Update the implementation to include: 'Q' to quit, 'F' for full-screen
and 'A' for Accessibility Mode: swap GCP logos for high-contrast coloured blocks.

Also enable Arrow Keys to move the selection cursor and Space to select the gem to 
swap (space is pressed once to select, then arrow key immediately makes 
the move - no need to press space again).

Use a golden square (4 px border, transparent fill) with a simple animation
to highlight where the cursor is at the moment.

وقتی کار پرداخت تمام شد، به بخش بعدی بروید تا آن را به یک برنامه وب تبدیل کنید.

۵. بازی را برای اجرا روی مرورگر وب تنظیم کنید

بازی Ebitengine در حال حاضر یک برنامه دسکتاپ است. بیایید از Antigravity CLI بخواهیم که آن را برای اجرا در یک مرورگر وب با استفاده از WebAssembly (WASM) تطبیق دهد. این شامل کامپایل کد Go برای مرورگر هدف و راه‌اندازی یک وب سرور اولیه خواهد بود.

برای راهنمایی اپراتور از راهنمای زیر استفاده کنید:

We need to enable this game to run on a web browser. Compile the game to WASM
and create a Go web server to serve the compiled WASM and the assets. 

توجه داشته باشید که عامل سعی خواهد کرد فایلی به نام wasm_exec.js را در سیستم فایل شما جستجو کند. این مورد انتظار است و شما باید آن را مجاز کنید، زیرا این فایل، پوششی است که امکان اجرای فایل‌های باینری Go را از طریق JS فراهم می‌کند. برای مثال:

b9fcf1089f9dce3e.png

پس از اتمام کار توسط عامل، می‌توانید به او دستور دهید که سرور بازی را در پس‌زمینه اجرا کند.

aa59ec12374a2712.png

حالا http://localhost:8080 را در مرورگر خود باز کنید تا اجرای بازی را در وب مشاهده کنید:

5503ee0226f585b5.png

حالا که آن را روی وب اجرا کرده‌اید، بیایید قبل از استقرار آن روی فضای ابری، کمی آن را اصلاح کنیم.

۶. صفحه عنوان و جدول امتیازات را ایجاد کنید

بازی کار می‌کند اما چند ویژگی کلیدی برای تجربه مناسب بازی‌های آرکید را ندارد. ابتدا بیایید یک صفحه عنوان و سپس یک جدول امتیازات اضافه کنیم تا بتوانید با دوستانتان رقابت کنید! از دستورالعمل زیر استفاده کنید:

Create a title screen that displays the game logo (logo.png) over the cloud background.
The logo should be centered and occupy no more than 75% of the screen area.
The title screen should display "Press ENTER to play" (black/bold) right below the logo,
with every letter animated in a slow wavy (cosine) pattern.
Once the player presses ENTER, it should be prompted to add their name, which 
will then be recorded to populate the leaderboard at the end of the round.

Once the game is over, play the animated leaderboard with the top 10 highest scores.
The animated leaderboard should render entries one by one up to 10 entries, 
using a fade in effect just like old school arcade games. The leaderboard
should fade out to the title screen after 15 seconds.

Please note that name entry should be processed independently of the play state
key handlers (e.g. pressing A during name entry should not toggle accessibility mode).

Leaderboard scores should be saved in-memory, server-side.

داره کم کم حرفه ای تر به نظر میرسه! 🙂

۷. بازی را روی Cloud Run اجرا کنید

بالاخره وقت آن رسیده که ساخته‌ی خود را با دنیا به اشتراک بگذاریم! ما کل برنامه را روی Google Cloud Run مستقر خواهیم کرد تا بتوانیم از هر جایی به آن دسترسی داشته باشیم.

Use the gcloud CLI to provision and deploy the Go web server and its assets to 
Google Cloud Run. Provide the live URL when complete.

از آنجایی که بازی اکنون در فضای ابری (cloud) در دسترس است، عدم اجازه اجرای آن بر روی دستگاه‌های تلفن همراه، یک فرصت از دست رفته خواهد بود. می‌توانید این کار را با استفاده از دستور زیر انجام دهید:

Now enable this game to run on mobile devices. You need to update the input system to handle "taps" as well as key presses and clicks. Since mobile devices most likely won't have a keyboard, add a virtual keyboard to the name entry screen and a confirmation button to the name entry.

Finally, generate a QR code for the CloudRun link and display it on the screen so that people can scan it to access the mobile version and compete against their friends for the high score.

بازی را دوباره روی مرورگر خود اجرا کنید. سعی کنید از طریق یک دستگاه تلفن همراه نیز به URL دسترسی پیدا کنید (شاید بخواهید برای ساده‌تر کردن این تجربه، یک کد QR ایجاد کنید).

۸. از مرورگر ایجنت برای تست بازی استفاده کنید

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

برای انجام این کار، ما از subagent مرورگر استفاده خواهیم کرد. در Antigravity، یک subagent یک شخصیت ایزوله با یک context جدید است که برای کارهایی که نمی‌خواهید context فعلی روی نتایج تأثیر بگذارد یا زمانی که می‌خواهید از "آلوده شدن" پنجره context اصلی توسط task جلوگیری کنید، ایده‌آل است.

عامل مرورگر یک عامل داخلی ویژه برای وظایف مرتبط با مرورگر است. لطفاً توجه داشته باشید که فقط برای این مرحله باید از برنامه دسکتاپ Antigravity استفاده کنیم زیرا عامل مرورگر در حال حاضر در خط فرمان در دسترس نیست.

برنامه دسکتاپ Antigravity خود را باز کنید و یک مکالمه جدید در پروژه Cloud Crush شروع کنید:

۳۲۴c۷b۸۶۳۳dc۴۶d۹.png

شما می‌توانید با تایپ کردن /browser و به دنبال آن این اعلان، sub-agent مرورگر را فعال کنید:

Go to http://localhost:8080 and capture screenshots of the following game screens:
1. Title Screen (initial state: "PRESS ENTER TO PLAY")
2. Name Entry Screen (press Enter to reach this screen)
3. Main Gameplay Screen (type a name like "PLAYER" and press Enter to start)
4. Leaderboard Screen (let the game timer run out to view the high scores)

این رویکرد به ما اجازه می‌دهد تا از اسکرین‌شات‌ها برای اصلاح عناصری از رابط کاربری استفاده کنیم که در غیر این صورت توصیف آنها فقط در قالب متن دشوار است.

شما می‌توانید با استفاده از نماد "@" و به دنبال آن نام فایل، به فایل‌ها ارجاع دهید. برای مثال، در اینجا از عامل می‌خواهم که اندازه لوگو را در صفحه عنوان افزایش دهد:

5c18bde16b58fc8.png

اگرچه این مثال کمی ساختگی است زیرا مدل لزوماً نیازی به "دیدن" تصویر برای اعمال اصلاح ۵۰٪ در اندازه ندارد، اما یک تکنیک مفید برای انجام تنظیمات رابط کاربری است که در آن توصیف مشکل به صورت متنی دشوارتر است. همچنین به عامل اجازه می‌دهد تا با گرفتن اسکرین‌شات قبل و بعد، کار خود را تأیید کند، بنابراین این ترفند را در جعبه ابزار خود داشته باشید.

۹. یک عامل سفارشی برای ایمن‌سازی بازی ایجاد کنید

یکی از نگرانی‌های رایج در مورد برنامه‌های "vibe-coded" این است که چگونه کیفیت بالا و بهترین شیوه‌ها را از هر دو دیدگاه کدنویسی و امنیتی حفظ کنند. در حالی که می‌توانید سعی کنید دستورالعمل‌های خود را بهبود بخشید تا در هر دو جنبه بسیار دقیق باشند، هرچه بیشتر به یک دستورالعمل اضافه کنید، عامل کمتر متمرکز خواهد بود، که اغلب منجر به نتایج غیربهینه می‌شود.

برای این نوع سناریو، استفاده از subagentها ایده‌آل است، زیرا می‌توانند کاملاً روی وظیفه‌ای که به آنها محول می‌کنید متمرکز شوند. بیایید یک agent سفارشی ایجاد کنیم تا یک ممیزی امنیتی روی این کد انجام دهد و مطمئن شود که هنگام استقرار این بازی، هیچ اعتبارنامه‌ای فاش نمی‌شود یا خودمان را در معرض خطرات غیرضروری قرار نمی‌دهیم.

این دستور، مبنای خوبی برای عامل فراهم می‌کند:

create a new subagent called "security_auditor" using the following instructions:

You are a ruthless Security Auditor. Your job is to analyze code for potential vulnerabilities.

Focus on:
1.  SQL Injection
2.  XSS (Cross-Site Scripting)
3.  Hardcoded credentials
4.  Unsafe file operations

When you find a vulnerability, explain it clearly and suggest a fix. Do not fix it yourself; just report it.

توجه داشته باشید که Antigravity از ابزار "DefineSubagent" برای ایجاد عامل جدید استفاده خواهد کرد:

63cde28b749d4e81.png

از نماینده بخواهید که با استفاده از دستور زیر، بررسی امنیتی روی کد بازی انجام دهد:

Run the security auditor agent in this code

شما باید چیزی شبیه به این را ببینید:

5563a8169e106701.png

پس از اتمام وظیفه توسط اپراتور، گزارشی مانند این را مشاهده خواهید کرد:

6df39e15635a7cd7.png

بیایید از Antigravity بخواهیم که آنها را برای ما درست کند 🙂:

Fix these findings for me please!

و اما:

۹۳a۳۳۳۱df۸۰a۷d۷f.png

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

۱۰. نتیجه‌گیری

تبریک! شما با موفقیت از Antigravity CLI برای ساخت، استقرار، آزمایش و ممیزی یک بازی آرکید استفاده کردید و گردش‌های کاری پیشرفته agentic را از چارچوب‌بندی اولیه تا استقرار نشان دادید.

تمیز کردن

برای جلوگیری از هزینه‌های مداوم برای حساب Google Cloud خود، منابع ایجاد شده در طول این codelab را حذف کنید.

  1. سرویس Cloud Run را حذف کنید:
I'm finished with this project. Delete the cloud run deployment.
  1. حذف دایرکتوری پروژه:
cd .. && rm -rf codelab-match3

از طرف دیگر، اگر پروژه Google Cloud صرفاً برای این آزمایشگاه کد ایجاد شده باشد، می‌توانید کل آن را حذف کنید.

مراحل بعدی

شما می‌توانید سفر یادگیری خود را با کاوش در سایر آزمایشگاه‌های کد در این پلتفرم ادامه دهید، یا خودتان Cloud Crush را بهبود ببخشید، فقط فراموش نکنید که پس از اتمام کار با منابع، آنها را پاک کنید!

کدنویسی خوبی داشته باشید!