নিজস্ব প্রোডাক্ট · খেলুন ও দাবা শিখুন

একটি দাবা প্ল্যাটফর্ম, প্রথম চাল থেকে নিজেদের তৈরি।

chessGM একটি ফ্রি দাবা অ্যাপ: লাইভ অনলাইন খেলা, মানুষের মতো খেলা বট, ভয়েস কোচসহ পুরো গেম রিভিউ, রেটেড পাজল আর কোর্স — ইংরেজি, বাংলা ও হিন্দিতে। দাবা ইঞ্জিন, সার্ভার, অ্যাপ আর ভয়েস সার্ভিস আমরা নিজেরা লিখেছি, আর নিজেদের অবকাঠামোতেই চালাই।

ওয়েবে চালু। আইওএস অ্যাপ App Review-তে আর অ্যান্ড্রয়েড অ্যাপ ক্লোজড টেস্টিংয়ে — শিগগিরই App Store ও Google Play-তে আসছে।

  • Web (PWA)
  • Android
  • iOS
  • iPadOS
রেটেড পাজল, প্রতিটি ইঞ্জিনে যাচাই করা
১৫,২০০
কোর্স, সাথে একদম শূন্য থেকে শেখার ট্র্যাক
৬০
Stockfish 19 (৩০০০-এ সীমিত)-এর বিরুদ্ধে Elo (২০০ গেম; Stockfish-এর নিজস্ব স্কেল)
+১৬৪
২,৫০০ গেম একসাথে চালানো লোড টেস্টে p99 চাল সংরক্ষণ
৩ ms

অ্যাপের ভেতরে

চালু অ্যাপের আসল স্ক্রিন — স্টোর লিস্টিংয়ে যেমন দেখায়।

