১. ভূমিকা
এই কোডল্যাবে, আপনি জেমিনি ৩ এবং আমাদের কমান্ড লাইন কোডিং এজেন্ট জেমিনি সিএলআই ব্যবহার করে ক্লাউডক্রাশ নামক একটি ম্যাচ ৩ আর্কেড গেম তৈরি করবেন। গেমটি গো (Go) ভাষায় লেখা হবে এবং ক্লাউড রান ব্যবহার করে গুগল ক্লাউডে ডেপ্লয় করা হবে।
এই কোডল্যাবের মূল লক্ষ্য হলো, নিজে হাতে কোড লেখার পরিবর্তে আপনার জন্য অ্যাপ্লিকেশন তৈরি করতে এজেন্টকে পরিচালনা করার দক্ষতা অর্জন করা। আপনি সমস্ত ডেভেলপমেন্টের কাজ Gemini CLI-কে অর্পণ করবেন, এমনকি যদি আপনি আগে এই প্রযুক্তিগুলো ব্যবহার না করেও থাকেন।
এই কোডল্যাবটি সেইসব মধ্যবর্তী স্তরের ডেভেলপারদের জন্য, যারা এজেন্টিক কোডিং ওয়ার্কফ্লো শিখতে আগ্রহী। এই ল্যাবটির আনুমানিক মোট সময়কাল ৬০ মিনিট । এই কোডল্যাবে তৈরি রিসোর্সগুলোর মূল্য ব্যবহার-ভিত্তিক।
আপনি যা করবেন
- Go এবং Ebitengine ফ্রেমওয়ার্ক ব্যবহার করে ম্যাচ-৩ গেমের মূল লজিকটি তৈরি করুন।
- ওয়েবঅ্যাসেম্বলি (WASM) ব্যবহার করে গেমটিকে ওয়েব ব্রাউজারে চালানোর উপযোগী করে তুলুন।
- গেমটি এবং এর হাই-স্কোর এপিআই ক্লাউড রান- এ ডেপ্লয় করুন।
- টেস্টিং এবং কোড পর্যালোচনার জন্য বিশেষায়িত সাব-এজেন্ট ও এক্সটেনশনসমূহ পরিচালনা করুন।
পূর্বশর্ত
- প্রোগ্রামিং ভাষা সম্পর্কে প্রাথমিক জ্ঞান
- ক্লাউড অবকাঠামোর প্রাথমিক জ্ঞান
- গুগল ক্লাউড কনসোল সম্পর্কে প্রাথমিক জ্ঞান
আপনি যা শিখবেন
- কোডিং এজেন্টের সাহায্যে কীভাবে জটিল অ্যাপ্লিকেশন তৈরি করা যায়
- বহুমাত্রিক প্রেক্ষাপটে মিথুন রাশির সাথে কীভাবে কাজ করবেন
- Cloud Run ব্যবহার করে কীভাবে ক্লাউডে অ্যাপ্লিকেশন স্থাপন করবেন
আপনার যা যা লাগবে
এই ওয়ার্কশপটি ক্লাউড শেল ব্যবহার করে সম্পূর্ণভাবে ক্লাউডে করা যেতে পারে, কিন্তু আপনি যদি আপনার লোকাল মেশিন ব্যবহার করতে পছন্দ করেন তবে আপনার নিম্নলিখিত জিনিসগুলির প্রয়োজন হবে:
- জেমিনি সিএলআই। geminicli.com- এ দেওয়া নির্দেশাবলী অনুসরণ করে এটি ডাউনলোড ও ইনস্টল করুন।
- গো টুলচেইন (সংস্করণ ১.২৬ বা উচ্চতর)। go.dev- এ দেওয়া নির্দেশাবলী অনুসরণ করে এটি ডাউনলোড ও ইনস্টল করুন।
- গুগল ক্লাউডের সাথে সংযোগ স্থাপনের জন্য gcloud CLI ব্যবহার করুন। গুগল ক্লাউড ডকুমেন্টেশনে দেওয়া নির্দেশাবলী অনুসরণ করে এটি ডাউনলোড ও ইনস্টল করুন।
- একটি গুগল ক্লাউড বিলিং অ্যাকাউন্ট (ক্লাউডে গেমটি স্থাপন করার জন্য)
মূল প্রযুক্তি
আমরা যে প্রযুক্তিগুলো ব্যবহার করব সে সম্পর্কে আরও তথ্য এখানে পেতে পারেন:
- জেমিনি সিএলআই : উন্নয়ন এজেন্ট
- জেমিনি ৩ : আমাদের অগ্রণী বৃহৎ ভাষা মডেলের সর্বশেষ সংস্করণ
২. পরিবেশ সেটআপ
প্রজেক্ট সেটআপ
একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন
- গুগল ক্লাউড কনসোলের প্রজেক্ট সিলেক্টর পেজে, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন ।
- আপনার ক্লাউড প্রোজেক্টের জন্য বিলিং চালু আছে কিনা তা নিশ্চিত করুন। কোনো প্রোজেক্টে বিলিং চালু আছে কিনা তা কীভাবে পরীক্ষা করবেন, তা জেনে নিন।
ক্লাউড শেল শুরু করুন
ক্লাউড শেল হলো গুগল ক্লাউডে চালিত একটি কমান্ড-লাইন পরিবেশ, যা প্রয়োজনীয় টুলস সহ আগে থেকেই লোড করা থাকে।
- Google Cloud কনসোলের শীর্ষে থাকা Activate Cloud Shell-এ ক্লিক করুন।
- ক্লাউড শেলে সংযুক্ত হওয়ার পর, আপনার প্রমাণীকরণ যাচাই করুন:
gcloud auth list - আপনার প্রজেক্টটি কনফিগার করা হয়েছে কিনা তা নিশ্চিত করুন:
gcloud config get project - আপনার প্রজেক্টটি প্রত্যাশা অনুযায়ী সেট করা না থাকলে, এটি সেট করুন:
export PROJECT_ID=<YOUR_PROJECT_ID> gcloud config set project $PROJECT_ID
৩. প্রজেক্ট সেটআপ
প্রজেক্ট ডিরেক্টরি তৈরি করুন
প্রথমে, আপনার প্রোজেক্টের জন্য একটি নতুন ডিরেক্টরি তৈরি করতে হবে। আপনার টার্মিনালে নিম্নলিখিত কমান্ডগুলো চালান:
mkdir -p codelab-match3 && cd codelab-match3
জেমিনি সিএলআই চালু করুন
প্রথমে, Gemini CLI সঠিকভাবে ইনস্টল হয়েছে কিনা তা যাচাই করে নেওয়া যাক। আপনার টার্মিনালে এটি চালান:
gemini --version
আপনার এইরকম কিছু দেখা উচিত:
$ gemini --version 0.37.1
এখন gemini কমান্ডটি দিয়ে Gemini CLI চালু করুন।
gemini
আপনি Gemini CLI প্রম্পটটি দেখতে পাবেন:

