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

Python Game Server হলো টার্ন-ভিত্তিক মাল্টিপ্লেয়ার গেমের জন্য একটি হালকা সার্ভার ও ফ্রেমওয়ার্ক। এটি বোর্ড ও কার্ড গেম এবং প্রোগ্রামিং কোর্সের জন্য উপযোগী, যেখানে শিক্ষার্থীরা ক্লায়েন্ট বা নতুন গেম বাস্তবায়ন করে। README-তে বর্ণিত মূল বৈশিষ্ট্যগুলো: - স্বয়ংক্রিয় ম্যাচমেকিং বা স্পষ্ট সেশন জয়েন - একটি নমনীয়, গেম-নিরপেক্ষ API - এমন একটি ফ্রেমওয়ার্ক যা প্রোগ্রামারের কাছ থেকে মাল্টিপ্লেয়ার জটিলতা লুকিয়ে রাখে - একটি বেস ক্লাস থেকে ডেরাইভ করে এবং কয়েকটি মেথড ওভাররাইড করে নতুন গেম যোগ করা - পোলিং এড়াতে বুদ্ধিমান স্টেট আপডেট - ঐচ্ছিক TLS সাপোর্ট - শুধুমাত্র মৌলিক পাইথন দক্ষতা প্রয়োজন কুইক স্টার্ট: সার্ভার চালু করুন (server/game_server.py), তারপর দুটি ক্লায়েন্ট চালান (client/tictactoe_client.py)। একমাত্র প্রয়োজন একটি সাধারণ পাইথন ইনস্টলেশন। ক্লায়েন্ট API: client/game_server_api.py মডিউল ক্লায়েন্টদের একটি গেম সেশন শুরু ও জয়েন করতে, মুভ জমা দিতে, গেম স্টেট পুনরুদ্ধার করতে এবং বর্তমান সেশনের মধ্যে একটি গেম পুনরায় শুরু করতে দেয়। README-তে GameServerAPI ব্যবহার করে একটি TicTacToe গেম লুপ দেখানো হয়েছে, যেখানে server, port, game, session এবং players প্যারামিটার রয়েছে, সাথে join(), state() এবং move(**kwargs) কল এবং একটি IllegalMove এক্সেপশন রয়েছে। গেম যোগ করা: server/games/-এ একটি মডিউল তৈরি করুন, AbstractGame থেকে ডেরাইভ করা একটি ক্লাস বাস্তবায়ন করুন, প্রয়োজনীয় মেথডগুলো ওভাররাইড করুন এবং server/games_list.py-তে এটি নিবন্ধন করুন। server/games/template.py-তে একটি টেমপ্লেট দেওয়া আছে। নতুন গেমের জন্য API-তে কোনো পরিবর্তনের প্রয়োজন নেই; মুভগুলো নির্বিচারে কীওয়ার্ড আর্গুমেন্ট গ্রহণ করে এবং গেম স্টেট একটি ডিকশনারি হিসেবে ফেরত দেওয়া হয়। সার্ভার পরিচালনা: server/config.py-তে IP এবং পোর্ট সম্পাদনা করুন, যেখানে TLS সহ অন্যান্য সেটিংসও সামঞ্জস্য করা যায়। একটি সার্ভিস হিসেবে চালানোর জন্য একটি systemd ইউনিট ফাইল দেওয়া আছে। প্রজেক্ট উইকিতে একটি API রেফারেন্স, ক্লায়েন্ট বাস্তবায়ন নির্দেশিকা এবং সার্ভার পরিচালনা সংক্রান্ত নোট রয়েছে। প্রজেক্টের পটভূমি: একটি প্রোগ্রামিং কোর্সের জন্য তৈরি, যেখানে শিক্ষার্থীরা প্রথম ভাষা হিসেবে পাইথন শেখে এবং ছোট দলে কাজ করে। ফ্রেমওয়ার্ক ও API এমনভাবে ডিজাইন করা হয়েছে যাতে মৌলিক প্রোগ্রামিং দক্ষতাই যথেষ্ট, যদিও এর ব্যবহার শুধু শিক্ষার মধ্যে সীমাবদ্ধ নয়। পুল রিকোয়েস্ট, ইস্যু বা আলোচনার মাধ্যমে অবদান স্বাগত। GPLv3-এর অধীনে লাইসেন্সকৃত, কপিরাইট ২০২৫, ২০২৬ Fabian Eberts।