খেলোয়াড়েরা যা পান

  • লাইভ অনলাইন খেলা

    বুলেট, ব্লিৎজ, র‍্যাপিড ও ক্লাসিক্যালে দ্রুত জুটি — রেটেড বা ক্যাজুয়াল — সার্ভারের ঘড়ি, Glicko-2 রেটিং, বন্ধু, চ্যালেঞ্জ, মেসেজ আর লাইভ দেখা।

  • মানুষের মতো খেলা বট

    ১৩টি নিজস্ব চরিত্র আর বিখ্যাত খেলোয়াড়দের প্রকাশ্য গেমের অনুপ্রেরণায় তৈরি বট (কোনো সম্পর্ক নেই)। প্রতিটি বট তার রেটিংয়ের একজন মানুষের মতোই ভুল করে।

  • কোচসহ গেম রিভিউ

    বোর্ডে ব্লান্ডারের তীর, কথা বলা ধাপসহ “লাইনটি দেখুন”, চালের লেবেলের ব্যাজ আর কারণ ব্যাখ্যা করা কোচ প্যানেল। অ্যাকুরেসি ৭৩৯টি প্রকাশ্য chess.com গেমের সাথে ক্যালিব্রেট করা (সাধারণত প্রায় ৪ পয়েন্টের তফাত), আর চালের লেবেল chess.com-এর Game Review-এর সাথে মিলিয়ে ঠিক করা। chess.com-এর সাথে কোনো সম্পর্ক নেই।

  • পাজল ও পাজল রাশ

    থিম, হিন্ট আর দৈনিক পাজলসহ প্রায় ১৫,২০০ রেটেড পাজল। ৩ মিনিট, ৫ মিনিট ও সারভাইভাল পাজল রাশ, সাথে নিজস্ব রেটিংসহ অনলাইন রাশ ব্যাটল।

  • স্পেসড রিপিটিশনসহ কোর্স

    প্রায় ৫০টি লাইনের ৩০টি ওপেনিং কোর্স, ট্যাকটিকস, মিডলগেম ও এন্ডগেমের ৩০টি কোর্স আর ২০০ রেটিং থেকে শুরুর বিগিনার ট্র্যাক। প্রতিটি লাইন ইঞ্জিনে যাচাই করা, আর FSRS দিয়ে রিভিশন হয়।

  • যে কোচ ব্যাখ্যা করে ও কথা বলে

    আমাদের দাবা ইঞ্জিন আর ব্যাখ্যার নিয়ম — চ্যাটবট নয় — ইংরেজি, বাংলা ও হিন্দিতে লেখে কী পাওয়া গেল, কী মিস হলো আর কেন চালটি খারাপ ছিল। ওপেন-সোর্স ভয়েস মডেলে চলা একটি ভয়েস সার্ভিস তা পড়ে শোনায়; কণ্ঠগুলো যন্ত্রে তৈরি। কোনো বাইরের এআই সার্ভিস ডাকা হয় না।

  • অফলাইনেও চলে, আর নোটিফাই করতে পারে

    ওয়েবসাইট ও অ্যান্ড্রয়েড অ্যাপে ইন্টারনেট ছাড়াও পাজল, বট, দুইজনের খেলা আর অ্যানালাইসিস বোর্ড চলে। ওয়েবসাইটের নোটিফিকেশন ডেস্কটপ ও অ্যান্ড্রয়েড ব্রাউজারে কাজ করে; আইফোনে সাইটটি হোম স্ক্রিনে যোগ করার পর।

  • ফ্রি, দৈনিক সীমা ও সম্মতিসহ

    অ্যাপের ভেতরে কোনো কেনাকাটা নেই। কিছু ফিচারে বিনামূল্যে দৈনিক সীমা আছে (১০টি হিন্ট, ৩টি গভীর রিভিউ, ৩টি কল, ৩টি ভয়েস-চ্যাট গেম), আর অ্যাপে একটি পুরস্কৃত বিজ্ঞাপন প্রতিটির আরও একটি যোগ করে। নতুন খেলোয়াড়েরা বিজ্ঞাপনমুক্ত শুরু পান, আর বিজ্ঞাপন খেলোয়াড়ের সম্মতির পছন্দ মেনে চলে (ব্যক্তিগতকৃত বিজ্ঞাপন শুধু সম্মতিতে)। Google, Apple বা ইমেইলে সাইন ইন করুন, আর অ্যাপ থেকেই অ্যাকাউন্ট মুছুন।

  • বটদের হারান, এক ধাপ করে

    সহজতম থেকে কঠিনতম ১৩টি অনুশীলন বটের একটি সিঁড়ি — প্রতিটির জন্য আমাদের নিজস্ব গাইড, অনুশীলনের সঙ্গী, টেক্সট হিসেবে পেস্ট করা গেমের রিভিউ, আপনার ভুল থেকে বানানো পাজল আর সংরক্ষিত অগ্রগতি। অন্য কারো বটের সাথে এটি কখনো যুক্ত হয় না।

  • প্রতিপক্ষকে হারানোর উপায় শিখুন

    একটি chess.com ইউজারনেম লিখুন: আপনার ব্রাউজার chess.com-এর পাবলিক ডেটা API থেকে ওই খেলোয়াড়ের সাম্প্রতিক প্রকাশ্য গেম পড়ে, আর chessGM তা ধাপ ও মনে করিয়ে দেওয়াসহ একটি পরিকল্পনায় সাজায়। Chess.com-এর সাথে কোনো সম্পর্ক নেই।

  • ভয়েস চ্যাট ও কল

    শুধু ভয়েস, ভিডিও নেই। অডিও সরাসরি দুই ডিভাইসের মধ্যে যায় (সরাসরি সংযোগ সম্ভব না হলেই রিলের মাধ্যমে); আমাদের সার্ভার শুধু সেটআপের বার্তা পাঠায়, কিছুই রেকর্ড বা জমা হয় না। প্রতিদিন বিনামূল্যে: ৩টি ভয়েস-চ্যাট গেম ও ৩টি রিসিভ করা কল।

  • বোর্ড ও গুটি

    আমাদের নিজস্ব chessGM গুটির সেট ও বোর্ড, সাথে মৌলিক শিল্পকর্মের চারটি প্রিমিয়াম সেট: Ebony & Boxwood, Royal Gold, Marble ও Crystal। সবই বিনামূল্যে; “প্রিমিয়াম” শুধু একটি লেবেল।