আপনি যদি Gemini CLI প্রম্পট দেখতে পান, তাহলে আর কোনো সমস্যা নেই। যদি না দেখতে পান, তাহলে আগের সেটআপ ধাপগুলোর কোনোটি বাদ পড়েছে কিনা তা পুনরায় যাচাই করুন।
মডেল স্টিয়ারিং সক্ষম করুন
মডেল স্টিয়ারিং এমন একটি ফিচার যা এজেন্ট কোনো নির্দিষ্ট কাজ করার সময়েই তাতে অতিরিক্ত প্রাসঙ্গিক তথ্য যোগ করার সুযোগ দেয়। এজেন্টকে ভুল পথে যেতে দেখলে তাকে সঠিক পথে ফিরিয়ে আনতে, এজেন্টের প্রতিক্রিয়া উন্নত করার জন্য স্পষ্টকারী তথ্য যোগ করতে, অথবা মূল নির্দেশনায় বাদ পড়া ছোটখাটো ফিচারগুলো অন্তর্ভুক্ত করতে আপনি এটি ব্যবহার করতে পারেন।
মডেল স্টিয়ারিং সক্রিয় করতে, /settings কমান্ড ব্যবহার করে সেটিংস মেনু খুলুন এবং সার্চ বক্সে "steering" টাইপ করুন। তারপর Enable Model Steering অপশনটি true-তে সেট করুন।

