প্রকল্প সম্পর্কে

Mobile Gaming হলো ব্রাউজার-ভিত্তিক পাজল, আর্কেড এবং সিমুলেশন গেমের একটি সংগ্রহ, যার ধারণাগুলো মোবাইল গেম বিজ্ঞাপনের শৈলী থেকে নেওয়া হয়েছে। সবকিছু ওপেন ওয়েবে চলে, যেখানে 2D গেমপ্লের জন্য Phaser 3 এবং 3D রেন্ডারিংয়ের জন্য Three.js ব্যবহৃত হয়েছে। একটি লাইভ বিল্ড mobile-gaming.pages.dev-এ প্রকাশিত হয়েছে এবং একটি গেম সিলেক্টর হাব পেজ লবি হিসেবে কাজ করে যেখান থেকে প্রতিটি গেম চালু করা যায়। এই সেটে বর্তমানে তিনটি প্রধান ভাগে মোট তেরোটি গেম রয়েছে। পাজল গেম: - Brain Teaser — ল্যাটারাল-থিংকিং পাজল যার মধ্যে ওজনের ভিত্তিতে আইটেম বাছাই করা, গোলকধাঁধায় পথ খোঁজা এবং লজিক সমস্যা রয়েছে, যাতে ১০টির বেশি হাতে তৈরি লেভেল আছে। - Water Sort — টিউবের মধ্যে ঢেলে রঙিন তরল আলাদা করার গেম, যেখানে রঙ এবং টিউবের সংখ্যা বাড়ার সাথে সাথে কঠিনতা বৃদ্ধি পায়। - Parking Escape — একটি আনব্লক-স্টাইল পাজল যেখানে লাল গাড়ির পথ পরিষ্কার করতে অন্যান্য যানবাহন সরিয়ে দিতে হয়। - Pull the Pin — ফিজিক্স-ভিত্তিক পিন পাজল যেখানে বিপদ এড়িয়ে এবং পুরস্কার সংগ্রহ করে বলগুলোকে একটি লক্ষ্যে পৌঁছে দিতে হয়। - Save the Character — মাল্টিপল-চয়েস সারভাইভাল সিনারিও যা বিচারবুদ্ধি এবং রিফ্লেক্স পরীক্ষা করে। - Bus Jam — একটি কালার-ম্যাচিং পাজল যেখানে যাত্রীদের সঠিক বাসে বাছাই করা হয়, সাথে রুট প্ল্যানিং এবং বাসের ধারণক্ষমতা পূর্ণ করার চ্যালেঞ্জ থাকে। - Merge Games — লক্ষ্য স্তরে পৌঁছানোর জন্য একই ধরণের টাইলস মার্জ করা, যার জন্য দক্ষ মার্জিং পরিকল্পনা প্রয়োজন। আর্কেড গেম: - Crowd Runner — একটি অটো-রানার যেখানে ম্যাথ গেটের মাধ্যমে ভিড় বৃদ্ধি পায় এবং বাধা এড়িয়ে বস-কে পরাজিত করতে হয়। - Bridge Race — একটি 3D অটো-রানার যাতে ব্রিজ-বিল্ডিং মেকানিক্স রয়েছে, যেখানে ব্লক সংগ্রহ করে AI প্রতিযোগীদের সাথে রেস করতে হয়। - Giant Runner — একটি 3D গ্রোথ-ফোকাসড রানার যেখানে বস যুদ্ধের জন্য পাওয়ার-আপ পেতে ম্যাচিং অরবস সংগ্রহ করতে হয়। - Jelly Shift — একটি শেপ-শিফটিং 3D রানার যেখানে দেয়ালের মধ্য দিয়ে যাওয়ার জন্য একটি জেলি ব্লব-এর আকার পরিবর্তন করতে হয়। - Makeover Run — একটি ফ্যাশন-থিমযুক্ত 3D অটো-রানার যাতে আপগ্রেড স্টেশন, স্টাইল আইটেম এবং রানওয়ে ফিনালে রয়েছে। সিমুলেশন: - Satisfying Clean — একটি সোয়াইপ-টু-ক্লিন ASMR-স্টাইল রিল্যাক্সেশন গেম। লোকালি চালানোর জন্য Node এবং npm প্রয়োজন। ডকুমেন্ট করা কমান্ডগুলো হলো ডিপেন্ডেন্সি ইনস্টল করার জন্য npm ci, ডেভেলপমেন্ট সার্ভার শুরু করতে npm run dev, প্রোডাকশন বিল্ডের জন্য npm run build এবং সেই বিল্ড প্রিভিউ করতে npm run preview। টেস্ট করার জন্য Vitest ইউনিট টেস্টের জন্য npm test, Playwright এন্ড-টু-এন্ড টেস্টের জন্য npm run test:e2e এবং লেভেল ভ্যালিডেশনের জন্য npm run test:levels ব্যবহৃত হয়। ডেভ সার্ভার http://localhost:5173/-এ লিসেন করে এবং src/games/*/ থেকে অটোমেটিক গেমগুলো খুঁজে নেয়। প্রজেক্ট স্ট্রাকচারে প্রতিটি গেম src/games-এর অধীনে নিজস্ব ডিরেক্টরিতে থাকে, যেখানে index.html, game.js, state.js, renderer.js, input.js, styles.css এবং levels.json ফাইল থাকে। একটি src/hub ডিরেক্টরিতে মূল লবি এবং সিলেক্টর থাকে এবং src/shared-এ অডিও, স্কোরিং এবং লাইফসাইকেল হ্যান্ডলিংয়ের জন্য শেয়ারড ইউটিলিটি থাকে। আলাদা levels/, public/, tests/ এবং docs/ ডিরেক্টরিগুলোতে লেভেল JSON ফাইল, স্ট্যাটিক অ্যাসেট (যেমন ম্যানিফেস্ট, সার্ভিস ওয়ার্কার এবং রিডাইরেক্ট), টেস্ট স্যুট এবং প্রজেক্ট ডকুমেন্টেশন থাকে। টেস্টিংয়ের বিষয়ে README-তে উল্লেখ আছে যে গেম লজিক, স্টেট ম্যানেজমেন্ট এবং স্কোরিং কভার করে ১২১টি ইউনিট টেস্ট ফাইল রয়েছে, সাথে মোবাইল Chrome এবং Safari-তে চালানো Playwright E2E টেস্ট রয়েছে। বান্ডেল সাইজ জাভাস্ক্রিপ্টের জন্য ৩০০০KB এবং CSS-এর জন্য ১৫০KB বাজেটের মধ্যে সীমাবদ্ধ রাখা হয়েছে এবং লেভেল ভ্যালিডেশন ধাপে প্রতিটি গেমের জন্য কমপক্ষে তিনটি লেভেল থাকা বাধ্যতামূলক। ডেপ্লয়মেন্ট প্রোডাকশন URL-এ Cloudflare Pages-এ করা হয়, যার CI/CD একটি iad-ci ক্লাস্টারে Argo Workflows দ্বারা পরিচালিত হয়। main ব্রাঞ্চে পুশ করলে অটোমেটিক বিল্ড ট্রিগার হয় এবং পর্যায়ক্রমে npm ci, npm test, npm run test:levels এবং npm run build চলে। পুনরায় ব্যবহারযোগ্য বিল্ড এবং ডেপ্লয়মেন্ট ডেফিনিশনগুলো একটি আলাদা পাবলিক GitOps রিপোজিটরি jedarden/declarative-config-এ থাকে। প্রযুক্তির পছন্দের তালিকায় রয়েছে 2D পাজল গেমের জন্য Phaser 3, 3D আর্কেড রানারদের জন্য Three.js, হট মডিউল রিপ্লেসমেন্টসহ বিল্ড টুল হিসেবে Vite, ইউনিট টেস্টিংয়ের জন্য Vitest এবং ক্রস-ব্রাউজার এন্ড-টু-এন্ড টেস্টিংয়ের জন্য Playwright। প্রজেক্টটি একটি প্রগ্রেসিভ ওয়েব অ্যাপ (PWA): অফলাইন ক্যাশিংয়ের জন্য সার্ভিস ওয়ার্কার এবং অ্যাপ ম্যানিফেস্টের মাধ্যমে এটি মোবাইল ডিভাইসে অফলাইন খেলার জন্য ইনস্টল করা যায়, এবং এর রেসপনসিভ ডিজাইন সব ধরণের স্ক্রিন সাইজের জন্য তৈরি। এটি MIT লাইসেন্সের অধীনে রিলিজ করা হয়েছে।