শূন্য থেকে তৈরি

খেলার নিয়ম থেকে শুরু করে যে সার্ভারে চলে — প্রতিটি স্তর আমাদের নিজেদের তৈরি।

  1. একটি Go সার্ভার

    একটিমাত্র Go বাইনারি HTTP API আর WebSocket হাব চালায়, সাথে গেমের ঘড়ি, ম্যাচমেকিং, ১,২০০ হাউস-বট অ্যাকাউন্টের বহর (সবসময় বট হিসেবে চিহ্নিত) আর পাজল ও কোর্সের ইঞ্জিন।

    • Go
    • WebSocket
    • SQLite (WAL)
    • Glicko-2
  2. নিজস্ব দাবা ইঞ্জিন

    perft দিয়ে যাচাই করা বিটবোর্ডে চাল তৈরি আর আলফা-বিটা সার্চ — সবই Go-তে লেখা। পূর্ণ শক্তিতে যোগ হয় ছোট একটি নিউরাল নেটওয়ার্ক (NNUE), যা আমরা নিজেরা প্রশিক্ষণ দিয়েছি, মূলত lichess-এর খোলা মূল্যায়নে, কিছু পজিশন শিক্ষক হিসেবে Stockfish-এর দেওয়া স্কোরসহ; অন্য কোনো ইঞ্জিনের নেটওয়ার্ক ওয়েট ব্যবহার করা হয়নি। Stockfish 19-এর UCI_Elo স্কেলে এটি প্রায় ৩১৬০ মাপা হয়েছে (১০+০.১-এ ২০০ গেমের ম্যাচ, এক থ্রেড; আগের ইঞ্জিন মাপা হয়েছিল ২৮৪০), যে স্কেল FIDE বা ওয়েবসাইটের Elo নয়। নতুন সংস্করণ আরও শক্তিশালী। একই ইঞ্জিন সার্ভারে চলে বড় নেটওয়ার্ক নিয়ে, আর WebAssembly-তে কম্পাইল হয়ে ব্রাউজার ও অ্যাপে ছোট নেটওয়ার্ক নিয়ে। গেম রিভিউ, কোচ আর নিচের বটগুলো আগের স্থির ইঞ্জিন ব্যবহার করে, তাই তাদের সংখ্যা বদলায় না।

    • Go
    • Bitboards
    • NNUE
    • WebAssembly
  3. ওয়েব অ্যাপ

    TypeScript-এ লেখা স্ট্যাটিক SvelteKit অ্যাপ — অফলাইনে খেলার জন্য সার্ভিস ওয়ার্কার, আর ভাষা লোড হয় শুধু দরকার হলে।

    • SvelteKit
    • TypeScript
    • Service worker
    • PWA
  4. আইওএস ও অ্যান্ড্রয়েড অ্যাপ

    নেটিভ সাইন-ইন, সম্মতিসহ বিজ্ঞাপন, পুশ নোটিফিকেশন, নেটিভ স্পিচ আর আইওএস সংস্করণের ভেতরেই অ্যাপের অফলাইন কপিসহ Capacitor অ্যাপ।

    • Capacitor
    • AdMob
    • Firebase Cloud Messaging
    • APNs
  5. ভয়েস সার্ভিস

    sherpa-onnx-এর ওপর ছোট একটি C হেল্পারসহ Go-তে লেখা টেক্সট-টু-স্পিচ সার্ভিস — ওপেন নিউরাল ভয়েস মডেল চালায় আর বলা কথা ক্যাশ করে রাখে। একই মডেল ব্রাউজারেও চলে।

    • Go
    • C
    • sherpa-onnx
    • onnxruntime-web
  6. ভয়েস চ্যাট ও কল

    দুই ডিভাইসের মধ্যে পিয়ার-টু-পিয়ার WebRTC অডিও, সরাসরি পথ বন্ধ থাকলে রিলে। সার্ভার শুধু সেটআপের বার্তা পাঠায় আর বিনামূল্যে দৈনিক সীমা গোনে।

    • WebRTC
    • TURN