পরিবর্তনটি কার্যকর করার জন্য আপনাকে CLI পুনরায় চালু করতে হতে পারে ("r" কী টিপে)।
সম্পদগুলি ডাউনলোড করুন
আমাদের গেমে ব্যবহৃত ছবিগুলো ডাউনলোড করতে হবে। ফাইলগুলো গিটহাবের এই রিপোজিটরিতে সংরক্ষিত আছে। আপনি নিজে থেকে সেগুলো ডাউনলোড করতে পারেন অথবা, নিচের প্রম্পটটি ব্যবহার করে জেমিনিকে আপনার হয়ে কাজটি করে দিতে বলতে পারেন:
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
৪. প্ল্যান মোড এবং মডেল স্টিয়ারিং ব্যবহার করে গেমটি তৈরি করুন।
প্রথমে মূল ম্যাচ-৩ গেম লজিক তৈরি করে শুরু করুন। যেহেতু এটি একটি জটিল কাজ, তাই এর উন্নয়ন কার্যক্রম সুষ্ঠুভাবে পরিচালনার জন্য প্ল্যান মোডে জেমিনি সিএলআই (Gemini CLI) ব্যবহার করাই শ্রেয়।
Gemini CLI প্রম্পটে স্ল্যাশ কমান্ড /plan ব্যবহার করে প্ল্যান মোড টগল করুন:
/plan
প্ল্যান মোড চালু থাকা অবস্থায়, নিম্নলিখিত প্রম্পটটি কপি করে Gemini 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.
প্ল্যানটি তৈরি করার আগে জেমিনি সিএলআই আপনাকে কিছু স্পষ্টীকরণমূলক প্রশ্ন জিজ্ঞাসা করতে পারে।
উদাহরণস্বরূপ, এখানে জিজ্ঞাসা করা হচ্ছে যে আপনি একটি একক ফাইল নাকি একাধিক ফাইলের অ্যাপ্লিকেশন পছন্দ করেন:

আর এখানে অ্যানিমেশনের ব্যাপারে আমাদের পছন্দ জানতে চাওয়া হচ্ছে:

শেষ প্রশ্নটি হলো go:embed ব্যবহার করে অ্যাসেটগুলোকে সরাসরি বাইনারির মধ্যে এমবেড করা নিয়ে।

সব প্রশ্নের উত্তর দেওয়ার পর, জমা দেওয়ার জন্য এন্টার চাপার আগে আপনাকে শেষবারের মতো সেগুলো পর্যালোচনা করার সুযোগ দেওয়া হয়।

পরিকল্পনাটি তৈরি হয়ে গেলে আপনাকে এটি পর্যালোচনা করার জন্য বলা হবে:

রিভিউ বক্সের নিচে পরিকল্পনাটি যেমন আছে তেমনভাবে গ্রহণ করার অথবা আমাদের মতামত যোগ করার বিকল্প রয়েছে।

এই সুযোগটি ব্যবহার করে এমন একটি নতুন প্রয়োজনীয়তা যোগ করুন যা মূল নির্দেশনায় বাদ পড়েছিল:
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.
বাস্তবায়ন পরিকল্পনাটি নিশ্চিত করার জন্য আপনাকে শেষবারের মতো অনুরোধ করা হবে:

এজেন্টকে কাজটি শুরু করার জন্য এন্টার চাপুন। এজেন্ট এখন প্ল্যান মোড থেকে বেরিয়ে কোড লেখা শুরু করবে।
এই পর্যায়ে, সাধারণত বাস্তবায়নে কোনো পরিবর্তন আনতে চাইলে আমাদের এটির শেষ হওয়ার জন্য অপেক্ষা করতে হতো অথবা ESC কী চেপে এটিকে থামাতে হতো, কিন্তু যেহেতু আমাদের মডেল স্টিয়ারিং সক্রিয় করা আছে, আমরা মডেলটিকে সঠিক পথে চালনা করার জন্য নির্দেশাবলী সারিবদ্ধ করতে পারি।
এজেন্টটি কাজ করার সময়, 'মডেল স্টিয়ারিং' সক্ষমতা প্রদর্শন করতে এজেন্ট চ্যাট উইন্ডোতে নিম্নলিখিতটি পেস্ট করুন, যা দেখাবে কীভাবে আপনি ইমপ্লিমেন্টেশনকে পিভট করার জন্য কমান্ড কিউ করতে পারেন:
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.
আপনি দেখবেন এই প্রম্পটটি একটি 'স্টিয়ারিং ইঙ্গিত' হিসাবে সারিবদ্ধ করা হয়েছে:

