আমি এক সপ্তাহান্তেই একটি কার্ড গেম লঞ্চ করেছি
আমি Prší-এর একটি ব্রাউজার ভার্সন তৈরি করেছি। এটি একটি চেক (Czech) কার্ড গেম। এটি একটি সাধারণ AI-এর বিরুদ্ধে ১v১ গেম। আপনি মাউস বা টাচ ব্যবহার করে এটি খেলতে পারেন।
এখানে খেলুন: https://czsoftcode.github.io/prsi/
বেশিরভাগ মানুষ এটাকে 'vibe coding' বলেন। আমি এর সাথে একমত নই। 'Vibe coding'-এর অর্থ হলো আপনি একটি অ্যাপের বর্ণনা দেন এবং AI যা দেয় তা-ই গ্রহণ করে নেন। আমি ভিন্ন একটি পদ্ধতি ব্যবহার করেছি।
আমি ১০টি সুনির্দিষ্ট ধাপের মাধ্যমে বিল্ডটি সম্পন্ন করতে Claude Code ব্যবহার করেছি। প্রতিটি ধাপের একটি নির্দিষ্ট লক্ষ্য এবং যাচাইযোগ্য আউটপুট ছিল।
ধাপগুলোর মধ্যে ছিল:
- Vite এবং TypeScript scaffold সেটআপ করা
- গেম ইঞ্জিন ডেটা মডেল তৈরি করা
- মৌলিক চাল এবং বিশেষ কার্ড যোগ করা
- AI প্রতিপক্ষের লজিক তৈরি করা
- UI এবং ইন্টারঅ্যাকশন লুপ তৈরি করা
- ২০০টি এন্ড-টু-এন্ড AI সিমুলেশন চালানো
- সাইটটি ডেপ্লয় করা
পরবর্তী ধাপে যাওয়ার আগে আমি প্রতিটি ধাপ পরিকল্পনা এবং পর্যালোচনা করেছি। এতে কোড পরিষ্কার ছিল। আমি প্রায় ৩০০টি ইউনিট টেস্ট লিখেছি। যখন AI কোনো ভুল করত, আমার টেস্টগুলো তা সাথে সাথে ধরে ফেলত।
সবচেয়ে কঠিন অংশটি কোড ছিল না। সেটি ছিল গেমের নিয়মাবলী।
- Stacking sevens: খেলোয়াড়রা প্রতিপক্ষকে ৮টি কার্ড তুলতে বাধ্য করতে সর্বোচ্চ চারটি 'সেভেন' স্ট্যাক করতে পারে।
- Queen wildcards: কুইন প্রয়োজনীয় স্যুট (suit) পরিবর্তন করে দেয়। ইঞ্জিনটি যেন এটি সঠিকভাবে হ্যান্ডেল করে তা নিশ্চিত করতে হয়েছিল।
আমি কিছু প্রযুক্তিগত বাধার সম্মুখীনও হয়েছি:
- Deployment: পাথ এরর (path errors)-এর কারণে GitHub Pages-এ আমার ছবিগুলো কাজ করছিল না। Vite-এর base URL ব্যবহার করে আমি এটি ঠিক করেছি।
- Versioning: একটি রিলিজ ট্যাগ করার পর আমি
package.jsonআপডেট করতে ভুলে গিয়েছিলাম।
আমি AI-টিকে সহজ রেখেছি। এটি শুধুমাত্র বৈধ চালগুলো খেলে। লক্ষ্য ছিল একটি সঠিক AI তৈরি করা, বুদ্ধিমান নয়। গেমটি সবসময় জয় অথবা ড্র (stalemate)-তে শেষ হয় তা প্রমাণ করতে আমি ২০০টি সিমুলেটেড গেম ব্যবহার করেছি।
শুধুমাত্র 'vibes'-এর ওপর নির্ভর না করে ধাপে ধাপে তৈরির ফলে আমি এমন একটি প্রোডাক্ট লঞ্চ করতে পেরেছি যা আমি আসলে বুঝি।
উৎস: https://dev.to/stkremen/i-shipped-a-card-game-in-a-weekend-but-i-didnt-really-vibe-code-it-34g9
ঐচ্ছিক লার্নিং কমিউনিটি: https://github.com/czsoftcode/prsi