পরিচালনা

সার্ভার আমরা নিজেরাই চালাই

মাঝখানে কোনো গেম-ব্যাকএন্ড সার্ভিস নেই: নিজস্ব সার্ভার, নিজস্ব ডিপ্লয়, নিজস্ব মনিটরিং।

  • nginx ও Cloudflare-এর পেছনে নিজেদের পরিচালিত একটি লিনাক্স সার্ভার, শুরু থেকে শেষ পর্যন্ত TLS
  • গেম সার্ভার systemd সার্ভিস হিসেবে চলে; WebSocket যায় nginx-এর মধ্য দিয়ে
  • এক কমান্ডে ডিপ্লয়: বিল্ড, সময়চিহ্নসহ রিলিজ আপলোড, সুইচ, হেলথ চেক, আর তাৎক্ষণিক রোলব্যাকের জন্য পুরোনো রিলিজ রাখা
  • দিনে অনেকবার ডিপ্লয়, প্রতিবার কয়েক সেকেন্ডে সুইচ, রিস্টার্টের সময় অপেক্ষার পেজ
  • WAL মোডে SQLite, প্রতি রাতে ব্যাকআপ
  • কনটেন্ট সিকিউরিটি পলিসি, ক্লায়েন্টের IP শুধু Cloudflare থেকে বিশ্বাস করা, অন্য সাইট থেকে লেখা বাতিল, WebSocket রেট লিমিট

যে কঠিন সমস্যাগুলোর সমাধান করেছি