পরিকল্পনাটি গ্রহণ করুন এবং এজেন্টকে আপনার সমস্ত প্রয়োজনীয়তা বাস্তবায়ন করতে দেখুন।
এজেন্ট যখন ইমপ্লিমেন্টেশনের কাজ শেষ করবে, তখন ডেস্কটপ ভার্সনটি ডেমো করার জন্য প্রজেক্ট ফোল্ডারে go run main.go চালান। এই কমান্ডটি চালানোর জন্য আপনাকে Gemini CLI থেকে বের হতে হবে না। শেল মোডে প্রবেশ করতে `!` (বিস্ময়সূচক চিহ্ন) টাইপ করুন এবং সেখান থেকে কমান্ডটি চালান:

শেল মোডে চালানোর সুবিধা হলো, এতে যে কোনো সমস্যা দেখা দিলে তা এজেন্টের প্রেক্ষাপটে তাৎক্ষণিকভাবে ধরা পড়ে। উদাহরণস্বরূপ, এই ক্ষেত্রে এজেন্ট কিছু নির্ভরতা ডাউনলোড করতে ভুলে গেছে:

আপনি এস্কেপ কী চেপে শেল মোড থেকে বেরিয়ে আসতে পারেন এবং তারপরে এজেন্টকে ত্রুটিটি পরীক্ষা ও সমাধান করতে বলতে পারেন:

সফল ফলাফলটি দেখতে এইরকম হবে:

গেমটি খেলে দেখুন এবং এর প্যারামিটারগুলো সূক্ষ্মভাবে সমন্বয় করতে থাকুন যতক্ষণ না আপনি অভিজ্ঞতাটিতে সন্তুষ্ট হচ্ছেন (যেমন: অ্যানিমেশনটি দ্রুত বা ধীর করা, কমান্ডের প্রতি এর প্রতিক্রিয়া সামঞ্জস্য করা, ইত্যাদি)।
৫. গেমটিকে ওয়েব ব্রাউজারে চালানোর উপযোগী করে তুলুন।
আপনি এইমাত্র যে Ebitengine গেমটি তৈরি করেছেন, সেটি একটি ডেস্কটপ অ্যাপ্লিকেশন। এটিকে ওয়েবে চালানোর উপযোগী করতে, আমরা এটিকে WebAssembly-তে রূপান্তর করতে পারি।
এজেন্টকে নির্দেশনা দিতে নিম্নলিখিত নির্দেশটি ব্যবহার করুন:
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.
এজেন্টটি কাজটি সম্পন্ন করার পর, আপনি তাকে ব্যাকগ্রাউন্ডে গেম সার্ভারটি চালানোর নির্দেশ দিতে পারেন।

আপনি Ctrl+B কী-সংমিশ্রণ ব্যবহার করে ব্যাকগ্রাউন্ড প্রসেসগুলি পরিচালনা করতে পারেন:

এই উইন্ডোটি বন্ধ করতে আবার Ctrl+B চাপুন।
এখন ওয়েবে গেমটি চলতে দেখতে আপনার ব্রাউজারে http://localhost:8080 খুলুন:

এখন যেহেতু আপনি এটি ওয়েবে চালু করে ফেলেছেন, ক্লাউডে স্থাপন করার আগে এটিকে শুধু চূড়ান্ত রূপ দেওয়ার সময় এসেছে।
৬. টাইটেল স্ক্রিন ও লিডারবোর্ড তৈরি করুন
গেমটি কাজ করে, কিন্তু একটি যথাযথ আর্কেড অভিজ্ঞতার জন্য এতে কয়েকটি গুরুত্বপূর্ণ ফিচারের অভাব রয়েছে। প্রথমে একটি টাইটেল স্ক্রিন যোগ করা যাক এবং তারপর একটি লিডারবোর্ড যোগ করা যাক, যাতে আপনি আপনার বন্ধুদের সাথে প্রতিযোগিতা করতে পারেন!
নিম্নলিখিত নির্দেশাবলী অনুসরণ করে উভয় সমস্যা সমাধান করুন:
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).
এখানে টাইটেল স্ক্রিনের একটি উদাহরণ দেওয়া হলো:

এটা এখন দেখতে আরেকটু পেশাদারী লাগছে! 🙂
৭. গেমটি ক্লাউড রানে স্থাপন করুন।
অবশেষে আমাদের সৃষ্টিটি বিশ্বের সাথে ভাগ করে নেওয়ার সময় এসেছে! যেকোনো জায়গা থেকে এটি অ্যাক্সেস করতে গেমটি গুগল ক্লাউড রান-এ ডেপ্লয় করুন।
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.
যেহেতু গেমটি এখন ক্লাউডে লাইভ আছে, তাই এটিকে মোবাইল ডিভাইসে চালানোর সুযোগ না দেওয়াটা একটা বড় সুযোগ হাতছাড়া করার শামিল হবে। আপনি নিম্নলিখিত প্রম্পটটি অনুসরণ করে এটি করতে পারেন:
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 button to generate a random name and
a confirmation button to the name entry.
Also 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.
আপনার ব্রাউজারে গেমটি আবার চালান। কিউআর কোড ব্যবহার করে মোবাইল ডিভাইস থেকেও গেমটি অ্যাক্সেস করার চেষ্টা করুন।
৮. গেমটি পরীক্ষা করার জন্য ব্রাউজার এজেন্ট ব্যবহার করুন।
জেমিনি সিএলআই-তে, একজন সাব-এজেন্ট হলো একটি বিচ্ছিন্ন পার্সোনা যার একটি নতুন প্রেক্ষাপট থাকে, যা দীর্ঘমেয়াদী এবং/অথবা উচ্চ নির্ভুলতার কাজগুলির জন্য আদর্শ, যেখানে আপনি চান না যে বর্তমান প্রেক্ষাপট ফলাফলকে প্রভাবিত করুক।
প্রচলিত টেস্টিং টুল (যেমন ইউনিট এবং ইন্টিগ্রেশন টেস্ট) দিয়ে গেম পরীক্ষা করা স্বাভাবিকভাবেই কঠিন, কিন্তু আমরা আমাদের হয়ে কিছু পরীক্ষা করার জন্য ব্রাউজার এজেন্ট ব্যবহার করতে পারি। ব্রাউজার এজেন্ট তার নিজস্ব ক্রোম ব্রাউজার চালু করতে সক্ষম এবং এটি DOM কমান্ড জারি করে গেমের স্ক্রিনগুলোতে নেভিগেট করবে। এটির স্ক্রিনশট নেওয়ার ক্ষমতাও রয়েছে, যা আমরা পরীক্ষাটি নথিভুক্ত করতে ব্যবহার করতে পারি এবং পরবর্তীতে UI-তে ছোটখাটো পরিবর্তন আনার জন্য এজেন্টকে ফেরতও দিতে পারি।
ব্রাউজার এজেন্টটি বর্তমানে পরীক্ষামূলক পর্যায়ে রয়েছে, তাই আমাদের প্রথমে এটি সক্রিয় করতে হবে। প্রজেক্ট লেভেলে এজেন্টটি সক্রিয় করতে Gemini CLI-তে এই প্রম্পটটি দিন।
Create a .gemini/settings.json file with the following content to
configure the browser sub agent:
{
"agents": {
"overrides": {
"browser_agent": {
"enabled": true
}
}
}
}
এই পরিবর্তনটি কার্যকর করার জন্য আপনাকে এজেন্টটি পুনরায় চালু করতে হবে। /chat save কমান্ড ব্যবহার করে বর্তমান কথোপকথনটি সংরক্ষণ করুন:

