প্রকল্প সম্পর্কে
singedTerra হলো TypeScript-এ একদম শুরু থেকে লেখা একটি ব্রাউজার-ভিত্তিক, টার্ন-বেসড আর্টিলারি গেম, যা Wendell Hicken-এর Scorched Earth (1991)-এর প্রতি শ্রদ্ধা হিসেবে তৈরি করা হয়েছে। এটি ক্লাসিক গেমপ্লে লুপ বজায় রাখে: একটি কোণ নির্বাচন করা, বাতাসের গতি বোঝা, পাওয়ার সেট করা এবং ফায়ার করা, যেখানে ভূখণ্ডটি বিস্ফোরণের প্রভাব ধরে রাখে। এটি একটি ব্রাউজারে ২-৪ জন খেলোয়াড়ের হট-সিট ম্যাচ হিসেবে অথবা পাবলিক এবং প্রাইভেট Supabase রুমের মাধ্যমে অনলাইনে খেলা সম্ভব।
মূল মেকানিক্স: ভূখণ্ডটি একটি পিক্সেল-ভিত্তিক বিটম্যাপ; বিস্ফোরণ প্রকৃত গর্ত তৈরি করে, অসমর্থিত মাটি ধসে পড়ে, ট্যাঙ্কগুলো গর্তে বসে যায় এবং মাটি-নির্ভর অস্ত্র দিয়ে নতুন কভার তৈরি করা যায়। প্রতিটি রাউন্ড সিডেড (seeded) এবং প্রতিটি টার্নে একটি ডিটারমিনিস্টিক উইন্ড ভেক্টর থাকে, যাতে প্রতিটি ক্লায়েন্ট একই ফ্লাইট পাথ পায়। ১৬টি অস্ত্র সরাসরি ফায়ার, এয়ারবার্স্ট, বাউন্সিং এক্সপ্লোসিভ, নেপাম, ভূখণ্ড নির্মাণ, টানেলিং এবং ডিফেন্সের কাজ করে। মুভমেন্টের জন্য ফুয়েল খরচ হয় এবং ড্যামেজ থেকে ক্রেডিট অর্জিত হয়, যা মাল্টি-রাউন্ড ম্যাচে অ্যামো, শিল্ড, ব্যাটারি এবং ফুয়েলের মধ্যে ভাগ করে নিতে হয়। প্রেজেন্টেশনে রয়েছে কাস্টম ট্যাঙ্ক, গোধূলির যুদ্ধক্ষেত্র, ব্যালিস্টিক ইনস্ট্রুমেন্ট, ইমপ্যাক্ট লাইটিং, স্ক্রিন শেক এবং সিন্থেসাইজড অডিও।
ট্যাঙ্ক গ্যারেজ: প্রতিটি সিটের জন্য একটি গ্যারেজ রয়েছে: খেলোয়াড়রা Foundry, Ranger, Bulwark অথবা Jackal চেসিস থেকে শুরু করে মোবিলিটি, হাল, টারেট এবং ব্যারেল পার্টস মিলিয়ে একটি কাস্টম সিলুয়েট তৈরি করতে পারে, যা রোস্টার প্রিভিউতে প্রদর্শিত হয় এবং ম্যাচে ব্যবহৃত হয়।
মোড এবং নেটকোড: কম্পিউটার-নিয়ন্ত্রিত সিটগুলো মানুষের মতো একই ডিটারমিনিস্টিক ফিজিক্স ব্যবহার করে এবং হট-সিট ও অনলাইন মোডের ফিজিক্সে কোনো পার্থক্য নেই। হট-সিট মোড HotSeatClient-এর মাধ্যমে সরাসরি ব্রাউজারে শেয়ারড ইঞ্জিন চালায়। অনলাইন প্লে-র জন্য প্রতিটি ব্রাউজার ইঞ্জিনের নিজস্ব কপি চালায়: Supabase রুম অ্যাকশন যাচাই করে, সিকোয়েন্স নম্বর বরাদ্দ করে, অর্ডারড লগ সংরক্ষণ করে এবং Realtime-এর মাধ্যমে কমিটেড রো-গুলো ব্রডকাস্ট করে। অনলাইন ম্যাচের মূল ভিত্তি হলো একটি সিড এবং একটি অর্ডারড অ্যাকশন লগ; গেম স্টেট কোনো সার্ভার থেকে স্ট্রিম করার পরিবর্তে লোকালি পুনর্গঠিত হয়, যা ফিক্সড টাইমস্টেপ, সিডেড র্যান্ডমনেস এবং রিপ্লে প্যারিটিকে ডিজাইনের অংশ করে তোলে।
কন্ট্রোল: অ্যারো কি দিয়ে ব্যারেলের লক্ষ্য নির্ধারণ এবং পাওয়ার বাড়ানো-কমানো যায়; A এবং D দিয়ে মুভমেন্ট এবং ফুয়েল খরচ করা হয়; Q দিয়ে অস্ত্র পরিবর্তন করা হয়; Space বা Enter দিয়ে ফায়ার বা শিল্ড সক্রিয় করা হয়; G দিয়ে ট্রাজেক্টরি গাইডেন্স টগল করা হয়; M দিয়ে সিন্থেসাইজড অডিও মিউট বা রিস্টোর করা হয়; F চেপে ধরে বর্তমান শটটি লোকালি ফাস্ট-ফরোয়ার্ড করা যায়। টাচ লেআউটে কিবোর্ডের পরিবর্তে একটি কমান্ড ডেক থাকে যা Aim, Power এবং Drive নিয়ন্ত্রণ করে, আর Weapon এবং Menu ইউটিলিটি হিসেবে থাকে এবং Fire, Store, fuel এবং Arsenal ট্যাকটিক্যাল রেইলে থাকে। ডেস্কটপে, সক্রিয় ট্যাঙ্ক থেকে বাইরের দিকে ড্র্যাগ করে ফায়ার না করেই অ্যাঙ্গেল এবং পাওয়ার সেট করা যায়।
চালানো এবং যাচাইকরণ: এই প্রজেক্টের জন্য Node 24.15 বা তার পরবর্তী Node 24 LTS লাইন এবং npm প্রয়োজন; npm install এবং npm run dev কমান্ডের মাধ্যমে localhost:5173-এ Vite ক্লায়েন্ট চালানো যায় এবং হট-সিট প্লে-র জন্য কোনো ব্যাকএন্ড কনফিগারেশনের প্রয়োজন নেই। অনলাইন প্লে-র জন্য client/.env ফাইলে VITE_SUPABASE_URL এবং VITE_SUPABASE_ANON_KEY প্রয়োজন; anon key পাবলিক ক্লায়েন্টে থাকে, তবে Row-Level Security এবং Edge Function ভ্যালিডেশন সার্ভার-সাইড ডেটা সুরক্ষিত রাখে। যাচাইকরণ কমান্ডগুলোর মধ্যে রয়েছে npm run check (টাইপচেক এবং ডিটারমিনিস্টিক ইঞ্জিন হারনেস), npm run test:client (Vitest ক্লায়েন্ট এবং DOM টেস্ট), npm run check:edge (Supabase Edge Functions-এর জন্য Deno টেস্ট), npm run test:e2e (প্রোডাকশন Chromium লেআউট এবং গেমপ্লে চেক) এবং npm run build। CI প্রতিটি পুল রিকোয়েস্টে একই কোর গেট চালায় এবং shared/src/engine/-এর পরিবর্তনগুলো ডিটারমিনিস্টিক রিপ্লে বজায় রাখতে হয়।
রিপোজিটরি লেআউট এবং ডকুমেন্টেশন: client/ ফোল্ডারে Vite অ্যাপ, Canvas রেন্ডারার, HTML HUD, ইনপুট এবং লবি থাকে; shared/ ফোল্ডারে ডিটারমিনিস্টিক ইঞ্জিন, রিপ্লে লজিক এবং শেয়ারড টাইপ থাকে; supabase/ ফোল্ডারে Postgres মাইগ্রেশন এবং স্টেটলেস Edge Function রেফারি থাকে; scripts/checks/ ফোল্ডারে ডিটারমিনিস্টিক ইঞ্জিন এবং কন্ট্রাক্ট হারনেস থাকে; e2e/ ফোল্ডারে প্রোডাকশন-ব্রাউজার গেমপ্লে এবং লেআউট গার্ডরেল থাকে; docs/ ফোল্ডারে প্লেয়ার, আর্কিটেকচার, ডেভেলপমেন্ট এবং প্রজেক্ট রেকর্ড থাকে। ডকুমেন্টেশনে খেলা, আর্কিটেকচার, ডেভেলপমেন্ট এবং অপারেশন, UI সিস্টেম এবং বর্তমান স্পেসিফিকেশন কভার করা হয়েছে। প্রজেক্টটি MIT লাইসেন্সের অধীনে প্রকাশিত এবং এটি মূল Scorched Earth লেখকদের সাথে যুক্ত বা অনুমোদিত নয়।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.