যে অংশ খেলোয়াড়েরা কখনো দেখেন না — আমাদের মাপা সংখ্যাসহ।

  1. খেলা ধীর না করে প্রতিটি চাল সংরক্ষণ

    সমস্যা
    চাপের মুখে প্রতিটি চাল সরাসরি ডেটাবেসে লিখতে গিয়ে সবচেয়ে ধীর লেখাগুলো প্রায় ১০০ ms-এ পৌঁছাত।
    আমরা যা করেছি
    চালগুলো একসাথে জমা করে প্রতি ২৫০ ms-এ WAL মোডের SQLite-এ লেখা হয়, আর ঘড়ি থাকে সার্ভারে।

    ফলাফল লোড টেস্টে একসাথে ২,৫০০ গেমে p99 চাল লেখা প্রায় ১০০ ms → ৩ ms। প্রোফাইল কোয়েরি ১৭ ms → ১.১ ms।

  2. খেলোয়াড়দের ভরসার অ্যাকুরেসি

    সমস্যা
    খেলোয়াড়েরা তাঁদের অ্যাকুরেসি স্কোর বড় দাবা সাইটগুলোর চেনা সংখ্যার সাথে মিলিয়ে দেখেন।
    আমরা যা করেছি
    ৭৩৯টি আসল গেমে chess.com-এর প্রকাশিত স্কোরের সাথে মিলিয়ে আমাদের অ্যাকুরেসি মডেল ক্যালিব্রেট করেছি (তাদের সাথে কোনো সম্পর্ক নেই), আর আগে না দেখা গেমে পরীক্ষা করেছি।

    ফলাফল আগে না দেখা গেমে অ্যাকুরেসিতে সাধারণত প্রায় ৪ পয়েন্টের তফাত, সম্পর্ক ০.৯। চালের লেবেল chess.com-এর সাথে প্রায় অর্ধেক ক্ষেত্রে হুবহু মেলে, আর সংখ্যাগুলো কাছাকাছি।

  3. ঠিক একটি উত্তরের পাজল

    সমস্যা
    যে পাজলের দুটি ভালো উত্তর আছে, বা আয়নার মতো উল্টো রূপে আগেই দেখা — খেলোয়াড়ের কাছে তা ভাঙা মনে হয়।
    আমরা যা করেছি
    ইঞ্জিনের নিজের সাথে খেলা আর মানুষের মতো খেলা গেম থেকে আমরা নিজেরাই পাজল বানাই। গভীর ইঞ্জিন সার্চ প্রমাণ করে প্রতিটি সমাধানের চালই একমাত্র চাল, আর রং ও বোর্ড উল্টানো রূপসহ সব ডুপ্লিকেট বাদ দেওয়া হয়।

    ফলাফল প্রায় ১৫,২০০ রেটেড পাজল, যার প্রায় ৪,৯০০টি সর্বশেষ দফায় তৈরি নতুন পাজল।

  4. আইফোনে অফলাইন, বিজ্ঞাপনও চালু

    সমস্যা
    অ্যাপলের ওয়েব ভিউ অফলাইন সার্ভিস ওয়ার্কার চালাতে দেয় শুধু অ্যাপ-বাউন্ড ডোমেইনে, আর অ্যাপ-বাউন্ড ডোমেইনে AdMob কাজ করে না।
    আমরা যা করেছি
    পরের আইওএস বিল্ড নিজের ভেতরেই ওয়েব অ্যাপের একটি অফলাইন কপি বহন করবে, নেটিভ শেয়ারড স্টোরেজসহ — সংযোগ ফিরলে সিঙ্ক হয়।

    ফলাফল মাত্র +০.০৬ MB বাড়তি আকারে আইওএসে পুরো অফলাইন খেলা, পরের স্টোর বিল্ডে।

  5. ধীর নেটওয়ার্কেও দ্রুত

    সমস্যা
    আমাদের অনেক খেলোয়াড় মোবাইল ডেটায় খেলেন, আর লোড হওয়ার সময় রিভিউ পেজ লাফালাফি করত।
    আমরা যা করেছি
    স্ট্যাটিক বিল্ড, দরকার হলে ভাষা লোড, প্রতিটি বোর্ড ও প্যানেলের জন্য আগে থেকে জায়গা রাখা, আর সার্ভিস ওয়ার্কার ক্যাশ।

    ফলাফল ধীর 4G-তে ফার্স্ট কনটেন্টফুল পেইন্ট ২.৮ s → ১.০ s। রিভিউ পেজে লেআউট শিফট ০.৮১ → ০।

  6. যে স্কোর কেউ জাল করতে পারে না

    সমস্যা
    ফোন যদি ঠিক করে কোন উত্তর সঠিক আর কত সময় লাগল, তাহলে লিডারবোর্ডে প্রতারণার সুযোগ থাকে।
    আমরা যা করেছি
    পাজল রাশের উত্তর সার্ভারে যাচাই হয় আর সার্ভারের ঘড়িতে সময় মাপা হয়। ৫ সেকেন্ডে কোনো মানুষ না পেলে একটি হাউস বট রাশ ব্যাটলে যোগ দেয় — তার রেটিং অনুযায়ী গতি ও নির্ভুলতায় সমাধান করে।

    ফলাফল ন্যায্য লিডারবোর্ড, আর প্রায় শূন্য CPU খরচের বট: রাশ বট ইঞ্জিন না চালিয়ে সমাধানের সিমুলেশন করে, আর গেম বটের একটি চালে লাগে কয়েক মিলিসেকেন্ড।

  7. জিপিইউ ফার্ম ছাড়া নিউরাল-নেটওয়ার্ক ইঞ্জিন

    সমস্যা
    আরও শক্তিশালী ইঞ্জিনকে চলতে হতো ব্রাউজারে আর একটি ছোট সার্ভারে, আর প্রশিক্ষণের জন্য ছিল একটি ম্যাক, কোনো জিপিইউ ক্লাস্টার নয়।
    আমরা যা করেছি
    lichess-এর খোলা মূল্যায়নে আমরা ছোট একটি NNUE নেটওয়ার্ক প্রশিক্ষণ দিয়েছি (বেশি ডেটাই ছিল সবচেয়ে বড় সুবিধা: ১০M, ২০M ও ৯৪M পজিশনে +১১১ আর তারপর +৯৯ Elo), প্রতি চালে নতুন করে হিসাব না করে ধাপে ধাপে হালনাগাদ করেছি, আর সার্ভারের প্রসেসরের জন্য দ্রুত কোড লিখেছি যা সাধারণ সংস্করণের সাথে বিট-বাই-বিট মিলিয়ে দেখা হয়। আগের সংস্করণের বিরুদ্ধে ম্যাচে জিতলেই কেবল পরিবর্তন চালু হয়।

    ফলাফল ৬০০টি সেলফ-প্লে গেমে আগের ইঞ্জিনের চেয়ে +৩৪৯ ± ৩৭ Elo, আর ৩০০০-এ সীমিত Stockfish 19-এর চেয়ে ১৬৪ Elo বেশি এবং ৩১৯০-এ সীমিতটির প্রায় সমান (প্রতিটিতে ২০০ গেম, ১০+০.১; Stockfish-এর সীমারেখা তার নিজস্ব স্কেল, রেটিং তালিকা নয়)।

  8. বিনামূল্যে দৈনিক সীমা, যা বাড়ায় এমন বিজ্ঞাপন যা জাল করা যায় না

    সমস্যা
    একটি বিজ্ঞাপন দেখে খেলোয়াড় আরও একটি হিন্ট, গভীর রিভিউ, কল বা ভয়েস-চ্যাট গেম পেতে পারেন, আর ফোনের কোনো কিছু একা যেন নিজেকে সেই পুরস্কার দিতে না পারে।
    আমরা যা করেছি
    সার্ভার পুরস্কার দেয় যখন সে বিজ্ঞাপন দেখার ব্যাপারে Google AdMob-এর স্বাক্ষরিত সার্ভার-সাইড যাচাই পায় (অ্যাপের নিশ্চিত করা একটি সীমিত বিকল্পসহ), আর পুরস্কার ও দৈনিক সীমা সে নিজেই যাচাই করে, সীমিত রাখে ও গোনে।

    ফলাফল প্রতিদিন বিনামূল্যে: ১০টি হিন্ট, ৩টি গভীর রিভিউ, ৩টি কল ও ৩টি ভয়েস-চ্যাট গেম, আর প্রতিটি পুরস্কৃত বিজ্ঞাপনে প্রতিটির আরও একটি (ডিফল্ট; অপারেটর বদলাতে পারেন)।