দুইবার Ctrl+D চেপে Gemini CLI বন্ধ করুন এবং আবার চালু করুন। /chat resume cloud-crush দিয়ে কথোপকথনটি পুনরুদ্ধার করুন।
এখন আপনার ব্রাউজার এজেন্টে অ্যাক্সেস থাকার কথা। যখনই আপনি ব্রাউজার এজেন্টকে কোনো কাজ অর্পণ করতে চাইবেন, তখন @browser_agent দিয়ে তা উল্লেখ করতে পারেন।

এখন ব্রাউজার এজেন্ট ব্যবহার করে আমাদের ডেপ্লয় করা গেমটির একটি মূল্যায়ন করুন:
@browser_agent perform an end-to-end test of the Cloud Run deployment URL.
Navigate the homepage, start a game, submit a score, and verify the new score
appears correctly on the leaderboard. Take screenshots to show each step of the
investigation and save to ./screenshots.
আপনি নিশ্চিতকরণ স্ক্রিনটি দেখতে পাবেন:

একবার আপনি এজেন্ট এবং প্রয়োজনীয় সরঞ্জামগুলিতে সম্মতি দিলে, একটি নতুন ক্রোম ব্রাউজার উইন্ডো খুলে যাবে। এই ব্রাউজারটি এজেন্ট দ্বারা নিয়ন্ত্রিত হয়। এর দৃশ্যমান ইঙ্গিত হবে স্ক্রিনের নীল বর্ডার এবং নীচে থাকা "Gemini CLI is controlling this browser" বার্তাটি।

কাজটি সম্পন্ন হলে এটি এইরকম একটি বার্তা প্রদর্শন করবে:

এখানে ব্রাউজার এজেন্ট দ্বারা নেওয়া কয়েকটি স্ক্রিনশট দেওয়া হলো:
title_screen.png:

গেম_বোর্ড.png:

এখন এজেন্টের তোলা ছবিগুলোর মধ্যে একটি ব্যবহার করে গেমের UI অপ্টিমাইজ করার উপযুক্ত সময়। উদাহরণস্বরূপ, আপনি বলতে পারেন:
Analyse the screenshot @screenshots/game_board.png and adjust the side panel to
have better contrast and be more harmonic with the rest of UI elements. Focus
on readability and color theory to achieve the best possible visuals.
৯. গেমটি সুরক্ষিত করার জন্য একটি কাস্টম এজেন্ট তৈরি করুন।
"ভাইব-কোডেড" অ্যাপ্লিকেশনগুলির ক্ষেত্রে একটি সাধারণ উদ্বেগ হলো কোডিং এবং নিরাপত্তা উভয় দৃষ্টিকোণ থেকে কীভাবে উচ্চ গুণমান এবং সর্বোত্তম অনুশীলন বজায় রাখা যায়। যদিও আপনি এই উভয় দিকেই আপনার প্রম্পটগুলিকে খুব কঠোর করার চেষ্টা করতে পারেন, তবে আপনি একটি প্রম্পটে যত বেশি কিছু যোগ করবেন, এজেন্ট তত কম মনোযোগী হবে, যার ফলে প্রায়শই আশানুরূপ ফলাফল পাওয়া যায় না। এই ধরনের পরিস্থিতির জন্য, সাব-এজেন্ট ব্যবহার করা আদর্শ, কারণ তারা মূল এজেন্ট থেকে একটি পৃথক প্রেক্ষাপটে কাজ করে এবং আপনি তাদের যে কাজটি দেন তার উপর পুরোপুরি মনোনিবেশ করতে পারে। আসুন এই কোডটির উপর একটি নিরাপত্তা নিরীক্ষা করার জন্য একটি কাস্টম এজেন্ট তৈরি করি এবং নিশ্চিত করি যে ক্লাউড রানে এই গেমটি স্থাপন করার সময় আমরা কোনও ক্রেডেনশিয়াল ফাঁস করছি না বা নিজেদেরকে অপ্রয়োজনীয় ঝুঁকির মুখে ফেলছি না।
Create a new custom agent in .gemini/agents/security_auditor.md using the following content:
---
name: security_auditor
description: Specialized in finding security vulnerabilities in code.
kind: local
tools:
- read_file
- grep_search
model: gemini-3-flash-preview
temperature: 0.2
max_turns: 10
---
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.
পরিবর্তনটি কার্যকর করার জন্য আপনাকে CLI পুনরায় চালু করতে হবে। আগের মতোই /chat save দিয়ে চ্যাট সেশনটি সংরক্ষণ করুন এবং /chat resume দিয়ে এটি পুনরায় চালু করুন।
যখন CLI পুনরায় চালু হবে, তখন এটি চালুর সময় স্বয়ংক্রিয়ভাবে নতুন এজেন্টটি সনাক্ত করবে:

Acknowledge and Enable ক্লিক করুন এবং তারপর নিম্নলিখিত প্রম্পট ব্যবহার করে এজেন্টকে গেম কোডের উপর একটি নিরাপত্তা যাচাই করতে বলুন:
@security-auditor please run a security audit on this code and cloud run
deployment to make sure it is safe against common attack patterns and that it is
not leaking any credentials
আপনার এইরকম কিছু দেখা উচিত:

নিরীক্ষা সম্পন্ন করার পর এটি সুপারিশ করবে। এই উদাহরণে, এটি সংশোধনের জন্য কয়েকটি গুরুত্বপূর্ণ বিষয় খুঁজে পেয়েছে:

আপনার নজরে কোনো সমস্যা এলে, তা ঠিক করে দেওয়ার জন্য Gemini CLI-কে বলুন! 🙂
১০. উপসংহার
অভিনন্দন! আপনি সফলভাবে Gemini CLI ব্যবহার করে একটি আর্কেড গেম বিল্ড, ডেপ্লয়, টেস্ট এবং অডিট করেছেন, যা প্রাথমিক কাঠামো তৈরি থেকে শুরু করে ডেপ্লয়মেন্ট পর্যন্ত উন্নত এজেন্টিক ওয়ার্কফ্লো প্রদর্শন করে।
পরিষ্কার করা
যদি আপনি পরবর্তীতে এই কোডল্যাবে ফিরে আসার পরিকল্পনা না করেন, তবে এই কোডল্যাব চলাকালীন তৈরি করা রিসোর্সগুলো মুছে ফেলাই শ্রেয়।
- ক্লাউড রান সার্ভিসটি মুছে ফেলুন:
এটি আপনার জন্য মুছে দিতে জেমিনি সিএলআই-কে বলুন:
I'm finished with this project. Delete the cloud run deployment.
- প্রজেক্ট ডিরেক্টরিটি মুছে ফেলুন:
cd .. && rm -rf codelab-match3
বিকল্পভাবে, যদি গুগল ক্লাউড প্রজেক্টটি শুধুমাত্র এই কোডল্যাবের জন্য তৈরি করা হয়ে থাকে, তবে আপনি পুরো প্রজেক্টটিই মুছে ফেলতে পারেন।
পরবর্তী পদক্ষেপ
আপনি এই প্ল্যাটফর্মের অন্যান্য কোডল্যাবগুলো ঘুরে দেখে, অথবা নিজে থেকেই ক্লাউড ক্রাশ-এর উন্নতি সাধন করে আপনার শেখার যাত্রা চালিয়ে যেতে পারেন!
খেলাটিকে আরও উন্নত করার জন্য কয়েকটি পরামর্শ:
- একটি বিশেষ "জেমিনি" রত্ন (gemini.png ব্যবহার করে) যোগ করুন যা ৪ বা তার বেশি রত্ন মেলালে দেখা যায়। ৩ বা তার বেশি জেমিনি রত্ন মেলালে খেলোয়াড় বোনাস সময় পায়!
- সঙ্গীত যোগ করুন। আপনি জেমিনি হোমপেজে Lyria 3 ব্যবহার করে সঙ্গীত তৈরি করতে পারেন।
- শব্দ প্রভাব যোগ করুন
- অন্যান্য গেম খেলার মোড যোগ করুন
কোডিং উপভোগ করুন!