ডেমো নয়, প্রোডাক্টের মতো পরীক্ষিত

  • পরিচিত পজিশনে perft দিয়ে চাল তৈরির যাচাই
  • আগের সংস্করণের বিরুদ্ধে ম্যাচে জিতলেই কেবল ইঞ্জিনের পরিবর্তন চালু হয়, আর শক্তি Stockfish-এর নির্দিষ্ট স্তরের বিরুদ্ধেও মাপা হয়
  • সার্ভারের প্রসেসরের দ্রুত ইঞ্জিন কোড সাধারণ সংস্করণের সাথে বিট-বাই-বিট মিলিয়ে দেখা
  • সার্ভার ইন্টিগ্রেশন টেস্ট, ইঞ্জিন টেস্ট আর WebAssembly বিল্ড টেস্ট
  • হাজারো গেম একসাথে চালানোর লোড টেস্ট
  • নতুন বাক্যে কোচের কণ্ঠ ০.৩–২ সেকেন্ডে, ক্যাশ থাকলে সাথে সাথে — ১৮টি কণ্ঠ

প্রযুক্তি

  • Go
  • SQLite
  • WebSocket
  • SvelteKit
  • TypeScript
  • NNUE
  • WebAssembly
  • WebRTC
  • Capacitor
  • sherpa-onnx
  • nginx
  • Cloudflare
  • systemd

ক্যারম: নিজেদের লেখা ফিজিক্সের বোর্ড গেম

আমাদের সব কাজ দেখুন

এভাবে তৈরি একটি গেম বা রিয়েল-টাইম অ্যাপ চান?

আমরা গেম আর রিয়েল-টাইম প্ল্যাটফর্ম শুরু থেকে শেষ পর্যন্ত ডিজাইন, তৈরি ও পরিচালনা করি: অ্যাপ, সার্ভার, স্টোর আর অপারেশন।